From ca974aa0a505833960fb369e497e83a23f28e8a0 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 5 Mar 2024 18:54:36 +0100 Subject: [PATCH] update all APIs Like documented in the README ``` rm -f .api.deps .cli.deps && FETCH_APIS=1 make update-json -j8 ``` --- .../v1/abusiveexperiencereport-api.json | 2 +- .../v1/acceleratedmobilepageurl-api.json | 10 +- .../accessapproval/v1/accessapproval-api.json | 115 +- .../v1/accesscontextmanager-api.json | 272 +- .../v2beta1/adexchangebuyer2-api.json | 575 +- .../v1/adexperiencereport-api.json | 10 +- etc/api/admin/datatransfer_v1/admin-api.json | 2 +- etc/api/admin/directory_v1/admin-api.json | 336 +- etc/api/admin/reports_v1/admin-api.json | 23 +- etc/api/admob/v1/admob-api.json | 28 +- etc/api/admob/v1beta/admob-api.json | 1089 +- etc/api/adsense/v2/adsense-api.json | 44 +- .../alertcenter/v1beta1/alertcenter-api.json | 145 +- .../v1alpha/analyticsadmin-api.json | 5158 +++- .../v1beta/analyticsdata-api.json | 425 +- .../v4/analyticsreporting-api.json | 2 +- .../v1/androiddeviceprovisioning-api.json | 89 +- .../v1/androidenterprise-api.json | 51 +- .../v1/androidmanagement-api.json | 1001 +- .../v3/androidpublisher-api.json | 2853 ++- etc/api/apigateway/v1/apigateway-api.json | 14 +- etc/api/apigateway/v1beta/apigateway-api.json | 16 +- etc/api/apigee/v1/apigee-api.json | 2811 ++- etc/api/apikeys/v2/apikeys-api.json | 4 +- etc/api/appengine/v1/appengine-api.json | 486 +- etc/api/appengine/v1alpha/appengine-api.json | 209 +- etc/api/appengine/v1beta/appengine-api.json | 564 +- .../v1alpha1/area120tables-api.json | 2 +- .../v1/artifactregistry-api.json | 917 +- .../v1beta1/artifactregistry-api.json | 49 +- .../v1beta2/artifactregistry-api.json | 57 +- .../v1/assuredworkloads-api.json | 447 +- .../v1/authorizedbuyersmarketplace-api.json | 65 +- .../v1/baremetalsolution-api.json | 99 +- .../v2/baremetalsolution-api.json | 609 +- etc/api/bigquery/v2/bigquery-api.json | 3531 ++- .../v1beta1/bigqueryconnection-api.json | 10 +- .../v1/bigquerydatatransfer-api.json | 100 +- .../v1/bigqueryreservation-api.json | 151 +- .../bigtableadmin/v2/bigtableadmin-api.json | 197 +- .../billingbudgets/v1/billingbudgets-api.json | 31 +- .../v1beta1/billingbudgets-api.json | 31 +- .../v1/binaryauthorization-api.json | 901 +- .../v1beta1/binaryauthorization-api.json | 12 +- etc/api/blogger/v2/blogger-api.json | 2 +- etc/api/blogger/v3/blogger-api.json | 2 +- etc/api/books/v1/books-api.json | 8 +- etc/api/calendar/v3/calendar-api.json | 148 +- .../v1/certificatemanager-api.json | 325 +- etc/api/chat/v1/chat-api.json | 1672 +- .../v1/chromemanagement-api.json | 1262 +- etc/api/chromepolicy/v1/chromepolicy-api.json | 255 +- .../chromeuxreport/v1/chromeuxreport-api.json | 211 +- etc/api/civicinfo/v2/civicinfo-api.json | 829 +- etc/api/classroom/v1/classroom-api.json | 15 +- etc/api/cloudasset/v1/cloudasset-api.json | 311 +- .../cloudasset/v1beta1/cloudasset-api.json | 98 +- .../cloudasset/v1p1beta1/cloudasset-api.json | 96 +- .../cloudasset/v1p5beta1/cloudasset-api.json | 96 +- .../cloudasset/v1p7beta1/cloudasset-api.json | 98 +- etc/api/cloudbilling/v1/cloudbilling-api.json | 273 +- etc/api/cloudbuild/v1/cloudbuild-api.json | 367 +- etc/api/cloudchannel/v1/cloudchannel-api.json | 651 +- etc/api/clouddeploy/v1/clouddeploy-api.json | 3197 ++- .../v1beta1/clouderrorreporting-api.json | 17 +- .../cloudfunctions/v1/cloudfunctions-api.json | 235 +- .../v2alpha/cloudfunctions-api.json | 545 +- .../v2beta/cloudfunctions-api.json | 545 +- .../cloudidentity/v1/cloudidentity-api.json | 184 +- .../v1beta1/cloudidentity-api.json | 333 +- etc/api/cloudiot/v1/cloudiot-api.json | 8 +- etc/api/cloudkms/v1/cloudkms-api.json | 504 +- .../cloudprofiler/v2/cloudprofiler-api.json | 81 +- .../v1/cloudresourcemanager-api.json | 23 +- .../v1beta1/cloudresourcemanager-api.json | 13 +- .../v2/cloudresourcemanager-api.json | 17 +- .../v2beta1/cloudresourcemanager-api.json | 17 +- .../v3/cloudresourcemanager-api.json | 98 +- .../cloudscheduler/v1/cloudscheduler-api.json | 27 +- .../v1beta1/cloudscheduler-api.json | 27 +- etc/api/cloudsearch/v1/cloudsearch-api.json | 14834 ++---------- etc/api/cloudshell/v1/cloudshell-api.json | 6 +- .../cloudsupport/v2beta/cloudsupport-api.json | 222 +- etc/api/cloudtasks/v2/cloudtasks-api.json | 335 +- .../cloudtasks/v2beta2/cloudtasks-api.json | 113 +- .../cloudtasks/v2beta3/cloudtasks-api.json | 133 +- etc/api/cloudtrace/v1/cloudtrace-api.json | 6 +- etc/api/cloudtrace/v2/cloudtrace-api.json | 8 +- .../cloudtrace/v2beta1/cloudtrace-api.json | 2 +- etc/api/composer/v1/composer-api.json | 1062 +- etc/api/composer/v1beta1/composer-api.json | 950 +- etc/api/compute/alpha/compute-api.json | 15815 +++++++++++- etc/api/compute/beta/compute-api.json | 15451 +++++++++++- etc/api/compute/v1/compute-api.json | 13326 ++++++++++- etc/api/connectors/v1/connectors-api.json | 3977 ++- .../v1/contactcenterinsights-api.json | 2080 +- etc/api/container/v1/container-api.json | 978 +- etc/api/container/v1beta1/container-api.json | 1132 +- .../v1/containeranalysis-api.json | 892 +- .../v1alpha1/containeranalysis-api.json | 889 +- .../v1beta1/containeranalysis-api.json | 963 +- etc/api/content/v2.1/content-api.json | 2669 ++- etc/api/customsearch/v1/customsearch-api.json | 24 +- etc/api/datacatalog/v1/datacatalog-api.json | 497 +- .../datacatalog/v1beta1/datacatalog-api.json | 1544 +- etc/api/dataflow/v1b3/dataflow-api.json | 871 +- etc/api/datafusion/v1/datafusion-api.json | 151 +- .../datafusion/v1beta1/datafusion-api.json | 151 +- .../v1beta1/datalabeling-api.json | 8 +- .../datamigration/v1/datamigration-api.json | 2204 +- .../v1beta1/datamigration-api.json | 34 +- .../datapipelines/v1/datapipelines-api.json | 2 +- etc/api/dataplex/v1/dataplex-api.json | 1105 +- etc/api/dataproc/v1/dataproc-api.json | 1176 +- etc/api/datastore/v1/datastore-api.json | 72 +- etc/api/datastore/v1beta1/datastore-api.json | 4 +- etc/api/datastore/v1beta3/datastore-api.json | 62 +- etc/api/datastream/v1/datastream-api.json | 375 +- .../datastream/v1alpha1/datastream-api.json | 37 +- .../alpha/deploymentmanager-api.json | 272 +- .../v2/deploymentmanager-api.json | 266 +- .../v2beta/deploymentmanager-api.json | 272 +- .../dfareporting/v3.5/dfareporting-api.json | 19969 +--------------- etc/api/dialogflow/v2/dialogflow-api.json | 1628 +- .../dialogflow/v2beta1/dialogflow-api.json | 1670 +- etc/api/dialogflow/v3/dialogflow-api.json | 2414 +- .../dialogflow/v3beta1/dialogflow-api.json | 2466 +- .../v1/digitalassetlinks-api.json | 2 +- etc/api/discovery/v1/discovery-api.json | 45 + etc/api/displayvideo/v1/displayvideo-api.json | 719 +- etc/api/dlp/v2/dlp-api.json | 2180 +- etc/api/dns/v1/dns-api.json | 63 +- etc/api/dns/v1beta2/dns-api.json | 69 +- etc/api/dns/v2/dns-api.json | 71 +- etc/api/docs/v1/docs-api.json | 16 +- etc/api/documentai/v1/documentai-api.json | 1557 +- .../documentai/v1beta2/documentai-api.json | 1107 +- .../documentai/v1beta3/documentai-api.json | 2187 +- etc/api/domains/v1/domains-api.json | 166 +- etc/api/domains/v1alpha2/domains-api.json | 166 +- etc/api/domains/v1beta1/domains-api.json | 166 +- etc/api/domainsrdap/v1/domainsrdap-api.json | 2 +- .../v2/doubleclicksearch-api.json | 16 +- etc/api/drive/v2/drive-api.json | 1231 +- etc/api/drive/v3/drive-api.json | 1174 +- .../driveactivity/v2/driveactivity-api.json | 19 +- .../v1/essentialcontacts-api.json | 2 +- etc/api/eventarc/v1/eventarc-api.json | 70 +- etc/api/eventarc/v1beta1/eventarc-api.json | 14 +- .../v1alpha1/factchecktools-api.json | 2 +- etc/api/fcm/v1/fcm-api.json | 21 +- etc/api/fcmdata/v1beta1/fcmdata-api.json | 2 +- etc/api/file/v1/file-api.json | 101 +- etc/api/file/v1beta1/file-api.json | 115 +- etc/api/firebase/v1beta1/firebase-api.json | 86 +- .../v1beta/firebaseappcheck-api.json | 556 +- .../v1beta/firebasedatabase-api.json | 2 +- .../v1/firebasedynamiclinks-api.json | 33 +- .../v1/firebasehosting-api.json | 378 +- .../v1beta1/firebasehosting-api.json | 1056 +- etc/api/firebaseml/v1/firebaseml-api.json | 6 +- .../firebaseml/v1beta2/firebaseml-api.json | 4 +- .../firebaserules/v1/firebaserules-api.json | 6 +- .../v1beta/firebasestorage-api.json | 13 +- etc/api/firestore/v1/firestore-api.json | 814 +- etc/api/firestore/v1beta1/firestore-api.json | 216 +- etc/api/firestore/v1beta2/firestore-api.json | 86 +- etc/api/fitness/v1/fitness-api.json | 8 +- etc/api/games/v1/games-api.json | 387 +- .../gamesconfiguration-api.json | 2 +- .../v1management/gamesmanagement-api.json | 2 +- etc/api/genomics/v2alpha1/genomics-api.json | 3 +- etc/api/gkehub/v1/gkehub-api.json | 2673 ++- etc/api/gkehub/v1alpha/gkehub-api.json | 2700 ++- etc/api/gkehub/v1alpha2/gkehub-api.json | 64 +- etc/api/gkehub/v1beta/gkehub-api.json | 3373 ++- etc/api/gkehub/v1beta1/gkehub-api.json | 55 +- etc/api/gkehub/v2alpha/gkehub-api.json | 8 +- etc/api/gmail/v1/gmail-api.json | 67 +- .../v1/gmailpostmastertools-api.json | 14 +- .../v1beta1/gmailpostmastertools-api.json | 15 +- .../v1/groupsmigration-api.json | 2 +- etc/api/healthcare/v1/healthcare-api.json | 1222 +- .../healthcare/v1beta1/healthcare-api.json | 1991 +- etc/api/homegraph/v1/homegraph-api.json | 3 +- etc/api/iam/v1/iam-api.json | 1551 +- .../iamcredentials/v1/iamcredentials-api.json | 2 +- etc/api/iap/v1/iap-api.json | 86 +- etc/api/iap/v1beta1/iap-api.json | 8 +- etc/api/ids/v1/ids-api.json | 18 +- etc/api/indexing/v3/indexing-api.json | 6 +- etc/api/jobs/v3/jobs-api.json | 12 +- etc/api/jobs/v3p1beta1/jobs-api.json | 14 +- etc/api/jobs/v4/jobs-api.json | 15 +- etc/api/keep/v1/keep-api.json | 2 +- etc/api/kgsearch/v1/kgsearch-api.json | 2 +- etc/api/language/v1/language-api.json | 4456 +++- etc/api/language/v1beta2/language-api.json | 4456 +++- etc/api/libraryagent/v1/libraryagent-api.json | 2 +- etc/api/licensing/v1/licensing-api.json | 2 +- .../lifesciences/v2beta/lifesciences-api.json | 5 +- .../localservices/v1/localservices-api.json | 9 +- etc/api/logging/v2/logging-api.json | 2467 +- .../v1/managedidentities-api.json | 260 +- .../v1alpha1/managedidentities-api.json | 31 +- .../v1beta1/managedidentities-api.json | 31 +- .../manufacturers/v1/manufacturers-api.json | 283 +- etc/api/memcache/v1/memcache-api.json | 108 +- etc/api/memcache/v1beta2/memcache-api.json | 108 +- etc/api/metastore/v1alpha/metastore-api.json | 307 +- etc/api/metastore/v1beta/metastore-api.json | 307 +- etc/api/ml/v1/ml-api.json | 24 +- etc/api/monitoring/v1/monitoring-api.json | 695 +- etc/api/monitoring/v3/monitoring-api.json | 198 +- .../v1/mybusinessaccountmanagement-api.json | 2 +- .../v1/mybusinessbusinessinformation-api.json | 73 +- .../v1/mybusinesslodging-api.json | 19 +- .../v1/mybusinessnotifications-api.json | 16 +- .../v1/mybusinessplaceactions-api.json | 2 +- .../v1/mybusinessqanda-api.json | 2 +- .../v1/mybusinessverifications-api.json | 84 +- .../v1/networkconnectivity-api.json | 2762 ++- .../v1alpha1/networkconnectivity-api.json | 40 +- .../v1/networkmanagement-api.json | 781 +- .../v1beta1/networkmanagement-api.json | 663 +- .../v1/networksecurity-api.json | 1960 +- .../v1beta1/networksecurity-api.json | 2890 ++- .../v1/networkservices-api.json | 1203 +- .../v1beta1/networkservices-api.json | 1203 +- etc/api/notebooks/v1/notebooks-api.json | 419 +- .../v1/ondemandscanning-api.json | 535 +- .../v1beta1/ondemandscanning-api.json | 534 +- etc/api/orgpolicy/v2/orgpolicy-api.json | 194 +- etc/api/osconfig/v1/osconfig-api.json | 14 +- etc/api/osconfig/v1alpha/osconfig-api.json | 21 +- etc/api/osconfig/v1beta/osconfig-api.json | 2 +- etc/api/oslogin/v1/oslogin-api.json | 8 +- etc/api/oslogin/v1alpha/oslogin-api.json | 100 +- etc/api/oslogin/v1beta/oslogin-api.json | 100 +- .../v5/pagespeedonline-api.json | 63 +- .../v1/paymentsresellersubscription-api.json | 323 +- etc/api/people/v1/people-api.json | 27 +- .../photoslibrary/v1/photoslibrary-api.json | 4 +- .../playcustomapp/v1/playcustomapp-api.json | 2 +- .../playintegrity/v1/playintegrity-api.json | 133 +- .../policyanalyzer/v1/policyanalyzer-api.json | 2 +- .../v1beta1/policyanalyzer-api.json | 2 +- .../v1/policysimulator-api.json | 1221 +- .../v1/policytroubleshooter-api.json | 8 +- .../v1beta/policytroubleshooter-api.json | 8 +- etc/api/privateca/v1/privateca-api.json | 189 +- etc/api/privateca/v1beta1/privateca-api.json | 1998 +- .../v1alpha1/prod_tt_sasportal-api.json | 367 +- etc/api/pubsub/v1/pubsub-api.json | 398 +- etc/api/pubsub/v1beta1a/pubsub-api.json | 20 +- etc/api/pubsub/v1beta2/pubsub-api.json | 26 +- etc/api/pubsublite/v1/pubsublite-api.json | 7 +- .../v1/realtimebidding-api.json | 70 +- .../v1/recaptchaenterprise-api.json | 1061 +- .../v1beta1/recommendationengine-api.json | 8 +- etc/api/recommender/v1/recommender-api.json | 39 +- .../recommender/v1beta1/recommender-api.json | 395 +- etc/api/redis/v1/redis-api.json | 1678 +- etc/api/redis/v1beta1/redis-api.json | 1667 +- etc/api/reseller/v1/reseller-api.json | 22 +- .../v1/resourcesettings-api.json | 2 +- etc/api/retail/v2/retail-api.json | 1471 +- etc/api/retail/v2alpha/retail-api.json | 1619 +- etc/api/retail/v2beta/retail-api.json | 1228 +- etc/api/run/v1/run-api.json | 692 +- etc/api/run/v2/run-api.json | 623 +- .../runtimeconfig/v1/runtimeconfig-api.json | 6 +- .../v1beta1/runtimeconfig-api.json | 10 +- etc/api/safebrowsing/v4/safebrowsing-api.json | 86 +- etc/api/sasportal/v1alpha1/sasportal-api.json | 367 +- etc/api/script/v1/script-api.json | 36 +- .../searchconsole/v1/searchconsole-api.json | 31 +- .../secretmanager/v1/secretmanager-api.json | 503 +- .../v1beta1/secretmanager-api.json | 10 +- .../securitycenter/v1/securitycenter-api.json | 7012 +++++- .../v1beta1/securitycenter-api.json | 3832 ++- .../v1beta2/securitycenter-api.json | 3943 ++- .../v1/serviceconsumermanagement-api.json | 179 +- .../serviceconsumermanagement-api.json | 185 +- .../servicecontrol/v1/servicecontrol-api.json | 61 +- .../servicecontrol/v2/servicecontrol-api.json | 56 +- .../v1/servicedirectory-api.json | 10 +- .../v1beta1/servicedirectory-api.json | 285 +- .../v1/servicemanagement-api.json | 181 +- .../v1/servicenetworking-api.json | 422 +- .../v1beta/servicenetworking-api.json | 192 +- etc/api/serviceusage/v1/serviceusage-api.json | 377 +- .../v1beta1/serviceusage-api.json | 438 +- etc/api/sheets/v4/sheets-api.json | 104 +- etc/api/slides/v1/slides-api.json | 6 +- .../v1/smartdevicemanagement-api.json | 47 +- etc/api/sourcerepo/v1/sourcerepo-api.json | 14 +- etc/api/spanner/v1/spanner-api.json | 728 +- etc/api/speech/v1/speech-api.json | 195 +- etc/api/speech/v1p1beta1/speech-api.json | 163 +- etc/api/sqladmin/v1/sqladmin-api.json | 1039 +- etc/api/sqladmin/v1beta4/sqladmin-api.json | 1040 +- etc/api/storage/v1/storage-api.json | 1502 +- .../v1/storagetransfer-api.json | 49 +- .../v1/streetviewpublish-api.json | 21 +- etc/api/sts/v1/sts-api.json | 12 +- etc/api/sts/v1beta/sts-api.json | 6 +- etc/api/tagmanager/v1/tagmanager-api.json | 8 +- etc/api/tagmanager/v2/tagmanager-api.json | 319 +- etc/api/tasks/v1/tasks-api.json | 6 +- etc/api/testing/v1/testing-api.json | 607 +- etc/api/texttospeech/v1/texttospeech-api.json | 29 +- .../v1beta1/texttospeech-api.json | 29 +- .../toolresults/v1beta3/toolresults-api.json | 24 +- etc/api/tpu/v1/tpu-api.json | 10 +- etc/api/tpu/v1alpha1/tpu-api.json | 10 +- etc/api/tpu/v2alpha1/tpu-api.json | 320 +- .../v2/trafficdirector-api.json | 5 +- etc/api/transcoder/v1/transcoder-api.json | 408 +- etc/api/translate/v3/translate-api.json | 799 +- etc/api/translate/v3beta1/translate-api.json | 30 +- etc/api/vault/v1/vault-api.json | 184 +- .../verifiedaccess/v1/verifiedaccess-api.json | 7 +- .../versionhistory/v1/versionhistory-api.json | 10 +- .../v1/videointelligence-api.json | 21 +- .../v1beta2/videointelligence-api.json | 19 +- .../v1p1beta1/videointelligence-api.json | 19 +- .../v1p2beta1/videointelligence-api.json | 19 +- .../v1p3beta1/videointelligence-api.json | 19 +- etc/api/vision/v1/vision-api.json | 56 +- etc/api/vision/v1p1beta1/vision-api.json | 54 +- etc/api/vision/v1p2beta1/vision-api.json | 54 +- etc/api/vmmigration/v1/vmmigration-api.json | 1515 +- .../vmmigration/v1alpha1/vmmigration-api.json | 1541 +- .../walletobjects/v1/walletobjects-api.json | 1107 +- etc/api/webfonts/v1/webfonts-api.json | 61 +- etc/api/webrisk/v1/webrisk-api.json | 107 +- .../v1/websecurityscanner-api.json | 10 +- .../v1alpha/websecurityscanner-api.json | 22 +- .../v1beta/websecurityscanner-api.json | 10 +- .../v1/workflowexecutions-api.json | 519 +- .../v1beta/workflowexecutions-api.json | 10 +- etc/api/workflows/v1/workflows-api.json | 144 +- etc/api/workflows/v1beta/workflows-api.json | 8 +- etc/api/youtube/v3/youtube-api.json | 616 +- .../v2/youtubeanalytics-api.json | 3 +- .../v1/youtubereporting-api.json | 7 +- 347 files changed, 202580 insertions(+), 50157 deletions(-) diff --git a/etc/api/abusiveexperiencereport/v1/abusiveexperiencereport-api.json b/etc/api/abusiveexperiencereport/v1/abusiveexperiencereport-api.json index d96e309b8a..719a5ba100 100644 --- a/etc/api/abusiveexperiencereport/v1/abusiveexperiencereport-api.json +++ b/etc/api/abusiveexperiencereport/v1/abusiveexperiencereport-api.json @@ -139,7 +139,7 @@ } } }, - "revision": "20230114", + "revision": "20240207", "rootUrl": "https://abusiveexperiencereport.googleapis.com/", "schemas": { "SiteSummaryResponse": { diff --git a/etc/api/acceleratedmobilepageurl/v1/acceleratedmobilepageurl-api.json b/etc/api/acceleratedmobilepageurl/v1/acceleratedmobilepageurl-api.json index 40c7ced56f..588936aeee 100644 --- a/etc/api/acceleratedmobilepageurl/v1/acceleratedmobilepageurl-api.json +++ b/etc/api/acceleratedmobilepageurl/v1/acceleratedmobilepageurl-api.json @@ -115,7 +115,7 @@ } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://acceleratedmobilepageurl.googleapis.com/", "schemas": { "AmpUrl": { @@ -151,6 +151,14 @@ "URL_IS_VALID_AMP", "URL_IS_INVALID_AMP" ], + "enumDeprecated": [ + false, + false, + false, + false, + true, + false + ], "enumDescriptions": [ "Not specified error.", "Indicates the requested URL is not found in the index, possibly because it's unable to be found, not able to be accessed by Googlebot, or some other error.", diff --git a/etc/api/accessapproval/v1/accessapproval-api.json b/etc/api/accessapproval/v1/accessapproval-api.json index 8f144b375c..fb6518ffdd 100644 --- a/etc/api/accessapproval/v1/accessapproval-api.json +++ b/etc/api/accessapproval/v1/accessapproval-api.json @@ -14,7 +14,7 @@ "canonicalName": "Access Approval", "description": "An API for controlling access to data by Google personnel.", "discoveryVersion": "v1", - "documentationLink": "https://cloud.google.com/cloud-provider-access-management/access-approval/docs", + "documentationLink": "https://cloud.google.com/assured-workloads/access-approval/docs", "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -913,7 +913,7 @@ } } }, - "revision": "20230120", + "revision": "20240223", "rootUrl": "https://accessapproval.googleapis.com/", "schemas": { "AccessApprovalServiceAccount": { @@ -971,6 +971,19 @@ "type": "string" }, "type": "array" + }, + "notificationPubsubTopic": { + "description": "Optional. A pubsub topic to which notifications relating to approval requests should be sent.", + "type": "string" + }, + "preferNoBroadApprovalRequests": { + "description": "This preference is communicated to Google personnel when sending an approval request but can be overridden if necessary.", + "type": "boolean" + }, + "preferredRequestExpirationDays": { + "description": "This preference is shared with Google personnel, but can be overridden if said personnel deems necessary. The approver ultimately can set the expiration at approval time.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -1005,7 +1018,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.", @@ -1013,7 +1027,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" } @@ -1041,8 +1056,13 @@ "format": "google-datetime", "type": "string" }, + "requestedDuration": { + "description": "The requested access duration.", + "format": "google-duration", + "type": "string" + }, "requestedExpiration": { - "description": "The requested expiration for the approval. If the request is approved, access will be granted from the time of approval until the expiration time.", + "description": "The original requested expiration for the approval. Calculated by adding the requested_duration to the request_time.", "format": "google-datetime", "type": "string" }, @@ -1140,7 +1160,7 @@ "id": "EnrolledService", "properties": { "cloudProduct": { - "description": "The product for which Access Approval will be enrolled. Allowed values are listed below (case-sensitive): * all * GA * App Engine . * Artifact Registry * BigQuery * Cloud Bigtable * Cloud Key Management Service * Compute Engine * Cloud Dataflow * Cloud Dataproc * Cloud DLP * Cloud EKM * Cloud HSM * Cloud Identity and Access Management * Cloud Logging * Cloud Pub/Sub * Cloud Spanner * Cloud SQL * Cloud Storage * Google Kubernetes Engine * Organization Policy Serivice * Persistent Disk * Resource Manager * Secret Manager * Speaker ID Note: These values are supported as input for legacy purposes, but will not be returned from the API. * all * ga-only * appengine.googleapis.com * artifactregistry.googleapis.com * bigquery.googleapis.com * bigtable.googleapis.com * container.googleapis.com * cloudkms.googleapis.com * cloudresourcemanager.googleapis.com * cloudsql.googleapis.com * compute.googleapis.com * dataflow.googleapis.com * dataproc.googleapis.com * dlp.googleapis.com * iam.googleapis.com * logging.googleapis.com * orgpolicy.googleapis.com * pubsub.googleapis.com * spanner.googleapis.com * secretmanager.googleapis.com * speakerid.googleapis.com * storage.googleapis.com Calls to UpdateAccessApprovalSettings using 'all' or any of the XXX.googleapis.com will be translated to the associated product name ('all', 'App Engine', etc.). Note: 'all' will enroll the resource in all products supported at both 'GA' and 'Preview' levels. More information about levels of support is available at https://cloud.google.com/access-approval/docs/supported-services", + "description": "The product for which Access Approval will be enrolled. Allowed values are listed below (case-sensitive): * all * GA * App Engine * Artifact Registry * BigQuery * Certificate Authority Service * Cloud Bigtable * Cloud Key Management Service * Compute Engine * Cloud Composer * Cloud Dataflow * Cloud Dataproc * Cloud DLP * Cloud EKM * Cloud Firestore * Cloud HSM * Cloud Identity and Access Management * Cloud Logging * Cloud NAT * Cloud Pub/Sub * Cloud Spanner * Cloud SQL * Cloud Storage * Eventarc * Google Kubernetes Engine * Organization Policy Serivice * Persistent Disk * Resource Manager * Secret Manager * Speaker ID Note: These values are supported as input for legacy purposes, but will not be returned from the API. * all * ga-only * appengine.googleapis.com * artifactregistry.googleapis.com * bigquery.googleapis.com * bigtable.googleapis.com * container.googleapis.com * cloudkms.googleapis.com * cloudresourcemanager.googleapis.com * cloudsql.googleapis.com * compute.googleapis.com * dataflow.googleapis.com * dataproc.googleapis.com * dlp.googleapis.com * iam.googleapis.com * logging.googleapis.com * orgpolicy.googleapis.com * pubsub.googleapis.com * spanner.googleapis.com * secretmanager.googleapis.com * speakerid.googleapis.com * storage.googleapis.com Calls to UpdateAccessApprovalSettings using 'all' or any of the XXX.googleapis.com will be translated to the associated product name ('all', 'App Engine', etc.). Note: 'all' will enroll the resource in all products supported at both 'GA' and 'Preview' levels. More information about levels of support is available at https://cloud.google.com/access-approval/docs/supported-services", "type": "string" }, "enrollmentLevel": { @@ -1201,10 +1221,93 @@ "description": "The resource name of the customer CryptoKeyVersion used for signing.", "type": "string" }, + "googleKeyAlgorithm": { + "description": "The hashing algorithm used for signature verification. It will only be present in the case of Google managed keys.", + "enum": [ + "CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED", + "GOOGLE_SYMMETRIC_ENCRYPTION", + "AES_128_GCM", + "AES_256_GCM", + "AES_128_CBC", + "AES_256_CBC", + "AES_128_CTR", + "AES_256_CTR", + "RSA_SIGN_PSS_2048_SHA256", + "RSA_SIGN_PSS_3072_SHA256", + "RSA_SIGN_PSS_4096_SHA256", + "RSA_SIGN_PSS_4096_SHA512", + "RSA_SIGN_PKCS1_2048_SHA256", + "RSA_SIGN_PKCS1_3072_SHA256", + "RSA_SIGN_PKCS1_4096_SHA256", + "RSA_SIGN_PKCS1_4096_SHA512", + "RSA_SIGN_RAW_PKCS1_2048", + "RSA_SIGN_RAW_PKCS1_3072", + "RSA_SIGN_RAW_PKCS1_4096", + "RSA_DECRYPT_OAEP_2048_SHA256", + "RSA_DECRYPT_OAEP_3072_SHA256", + "RSA_DECRYPT_OAEP_4096_SHA256", + "RSA_DECRYPT_OAEP_4096_SHA512", + "RSA_DECRYPT_OAEP_2048_SHA1", + "RSA_DECRYPT_OAEP_3072_SHA1", + "RSA_DECRYPT_OAEP_4096_SHA1", + "EC_SIGN_P256_SHA256", + "EC_SIGN_P384_SHA384", + "EC_SIGN_SECP256K1_SHA256", + "HMAC_SHA256", + "HMAC_SHA1", + "HMAC_SHA384", + "HMAC_SHA512", + "HMAC_SHA224", + "EXTERNAL_SYMMETRIC_ENCRYPTION" + ], + "enumDescriptions": [ + "Not specified.", + "Creates symmetric encryption keys.", + "AES-GCM (Galois Counter Mode) using 128-bit keys.", + "AES-GCM (Galois Counter Mode) using 256-bit keys.", + "AES-CBC (Cipher Block Chaining Mode) using 128-bit keys.", + "AES-CBC (Cipher Block Chaining Mode) using 256-bit keys.", + "AES-CTR (Counter Mode) using 128-bit keys.", + "AES-CTR (Counter Mode) using 256-bit keys.", + "RSASSA-PSS 2048 bit key with a SHA256 digest.", + "RSASSA-PSS 3072 bit key with a SHA256 digest.", + "RSASSA-PSS 4096 bit key with a SHA256 digest.", + "RSASSA-PSS 4096 bit key with a SHA512 digest.", + "RSASSA-PKCS1-v1_5 with a 2048 bit key and a SHA256 digest.", + "RSASSA-PKCS1-v1_5 with a 3072 bit key and a SHA256 digest.", + "RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA256 digest.", + "RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA512 digest.", + "RSASSA-PKCS1-v1_5 signing without encoding, with a 2048 bit key.", + "RSASSA-PKCS1-v1_5 signing without encoding, with a 3072 bit key.", + "RSASSA-PKCS1-v1_5 signing without encoding, with a 4096 bit key.", + "RSAES-OAEP 2048 bit key with a SHA256 digest.", + "RSAES-OAEP 3072 bit key with a SHA256 digest.", + "RSAES-OAEP 4096 bit key with a SHA256 digest.", + "RSAES-OAEP 4096 bit key with a SHA512 digest.", + "RSAES-OAEP 2048 bit key with a SHA1 digest.", + "RSAES-OAEP 3072 bit key with a SHA1 digest.", + "RSAES-OAEP 4096 bit key with a SHA1 digest.", + "ECDSA on the NIST P-256 curve with a SHA256 digest. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", + "ECDSA on the NIST P-384 curve with a SHA384 digest. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", + "ECDSA on the non-NIST secp256k1 curve. This curve is only supported for HSM protection level. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", + "HMAC-SHA256 signing with a 256 bit key.", + "HMAC-SHA1 signing with a 160 bit key.", + "HMAC-SHA384 signing with a 384 bit key.", + "HMAC-SHA512 signing with a 512 bit key.", + "HMAC-SHA224 signing with a 224 bit key.", + "Algorithm representing symmetric encryption by an external key manager." + ], + "type": "string" + }, "googlePublicKeyPem": { "description": "The public key for the Google default signing, encoded in PEM format. The signature was created using a private key which may be verified using this public key.", "type": "string" }, + "serializedApprovalRequest": { + "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" + }, "signature": { "description": "The digital signature.", "format": "byte", diff --git a/etc/api/accesscontextmanager/v1/accesscontextmanager-api.json b/etc/api/accesscontextmanager/v1/accesscontextmanager-api.json index db268e65e2..1fd444f0f9 100644 --- a/etc/api/accesscontextmanager/v1/accesscontextmanager-api.json +++ b/etc/api/accesscontextmanager/v1/accesscontextmanager-api.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 GCP 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/", "fullyEncodeReservedExpansion": true, @@ -568,7 +568,7 @@ "authorizedOrgsDescs": { "methods": { "create": { - "description": "Creates a authorized orgs desc. The long-running operation from this RPC has a successful status after the authorized orgs desc propagates to long-lasting storage. If a authorized orgs desc contains errors, an error response is returned for the first error encountered. The name of this `AuthorizedOrgsDesc` will be assigned during creation.", + "description": "Creates an authorized orgs desc. The long-running operation from this RPC has a successful status after the authorized orgs desc propagates to long-lasting storage. If a authorized orgs desc contains errors, an error response is returned for the first error encountered. The name of this `AuthorizedOrgsDesc` will be assigned during creation.", "flatPath": "v1/accessPolicies/{accessPoliciesId}/authorizedOrgsDescs", "httpMethod": "POST", "id": "accesscontextmanager.accessPolicies.authorizedOrgsDescs.create", @@ -596,7 +596,7 @@ ] }, "delete": { - "description": "Deletes a authorized orgs desc based on the resource name. The long-running operation from this RPC has a successful status after the authorized orgs desc is removed from long-lasting storage.", + "description": "Deletes an authorized orgs desc based on the resource name. The long-running operation from this RPC has a successful status after the authorized orgs desc is removed from long-lasting storage.", "flatPath": "v1/accessPolicies/{accessPoliciesId}/authorizedOrgsDescs/{authorizedOrgsDescsId}", "httpMethod": "DELETE", "id": "accesscontextmanager.accessPolicies.authorizedOrgsDescs.delete", @@ -621,7 +621,7 @@ ] }, "get": { - "description": "Gets a authorized orgs desc based on the resource name.", + "description": "Gets an authorized orgs desc based on the resource name.", "flatPath": "v1/accessPolicies/{accessPoliciesId}/authorizedOrgsDescs/{authorizedOrgsDescsId}", "httpMethod": "GET", "id": "accesscontextmanager.accessPolicies.authorizedOrgsDescs.get", @@ -682,7 +682,7 @@ ] }, "patch": { - "description": "Updates a authorized orgs desc. The long-running operation from this RPC has a successful status after the authorized orgs desc propagates to long-lasting storage. If a authorized orgs desc contains errors, an error response is returned for the first error encountered. Only the organization list in `AuthorizedOrgsDesc` can be updated. The name, authorization_type, asset_type and authorization_direction cannot be updated.", + "description": "Updates an authorized orgs desc. The long-running operation from this RPC has a successful status after the authorized orgs desc propagates to long-lasting storage. If a authorized orgs desc contains errors, an error response is returned for the first error encountered. Only the organization list in `AuthorizedOrgsDesc` can be updated. The name, authorization_type, asset_type and authorization_direction cannot be updated.", "flatPath": "v1/accessPolicies/{accessPoliciesId}/authorizedOrgsDescs/{authorizedOrgsDescsId}", "httpMethod": "PATCH", "id": "accesscontextmanager.accessPolicies.authorizedOrgsDescs.patch", @@ -691,7 +691,7 @@ ], "parameters": { "name": { - "description": "Assigned by the server during creation. The last segment has an arbitrary length and has only URI unreserved characters (as defined by [RFC 3986 Section 2.3](https://tools.ietf.org/html/rfc3986#section-2.3)). Should not be specified by the client during creation. Example: \"accessPolicies/122256/authorizedOrgs/b3-BhcX_Ud5N\"", + "description": "Resource name for the `AuthorizedOrgsDesc`. Format: `accessPolicies/{access_policy}/authorizedOrgsDescs/{authorized_orgs_desc}`. The `authorized_orgs_desc` component must begin with a letter, followed by alphanumeric characters or `_`. After you create an `AuthorizedOrgsDesc`, you cannot change its `name`.", "location": "path", "pattern": "^accessPolicies/[^/]+/authorizedOrgsDescs/[^/]+$", "required": true, @@ -1036,7 +1036,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/operations", "httpMethod": "GET", "id": "accesscontextmanager.operations.list", @@ -1213,7 +1213,7 @@ "type": "string" }, "updateMask": { - "description": "Required. Only the fields specified in this mask are updated. Because name and group_key cannot be changed, update_mask is required and must always be: update_mask { paths: \"access_levels\" }", + "description": "Required. Only the fields specified in this mask are updated. Because name and group_key cannot be changed, update_mask is required and may only contain the following fields: `access_levels`, `dry_run_access_levels`. update_mask { paths: \"access_levels\" }", "format": "google-fieldmask", "location": "query", "type": "string" @@ -1233,9 +1233,64 @@ } } } + }, + "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" + ] + } + } } }, - "revision": "20230123", + "revision": "20240226", "rootUrl": "https://accesscontextmanager.googleapis.com/", "schemas": { "AccessContextManagerOperationMetadata": { @@ -1288,7 +1343,7 @@ "type": "string" }, "scopes": { - "description": "The scopes of a policy define which resources an ACM policy can restrict, and where ACM resources can be referenced. For example, a policy with scopes=[\"folders/123\"] has the following behavior: - vpcsc perimeters can only restrict projects within folders/123 - access levels can only be referenced by resources within folders/123. If empty, there are no limitations on which resources can be restricted by an ACM policy, and there are no limitations on where ACM resources can be referenced. Only one policy can include a given scope (attempting to create a second policy which includes \"folders/123\" will result in an error). Currently, scopes cannot be modified after a policy is created. Currently, policies can only have a single scope. Format: list of `folders/{folder_number}` or `projects/{project_number}`", + "description": "The scopes of the AccessPolicy. Scopes define which resources a policy can restrict and where its resources can be referenced. For example, policy A with `scopes=[\"folders/123\"]` has the following behavior: - ServicePerimeter can only restrict projects within `folders/123`. - ServicePerimeter within policy A can only reference access levels defined within policy A. - Only one policy can include a given scope; thus, attempting to create a second policy which includes `folders/123` will result in an error. If no scopes are provided, then any resource within the organization can be restricted. Scopes cannot be modified after a policy is created. Policies can only have a single scope. Format: list of `folders/{folder_number}` or `projects/{project_number}`", "items": { "type": "string" }, @@ -1368,11 +1423,11 @@ "type": "object" }, "AuthorizedOrgsDesc": { - "description": "`AuthorizedOrgsDesc` is a resource that contains a list of organizations for a authorization type and asset type and its authorization direction.", + "description": "`AuthorizedOrgsDesc` contains data for an organization's authorization policy.", "id": "AuthorizedOrgsDesc", "properties": { "assetType": { - "description": "The asset type of this authorized orgs desc. e.g. device, credential strength.", + "description": "The asset type of this authorized orgs desc. Valid values are `ASSET_TYPE_DEVICE`, and `ASSET_TYPE_CREDENTIAL_STRENGTH`.", "enum": [ "ASSET_TYPE_UNSPECIFIED", "ASSET_TYPE_DEVICE", @@ -1381,12 +1436,12 @@ "enumDescriptions": [ "No asset type specified.", "Device asset type.", - "credential strength asset type." + "Credential strength asset type." ], "type": "string" }, "authorizationDirection": { - "description": "Authorization direction of this authorization relationship. i.e. Whether to allow specified orgs to evaluate this org's traffic, or allow specified orgs' traffic to be evaluated by this org. Orgs specified as `AUTHORIZATION_DIRECTION_TO` in this AuthorizedOrgsDesc[com.google.identity.accesscontextmanager.v1.AuthorizedOrgsDesc] must also specify this org as the `AUTHORIZATION_DIRECTION_FROM` in their own AuthorizedOrgsDesc in order for this relationship to take effect. Orgs specified as `AUTHORIZATION_DIRECTION_FROM` in this AuthorizedOrgsDesc[com.google.identity.accesscontextmanager.v1.AuthorizedOrgsDesc] must also specify this org as the `AUTHORIZATION_DIRECTION_TO` in their own AuthorizedOrgsDesc in order for this relationship to take effect.", + "description": "The direction of the authorization relationship between this organization and the organizations listed in the `orgs` field. The valid values for this field include the following: `AUTHORIZATION_DIRECTION_FROM`: Allows this organization to evaluate traffic in the organizations listed in the `orgs` field. `AUTHORIZATION_DIRECTION_TO`: Allows the organizations listed in the `orgs` field to evaluate the traffic in this organization. For the authorization relationship to take effect, all of the organizations must authorize and specify the appropriate relationship direction. For example, if organization A authorized organization B and C to evaluate its traffic, by specifying `AUTHORIZATION_DIRECTION_TO` as the authorization direction, organizations B and C must specify `AUTHORIZATION_DIRECTION_FROM` as the authorization direction in their `AuthorizedOrgsDesc` resource.", "enum": [ "AUTHORIZATION_DIRECTION_UNSPECIFIED", "AUTHORIZATION_DIRECTION_TO", @@ -1394,13 +1449,13 @@ ], "enumDescriptions": [ "No direction specified.", - "Specified orgs will evaluate traffic.", - "Specified orgs' traffic will be evaluated." + "The specified organizations are authorized to evaluate traffic in this organization.", + "The traffic of the specified organizations can be evaluated by this organization." ], "type": "string" }, "authorizationType": { - "description": "The authorization type of this authorized orgs desc. e.g.authorization, troubleshooting or logging.", + "description": "A granular control type for authorization levels. Valid value is `AUTHORIZATION_TYPE_TRUST`.", "enum": [ "AUTHORIZATION_TYPE_UNSPECIFIED", "AUTHORIZATION_TYPE_TRUST" @@ -1412,11 +1467,11 @@ "type": "string" }, "name": { - "description": "Assigned by the server during creation. The last segment has an arbitrary length and has only URI unreserved characters (as defined by [RFC 3986 Section 2.3](https://tools.ietf.org/html/rfc3986#section-2.3)). Should not be specified by the client during creation. Example: \"accessPolicies/122256/authorizedOrgs/b3-BhcX_Ud5N\"", + "description": "Resource name for the `AuthorizedOrgsDesc`. Format: `accessPolicies/{access_policy}/authorizedOrgsDescs/{authorized_orgs_desc}`. The `authorized_orgs_desc` component must begin with a letter, followed by alphanumeric characters or `_`. After you create an `AuthorizedOrgsDesc`, you cannot change its `name`.", "type": "string" }, "orgs": { - "description": "The list of organization ids in this AuthorizedOrgsDesc.", + "description": "The list of organization ids in this AuthorizedOrgsDesc. Format: `organizations/` Example: `organizations/123456`", "items": { "type": "string" }, @@ -1460,14 +1515,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1527,7 +1582,7 @@ "type": "array" }, "negate": { - "description": "Whether to negate the Condition. If true, the Condition becomes a NAND over its non-empty fields, each field must be false for the Condition overall to be satisfied. Defaults to false.", + "description": "Whether to negate the Condition. If true, the Condition becomes a NAND over its non-empty fields. Any non-empty field criteria evaluating to false will result in the Condition to be satisfied. Defaults to false.", "type": "boolean" }, "regions": { @@ -1543,6 +1598,13 @@ "type": "string" }, "type": "array" + }, + "vpcNetworkSources": { + "description": "The request must originate from one of the provided VPC networks in Google Cloud. Cannot specify this field together with `ip_subnetworks`.", + "items": { + "$ref": "VpcNetworkSource" + }, + "type": "array" } }, "type": "object" @@ -1627,7 +1689,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" }, @@ -1648,6 +1710,27 @@ "Authorize access from all service accounts outside the perimeter." ], "type": "string" + }, + "sourceRestriction": { + "description": "Whether to enforce traffic restrictions based on `sources` field. If the `sources` fields is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.", + "enum": [ + "SOURCE_RESTRICTION_UNSPECIFIED", + "SOURCE_RESTRICTION_ENABLED", + "SOURCE_RESTRICTION_DISABLED" + ], + "enumDescriptions": [ + "Enforcement preference unspecified, will not enforce traffic restrictions based on `sources` in EgressFrom.", + "Enforcement preference enabled, traffic restrictions will be enforced based on `sources` in EgressFrom.", + "Enforcement preference disabled, will not enforce traffic restrictions based on `sources` in EgressFrom." + ], + "type": "string" + }, + "sources": { + "description": "Sources that this EgressPolicy authorizes access from. If this field is not empty, then `source_restriction` must be set to `SOURCE_RESTRICTION_ENABLED`.", + "items": { + "$ref": "EgressSource" + }, + "type": "array" } }, "type": "object" @@ -1667,6 +1750,17 @@ }, "type": "object" }, + "EgressSource": { + "description": "The source that EgressPolicy authorizes access from inside the ServicePerimeter to somewhere outside the ServicePerimeter boundaries.", + "id": "EgressSource", + "properties": { + "accessLevel": { + "description": "An AccessLevel resource name that allows protected resources inside the ServicePerimeters to access outside the ServicePerimeter boundaries. AccessLevels listed must be in the same policy as this ServicePerimeter. Referencing a nonexistent AccessLevel will cause an error. If an AccessLevel name is not specified, only resources within the perimeter can be accessed through Google Cloud calls with request origins within the perimeter. Example: `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL`. If a single `*` is specified for `access_level`, then all EgressSources will be allowed.", + "type": "string" + } + }, + "type": "object" + }, "EgressTo": { "description": "Defines the conditions under which an EgressPolicy matches a request. Conditions are based on information about the ApiOperation intended to be performed on the `resources` specified. Note that if the destination of the request is also protected by a ServicePerimeter, then that ServicePerimeter must have an IngressPolicy which allows access in order for this request to succeed. The request must match `operations` AND `resources` fields in order to be allowed egress out of the perimeter.", "id": "EgressTo", @@ -1729,7 +1823,14 @@ "id": "GcpUserAccessBinding", "properties": { "accessLevels": { - "description": "Required. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: \"accessPolicies/9522/accessLevels/device_trusted\"", + "description": "Optional. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: \"accessPolicies/9522/accessLevels/device_trusted\"", + "items": { + "type": "string" + }, + "type": "array" + }, + "dryRunAccessLevels": { + "description": "Optional. Dry run access level that will be evaluated but will not be enforced. The access denial based on dry run policy will be logged. Only one access level is supported, not multiple. This list must have exactly one element. Example: \"accessPolicies/9522/accessLevels/device_trusted\"", "items": { "type": "string" }, @@ -1747,7 +1848,7 @@ "type": "object" }, "GcpUserAccessBindingOperationMetadata": { - "description": "Currently, a completed operation means nothing. In the future, this metadata and a completed operation may indicate that the binding has taken effect and is affecting access decisions for all users.", + "description": "Metadata of GCP Access Binding Long Running Operations.", "id": "GcpUserAccessBindingOperationMetadata", "properties": {}, "type": "object" @@ -1780,7 +1881,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" }, @@ -1836,7 +1937,7 @@ "type": "string" }, "resource": { - "description": "A Google Cloud resource that is allowed to ingress the perimeter. Requests from these resources will be allowed to access perimeter data. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`. The project may be in any Google Cloud organization, not just the organization that the perimeter is defined in. `*` is not allowed, the case of allowing all Google Cloud resources only is not supported.", + "description": "A Google Cloud resource that is allowed to ingress the perimeter. Requests from these resources will be allowed to access perimeter data. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC network format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`. The project may be in any Google Cloud organization, not just the organization that the perimeter is defined in. `*` is not allowed, the case of allowing all Google Cloud resources only is not supported.", "type": "string" } }, @@ -1904,7 +2005,7 @@ "id": "ListAuthorizedOrgsDescsResponse", "properties": { "authorizedOrgsDescs": { - "description": "List of the Authorized Orgs Desc instances.", + "description": "List of all the Authorized Orgs Desc instances.", "items": { "$ref": "AuthorizedOrgsDesc" }, @@ -1971,16 +2072,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" } }, @@ -2015,7 +2134,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" } }, @@ -2059,7 +2178,7 @@ "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/).", + "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": { @@ -2154,7 +2273,7 @@ "type": "object" }, "ServicePerimeter": { - "description": "`ServicePerimeter` describes a set of Google Cloud resources which can freely import and export data amongst themselves, but not export outside of the `ServicePerimeter`. If a request with a source within this `ServicePerimeter` has a target outside of the `ServicePerimeter`, the request will be blocked. Otherwise the request is allowed. There are two types of Service Perimeter - Regular and Bridge. Regular Service Perimeters cannot overlap, a single Google Cloud project can only belong to a single regular Service Perimeter. Service Perimeter Bridges can contain only Google Cloud projects as members, a single Google Cloud project may belong to multiple Service Perimeter Bridges.", + "description": "`ServicePerimeter` describes a set of Google Cloud resources which can freely import and export data amongst themselves, but not export outside of the `ServicePerimeter`. If a request with a source within this `ServicePerimeter` has a target outside of the `ServicePerimeter`, the request will be blocked. Otherwise the request is allowed. There are two types of Service Perimeter - Regular and Bridge. Regular Service Perimeters cannot overlap, a single Google Cloud project or VPC network can only belong to a single regular Service Perimeter. Service Perimeter Bridges can contain only Google Cloud projects as members, a single Google Cloud project may belong to multiple Service Perimeter Bridges.", "id": "ServicePerimeter", "properties": { "description": { @@ -2166,7 +2285,7 @@ "type": "string" }, "perimeterType": { - "description": "Perimeter type indicator. A single project is allowed to be a member of single regular perimeter, but multiple service perimeter bridges. A project cannot be a included in a perimeter bridge without being included in regular perimeter. For perimeter bridges, the restricted service list as well as access level lists must be empty.", + "description": "Perimeter type indicator. A single project or VPC network is allowed to be a member of single regular perimeter, but multiple service perimeter bridges. A project cannot be a included in a perimeter bridge without being included in regular perimeter. For perimeter bridges, the restricted service list as well as access level lists must be empty.", "enum": [ "PERIMETER_TYPE_REGULAR", "PERIMETER_TYPE_BRIDGE" @@ -2222,7 +2341,7 @@ "type": "array" }, "resources": { - "description": "A list of Google Cloud resources that are inside of the service perimeter. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`.", + "description": "A list of Google Cloud resources that are inside of the service perimeter. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC network format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`.", "items": { "type": "string" }, @@ -2285,6 +2404,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", @@ -2330,6 +2503,35 @@ } }, "type": "object" + }, + "VpcNetworkSource": { + "description": "The originating network source in Google Cloud.", + "id": "VpcNetworkSource", + "properties": { + "vpcSubnetwork": { + "$ref": "VpcSubNetwork", + "description": "Sub-segment ranges of a VPC network." + } + }, + "type": "object" + }, + "VpcSubNetwork": { + "description": "Sub-segment ranges inside of a VPC Network.", + "id": "VpcSubNetwork", + "properties": { + "network": { + "description": "Required. Network name. If the network is not part of the organization, the `compute.network.get` permission must be granted to the caller. Format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NETWORK_NAME}` Example: `//compute.googleapis.com/projects/my-project/global/networks/network-1`", + "type": "string" + }, + "vpcIpSubnetworks": { + "description": "CIDR block IP subnetwork specification. The IP address must be an IPv4 address and can be a public or private IP address. Note that for a CIDR IP address block, the specified IP address portion must be properly truncated (i.e. all the host bits must be zero) or the input is considered malformed. For example, \"192.0.2.0/24\" is accepted but \"192.0.2.1/24\" is not. If empty, all IP addresses are allowed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json b/etc/api/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json index 6deb037cfb..8f32533389 100644 --- a/etc/api/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json +++ b/etc/api/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json @@ -2566,9 +2566,556 @@ } } } + }, + "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" + ] + } + } + } + } + } + } } }, - "revision": "20230124", + "revision": "20240305", "rootUrl": "https://adexchangebuyer.googleapis.com/", "schemas": { "AbsoluteDateRange": { @@ -2732,7 +3279,7 @@ }, "billedImpressions": { "$ref": "MetricValue", - "description": "The number of bids for which the buyer was billed." + "description": "The number of bids for which the buyer was billed. Also called valid impressions as invalid impressions are not billed." }, "impressionsWon": { "$ref": "MetricValue", @@ -3109,7 +3656,8 @@ "NON_INTERSTITIAL", "IN_BANNER_VIDEO", "RENDERING_SIZELESS_ADX", - "OMSDK_1_0" + "OMSDK_1_0", + "RENDERING_PLAYABLE" ], "enumDescriptions": [ "Do not use. This is a placeholder value only.", @@ -3149,7 +3697,8 @@ "The creative has an interstitial size of non interstitial. For pretargeting.", "The video type is in-banner video.", "The creative can dynamically resize to fill a variety of slot sizes.", - "The open measurement SDK is supported." + "The open measurement SDK is supported.", + "The creative is considered a playable display creative." ], "type": "string" }, @@ -3163,6 +3712,7 @@ "type": "array" }, "corrections": { + "deprecated": true, "description": "Output only. Shows any corrections that were applied to this creative.", "items": { "$ref": "Correction" @@ -4234,6 +4784,7 @@ "type": "string" }, "formats": { + "deprecated": true, "description": "Creative formats bidded on or allowed to bid on, can be empty. Although this field is a list, it can only be populated with a single item. A HTTP 400 bad request error will be returned in the response if you specify multiple items.", "items": { "enum": [ @@ -4349,6 +4900,7 @@ "type": "string" }, "detailId": { + "deprecated": true, "description": "Note: this field will be deprecated, use \"detail\" field instead. When \"detail\" field represents an integer value, this field is populated as the same integer value \"detail\" field represents, otherwise this field will be 0. The ID of the detail. The associated value can be looked up in the dictionary file corresponding to the DetailType in the response message.", "format": "int32", "type": "integer" @@ -4441,7 +4993,7 @@ "type": "string" }, "guaranteedLooks": { - "description": "Count of guaranteed looks. Required for deal, optional for product.", + "description": "Count of guaranteed looks. Required for deal, optional for product. For CPD deals, buyer changes to guaranteed_looks will be ignored.", "format": "int64", "type": "string" }, @@ -4451,7 +5003,7 @@ "type": "string" }, "minimumDailyLooks": { - "description": "Daily minimum looks for CPD deal types.", + "description": "Daily minimum looks for CPD deal types. For CPD deals, buyer should negotiate on this field instead of guaranteed_looks.", "format": "int64", "type": "string" }, @@ -5079,6 +5631,7 @@ "type": "number" }, "storeUrl": { + "deprecated": true, "description": "The URL to the app store to purchase/download the promoted app.", "type": "string" }, @@ -5471,6 +6024,7 @@ "type": "boolean" }, "isSetupComplete": { + "deprecated": true, "description": "Output only. True, if the buyside inventory setup is complete for this proposal.", "readOnly": true, "type": "boolean" @@ -5679,7 +6233,8 @@ "OPPO", "SAMSUNG", "VIVO", - "XIAOMI" + "XIAOMI", + "LG_TV" ], "enumDescriptions": [ "A placeholder for an unknown app store.", @@ -5694,7 +6249,8 @@ "OPPO App Market", "Samsung Galaxy Store", "VIVO App Store", - "Xiaomi GetApps" + "Xiaomi GetApps", + "LG TV" ], "type": "string" }, @@ -5785,6 +6341,7 @@ "type": "object" }, "SecurityContext": { + "deprecated": true, "description": "Output only. A security context.", "id": "SecurityContext", "properties": { @@ -5854,6 +6411,7 @@ }, "securityType": { "$ref": "SecurityContext", + "deprecated": true, "description": "Matches impressions for a particular security type." } }, @@ -5875,6 +6433,7 @@ "description": "Disapproval bound to this restriction. Only present if status=DISAPPROVED. Can be used to filter the response of the creatives.list method." }, "disapprovalReasons": { + "deprecated": true, "description": "Any disapprovals bound to this restriction. Only present if status=DISAPPROVED. Can be used to filter the response of the creatives.list method. Deprecated; use disapproval field instead.", "items": { "$ref": "Disapproval" diff --git a/etc/api/adexperiencereport/v1/adexperiencereport-api.json b/etc/api/adexperiencereport/v1/adexperiencereport-api.json index dc89aaf1b2..800c3ec8b3 100644 --- a/etc/api/adexperiencereport/v1/adexperiencereport-api.json +++ b/etc/api/adexperiencereport/v1/adexperiencereport-api.json @@ -6,6 +6,7 @@ "description": "Views Ad Experience Report data, and gets a list of sites that have a significant number of annoying ads.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/ad-experience-report/", + "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" @@ -138,7 +139,7 @@ } } }, - "revision": "20230114", + "revision": "20240207", "rootUrl": "https://adexperiencereport.googleapis.com/", "schemas": { "PlatformSummary": { @@ -153,6 +154,12 @@ "WARNING", "FAILING" ], + "enumDeprecated": [ + false, + false, + true, + false + ], "enumDescriptions": [ "Not reviewed.", "Passing.", @@ -190,6 +197,7 @@ "type": "string" }, "region": { + "deprecated": true, "description": "The site's regions on this platform. No longer populated, because there is no longer any semantic difference between sites in different regions.", "items": { "enum": [ diff --git a/etc/api/admin/datatransfer_v1/admin-api.json b/etc/api/admin/datatransfer_v1/admin-api.json index f129daf091..247037c95b 100644 --- a/etc/api/admin/datatransfer_v1/admin-api.json +++ b/etc/api/admin/datatransfer_v1/admin-api.json @@ -272,7 +272,7 @@ } } }, - "revision": "20230117", + "revision": "20240227", "rootUrl": "https://admin.googleapis.com/", "schemas": { "Application": { diff --git a/etc/api/admin/directory_v1/admin-api.json b/etc/api/admin/directory_v1/admin-api.json index e343fdb34f..027aa37308 100644 --- a/etc/api/admin/directory_v1/admin-api.json +++ b/etc/api/admin/directory_v1/admin-api.json @@ -305,7 +305,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", @@ -613,6 +614,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", @@ -2376,11 +2404,13 @@ "description": "Whether to return all sub-organizations or just immediate children.", "enum": [ "all", - "children" + "children", + "allIncludingParent" ], "enumDescriptions": [ "All sub-organizational units.", - "Immediate children only (default)." + "Immediate children only (default).", + "All sub-organizational units and the specified organizational unit (root if not specified)." ], "location": "query", "type": "string" @@ -3284,6 +3314,11 @@ "required": true, "type": "string" }, + "includeIndirectRoleAssignments": { + "description": "When set to `true`, fetches indirect role assignments (i.e. role assignment via a group) as well as direct ones. Defaults to `false`. You must specify `user_key` or the indirect role assignments will not be included.", + "location": "query", + "type": "boolean" + }, "maxResults": { "description": "Maximum number of results to return.", "format": "int32", @@ -3303,7 +3338,7 @@ "type": "string" }, "userKey": { - "description": "The user's primary email address, alias email address, or unique user ID. If included in the request, returns role assignments only for this user.", + "description": "The primary email address, alias email address, or unique user or group ID. If included in the request, returns role assignments only for this user or group.", "location": "query", "type": "string" } @@ -3896,12 +3931,18 @@ ] }, "insert": { - "description": "Creates a user.", + "description": "Creates a user. Mutate calls immediately following user creation might sometimes fail as the user isn't fully created due to propagation delay in our backends. Check the error details for the \"User creation is not complete\" message to see if this is the case. Retrying the calls after some time can help in this case.", "flatPath": "admin/directory/v1/users", "httpMethod": "POST", "id": "directory.users.insert", "parameterOrder": [], - "parameters": {}, + "parameters": { + "resolveConflictAccount": { + "description": "Optional. If set to `true`, the option selected for [handling unmanaged user accounts](https://support.google.com/a/answer/11112794) will apply. Default: `false`", + "location": "query", + "type": "boolean" + } + }, "path": "admin/directory/v1/users", "request": { "$ref": "User" @@ -4072,7 +4113,7 @@ ] }, "patch": { - "description": "Updates a user using patch semantics. The update method should be used instead, since it also supports patch semantics and has better performance. This method is unable to clear fields that contain repeated objects (`addresses`, `phones`, etc). Use the update method instead.", + "description": "Updates a user using patch semantics. The update method should be used instead, because it also supports patch semantics and has better performance. If you're mapping an external identity to a Google identity, use the [`update`](https://developers.google.com/admin-sdk/directory/v1/reference/users/update) method instead of the `patch` method. This method is unable to clear fields that contain repeated objects (`addresses`, `phones`, etc). Use the update method instead.", "flatPath": "admin/directory/v1/users/{userKey}", "httpMethod": "PATCH", "id": "directory.users.patch", @@ -4630,7 +4671,7 @@ } } }, - "revision": "20230117", + "revision": "20240227", "rootUrl": "https://admin.googleapis.com/", "schemas": { "Alias": { @@ -4769,6 +4810,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\u2019re 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\u2019s 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\u2019s 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\u2019s 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", @@ -5138,6 +5266,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", @@ -5343,30 +5496,43 @@ "deprovisionReason": { "description": "(Read-only) Deprovision reason.", "enum": [ - "deprovisionReasonUnspecified", - "deprovisionReasonSameModelReplacement", - "deprovisionReasonUpgrade", - "deprovisionReasonDomainMove", - "deprovisionReasonServiceExpiration", - "deprovisionReasonOther", - "deprovisionReasonDifferentModelReplacement", - "deprovisionReasonRetiringDevice", - "deprovisionReasonUpgradeTransfer", - "deprovisionReasonNotRequired", - "deprovisionReasonRepairCenter" + "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.", - "Device upgrade.", - "Domain move.", - "Service expiration.", - "Other.", - "Different model replacement.", - "Retiring device.", - "Transferring perpetual upgrade to a new device.", - "No reason required, i.e. licenses returned to customer's license pool.", - "Deprovisioned by a RMA (service center) caller." + "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" }, @@ -5400,6 +5566,27 @@ "description": "The unique ID of the Chrome device.", "type": "string" }, + "deviceLicenseType": { + "description": "Output only. Device license type.", + "enum": [ + "deviceLicenseTypeUnspecified", + "enterprise", + "enterpriseUpgrade", + "educationUpgrade", + "education", + "kioskUpgrade" + ], + "enumDescriptions": [ + "The license type is unknown.", + "The device is bundled with a perpetual Chrome Enterprise Upgrade.", + "The device has an annual standalone Chrome Enterprise Upgrade.", + "The device has a perpetual standalone Chrome Education Upgrade.", + "The device is bundled with a perpetual Chrome Education Upgrade.", + "The device has an annual Kiosk Upgrade." + ], + "readOnly": true, + "type": "string" + }, "diskVolumeReports": { "description": "Reports of disk space and other info about mounted/connected volumes.", "items": { @@ -5895,7 +6082,9 @@ "SET_VOLUME", "WIPE_USERS", "REMOTE_POWERWASH", - "DEVICE_START_CRD_SESSION" + "DEVICE_START_CRD_SESSION", + "CAPTURE_LOGS", + "FETCH_SUPPORT_PACKET" ], "enumDescriptions": [ "The command type was unspecified.", @@ -5904,7 +6093,9 @@ "Set the volume of the device. Can only be issued to Kiosk and managed guest session devices.", "Wipe all the users off of the device. Executing this command in the device will remove all user profile data, but it will keep device policy and enrollment.", "Wipes the device by performing a power wash. Executing this command in the device will remove all data including user policies, device policies and enrollment policies. Warning: This will revert the device back to a factory state with no enrollment unless the device is subject to forced or auto enrollment. Use with caution, as this is an irreversible action!", - "Starts a Chrome Remote Desktop session." + "Starts a Chrome Remote Desktop session.", + "Capture the system logs of a kiosk device. The logs can be downloaded from the downloadUrl link present in `deviceFiles` field of [chromeosdevices](https://developers.google.com/admin-sdk/directory/reference/rest/v1/chromeosdevices)", + "Fetch support packet from a device remotely. Support packet is a zip archive that contains various system logs and debug data from a ChromeOS device. The support packet can be downloaded from the downloadURL link present in the `deviceFiles` field of [`chromeosdevices`](https://developers.google.com/admin-sdk/directory/reference/rest/v1/chromeosdevices)" ], "type": "string" } @@ -5916,7 +6107,7 @@ "id": "DirectoryChromeosdevicesCommandResult", "properties": { "commandResultPayload": { - "description": "The payload for the command result. The following commands respond with a payload: - DEVICE_START_CRD_SESSION: Payload is a stringified JSON object in the form: { \"url\": url }. The URL provides a link to the CRD session.", + "description": "The payload for the command result. The following commands respond with a payload: * `DEVICE_START_CRD_SESSION`: Payload is a stringified JSON object in the form: { \"url\": url }. The URL provides a link to the Chrome Remote Desktop session.", "type": "string" }, "errorMessage": { @@ -5960,7 +6151,9 @@ "SET_VOLUME", "WIPE_USERS", "REMOTE_POWERWASH", - "DEVICE_START_CRD_SESSION" + "DEVICE_START_CRD_SESSION", + "CAPTURE_LOGS", + "FETCH_SUPPORT_PACKET" ], "enumDescriptions": [ "The command type was unspecified.", @@ -5969,12 +6162,14 @@ "Set the volume of the device. Can only be issued to Kiosk and managed guest session devices.", "Wipe all the users off of the device. Executing this command in the device will remove all user profile data, but it will keep device policy and enrollment.", "Wipes the device by performing a power wash. Executing this command in the device will remove all data including user policies, device policies and enrollment policies. Warning: This will revert the device back to a factory state with no enrollment unless the device is subject to forced or auto enrollment. Use with caution, as this is an irreversible action!", - "Starts a Chrome Remote Desktop session." + "Starts a Chrome Remote Desktop session.", + "Capture the system logs of a kiosk device. The logs can be downloaded from the downloadUrl link present in `deviceFiles` field of [chromeosdevices](https://developers.google.com/admin-sdk/directory/reference/rest/v1/chromeosdevices)", + "Fetch support packet from a device remotely. Support packet is a zip archive that contains various system logs and debug data from a ChromeOS device. The support packet can be downloaded from the downloadURL link present in the `deviceFiles` field of [`chromeosdevices`](https://developers.google.com/admin-sdk/directory/reference/rest/v1/chromeosdevices)" ], "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. If a device is being used, ackedUserPresence must be set to true to acknowledge that you want to start a CRD session anyways. It is false by default, so a CRD command will fail if used on an active device without this field.", + "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]. * `FETCH_SUPPORT_PACKET`: Payload is optionally a stringified JSON object in the form: {\"supportPacketDetails\":{ \"issueCaseId\": optional_support_case_id_string, \"issueDescription\": optional_issue_description_string, \"requestedDataCollectors\": []}} The list of available `data_collector_enums` are as following: Chrome System Information (1), Crash IDs (2), Memory Details (3), UI Hierarchy (4), Additional ChromeOS Platform Logs (5), Device Event (6), Intel WiFi NICs Debug Dump (7), Touch Events (8), Lacros (9), Lacros System Information (10), ChromeOS Flex Logs (11), DBus Details (12), ChromeOS Network Routes (13), ChromeOS Shill (Connection Manager) Logs (14), Policies (15), ChromeOS System State and Logs (16), ChromeOS System Logs (17), ChromeOS Chrome User Logs (18), ChromeOS Bluetooth (19), ChromeOS Connected Input Devices (20), ChromeOS Traffic Counters (21), ChromeOS Virtual Keyboard (22), ChromeOS Network Health (23). See more details in [help article](https://support.google.com/chrome/a?p=remote-log).", "type": "string" } }, @@ -6433,7 +6628,7 @@ "id": "Member", "properties": { "delivery_settings": { - "description": "Defines mail delivery preferences of member. This is only supported by create/update/get.", + "description": "Defines mail delivery preferences of member. This field is only supported by `insert`, `update`, and `get` methods.", "type": "string" }, "email": { @@ -6761,7 +6956,8 @@ "id": "OrgUnit", "properties": { "blockInheritance": { - "description": "Determines if a sub-organizational unit can inherit the settings of the parent organization. The default value is `false`, meaning a sub-organizational unit inherits the settings of the nearest parent organizational unit. For more information on inheritance and users in an organization structure, see the [administration help center](https://support.google.com/a/answer/4352075).", + "deprecated": true, + "description": "Determines if a sub-organizational unit can inherit the settings of the parent organization. The default value is `false`, meaning a sub-organizational unit inherits the settings of the nearest parent organizational unit. This field is deprecated. Setting it to `true` is no longer supported and can have _unintended consequences_. For more information about inheritance and users in an organization structure, see the [administration help center](https://support.google.com/a/answer/4352075).", "type": "boolean" }, "description": { @@ -7168,7 +7364,20 @@ "id": "RoleAssignment", "properties": { "assignedTo": { - "description": "The unique ID of the entity this role is assigned to\u2014either the `user_id` of a user or the `uniqueId` of a service account, as defined in [Identity and Access Management (IAM)](https://cloud.google.com/iam/docs/reference/rest/v1/projects.serviceAccounts).", + "description": "The unique ID of the entity this role is assigned to\u2014either the `user_id` of a user, the `group_id` of a group, or the `uniqueId` of a service account as defined in [Identity and Access Management (IAM)](https://cloud.google.com/iam/docs/reference/rest/v1/projects.serviceAccounts).", + "type": "string" + }, + "assigneeType": { + "description": "Output only. The type of the assignee (`USER` or `GROUP`).", + "enum": [ + "user", + "group" + ], + "enumDescriptions": [ + "An individual user within the domain.", + "A group within the domain." + ], + "readOnly": true, "type": "string" }, "etag": { @@ -7405,6 +7614,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", @@ -7472,7 +7708,7 @@ "type": "object" }, "User": { - "description": "The Directory API allows you to create and manage your account's users, user aliases, and user Gmail chat profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).", + "description": "The Directory API allows you to create and manage your account's users, user aliases, and user Google profile photos. For more information about common tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/directory/v1/guides/manage-user-aliases.html).", "id": "User", "properties": { "addresses": { @@ -7524,7 +7760,7 @@ "type": "string" }, "emails": { - "description": "The list of the user's email addresses. The maximum allowed data size for this field is 10KB.", + "description": "The list of the user's email addresses. The maximum allowed data size for this field is 10KB. This excludes `publicKeyEncryptionCertificates`.", "type": "any" }, "etag": { @@ -7695,7 +7931,7 @@ "type": "string" }, "thumbnailPhotoUrl": { - "description": "Output only. Photo Url of the user (Read-only)", + "description": "Output only. The URL of the user's profile photo. The URL might be temporary or private.", "readOnly": true, "type": "string" }, @@ -7831,6 +8067,24 @@ "description": "If this is user's primary email. Only one entry could be marked as primary.", "type": "boolean" }, + "public_key_encryption_certificates": { + "description": "Public Key Encryption Certificates. Current limit: 1 per email address, and 5 per user.", + "properties": { + "certificate": { + "description": "X.509 encryption certificate in `PEM` format. Must only be an end-entity (leaf) certificate.", + "type": "string" + }, + "is_default": { + "description": "Whether this is the default certificate for the given email address.", + "type": "boolean" + }, + "state": { + "description": "Denotes the certificate's state in its lifecycle. Possible values are `not_yet_validated`, `valid`, `invalid`, `expired`, and `revoked`.", + "type": "string" + } + }, + "type": "object" + }, "type": { "description": "Each entry can have a type which indicates standard types of that entry. For example email could be of home, work etc. In addition to the standard type, an entry can have a custom type and can take any value Such types should have the CUSTOM value as type and also have a customType value.", "type": "string" diff --git a/etc/api/admin/reports_v1/admin-api.json b/etc/api/admin/reports_v1/admin-api.json index e74e7fa0d5..0c1d896265 100644 --- a/etc/api/admin/reports_v1/admin-api.json +++ b/etc/api/admin/reports_v1/admin-api.json @@ -149,7 +149,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.", @@ -172,10 +173,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" }, @@ -358,7 +360,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" @@ -431,7 +434,7 @@ "type": "string" }, "date": { - "description": "Represents the date the usage occurred, based on PST time zone. The timestamp is in the [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601), `yyyy-mm-dd`.", + "description": "Represents the date the usage occurred, based on UTC-8:00 (Pacific Standard Time). The timestamp is in the [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601), `yyyy-mm-dd`.", "location": "path", "pattern": "(\\d){4}-(\\d){2}-(\\d){2}", "required": true, @@ -479,7 +482,7 @@ "type": "string" }, "date": { - "description": "Represents the date the usage occurred. The timestamp is in the ISO 8601 format, yyyy-mm-dd. We recommend you use your account's time zone for this.", + "description": "Represents the date the usage occurred, based on UTC-8:00 (Pacific Standard Time). The timestamp is in the [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601), `yyyy-mm-dd`.", "location": "path", "pattern": "(\\d){4}-(\\d){2}-(\\d){2}", "required": true, @@ -560,7 +563,7 @@ "type": "string" }, "date": { - "description": "Represents the date the usage occurred, based on GMT-7:00 (Pacific Standard Time). The timestamp is in the [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601), `yyyy-mm-dd`.", + "description": "Represents the date the usage occurred, based on UTC-8:00 (Pacific Standard Time). The timestamp is in the [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601), `yyyy-mm-dd`.", "location": "path", "pattern": "(\\d){4}-(\\d){2}-(\\d){2}", "required": true, @@ -623,7 +626,7 @@ } } }, - "revision": "20230117", + "revision": "20240227", "rootUrl": "https://admin.googleapis.com/", "schemas": { "Activities": { @@ -688,7 +691,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": { @@ -840,7 +843,7 @@ "type": "object" }, "payload": { - "description": "A Boolean value to indicate whether payload is wanted. Optional.", + "description": "A Boolean value to indicate whether payload is wanted. A payload is data that is sent in the body of an HTTP POST, PUT, or PATCH message and contains important information about the request. Optional.", "type": "boolean" }, "resourceId": { diff --git a/etc/api/admob/v1/admob-api.json b/etc/api/admob/v1/admob-api.json index 2bde00187f..2d820241f7 100644 --- a/etc/api/admob/v1/admob-api.json +++ b/etc/api/admob/v1/admob-api.json @@ -321,7 +321,7 @@ } } }, - "revision": "20230124", + "revision": "20240223", "rootUrl": "https://admob.googleapis.com/", "schemas": { "AdUnit": { @@ -363,7 +363,7 @@ "id": "App", "properties": { "appApprovalState": { - "description": "Output only. The approval state for the app.", + "description": "Output only. The approval state for the app. The field is read-only.", "enum": [ "APP_APPROVAL_STATE_UNSPECIFIED", "ACTION_REQUIRED", @@ -644,10 +644,10 @@ "CLDR country code of the place where the ad views/clicks occur (for example, \"US\" or \"FR\"). This is a geography dimension.", "Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension.", "Mobile OS platform of the app (for example, \"Android\" or \"iOS\").", - "Mobile operating system version, e.g. \"iOS 13.5.1\". **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS), [OBSERVED_ECPM](#Metric.ENUM_VALUES.OBSERVED_ECPM) metrics.", - "GMA SDK version, e.g. \"iOS 7.62.0\". **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS), [OBSERVED_ECPM](#Metric.ENUM_VALUES.OBSERVED_ECPM) metrics.", - "For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString. **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS), [OBSERVED_ECPM](#Metric.ENUM_VALUES.OBSERVED_ECPM) metrics.", - "Restriction mode for ads serving (e.g. \"Non-personalized ads\"). **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS) metric." + "Mobile operating system version, e.g. \"iOS 13.5.1\".", + "GMA SDK version, e.g. \"iOS 7.62.0\".", + "For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString.", + "Restriction mode for ads serving (e.g. \"Non-personalized ads\")." ], "type": "string" }, @@ -742,10 +742,10 @@ "CLDR country code of the place where the ad views/clicks occur (for example, \"US\" or \"FR\"). This is a geography dimension.", "Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension.", "Mobile OS platform of the app (for example, \"Android\" or \"iOS\").", - "Mobile operating system version, e.g. \"iOS 13.5.1\". **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS), [OBSERVED_ECPM](#Metric.ENUM_VALUES.OBSERVED_ECPM) metrics.", - "GMA SDK version, e.g. \"iOS 7.62.0\". **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS), [OBSERVED_ECPM](#Metric.ENUM_VALUES.OBSERVED_ECPM) metrics.", - "For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString. **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS), [OBSERVED_ECPM](#Metric.ENUM_VALUES.OBSERVED_ECPM) metrics.", - "Restriction mode for ads serving (e.g. \"Non-personalized ads\"). **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS) metric." + "Mobile operating system version, e.g. \"iOS 13.5.1\".", + "GMA SDK version, e.g. \"iOS 7.62.0\".", + "For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString.", + "Restriction mode for ads serving (e.g. \"Non-personalized ads\")." ], "type": "string" }, @@ -793,10 +793,10 @@ "CLDR country code of the place where the ad views/clicks occur (for example, \"US\" or \"FR\"). This is a geography dimension.", "Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension.", "Mobile OS platform of the app (for example, \"Android\" or \"iOS\").", - "Mobile operating system version, e.g. \"iOS 13.5.1\". **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS), [OBSERVED_ECPM](#Metric.ENUM_VALUES.OBSERVED_ECPM) metrics.", - "GMA SDK version, e.g. \"iOS 7.62.0\". **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS), [OBSERVED_ECPM](#Metric.ENUM_VALUES.OBSERVED_ECPM) metrics.", - "For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString. **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS), [OBSERVED_ECPM](#Metric.ENUM_VALUES.OBSERVED_ECPM) metrics.", - "Restriction mode for ads serving (e.g. \"Non-personalized ads\"). **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS) metric." + "Mobile operating system version, e.g. \"iOS 13.5.1\".", + "GMA SDK version, e.g. \"iOS 7.62.0\".", + "For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString.", + "Restriction mode for ads serving (e.g. \"Non-personalized ads\")." ], "type": "string" }, diff --git a/etc/api/admob/v1beta/admob-api.json b/etc/api/admob/v1beta/admob-api.json index 6add48e95b..ce28bf9e8f 100644 --- a/etc/api/admob/v1beta/admob-api.json +++ b/etc/api/admob/v1beta/admob-api.json @@ -202,12 +202,115 @@ "response": { "$ref": "ListAdSourcesResponse" }, + "scopes": [ + "https://www.googleapis.com/auth/admob.readonly", + "https://www.googleapis.com/auth/admob.report" + ], + "streamingType": "NONE" + } + }, + "resources": { + "adapters": { + "methods": { + "list": { + "description": "List the adapters of the ad source.", + "flatPath": "v1beta/accounts/{accountsId}/adSources/{adSourcesId}/adapters", + "httpMethod": "GET", + "id": "admob.accounts.adSources.adapters.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of adapters to return. If unspecified or 0, at most 10,000 adapters will be returned. The maximum value is 20,000; values above 20,000 will be coerced to 20,000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListAdapters` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent which owns this collection of adapters. Format: accounts/{publisher_id}/adSources/{ad_source_id}", + "location": "path", + "pattern": "^accounts/[^/]+/adSources/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/adapters", + "response": { + "$ref": "ListAdaptersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/admob.readonly" + ], + "streamingType": "NONE" + } + } + } + } + }, + "adUnitMappings": { + "methods": { + "batchCreate": { + "description": "Batch create the ad unit mappings under the specific AdMob account. The maximum allowed batch size is 100. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", + "flatPath": "v1beta/accounts/{accountsId}/adUnitMappings:batchCreate", + "httpMethod": "POST", + "id": "admob.accounts.adUnitMappings.batchCreate", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The AdMob account which owns this collection of ad unit mappings. Format: accounts/{publisher_id} See https://support.google.com/admob/answer/2784578 for instructions on how to find your AdMob publisher ID.", + "location": "path", + "pattern": "^accounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/adUnitMappings:batchCreate", + "request": { + "$ref": "BatchCreateAdUnitMappingsRequest" + }, + "response": { + "$ref": "BatchCreateAdUnitMappingsResponse" + }, "streamingType": "NONE" } } }, "adUnits": { "methods": { + "create": { + "description": "Creates an ad unit under the specified AdMob account. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", + "flatPath": "v1beta/accounts/{accountsId}/adUnits", + "httpMethod": "POST", + "id": "admob.accounts.adUnits.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Resource name of the account to create the specified ad unit for. Example: accounts/pub-9876543210987654", + "location": "path", + "pattern": "^accounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/adUnits", + "request": { + "$ref": "AdUnit" + }, + "response": { + "$ref": "AdUnit" + }, + "streamingType": "NONE" + }, "list": { "description": "List the ad units under the specified AdMob account.", "flatPath": "v1beta/accounts/{accountsId}/adUnits", @@ -245,10 +348,110 @@ ], "streamingType": "NONE" } + }, + "resources": { + "adUnitMappings": { + "methods": { + "create": { + "description": "Create an ad unit mapping under the specific AdMob account and ad unit. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", + "flatPath": "v1beta/accounts/{accountsId}/adUnits/{adUnitsId}/adUnitMappings", + "httpMethod": "POST", + "id": "admob.accounts.adUnits.adUnitMappings.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent which owns the ad unit mapping. Format: accounts/{publisher_id}/adUnits/{ad_unit_id}", + "location": "path", + "pattern": "^accounts/[^/]+/adUnits/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/adUnitMappings", + "request": { + "$ref": "AdUnitMapping" + }, + "response": { + "$ref": "AdUnitMapping" + }, + "streamingType": "NONE" + }, + "list": { + "description": "List ad unit mappings under the specified AdMob account and ad unit. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", + "flatPath": "v1beta/accounts/{accountsId}/adUnits/{adUnitsId}/adUnitMappings", + "httpMethod": "GET", + "id": "admob.accounts.adUnits.adUnitMappings.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "The filter string that uses [EBNF grammar syntax](https://google.aip.dev/assets/misc/ebnf-filtering.txt). Possible field to filter by is: - \"DISPLAY_NAME\" Possible filter function is: - `IN`: Used to filter fields that represent a singleton including \"DISPLAY_NAME\". The filter functions can be added together using `AND`. `OR` functionality is not supported. Example: filter: IN(DISPLAY_NAME, \"Test Ad Unit Mapping 1\", \"Test Ad Unit Mapping 2\")", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of ad unit mappings to return. If unspecified or 0, at most 10,000 ad unit mappings will be returned. The maximum value is 20,000; values above 20,000 will be coerced to 20,000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListAdUnitMappings` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent which owns this collection of ad unit mappings. Format: accounts/{publisher_id}/adUnits/{ad_unit_id}", + "location": "path", + "pattern": "^accounts/[^/]+/adUnits/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/adUnitMappings", + "response": { + "$ref": "ListAdUnitMappingsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/admob.readonly" + ], + "streamingType": "NONE" + } + } + } } }, "apps": { "methods": { + "create": { + "description": "Creates an app under the specified AdMob account. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", + "flatPath": "v1beta/accounts/{accountsId}/apps", + "httpMethod": "POST", + "id": "admob.accounts.apps.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Resource name of the account for which the app is being created. Example: accounts/pub-9876543210987654", + "location": "path", + "pattern": "^accounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/apps", + "request": { + "$ref": "App" + }, + "response": { + "$ref": "App" + }, + "streamingType": "NONE" + }, "list": { "description": "List the apps under the specified AdMob account.", "flatPath": "v1beta/accounts/{accountsId}/apps", @@ -288,6 +491,202 @@ } } }, + "campaignReport": { + "methods": { + "generate": { + "description": "Generates Campaign Report based on provided specifications.", + "flatPath": "v1beta/accounts/{accountsId}/campaignReport:generate", + "httpMethod": "POST", + "id": "admob.accounts.campaignReport.generate", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Resource name of the account to generate the report for. Example: accounts/pub-9876543210987654", + "location": "path", + "pattern": "^accounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/campaignReport:generate", + "request": { + "$ref": "GenerateCampaignReportRequest" + }, + "response": { + "$ref": "GenerateCampaignReportResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/admob.readonly", + "https://www.googleapis.com/auth/admob.report" + ], + "streamingType": "NONE" + } + } + }, + "mediationGroups": { + "methods": { + "create": { + "description": "Create a mediation group under the specific AdMob account. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", + "flatPath": "v1beta/accounts/{accountsId}/mediationGroups", + "httpMethod": "POST", + "id": "admob.accounts.mediationGroups.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent which owns the mediation group. Format: accounts/{publisher_id}", + "location": "path", + "pattern": "^accounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/mediationGroups", + "request": { + "$ref": "MediationGroup" + }, + "response": { + "$ref": "MediationGroup" + }, + "streamingType": "NONE" + }, + "list": { + "description": "List mediation groups under the specified AdMob account. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", + "flatPath": "v1beta/accounts/{accountsId}/mediationGroups", + "httpMethod": "GET", + "id": "admob.accounts.mediationGroups.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "The filter string that uses [EBNF grammar syntax](https://google.aip.dev/assets/misc/ebnf-filtering.txt). Possible fields to filter by are: - \"AD_SOURCE_IDS\" - \"AD_UNIT_IDS\" - \"APP_IDS\" - \"DISPLAY_NAME\" - \"FORMAT\" - \"MEDIATION_GROUP_ID\" - \"PLATFORM\" - \"STATE\" - \"TARGETED_REGION_CODES\" Possible filter functions are: - `IN`: Used to filter fields that represent a singleton including \"MEDIATION_GROUP_ID\", \"DISPLAY_NAME\", \"STATE\", \"PLATFORM\", and \"FORMAT\". - `CONTAINS_ANY`: Used to filter fields that represent a collection including \"AD_SOURCE_IDS\", \"AD_UNIT_IDS\", \"APP_IDS\", and \"TARGETED_REGION_CODES\". The filter functions can be added together using `AND`. `OR` functionality is not supported. Example: filter: IN(DISPLAY_NAME, \"Test Group 1\", \"Test Group 2\") AND IN(PLATFORM, \"ANDROID\") AND CONTAINS_ANY(AD_SOURCE_IDS, \"5450213213286189855\")", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of mediation groups to return. If unspecified or 0, at most 10,000 mediation groups will be returned. The maximum value is 20,000; values above 20,000 will be coerced to 20,000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListMediationGroupsResponse`; indicates that this is a continuation of a prior `ListMediationGroups` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Resource name of the account to list mediation groups for. Example: accounts/pub-9876543210987654", + "location": "path", + "pattern": "^accounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/mediationGroups", + "response": { + "$ref": "ListMediationGroupsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/admob.readonly" + ], + "streamingType": "NONE" + }, + "patch": { + "description": "Update the specified mediation group under the specified AdMob account. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", + "flatPath": "v1beta/accounts/{accountsId}/mediationGroups/{mediationGroupsId}", + "httpMethod": "PATCH", + "id": "admob.accounts.mediationGroups.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Resource name for this mediation group. Format is: accounts/{publisher_id}/mediationGroups/{mediation_group_id} Example: accounts/pub-9876543210987654/mediationGroups/0123456789", + "location": "path", + "pattern": "^accounts/[^/]+/mediationGroups/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "List of mediation group fields to be updated. Updates to repeated fields such as items in a list will fully replace the existing value(s) with the new value(s). Updates to individual values in a map can be done by indexing by the key. The following field masks are supported for mediation group updates: - \"mediation_group_lines[\\\"{mediation_group_line_id}\\\"]\" clang-format off - \"mediation_group_lines[\\\"{mediation_group_line_id}\\\"].ad_unit_mappings[\\\"{ad_unit_id}\\\"]\" clang-format on - \"mediation_group_lines[\\\"{mediation_group_line_id}\\\"].cpm_micros\" - \"mediation_group_lines[\\\"{mediation_group_line_id}\\\"].cpm_mode\" - \"mediation_group_lines[\\\"{mediation_group_line_id}\\\"].state\" - \"mediation_group_lines[\\\"{mediation_group_line_id}\\\"].display_name\" - \"targeting.ad_unit_ids\" To update a mediation group with a new mediation group line, use a distinct negative number for the \"mediation_group_line_id\". For Example: update_mask { paths: \"mediation_group_lines[\\\"123456789012345\\\"].cpm_micros\" }", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+name}", + "request": { + "$ref": "MediationGroup" + }, + "response": { + "$ref": "MediationGroup" + }, + "streamingType": "NONE" + } + }, + "resources": { + "mediationAbExperiments": { + "methods": { + "create": { + "description": "Create an A/B testing experiment for a specified AdMob account and a mediation group. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", + "flatPath": "v1beta/accounts/{accountsId}/mediationGroups/{mediationGroupsId}/mediationAbExperiments", + "httpMethod": "POST", + "id": "admob.accounts.mediationGroups.mediationAbExperiments.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent which owns the mediation group. Format: accounts/{publisher_id}/mediationGroups/{mediation_group_id}", + "location": "path", + "pattern": "^accounts/[^/]+/mediationGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/mediationAbExperiments", + "request": { + "$ref": "MediationAbExperiment" + }, + "response": { + "$ref": "MediationAbExperiment" + }, + "streamingType": "NONE" + }, + "stop": { + "description": "Stop the mediation A/B experiment and choose a variant. This method has limited access. If you see a 403 permission denied error, please reach out to your account manager for access.", + "flatPath": "v1beta/accounts/{accountsId}/mediationGroups/{mediationGroupsId}/mediationAbExperiments:stop", + "httpMethod": "POST", + "id": "admob.accounts.mediationGroups.mediationAbExperiments.stop", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of the mediation group, the experiment for which to choose a variant for. Example: accounts/pub-9876543210987654/mediationGroups/0123456789/ mediationAbExperiments", + "location": "path", + "pattern": "^accounts/[^/]+/mediationGroups/[^/]+/mediationAbExperiments$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}:stop", + "request": { + "$ref": "StopMediationAbExperimentRequest" + }, + "response": { + "$ref": "MediationAbExperiment" + }, + "streamingType": "NONE" + } + } + } + } + }, "mediationReport": { "methods": { "generate": { @@ -359,7 +758,7 @@ } } }, - "revision": "20230124", + "revision": "20240223", "rootUrl": "https://admob.googleapis.com/", "schemas": { "AdSource": { @@ -411,6 +810,128 @@ "name": { "description": "Resource name for this ad unit. Format is accounts/{publisher_id}/adUnits/{ad_unit_id_fragment} Example: accounts/pub-9876543210987654/adUnits/0123456789", "type": "string" + }, + "rewardSettings": { + "$ref": "AdUnitRewardSettings", + "description": "Optional. Settings for a rewarded ad unit. This can be set or unset only when the ad_format is \"REWARDED\"." + } + }, + "type": "object" + }, + "AdUnitMapping": { + "description": "Settings to map an AdMob ad unit to a 3rd party ad unit.", + "id": "AdUnitMapping", + "properties": { + "adUnitConfigurations": { + "additionalProperties": { + "type": "string" + }, + "description": "Settings for the specified ad unit to make an ad request to 3rd party ad network. Key-value pairs with values set by the user for the keys requested by the ad network. Please see https://support.google.com/admob/answer/3245073 for details on how to configure the network settings.", + "type": "object" + }, + "adapterId": { + "description": "The ID of mediation ad source adapter used by this ad unit mapping. The adapter determines the information needed in the ad_network_settings.", + "format": "int64", + "type": "string" + }, + "displayName": { + "description": "Optional. The display name of this ad unit mapping instance.", + "type": "string" + }, + "name": { + "description": "Resource name of this ad unit mapping. Format is: accounts/{publisher_id}/adUnits/{ad_unit_id_fragment}/adUnitMappings/{ad_unit_mapping_id} Example: accounts/pub-1234567890123456/adUnits/0123456789/adUnitMappings/987654321", + "type": "string" + }, + "state": { + "description": "Output only. The status of this ad unit mapping.", + "enum": [ + "STATE_UNSPECIFIED", + "ENABLED" + ], + "enumDescriptions": [ + "The default value.", + "The ad unit mapping is active and used to serve ads or collecting stats." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "AdUnitRewardSettings": { + "description": "Settings for a rewarded ad unit.", + "id": "AdUnitRewardSettings", + "properties": { + "unitAmount": { + "description": "Reward amount for this ad unit.", + "format": "int64", + "type": "string" + }, + "unitType": { + "description": "Reward item for this ad unit.", + "type": "string" + } + }, + "type": "object" + }, + "Adapter": { + "description": "Describes adapters supported by each mediation ad source. Adapters correspond to a specific SDK implementation of the ad source, and are each associated with a single platform and a list of supported ad unit formats. Adapters may also require setting some configurations to perform ad requests. Configurations can be specified in the AdUnitMapping by setting the [ad_unit_configurations](#AdUnitMapping.ad_unit_configurations) key/value pairs. For example, the ad_unit_configurations can be used to pass various IDs to the adapter's third-party SDK.", + "id": "Adapter", + "properties": { + "adapterConfigMetadata": { + "description": "Output only. Configuration metadata associated with this adapter.", + "items": { + "$ref": "AdapterAdapterConfigMetadata" + }, + "readOnly": true, + "type": "array" + }, + "adapterId": { + "description": "Output only. ID of this adapter. It is used to set [adapter_id](#AdUnitMapping.adapter_id).", + "readOnly": true, + "type": "string" + }, + "formats": { + "description": "Output only. Indicates the formats of the ad units supported by this adapter.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "name": { + "description": "Output only. Resource name of the adapter. Format is: accounts/{publisher_id}/adSources/{ad_source_id}/adapters/{adapter_id}.", + "readOnly": true, + "type": "string" + }, + "platform": { + "description": "Output only. Mobile application platform supported by this adapter. Supported values are: IOS, ANDROID, WINDOWS_PHONE", + "readOnly": true, + "type": "string" + }, + "title": { + "description": "Output only. The display name of this adapter.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "AdapterAdapterConfigMetadata": { + "description": "Configuration metadata associated with this adapter. They are used to define the ad_unit_configurations associated with AdUnitMappings for the this adapter.", + "id": "AdapterAdapterConfigMetadata", + "properties": { + "adapterConfigMetadataId": { + "description": "This is used to fill the key of the [ad_unit_configurations](#AdUnitMapping.ad_unit_configurations).", + "type": "string" + }, + "adapterConfigMetadataLabel": { + "description": "Name of the adapter configuration metadata.", + "type": "string" + }, + "isRequired": { + "description": "Whether this metadata is required for configuring the AdUnitMappings.", + "type": "boolean" } }, "type": "object" @@ -420,7 +941,7 @@ "id": "App", "properties": { "appApprovalState": { - "description": "Output only. The approval state for the app.", + "description": "Output only. The approval state for the app. The field is read-only.", "enum": [ "APP_APPROVAL_STATE_UNSPECIFIED", "ACTION_REQUIRED", @@ -463,6 +984,31 @@ "description": "Information from the app store if the app is linked to an app store.", "id": "AppLinkedAppInfo", "properties": { + "androidAppStores": { + "description": "Optional. The app store information for published Android apps. This field is only used for apps on the Android platform and will be ignored if the PLATFORM is set to iOS. The default value is the Google Play App store. This field can be updated after app is created. If the app is not published, this field will not be included in the response.", + "items": { + "enum": [ + "ANDROID_APP_STORE_UNSPECIFIED", + "GOOGLE_PLAY_APP_STORE", + "AMAZON_APP_STORE", + "OPPO_APP_STORE", + "SAMSUNG_APP_STORE", + "VIVO_APP_STORE", + "XIAOMI_APP_STORE" + ], + "enumDescriptions": [ + "Default value for an unset field. Do not use.", + "Google Play Store.", + "Amazon Appstore.", + "Oppo App Market.", + "Samsung Galaxy Store.", + "VIVO App Store.", + "Xiaomi GetApps." + ], + "type": "string" + }, + "type": "array" + }, "appStoreId": { "description": "The app store ID of the app; present if and only if the app is linked to an app store. If the app is added to the Google Play store, it will be the application ID of the app. For example: \"com.example.myapp\". See https://developer.android.com/studio/build/application-id. If the app is added to the Apple App Store, it will be app store ID. For example \"105169111\". Note that setting the app store id is considered an irreversible action. Once an app is linked, it cannot be unlinked.", "type": "string" @@ -486,6 +1032,124 @@ }, "type": "object" }, + "BatchCreateAdUnitMappingsRequest": { + "description": "Request to create a batch of ad unit mappings under the specific AdMob account.", + "id": "BatchCreateAdUnitMappingsRequest", + "properties": { + "requests": { + "description": "Required. The request message specifying the ad unit mappings to create. A maximum of 100 ad unit mappings can be created in a batch. If the number of ad unit mappings in the batch request exceed 100, the entire request will be rejected and no ad unit mappings will be created.", + "items": { + "$ref": "CreateAdUnitMappingRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchCreateAdUnitMappingsResponse": { + "description": "Response containing a batch of created ad unit mappings.", + "id": "BatchCreateAdUnitMappingsResponse", + "properties": { + "adUnitMappings": { + "description": "The Ad units mappings created under the requested account.", + "items": { + "$ref": "AdUnitMapping" + }, + "type": "array" + } + }, + "type": "object" + }, + "CampaignReportSpec": { + "description": "The specification for generating a Campaign report. For example, the specification to get IMPRESSIONS and CLICKS sliced by CAMPAIGN_ID can look like the following example: { \"date_range\": { \"start_date\": {\"year\": 2021, \"month\": 12, \"day\": 1}, \"end_date\": {\"year\": 2021, \"month\": 12, \"day\": 30} }, \"dimensions\": [\"CAMPAIGN_ID\"], \"metrics\": [\"IMPRESSIONS\", \"CLICKS\"], }", + "id": "CampaignReportSpec", + "properties": { + "dateRange": { + "$ref": "DateRange", + "description": "The date range for which the report is generated. The max range is 30 days." + }, + "dimensions": { + "description": "List of dimensions of the report. The value combination of these dimensions determines the row of the report. If no dimensions are specified, the report returns a single row of requested metrics for the entire account.", + "items": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "DATE", + "CAMPAIGN_ID", + "CAMPAIGN_NAME", + "AD_ID", + "AD_NAME", + "PLACEMENT_ID", + "PLACEMENT_NAME", + "PLACEMENT_PLATFORM", + "COUNTRY", + "FORMAT" + ], + "enumDescriptions": [ + "Default value of an unspecified dimension. Do not use.", + "A date in the YYYYMMDD format (for example, \"20210701\").", + "The unique ID of the campaign, for example \"123456789\", which is consistent with the campaign id from campaign list api.", + "The name of the campaign.", + "The unique ID of the ad, for example \"123456789\".", + "The name of the ad, which may not be unique.", + "The vendor-specific unique ID of the app where the ad is placed. For example, com.goog.bar for Android and 123456789 for iOS apps.", + "The name of the app where the ad is placed.", + "The platform of the app where the ad is placed.", + "The name of the targeted country.", + "Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension." + ], + "type": "string" + }, + "type": "array" + }, + "languageCode": { + "description": "Language used for any localized text, such as certain applicable dimension values. The language tag is defined in the IETF BCP47. Defaults to 'en-US' if unspecified or invalid.", + "type": "string" + }, + "metrics": { + "description": "List of metrics of the report. A report must specify at least one metric.", + "items": { + "enum": [ + "METRIC_UNSPECIFIED", + "IMPRESSIONS", + "CLICKS", + "CLICK_THROUGH_RATE", + "INSTALLS", + "ESTIMATED_COST", + "AVERAGE_CPI", + "INTERACTIONS" + ], + "enumDescriptions": [ + "Default value for an unset field. Do not use.", + "The number of times an ad is shown to the user.", + "The number of times a user clicks an ad.", + "The number of clicks an ad receives divided by the number of times the ad is shown.", + "The number of times apps were downloaded to devices.", + "The estimated cost of serving a campaign ad instead of an ad that earns revenue. The currency is the reporting currency for campaigns.", + "The average cost per install. This means the average amount that was spent to acquire a new user. The currency is the reporting currency for campaigns.", + "The number of times a user interacts with an ad. This consists of clicks and engagements." + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CreateAdUnitMappingRequest": { + "description": "Request to create an ad unit mapping under the specific AdMob account and ad unit.", + "id": "CreateAdUnitMappingRequest", + "properties": { + "adUnitMapping": { + "$ref": "AdUnitMapping", + "description": "Required. The ad unit mapping to create." + }, + "parent": { + "description": "Required. The parent which owns the ad unit mapping. Format: accounts/{publisher_id}/adUnits/{ad_unit_id}", + "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", @@ -523,6 +1187,31 @@ }, "type": "object" }, + "GenerateCampaignReportRequest": { + "description": "Request to generate campaign report.", + "id": "GenerateCampaignReportRequest", + "properties": { + "reportSpec": { + "$ref": "CampaignReportSpec", + "description": "Campaign report specification." + } + }, + "type": "object" + }, + "GenerateCampaignReportResponse": { + "description": "Campaign Report API response.", + "id": "GenerateCampaignReportResponse", + "properties": { + "rows": { + "description": "The campaign report data from the specified publisher. At most 100000 rows will be returned from the API.", + "items": { + "$ref": "ReportRow" + }, + "type": "array" + } + }, + "type": "object" + }, "GenerateMediationReportRequest": { "description": "Request to generate an AdMob mediation report.", "id": "GenerateMediationReportRequest", @@ -601,6 +1290,24 @@ }, "type": "object" }, + "ListAdUnitMappingsResponse": { + "description": "Response for the ListAdUnitMappingsRequest.", + "id": "ListAdUnitMappingsResponse", + "properties": { + "adUnitMappings": { + "description": "The ad unit mappings from the specified account and ad unit.", + "items": { + "$ref": "AdUnitMapping" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Used to set the `page_token` in the `ListAdUnitMappingsRequest` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, "ListAdUnitsResponse": { "description": "Response for the ad units list request.", "id": "ListAdUnitsResponse", @@ -619,6 +1326,24 @@ }, "type": "object" }, + "ListAdaptersResponse": { + "description": "Response for the ListAdaptersRequest.", + "id": "ListAdaptersResponse", + "properties": { + "adapters": { + "description": "The adapter.", + "items": { + "$ref": "Adapter" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Used to set the `page_token` in the `ListAdapterRequest` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, "ListAppsResponse": { "description": "Response for the apps list request.", "id": "ListAppsResponse", @@ -637,6 +1362,24 @@ }, "type": "object" }, + "ListMediationGroupsResponse": { + "description": "Response for the mediation groups list request.", + "id": "ListMediationGroupsResponse", + "properties": { + "mediationGroups": { + "description": "The resulting mediation groups for the requested account.", + "items": { + "$ref": "MediationGroup" + }, + "type": "array" + }, + "nextPageToken": { + "description": "If not empty, indicates that there may be more mediation groups for the request; this value should be passed in a new `ListMediationGroupsRequest`.", + "type": "string" + } + }, + "type": "object" + }, "ListPublisherAccountsResponse": { "description": "Response for the publisher account list request.", "id": "ListPublisherAccountsResponse", @@ -670,6 +1413,303 @@ }, "type": "object" }, + "MediationAbExperiment": { + "description": "The mediation A/B experiment.", + "id": "MediationAbExperiment", + "properties": { + "controlMediationLines": { + "description": "Output only. The experiment mediation lines for control. They are inherited from the parent mediation group. It is an output only field.", + "items": { + "$ref": "MediationAbExperimentExperimentMediationLine" + }, + "readOnly": true, + "type": "array" + }, + "displayName": { + "description": "The display name for the mediation A/B experiment.", + "type": "string" + }, + "endTime": { + "description": "Output only. The time at which the experiment was ended or target to end (in UTC).", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "experimentId": { + "description": "Output only. Unique identifier for the mediation A/B experiment. It is an output only property.", + "readOnly": true, + "type": "string" + }, + "mediationGroupId": { + "description": "Output only. The mediation group id this experiment belongs to. This can be used for filtering the experiments in the list experiments API.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Resource name for this experiment. The format is accounts/{publisher_id}/ mediationGroups/{mediation_group_id}/mediationAbExperiment/ {mediation_group_experiment_id}. For example: accounts/pub-9876543210987654/mediationGroups/0123456789/ mediationAbExperiment/12345", + "type": "string" + }, + "startTime": { + "description": "Output only. The time at which the experiment was started (in UTC).", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The state of the experiment. It is an output only field.", + "enum": [ + "EXPERIMENT_STATE_UNSPECIFIED", + "EXPIRED", + "RUNNING", + "ENDED" + ], + "enumDescriptions": [ + "Default for an unset field. Do not use.", + "The experiment has expired.", + "The experiment is running and thus used in serving.", + "The experiment is ended, but not yet expired. Serving continues in the original configurations while the experiment is ready to call an action." + ], + "readOnly": true, + "type": "string" + }, + "treatmentMediationLines": { + "description": "The experiment mediation lines created for the treatment. They will be used for serving when the experiment status is RUNNING.", + "items": { + "$ref": "MediationAbExperimentExperimentMediationLine" + }, + "type": "array" + }, + "treatmentTrafficPercentage": { + "description": "The percentage of the mediation A/B experiment traffic that will be send to the treatment (variant B). The remainder is sent to the control (variant A). The percentage is expressed as an integer in the inclusive range of [1,99]. See https://support.google.com/admob/answer/9572326 for details.", + "format": "int64", + "type": "string" + }, + "variantLeader": { + "description": "Output only. The variant leader for the experiment according to some key metrics.", + "enum": [ + "VARIANT_LEADER_UNSPECIFIED", + "CONTROL", + "TREATMENT", + "INSUFFICIENT_DATA", + "TOO_EARLY_TO_CALL", + "NO_VARIANT_LEADER" + ], + "enumDescriptions": [ + "Default value of the enum. Do not use.", + "The control leading the experiment.", + "The treatment leading the experiment.", + "Collected data (impressions) are insufficient to determine a leader.", + "Experiment hasn't run long enough to determine a leader.", + "Neither variant is a decisive winner in the observed data." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "MediationAbExperimentExperimentMediationLine": { + "description": "The mediation group line for the experiment. It will be used for serving during the run of the experiment.", + "id": "MediationAbExperimentExperimentMediationLine", + "properties": { + "mediationGroupLine": { + "$ref": "MediationGroupMediationGroupLine", + "description": "The mediation group line used by the experiment." + } + }, + "type": "object" + }, + "MediationGroup": { + "description": "Describes an AdMob mediation group.", + "id": "MediationGroup", + "properties": { + "displayName": { + "description": "User provided name for the mediation group. The maximum length allowed is 120 characters.", + "type": "string" + }, + "mediationAbExperimentState": { + "description": "Output only. The state of the mediation a/b experiment that belongs to this mediation group.", + "enum": [ + "EXPERIMENT_STATE_UNSPECIFIED", + "RUNNING", + "NOT_RUNNING" + ], + "enumDescriptions": [ + "Default value for an unset field. Do not use.", + "The mediation group has an experiment in the RUNNING state.", + "There is no experiment in the RUNNING state in the mediation group." + ], + "readOnly": true, + "type": "string" + }, + "mediationGroupId": { + "description": "The ID of the mediation group. Example: \"0123456789\". This is a read only property.", + "type": "string" + }, + "mediationGroupLines": { + "additionalProperties": { + "$ref": "MediationGroupMediationGroupLine" + }, + "description": "The mediation lines used for serving for this mediation group. Key is the ID of the mediation group line. For creation, use distinct negative values as placeholder.", + "type": "object" + }, + "name": { + "description": "Resource name for this mediation group. Format is: accounts/{publisher_id}/mediationGroups/{mediation_group_id} Example: accounts/pub-9876543210987654/mediationGroups/0123456789", + "type": "string" + }, + "state": { + "description": "The status of the mediation group. Only enabled mediation groups will be served.", + "enum": [ + "STATE_UNSPECIFIED", + "ENABLED", + "DISABLED" + ], + "enumDescriptions": [ + "Default value for an unset field. Do not use.", + "The mediation group is active and used to serve ads or to collect stats.", + "The mediation group has been disabled and is no longer serving ads or collecting stats. Disabled mediation groups can be re-enabled." + ], + "type": "string" + }, + "targeting": { + "$ref": "MediationGroupTargeting", + "description": "Set of criteria targeted by this mediation group, such as ad units and geo locations." + } + }, + "type": "object" + }, + "MediationGroupMediationGroupLine": { + "description": "Settings for an ad network used by a mediation group.", + "id": "MediationGroupMediationGroupLine", + "properties": { + "adSourceId": { + "description": "The ID of the ad source this mediation line is associated with.", + "type": "string" + }, + "adUnitMappings": { + "additionalProperties": { + "type": "string" + }, + "description": "References of the ad unit mappings for each ad unit associated with this mediation line. Key is the ad unit ID, value is resource name of the ad unit mapping. For mediation lines where the ad source id is the AdMob Network, ad unit mappings will be ignored.", + "type": "object" + }, + "cpmMicros": { + "description": "The CPM for this allocation line. $0.01 is the minimum allowed amount. For LIVE CPM modes, the default amount is $0.01. This value is ignored if `cpm_mode` is `LIVE`. **Warning:** \"USD\" is the only supported currency at the moment. The unit is in micros.", + "format": "int64", + "type": "string" + }, + "cpmMode": { + "description": "Indicates how the CPM for this mediation line is provided. Note that `MANUAL` and `LIVE` are the only fully-supported mode at the moment. Please use the AdMob UI (https://admob.google.com) if you wish to create or update to other cpm modes.", + "enum": [ + "CPM_MODE_UNSPECIFIED", + "LIVE", + "MANUAL", + "ANO" + ], + "enumDescriptions": [ + "Default value for an unset field. Do not use.", + "CPM is calculated per ad request based on the ad auction.", + "CPM is set by the user manually.", + "CPM is retrieved from the ad network using the publisher specified credentials. Output only." + ], + "type": "string" + }, + "displayName": { + "description": "User-provided label for this mediation line. The maximum length allowed is 255 characters.", + "type": "string" + }, + "experimentVariant": { + "description": "Output only. The Mediation A/B experiment variant to which the mediation group line belongs to.", + "enum": [ + "VARIANT_UNSPECIFIED", + "VARIANT_A", + "VARIANT_B", + "ORIGINAL" + ], + "enumDescriptions": [ + "Default value for an unset field. Do not use.", + "The mediation group line belongs to the variant A.", + "The mediation group line belongs to the variant B.", + "The mediation group line isn't a part of an experiment." + ], + "readOnly": true, + "type": "string" + }, + "id": { + "description": "The 16 digit ID for this mediation line e.g. 0123456789012345. When creating a new mediation group line, use a distinct negative integer as the ID place holder.", + "type": "string" + }, + "state": { + "description": "The status of the mediation group line. Only enabled mediation group lines will be served.", + "enum": [ + "STATE_UNSPECIFIED", + "ENABLED", + "DISABLED", + "REMOVED" + ], + "enumDescriptions": [ + "Default value for an unset field. Do not use.", + "The mediation group line is active and used to serve ads.", + "The mediation group line has been disabled and is no longer served. Disabled mediation group lines can be re-enabled.", + "The mediation group line will be removed and no longer served. Removed mediation group lines can not be re-enabled and will no longer be visible. This is an input only field." + ], + "type": "string" + } + }, + "type": "object" + }, + "MediationGroupTargeting": { + "description": "Set of criteria targeted by this mediation group. For example, a mediation group can target specific ad unit IDs, platform, format and geo location.", + "id": "MediationGroupTargeting", + "properties": { + "adUnitIds": { + "description": "Ad units targeted by this mediation group. Example: \"ca-app-pub-1234/8790\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "excludedRegionCodes": { + "description": "The Unicode country/region code (CLDR) of a location, such as \"US\". Unset if this mediation group does not exclude any region.", + "items": { + "type": "string" + }, + "type": "array" + }, + "format": { + "description": "Ad format targeted by this mediation group. Examples: \"banner\", \"native\".", + "type": "string" + }, + "idfaTargeting": { + "description": "The parameter can be used to target ad requests based on the availability of the IDFA. If set to ALL, the mediation group applies to all ad requests (with or without IDFA). If set to AVAILABLE, the mediation group applies to ad requests with IDFA. If set to NOT_AVAILABLE, the mediation group applies to ad requests without IDFA. Doesn't need to be specified for an ANDROID device.", + "enum": [ + "IDFA_TARGETING_UNSPECIFIED", + "ALL", + "AVAILABLE", + "NOT_AVAILABLE" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "All the devices are targeted, regardless of IDFA availability.", + "Only the devices with IDFA availability are targeted.", + "Only the devices without IDFA availability are targeted." + ], + "type": "string" + }, + "platform": { + "description": "Describes the platform of the app. Examples: \"IOS\", \"Android\".", + "type": "string" + }, + "targetedRegionCodes": { + "description": "The Unicode country/region code (CLDR) of a location, such as \"US\". Unset if this mediation group targets all available regions. For more information, see http://www.unicode.org/reports/tr35/#unicode_region_subtag.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "MediationReportSpec": { "description": "The specification for generating an AdMob Mediation report. For example, the specification to get observed ECPM sliced by ad source and app for the 'US' and 'CN' countries can look like the following example: { \"date_range\": { \"start_date\": {\"year\": 2021, \"month\": 9, \"day\": 1}, \"end_date\": {\"year\": 2021, \"month\": 9, \"day\": 30} }, \"dimensions\": [\"AD_SOURCE\", \"APP\", \"COUNTRY\"], \"metrics\": [\"OBSERVED_ECPM\"], \"dimension_filters\": [ { \"dimension\": \"COUNTRY\", \"matches_any\": {\"values\": [{\"value\": \"US\", \"value\": \"CN\"}]} } ], \"sort_conditions\": [ {\"dimension\":\"APP\", order: \"ASCENDING\"} ], \"localization_settings\": { \"currency_code\": \"USD\", \"language_code\": \"en-US\" } } For a better understanding, you can treat the preceding specification like the following pseudo SQL: SELECT AD_SOURCE, APP, COUNTRY, OBSERVED_ECPM FROM MEDIATION_REPORT WHERE DATE >= '2021-09-01' AND DATE <= '2021-09-30' AND COUNTRY IN ('US', 'CN') GROUP BY AD_SOURCE, APP, COUNTRY ORDER BY APP ASC;", "id": "MediationReportSpec", @@ -719,10 +1759,10 @@ "CLDR country code of the place where the ad views/clicks occur (for example, \"US\" or \"FR\"). This is a geography dimension.", "Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension.", "Mobile OS platform of the app (for example, \"Android\" or \"iOS\").", - "Mobile operating system version, e.g. \"iOS 13.5.1\". **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS), [OBSERVED_ECPM](#Metric.ENUM_VALUES.OBSERVED_ECPM) metrics.", - "GMA SDK version, e.g. \"iOS 7.62.0\". **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS), [OBSERVED_ECPM](#Metric.ENUM_VALUES.OBSERVED_ECPM) metrics.", - "For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString. **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS), [OBSERVED_ECPM](#Metric.ENUM_VALUES.OBSERVED_ECPM) metrics.", - "Restriction mode for ads serving (e.g. \"Non-personalized ads\"). **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS) metric." + "Mobile operating system version, e.g. \"iOS 13.5.1\".", + "GMA SDK version, e.g. \"iOS 7.62.0\".", + "For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString.", + "Restriction mode for ads serving (e.g. \"Non-personalized ads\")." ], "type": "string" }, @@ -817,10 +1857,10 @@ "CLDR country code of the place where the ad views/clicks occur (for example, \"US\" or \"FR\"). This is a geography dimension.", "Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension.", "Mobile OS platform of the app (for example, \"Android\" or \"iOS\").", - "Mobile operating system version, e.g. \"iOS 13.5.1\". **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS), [OBSERVED_ECPM](#Metric.ENUM_VALUES.OBSERVED_ECPM) metrics.", - "GMA SDK version, e.g. \"iOS 7.62.0\". **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS), [OBSERVED_ECPM](#Metric.ENUM_VALUES.OBSERVED_ECPM) metrics.", - "For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString. **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS), [OBSERVED_ECPM](#Metric.ENUM_VALUES.OBSERVED_ECPM) metrics.", - "Restriction mode for ads serving (e.g. \"Non-personalized ads\"). **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS) metric." + "Mobile operating system version, e.g. \"iOS 13.5.1\".", + "GMA SDK version, e.g. \"iOS 7.62.0\".", + "For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString.", + "Restriction mode for ads serving (e.g. \"Non-personalized ads\")." ], "type": "string" }, @@ -868,10 +1908,10 @@ "CLDR country code of the place where the ad views/clicks occur (for example, \"US\" or \"FR\"). This is a geography dimension.", "Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension.", "Mobile OS platform of the app (for example, \"Android\" or \"iOS\").", - "Mobile operating system version, e.g. \"iOS 13.5.1\". **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS), [OBSERVED_ECPM](#Metric.ENUM_VALUES.OBSERVED_ECPM) metrics.", - "GMA SDK version, e.g. \"iOS 7.62.0\". **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS), [OBSERVED_ECPM](#Metric.ENUM_VALUES.OBSERVED_ECPM) metrics.", - "For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString. **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS), [OBSERVED_ECPM](#Metric.ENUM_VALUES.OBSERVED_ECPM) metrics.", - "Restriction mode for ads serving (e.g. \"Non-personalized ads\"). **Warning:** The dimension is incompatible with [ESTIMATED_EARNINGS](#Metric.ENUM_VALUES.ESTIMATED_EARNINGS) metric." + "Mobile operating system version, e.g. \"iOS 13.5.1\".", + "GMA SDK version, e.g. \"iOS 7.62.0\".", + "For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString.", + "Restriction mode for ads serving (e.g. \"Non-personalized ads\")." ], "type": "string" }, @@ -1306,6 +2346,27 @@ }, "type": "object" }, + "StopMediationAbExperimentRequest": { + "description": "Request to end the mediation A/B experiment and choose a winning variant.", + "id": "StopMediationAbExperimentRequest", + "properties": { + "variantChoice": { + "description": "The choice for the winning variant.", + "enum": [ + "VARIANT_CHOICE_UNSPECIFIED", + "VARIANT_CHOICE_A", + "VARIANT_CHOICE_B" + ], + "enumDescriptions": [ + "Default value for an unset field. Do not use.", + "Use the mediation lines from Variant A and complete the experiment. Variant A contains the original serving lines before the experiment creation.", + "Use the mediation lines form Variant B and complete the experiment. Variant B contains the newly added serving lines." + ], + "type": "string" + } + }, + "type": "object" + }, "StringList": { "description": "List of string values.", "id": "StringList", diff --git a/etc/api/adsense/v2/adsense-api.json b/etc/api/adsense/v2/adsense-api.json index ede422e5af..9e7a43e9b3 100644 --- a/etc/api/adsense/v2/adsense-api.json +++ b/etc/api/adsense/v2/adsense-api.json @@ -204,7 +204,7 @@ "type": "integer" }, "pageToken": { - "description": "A page token, received from a previous `ListAccounts` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListAccounts` must match the call that provided the page token.", + "description": "A page token, received from a previous `ListChildAccounts` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListChildAccounts` must match the call that provided the page token.", "location": "query", "type": "string" }, @@ -905,6 +905,7 @@ "CUSTOM_CHANNEL_ID", "OWNED_SITE_DOMAIN_NAME", "OWNED_SITE_ID", + "PAGE_URL", "URL_CHANNEL_NAME", "URL_CHANNEL_ID", "BUYER_NETWORK_NAME", @@ -954,6 +955,7 @@ "Unique ID of a custom channel. The members of this dimension match the values from CustomChannel.reporting_dimension_id.", "Domain name of a verified site (e.g. \"example.com\"). The members of this dimension match the values from Site.domain.", "Unique ID of a verified site. The members of this dimension match the values from Site.reporting_dimension_id.", + "URL of the page upon which the ad was served. This is a complete URL including scheme and query parameters. Note that the URL that appears in this dimension may be a canonicalized version of the one that was used in the original request, and so may not exactly match the URL that a user might have seen. Note that there are also some caveats to be aware of when using this dimension. For more information, see [Page URL breakdown](https://support.google.com/adsense/answer/11988478).", "Name of a URL channel. The members of this dimension match the values from UrlChannel.uri_pattern.", "Unique ID of a URL channel. The members of this dimension match the values from UrlChannel.reporting_dimension_id.", "Name of an ad network that returned the winning ads for an ad request (e.g. \"Google AdWords\"). Note that unlike other \"NAME\" dimensions, the members of this dimensions are not localized.", @@ -1059,7 +1061,11 @@ "COST_PER_CLICK", "ADS_PER_IMPRESSION", "TOTAL_EARNINGS", - "WEBSEARCH_RESULT_PAGES" + "WEBSEARCH_RESULT_PAGES", + "FUNNEL_REQUESTS", + "FUNNEL_IMPRESSIONS", + "FUNNEL_CLICKS", + "FUNNEL_RPM" ], "enumDescriptions": [ "Unspecified metric.", @@ -1094,7 +1100,11 @@ "Amount the publisher earns each time a user clicks on an ad. CPC is calculated by dividing the estimated revenue by the number of clicks received.", "Number of ad views per impression.", "Total earnings are the gross estimated earnings from revenue shared traffic before any parent and child account revenue share is applied.", - "Number of results pages." + "Number of results pages.", + "Number of requests for non-ad units (for example a related search unit). For more information, see [Funnel requests](https://support.google.com/adsense/answer/11586959).", + "Number of requests for non-ad units ads that returned content that was shown to the user. For more information, see [Funnel impressions](https://support.google.com/adsense/answer/11585767).", + "Number of times a user clicked on a non-ad unit, triggering further ad requests. For more information, see [Funnel clicks](https://support.google.com/adsense/answer/11586382).", + "Revenue per thousand funnel impressions. This is calculated by dividing estimated revenue by the number of funnel impressions multiplied by 1000. For more information, see [Funnel RPM](https://support.google.com/adsense/answer/11585979)." ], "location": "query", "repeated": true, @@ -1215,6 +1225,7 @@ "CUSTOM_CHANNEL_ID", "OWNED_SITE_DOMAIN_NAME", "OWNED_SITE_ID", + "PAGE_URL", "URL_CHANNEL_NAME", "URL_CHANNEL_ID", "BUYER_NETWORK_NAME", @@ -1264,6 +1275,7 @@ "Unique ID of a custom channel. The members of this dimension match the values from CustomChannel.reporting_dimension_id.", "Domain name of a verified site (e.g. \"example.com\"). The members of this dimension match the values from Site.domain.", "Unique ID of a verified site. The members of this dimension match the values from Site.reporting_dimension_id.", + "URL of the page upon which the ad was served. This is a complete URL including scheme and query parameters. Note that the URL that appears in this dimension may be a canonicalized version of the one that was used in the original request, and so may not exactly match the URL that a user might have seen. Note that there are also some caveats to be aware of when using this dimension. For more information, see [Page URL breakdown](https://support.google.com/adsense/answer/11988478).", "Name of a URL channel. The members of this dimension match the values from UrlChannel.uri_pattern.", "Unique ID of a URL channel. The members of this dimension match the values from UrlChannel.reporting_dimension_id.", "Name of an ad network that returned the winning ads for an ad request (e.g. \"Google AdWords\"). Note that unlike other \"NAME\" dimensions, the members of this dimensions are not localized.", @@ -1369,7 +1381,11 @@ "COST_PER_CLICK", "ADS_PER_IMPRESSION", "TOTAL_EARNINGS", - "WEBSEARCH_RESULT_PAGES" + "WEBSEARCH_RESULT_PAGES", + "FUNNEL_REQUESTS", + "FUNNEL_IMPRESSIONS", + "FUNNEL_CLICKS", + "FUNNEL_RPM" ], "enumDescriptions": [ "Unspecified metric.", @@ -1404,7 +1420,11 @@ "Amount the publisher earns each time a user clicks on an ad. CPC is calculated by dividing the estimated revenue by the number of clicks received.", "Number of ad views per impression.", "Total earnings are the gross estimated earnings from revenue shared traffic before any parent and child account revenue share is applied.", - "Number of results pages." + "Number of results pages.", + "Number of requests for non-ad units (for example a related search unit). For more information, see [Funnel requests](https://support.google.com/adsense/answer/11586959).", + "Number of requests for non-ad units ads that returned content that was shown to the user. For more information, see [Funnel impressions](https://support.google.com/adsense/answer/11585767).", + "Number of times a user clicked on a non-ad unit, triggering further ad requests. For more information, see [Funnel clicks](https://support.google.com/adsense/answer/11586382).", + "Revenue per thousand funnel impressions. This is calculated by dividing estimated revenue by the number of funnel impressions multiplied by 1000. For more information, see [Funnel RPM](https://support.google.com/adsense/answer/11585979)." ], "location": "query", "repeated": true, @@ -1729,7 +1749,7 @@ "type": "integer" }, "pageToken": { - "description": "A page token, received from a previous `ListPayments` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPayments` must match the call that provided the page token.", + "description": "A page token, received from a previous `ListSavedReports` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListSavedReports` must match the call that provided the page token.", "location": "query", "type": "string" }, @@ -1824,7 +1844,7 @@ } } }, - "revision": "20230124", + "revision": "20240305", "rootUrl": "https://adsense.googleapis.com/", "schemas": { "Account": { @@ -1983,7 +2003,7 @@ "type": "string" }, "state": { - "description": "State of the ad unit.", + "description": "Required. State of the ad unit.", "enum": [ "STATE_UNSPECIFIED", "ACTIVE", @@ -2079,6 +2099,14 @@ "MATCHED_CONTENT", "LINK" ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + true + ], "enumDescriptions": [ "Unspecified ad unit type.", "Display ad unit.", diff --git a/etc/api/alertcenter/v1beta1/alertcenter-api.json b/etc/api/alertcenter/v1beta1/alertcenter-api.json index 5e3e899358..36e23895dc 100644 --- a/etc/api/alertcenter/v1beta1/alertcenter-api.json +++ b/etc/api/alertcenter/v1beta1/alertcenter-api.json @@ -423,7 +423,7 @@ } } }, - "revision": "20230123", + "revision": "20240304", "rootUrl": "https://alertcenter.googleapis.com/", "schemas": { "AbuseDetected": { @@ -434,29 +434,87 @@ "$ref": "EntityList", "description": "List of abusive users/entities to be displayed in a table in the alert." }, - "alertDescriptor": { - "description": "Displayed after Customer abuse detected - {alert_descriptor}. If missing, alert name will be displayed as Customer abuse detected.", - "type": "string" - }, - "nextSteps": { - "description": "Customizable text to display in the next steps section of the alert. Will be parsed as HTML to allow new paragraphs and hyperlinks.", - "type": "string" - }, "product": { "description": "Product that the abuse is originating from.", "type": "string" }, "subAlertId": { - "description": "Unique identifier of each alert that is onboarded.", + "description": "Unique identifier of each sub alert that is onboarded.", "type": "string" }, - "summary": { - "description": "Customizable text to display in the summary section of the alert. Will be parsed as HTML to allow new paragraphs and hyperlinks.", + "variationType": { + "description": "Variation of AbuseDetected alerts. The variation_type determines the texts displayed the alert details. This differs from sub_alert_id because each sub alert can have multiple variation_types, representing different stages of the alert.", + "enum": [ + "ABUSE_DETECTED_VARIATION_TYPE_UNSPECIFIED", + "DRIVE_ABUSIVE_CONTENT", + "LIMITED_DISABLE" + ], + "enumDescriptions": [ + "AbuseDetected alert variation type unspecified. No alert should be unspecified.", + "Variation displayed for Drive abusive content alerts.", + "Variation displayed for Limited Disable alerts, when a Google service is disabled for a user, totally or partially, due to the user's abusive behavior." + ], "type": "string" } }, "type": "object" }, + "AccessApproval": { + "description": "Alert that is triggered when Google support requests to access customer data.", + "id": "AccessApproval", + "properties": { + "justificationReason": { + "description": "Justification for data access based on justification enums.", + "items": { + "enum": [ + "JUSTIFICATION_UNSPECIFIED", + "CUSTOMER_INITIATED_SUPPORT", + "GOOGLE_INITIATED_REVIEW", + "GOOGLE_INITIATED_SERVICE", + "THIRD_PARTY_DATA_REQUEST", + "GOOGLE_RESPONSE_TO_PRODUCTION_ALERT" + ], + "enumDescriptions": [ + "Justification unspecified", + "Customer Initiated Support", + "Google Initiated Review", + "Google Initiated Service", + "Third Party Data Request", + "Google Response to Production Alert" + ], + "type": "string" + }, + "type": "array" + }, + "officeLocation": { + "description": "Office location of Google staff requesting access such as \"US\".", + "type": "string" + }, + "products": { + "description": "Products within scope of the Access Approvals request.", + "items": { + "type": "string" + }, + "type": "array" + }, + "requestId": { + "description": "ID of the Access Approvals request. This is a helpful field when requesting support from Google.", + "type": "string" + }, + "scope": { + "description": "Scope of access, also known as a resource. This is further narrowed down by the product field.", + "type": "string" + }, + "tickets": { + "description": "Support tickets related to this Access Approvals request. Populated if there is an associated case number.", + "items": { + "$ref": "SupportTicket" + }, + "type": "array" + } + }, + "type": "object" + }, "AccountSuspensionDetails": { "description": "Details about why an account is receiving an account suspension warning.", "id": "AccountSuspensionDetails", @@ -764,20 +822,20 @@ "type": "object" }, "ApnsCertificateExpirationInfo": { - "description": "The explanation message associated with ApnsCertificationExpiring and ApnsCertificationExpired alerts.", + "description": "The explanation message associated with \"APNS certificate is expiring soon\" and \"APNS certificate has expired\" alerts.", "id": "ApnsCertificateExpirationInfo", "properties": { "appleId": { - "description": "The Apple ID used for the certificate may be blank if admins didn't enter it.", + "description": "The Apple ID used to create the certificate. It may be blank if admins didn't enter it.", "type": "string" }, "expirationTime": { - "description": "The expiration date of the APNS Certificate.", + "description": "The expiration date of the APNS certificate.", "format": "google-datetime", "type": "string" }, "uid": { - "description": "The UID for the certificate.", + "description": "The UID of the certificate.", "type": "string" } }, @@ -1099,6 +1157,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", @@ -1225,6 +1318,11 @@ "description": "The recipient of this email.", "type": "string" }, + "sentTime": { + "description": "The sent time of the email.", + "format": "google-datetime", + "type": "string" + }, "subjectText": { "description": "The email subject text (only available for reported emails).", "type": "string" @@ -1809,6 +1907,21 @@ }, "type": "object" }, + "SupportTicket": { + "description": "Support ticket related to Access Approvals request", + "id": "SupportTicket", + "properties": { + "ticketId": { + "description": "Support ticket ID", + "type": "string" + }, + "ticketUrl": { + "description": "Link to support ticket", + "type": "string" + } + }, + "type": "object" + }, "SuspiciousActivity": { "description": "A mobile suspicious activity alert. Derived from audit logs.", "id": "SuspiciousActivity", diff --git a/etc/api/analyticsadmin/v1alpha/analyticsadmin-api.json b/etc/api/analyticsadmin/v1alpha/analyticsadmin-api.json index 2e4e7ab913..e56eac6484 100644 --- a/etc/api/analyticsadmin/v1alpha/analyticsadmin-api.json +++ b/etc/api/analyticsadmin/v1alpha/analyticsadmin-api.json @@ -21,7 +21,7 @@ "baseUrl": "https://analyticsadmin.googleapis.com/", "batchPath": "batch", "canonicalName": "Google Analytics Admin", - "description": "", + "description": "Manage properties in Google Analytics. Warning: Creating multiple Customer Applications, Accounts, or Projects to simulate or act as a single Customer Application, Account, or Project (respectively) or to circumvent Service-specific usage limits or quotas is a direct violation of Google Cloud Platform Terms of Service as well as Google APIs Terms of Service. These actions can result in immediate termination of your GCP project(s) without any warning.", "discoveryVersion": "v1", "documentationLink": "http://code.google.com/apis/analytics/docs/mgmt/home.html", "fullyEncodeReservedExpansion": true, @@ -149,7 +149,7 @@ "accounts": { "methods": { "delete": { - "description": "Marks target Account as soft-deleted (ie: \"trashed\") and returns it. This API does not have a method to restore soft-deleted accounts. However, they can be restored using the Trash Can UI. If the accounts are not restored before the expiration time, the account and all child resources (eg: Properties, GoogleAdsLinks, Streams, UserLinks) will be permanently purged. https://support.google.com/analytics/answer/6154772 Returns an error if the target is not found.", + "description": "Marks target Account as soft-deleted (ie: \"trashed\") and returns it. This API does not have a method to restore soft-deleted accounts. However, they can be restored using the Trash Can UI. If the accounts are not restored before the expiration time, the account and all child resources (eg: Properties, GoogleAdsLinks, Streams, AccessBindings) will be permanently purged. https://support.google.com/analytics/answer/6154772 Returns an error if the target is not found.", "flatPath": "v1alpha/accounts/{accountsId}", "httpMethod": "DELETE", "id": "analyticsadmin.accounts.delete", @@ -275,7 +275,7 @@ "type": "string" }, "updateMask": { - "description": "Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", + "description": "Required. The list of fields to be updated. Field names must be in snake case (for example, \"field_to_update\"). Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -310,6 +310,35 @@ "https://www.googleapis.com/auth/analytics.edit" ] }, + "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. 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": "v1alpha/accounts/{accountsId}:runAccessReport", + "httpMethod": "POST", + "id": "analyticsadmin.accounts.runAccessReport", + "parameterOrder": [ + "entity" + ], + "parameters": { + "entity": { + "description": "The Data Access Report supports requesting at the property level or account level. If requested at the account level, Data Access Reports include all access for all properties under that account. To request at the property level, entity should be for example 'properties/123' if \"123\" is your GA4 property ID. To request at the account level, entity should be for example 'accounts/1234' if \"1234\" is your GA4 Account ID.", + "location": "path", + "pattern": "^accounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+entity}:runAccessReport", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaRunAccessReportRequest" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaRunAccessReportResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, "searchChangeHistoryEvents": { "description": "Searches through all changes to an account or its children given the specified set of filters.", "flatPath": "v1alpha/accounts/{accountsId}:searchChangeHistoryEvents", @@ -320,7 +349,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, @@ -340,60 +369,31 @@ } }, "resources": { - "userLinks": { + "accessBindings": { "methods": { - "audit": { - "description": "Lists all user links on an account or property, including implicit ones that come from effective permissions granted by groups or organization admin roles. If a returned user link does not have direct permissions, they cannot be removed from the account or property directly with the DeleteUserLink command. They have to be removed from the group/etc that gives them permissions, which is currently only usable/discoverable in the GA or GMP UIs.", - "flatPath": "v1alpha/accounts/{accountsId}/userLinks:audit", - "httpMethod": "POST", - "id": "analyticsadmin.accounts.userLinks.audit", - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. Example format: accounts/1234", - "location": "path", - "pattern": "^accounts/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1alpha/{+parent}/userLinks:audit", - "request": { - "$ref": "GoogleAnalyticsAdminV1alphaAuditUserLinksRequest" - }, - "response": { - "$ref": "GoogleAnalyticsAdminV1alphaAuditUserLinksResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/analytics.manage.users", - "https://www.googleapis.com/auth/analytics.manage.users.readonly" - ] - }, "batchCreate": { - "description": "Creates information about multiple users' links to an account or property. This method is transactional. If any UserLink cannot be created, none of the UserLinks will be created.", - "flatPath": "v1alpha/accounts/{accountsId}/userLinks:batchCreate", + "description": "Creates information about multiple access bindings to an account or property. This method is transactional. If any AccessBinding cannot be created, none of the AccessBindings will be created.", + "flatPath": "v1alpha/accounts/{accountsId}/accessBindings:batchCreate", "httpMethod": "POST", - "id": "analyticsadmin.accounts.userLinks.batchCreate", + "id": "analyticsadmin.accounts.accessBindings.batchCreate", "parameterOrder": [ "parent" ], "parameters": { "parent": { - "description": "Required. The account or property that all user links in the request are for. This field is required. The parent field in the CreateUserLinkRequest messages must either be empty or match this field. Example format: accounts/1234", + "description": "Required. The account or property that owns the access bindings. The parent field in the CreateAccessBindingRequest messages must either be empty or match this field. Formats: - accounts/{account} - properties/{property}", "location": "path", "pattern": "^accounts/[^/]+$", "required": true, "type": "string" } }, - "path": "v1alpha/{+parent}/userLinks:batchCreate", + "path": "v1alpha/{+parent}/accessBindings:batchCreate", "request": { - "$ref": "GoogleAnalyticsAdminV1alphaBatchCreateUserLinksRequest" + "$ref": "GoogleAnalyticsAdminV1alphaBatchCreateAccessBindingsRequest" }, "response": { - "$ref": "GoogleAnalyticsAdminV1alphaBatchCreateUserLinksResponse" + "$ref": "GoogleAnalyticsAdminV1alphaBatchCreateAccessBindingsResponse" }, "scopes": [ "https://www.googleapis.com/auth/analytics.manage.users" @@ -401,24 +401,24 @@ }, "batchDelete": { "description": "Deletes information about multiple users' links to an account or property.", - "flatPath": "v1alpha/accounts/{accountsId}/userLinks:batchDelete", + "flatPath": "v1alpha/accounts/{accountsId}/accessBindings:batchDelete", "httpMethod": "POST", - "id": "analyticsadmin.accounts.userLinks.batchDelete", + "id": "analyticsadmin.accounts.accessBindings.batchDelete", "parameterOrder": [ "parent" ], "parameters": { "parent": { - "description": "Required. The account or property that all user links in the request are for. The parent of all values for user link names to delete must match this field. Example format: accounts/1234", + "description": "Required. The account or property that owns the access bindings. The parent of all provided values for the 'names' field in DeleteAccessBindingRequest messages must match this field. Formats: - accounts/{account} - properties/{property}", "location": "path", "pattern": "^accounts/[^/]+$", "required": true, "type": "string" } }, - "path": "v1alpha/{+parent}/userLinks:batchDelete", + "path": "v1alpha/{+parent}/accessBindings:batchDelete", "request": { - "$ref": "GoogleAnalyticsAdminV1alphaBatchDeleteUserLinksRequest" + "$ref": "GoogleAnalyticsAdminV1alphaBatchDeleteAccessBindingsRequest" }, "response": { "$ref": "GoogleProtobufEmpty" @@ -428,31 +428,31 @@ ] }, "batchGet": { - "description": "Gets information about multiple users' links to an account or property.", - "flatPath": "v1alpha/accounts/{accountsId}/userLinks:batchGet", + "description": "Gets information about multiple access bindings to an account or property.", + "flatPath": "v1alpha/accounts/{accountsId}/accessBindings:batchGet", "httpMethod": "GET", - "id": "analyticsadmin.accounts.userLinks.batchGet", + "id": "analyticsadmin.accounts.accessBindings.batchGet", "parameterOrder": [ "parent" ], "parameters": { "names": { - "description": "Required. The names of the user links to retrieve. A maximum of 1000 user links can be retrieved in a batch. Format: accounts/{accountId}/userLinks/{userLinkId}", + "description": "Required. The names of the access bindings to retrieve. A maximum of 1000 access bindings can be retrieved in a batch. Formats: - accounts/{account}/accessBindings/{accessBinding} - properties/{property}/accessBindings/{accessBinding}", "location": "query", "repeated": true, "type": "string" }, "parent": { - "description": "Required. The account or property that all user links in the request are for. The parent of all provided values for the 'names' field must match this field. Example format: accounts/1234", + "description": "Required. The account or property that owns the access bindings. The parent of all provided values for the 'names' field must match this field. Formats: - accounts/{account} - properties/{property}", "location": "path", "pattern": "^accounts/[^/]+$", "required": true, "type": "string" } }, - "path": "v1alpha/{+parent}/userLinks:batchGet", + "path": "v1alpha/{+parent}/accessBindings:batchGet", "response": { - "$ref": "GoogleAnalyticsAdminV1alphaBatchGetUserLinksResponse" + "$ref": "GoogleAnalyticsAdminV1alphaBatchGetAccessBindingsResponse" }, "scopes": [ "https://www.googleapis.com/auth/analytics.manage.users", @@ -460,79 +460,74 @@ ] }, "batchUpdate": { - "description": "Updates information about multiple users' links to an account or property.", - "flatPath": "v1alpha/accounts/{accountsId}/userLinks:batchUpdate", + "description": "Updates information about multiple access bindings to an account or property.", + "flatPath": "v1alpha/accounts/{accountsId}/accessBindings:batchUpdate", "httpMethod": "POST", - "id": "analyticsadmin.accounts.userLinks.batchUpdate", + "id": "analyticsadmin.accounts.accessBindings.batchUpdate", "parameterOrder": [ "parent" ], "parameters": { "parent": { - "description": "Required. The account or property that all user links in the request are for. The parent field in the UpdateUserLinkRequest messages must either be empty or match this field. Example format: accounts/1234", + "description": "Required. The account or property that owns the access bindings. The parent of all provided AccessBinding in UpdateAccessBindingRequest messages must match this field. Formats: - accounts/{account} - properties/{property}", "location": "path", "pattern": "^accounts/[^/]+$", "required": true, "type": "string" } }, - "path": "v1alpha/{+parent}/userLinks:batchUpdate", + "path": "v1alpha/{+parent}/accessBindings:batchUpdate", "request": { - "$ref": "GoogleAnalyticsAdminV1alphaBatchUpdateUserLinksRequest" + "$ref": "GoogleAnalyticsAdminV1alphaBatchUpdateAccessBindingsRequest" }, "response": { - "$ref": "GoogleAnalyticsAdminV1alphaBatchUpdateUserLinksResponse" + "$ref": "GoogleAnalyticsAdminV1alphaBatchUpdateAccessBindingsResponse" }, "scopes": [ "https://www.googleapis.com/auth/analytics.manage.users" ] }, "create": { - "description": "Creates a user link on an account or property. If the user with the specified email already has permissions on the account or property, then the user's existing permissions will be unioned with the permissions specified in the new UserLink.", - "flatPath": "v1alpha/accounts/{accountsId}/userLinks", + "description": "Creates an access binding on an account or property.", + "flatPath": "v1alpha/accounts/{accountsId}/accessBindings", "httpMethod": "POST", - "id": "analyticsadmin.accounts.userLinks.create", + "id": "analyticsadmin.accounts.accessBindings.create", "parameterOrder": [ "parent" ], "parameters": { - "notifyNewUser": { - "description": "Optional. If set, then email the new user notifying them that they've been granted permissions to the resource.", - "location": "query", - "type": "boolean" - }, "parent": { - "description": "Required. Example format: accounts/1234", + "description": "Required. Formats: - accounts/{account} - properties/{property}", "location": "path", "pattern": "^accounts/[^/]+$", "required": true, "type": "string" } }, - "path": "v1alpha/{+parent}/userLinks", + "path": "v1alpha/{+parent}/accessBindings", "request": { - "$ref": "GoogleAnalyticsAdminV1alphaUserLink" + "$ref": "GoogleAnalyticsAdminV1alphaAccessBinding" }, "response": { - "$ref": "GoogleAnalyticsAdminV1alphaUserLink" + "$ref": "GoogleAnalyticsAdminV1alphaAccessBinding" }, "scopes": [ "https://www.googleapis.com/auth/analytics.manage.users" ] }, "delete": { - "description": "Deletes a user link on an account or property.", - "flatPath": "v1alpha/accounts/{accountsId}/userLinks/{userLinksId}", + "description": "Deletes an access binding on an account or property.", + "flatPath": "v1alpha/accounts/{accountsId}/accessBindings/{accessBindingsId}", "httpMethod": "DELETE", - "id": "analyticsadmin.accounts.userLinks.delete", + "id": "analyticsadmin.accounts.accessBindings.delete", "parameterOrder": [ "name" ], "parameters": { "name": { - "description": "Required. Example format: accounts/1234/userLinks/5678", + "description": "Required. Formats: - accounts/{account}/accessBindings/{accessBinding} - properties/{property}/accessBindings/{accessBinding}", "location": "path", - "pattern": "^accounts/[^/]+/userLinks/[^/]+$", + "pattern": "^accounts/[^/]+/accessBindings/[^/]+$", "required": true, "type": "string" } @@ -546,25 +541,25 @@ ] }, "get": { - "description": "Gets information about a user's link to an account or property.", - "flatPath": "v1alpha/accounts/{accountsId}/userLinks/{userLinksId}", + "description": "Gets information about an access binding.", + "flatPath": "v1alpha/accounts/{accountsId}/accessBindings/{accessBindingsId}", "httpMethod": "GET", - "id": "analyticsadmin.accounts.userLinks.get", + "id": "analyticsadmin.accounts.accessBindings.get", "parameterOrder": [ "name" ], "parameters": { "name": { - "description": "Required. Example format: accounts/1234/userLinks/5678", + "description": "Required. The name of the access binding to retrieve. Formats: - accounts/{account}/accessBindings/{accessBinding} - properties/{property}/accessBindings/{accessBinding}", "location": "path", - "pattern": "^accounts/[^/]+/userLinks/[^/]+$", + "pattern": "^accounts/[^/]+/accessBindings/[^/]+$", "required": true, "type": "string" } }, "path": "v1alpha/{+name}", "response": { - "$ref": "GoogleAnalyticsAdminV1alphaUserLink" + "$ref": "GoogleAnalyticsAdminV1alphaAccessBinding" }, "scopes": [ "https://www.googleapis.com/auth/analytics.manage.users", @@ -572,36 +567,36 @@ ] }, "list": { - "description": "Lists all user links on an account or property.", - "flatPath": "v1alpha/accounts/{accountsId}/userLinks", + "description": "Lists all access bindings on an account or property.", + "flatPath": "v1alpha/accounts/{accountsId}/accessBindings", "httpMethod": "GET", - "id": "analyticsadmin.accounts.userLinks.list", + "id": "analyticsadmin.accounts.accessBindings.list", "parameterOrder": [ "parent" ], "parameters": { "pageSize": { - "description": "The maximum number of user links to return. The service may return fewer than this value. If unspecified, at most 200 user links will be returned. The maximum value is 500; values above 500 will be coerced to 500.", + "description": "The maximum number of access bindings to return. The service may return fewer than this value. If unspecified, at most 200 access bindings will be returned. The maximum value is 500; values above 500 will be coerced to 500.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "A page token, received from a previous `ListUserLinks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListUserLinks` must match the call that provided the page token.", + "description": "A page token, received from a previous `ListAccessBindings` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListAccessBindings` must match the call that provided the page token.", "location": "query", "type": "string" }, "parent": { - "description": "Required. Example format: accounts/1234", + "description": "Required. Formats: - accounts/{account} - properties/{property}", "location": "path", "pattern": "^accounts/[^/]+$", "required": true, "type": "string" } }, - "path": "v1alpha/{+parent}/userLinks", + "path": "v1alpha/{+parent}/accessBindings", "response": { - "$ref": "GoogleAnalyticsAdminV1alphaListUserLinksResponse" + "$ref": "GoogleAnalyticsAdminV1alphaListAccessBindingsResponse" }, "scopes": [ "https://www.googleapis.com/auth/analytics.manage.users", @@ -609,28 +604,28 @@ ] }, "patch": { - "description": "Updates a user link on an account or property.", - "flatPath": "v1alpha/accounts/{accountsId}/userLinks/{userLinksId}", + "description": "Updates an access binding on an account or property.", + "flatPath": "v1alpha/accounts/{accountsId}/accessBindings/{accessBindingsId}", "httpMethod": "PATCH", - "id": "analyticsadmin.accounts.userLinks.patch", + "id": "analyticsadmin.accounts.accessBindings.patch", "parameterOrder": [ "name" ], "parameters": { "name": { - "description": "Output only. Example format: properties/1234/userLinks/5678", + "description": "Output only. Resource name of this binding. Format: accounts/{account}/accessBindings/{access_binding} or properties/{property}/accessBindings/{access_binding} Example: \"accounts/100/accessBindings/200\"", "location": "path", - "pattern": "^accounts/[^/]+/userLinks/[^/]+$", + "pattern": "^accounts/[^/]+/accessBindings/[^/]+$", "required": true, "type": "string" } }, "path": "v1alpha/{+name}", "request": { - "$ref": "GoogleAnalyticsAdminV1alphaUserLink" + "$ref": "GoogleAnalyticsAdminV1alphaAccessBinding" }, "response": { - "$ref": "GoogleAnalyticsAdminV1alphaUserLink" + "$ref": "GoogleAnalyticsAdminV1alphaAccessBinding" }, "scopes": [ "https://www.googleapis.com/auth/analytics.manage.users" @@ -643,7 +638,7 @@ "properties": { "methods": { "acknowledgeUserDataCollection": { - "description": "Acknowledges the terms of user data collection for the specified property. This acknowledgement must be completed (either in the Google Analytics UI or via this API) before MeasurementProtocolSecret resources may be created.", + "description": "Acknowledges the terms of user data collection for the specified property. This acknowledgement must be completed (either in the Google Analytics UI or through this API) before MeasurementProtocolSecret resources may be created.", "flatPath": "v1alpha/properties/{propertiesId}:acknowledgeUserDataCollection", "httpMethod": "POST", "id": "analyticsadmin.properties.acknowledgeUserDataCollection", @@ -688,8 +683,62 @@ "https://www.googleapis.com/auth/analytics.edit" ] }, + "createConnectedSiteTag": { + "description": "Creates a connected site tag for a Universal Analytics property. You can create a maximum of 20 connected site tags per property. Note: This API cannot be used on GA4 properties.", + "flatPath": "v1alpha/properties:createConnectedSiteTag", + "httpMethod": "POST", + "id": "analyticsadmin.properties.createConnectedSiteTag", + "parameterOrder": [], + "parameters": {}, + "path": "v1alpha/properties:createConnectedSiteTag", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaCreateConnectedSiteTagRequest" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaCreateConnectedSiteTagResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "createRollupProperty": { + "description": "Create a roll-up property and all roll-up property source links.", + "flatPath": "v1alpha/properties:createRollupProperty", + "httpMethod": "POST", + "id": "analyticsadmin.properties.createRollupProperty", + "parameterOrder": [], + "parameters": {}, + "path": "v1alpha/properties:createRollupProperty", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaCreateRollupPropertyRequest" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaCreateRollupPropertyResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "createSubproperty": { + "description": "Create a subproperty and a subproperty event filter that applies to the created subproperty.", + "flatPath": "v1alpha/properties:createSubproperty", + "httpMethod": "POST", + "id": "analyticsadmin.properties.createSubproperty", + "parameterOrder": [], + "parameters": {}, + "path": "v1alpha/properties:createSubproperty", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaCreateSubpropertyRequest" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaCreateSubpropertyResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, "delete": { - "description": "Marks target Property as soft-deleted (ie: \"trashed\") and returns it. This API does not have a method to restore soft-deleted properties. However, they can be restored using the Trash Can UI. If the properties are not restored before the expiration time, the Property and all child resources (eg: GoogleAdsLinks, Streams, UserLinks) will be permanently purged. https://support.google.com/analytics/answer/6154772 Returns an error if the target is not found, or is not an GA4 Property.", + "description": "Marks target Property as soft-deleted (ie: \"trashed\") and returns it. This API does not have a method to restore soft-deleted properties. However, they can be restored using the Trash Can UI. If the properties are not restored before the expiration time, the Property and all child resources (eg: GoogleAdsLinks, Streams, AccessBindings) will be permanently purged. https://support.google.com/analytics/answer/6154772 Returns an error if the target is not found, or is not a GA4 Property.", "flatPath": "v1alpha/properties/{propertiesId}", "httpMethod": "DELETE", "id": "analyticsadmin.properties.delete", @@ -713,6 +762,65 @@ "https://www.googleapis.com/auth/analytics.edit" ] }, + "deleteConnectedSiteTag": { + "description": "Deletes a connected site tag for a Universal Analytics property. Note: this has no effect on GA4 properties.", + "flatPath": "v1alpha/properties:deleteConnectedSiteTag", + "httpMethod": "POST", + "id": "analyticsadmin.properties.deleteConnectedSiteTag", + "parameterOrder": [], + "parameters": {}, + "path": "v1alpha/properties:deleteConnectedSiteTag", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaDeleteConnectedSiteTagRequest" + }, + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "fetchAutomatedGa4ConfigurationOptOut": { + "description": "Fetches the opt out status for the automated GA4 setup process for a UA property. Note: this has no effect on GA4 property.", + "flatPath": "v1alpha/properties:fetchAutomatedGa4ConfigurationOptOut", + "httpMethod": "POST", + "id": "analyticsadmin.properties.fetchAutomatedGa4ConfigurationOptOut", + "parameterOrder": [], + "parameters": {}, + "path": "v1alpha/properties:fetchAutomatedGa4ConfigurationOptOut", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaFetchAutomatedGa4ConfigurationOptOutRequest" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaFetchAutomatedGa4ConfigurationOptOutResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "fetchConnectedGa4Property": { + "description": "Given a specified UA property, looks up the GA4 property connected to it. Note: this cannot be used with GA4 properties.", + "flatPath": "v1alpha/properties:fetchConnectedGa4Property", + "httpMethod": "GET", + "id": "analyticsadmin.properties.fetchConnectedGa4Property", + "parameterOrder": [], + "parameters": { + "property": { + "description": "Required. The UA property for which to look up the connected GA4 property. Note this request uses the internal property ID, not the tracking ID of the form UA-XXXXXX-YY. Format: properties/{internal_web_property_id} Example: properties/1234", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/properties:fetchConnectedGa4Property", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaFetchConnectedGa4PropertyResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, "get": { "description": "Lookup for a single \"GA4\" Property.", "flatPath": "v1alpha/properties/{propertiesId}", @@ -739,6 +847,32 @@ "https://www.googleapis.com/auth/analytics.readonly" ] }, + "getAttributionSettings": { + "description": "Lookup for a AttributionSettings singleton.", + "flatPath": "v1alpha/properties/{propertiesId}/attributionSettings", + "httpMethod": "GET", + "id": "analyticsadmin.properties.getAttributionSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the attribution settings to retrieve. Format: properties/{property}/attributionSettings", + "location": "path", + "pattern": "^properties/[^/]+/attributionSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaAttributionSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, "getDataRetentionSettings": { "description": "Returns the singleton data retention settings for this property.", "flatPath": "v1alpha/properties/{propertiesId}/dataRetentionSettings", @@ -829,6 +963,25 @@ "https://www.googleapis.com/auth/analytics.readonly" ] }, + "listConnectedSiteTags": { + "description": "Lists the connected site tags for a Universal Analytics property. A maximum of 20 connected site tags will be returned. Note: this has no effect on GA4 property.", + "flatPath": "v1alpha/properties:listConnectedSiteTags", + "httpMethod": "POST", + "id": "analyticsadmin.properties.listConnectedSiteTags", + "parameterOrder": [], + "parameters": {}, + "path": "v1alpha/properties:listConnectedSiteTags", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaListConnectedSiteTagsRequest" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaListConnectedSiteTagsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, "patch": { "description": "Updates a property.", "flatPath": "v1alpha/properties/{propertiesId}", @@ -863,6 +1016,87 @@ "https://www.googleapis.com/auth/analytics.edit" ] }, + "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. 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": "v1alpha/properties/{propertiesId}:runAccessReport", + "httpMethod": "POST", + "id": "analyticsadmin.properties.runAccessReport", + "parameterOrder": [ + "entity" + ], + "parameters": { + "entity": { + "description": "The Data Access Report supports requesting at the property level or account level. If requested at the account level, Data Access Reports include all access for all properties under that account. To request at the property level, entity should be for example 'properties/123' if \"123\" is your GA4 property ID. To request at the account level, entity should be for example 'accounts/1234' if \"1234\" is your GA4 Account ID.", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+entity}:runAccessReport", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaRunAccessReportRequest" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaRunAccessReportResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "setAutomatedGa4ConfigurationOptOut": { + "description": "Sets the opt out status for the automated GA4 setup process for a UA property. Note: this has no effect on GA4 property.", + "flatPath": "v1alpha/properties:setAutomatedGa4ConfigurationOptOut", + "httpMethod": "POST", + "id": "analyticsadmin.properties.setAutomatedGa4ConfigurationOptOut", + "parameterOrder": [], + "parameters": {}, + "path": "v1alpha/properties:setAutomatedGa4ConfigurationOptOut", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaSetAutomatedGa4ConfigurationOptOutRequest" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaSetAutomatedGa4ConfigurationOptOutResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "updateAttributionSettings": { + "description": "Updates attribution settings on a property.", + "flatPath": "v1alpha/properties/{propertiesId}/attributionSettings", + "httpMethod": "PATCH", + "id": "analyticsadmin.properties.updateAttributionSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. Resource name of this attribution settings resource. Format: properties/{property_id}/attributionSettings Example: \"properties/1000/attributionSettings\"", + "location": "path", + "pattern": "^properties/[^/]+/attributionSettings$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaAttributionSettings" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaAttributionSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, "updateDataRetentionSettings": { "description": "Updates the singleton data retention settings for this property.", "flatPath": "v1alpha/properties/{propertiesId}/dataRetentionSettings", @@ -933,6 +1167,927 @@ } }, "resources": { + "accessBindings": { + "methods": { + "batchCreate": { + "description": "Creates information about multiple access bindings to an account or property. This method is transactional. If any AccessBinding cannot be created, none of the AccessBindings will be created.", + "flatPath": "v1alpha/properties/{propertiesId}/accessBindings:batchCreate", + "httpMethod": "POST", + "id": "analyticsadmin.properties.accessBindings.batchCreate", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The account or property that owns the access bindings. The parent field in the CreateAccessBindingRequest messages must either be empty or match this field. Formats: - accounts/{account} - properties/{property}", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/accessBindings:batchCreate", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaBatchCreateAccessBindingsRequest" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaBatchCreateAccessBindingsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users" + ] + }, + "batchDelete": { + "description": "Deletes information about multiple users' links to an account or property.", + "flatPath": "v1alpha/properties/{propertiesId}/accessBindings:batchDelete", + "httpMethod": "POST", + "id": "analyticsadmin.properties.accessBindings.batchDelete", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The account or property that owns the access bindings. The parent of all provided values for the 'names' field in DeleteAccessBindingRequest messages must match this field. Formats: - accounts/{account} - properties/{property}", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/accessBindings:batchDelete", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaBatchDeleteAccessBindingsRequest" + }, + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users" + ] + }, + "batchGet": { + "description": "Gets information about multiple access bindings to an account or property.", + "flatPath": "v1alpha/properties/{propertiesId}/accessBindings:batchGet", + "httpMethod": "GET", + "id": "analyticsadmin.properties.accessBindings.batchGet", + "parameterOrder": [ + "parent" + ], + "parameters": { + "names": { + "description": "Required. The names of the access bindings to retrieve. A maximum of 1000 access bindings can be retrieved in a batch. Formats: - accounts/{account}/accessBindings/{accessBinding} - properties/{property}/accessBindings/{accessBinding}", + "location": "query", + "repeated": true, + "type": "string" + }, + "parent": { + "description": "Required. The account or property that owns the access bindings. The parent of all provided values for the 'names' field must match this field. Formats: - accounts/{account} - properties/{property}", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/accessBindings:batchGet", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaBatchGetAccessBindingsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users", + "https://www.googleapis.com/auth/analytics.manage.users.readonly" + ] + }, + "batchUpdate": { + "description": "Updates information about multiple access bindings to an account or property.", + "flatPath": "v1alpha/properties/{propertiesId}/accessBindings:batchUpdate", + "httpMethod": "POST", + "id": "analyticsadmin.properties.accessBindings.batchUpdate", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The account or property that owns the access bindings. The parent of all provided AccessBinding in UpdateAccessBindingRequest messages must match this field. Formats: - accounts/{account} - properties/{property}", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/accessBindings:batchUpdate", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaBatchUpdateAccessBindingsRequest" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaBatchUpdateAccessBindingsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users" + ] + }, + "create": { + "description": "Creates an access binding on an account or property.", + "flatPath": "v1alpha/properties/{propertiesId}/accessBindings", + "httpMethod": "POST", + "id": "analyticsadmin.properties.accessBindings.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Formats: - accounts/{account} - properties/{property}", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/accessBindings", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessBinding" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessBinding" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users" + ] + }, + "delete": { + "description": "Deletes an access binding on an account or property.", + "flatPath": "v1alpha/properties/{propertiesId}/accessBindings/{accessBindingsId}", + "httpMethod": "DELETE", + "id": "analyticsadmin.properties.accessBindings.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Formats: - accounts/{account}/accessBindings/{accessBinding} - properties/{property}/accessBindings/{accessBinding}", + "location": "path", + "pattern": "^properties/[^/]+/accessBindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users" + ] + }, + "get": { + "description": "Gets information about an access binding.", + "flatPath": "v1alpha/properties/{propertiesId}/accessBindings/{accessBindingsId}", + "httpMethod": "GET", + "id": "analyticsadmin.properties.accessBindings.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the access binding to retrieve. Formats: - accounts/{account}/accessBindings/{accessBinding} - properties/{property}/accessBindings/{accessBinding}", + "location": "path", + "pattern": "^properties/[^/]+/accessBindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessBinding" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users", + "https://www.googleapis.com/auth/analytics.manage.users.readonly" + ] + }, + "list": { + "description": "Lists all access bindings on an account or property.", + "flatPath": "v1alpha/properties/{propertiesId}/accessBindings", + "httpMethod": "GET", + "id": "analyticsadmin.properties.accessBindings.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of access bindings to return. The service may return fewer than this value. If unspecified, at most 200 access bindings will be returned. The maximum value is 500; values above 500 will be coerced to 500.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListAccessBindings` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListAccessBindings` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Formats: - accounts/{account} - properties/{property}", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/accessBindings", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaListAccessBindingsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users", + "https://www.googleapis.com/auth/analytics.manage.users.readonly" + ] + }, + "patch": { + "description": "Updates an access binding on an account or property.", + "flatPath": "v1alpha/properties/{propertiesId}/accessBindings/{accessBindingsId}", + "httpMethod": "PATCH", + "id": "analyticsadmin.properties.accessBindings.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. Resource name of this binding. Format: accounts/{account}/accessBindings/{access_binding} or properties/{property}/accessBindings/{access_binding} Example: \"accounts/100/accessBindings/200\"", + "location": "path", + "pattern": "^properties/[^/]+/accessBindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessBinding" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessBinding" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users" + ] + } + } + }, + "adSenseLinks": { + "methods": { + "create": { + "description": "Creates an AdSenseLink.", + "flatPath": "v1alpha/properties/{propertiesId}/adSenseLinks", + "httpMethod": "POST", + "id": "analyticsadmin.properties.adSenseLinks.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The property for which to create an AdSense Link. Format: properties/{propertyId} Example: properties/1234", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/adSenseLinks", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaAdSenseLink" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaAdSenseLink" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "delete": { + "description": "Deletes an AdSenseLink.", + "flatPath": "v1alpha/properties/{propertiesId}/adSenseLinks/{adSenseLinksId}", + "httpMethod": "DELETE", + "id": "analyticsadmin.properties.adSenseLinks.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Unique identifier for the AdSense Link to be deleted. Format: properties/{propertyId}/adSenseLinks/{linkId} Example: properties/1234/adSenseLinks/5678", + "location": "path", + "pattern": "^properties/[^/]+/adSenseLinks/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "get": { + "description": "Looks up a single AdSenseLink.", + "flatPath": "v1alpha/properties/{propertiesId}/adSenseLinks/{adSenseLinksId}", + "httpMethod": "GET", + "id": "analyticsadmin.properties.adSenseLinks.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Unique identifier for the AdSense Link requested. Format: properties/{propertyId}/adSenseLinks/{linkId} Example: properties/1234/adSenseLinks/5678", + "location": "path", + "pattern": "^properties/[^/]+/adSenseLinks/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaAdSenseLink" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "list": { + "description": "Lists AdSenseLinks on a property.", + "flatPath": "v1alpha/properties/{propertiesId}/adSenseLinks", + "httpMethod": "GET", + "id": "analyticsadmin.properties.adSenseLinks.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the maximum).", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token received from a previous `ListAdSenseLinks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListAdSenseLinks` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Resource name of the parent property. Format: properties/{propertyId} Example: properties/1234", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/adSenseLinks", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaListAdSenseLinksResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + } + } + }, + "audiences": { + "methods": { + "archive": { + "description": "Archives an Audience on a property.", + "flatPath": "v1alpha/properties/{propertiesId}/audiences/{audiencesId}:archive", + "httpMethod": "POST", + "id": "analyticsadmin.properties.audiences.archive", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Example format: properties/1234/audiences/5678", + "location": "path", + "pattern": "^properties/[^/]+/audiences/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}:archive", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaArchiveAudienceRequest" + }, + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "create": { + "description": "Creates an Audience.", + "flatPath": "v1alpha/properties/{propertiesId}/audiences", + "httpMethod": "POST", + "id": "analyticsadmin.properties.audiences.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Example format: properties/1234", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/audiences", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaAudience" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaAudience" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "get": { + "description": "Lookup for a single Audience. Audiences created before 2020 may not be supported. Default audiences will not show filter definitions.", + "flatPath": "v1alpha/properties/{propertiesId}/audiences/{audiencesId}", + "httpMethod": "GET", + "id": "analyticsadmin.properties.audiences.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the Audience to get. Example format: properties/1234/audiences/5678", + "location": "path", + "pattern": "^properties/[^/]+/audiences/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaAudience" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "list": { + "description": "Lists Audiences on a property. Audiences created before 2020 may not be supported. Default audiences will not show filter definitions.", + "flatPath": "v1alpha/properties/{propertiesId}/audiences", + "httpMethod": "GET", + "id": "analyticsadmin.properties.audiences.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the maximum).", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListAudiences` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListAudiences` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Example format: properties/1234", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/audiences", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaListAudiencesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "patch": { + "description": "Updates an Audience on a property.", + "flatPath": "v1alpha/properties/{propertiesId}/audiences/{audiencesId}", + "httpMethod": "PATCH", + "id": "analyticsadmin.properties.audiences.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The resource name for this Audience resource. Format: properties/{propertyId}/audiences/{audienceId}", + "location": "path", + "pattern": "^properties/[^/]+/audiences/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaAudience" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaAudience" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + } + } + }, + "bigQueryLinks": { + "methods": { + "get": { + "description": "Lookup for a single BigQuery Link.", + "flatPath": "v1alpha/properties/{propertiesId}/bigQueryLinks/{bigQueryLinksId}", + "httpMethod": "GET", + "id": "analyticsadmin.properties.bigQueryLinks.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the BigQuery link to lookup. Format: properties/{property_id}/bigQueryLinks/{bigquery_link_id} Example: properties/123/bigQueryLinks/456", + "location": "path", + "pattern": "^properties/[^/]+/bigQueryLinks/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaBigQueryLink" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "list": { + "description": "Lists BigQuery Links on a property.", + "flatPath": "v1alpha/properties/{propertiesId}/bigQueryLinks", + "httpMethod": "GET", + "id": "analyticsadmin.properties.bigQueryLinks.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coerced to the maximum)", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListBigQueryLinks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListBigQueryLinks` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The name of the property to list BigQuery links under. Format: properties/{property_id} Example: properties/1234", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/bigQueryLinks", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaListBigQueryLinksResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + } + } + }, + "calculatedMetrics": { + "methods": { + "create": { + "description": "Creates a CalculatedMetric.", + "flatPath": "v1alpha/properties/{propertiesId}/calculatedMetrics", + "httpMethod": "POST", + "id": "analyticsadmin.properties.calculatedMetrics.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "calculatedMetricId": { + "description": "Required. The ID to use for the calculated metric which will become the final component of the calculated metric's resource name. This value should be 1-80 characters and valid characters are /[a-zA-Z0-9_]/, no spaces allowed. calculated_metric_id must be unique between all calculated metrics under a property. The calculated_metric_id is used when referencing this calculated metric from external APIs, for example, \"calcMetric:{calculated_metric_id}\".", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Format: properties/{property_id} Example: properties/1234", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/calculatedMetrics", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaCalculatedMetric" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaCalculatedMetric" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "delete": { + "description": "Deletes a CalculatedMetric on a property.", + "flatPath": "v1alpha/properties/{propertiesId}/calculatedMetrics/{calculatedMetricsId}", + "httpMethod": "DELETE", + "id": "analyticsadmin.properties.calculatedMetrics.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the CalculatedMetric to delete. Format: properties/{property_id}/calculatedMetrics/{calculated_metric_id} Example: properties/1234/calculatedMetrics/Metric01", + "location": "path", + "pattern": "^properties/[^/]+/calculatedMetrics/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "get": { + "description": "Lookup for a single CalculatedMetric.", + "flatPath": "v1alpha/properties/{propertiesId}/calculatedMetrics/{calculatedMetricsId}", + "httpMethod": "GET", + "id": "analyticsadmin.properties.calculatedMetrics.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the CalculatedMetric to get. Format: properties/{property_id}/calculatedMetrics/{calculated_metric_id} Example: properties/1234/calculatedMetrics/Metric01", + "location": "path", + "pattern": "^properties/[^/]+/calculatedMetrics/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaCalculatedMetric" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "list": { + "description": "Lists CalculatedMetrics on a property.", + "flatPath": "v1alpha/properties/{propertiesId}/calculatedMetrics", + "httpMethod": "GET", + "id": "analyticsadmin.properties.calculatedMetrics.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the maximum).", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListCalculatedMetrics` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListCalculatedMetrics` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Example format: properties/1234", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/calculatedMetrics", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaListCalculatedMetricsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "patch": { + "description": "Updates a CalculatedMetric on a property.", + "flatPath": "v1alpha/properties/{propertiesId}/calculatedMetrics/{calculatedMetricsId}", + "httpMethod": "PATCH", + "id": "analyticsadmin.properties.calculatedMetrics.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. Resource name for this CalculatedMetric. Format: 'properties/{property_id}/calculatedMetrics/{calculated_metric_id}'", + "location": "path", + "pattern": "^properties/[^/]+/calculatedMetrics/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to be updated. Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaCalculatedMetric" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaCalculatedMetric" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + } + } + }, + "channelGroups": { + "methods": { + "create": { + "description": "Creates a ChannelGroup.", + "flatPath": "v1alpha/properties/{propertiesId}/channelGroups", + "httpMethod": "POST", + "id": "analyticsadmin.properties.channelGroups.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The property for which to create a ChannelGroup. Example format: properties/1234", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/channelGroups", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaChannelGroup" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaChannelGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "delete": { + "description": "Deletes a ChannelGroup on a property.", + "flatPath": "v1alpha/properties/{propertiesId}/channelGroups/{channelGroupsId}", + "httpMethod": "DELETE", + "id": "analyticsadmin.properties.channelGroups.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The ChannelGroup to delete. Example format: properties/1234/channelGroups/5678", + "location": "path", + "pattern": "^properties/[^/]+/channelGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "get": { + "description": "Lookup for a single ChannelGroup.", + "flatPath": "v1alpha/properties/{propertiesId}/channelGroups/{channelGroupsId}", + "httpMethod": "GET", + "id": "analyticsadmin.properties.channelGroups.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The ChannelGroup to get. Example format: properties/1234/channelGroups/5678", + "location": "path", + "pattern": "^properties/[^/]+/channelGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaChannelGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "list": { + "description": "Lists ChannelGroups on a property.", + "flatPath": "v1alpha/properties/{propertiesId}/channelGroups", + "httpMethod": "GET", + "id": "analyticsadmin.properties.channelGroups.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the maximum).", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListChannelGroups` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListChannelGroups` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The property for which to list ChannelGroups. Example format: properties/1234", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/channelGroups", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaListChannelGroupsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "patch": { + "description": "Updates a ChannelGroup.", + "flatPath": "v1alpha/properties/{propertiesId}/channelGroups/{channelGroupsId}", + "httpMethod": "PATCH", + "id": "analyticsadmin.properties.channelGroups.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The resource name for this Channel Group resource. Format: properties/{property}/channelGroups/{channel_group}", + "location": "path", + "pattern": "^properties/[^/]+/channelGroups/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaChannelGroup" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaChannelGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + } + } + }, "conversionEvents": { "methods": { "create": { @@ -1050,6 +2205,40 @@ "https://www.googleapis.com/auth/analytics.edit", "https://www.googleapis.com/auth/analytics.readonly" ] + }, + "patch": { + "description": "Updates a conversion event with the specified attributes.", + "flatPath": "v1alpha/properties/{propertiesId}/conversionEvents/{conversionEventsId}", + "httpMethod": "PATCH", + "id": "analyticsadmin.properties.conversionEvents.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. Resource name of this conversion event. Format: properties/{property}/conversionEvents/{conversion_event}", + "location": "path", + "pattern": "^properties/[^/]+/conversionEvents/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaConversionEvent" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaConversionEvent" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] } } }, @@ -1448,6 +2637,58 @@ "https://www.googleapis.com/auth/analytics.readonly" ] }, + "getDataRedactionSettings": { + "description": "Lookup for a single DataRedactionSettings.", + "flatPath": "v1alpha/properties/{propertiesId}/dataStreams/{dataStreamsId}/dataRedactionSettings", + "httpMethod": "GET", + "id": "analyticsadmin.properties.dataStreams.getDataRedactionSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the settings to lookup. Format: properties/{property}/dataStreams/{data_stream}/dataRedactionSettings Example: \"properties/1000/dataStreams/2000/dataRedactionSettings\"", + "location": "path", + "pattern": "^properties/[^/]+/dataStreams/[^/]+/dataRedactionSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaDataRedactionSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "getEnhancedMeasurementSettings": { + "description": "Returns the enhanced measurement settings for this data stream. Note that the stream must enable enhanced measurement for these settings to take effect.", + "flatPath": "v1alpha/properties/{propertiesId}/dataStreams/{dataStreamsId}/enhancedMeasurementSettings", + "httpMethod": "GET", + "id": "analyticsadmin.properties.dataStreams.getEnhancedMeasurementSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the settings to lookup. Format: properties/{property}/dataStreams/{data_stream}/enhancedMeasurementSettings Example: \"properties/1000/dataStreams/2000/enhancedMeasurementSettings\"", + "location": "path", + "pattern": "^properties/[^/]+/dataStreams/[^/]+/enhancedMeasurementSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaEnhancedMeasurementSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, "getGlobalSiteTag": { "description": "Returns the Site Tag for the specified web stream. Site Tags are immutable singletons.", "flatPath": "v1alpha/properties/{propertiesId}/dataStreams/{dataStreamsId}/globalSiteTag", @@ -1544,9 +2785,231 @@ "scopes": [ "https://www.googleapis.com/auth/analytics.edit" ] + }, + "updateDataRedactionSettings": { + "description": "Updates a DataRedactionSettings on a property.", + "flatPath": "v1alpha/properties/{propertiesId}/dataStreams/{dataStreamsId}/dataRedactionSettings", + "httpMethod": "PATCH", + "id": "analyticsadmin.properties.dataStreams.updateDataRedactionSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. Name of this Data Redaction Settings resource. Format: properties/{property_id}/dataStreams/{data_stream}/dataRedactionSettings Example: \"properties/1000/dataStreams/2000/dataRedactionSettings\"", + "location": "path", + "pattern": "^properties/[^/]+/dataStreams/[^/]+/dataRedactionSettings$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaDataRedactionSettings" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaDataRedactionSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "updateEnhancedMeasurementSettings": { + "description": "Updates the enhanced measurement settings for this data stream. Note that the stream must enable enhanced measurement for these settings to take effect.", + "flatPath": "v1alpha/properties/{propertiesId}/dataStreams/{dataStreamsId}/enhancedMeasurementSettings", + "httpMethod": "PATCH", + "id": "analyticsadmin.properties.dataStreams.updateEnhancedMeasurementSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. Resource name of the Enhanced Measurement Settings. Format: properties/{property_id}/dataStreams/{data_stream}/enhancedMeasurementSettings Example: \"properties/1000/dataStreams/2000/enhancedMeasurementSettings\"", + "location": "path", + "pattern": "^properties/[^/]+/dataStreams/[^/]+/enhancedMeasurementSettings$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaEnhancedMeasurementSettings" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaEnhancedMeasurementSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] } }, "resources": { + "eventCreateRules": { + "methods": { + "create": { + "description": "Creates an EventCreateRule.", + "flatPath": "v1alpha/properties/{propertiesId}/dataStreams/{dataStreamsId}/eventCreateRules", + "httpMethod": "POST", + "id": "analyticsadmin.properties.dataStreams.eventCreateRules.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Example format: properties/123/dataStreams/456", + "location": "path", + "pattern": "^properties/[^/]+/dataStreams/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/eventCreateRules", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaEventCreateRule" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaEventCreateRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "delete": { + "description": "Deletes an EventCreateRule.", + "flatPath": "v1alpha/properties/{propertiesId}/dataStreams/{dataStreamsId}/eventCreateRules/{eventCreateRulesId}", + "httpMethod": "DELETE", + "id": "analyticsadmin.properties.dataStreams.eventCreateRules.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Example format: properties/123/dataStreams/456/eventCreateRules/789", + "location": "path", + "pattern": "^properties/[^/]+/dataStreams/[^/]+/eventCreateRules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "get": { + "description": "Lookup for a single EventCreateRule.", + "flatPath": "v1alpha/properties/{propertiesId}/dataStreams/{dataStreamsId}/eventCreateRules/{eventCreateRulesId}", + "httpMethod": "GET", + "id": "analyticsadmin.properties.dataStreams.eventCreateRules.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the EventCreateRule to get. Example format: properties/123/dataStreams/456/eventCreateRules/789", + "location": "path", + "pattern": "^properties/[^/]+/dataStreams/[^/]+/eventCreateRules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaEventCreateRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "list": { + "description": "Lists EventCreateRules on a web data stream.", + "flatPath": "v1alpha/properties/{propertiesId}/dataStreams/{dataStreamsId}/eventCreateRules", + "httpMethod": "GET", + "id": "analyticsadmin.properties.dataStreams.eventCreateRules.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the maximum).", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListEventCreateRules` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListEventCreateRules` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Example format: properties/123/dataStreams/456", + "location": "path", + "pattern": "^properties/[^/]+/dataStreams/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/eventCreateRules", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaListEventCreateRulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "patch": { + "description": "Updates an EventCreateRule.", + "flatPath": "v1alpha/properties/{propertiesId}/dataStreams/{dataStreamsId}/eventCreateRules/{eventCreateRulesId}", + "httpMethod": "PATCH", + "id": "analyticsadmin.properties.dataStreams.eventCreateRules.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. Resource name for this EventCreateRule resource. Format: properties/{property}/dataStreams/{data_stream}/eventCreateRules/{event_create_rule}", + "location": "path", + "pattern": "^properties/[^/]+/dataStreams/[^/]+/eventCreateRules/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaEventCreateRule" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaEventCreateRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + } + } + }, "measurementProtocolSecrets": { "methods": { "create": { @@ -1675,14 +3138,14 @@ ], "parameters": { "name": { - "description": "Output only. Resource name of this secret. This secret may be a child of any type of stream. Format: properties/{property}/webDataStreams/{webDataStream}/measurementProtocolSecrets/{measurementProtocolSecret}", + "description": "Output only. Resource name of this secret. This secret may be a child of any type of stream. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementProtocolSecret}", "location": "path", "pattern": "^properties/[^/]+/dataStreams/[^/]+/measurementProtocolSecrets/[^/]+$", "required": true, "type": "string" }, "updateMask": { - "description": "The list of fields to be updated. Omitted fields will not be updated.", + "description": "Required. The list of fields to be updated. Omitted fields will not be updated.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -1700,6 +3163,160 @@ ] } } + }, + "sKAdNetworkConversionValueSchema": { + "methods": { + "create": { + "description": "Creates a SKAdNetworkConversionValueSchema.", + "flatPath": "v1alpha/properties/{propertiesId}/dataStreams/{dataStreamsId}/sKAdNetworkConversionValueSchema", + "httpMethod": "POST", + "id": "analyticsadmin.properties.dataStreams.sKAdNetworkConversionValueSchema.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource where this schema will be created. Format: properties/{property}/dataStreams/{dataStream}", + "location": "path", + "pattern": "^properties/[^/]+/dataStreams/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/sKAdNetworkConversionValueSchema", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaSKAdNetworkConversionValueSchema" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaSKAdNetworkConversionValueSchema" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "delete": { + "description": "Deletes target SKAdNetworkConversionValueSchema.", + "flatPath": "v1alpha/properties/{propertiesId}/dataStreams/{dataStreamsId}/sKAdNetworkConversionValueSchema/{sKAdNetworkConversionValueSchemaId}", + "httpMethod": "DELETE", + "id": "analyticsadmin.properties.dataStreams.sKAdNetworkConversionValueSchema.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the SKAdNetworkConversionValueSchema to delete. Format: properties/{property}/dataStreams/{dataStream}/sKAdNetworkConversionValueSchema/{skadnetwork_conversion_value_schema}", + "location": "path", + "pattern": "^properties/[^/]+/dataStreams/[^/]+/sKAdNetworkConversionValueSchema/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "get": { + "description": "Looks up a single SKAdNetworkConversionValueSchema.", + "flatPath": "v1alpha/properties/{propertiesId}/dataStreams/{dataStreamsId}/sKAdNetworkConversionValueSchema/{sKAdNetworkConversionValueSchemaId}", + "httpMethod": "GET", + "id": "analyticsadmin.properties.dataStreams.sKAdNetworkConversionValueSchema.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of SKAdNetwork conversion value schema to look up. Format: properties/{property}/dataStreams/{dataStream}/sKAdNetworkConversionValueSchema/{skadnetwork_conversion_value_schema}", + "location": "path", + "pattern": "^properties/[^/]+/dataStreams/[^/]+/sKAdNetworkConversionValueSchema/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaSKAdNetworkConversionValueSchema" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "list": { + "description": "Lists SKAdNetworkConversionValueSchema on a stream. Properties can have at most one SKAdNetworkConversionValueSchema.", + "flatPath": "v1alpha/properties/{propertiesId}/dataStreams/{dataStreamsId}/sKAdNetworkConversionValueSchema", + "httpMethod": "GET", + "id": "analyticsadmin.properties.dataStreams.sKAdNetworkConversionValueSchema.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coerced to the maximum)", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListSKAdNetworkConversionValueSchemas` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListSKAdNetworkConversionValueSchema` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The DataStream resource to list schemas for. Format: properties/{property_id}/dataStreams/{dataStream} Example: properties/1234/dataStreams/5678", + "location": "path", + "pattern": "^properties/[^/]+/dataStreams/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/sKAdNetworkConversionValueSchema", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaListSKAdNetworkConversionValueSchemasResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "patch": { + "description": "Updates a SKAdNetworkConversionValueSchema.", + "flatPath": "v1alpha/properties/{propertiesId}/dataStreams/{dataStreamsId}/sKAdNetworkConversionValueSchema/{sKAdNetworkConversionValueSchemaId}", + "httpMethod": "PATCH", + "id": "analyticsadmin.properties.dataStreams.sKAdNetworkConversionValueSchema.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. Resource name of the schema. This will be child of ONLY an iOS stream, and there can be at most one such child under an iOS stream. Format: properties/{property}/dataStreams/{dataStream}/sKAdNetworkConversionValueSchema", + "location": "path", + "pattern": "^properties/[^/]+/dataStreams/[^/]+/sKAdNetworkConversionValueSchema/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to be updated. Omitted fields will not be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaSKAdNetworkConversionValueSchema" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaSKAdNetworkConversionValueSchema" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + } + } } } }, @@ -2033,6 +3650,160 @@ } } }, + "expandedDataSets": { + "methods": { + "create": { + "description": "Creates a ExpandedDataSet.", + "flatPath": "v1alpha/properties/{propertiesId}/expandedDataSets", + "httpMethod": "POST", + "id": "analyticsadmin.properties.expandedDataSets.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Example format: properties/1234", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/expandedDataSets", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaExpandedDataSet" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaExpandedDataSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "delete": { + "description": "Deletes a ExpandedDataSet on a property.", + "flatPath": "v1alpha/properties/{propertiesId}/expandedDataSets/{expandedDataSetsId}", + "httpMethod": "DELETE", + "id": "analyticsadmin.properties.expandedDataSets.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Example format: properties/1234/expandedDataSets/5678", + "location": "path", + "pattern": "^properties/[^/]+/expandedDataSets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "get": { + "description": "Lookup for a single ExpandedDataSet.", + "flatPath": "v1alpha/properties/{propertiesId}/expandedDataSets/{expandedDataSetsId}", + "httpMethod": "GET", + "id": "analyticsadmin.properties.expandedDataSets.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the ExpandedDataSet to get. Example format: properties/1234/expandedDataSets/5678", + "location": "path", + "pattern": "^properties/[^/]+/expandedDataSets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaExpandedDataSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "list": { + "description": "Lists ExpandedDataSets on a property.", + "flatPath": "v1alpha/properties/{propertiesId}/expandedDataSets", + "httpMethod": "GET", + "id": "analyticsadmin.properties.expandedDataSets.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the maximum).", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListExpandedDataSets` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListExpandedDataSet` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Example format: properties/1234", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/expandedDataSets", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaListExpandedDataSetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "patch": { + "description": "Updates a ExpandedDataSet on a property.", + "flatPath": "v1alpha/properties/{propertiesId}/expandedDataSets/{expandedDataSetsId}", + "httpMethod": "PATCH", + "id": "analyticsadmin.properties.expandedDataSets.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The resource name for this ExpandedDataSet resource. Format: properties/{property_id}/expandedDataSets/{expanded_data_set}", + "location": "path", + "pattern": "^properties/[^/]+/expandedDataSets/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaExpandedDataSet" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaExpandedDataSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + } + } + }, "firebaseLinks": { "methods": { "create": { @@ -2104,7 +3875,7 @@ "type": "integer" }, "pageToken": { - "description": "A page token, received from a previous `ListFirebaseLinks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListProperties` must match the call that provided the page token.", + "description": "A page token, received from a previous `ListFirebaseLinks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListFirebaseLinks` must match the call that provided the page token.", "location": "query", "type": "string" }, @@ -2255,199 +4026,49 @@ } } }, - "userLinks": { + "rollupPropertySourceLinks": { "methods": { - "audit": { - "description": "Lists all user links on an account or property, including implicit ones that come from effective permissions granted by groups or organization admin roles. If a returned user link does not have direct permissions, they cannot be removed from the account or property directly with the DeleteUserLink command. They have to be removed from the group/etc that gives them permissions, which is currently only usable/discoverable in the GA or GMP UIs.", - "flatPath": "v1alpha/properties/{propertiesId}/userLinks:audit", - "httpMethod": "POST", - "id": "analyticsadmin.properties.userLinks.audit", - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. Example format: accounts/1234", - "location": "path", - "pattern": "^properties/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1alpha/{+parent}/userLinks:audit", - "request": { - "$ref": "GoogleAnalyticsAdminV1alphaAuditUserLinksRequest" - }, - "response": { - "$ref": "GoogleAnalyticsAdminV1alphaAuditUserLinksResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/analytics.manage.users", - "https://www.googleapis.com/auth/analytics.manage.users.readonly" - ] - }, - "batchCreate": { - "description": "Creates information about multiple users' links to an account or property. This method is transactional. If any UserLink cannot be created, none of the UserLinks will be created.", - "flatPath": "v1alpha/properties/{propertiesId}/userLinks:batchCreate", - "httpMethod": "POST", - "id": "analyticsadmin.properties.userLinks.batchCreate", - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. The account or property that all user links in the request are for. This field is required. The parent field in the CreateUserLinkRequest messages must either be empty or match this field. Example format: accounts/1234", - "location": "path", - "pattern": "^properties/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1alpha/{+parent}/userLinks:batchCreate", - "request": { - "$ref": "GoogleAnalyticsAdminV1alphaBatchCreateUserLinksRequest" - }, - "response": { - "$ref": "GoogleAnalyticsAdminV1alphaBatchCreateUserLinksResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/analytics.manage.users" - ] - }, - "batchDelete": { - "description": "Deletes information about multiple users' links to an account or property.", - "flatPath": "v1alpha/properties/{propertiesId}/userLinks:batchDelete", - "httpMethod": "POST", - "id": "analyticsadmin.properties.userLinks.batchDelete", - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. The account or property that all user links in the request are for. The parent of all values for user link names to delete must match this field. Example format: accounts/1234", - "location": "path", - "pattern": "^properties/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1alpha/{+parent}/userLinks:batchDelete", - "request": { - "$ref": "GoogleAnalyticsAdminV1alphaBatchDeleteUserLinksRequest" - }, - "response": { - "$ref": "GoogleProtobufEmpty" - }, - "scopes": [ - "https://www.googleapis.com/auth/analytics.manage.users" - ] - }, - "batchGet": { - "description": "Gets information about multiple users' links to an account or property.", - "flatPath": "v1alpha/properties/{propertiesId}/userLinks:batchGet", - "httpMethod": "GET", - "id": "analyticsadmin.properties.userLinks.batchGet", - "parameterOrder": [ - "parent" - ], - "parameters": { - "names": { - "description": "Required. The names of the user links to retrieve. A maximum of 1000 user links can be retrieved in a batch. Format: accounts/{accountId}/userLinks/{userLinkId}", - "location": "query", - "repeated": true, - "type": "string" - }, - "parent": { - "description": "Required. The account or property that all user links in the request are for. The parent of all provided values for the 'names' field must match this field. Example format: accounts/1234", - "location": "path", - "pattern": "^properties/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1alpha/{+parent}/userLinks:batchGet", - "response": { - "$ref": "GoogleAnalyticsAdminV1alphaBatchGetUserLinksResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/analytics.manage.users", - "https://www.googleapis.com/auth/analytics.manage.users.readonly" - ] - }, - "batchUpdate": { - "description": "Updates information about multiple users' links to an account or property.", - "flatPath": "v1alpha/properties/{propertiesId}/userLinks:batchUpdate", - "httpMethod": "POST", - "id": "analyticsadmin.properties.userLinks.batchUpdate", - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. The account or property that all user links in the request are for. The parent field in the UpdateUserLinkRequest messages must either be empty or match this field. Example format: accounts/1234", - "location": "path", - "pattern": "^properties/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1alpha/{+parent}/userLinks:batchUpdate", - "request": { - "$ref": "GoogleAnalyticsAdminV1alphaBatchUpdateUserLinksRequest" - }, - "response": { - "$ref": "GoogleAnalyticsAdminV1alphaBatchUpdateUserLinksResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/analytics.manage.users" - ] - }, "create": { - "description": "Creates a user link on an account or property. If the user with the specified email already has permissions on the account or property, then the user's existing permissions will be unioned with the permissions specified in the new UserLink.", - "flatPath": "v1alpha/properties/{propertiesId}/userLinks", + "description": "Creates a roll-up property source link. Only roll-up properties can have source links, so this method will throw an error if used on other types of properties.", + "flatPath": "v1alpha/properties/{propertiesId}/rollupPropertySourceLinks", "httpMethod": "POST", - "id": "analyticsadmin.properties.userLinks.create", + "id": "analyticsadmin.properties.rollupPropertySourceLinks.create", "parameterOrder": [ "parent" ], "parameters": { - "notifyNewUser": { - "description": "Optional. If set, then email the new user notifying them that they've been granted permissions to the resource.", - "location": "query", - "type": "boolean" - }, "parent": { - "description": "Required. Example format: accounts/1234", + "description": "Required. Format: properties/{property_id} Example: properties/1234", "location": "path", "pattern": "^properties/[^/]+$", "required": true, "type": "string" } }, - "path": "v1alpha/{+parent}/userLinks", + "path": "v1alpha/{+parent}/rollupPropertySourceLinks", "request": { - "$ref": "GoogleAnalyticsAdminV1alphaUserLink" + "$ref": "GoogleAnalyticsAdminV1alphaRollupPropertySourceLink" }, "response": { - "$ref": "GoogleAnalyticsAdminV1alphaUserLink" + "$ref": "GoogleAnalyticsAdminV1alphaRollupPropertySourceLink" }, "scopes": [ - "https://www.googleapis.com/auth/analytics.manage.users" + "https://www.googleapis.com/auth/analytics.edit" ] }, "delete": { - "description": "Deletes a user link on an account or property.", - "flatPath": "v1alpha/properties/{propertiesId}/userLinks/{userLinksId}", + "description": "Deletes a roll-up property source link. Only roll-up properties can have source links, so this method will throw an error if used on other types of properties.", + "flatPath": "v1alpha/properties/{propertiesId}/rollupPropertySourceLinks/{rollupPropertySourceLinksId}", "httpMethod": "DELETE", - "id": "analyticsadmin.properties.userLinks.delete", + "id": "analyticsadmin.properties.rollupPropertySourceLinks.delete", "parameterOrder": [ "name" ], "parameters": { "name": { - "description": "Required. Example format: accounts/1234/userLinks/5678", + "description": "Required. Format: properties/{property_id}/rollupPropertySourceLinks/{rollup_property_source_link_id} Example: properties/1234/rollupPropertySourceLinks/5678", "location": "path", - "pattern": "^properties/[^/]+/userLinks/[^/]+$", + "pattern": "^properties/[^/]+/rollupPropertySourceLinks/[^/]+$", "required": true, "type": "string" } @@ -2457,98 +4078,378 @@ "$ref": "GoogleProtobufEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/analytics.manage.users" + "https://www.googleapis.com/auth/analytics.edit" ] }, "get": { - "description": "Gets information about a user's link to an account or property.", - "flatPath": "v1alpha/properties/{propertiesId}/userLinks/{userLinksId}", + "description": "Lookup for a single roll-up property source Link. Only roll-up properties can have source links, so this method will throw an error if used on other types of properties.", + "flatPath": "v1alpha/properties/{propertiesId}/rollupPropertySourceLinks/{rollupPropertySourceLinksId}", "httpMethod": "GET", - "id": "analyticsadmin.properties.userLinks.get", + "id": "analyticsadmin.properties.rollupPropertySourceLinks.get", "parameterOrder": [ "name" ], "parameters": { "name": { - "description": "Required. Example format: accounts/1234/userLinks/5678", + "description": "Required. The name of the roll-up property source link to lookup. Format: properties/{property_id}/rollupPropertySourceLinks/{rollup_property_source_link_id} Example: properties/123/rollupPropertySourceLinks/456", "location": "path", - "pattern": "^properties/[^/]+/userLinks/[^/]+$", + "pattern": "^properties/[^/]+/rollupPropertySourceLinks/[^/]+$", "required": true, "type": "string" } }, "path": "v1alpha/{+name}", "response": { - "$ref": "GoogleAnalyticsAdminV1alphaUserLink" + "$ref": "GoogleAnalyticsAdminV1alphaRollupPropertySourceLink" }, "scopes": [ - "https://www.googleapis.com/auth/analytics.manage.users", - "https://www.googleapis.com/auth/analytics.manage.users.readonly" + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" ] }, "list": { - "description": "Lists all user links on an account or property.", - "flatPath": "v1alpha/properties/{propertiesId}/userLinks", + "description": "Lists roll-up property source Links on a property. Only roll-up properties can have source links, so this method will throw an error if used on other types of properties.", + "flatPath": "v1alpha/properties/{propertiesId}/rollupPropertySourceLinks", "httpMethod": "GET", - "id": "analyticsadmin.properties.userLinks.list", + "id": "analyticsadmin.properties.rollupPropertySourceLinks.list", "parameterOrder": [ "parent" ], "parameters": { "pageSize": { - "description": "The maximum number of user links to return. The service may return fewer than this value. If unspecified, at most 200 user links will be returned. The maximum value is 500; values above 500 will be coerced to 500.", + "description": "Optional. The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coerced to the maximum)", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "A page token, received from a previous `ListUserLinks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListUserLinks` must match the call that provided the page token.", + "description": "Optional. A page token, received from a previous `ListRollupPropertySourceLinks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListRollupPropertySourceLinks` must match the call that provided the page token.", "location": "query", "type": "string" }, "parent": { - "description": "Required. Example format: accounts/1234", + "description": "Required. The name of the roll-up property to list roll-up property source links under. Format: properties/{property_id} Example: properties/1234", "location": "path", "pattern": "^properties/[^/]+$", "required": true, "type": "string" } }, - "path": "v1alpha/{+parent}/userLinks", + "path": "v1alpha/{+parent}/rollupPropertySourceLinks", "response": { - "$ref": "GoogleAnalyticsAdminV1alphaListUserLinksResponse" + "$ref": "GoogleAnalyticsAdminV1alphaListRollupPropertySourceLinksResponse" }, "scopes": [ - "https://www.googleapis.com/auth/analytics.manage.users", - "https://www.googleapis.com/auth/analytics.manage.users.readonly" + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + } + } + }, + "searchAds360Links": { + "methods": { + "create": { + "description": "Creates a SearchAds360Link.", + "flatPath": "v1alpha/properties/{propertiesId}/searchAds360Links", + "httpMethod": "POST", + "id": "analyticsadmin.properties.searchAds360Links.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Example format: properties/1234", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/searchAds360Links", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaSearchAds360Link" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaSearchAds360Link" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" ] }, - "patch": { - "description": "Updates a user link on an account or property.", - "flatPath": "v1alpha/properties/{propertiesId}/userLinks/{userLinksId}", - "httpMethod": "PATCH", - "id": "analyticsadmin.properties.userLinks.patch", + "delete": { + "description": "Deletes a SearchAds360Link on a property.", + "flatPath": "v1alpha/properties/{propertiesId}/searchAds360Links/{searchAds360LinksId}", + "httpMethod": "DELETE", + "id": "analyticsadmin.properties.searchAds360Links.delete", "parameterOrder": [ "name" ], "parameters": { "name": { - "description": "Output only. Example format: properties/1234/userLinks/5678", + "description": "Required. The name of the SearchAds360Link to delete. Example format: properties/1234/SearchAds360Links/5678", "location": "path", - "pattern": "^properties/[^/]+/userLinks/[^/]+$", + "pattern": "^properties/[^/]+/searchAds360Links/[^/]+$", "required": true, "type": "string" } }, "path": "v1alpha/{+name}", - "request": { - "$ref": "GoogleAnalyticsAdminV1alphaUserLink" - }, "response": { - "$ref": "GoogleAnalyticsAdminV1alphaUserLink" + "$ref": "GoogleProtobufEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/analytics.manage.users" + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "get": { + "description": "Look up a single SearchAds360Link", + "flatPath": "v1alpha/properties/{propertiesId}/searchAds360Links/{searchAds360LinksId}", + "httpMethod": "GET", + "id": "analyticsadmin.properties.searchAds360Links.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the SearchAds360Link to get. Example format: properties/1234/SearchAds360Link/5678", + "location": "path", + "pattern": "^properties/[^/]+/searchAds360Links/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaSearchAds360Link" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "list": { + "description": "Lists all SearchAds360Links on a property.", + "flatPath": "v1alpha/properties/{propertiesId}/searchAds360Links", + "httpMethod": "GET", + "id": "analyticsadmin.properties.searchAds360Links.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the maximum).", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListSearchAds360Links` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListSearchAds360Links` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Example format: properties/1234", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/searchAds360Links", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaListSearchAds360LinksResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "patch": { + "description": "Updates a SearchAds360Link on a property.", + "flatPath": "v1alpha/properties/{propertiesId}/searchAds360Links/{searchAds360LinksId}", + "httpMethod": "PATCH", + "id": "analyticsadmin.properties.searchAds360Links.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The resource name for this SearchAds360Link resource. Format: properties/{propertyId}/searchAds360Links/{linkId} Note: linkId is not the Search Ads 360 advertiser ID", + "location": "path", + "pattern": "^properties/[^/]+/searchAds360Links/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to be updated. Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaSearchAds360Link" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaSearchAds360Link" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + } + } + }, + "subpropertyEventFilters": { + "methods": { + "create": { + "description": "Creates a subproperty Event Filter.", + "flatPath": "v1alpha/properties/{propertiesId}/subpropertyEventFilters", + "httpMethod": "POST", + "id": "analyticsadmin.properties.subpropertyEventFilters.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The ordinary property for which to create a subproperty event filter. Format: properties/property_id Example: properties/123", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/subpropertyEventFilters", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilter" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilter" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "delete": { + "description": "Deletes a subproperty event filter.", + "flatPath": "v1alpha/properties/{propertiesId}/subpropertyEventFilters/{subpropertyEventFiltersId}", + "httpMethod": "DELETE", + "id": "analyticsadmin.properties.subpropertyEventFilters.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the subproperty event filter to delete. Format: properties/property_id/subpropertyEventFilters/subproperty_event_filter Example: properties/123/subpropertyEventFilters/456", + "location": "path", + "pattern": "^properties/[^/]+/subpropertyEventFilters/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "get": { + "description": "Lookup for a single subproperty Event Filter.", + "flatPath": "v1alpha/properties/{propertiesId}/subpropertyEventFilters/{subpropertyEventFiltersId}", + "httpMethod": "GET", + "id": "analyticsadmin.properties.subpropertyEventFilters.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the subproperty event filter to lookup. Format: properties/property_id/subpropertyEventFilters/subproperty_event_filter Example: properties/123/subpropertyEventFilters/456", + "location": "path", + "pattern": "^properties/[^/]+/subpropertyEventFilters/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilter" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "list": { + "description": "List all subproperty Event Filters on a property.", + "flatPath": "v1alpha/properties/{propertiesId}/subpropertyEventFilters", + "httpMethod": "GET", + "id": "analyticsadmin.properties.subpropertyEventFilters.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coerced to the maximum)", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListSubpropertyEventFilters` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListSubpropertyEventFilters` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Resource name of the ordinary property. Format: properties/property_id Example: properties/123", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/subpropertyEventFilters", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaListSubpropertyEventFiltersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "patch": { + "description": "Updates a subproperty Event Filter.", + "flatPath": "v1alpha/properties/{propertiesId}/subpropertyEventFilters/{subpropertyEventFiltersId}", + "httpMethod": "PATCH", + "id": "analyticsadmin.properties.subpropertyEventFilters.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. Format: properties/{ordinary_property_id}/subpropertyEventFilters/{sub_property_event_filter} Example: properties/1234/subpropertyEventFilters/5678", + "location": "path", + "pattern": "^properties/[^/]+/subpropertyEventFilters/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to update. Field names must be in snake case (for example, \"field_to_update\"). Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilter" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilter" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" ] } } @@ -2556,9 +4457,400 @@ } } }, - "revision": "20220307", + "revision": "20240303", "rootUrl": "https://analyticsadmin.googleapis.com/", "schemas": { + "GoogleAnalyticsAdminV1alphaAccessBetweenFilter": { + "description": "To express that the result needs to be between two numbers (inclusive).", + "id": "GoogleAnalyticsAdminV1alphaAccessBetweenFilter", + "properties": { + "fromValue": { + "$ref": "GoogleAnalyticsAdminV1alphaNumericValue", + "description": "Begins with this number." + }, + "toValue": { + "$ref": "GoogleAnalyticsAdminV1alphaNumericValue", + "description": "Ends with this number." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessBinding": { + "description": "A binding of a user to a set of roles.", + "id": "GoogleAnalyticsAdminV1alphaAccessBinding", + "properties": { + "name": { + "description": "Output only. Resource name of this binding. Format: accounts/{account}/accessBindings/{access_binding} or properties/{property}/accessBindings/{access_binding} Example: \"accounts/100/accessBindings/200\"", + "readOnly": true, + "type": "string" + }, + "roles": { + "description": "A list of roles for to grant to the parent resource. Valid values: predefinedRoles/viewer predefinedRoles/analyst predefinedRoles/editor predefinedRoles/admin predefinedRoles/no-cost-data predefinedRoles/no-revenue-data For users, if an empty list of roles is set, this AccessBinding will be deleted.", + "items": { + "type": "string" + }, + "type": "array" + }, + "user": { + "description": "If set, the email address of the user to set roles for. Format: \"someuser@gmail.com\"", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessDateRange": { + "description": "A contiguous range of days: startDate, startDate + 1, ..., endDate.", + "id": "GoogleAnalyticsAdminV1alphaAccessDateRange", + "properties": { + "endDate": { + "description": "The inclusive end date for the query in the format `YYYY-MM-DD`. Cannot be before `startDate`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the current time in the request's time zone.", + "type": "string" + }, + "startDate": { + "description": "The inclusive start date for the query in the format `YYYY-MM-DD`. Cannot be after `endDate`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the current time in the request's time zone.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessDimension": { + "description": "Dimensions are attributes of your data. For example, the dimension `userEmail` indicates the email of the user that accessed reporting data. Dimension values in report responses are strings.", + "id": "GoogleAnalyticsAdminV1alphaAccessDimension", + "properties": { + "dimensionName": { + "description": "The API name of the dimension. See [Data Access Schema](https://developers.google.com/analytics/devguides/config/admin/v1/access-api-schema) for the list of dimensions supported in this API. Dimensions are referenced by name in `dimensionFilter` and `orderBys`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessDimensionHeader": { + "description": "Describes a dimension column in the report. Dimensions requested in a report produce column entries within rows and DimensionHeaders. However, dimensions used exclusively within filters or expressions do not produce columns in a report; correspondingly, those dimensions do not produce headers.", + "id": "GoogleAnalyticsAdminV1alphaAccessDimensionHeader", + "properties": { + "dimensionName": { + "description": "The dimension's name; for example 'userEmail'.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessDimensionValue": { + "description": "The value of a dimension.", + "id": "GoogleAnalyticsAdminV1alphaAccessDimensionValue", + "properties": { + "value": { + "description": "The dimension value. For example, this value may be 'France' for the 'country' dimension.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessFilter": { + "description": "An expression to filter dimension or metric values.", + "id": "GoogleAnalyticsAdminV1alphaAccessFilter", + "properties": { + "betweenFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessBetweenFilter", + "description": "A filter for two values." + }, + "fieldName": { + "description": "The dimension name or metric name.", + "type": "string" + }, + "inListFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessInListFilter", + "description": "A filter for in list values." + }, + "numericFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessNumericFilter", + "description": "A filter for numeric or date values." + }, + "stringFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessStringFilter", + "description": "Strings related filter." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessFilterExpression": { + "description": "Expresses dimension or metric filters. The fields in the same expression need to be either all dimensions or all metrics.", + "id": "GoogleAnalyticsAdminV1alphaAccessFilterExpression", + "properties": { + "accessFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessFilter", + "description": "A primitive filter. In the same FilterExpression, all of the filter's field names need to be either all dimensions or all metrics." + }, + "andGroup": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessFilterExpressionList", + "description": "Each of the FilterExpressions in the and_group has an AND relationship." + }, + "notExpression": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessFilterExpression", + "description": "The FilterExpression is NOT of not_expression." + }, + "orGroup": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessFilterExpressionList", + "description": "Each of the FilterExpressions in the or_group has an OR relationship." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessFilterExpressionList": { + "description": "A list of filter expressions.", + "id": "GoogleAnalyticsAdminV1alphaAccessFilterExpressionList", + "properties": { + "expressions": { + "description": "A list of filter expressions.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessFilterExpression" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessInListFilter": { + "description": "The result needs to be in a list of string values.", + "id": "GoogleAnalyticsAdminV1alphaAccessInListFilter", + "properties": { + "caseSensitive": { + "description": "If true, the string value is case sensitive.", + "type": "boolean" + }, + "values": { + "description": "The list of string values. Must be non-empty.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessMetric": { + "description": "The quantitative measurements of a report. For example, the metric `accessCount` is the total number of data access records.", + "id": "GoogleAnalyticsAdminV1alphaAccessMetric", + "properties": { + "metricName": { + "description": "The API name of the metric. See [Data Access Schema](https://developers.google.com/analytics/devguides/config/admin/v1/access-api-schema) for the list of metrics supported in this API. Metrics are referenced by name in `metricFilter` & `orderBys`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessMetricHeader": { + "description": "Describes a metric column in the report. Visible metrics requested in a report produce column entries within rows and MetricHeaders. However, metrics used exclusively within filters or expressions do not produce columns in a report; correspondingly, those metrics do not produce headers.", + "id": "GoogleAnalyticsAdminV1alphaAccessMetricHeader", + "properties": { + "metricName": { + "description": "The metric's name; for example 'accessCount'.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessMetricValue": { + "description": "The value of a metric.", + "id": "GoogleAnalyticsAdminV1alphaAccessMetricValue", + "properties": { + "value": { + "description": "The measurement value. For example, this value may be '13'.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessNumericFilter": { + "description": "Filters for numeric or date values.", + "id": "GoogleAnalyticsAdminV1alphaAccessNumericFilter", + "properties": { + "operation": { + "description": "The operation type for this filter.", + "enum": [ + "OPERATION_UNSPECIFIED", + "EQUAL", + "LESS_THAN", + "LESS_THAN_OR_EQUAL", + "GREATER_THAN", + "GREATER_THAN_OR_EQUAL" + ], + "enumDescriptions": [ + "Unspecified.", + "Equal", + "Less than", + "Less than or equal", + "Greater than", + "Greater than or equal" + ], + "type": "string" + }, + "value": { + "$ref": "GoogleAnalyticsAdminV1alphaNumericValue", + "description": "A numeric value or a date value." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessOrderBy": { + "description": "Order bys define how rows will be sorted in the response. For example, ordering rows by descending access count is one ordering, and ordering rows by the country string is a different ordering.", + "id": "GoogleAnalyticsAdminV1alphaAccessOrderBy", + "properties": { + "desc": { + "description": "If true, sorts by descending order. If false or unspecified, sorts in ascending order.", + "type": "boolean" + }, + "dimension": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessOrderByDimensionOrderBy", + "description": "Sorts results by a dimension's values." + }, + "metric": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessOrderByMetricOrderBy", + "description": "Sorts results by a metric's values." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessOrderByDimensionOrderBy": { + "description": "Sorts by dimension values.", + "id": "GoogleAnalyticsAdminV1alphaAccessOrderByDimensionOrderBy", + "properties": { + "dimensionName": { + "description": "A dimension name in the request to order by.", + "type": "string" + }, + "orderType": { + "description": "Controls the rule for dimension value ordering.", + "enum": [ + "ORDER_TYPE_UNSPECIFIED", + "ALPHANUMERIC", + "CASE_INSENSITIVE_ALPHANUMERIC", + "NUMERIC" + ], + "enumDescriptions": [ + "Unspecified.", + "Alphanumeric sort by Unicode code point. For example, \"2\" < \"A\" < \"X\" < \"b\" < \"z\".", + "Case insensitive alphanumeric sort by lower case Unicode code point. For example, \"2\" < \"A\" < \"b\" < \"X\" < \"z\".", + "Dimension values are converted to numbers before sorting. For example in NUMERIC sort, \"25\" < \"100\", and in `ALPHANUMERIC` sort, \"100\" < \"25\". Non-numeric dimension values all have equal ordering value below all numeric values." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessOrderByMetricOrderBy": { + "description": "Sorts by metric values.", + "id": "GoogleAnalyticsAdminV1alphaAccessOrderByMetricOrderBy", + "properties": { + "metricName": { + "description": "A metric name in the request to order by.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessQuota": { + "description": "Current state of all quotas for this Analytics property. If any quota for a property is exhausted, all requests to that property will return Resource Exhausted errors.", + "id": "GoogleAnalyticsAdminV1alphaAccessQuota", + "properties": { + "concurrentRequests": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessQuotaStatus", + "description": "Properties can use up to 50 concurrent requests." + }, + "serverErrorsPerProjectPerHour": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessQuotaStatus", + "description": "Properties and cloud project pairs can have up to 50 server errors per hour." + }, + "tokensPerDay": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessQuotaStatus", + "description": "Properties can use 250,000 tokens per day. Most requests consume fewer than 10 tokens." + }, + "tokensPerHour": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessQuotaStatus", + "description": "Properties can use 50,000 tokens per hour. An API request consumes a single number of tokens, and that number is deducted from all of the hourly, daily, and per project hourly quotas." + }, + "tokensPerProjectPerHour": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessQuotaStatus", + "description": "Properties can use up to 25% of their tokens per project per hour. This amounts to Analytics 360 Properties can use 12,500 tokens per project per hour. An API request consumes a single number of tokens, and that number is deducted from all of the hourly, daily, and per project hourly quotas." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessQuotaStatus": { + "description": "Current state for a particular quota group.", + "id": "GoogleAnalyticsAdminV1alphaAccessQuotaStatus", + "properties": { + "consumed": { + "description": "Quota consumed by this request.", + "format": "int32", + "type": "integer" + }, + "remaining": { + "description": "Quota remaining after this request.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessRow": { + "description": "Access report data for each row.", + "id": "GoogleAnalyticsAdminV1alphaAccessRow", + "properties": { + "dimensionValues": { + "description": "List of dimension values. These values are in the same order as specified in the request.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessDimensionValue" + }, + "type": "array" + }, + "metricValues": { + "description": "List of metric values. These values are in the same order as specified in the request.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessMetricValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAccessStringFilter": { + "description": "The filter for strings.", + "id": "GoogleAnalyticsAdminV1alphaAccessStringFilter", + "properties": { + "caseSensitive": { + "description": "If true, the string value is case sensitive.", + "type": "boolean" + }, + "matchType": { + "description": "The match type for this filter.", + "enum": [ + "MATCH_TYPE_UNSPECIFIED", + "EXACT", + "BEGINS_WITH", + "ENDS_WITH", + "CONTAINS", + "FULL_REGEXP", + "PARTIAL_REGEXP" + ], + "enumDescriptions": [ + "Unspecified", + "Exact match of the string value.", + "Begins with the string value.", + "Ends with the string value.", + "Contains the string value.", + "Full match for the regular expression with the string value.", + "Partial match for the regular expression with the string value." + ], + "type": "string" + }, + "value": { + "description": "The string value used for the matching.", + "type": "string" + } + }, + "type": "object" + }, "GoogleAnalyticsAdminV1alphaAccount": { "description": "A resource message representing a Google Analytics account.", "id": "GoogleAnalyticsAdminV1alphaAccount", @@ -2639,6 +4931,22 @@ "properties": {}, "type": "object" }, + "GoogleAnalyticsAdminV1alphaAdSenseLink": { + "description": "A link between a GA4 Property and an AdSense for Content ad client.", + "id": "GoogleAnalyticsAdminV1alphaAdSenseLink", + "properties": { + "adClientCode": { + "description": "Immutable. The AdSense ad client code that the GA4 property is linked to. Example format: \"ca-pub-1234567890\"", + "type": "string" + }, + "name": { + "description": "Output only. The resource name for this AdSense Link resource. Format: properties/{propertyId}/adSenseLinks/{linkId} Example: properties/1234/adSenseLinks/6789", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleAnalyticsAdminV1alphaApproveDisplayVideo360AdvertiserLinkProposalRequest": { "description": "Request message for ApproveDisplayVideo360AdvertiserLinkProposal RPC.", "id": "GoogleAnalyticsAdminV1alphaApproveDisplayVideo360AdvertiserLinkProposalRequest", @@ -2656,6 +4964,12 @@ }, "type": "object" }, + "GoogleAnalyticsAdminV1alphaArchiveAudienceRequest": { + "description": "Request message for ArchiveAudience RPC.", + "id": "GoogleAnalyticsAdminV1alphaArchiveAudienceRequest", + "properties": {}, + "type": "object" + }, "GoogleAnalyticsAdminV1alphaArchiveCustomDimensionRequest": { "description": "Request message for ArchiveCustomDimension RPC.", "id": "GoogleAnalyticsAdminV1alphaArchiveCustomDimensionRequest", @@ -2668,157 +4982,709 @@ "properties": {}, "type": "object" }, - "GoogleAnalyticsAdminV1alphaAuditUserLink": { - "description": "Read-only resource used to summarize a principal's effective roles.", - "id": "GoogleAnalyticsAdminV1alphaAuditUserLink", + "GoogleAnalyticsAdminV1alphaAttributionSettings": { + "description": "The attribution settings used for a given property. This is a singleton resource.", + "id": "GoogleAnalyticsAdminV1alphaAttributionSettings", "properties": { - "directRoles": { - "description": "Roles directly assigned to this user for this entity. Format: predefinedRoles/viewer Excludes roles that are inherited from an account (if this is for a property), group, or organization admin role.", - "items": { - "type": "string" - }, - "type": "array" + "acquisitionConversionEventLookbackWindow": { + "description": "Required. The lookback window configuration for acquisition conversion events. The default window size is 30 days.", + "enum": [ + "ACQUISITION_CONVERSION_EVENT_LOOKBACK_WINDOW_UNSPECIFIED", + "ACQUISITION_CONVERSION_EVENT_LOOKBACK_WINDOW_7_DAYS", + "ACQUISITION_CONVERSION_EVENT_LOOKBACK_WINDOW_30_DAYS" + ], + "enumDescriptions": [ + "Lookback window size unspecified.", + "7-day lookback window.", + "30-day lookback window." + ], + "type": "string" }, - "effectiveRoles": { - "description": "Union of all permissions a user has at this account or property (includes direct permissions, group-inherited permissions, etc.). Format: predefinedRoles/viewer", - "items": { - "type": "string" - }, - "type": "array" - }, - "emailAddress": { - "description": "Email address of the linked user", + "adsWebConversionDataExportScope": { + "description": "Required. The Conversion Export Scope for data exported to linked Ads Accounts.", + "enum": [ + "ADS_WEB_CONVERSION_DATA_EXPORT_SCOPE_UNSPECIFIED", + "NOT_SELECTED_YET", + "PAID_AND_ORGANIC_CHANNELS", + "GOOGLE_PAID_CHANNELS" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "No data export scope selected yet. Export scope can never be changed back to this value.", + "Paid and organic channels are eligible to receive conversion credit, but only credit assigned to Google Ads channels will appear in your Ads accounts. To learn more, see [Paid and Organic channels](https://support.google.com/analytics/answer/10632359).", + "Only Google Ads paid channels are eligible to receive conversion credit. To learn more, see [Google Paid channels](https://support.google.com/analytics/answer/10632359)." + ], "type": "string" }, "name": { - "description": "Example format: properties/1234/userLinks/5678", + "description": "Output only. Resource name of this attribution settings resource. Format: properties/{property_id}/attributionSettings Example: \"properties/1000/attributionSettings\"", + "readOnly": true, + "type": "string" + }, + "otherConversionEventLookbackWindow": { + "description": "Required. The lookback window for all other, non-acquisition conversion events. The default window size is 90 days.", + "enum": [ + "OTHER_CONVERSION_EVENT_LOOKBACK_WINDOW_UNSPECIFIED", + "OTHER_CONVERSION_EVENT_LOOKBACK_WINDOW_30_DAYS", + "OTHER_CONVERSION_EVENT_LOOKBACK_WINDOW_60_DAYS", + "OTHER_CONVERSION_EVENT_LOOKBACK_WINDOW_90_DAYS" + ], + "enumDescriptions": [ + "Lookback window size unspecified.", + "30-day lookback window.", + "60-day lookback window.", + "90-day lookback window." + ], + "type": "string" + }, + "reportingAttributionModel": { + "description": "Required. The reporting attribution model used to calculate conversion credit in this property's reports. Changing the attribution model will apply to both historical and future data. These changes will be reflected in reports with conversion and revenue data. User and session data will be unaffected.", + "enum": [ + "REPORTING_ATTRIBUTION_MODEL_UNSPECIFIED", + "PAID_AND_ORGANIC_CHANNELS_DATA_DRIVEN", + "PAID_AND_ORGANIC_CHANNELS_LAST_CLICK", + "GOOGLE_PAID_CHANNELS_LAST_CLICK" + ], + "enumDescriptions": [ + "Reporting attribution model unspecified.", + "Data-driven attribution distributes credit for the conversion based on data for each conversion event. Each Data-driven model is specific to each advertiser and each conversion event. Previously CROSS_CHANNEL_DATA_DRIVEN", + "Ignores direct traffic and attributes 100% of the conversion value to the last channel that the customer clicked through (or engaged view through for YouTube) before converting. Previously CROSS_CHANNEL_LAST_CLICK", + "Attributes 100% of the conversion value to the last Google Paid channel that the customer clicked through before converting. Previously ADS_PREFERRED_LAST_CLICK" + ], "type": "string" } }, "type": "object" }, - "GoogleAnalyticsAdminV1alphaAuditUserLinksRequest": { - "description": "Request message for AuditUserLinks RPC.", - "id": "GoogleAnalyticsAdminV1alphaAuditUserLinksRequest", + "GoogleAnalyticsAdminV1alphaAudience": { + "description": "A resource message representing a GA4 Audience.", + "id": "GoogleAnalyticsAdminV1alphaAudience", "properties": { - "pageSize": { - "description": "The maximum number of user links to return. The service may return fewer than this value. If unspecified, at most 1000 user links will be returned. The maximum value is 5000; values above 5000 will be coerced to 5000.", + "adsPersonalizationEnabled": { + "description": "Output only. It is automatically set by GA to false if this is an NPA Audience and is excluded from ads personalization.", + "readOnly": true, + "type": "boolean" + }, + "description": { + "description": "Required. The description of the Audience.", + "type": "string" + }, + "displayName": { + "description": "Required. The display name of the Audience.", + "type": "string" + }, + "eventTrigger": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceEventTrigger", + "description": "Optional. Specifies an event to log when a user joins the Audience. If not set, no event is logged when a user joins the Audience." + }, + "exclusionDurationMode": { + "description": "Immutable. Specifies how long an exclusion lasts for users that meet the exclusion filter. It is applied to all EXCLUDE filter clauses and is ignored when there is no EXCLUDE filter clause in the Audience.", + "enum": [ + "AUDIENCE_EXCLUSION_DURATION_MODE_UNSPECIFIED", + "EXCLUDE_TEMPORARILY", + "EXCLUDE_PERMANENTLY" + ], + "enumDescriptions": [ + "Not specified.", + "Exclude users from the Audience during periods when they meet the filter clause.", + "Exclude users from the Audience if they've ever met the filter clause." + ], + "type": "string" + }, + "filterClauses": { + "description": "Required. Immutable. Unordered list. Filter clauses that define the Audience. All clauses will be AND\u2019ed together.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceFilterClause" + }, + "type": "array" + }, + "membershipDurationDays": { + "description": "Required. Immutable. The duration a user should stay in an Audience. It cannot be set to more than 540 days.", "format": "int32", "type": "integer" }, - "pageToken": { - "description": "A page token, received from a previous `AuditUserLinks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `AuditUserLinks` must match the call that provided the page token.", + "name": { + "description": "Output only. The resource name for this Audience resource. Format: properties/{propertyId}/audiences/{audienceId}", + "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleAnalyticsAdminV1alphaAuditUserLinksResponse": { - "description": "Response message for AuditUserLinks RPC.", - "id": "GoogleAnalyticsAdminV1alphaAuditUserLinksResponse", + "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilter": { + "description": "A specific filter for a single dimension or metric.", + "id": "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilter", "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" - }, - "userLinks": { - "description": "List of AuditUserLinks. These will be ordered stably, but in an arbitrary order.", - "items": { - "$ref": "GoogleAnalyticsAdminV1alphaAuditUserLink" - }, - "type": "array" - } - }, - "type": "object" - }, - "GoogleAnalyticsAdminV1alphaBatchCreateUserLinksRequest": { - "description": "Request message for BatchCreateUserLinks RPC.", - "id": "GoogleAnalyticsAdminV1alphaBatchCreateUserLinksRequest", - "properties": { - "notifyNewUsers": { - "description": "Optional. If set, then email the new users notifying them that they've been granted permissions to the resource. Regardless of whether this is set or not, notify_new_user field inside each individual request is ignored.", + "atAnyPointInTime": { + "description": "Optional. Indicates whether this filter needs dynamic evaluation or not. If set to true, users join the Audience if they ever met the condition (static evaluation). If unset or set to false, user evaluation for an Audience is dynamic; users are added to an Audience when they meet the conditions and then removed when they no longer meet them. This can only be set when Audience scope is ACROSS_ALL_SESSIONS.", "type": "boolean" }, - "requests": { - "description": "Required. The requests specifying the user links to create. A maximum of 1000 user links can be created in a batch.", - "items": { - "$ref": "GoogleAnalyticsAdminV1alphaCreateUserLinkRequest" - }, - "type": "array" + "betweenFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilterBetweenFilter", + "description": "A filter for numeric or date values between certain values on a dimension or metric." + }, + "fieldName": { + "description": "Required. Immutable. The dimension name or metric name to filter. If the field name refers to a custom dimension or metric, a scope prefix will be added to the front of the custom dimensions or metric name. For more on scope prefixes or custom dimensions/metrics, reference the [Google Analytics Data API documentation] (https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#custom_dimensions).", + "type": "string" + }, + "inAnyNDayPeriod": { + "description": "Optional. If set, specifies the time window for which to evaluate data in number of days. If not set, then audience data is evaluated against lifetime data (For example, infinite time window). For example, if set to 1 day, only the current day's data is evaluated. The reference point is the current day when at_any_point_in_time is unset or false. It can only be set when Audience scope is ACROSS_ALL_SESSIONS and cannot be greater than 60 days.", + "format": "int32", + "type": "integer" + }, + "inListFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilterInListFilter", + "description": "A filter for a string dimension that matches a particular list of options." + }, + "numericFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilterNumericFilter", + "description": "A filter for numeric or date values on a dimension or metric." + }, + "stringFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilterStringFilter", + "description": "A filter for a string-type dimension that matches a particular pattern." } }, "type": "object" }, - "GoogleAnalyticsAdminV1alphaBatchCreateUserLinksResponse": { - "description": "Response message for BatchCreateUserLinks RPC.", - "id": "GoogleAnalyticsAdminV1alphaBatchCreateUserLinksResponse", + "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilterBetweenFilter": { + "description": "A filter for numeric or date values between certain values on a dimension or metric.", + "id": "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilterBetweenFilter", "properties": { - "userLinks": { - "description": "The user links created.", + "fromValue": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilterNumericValue", + "description": "Required. Begins with this number, inclusive." + }, + "toValue": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilterNumericValue", + "description": "Required. Ends with this number, inclusive." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilterInListFilter": { + "description": "A filter for a string dimension that matches a particular list of options.", + "id": "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilterInListFilter", + "properties": { + "caseSensitive": { + "description": "Optional. If true, the match is case-sensitive. If false, the match is case-insensitive.", + "type": "boolean" + }, + "values": { + "description": "Required. The list of possible string values to match against. Must be non-empty.", "items": { - "$ref": "GoogleAnalyticsAdminV1alphaUserLink" + "type": "string" }, "type": "array" } }, "type": "object" }, - "GoogleAnalyticsAdminV1alphaBatchDeleteUserLinksRequest": { - "description": "Request message for BatchDeleteUserLinks RPC.", - "id": "GoogleAnalyticsAdminV1alphaBatchDeleteUserLinksRequest", + "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilterNumericFilter": { + "description": "A filter for numeric or date values on a dimension or metric.", + "id": "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilterNumericFilter", + "properties": { + "operation": { + "description": "Required. The operation applied to a numeric filter.", + "enum": [ + "OPERATION_UNSPECIFIED", + "EQUAL", + "LESS_THAN", + "GREATER_THAN" + ], + "enumDescriptions": [ + "Unspecified.", + "Equal.", + "Less than.", + "Greater than." + ], + "type": "string" + }, + "value": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilterNumericValue", + "description": "Required. The numeric or date value to match against." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilterNumericValue": { + "description": "To represent a number.", + "id": "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilterNumericValue", + "properties": { + "doubleValue": { + "description": "Double value.", + "format": "double", + "type": "number" + }, + "int64Value": { + "description": "Integer value.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilterStringFilter": { + "description": "A filter for a string-type dimension that matches a particular pattern.", + "id": "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilterStringFilter", + "properties": { + "caseSensitive": { + "description": "Optional. If true, the match is case-sensitive. If false, the match is case-insensitive.", + "type": "boolean" + }, + "matchType": { + "description": "Required. The match type for the string filter.", + "enum": [ + "MATCH_TYPE_UNSPECIFIED", + "EXACT", + "BEGINS_WITH", + "ENDS_WITH", + "CONTAINS", + "FULL_REGEXP" + ], + "enumDescriptions": [ + "Unspecified", + "Exact match of the string value.", + "Begins with the string value.", + "Ends with the string value.", + "Contains the string value.", + "Full regular expression matches with the string value." + ], + "type": "string" + }, + "value": { + "description": "Required. The string value to be matched against.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAudienceEventFilter": { + "description": "A filter that matches events of a single event name. If an event parameter is specified, only the subset of events that match both the single event name and the parameter filter expressions match this event filter.", + "id": "GoogleAnalyticsAdminV1alphaAudienceEventFilter", + "properties": { + "eventName": { + "description": "Required. Immutable. The name of the event to match against.", + "type": "string" + }, + "eventParameterFilterExpression": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceFilterExpression", + "description": "Optional. If specified, this filter matches events that match both the single event name and the parameter filter expressions. AudienceEventFilter inside the parameter filter expression cannot be set (For example, nested event filters are not supported). This should be a single and_group of dimension_or_metric_filter or not_expression; ANDs of ORs are not supported. Also, if it includes a filter for \"eventCount\", only that one will be considered; all the other filters will be ignored." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAudienceEventTrigger": { + "description": "Specifies an event to log when a user joins the Audience.", + "id": "GoogleAnalyticsAdminV1alphaAudienceEventTrigger", + "properties": { + "eventName": { + "description": "Required. The event name that will be logged.", + "type": "string" + }, + "logCondition": { + "description": "Required. When to log the event.", + "enum": [ + "LOG_CONDITION_UNSPECIFIED", + "AUDIENCE_JOINED", + "AUDIENCE_MEMBERSHIP_RENEWED" + ], + "enumDescriptions": [ + "Log condition is not specified.", + "The event should be logged only when a user is joined.", + "The event should be logged whenever the Audience condition is met, even if the user is already a member of the Audience." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAudienceFilterClause": { + "description": "A clause for defining either a simple or sequence filter. A filter can be inclusive (For example, users satisfying the filter clause are included in the Audience) or exclusive (For example, users satisfying the filter clause are excluded from the Audience).", + "id": "GoogleAnalyticsAdminV1alphaAudienceFilterClause", + "properties": { + "clauseType": { + "description": "Required. Specifies whether this is an include or exclude filter clause.", + "enum": [ + "AUDIENCE_CLAUSE_TYPE_UNSPECIFIED", + "INCLUDE", + "EXCLUDE" + ], + "enumDescriptions": [ + "Unspecified clause type.", + "Users will be included in the Audience if the filter clause is met.", + "Users will be excluded from the Audience if the filter clause is met." + ], + "type": "string" + }, + "sequenceFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceSequenceFilter", + "description": "Filters that must occur in a specific order for the user to be a member of the Audience." + }, + "simpleFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceSimpleFilter", + "description": "A simple filter that a user must satisfy to be a member of the Audience." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAudienceFilterExpression": { + "description": "A logical expression of Audience dimension, metric, or event filters.", + "id": "GoogleAnalyticsAdminV1alphaAudienceFilterExpression", + "properties": { + "andGroup": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceFilterExpressionList", + "description": "A list of expressions to be AND\u2019ed together. It can only contain AudienceFilterExpressions with or_group. This must be set for the top level AudienceFilterExpression." + }, + "dimensionOrMetricFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceDimensionOrMetricFilter", + "description": "A filter on a single dimension or metric. This cannot be set on the top level AudienceFilterExpression." + }, + "eventFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceEventFilter", + "description": "Creates a filter that matches a specific event. This cannot be set on the top level AudienceFilterExpression." + }, + "notExpression": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceFilterExpression", + "description": "A filter expression to be NOT'ed (For example, inverted, complemented). It can only include a dimension_or_metric_filter. This cannot be set on the top level AudienceFilterExpression." + }, + "orGroup": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceFilterExpressionList", + "description": "A list of expressions to OR\u2019ed together. It cannot contain AudienceFilterExpressions with and_group or or_group." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAudienceFilterExpressionList": { + "description": "A list of Audience filter expressions.", + "id": "GoogleAnalyticsAdminV1alphaAudienceFilterExpressionList", + "properties": { + "filterExpressions": { + "description": "A list of Audience filter expressions.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceFilterExpression" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAudienceSequenceFilter": { + "description": "Defines filters that must occur in a specific order for the user to be a member of the Audience.", + "id": "GoogleAnalyticsAdminV1alphaAudienceSequenceFilter", + "properties": { + "scope": { + "description": "Required. Immutable. Specifies the scope for this filter.", + "enum": [ + "AUDIENCE_FILTER_SCOPE_UNSPECIFIED", + "AUDIENCE_FILTER_SCOPE_WITHIN_SAME_EVENT", + "AUDIENCE_FILTER_SCOPE_WITHIN_SAME_SESSION", + "AUDIENCE_FILTER_SCOPE_ACROSS_ALL_SESSIONS" + ], + "enumDescriptions": [ + "Scope is not specified.", + "User joins the Audience if the filter condition is met within one event.", + "User joins the Audience if the filter condition is met within one session.", + "User joins the Audience if the filter condition is met by any event across any session." + ], + "type": "string" + }, + "sequenceMaximumDuration": { + "description": "Optional. Defines the time period in which the whole sequence must occur.", + "format": "google-duration", + "type": "string" + }, + "sequenceSteps": { + "description": "Required. An ordered sequence of steps. A user must complete each step in order to join the sequence filter.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceSequenceFilterAudienceSequenceStep" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAudienceSequenceFilterAudienceSequenceStep": { + "description": "A condition that must occur in the specified step order for this user to match the sequence.", + "id": "GoogleAnalyticsAdminV1alphaAudienceSequenceFilterAudienceSequenceStep", + "properties": { + "constraintDuration": { + "description": "Optional. When set, this step must be satisfied within the constraint_duration of the previous step (For example, t[i] - t[i-1] <= constraint_duration). If not set, there is no duration requirement (the duration is effectively unlimited). It is ignored for the first step.", + "format": "google-duration", + "type": "string" + }, + "filterExpression": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceFilterExpression", + "description": "Required. Immutable. A logical expression of Audience dimension, metric, or event filters in each step." + }, + "immediatelyFollows": { + "description": "Optional. If true, the event satisfying this step must be the very next event after the event satisfying the last step. If unset or false, this step indirectly follows the prior step; for example, there may be events between the prior step and this step. It is ignored for the first step.", + "type": "boolean" + }, + "scope": { + "description": "Required. Immutable. Specifies the scope for this step.", + "enum": [ + "AUDIENCE_FILTER_SCOPE_UNSPECIFIED", + "AUDIENCE_FILTER_SCOPE_WITHIN_SAME_EVENT", + "AUDIENCE_FILTER_SCOPE_WITHIN_SAME_SESSION", + "AUDIENCE_FILTER_SCOPE_ACROSS_ALL_SESSIONS" + ], + "enumDescriptions": [ + "Scope is not specified.", + "User joins the Audience if the filter condition is met within one event.", + "User joins the Audience if the filter condition is met within one session.", + "User joins the Audience if the filter condition is met by any event across any session." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaAudienceSimpleFilter": { + "description": "Defines a simple filter that a user must satisfy to be a member of the Audience.", + "id": "GoogleAnalyticsAdminV1alphaAudienceSimpleFilter", + "properties": { + "filterExpression": { + "$ref": "GoogleAnalyticsAdminV1alphaAudienceFilterExpression", + "description": "Required. Immutable. A logical expression of Audience dimension, metric, or event filters." + }, + "scope": { + "description": "Required. Immutable. Specifies the scope for this filter.", + "enum": [ + "AUDIENCE_FILTER_SCOPE_UNSPECIFIED", + "AUDIENCE_FILTER_SCOPE_WITHIN_SAME_EVENT", + "AUDIENCE_FILTER_SCOPE_WITHIN_SAME_SESSION", + "AUDIENCE_FILTER_SCOPE_ACROSS_ALL_SESSIONS" + ], + "enumDescriptions": [ + "Scope is not specified.", + "User joins the Audience if the filter condition is met within one event.", + "User joins the Audience if the filter condition is met within one session.", + "User joins the Audience if the filter condition is met by any event across any session." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaBatchCreateAccessBindingsRequest": { + "description": "Request message for BatchCreateAccessBindings RPC.", + "id": "GoogleAnalyticsAdminV1alphaBatchCreateAccessBindingsRequest", "properties": { "requests": { - "description": "Required. The requests specifying the user links to update. A maximum of 1000 user links can be updated in a batch.", + "description": "Required. The requests specifying the access bindings to create. A maximum of 1000 access bindings can be created in a batch.", "items": { - "$ref": "GoogleAnalyticsAdminV1alphaDeleteUserLinkRequest" + "$ref": "GoogleAnalyticsAdminV1alphaCreateAccessBindingRequest" }, "type": "array" } }, "type": "object" }, - "GoogleAnalyticsAdminV1alphaBatchGetUserLinksResponse": { - "description": "Response message for BatchGetUserLinks RPC.", - "id": "GoogleAnalyticsAdminV1alphaBatchGetUserLinksResponse", + "GoogleAnalyticsAdminV1alphaBatchCreateAccessBindingsResponse": { + "description": "Response message for BatchCreateAccessBindings RPC.", + "id": "GoogleAnalyticsAdminV1alphaBatchCreateAccessBindingsResponse", "properties": { - "userLinks": { - "description": "The requested user links.", + "accessBindings": { + "description": "The access bindings created.", "items": { - "$ref": "GoogleAnalyticsAdminV1alphaUserLink" + "$ref": "GoogleAnalyticsAdminV1alphaAccessBinding" }, "type": "array" } }, "type": "object" }, - "GoogleAnalyticsAdminV1alphaBatchUpdateUserLinksRequest": { - "description": "Request message for BatchUpdateUserLinks RPC.", - "id": "GoogleAnalyticsAdminV1alphaBatchUpdateUserLinksRequest", + "GoogleAnalyticsAdminV1alphaBatchDeleteAccessBindingsRequest": { + "description": "Request message for BatchDeleteAccessBindings RPC.", + "id": "GoogleAnalyticsAdminV1alphaBatchDeleteAccessBindingsRequest", "properties": { "requests": { - "description": "Required. The requests specifying the user links to update. A maximum of 1000 user links can be updated in a batch.", + "description": "Required. The requests specifying the access bindings to delete. A maximum of 1000 access bindings can be deleted in a batch.", "items": { - "$ref": "GoogleAnalyticsAdminV1alphaUpdateUserLinkRequest" + "$ref": "GoogleAnalyticsAdminV1alphaDeleteAccessBindingRequest" }, "type": "array" } }, "type": "object" }, - "GoogleAnalyticsAdminV1alphaBatchUpdateUserLinksResponse": { - "description": "Response message for BatchUpdateUserLinks RPC.", - "id": "GoogleAnalyticsAdminV1alphaBatchUpdateUserLinksResponse", + "GoogleAnalyticsAdminV1alphaBatchGetAccessBindingsResponse": { + "description": "Response message for BatchGetAccessBindings RPC.", + "id": "GoogleAnalyticsAdminV1alphaBatchGetAccessBindingsResponse", "properties": { - "userLinks": { - "description": "The user links updated.", + "accessBindings": { + "description": "The requested access bindings.", "items": { - "$ref": "GoogleAnalyticsAdminV1alphaUserLink" + "$ref": "GoogleAnalyticsAdminV1alphaAccessBinding" }, "type": "array" } }, "type": "object" }, + "GoogleAnalyticsAdminV1alphaBatchUpdateAccessBindingsRequest": { + "description": "Request message for BatchUpdateAccessBindings RPC.", + "id": "GoogleAnalyticsAdminV1alphaBatchUpdateAccessBindingsRequest", + "properties": { + "requests": { + "description": "Required. The requests specifying the access bindings to update. A maximum of 1000 access bindings can be updated in a batch.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaUpdateAccessBindingRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaBatchUpdateAccessBindingsResponse": { + "description": "Response message for BatchUpdateAccessBindings RPC.", + "id": "GoogleAnalyticsAdminV1alphaBatchUpdateAccessBindingsResponse", + "properties": { + "accessBindings": { + "description": "The access bindings updated.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessBinding" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaBigQueryLink": { + "description": "A link between a GA4 Property and BigQuery project.", + "id": "GoogleAnalyticsAdminV1alphaBigQueryLink", + "properties": { + "createTime": { + "description": "Output only. Time when the link was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "dailyExportEnabled": { + "description": "If set true, enables daily data export to the linked Google Cloud project.", + "type": "boolean" + }, + "excludedEvents": { + "description": "The list of event names that will be excluded from exports.", + "items": { + "type": "string" + }, + "type": "array" + }, + "exportStreams": { + "description": "The list of streams under the parent property for which data will be exported. Format: properties/{property_id}/dataStreams/{stream_id} Example: ['properties/1000/dataStreams/2000']", + "items": { + "type": "string" + }, + "type": "array" + }, + "freshDailyExportEnabled": { + "description": "If set true, enables fresh daily export to the linked Google Cloud project.", + "type": "boolean" + }, + "includeAdvertisingId": { + "description": "If set true, exported data will include advertising identifiers for mobile app streams.", + "type": "boolean" + }, + "name": { + "description": "Output only. Resource name of this BigQuery link. Format: 'properties/{property_id}/bigQueryLinks/{bigquery_link_id}' Format: 'properties/1234/bigQueryLinks/abc567'", + "readOnly": true, + "type": "string" + }, + "project": { + "description": "Immutable. The linked Google Cloud project. When creating a BigQueryLink, you may provide this resource name using either a project number or project ID. Once this resource has been created, the returned project will always have a project that contains a project number. Format: 'projects/{project number}' Example: 'projects/1234'", + "type": "string" + }, + "streamingExportEnabled": { + "description": "If set true, enables streaming export to the linked Google Cloud project.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaCalculatedMetric": { + "description": "A definition for a calculated metric.", + "id": "GoogleAnalyticsAdminV1alphaCalculatedMetric", + "properties": { + "calculatedMetricId": { + "description": "Output only. The ID to use for the calculated metric. In the UI, this is referred to as the \"API name.\" The calculated_metric_id is used when referencing this calculated metric from external APIs. For example, \"calcMetric:{calculated_metric_id}\".", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Description for this calculated metric. Max length of 4096 characters.", + "type": "string" + }, + "displayName": { + "description": "Required. Display name for this calculated metric as shown in the Google Analytics UI. Max length 82 characters.", + "type": "string" + }, + "formula": { + "description": "Required. The calculated metric's definition. Maximum number of unique referenced custom metrics is 5. Formulas supports the following operations: + (addition), - (subtraction), - (negative), * (multiplication), / (division), () (parenthesis). Any valid real numbers are acceptable that fit in a Long (64bit integer) or a Double (64 bit floating point number). Example formula: \"( customEvent:parameter_name + cartPurchaseQuantity ) / 2.0\"", + "type": "string" + }, + "invalidMetricReference": { + "description": "Output only. If true, this calculated metric has a invalid metric reference. Anything using a calculated metric with invalid_metric_reference set to true may fail, produce warnings, or produce unexpected results.", + "readOnly": true, + "type": "boolean" + }, + "metricUnit": { + "description": "Required. The type for the calculated metric's value.", + "enum": [ + "METRIC_UNIT_UNSPECIFIED", + "STANDARD", + "CURRENCY", + "FEET", + "MILES", + "METERS", + "KILOMETERS", + "MILLISECONDS", + "SECONDS", + "MINUTES", + "HOURS" + ], + "enumDescriptions": [ + "MetricUnit unspecified or missing.", + "This metric uses default units.", + "This metric measures a currency.", + "This metric measures feet.", + "This metric measures miles.", + "This metric measures meters.", + "This metric measures kilometers.", + "This metric measures milliseconds.", + "This metric measures seconds.", + "This metric measures minutes.", + "This metric measures hours." + ], + "type": "string" + }, + "name": { + "description": "Output only. Resource name for this CalculatedMetric. Format: 'properties/{property_id}/calculatedMetrics/{calculated_metric_id}'", + "readOnly": true, + "type": "string" + }, + "restrictedMetricType": { + "description": "Output only. Types of restricted data that this metric contains.", + "items": { + "enum": [ + "RESTRICTED_METRIC_TYPE_UNSPECIFIED", + "COST_DATA", + "REVENUE_DATA" + ], + "enumDescriptions": [ + "Type unknown or unspecified.", + "Metric reports cost data.", + "Metric reports revenue data." + ], + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "GoogleAnalyticsAdminV1alphaCancelDisplayVideo360AdvertiserLinkProposalRequest": { "description": "Request message for CancelDisplayVideo360AdvertiserLinkProposal RPC.", "id": "GoogleAnalyticsAdminV1alphaCancelDisplayVideo360AdvertiserLinkProposalRequest", @@ -2868,6 +5734,30 @@ "$ref": "GoogleAnalyticsAdminV1alphaAccount", "description": "A snapshot of an Account resource in change history." }, + "adsenseLink": { + "$ref": "GoogleAnalyticsAdminV1alphaAdSenseLink", + "description": "A snapshot of an AdSenseLink resource in change history." + }, + "attributionSettings": { + "$ref": "GoogleAnalyticsAdminV1alphaAttributionSettings", + "description": "A snapshot of AttributionSettings resource in change history." + }, + "audience": { + "$ref": "GoogleAnalyticsAdminV1alphaAudience", + "description": "A snapshot of an Audience resource in change history." + }, + "bigqueryLink": { + "$ref": "GoogleAnalyticsAdminV1alphaBigQueryLink", + "description": "A snapshot of a BigQuery link resource in change history." + }, + "calculatedMetric": { + "$ref": "GoogleAnalyticsAdminV1alphaCalculatedMetric", + "description": "A snapshot of a CalculatedMetric resource in change history." + }, + "channelGroup": { + "$ref": "GoogleAnalyticsAdminV1alphaChannelGroup", + "description": "A snapshot of a ChannelGroup resource in change history." + }, "conversionEvent": { "$ref": "GoogleAnalyticsAdminV1alphaConversionEvent", "description": "A snapshot of a ConversionEvent resource in change history." @@ -2880,6 +5770,10 @@ "$ref": "GoogleAnalyticsAdminV1alphaCustomMetric", "description": "A snapshot of a CustomMetric resource in change history." }, + "dataRedactionSettings": { + "$ref": "GoogleAnalyticsAdminV1alphaDataRedactionSettings", + "description": "A snapshot of DataRedactionSettings resource in change history." + }, "dataRetentionSettings": { "$ref": "GoogleAnalyticsAdminV1alphaDataRetentionSettings", "description": "A snapshot of a data retention settings resource in change history." @@ -2896,6 +5790,18 @@ "$ref": "GoogleAnalyticsAdminV1alphaDisplayVideo360AdvertiserLinkProposal", "description": "A snapshot of a DisplayVideo360AdvertiserLinkProposal resource in change history." }, + "enhancedMeasurementSettings": { + "$ref": "GoogleAnalyticsAdminV1alphaEnhancedMeasurementSettings", + "description": "A snapshot of EnhancedMeasurementSettings resource in change history." + }, + "eventCreateRule": { + "$ref": "GoogleAnalyticsAdminV1alphaEventCreateRule", + "description": "A snapshot of an EventCreateRule resource in change history." + }, + "expandedDataSet": { + "$ref": "GoogleAnalyticsAdminV1alphaExpandedDataSet", + "description": "A snapshot of an ExpandedDataSet resource in change history." + }, "firebaseLink": { "$ref": "GoogleAnalyticsAdminV1alphaFirebaseLink", "description": "A snapshot of a FirebaseLink resource in change history." @@ -2915,6 +5821,14 @@ "property": { "$ref": "GoogleAnalyticsAdminV1alphaProperty", "description": "A snapshot of a Property resource in change history." + }, + "searchAds360Link": { + "$ref": "GoogleAnalyticsAdminV1alphaSearchAds360Link", + "description": "A snapshot of a SearchAds360Link resource in change history." + }, + "skadnetworkConversionValueSchema": { + "$ref": "GoogleAnalyticsAdminV1alphaSKAdNetworkConversionValueSchema", + "description": "A snapshot of SKAdNetworkConversionValueSchema resource in change history." } }, "type": "object" @@ -2966,10 +5880,174 @@ }, "type": "object" }, + "GoogleAnalyticsAdminV1alphaChannelGroup": { + "description": "A resource message representing a Channel Group.", + "id": "GoogleAnalyticsAdminV1alphaChannelGroup", + "properties": { + "description": { + "description": "The description of the Channel Group. Max length of 256 characters.", + "type": "string" + }, + "displayName": { + "description": "Required. The display name of the Channel Group. Max length of 80 characters.", + "type": "string" + }, + "groupingRule": { + "description": "Required. The grouping rules of channels. Maximum number of rules is 50.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaGroupingRule" + }, + "type": "array" + }, + "name": { + "description": "Output only. The resource name for this Channel Group resource. Format: properties/{property}/channelGroups/{channel_group}", + "readOnly": true, + "type": "string" + }, + "systemDefined": { + "description": "Output only. If true, then this channel group is the Default Channel Group predefined by Google Analytics. Display name and grouping rules cannot be updated for this channel group.", + "readOnly": true, + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaChannelGroupFilter": { + "description": "A specific filter for a single dimension.", + "id": "GoogleAnalyticsAdminV1alphaChannelGroupFilter", + "properties": { + "fieldName": { + "description": "Required. Immutable. The dimension name to filter.", + "type": "string" + }, + "inListFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaChannelGroupFilterInListFilter", + "description": "A filter for a string dimension that matches a particular list of options." + }, + "stringFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaChannelGroupFilterStringFilter", + "description": "A filter for a string-type dimension that matches a particular pattern." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaChannelGroupFilterExpression": { + "description": "A logical expression of Channel Group dimension filters.", + "id": "GoogleAnalyticsAdminV1alphaChannelGroupFilterExpression", + "properties": { + "andGroup": { + "$ref": "GoogleAnalyticsAdminV1alphaChannelGroupFilterExpressionList", + "description": "A list of expressions to be AND\u2019ed together. It can only contain ChannelGroupFilterExpressions with or_group. This must be set for the top level ChannelGroupFilterExpression." + }, + "filter": { + "$ref": "GoogleAnalyticsAdminV1alphaChannelGroupFilter", + "description": "A filter on a single dimension. This cannot be set on the top level ChannelGroupFilterExpression." + }, + "notExpression": { + "$ref": "GoogleAnalyticsAdminV1alphaChannelGroupFilterExpression", + "description": "A filter expression to be NOT'ed (that is inverted, complemented). It can only include a dimension_or_metric_filter. This cannot be set on the top level ChannelGroupFilterExpression." + }, + "orGroup": { + "$ref": "GoogleAnalyticsAdminV1alphaChannelGroupFilterExpressionList", + "description": "A list of expressions to OR\u2019ed together. It cannot contain ChannelGroupFilterExpressions with and_group or or_group." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaChannelGroupFilterExpressionList": { + "description": "A list of Channel Group filter expressions.", + "id": "GoogleAnalyticsAdminV1alphaChannelGroupFilterExpressionList", + "properties": { + "filterExpressions": { + "description": "A list of Channel Group filter expressions.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaChannelGroupFilterExpression" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaChannelGroupFilterInListFilter": { + "description": "A filter for a string dimension that matches a particular list of options. The match is case insensitive.", + "id": "GoogleAnalyticsAdminV1alphaChannelGroupFilterInListFilter", + "properties": { + "values": { + "description": "Required. The list of possible string values to match against. Must be non-empty.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaChannelGroupFilterStringFilter": { + "description": "Filter where the field value is a String. The match is case insensitive.", + "id": "GoogleAnalyticsAdminV1alphaChannelGroupFilterStringFilter", + "properties": { + "matchType": { + "description": "Required. The match type for the string filter.", + "enum": [ + "MATCH_TYPE_UNSPECIFIED", + "EXACT", + "BEGINS_WITH", + "ENDS_WITH", + "CONTAINS", + "FULL_REGEXP", + "PARTIAL_REGEXP" + ], + "enumDescriptions": [ + "Default match type.", + "Exact match of the string value.", + "Begins with the string value.", + "Ends with the string value.", + "Contains the string value.", + "Full regular expression match with the string value.", + "Partial regular expression match with the string value." + ], + "type": "string" + }, + "value": { + "description": "Required. The string value to be matched against.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaConnectedSiteTag": { + "description": "Configuration for a specific Connected Site Tag.", + "id": "GoogleAnalyticsAdminV1alphaConnectedSiteTag", + "properties": { + "displayName": { + "description": "Required. User-provided display name for the connected site tag. Must be less than 256 characters.", + "type": "string" + }, + "tagId": { + "description": "Required. \"Tag ID to forward events to. Also known as the Measurement ID, or the \"G-ID\" (For example: G-12345).", + "type": "string" + } + }, + "type": "object" + }, "GoogleAnalyticsAdminV1alphaConversionEvent": { "description": "A conversion event in a Google Analytics property.", "id": "GoogleAnalyticsAdminV1alphaConversionEvent", "properties": { + "countingMethod": { + "description": "Optional. The method by which conversions will be counted across multiple events within a session. If this value is not provided, it will be set to `ONCE_PER_EVENT`.", + "enum": [ + "CONVERSION_COUNTING_METHOD_UNSPECIFIED", + "ONCE_PER_EVENT", + "ONCE_PER_SESSION" + ], + "enumDescriptions": [ + "Counting method not specified.", + "Each Event instance is considered a Conversion.", + "An Event instance is considered a Conversion at most once per session per user." + ], + "type": "string" + }, "createTime": { "description": "Output only. Time when this conversion event was created in the property.", "format": "google-datetime", @@ -2981,8 +6059,12 @@ "readOnly": true, "type": "boolean" }, + "defaultConversionValue": { + "$ref": "GoogleAnalyticsAdminV1alphaConversionEventDefaultConversionValue", + "description": "Optional. Defines a default value/currency for a conversion event." + }, "deletable": { - "description": "Output only. If set, this event can currently be deleted via DeleteConversionEvent.", + "description": "Output only. If set, this event can currently be deleted with DeleteConversionEvent.", "readOnly": true, "type": "boolean" }, @@ -2998,21 +6080,167 @@ }, "type": "object" }, - "GoogleAnalyticsAdminV1alphaCreateUserLinkRequest": { - "description": "Request message for CreateUserLink RPC. Users can have multiple email addresses associated with their Google account, and one of these email addresses is the \"primary\" email address. Any of the email addresses associated with a Google account may be used for a new UserLink, but the returned UserLink will always contain the \"primary\" email address. As a result, the input and output email address for this request may differ.", - "id": "GoogleAnalyticsAdminV1alphaCreateUserLinkRequest", + "GoogleAnalyticsAdminV1alphaConversionEventDefaultConversionValue": { + "description": "Defines a default value/currency for a conversion event. Both value and currency must be provided.", + "id": "GoogleAnalyticsAdminV1alphaConversionEventDefaultConversionValue", "properties": { - "notifyNewUser": { - "description": "Optional. If set, then email the new user notifying them that they've been granted permissions to the resource.", - "type": "boolean" - }, - "parent": { - "description": "Required. Example format: accounts/1234", + "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 information.", "type": "string" }, - "userLink": { - "$ref": "GoogleAnalyticsAdminV1alphaUserLink", - "description": "Required. The user link to create." + "value": { + "description": "This value will be used to populate the value for all conversions of the specified event_name where the event \"value\" parameter is unset.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaConversionValues": { + "description": "Conversion value settings for a postback window for SKAdNetwork conversion value schema.", + "id": "GoogleAnalyticsAdminV1alphaConversionValues", + "properties": { + "coarseValue": { + "description": "Required. A coarse grained conversion value. This value is not guaranteed to be unique.", + "enum": [ + "COARSE_VALUE_UNSPECIFIED", + "COARSE_VALUE_LOW", + "COARSE_VALUE_MEDIUM", + "COARSE_VALUE_HIGH" + ], + "enumDescriptions": [ + "Coarse value not specified.", + "Coarse value of low.", + "Coarse value of medium.", + "Coarse value of high." + ], + "type": "string" + }, + "displayName": { + "description": "Display name of the SKAdNetwork conversion value. The max allowed display name length is 50 UTF-16 code units.", + "type": "string" + }, + "eventMappings": { + "description": "Event conditions that must be met for this Conversion Value to be achieved. The conditions in this list are ANDed together. It must have minimum of 1 entry and maximum of 3 entries, if the postback window is enabled.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaEventMapping" + }, + "type": "array" + }, + "fineValue": { + "description": "The fine-grained conversion value. This is applicable only to the first postback window. Its valid values are [0,63], both inclusive. It must be set for postback window 1, and must not be set for postback window 2 & 3. This value is not guaranteed to be unique. If the configuration for the first postback window is re-used for second or third postback windows this field has no effect.", + "format": "int32", + "type": "integer" + }, + "lockEnabled": { + "description": "If true, the SDK should lock to this conversion value for the current postback window.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaCreateAccessBindingRequest": { + "description": "Request message for CreateAccessBinding RPC.", + "id": "GoogleAnalyticsAdminV1alphaCreateAccessBindingRequest", + "properties": { + "accessBinding": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessBinding", + "description": "Required. The access binding to create." + }, + "parent": { + "description": "Required. Formats: - accounts/{account} - properties/{property}", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaCreateConnectedSiteTagRequest": { + "description": "Request message for CreateConnectedSiteTag RPC.", + "id": "GoogleAnalyticsAdminV1alphaCreateConnectedSiteTagRequest", + "properties": { + "connectedSiteTag": { + "$ref": "GoogleAnalyticsAdminV1alphaConnectedSiteTag", + "description": "Required. The tag to add to the Universal Analytics property" + }, + "property": { + "description": "The Universal Analytics property to create connected site tags for. This API does not support GA4 properties. Format: properties/{universalAnalyticsPropertyId} Example: properties/1234", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaCreateConnectedSiteTagResponse": { + "description": "Response message for CreateConnectedSiteTag RPC.", + "id": "GoogleAnalyticsAdminV1alphaCreateConnectedSiteTagResponse", + "properties": {}, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaCreateRollupPropertyRequest": { + "description": "Request message for CreateRollupProperty RPC.", + "id": "GoogleAnalyticsAdminV1alphaCreateRollupPropertyRequest", + "properties": { + "rollupProperty": { + "$ref": "GoogleAnalyticsAdminV1alphaProperty", + "description": "Required. The roll-up property to create." + }, + "sourceProperties": { + "description": "Optional. The resource names of properties that will be sources to the created roll-up property.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaCreateRollupPropertyResponse": { + "description": "Response message for CreateRollupProperty RPC.", + "id": "GoogleAnalyticsAdminV1alphaCreateRollupPropertyResponse", + "properties": { + "rollupProperty": { + "$ref": "GoogleAnalyticsAdminV1alphaProperty", + "description": "The created roll-up property." + }, + "rollupPropertySourceLinks": { + "description": "The created roll-up property source links.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaRollupPropertySourceLink" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaCreateSubpropertyRequest": { + "description": "Request message for CreateSubproperty RPC.", + "id": "GoogleAnalyticsAdminV1alphaCreateSubpropertyRequest", + "properties": { + "parent": { + "description": "Required. The ordinary property for which to create a subproperty. Format: properties/property_id Example: properties/123", + "type": "string" + }, + "subproperty": { + "$ref": "GoogleAnalyticsAdminV1alphaProperty", + "description": "Required. The subproperty to create." + }, + "subpropertyEventFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilter", + "description": "Optional. The subproperty event filter to create on an ordinary property." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaCreateSubpropertyResponse": { + "description": "Response message for CreateSubproperty RPC.", + "id": "GoogleAnalyticsAdminV1alphaCreateSubpropertyResponse", + "properties": { + "subproperty": { + "$ref": "GoogleAnalyticsAdminV1alphaProperty", + "description": "The created subproperty." + }, + "subpropertyEventFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilter", + "description": "The created subproperty event filter." } }, "type": "object" @@ -3039,7 +6267,7 @@ "type": "string" }, "parameterName": { - "description": "Required. Immutable. Tagging parameter name for this custom dimension. If this is a user-scoped dimension, then this is the user property name. If this is an event-scoped dimension, then this is the event parameter name. May only contain alphanumeric and underscore characters, starting with a letter. Max length of 24 characters for user-scoped dimensions, 40 characters for event-scoped dimensions.", + "description": "Required. Immutable. Tagging parameter name for this custom dimension. If this is a user-scoped dimension, then this is the user property name. If this is an event-scoped dimension, then this is the event parameter name. If this is an item-scoped dimension, then this is the parameter name found in the eCommerce items array. May only contain alphanumeric and underscore characters, starting with a letter. Max length of 24 characters for user-scoped dimensions, 40 characters for event-scoped dimensions.", "type": "string" }, "scope": { @@ -3047,12 +6275,14 @@ "enum": [ "DIMENSION_SCOPE_UNSPECIFIED", "EVENT", - "USER" + "USER", + "ITEM" ], "enumDescriptions": [ "Scope unknown or not specified.", "Dimension scoped to an event.", - "Dimension scoped to a user." + "Dimension scoped to a user.", + "Dimension scoped to eCommerce items" ], "type": "string" } @@ -3142,6 +6372,33 @@ }, "type": "object" }, + "GoogleAnalyticsAdminV1alphaDataRedactionSettings": { + "description": "Settings for client-side data redaction. Singleton resource under a Web Stream.", + "id": "GoogleAnalyticsAdminV1alphaDataRedactionSettings", + "properties": { + "emailRedactionEnabled": { + "description": "If enabled, any event parameter or user property values that look like an email will be redacted.", + "type": "boolean" + }, + "name": { + "description": "Output only. Name of this Data Redaction Settings resource. Format: properties/{property_id}/dataStreams/{data_stream}/dataRedactionSettings Example: \"properties/1000/dataStreams/2000/dataRedactionSettings\"", + "readOnly": true, + "type": "string" + }, + "queryParameterKeys": { + "description": "The query parameter keys to apply redaction logic to if present in the URL. Query parameter matching is case-insensitive. Must contain at least one element if query_parameter_replacement_enabled is true. Keys cannot contain commas.", + "items": { + "type": "string" + }, + "type": "array" + }, + "queryParameterRedactionEnabled": { + "description": "Query Parameter redaction removes the key and value portions of a query parameter if it is in the configured set of query parameters. If enabled, URL query replacement logic will be run for the Stream. Any query parameters defined in query_parameter_keys will be redacted.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleAnalyticsAdminV1alphaDataRetentionSettings": { "description": "Settings values for data retention. This is a singleton resource.", "id": "GoogleAnalyticsAdminV1alphaDataRetentionSettings", @@ -3303,7 +6560,7 @@ "id": "GoogleAnalyticsAdminV1alphaDataStreamWebStreamData", "properties": { "defaultUri": { - "description": "Immutable. Domain name of the web app being measured, or empty. Example: \"http://www.google.com\", \"https://www.google.com\"", + "description": "Domain name of the web app being measured, or empty. Example: \"http://www.google.com\", \"https://www.google.com\"", "type": "string" }, "firebaseAppId": { @@ -3312,19 +6569,34 @@ "type": "string" }, "measurementId": { - "description": "Output only. Analytics \"Measurement ID\", without the \"G-\" prefix. Example: \"G-1A2BCD345E\" would just be \"1A2BCD345E\"", + "description": "Output only. Analytics Measurement ID. Example: \"G-1A2BCD345E\"", "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleAnalyticsAdminV1alphaDeleteUserLinkRequest": { - "description": "Request message for DeleteUserLink RPC.", - "id": "GoogleAnalyticsAdminV1alphaDeleteUserLinkRequest", + "GoogleAnalyticsAdminV1alphaDeleteAccessBindingRequest": { + "description": "Request message for DeleteAccessBinding RPC.", + "id": "GoogleAnalyticsAdminV1alphaDeleteAccessBindingRequest", "properties": { "name": { - "description": "Required. Example format: accounts/1234/userLinks/5678", + "description": "Required. Formats: - accounts/{account}/accessBindings/{accessBinding} - properties/{property}/accessBindings/{accessBinding}", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaDeleteConnectedSiteTagRequest": { + "description": "Request message for DeleteConnectedSiteTag RPC.", + "id": "GoogleAnalyticsAdminV1alphaDeleteConnectedSiteTagRequest", + "properties": { + "property": { + "description": "The Universal Analytics property to delete connected site tags for. This API does not support GA4 properties. Format: properties/{universalAnalyticsPropertyId} Example: properties/1234", + "type": "string" + }, + "tagId": { + "description": "Tag ID to forward events to. Also known as the Measurement ID, or the \"G-ID\" (For example: G-12345).", "type": "string" } }, @@ -3405,6 +6677,299 @@ }, "type": "object" }, + "GoogleAnalyticsAdminV1alphaEnhancedMeasurementSettings": { + "description": "Singleton resource under a web DataStream, configuring measurement of additional site interactions and content.", + "id": "GoogleAnalyticsAdminV1alphaEnhancedMeasurementSettings", + "properties": { + "fileDownloadsEnabled": { + "description": "If enabled, capture a file download event each time a link is clicked with a common document, compressed file, application, video, or audio extension.", + "type": "boolean" + }, + "formInteractionsEnabled": { + "description": "If enabled, capture a form interaction event each time a visitor interacts with a form on your website. False by default.", + "type": "boolean" + }, + "name": { + "description": "Output only. Resource name of the Enhanced Measurement Settings. Format: properties/{property_id}/dataStreams/{data_stream}/enhancedMeasurementSettings Example: \"properties/1000/dataStreams/2000/enhancedMeasurementSettings\"", + "readOnly": true, + "type": "string" + }, + "outboundClicksEnabled": { + "description": "If enabled, capture an outbound click event each time a visitor clicks a link that leads them away from your domain.", + "type": "boolean" + }, + "pageChangesEnabled": { + "description": "If enabled, capture a page view event each time the website changes the browser history state.", + "type": "boolean" + }, + "scrollsEnabled": { + "description": "If enabled, capture scroll events each time a visitor gets to the bottom of a page.", + "type": "boolean" + }, + "searchQueryParameter": { + "description": "Required. URL query parameters to interpret as site search parameters. Max length is 1024 characters. Must not be empty.", + "type": "string" + }, + "siteSearchEnabled": { + "description": "If enabled, capture a view search results event each time a visitor performs a search on your site (based on a query parameter).", + "type": "boolean" + }, + "streamEnabled": { + "description": "Indicates whether Enhanced Measurement Settings will be used to automatically measure interactions and content on this web stream. Changing this value does not affect the settings themselves, but determines whether they are respected.", + "type": "boolean" + }, + "uriQueryParameter": { + "description": "Additional URL query parameters. Max length is 1024 characters.", + "type": "string" + }, + "videoEngagementEnabled": { + "description": "If enabled, capture video play, progress, and complete events as visitors view embedded videos on your site.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaEventCreateRule": { + "description": "An Event Create Rule defines conditions that will trigger the creation of an entirely new event based upon matched criteria of a source event. Additional mutations of the parameters from the source event can be defined. Unlike Event Edit rules, Event Creation Rules have no defined order. They will all be run independently. Event Edit and Event Create rules can't be used to modify an event created from an Event Create rule.", + "id": "GoogleAnalyticsAdminV1alphaEventCreateRule", + "properties": { + "destinationEvent": { + "description": "Required. The name of the new event to be created. This value must: * be less than 40 characters * consist only of letters, digits or _ (underscores) * start with a letter", + "type": "string" + }, + "eventConditions": { + "description": "Required. Must have at least one condition, and can have up to 10 max. Conditions on the source event must match for this rule to be applied.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaMatchingCondition" + }, + "type": "array" + }, + "name": { + "description": "Output only. Resource name for this EventCreateRule resource. Format: properties/{property}/dataStreams/{data_stream}/eventCreateRules/{event_create_rule}", + "readOnly": true, + "type": "string" + }, + "parameterMutations": { + "description": "Parameter mutations define parameter behavior on the new event, and are applied in order. A maximum of 20 mutations can be applied.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaParameterMutation" + }, + "type": "array" + }, + "sourceCopyParameters": { + "description": "If true, the source parameters are copied to the new event. If false, or unset, all non-internal parameters are not copied from the source event. Parameter mutations are applied after the parameters have been copied.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaEventMapping": { + "description": "Event setting conditions to match an event.", + "id": "GoogleAnalyticsAdminV1alphaEventMapping", + "properties": { + "eventName": { + "description": "Required. Name of the GA4 event. It must always be set. The max allowed display name length is 40 UTF-16 code units.", + "type": "string" + }, + "maxEventCount": { + "description": "The maximum number of times the event occurred. If not set, maximum event count won't be checked.", + "format": "int64", + "type": "string" + }, + "maxEventValue": { + "description": "The maximum revenue generated due to the event. Revenue currency will be defined at the property level. If not set, maximum event value won't be checked.", + "format": "double", + "type": "number" + }, + "minEventCount": { + "description": "At least one of the following four min/max values must be set. The values set will be ANDed together to qualify an event. The minimum number of times the event occurred. If not set, minimum event count won't be checked.", + "format": "int64", + "type": "string" + }, + "minEventValue": { + "description": "The minimum revenue generated due to the event. Revenue currency will be defined at the property level. If not set, minimum event value won't be checked.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaExpandedDataSet": { + "description": "A resource message representing a GA4 ExpandedDataSet.", + "id": "GoogleAnalyticsAdminV1alphaExpandedDataSet", + "properties": { + "dataCollectionStartTime": { + "description": "Output only. Time when expanded data set began (or will begin) collecing data.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. The description of the ExpandedDataSet. Max 50 chars.", + "type": "string" + }, + "dimensionFilterExpression": { + "$ref": "GoogleAnalyticsAdminV1alphaExpandedDataSetFilterExpression", + "description": "Immutable. A logical expression of ExpandedDataSet filters applied to dimension included in the ExpandedDataSet. This filter is used to reduce the number of rows and thus the chance of encountering `other` row." + }, + "dimensionNames": { + "description": "Immutable. The list of dimensions included in the ExpandedDataSet. See the [API Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#dimensions) for the list of dimension names.", + "items": { + "type": "string" + }, + "type": "array" + }, + "displayName": { + "description": "Required. The display name of the ExpandedDataSet. Max 200 chars.", + "type": "string" + }, + "metricNames": { + "description": "Immutable. The list of metrics included in the ExpandedDataSet. See the [API Metrics](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#metrics) for the list of dimension names.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Output only. The resource name for this ExpandedDataSet resource. Format: properties/{property_id}/expandedDataSets/{expanded_data_set}", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaExpandedDataSetFilter": { + "description": "A specific filter for a single dimension", + "id": "GoogleAnalyticsAdminV1alphaExpandedDataSetFilter", + "properties": { + "fieldName": { + "description": "Required. The dimension name to filter.", + "type": "string" + }, + "inListFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaExpandedDataSetFilterInListFilter", + "description": "A filter for a string dimension that matches a particular list of options." + }, + "stringFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaExpandedDataSetFilterStringFilter", + "description": "A filter for a string-type dimension that matches a particular pattern." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaExpandedDataSetFilterExpression": { + "description": "A logical expression of EnhancedDataSet dimension filters.", + "id": "GoogleAnalyticsAdminV1alphaExpandedDataSetFilterExpression", + "properties": { + "andGroup": { + "$ref": "GoogleAnalyticsAdminV1alphaExpandedDataSetFilterExpressionList", + "description": "A list of expressions to be AND\u2019ed together. It must contain a ExpandedDataSetFilterExpression with either not_expression or dimension_filter. This must be set for the top level ExpandedDataSetFilterExpression." + }, + "filter": { + "$ref": "GoogleAnalyticsAdminV1alphaExpandedDataSetFilter", + "description": "A filter on a single dimension. This cannot be set on the top level ExpandedDataSetFilterExpression." + }, + "notExpression": { + "$ref": "GoogleAnalyticsAdminV1alphaExpandedDataSetFilterExpression", + "description": "A filter expression to be NOT'ed (that is, inverted, complemented). It must include a dimension_filter. This cannot be set on the top level ExpandedDataSetFilterExpression." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaExpandedDataSetFilterExpressionList": { + "description": "A list of ExpandedDataSet filter expressions.", + "id": "GoogleAnalyticsAdminV1alphaExpandedDataSetFilterExpressionList", + "properties": { + "filterExpressions": { + "description": "A list of ExpandedDataSet filter expressions.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaExpandedDataSetFilterExpression" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaExpandedDataSetFilterInListFilter": { + "description": "A filter for a string dimension that matches a particular list of options.", + "id": "GoogleAnalyticsAdminV1alphaExpandedDataSetFilterInListFilter", + "properties": { + "caseSensitive": { + "description": "Optional. If true, the match is case-sensitive. If false, the match is case-insensitive. Must be true.", + "type": "boolean" + }, + "values": { + "description": "Required. The list of possible string values to match against. Must be non-empty.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaExpandedDataSetFilterStringFilter": { + "description": "A filter for a string-type dimension that matches a particular pattern.", + "id": "GoogleAnalyticsAdminV1alphaExpandedDataSetFilterStringFilter", + "properties": { + "caseSensitive": { + "description": "Optional. If true, the match is case-sensitive. If false, the match is case-insensitive. Must be true when match_type is EXACT. Must be false when match_type is CONTAINS.", + "type": "boolean" + }, + "matchType": { + "description": "Required. The match type for the string filter.", + "enum": [ + "MATCH_TYPE_UNSPECIFIED", + "EXACT", + "CONTAINS" + ], + "enumDescriptions": [ + "Unspecified", + "Exact match of the string value.", + "Contains the string value." + ], + "type": "string" + }, + "value": { + "description": "Required. The string value to be matched against.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaFetchAutomatedGa4ConfigurationOptOutRequest": { + "description": "Request for fetching the opt out status for the automated GA4 setup process.", + "id": "GoogleAnalyticsAdminV1alphaFetchAutomatedGa4ConfigurationOptOutRequest", + "properties": { + "property": { + "description": "Required. The UA property to get the opt out status. Note this request uses the internal property ID, not the tracking ID of the form UA-XXXXXX-YY. Format: properties/{internalWebPropertyId} Example: properties/1234", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaFetchAutomatedGa4ConfigurationOptOutResponse": { + "description": "Response message for fetching the opt out status for the automated GA4 setup process.", + "id": "GoogleAnalyticsAdminV1alphaFetchAutomatedGa4ConfigurationOptOutResponse", + "properties": { + "optOut": { + "description": "The opt out status for the UA property.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaFetchConnectedGa4PropertyResponse": { + "description": "Response for looking up GA4 property connected to a UA property.", + "id": "GoogleAnalyticsAdminV1alphaFetchConnectedGa4PropertyResponse", + "properties": { + "property": { + "description": "The GA4 property connected to the UA property. An empty string is returned when there is no connected GA4 property. Format: properties/{property_id} Example: properties/1234", + "type": "string" + } + }, + "type": "object" + }, "GoogleAnalyticsAdminV1alphaFirebaseLink": { "description": "A link between a GA4 property and a Firebase project.", "id": "GoogleAnalyticsAdminV1alphaFirebaseLink", @@ -3526,6 +7091,21 @@ }, "type": "object" }, + "GoogleAnalyticsAdminV1alphaGroupingRule": { + "description": "The rules that govern how traffic is grouped into one channel.", + "id": "GoogleAnalyticsAdminV1alphaGroupingRule", + "properties": { + "displayName": { + "description": "Required. Customer defined display name for the channel.", + "type": "string" + }, + "expression": { + "$ref": "GoogleAnalyticsAdminV1alphaChannelGroupFilterExpression", + "description": "Required. The Filter Expression that defines the Grouping Rule." + } + }, + "type": "object" + }, "GoogleAnalyticsAdminV1alphaLinkProposalStatusDetails": { "description": "Status information for a link proposal.", "id": "GoogleAnalyticsAdminV1alphaLinkProposalStatusDetails", @@ -3576,6 +7156,24 @@ }, "type": "object" }, + "GoogleAnalyticsAdminV1alphaListAccessBindingsResponse": { + "description": "Response message for ListAccessBindings RPC.", + "id": "GoogleAnalyticsAdminV1alphaListAccessBindingsResponse", + "properties": { + "accessBindings": { + "description": "List of AccessBindings. These will be ordered stably, but in an arbitrary order.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessBinding" + }, + "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" + }, "GoogleAnalyticsAdminV1alphaListAccountSummariesResponse": { "description": "Response message for ListAccountSummaries RPC.", "id": "GoogleAnalyticsAdminV1alphaListAccountSummariesResponse", @@ -3612,6 +7210,121 @@ }, "type": "object" }, + "GoogleAnalyticsAdminV1alphaListAdSenseLinksResponse": { + "description": "Response message for ListAdSenseLinks method.", + "id": "GoogleAnalyticsAdminV1alphaListAdSenseLinksResponse", + "properties": { + "adsenseLinks": { + "description": "List of AdSenseLinks.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaAdSenseLink" + }, + "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" + }, + "GoogleAnalyticsAdminV1alphaListAudiencesResponse": { + "description": "Response message for ListAudiences RPC.", + "id": "GoogleAnalyticsAdminV1alphaListAudiencesResponse", + "properties": { + "audiences": { + "description": "List of Audiences.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaAudience" + }, + "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" + }, + "GoogleAnalyticsAdminV1alphaListBigQueryLinksResponse": { + "description": "Response message for ListBigQueryLinks RPC", + "id": "GoogleAnalyticsAdminV1alphaListBigQueryLinksResponse", + "properties": { + "bigqueryLinks": { + "description": "List of BigQueryLinks.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaBigQueryLink" + }, + "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" + }, + "GoogleAnalyticsAdminV1alphaListCalculatedMetricsResponse": { + "description": "Response message for ListCalculatedMetrics RPC.", + "id": "GoogleAnalyticsAdminV1alphaListCalculatedMetricsResponse", + "properties": { + "calculatedMetrics": { + "description": "List of CalculatedMetrics.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaCalculatedMetric" + }, + "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" + }, + "GoogleAnalyticsAdminV1alphaListChannelGroupsResponse": { + "description": "Response message for ListChannelGroups RPC.", + "id": "GoogleAnalyticsAdminV1alphaListChannelGroupsResponse", + "properties": { + "channelGroups": { + "description": "List of ChannelGroup. These will be ordered stably, but in an arbitrary order.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaChannelGroup" + }, + "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" + }, + "GoogleAnalyticsAdminV1alphaListConnectedSiteTagsRequest": { + "description": "Request message for ListConnectedSiteTags RPC.", + "id": "GoogleAnalyticsAdminV1alphaListConnectedSiteTagsRequest", + "properties": { + "property": { + "description": "The Universal Analytics property to fetch connected site tags for. This does not work on GA4 properties. A maximum of 20 connected site tags will be returned. Example Format: `properties/1234`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaListConnectedSiteTagsResponse": { + "description": "Response message for ListConnectedSiteTags RPC.", + "id": "GoogleAnalyticsAdminV1alphaListConnectedSiteTagsResponse", + "properties": { + "connectedSiteTags": { + "description": "The site tags for the Universal Analytics property. A maximum of 20 connected site tags will be returned.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaConnectedSiteTag" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleAnalyticsAdminV1alphaListConversionEventsResponse": { "description": "Response message for ListConversionEvents RPC.", "id": "GoogleAnalyticsAdminV1alphaListConversionEventsResponse", @@ -3720,6 +7433,42 @@ }, "type": "object" }, + "GoogleAnalyticsAdminV1alphaListEventCreateRulesResponse": { + "description": "Response message for ListEventCreateRules RPC.", + "id": "GoogleAnalyticsAdminV1alphaListEventCreateRulesResponse", + "properties": { + "eventCreateRules": { + "description": "List of EventCreateRules. These will be ordered stably, but in an arbitrary order.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaEventCreateRule" + }, + "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" + }, + "GoogleAnalyticsAdminV1alphaListExpandedDataSetsResponse": { + "description": "Response message for ListExpandedDataSets RPC.", + "id": "GoogleAnalyticsAdminV1alphaListExpandedDataSetsResponse", + "properties": { + "expandedDataSets": { + "description": "List of ExpandedDataSet. These will be ordered stably, but in an arbitrary order.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaExpandedDataSet" + }, + "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" + }, "GoogleAnalyticsAdminV1alphaListFirebaseLinksResponse": { "description": "Response message for ListFirebaseLinks RPC", "id": "GoogleAnalyticsAdminV1alphaListFirebaseLinksResponse", @@ -3792,24 +7541,135 @@ }, "type": "object" }, - "GoogleAnalyticsAdminV1alphaListUserLinksResponse": { - "description": "Response message for ListUserLinks RPC.", - "id": "GoogleAnalyticsAdminV1alphaListUserLinksResponse", + "GoogleAnalyticsAdminV1alphaListRollupPropertySourceLinksResponse": { + "description": "Response message for ListRollupPropertySourceLinks RPC.", + "id": "GoogleAnalyticsAdminV1alphaListRollupPropertySourceLinksResponse", "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" }, - "userLinks": { - "description": "List of UserLinks. These will be ordered stably, but in an arbitrary order.", + "rollupPropertySourceLinks": { + "description": "List of RollupPropertySourceLinks.", "items": { - "$ref": "GoogleAnalyticsAdminV1alphaUserLink" + "$ref": "GoogleAnalyticsAdminV1alphaRollupPropertySourceLink" }, "type": "array" } }, "type": "object" }, + "GoogleAnalyticsAdminV1alphaListSKAdNetworkConversionValueSchemasResponse": { + "description": "Response message for ListSKAdNetworkConversionValueSchemas RPC", + "id": "GoogleAnalyticsAdminV1alphaListSKAdNetworkConversionValueSchemasResponse", + "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. Currently, Google Analytics supports only one SKAdNetworkConversionValueSchema per dataStream, so this will never be populated.", + "type": "string" + }, + "skadnetworkConversionValueSchemas": { + "description": "List of SKAdNetworkConversionValueSchemas. This will have at most one value.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaSKAdNetworkConversionValueSchema" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaListSearchAds360LinksResponse": { + "description": "Response message for ListSearchAds360Links RPC.", + "id": "GoogleAnalyticsAdminV1alphaListSearchAds360LinksResponse", + "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" + }, + "searchAds360Links": { + "description": "List of SearchAds360Links.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaSearchAds360Link" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaListSubpropertyEventFiltersResponse": { + "description": "Response message for ListSubpropertyEventFilter RPC.", + "id": "GoogleAnalyticsAdminV1alphaListSubpropertyEventFiltersResponse", + "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" + }, + "subpropertyEventFilters": { + "description": "List of subproperty event filters.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilter" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaMatchingCondition": { + "description": "Defines a condition for when an Event Edit or Event Creation rule applies to an event.", + "id": "GoogleAnalyticsAdminV1alphaMatchingCondition", + "properties": { + "comparisonType": { + "description": "Required. The type of comparison to be applied to the value.", + "enum": [ + "COMPARISON_TYPE_UNSPECIFIED", + "EQUALS", + "EQUALS_CASE_INSENSITIVE", + "CONTAINS", + "CONTAINS_CASE_INSENSITIVE", + "STARTS_WITH", + "STARTS_WITH_CASE_INSENSITIVE", + "ENDS_WITH", + "ENDS_WITH_CASE_INSENSITIVE", + "GREATER_THAN", + "GREATER_THAN_OR_EQUAL", + "LESS_THAN", + "LESS_THAN_OR_EQUAL", + "REGULAR_EXPRESSION", + "REGULAR_EXPRESSION_CASE_INSENSITIVE" + ], + "enumDescriptions": [ + "Unknown", + "Equals, case sensitive", + "Equals, case insensitive", + "Contains, case sensitive", + "Contains, case insensitive", + "Starts with, case sensitive", + "Starts with, case insensitive", + "Ends with, case sensitive", + "Ends with, case insensitive", + "Greater than", + "Greater than or equal", + "Less than", + "Less than or equal", + "regular expression. Only supported for web streams.", + "regular expression, case insensitive. Only supported for web streams." + ], + "type": "string" + }, + "field": { + "description": "Required. The name of the field that is compared against for the condition. If 'event_name' is specified this condition will apply to the name of the event. Otherwise the condition will apply to a parameter with the specified name. This value cannot contain spaces.", + "type": "string" + }, + "negated": { + "description": "Whether or not the result of the comparison should be negated. For example, if `negated` is true, then 'equals' comparisons would function as 'not equals'.", + "type": "boolean" + }, + "value": { + "description": "Required. The value being compared against for this condition. The runtime implementation may perform type coercion of this value to evaluate this condition based on the type of the parameter value.", + "type": "string" + } + }, + "type": "object" + }, "GoogleAnalyticsAdminV1alphaMeasurementProtocolSecret": { "description": "A secret value used for sending hits to Measurement Protocol.", "id": "GoogleAnalyticsAdminV1alphaMeasurementProtocolSecret", @@ -3819,7 +7679,7 @@ "type": "string" }, "name": { - "description": "Output only. Resource name of this secret. This secret may be a child of any type of stream. Format: properties/{property}/webDataStreams/{webDataStream}/measurementProtocolSecrets/{measurementProtocolSecret}", + "description": "Output only. Resource name of this secret. This secret may be a child of any type of stream. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementProtocolSecret}", "readOnly": true, "type": "string" }, @@ -3831,6 +7691,56 @@ }, "type": "object" }, + "GoogleAnalyticsAdminV1alphaNumericValue": { + "description": "To represent a number.", + "id": "GoogleAnalyticsAdminV1alphaNumericValue", + "properties": { + "doubleValue": { + "description": "Double value", + "format": "double", + "type": "number" + }, + "int64Value": { + "description": "Integer value", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaParameterMutation": { + "description": "Defines an event parameter to mutate.", + "id": "GoogleAnalyticsAdminV1alphaParameterMutation", + "properties": { + "parameter": { + "description": "Required. The name of the parameter to mutate. This value must: * be less than 40 characters. * be unique across across all mutations within the rule * consist only of letters, digits or _ (underscores) For event edit rules, the name may also be set to 'event_name' to modify the event_name in place.", + "type": "string" + }, + "parameterValue": { + "description": "Required. The value mutation to perform. * Must be less than 100 characters. * To specify a constant value for the param, use the value's string. * To copy value from another parameter, use syntax like \"[[other_parameter]]\" For more details, see this [help center article](https://support.google.com/analytics/answer/10085872#modify-an-event&zippy=%2Cin-this-article%2Cmodify-parameters).", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaPostbackWindow": { + "description": "Settings for a SKAdNetwork conversion postback window.", + "id": "GoogleAnalyticsAdminV1alphaPostbackWindow", + "properties": { + "conversionValues": { + "description": "Ordering of the repeated field will be used to prioritize the conversion value settings. Lower indexed entries are prioritized higher. The first conversion value setting that evaluates to true will be selected. It must have at least one entry if enable_postback_window_settings is set to true. It can have maximum of 128 entries.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaConversionValues" + }, + "type": "array" + }, + "postbackWindowSettingsEnabled": { + "description": "If enable_postback_window_settings is true, conversion_values must be populated and will be used for determining when and how to set the Conversion Value on a client device and exporting schema to linked Ads accounts. If false, the settings are not used, but are retained in case they may be used in the future. This must always be true for postback_window_one.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleAnalyticsAdminV1alphaProperty": { "description": "A resource message representing a Google Analytics GA4 property.", "id": "GoogleAnalyticsAdminV1alphaProperty", @@ -3933,7 +7843,23 @@ "type": "string" }, "parent": { - "description": "Immutable. Resource name of this property's logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: \"accounts/100\"", + "description": "Immutable. Resource name of this property's logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account}, properties/{property} Example: \"accounts/100\", \"properties/101\"", + "type": "string" + }, + "propertyType": { + "description": "Immutable. The property type for this Property resource. When creating a property, if the type is \"PROPERTY_TYPE_UNSPECIFIED\", then \"ORDINARY_PROPERTY\" will be implied.", + "enum": [ + "PROPERTY_TYPE_UNSPECIFIED", + "PROPERTY_TYPE_ORDINARY", + "PROPERTY_TYPE_SUBPROPERTY", + "PROPERTY_TYPE_ROLLUP" + ], + "enumDescriptions": [ + "Unknown or unspecified property type", + "Ordinary GA4 property", + "GA4 subproperty", + "GA4 rollup property" + ], "type": "string" }, "serviceLevel": { @@ -3972,9 +7898,29 @@ "description": "Display name for the property referred to in this property summary.", "type": "string" }, + "parent": { + "description": "Resource name of this property's logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account}, properties/{property} Example: \"accounts/100\", \"properties/200\"", + "type": "string" + }, "property": { "description": "Resource name of property referred to by this property summary Format: properties/{property_id} Example: \"properties/1000\"", "type": "string" + }, + "propertyType": { + "description": "The property's property type.", + "enum": [ + "PROPERTY_TYPE_UNSPECIFIED", + "PROPERTY_TYPE_ORDINARY", + "PROPERTY_TYPE_SUBPROPERTY", + "PROPERTY_TYPE_ROLLUP" + ], + "enumDescriptions": [ + "Unknown or unspecified property type", + "Ordinary GA4 property", + "GA4 subproperty", + "GA4 rollup property" + ], + "type": "string" } }, "type": "object" @@ -3988,7 +7934,7 @@ "description": "The account to create." }, "redirectUri": { - "description": "Redirect URI where the user will be sent after accepting Terms of Service. Must be configured in Developers Console as a Redirect URI", + "description": "Redirect URI where the user will be sent after accepting Terms of Service. Must be configured in Cloud Console as a Redirect URI.", "type": "string" } }, @@ -4005,6 +7951,193 @@ }, "type": "object" }, + "GoogleAnalyticsAdminV1alphaRollupPropertySourceLink": { + "description": "A link that references a source property under the parent rollup property.", + "id": "GoogleAnalyticsAdminV1alphaRollupPropertySourceLink", + "properties": { + "name": { + "description": "Output only. Resource name of this RollupPropertySourceLink. Format: 'properties/{property_id}/rollupPropertySourceLinks/{rollup_property_source_link}' Format: 'properties/123/rollupPropertySourceLinks/456'", + "readOnly": true, + "type": "string" + }, + "sourceProperty": { + "description": "Immutable. Resource name of the source property. Format: properties/{property_id} Example: \"properties/789\"", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaRunAccessReportRequest": { + "description": "The request for a Data Access Record Report.", + "id": "GoogleAnalyticsAdminV1alphaRunAccessReportRequest", + "properties": { + "dateRanges": { + "description": "Date ranges of access records to read. If multiple date ranges are requested, each response row will contain a zero based date range index. If two date ranges overlap, the access records for the overlapping days is included in the response rows for both date ranges. Requests are allowed up to 2 date ranges.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessDateRange" + }, + "type": "array" + }, + "dimensionFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessFilterExpression", + "description": "Dimension filters let you restrict report response to specific dimension values which match the filter. For example, filtering on access records of a single user. To learn more, see [Fundamentals of Dimension Filters](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#dimension_filters) for examples. Metrics cannot be used in this filter." + }, + "dimensions": { + "description": "The dimensions requested and displayed in the response. Requests are allowed up to 9 dimensions.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessDimension" + }, + "type": "array" + }, + "expandGroups": { + "description": "Optional. Decides whether to return the users within user groups. This field works only when include_all_users is set to true. If true, it will return all users with access to the specified property or account. If false, only the users with direct access will be returned.", + "type": "boolean" + }, + "includeAllUsers": { + "description": "Optional. Determines whether to include users who have never made an API call in the response. If true, all users with access to the specified property or account are included in the response, regardless of whether they have made an API call or not. If false, only the users who have made an API call will be included.", + "type": "boolean" + }, + "limit": { + "description": "The number of rows to return. If unspecified, 10,000 rows are returned. The API returns a maximum of 100,000 rows per request, no matter how many you ask for. `limit` must be positive. The API may return fewer rows than the requested `limit`, if there aren't as many remaining rows as the `limit`. For instance, there are fewer than 300 possible values for the dimension `country`, so when reporting on only `country`, you can't get more than 300 rows, even if you set `limit` to a higher value. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).", + "format": "int64", + "type": "string" + }, + "metricFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessFilterExpression", + "description": "Metric filters allow you to restrict report response to specific metric values which match the filter. Metric filters are applied after aggregating the report's rows, similar to SQL having-clause. Dimensions cannot be used in this filter." + }, + "metrics": { + "description": "The metrics requested and displayed in the response. Requests are allowed up to 10 metrics.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessMetric" + }, + "type": "array" + }, + "offset": { + "description": "The row count of the start row. The first row is counted as row 0. If offset is unspecified, it is treated as 0. If offset is zero, then this method will return the first page of results with `limit` entries. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).", + "format": "int64", + "type": "string" + }, + "orderBys": { + "description": "Specifies how rows are ordered in the response.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessOrderBy" + }, + "type": "array" + }, + "returnEntityQuota": { + "description": "Toggles whether to return the current state of this Analytics Property's quota. Quota is returned in [AccessQuota](#AccessQuota). For account-level requests, this field must be false.", + "type": "boolean" + }, + "timeZone": { + "description": "This request's time zone if specified. If unspecified, the property's time zone is used. The request's time zone is used to interpret the start & end dates of the report. Formatted as strings from the IANA Time Zone database (https://www.iana.org/time-zones); for example \"America/New_York\" or \"Asia/Tokyo\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaRunAccessReportResponse": { + "description": "The customized Data Access Record Report response.", + "id": "GoogleAnalyticsAdminV1alphaRunAccessReportResponse", + "properties": { + "dimensionHeaders": { + "description": "The header for a column in the report that corresponds to a specific dimension. The number of DimensionHeaders and ordering of DimensionHeaders matches the dimensions present in rows.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessDimensionHeader" + }, + "type": "array" + }, + "metricHeaders": { + "description": "The header for a column in the report that corresponds to a specific metric. The number of MetricHeaders and ordering of MetricHeaders matches the metrics present in rows.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessMetricHeader" + }, + "type": "array" + }, + "quota": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessQuota", + "description": "The quota state for this Analytics property including this request. This field doesn't work with account-level requests." + }, + "rowCount": { + "description": "The total number of rows in the query result. `rowCount` is independent of the number of rows returned in the response, the `limit` request parameter, and the `offset` request parameter. For example if a query returns 175 rows and includes `limit` of 50 in the API request, the response will contain `rowCount` of 175 but only 50 rows. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).", + "format": "int32", + "type": "integer" + }, + "rows": { + "description": "Rows of dimension value combinations and metric values in the report.", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessRow" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaSKAdNetworkConversionValueSchema": { + "description": "SKAdNetwork conversion value schema of an iOS stream.", + "id": "GoogleAnalyticsAdminV1alphaSKAdNetworkConversionValueSchema", + "properties": { + "applyConversionValues": { + "description": "If enabled, the GA SDK will set conversion values using this schema definition, and schema will be exported to any Google Ads accounts linked to this property. If disabled, the GA SDK will not automatically set conversion values, and also the schema will not be exported to Ads.", + "type": "boolean" + }, + "name": { + "description": "Output only. Resource name of the schema. This will be child of ONLY an iOS stream, and there can be at most one such child under an iOS stream. Format: properties/{property}/dataStreams/{dataStream}/sKAdNetworkConversionValueSchema", + "readOnly": true, + "type": "string" + }, + "postbackWindowOne": { + "$ref": "GoogleAnalyticsAdminV1alphaPostbackWindow", + "description": "Required. The conversion value settings for the first postback window. These differ from values for postback window two and three in that they contain a \"Fine\" grained conversion value (a numeric value). Conversion values for this postback window must be set. The other windows are optional and may inherit this window's settings if unset or disabled." + }, + "postbackWindowThree": { + "$ref": "GoogleAnalyticsAdminV1alphaPostbackWindow", + "description": "The conversion value settings for the third postback window. This field should only be set if the user chose to define different conversion values for this postback window. It is allowed to configure window 3 without setting window 2. In case window 1 & 2 settings are set and enable_postback_window_settings for this postback window is set to false, the schema will inherit settings from postback_window_two." + }, + "postbackWindowTwo": { + "$ref": "GoogleAnalyticsAdminV1alphaPostbackWindow", + "description": "The conversion value settings for the second postback window. This field should only be configured if there is a need to define different conversion values for this postback window. If enable_postback_window_settings is set to false for this postback window, the values from postback_window_one will be used." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaSearchAds360Link": { + "description": "A link between a GA4 property and a Search Ads 360 entity.", + "id": "GoogleAnalyticsAdminV1alphaSearchAds360Link", + "properties": { + "adsPersonalizationEnabled": { + "description": "Enables personalized advertising features with this integration. If this field is not set on create, it will be defaulted to true.", + "type": "boolean" + }, + "advertiserDisplayName": { + "description": "Output only. The display name of the Search Ads 360 Advertiser. Allows users to easily identify the linked resource.", + "readOnly": true, + "type": "string" + }, + "advertiserId": { + "description": "Immutable. This field represents the Advertiser ID of the Search Ads 360 Advertiser. that has been linked.", + "type": "string" + }, + "campaignDataSharingEnabled": { + "description": "Immutable. Enables the import of campaign data from Search Ads 360 into the GA4 property. After link creation, this can only be updated from the Search Ads 360 product. If this field is not set on create, it will be defaulted to true.", + "type": "boolean" + }, + "costDataSharingEnabled": { + "description": "Immutable. Enables the import of cost data from Search Ads 360 to the GA4 property. This can only be enabled if campaign_data_sharing_enabled is enabled. After link creation, this can only be updated from the Search Ads 360 product. If this field is not set on create, it will be defaulted to true.", + "type": "boolean" + }, + "name": { + "description": "Output only. The resource name for this SearchAds360Link resource. Format: properties/{propertyId}/searchAds360Links/{linkId} Note: linkId is not the Search Ads 360 advertiser ID", + "readOnly": true, + "type": "string" + }, + "siteStatsSharingEnabled": { + "description": "Enables export of site stats with this integration. If this field is not set on create, it will be defaulted to true.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleAnalyticsAdminV1alphaSearchChangeHistoryEventsRequest": { "description": "Request message for SearchChangeHistoryEvents RPC.", "id": "GoogleAnalyticsAdminV1alphaSearchChangeHistoryEventsRequest", @@ -4055,7 +8188,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": { @@ -4075,7 +8208,18 @@ "DATA_RETENTION_SETTINGS", "DISPLAY_VIDEO_360_ADVERTISER_LINK", "DISPLAY_VIDEO_360_ADVERTISER_LINK_PROPOSAL", - "DATA_STREAM" + "SEARCH_ADS_360_LINK", + "DATA_STREAM", + "ATTRIBUTION_SETTINGS", + "EXPANDED_DATA_SET", + "CHANNEL_GROUP", + "ENHANCED_MEASUREMENT_SETTINGS", + "DATA_REDACTION_SETTINGS", + "SKADNETWORK_CONVERSION_VALUE_SCHEMA", + "ADSENSE_LINK", + "AUDIENCE", + "EVENT_CREATE_RULE", + "CALCULATED_METRIC" ], "enumDescriptions": [ "Resource type unknown or not specified.", @@ -4091,7 +8235,18 @@ "DataRetentionSettings resource", "DisplayVideo360AdvertiserLink resource", "DisplayVideo360AdvertiserLinkProposal resource", - "DataStream resource" + "SearchAds360Link resource", + "DataStream resource", + "AttributionSettings resource", + "ExpandedDataSet resource", + "ChannelGroup resource", + "EnhancedMeasurementSettings resource", + "DataRedactionSettings resource", + "SKAdNetworkConversionValueSchema resource", + "AdSenseLink resource", + "Audience resource", + "EventCreateRule resource", + "CalculatedMetric resource" ], "type": "string" }, @@ -4118,42 +8273,177 @@ }, "type": "object" }, - "GoogleAnalyticsAdminV1alphaUpdateUserLinkRequest": { - "description": "Request message for UpdateUserLink RPC.", - "id": "GoogleAnalyticsAdminV1alphaUpdateUserLinkRequest", + "GoogleAnalyticsAdminV1alphaSetAutomatedGa4ConfigurationOptOutRequest": { + "description": "Request for setting the opt out status for the automated GA4 setup process.", + "id": "GoogleAnalyticsAdminV1alphaSetAutomatedGa4ConfigurationOptOutRequest", "properties": { - "userLink": { - "$ref": "GoogleAnalyticsAdminV1alphaUserLink", - "description": "Required. The user link to update." + "optOut": { + "description": "The status to set.", + "type": "boolean" + }, + "property": { + "description": "Required. The UA property to set the opt out status. Note this request uses the internal property ID, not the tracking ID of the form UA-XXXXXX-YY. Format: properties/{internalWebPropertyId} Example: properties/1234", + "type": "string" } }, "type": "object" }, - "GoogleAnalyticsAdminV1alphaUserLink": { - "description": "A resource message representing a user's permissions on an Account or Property resource.", - "id": "GoogleAnalyticsAdminV1alphaUserLink", + "GoogleAnalyticsAdminV1alphaSetAutomatedGa4ConfigurationOptOutResponse": { + "description": "Response message for setting the opt out status for the automated GA4 setup process.", + "id": "GoogleAnalyticsAdminV1alphaSetAutomatedGa4ConfigurationOptOutResponse", + "properties": {}, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaSubpropertyEventFilter": { + "description": "A resource message representing a GA4 Subproperty event filter.", + "id": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilter", "properties": { - "directRoles": { - "description": "Roles directly assigned to this user for this account or property. Valid values: predefinedRoles/viewer predefinedRoles/analyst predefinedRoles/editor predefinedRoles/admin predefinedRoles/no-cost-data predefinedRoles/no-revenue-data Excludes roles that are inherited from a higher-level entity, group, or organization admin role. A UserLink that is updated to have an empty list of direct_roles will be deleted.", + "applyToProperty": { + "description": "Immutable. Resource name of the Subproperty that uses this filter.", + "type": "string" + }, + "filterClauses": { + "description": "Required. Unordered list. Filter clauses that define the SubpropertyEventFilter. All clauses are AND'ed together to determine what data is sent to the subproperty.", "items": { - "type": "string" + "$ref": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilterClause" }, "type": "array" }, - "emailAddress": { - "description": "Immutable. Email address of the user to link", - "type": "string" - }, "name": { - "description": "Output only. Example format: properties/1234/userLinks/5678", + "description": "Output only. Format: properties/{ordinary_property_id}/subpropertyEventFilters/{sub_property_event_filter} Example: properties/1234/subpropertyEventFilters/5678", "readOnly": true, "type": "string" } }, "type": "object" }, + "GoogleAnalyticsAdminV1alphaSubpropertyEventFilterClause": { + "description": "A clause for defining a filter. A filter may be inclusive (events satisfying the filter clause are included in the subproperty's data) or exclusive (events satisfying the filter clause are excluded from the subproperty's data).", + "id": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilterClause", + "properties": { + "filterClauseType": { + "description": "Required. The type for the filter clause.", + "enum": [ + "FILTER_CLAUSE_TYPE_UNSPECIFIED", + "INCLUDE", + "EXCLUDE" + ], + "enumDescriptions": [ + "Filter clause type unknown or not specified.", + "Events will be included in the Sub property if the filter clause is met.", + "Events will be excluded from the Sub property if the filter clause is met." + ], + "type": "string" + }, + "filterExpression": { + "$ref": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilterExpression", + "description": "Required. The logical expression for what events are sent to the subproperty." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaSubpropertyEventFilterCondition": { + "description": "A specific filter expression", + "id": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilterCondition", + "properties": { + "fieldName": { + "description": "Required. The field that is being filtered.", + "type": "string" + }, + "nullFilter": { + "description": "A filter for null values.", + "type": "boolean" + }, + "stringFilter": { + "$ref": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilterConditionStringFilter", + "description": "A filter for a string-type dimension that matches a particular pattern." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaSubpropertyEventFilterConditionStringFilter": { + "description": "A filter for a string-type dimension that matches a particular pattern.", + "id": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilterConditionStringFilter", + "properties": { + "caseSensitive": { + "description": "Optional. If true, the string value is case sensitive. If false, the match is case-insensitive.", + "type": "boolean" + }, + "matchType": { + "description": "Required. The match type for the string filter.", + "enum": [ + "MATCH_TYPE_UNSPECIFIED", + "EXACT", + "BEGINS_WITH", + "ENDS_WITH", + "CONTAINS", + "FULL_REGEXP", + "PARTIAL_REGEXP" + ], + "enumDescriptions": [ + "Match type unknown or not specified.", + "Exact match of the string value.", + "Begins with the string value.", + "Ends with the string value.", + "Contains the string value.", + "Full regular expression matches with the string value.", + "Partial regular expression matches with the string value." + ], + "type": "string" + }, + "value": { + "description": "Required. The string value used for the matching.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaSubpropertyEventFilterExpression": { + "description": "A logical expression of Subproperty event filters.", + "id": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilterExpression", + "properties": { + "filterCondition": { + "$ref": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilterCondition", + "description": "Creates a filter that matches a specific event. This cannot be set on the top level SubpropertyEventFilterExpression." + }, + "notExpression": { + "$ref": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilterExpression", + "description": "A filter expression to be NOT'ed (inverted, complemented). It can only include a filter. This cannot be set on the top level SubpropertyEventFilterExpression." + }, + "orGroup": { + "$ref": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilterExpressionList", + "description": "A list of expressions to OR\u2019ed together. Must only contain not_expression or filter_condition expressions." + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaSubpropertyEventFilterExpressionList": { + "description": "A list of Subproperty event filter expressions.", + "id": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilterExpressionList", + "properties": { + "filterExpressions": { + "description": "Required. Unordered list. A list of Subproperty event filter expressions", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaSubpropertyEventFilterExpression" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAnalyticsAdminV1alphaUpdateAccessBindingRequest": { + "description": "Request message for UpdateAccessBinding RPC.", + "id": "GoogleAnalyticsAdminV1alphaUpdateAccessBindingRequest", + "properties": { + "accessBinding": { + "$ref": "GoogleAnalyticsAdminV1alphaAccessBinding", + "description": "Required. The access binding to update." + } + }, + "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); } The JSON representation for `Empty` is empty JSON object `{}`.", + "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" diff --git a/etc/api/analyticsdata/v1beta/analyticsdata-api.json b/etc/api/analyticsdata/v1beta/analyticsdata-api.json index 22858ee4c4..72db9a6a45 100644 --- a/etc/api/analyticsdata/v1beta/analyticsdata-api.json +++ b/etc/api/analyticsdata/v1beta/analyticsdata-api.json @@ -15,7 +15,7 @@ "baseUrl": "https://analyticsdata.googleapis.com/", "batchPath": "batch", "canonicalName": "AnalyticsData", - "description": "Accesses report data in Google Analytics.", + "description": "Accesses report data in Google Analytics. Warning: Creating multiple Customer Applications, Accounts, or Projects to simulate or act as a single Customer Application, Account, or Project (respectively) or to circumvent Service-specific usage limits or quotas is a direct violation of Google Cloud Platform Terms of Service as well as Google APIs Terms of Service. These actions can result in immediate termination of your GCP project(s) without any warning. ", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/analytics/devguides/reporting/data/v1/", "fullyEncodeReservedExpansion": true, @@ -310,10 +310,137 @@ "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" + ] + } + } + } } } }, - "revision": "20230123", + "revision": "20240304", "rootUrl": "https://analyticsdata.googleapis.com/", "schemas": { "ActiveMetricRestriction": { @@ -344,6 +471,86 @@ }, "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", + "properties": {}, + "type": "object" + }, "BatchRunPivotReportsRequest": { "description": "The batch request containing multiple pivot report requests.", "id": "BatchRunPivotReportsRequest", @@ -602,7 +809,7 @@ "type": "object" }, "DateRange": { - "description": "A contiguous set of days: startDate, startDate + 1, ..., endDate. Requests are allowed up to 4 date ranges.", + "description": "A contiguous set of days: `startDate`, `startDate + 1`, ..., `endDate`. Requests are allowed up to 4 date ranges.", "id": "DateRange", "properties": { "endDate": { @@ -629,7 +836,7 @@ "description": "One dimension can be the result of an expression of multiple dimensions. For example, dimension \"country, city\": concatenate(country, \", \", city)." }, "name": { - "description": "The name of the dimension. See the [API Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#dimensions) for the list of dimension names. If `dimensionExpression` is specified, `name` can be any string that you would like within the allowed character set. For example if a `dimensionExpression` concatenates `country` and `city`, you could call that dimension `countryAndCity`. Dimension names that you choose must match the regular expression `^[a-zA-Z0-9_]$`. Dimensions are referenced by `name` in `dimensionFilter`, `orderBys`, `dimensionExpression`, and `pivots`.", + "description": "The name of the dimension. See the [API Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#dimensions) for the list of dimension names supported by core reporting methods such as `runReport` and `batchRunReports`. See [Realtime Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/realtime-api-schema#dimensions) for the list of dimension names supported by the `runRealtimeReport` method. See [Funnel Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/exploration-api-schema#dimensions) for the list of dimension names supported by the `runFunnelReport` method. If `dimensionExpression` is specified, `name` can be any string that you would like within the allowed character set. For example if a `dimensionExpression` concatenates `country` and `city`, you could call that dimension `countryAndCity`. Dimension names that you choose must match the regular expression `^[a-zA-Z0-9_]$`. Dimensions are referenced by `name` in `dimensionFilter`, `orderBys`, `dimensionExpression`, and `pivots`.", "type": "string" } }, @@ -703,7 +910,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": { @@ -844,8 +1051,26 @@ }, "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 and metrics currently accepted in reporting methods.", + "description": "The dimensions, metrics and comparisons currently accepted in reporting methods.", "id": "Metadata", "properties": { "dimensions": { @@ -882,7 +1107,7 @@ "type": "boolean" }, "name": { - "description": "The name of the metric. See the [API Metrics](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#metrics) for the list of metric names. If `expression` is specified, `name` can be any string that you would like within the allowed character set. For example if `expression` is `screenPageViews/sessions`, you could call that metric's name = `viewsPerSession`. Metric names that you choose must match the regular expression `^[a-zA-Z0-9_]$`. Metrics are referenced by `name` in `metricFilter`, `orderBys`, and metric `expression`.", + "description": "The name of the metric. See the [API Metrics](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#metrics) for the list of metric names supported by core reporting methods such as `runReport` and `batchRunReports`. See [Realtime Metrics](https://developers.google.com/analytics/devguides/reporting/data/v1/realtime-api-schema#metrics) for the list of metric names supported by the `runRealtimeReport` method. See [Funnel Metrics](https://developers.google.com/analytics/devguides/reporting/data/v1/exploration-api-schema#metrics) for the list of metric names supported by the `runFunnelReport` method. If `expression` is specified, `name` can be any string that you would like within the allowed character set. For example if `expression` is `screenPageViews/sessions`, you could call that metric's name = `viewsPerSession`. Metric names that you choose must match the regular expression `^[a-zA-Z0-9_]$`. Metrics are referenced by `name` in `metricFilter`, `orderBys`, and metric `expression`.", "type": "string" } }, @@ -1070,7 +1295,7 @@ "type": "object" }, "MinuteRange": { - "description": "A contiguous set of minutes: startMinutesAgo, startMinutesAgo + 1, ..., endMinutesAgo. Requests are allowed up to 2 minute ranges.", + "description": "A contiguous set of minutes: `startMinutesAgo`, `startMinutesAgo + 1`, ..., `endMinutesAgo`. Requests are allowed up to 2 minute ranges.", "id": "MinuteRange", "properties": { "endMinutesAgo": { @@ -1138,6 +1363,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", @@ -1173,7 +1433,7 @@ "type": "array" }, "limit": { - "description": "The number of unique combinations of dimension values to return in this pivot. The `limit` parameter is required. A `limit` of 10,000 is common for single pivot requests. The product of the `limit` for each `pivot` in a `RunPivotReportRequest` must not exceed 100,000. For example, a two pivot request with `limit: 1000` in each pivot will fail because the product is `1,000,000`.", + "description": "The number of unique combinations of dimension values to return in this pivot. The `limit` parameter is required. A `limit` of 10,000 is common for single pivot requests. The product of the `limit` for each `pivot` in a `RunPivotReportRequest` must not exceed 250,000. For example, a two pivot request with `limit: 1000` in each pivot will fail because the product is `1,000,000`.", "format": "int64", "type": "string" }, @@ -1297,15 +1557,55 @@ }, "tokensPerDay": { "$ref": "QuotaStatus", - "description": "Standard Analytics Properties can use up to 25,000 tokens per day; Analytics 360 Properties can use 250,000 tokens per day. Most requests consume fewer than 10 tokens." + "description": "Standard Analytics Properties can use up to 200,000 tokens per day; Analytics 360 Properties can use 2,000,000 tokens per day. Most requests consume fewer than 10 tokens." }, "tokensPerHour": { "$ref": "QuotaStatus", - "description": "Standard Analytics Properties can use up to 5,000 tokens per hour; Analytics 360 Properties can use 50,000 tokens per hour. An API request consumes a single number of tokens, and that number is deducted from all of the hourly, daily, and per project hourly quotas." + "description": "Standard Analytics Properties can use up to 40,000 tokens per hour; Analytics 360 Properties can use 400,000 tokens per hour. An API request consumes a single number of tokens, and that number is deducted from all of the hourly, daily, and per project hourly quotas." }, "tokensPerProjectPerHour": { "$ref": "QuotaStatus", - "description": "Analytics Properties can use up to 25% of their tokens per project per hour. This amounts to standard Analytics Properties can use up to 1,250 tokens per project per hour, and Analytics 360 Properties can use 12,500 tokens per project per hour. An API request consumes a single number of tokens, and that number is deducted from all of the hourly, daily, and per project hourly quotas." + "description": "Analytics Properties can use up to 35% of their tokens per project per hour. This amounts to standard Analytics Properties can use up to 14,000 tokens per project per hour, and Analytics 360 Properties can use 140,000 tokens per project per hour. An API request consumes a single number of tokens, and that number is deducted from all of the hourly, daily, and per project hourly quotas." + } + }, + "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" @@ -1336,19 +1636,26 @@ "type": "string" }, "dataLossFromOtherRow": { - "description": "If true, indicates some buckets of dimension combinations are rolled into \"(other)\" row. This can happen for high cardinality reports.", + "description": "If true, indicates some buckets of dimension combinations are rolled into \"(other)\" row. This can happen for high cardinality reports. The metadata parameter dataLossFromOtherRow is populated based on the aggregated data table used in the report. The parameter will be accurately populated regardless of the filters and limits in the report. For example, the (other) row could be dropped from the report because the request contains a filter on sessionSource = google. This parameter will still be populated if data loss from other row was present in the input aggregate data used to generate this report. To learn more, see [About the (other) row and data sampling](https://support.google.com/analytics/answer/13208658#reports).", "type": "boolean" }, "emptyReason": { "description": "If empty reason is specified, the report is empty for this reason.", "type": "string" }, + "samplingMetadatas": { + "description": "If this report results is [sampled](https://support.google.com/analytics/answer/13331292), this describes the percentage of events used in this report. One `samplingMetadatas` is populated for each date range. Each `samplingMetadatas` corresponds to a date range in order that date ranges were specified in the request. However if the results are not sampled, this field will not be defined.", + "items": { + "$ref": "SamplingMetadata" + }, + "type": "array" + }, "schemaRestrictionResponse": { "$ref": "SchemaRestrictionResponse", "description": "Describes the schema restrictions actively enforced in creating this report. To learn more, see [Access and data-restriction management](https://support.google.com/analytics/answer/10851388)." }, "subjectToThresholding": { - "description": "If `subjectToThresholding` is true, this report is subject to thresholding and only returns data that meets the minimum aggregation thresholds. It is possible for a request to be subject to thresholding thresholding and no data is absent from the report, and this happens when all data is above the thresholds. To learn more, see [Data thresholds](https://support.google.com/analytics/answer/9383630) and [About Demographics and Interests](https://support.google.com/analytics/answer/2799357).", + "description": "If `subjectToThresholding` is true, this report is subject to thresholding and only returns data that meets the minimum aggregation thresholds. It is possible for a request to be subject to thresholding thresholding and no data is absent from the report, and this happens when all data is above the thresholds. To learn more, see [Data thresholds](https://support.google.com/analytics/answer/9383630).", "type": "boolean" }, "timeZone": { @@ -1410,7 +1717,7 @@ "type": "array" }, "keepEmptyRows": { - "description": "If false or unspecified, each row with all metrics equal to 0 will not be returned. If true, these rows will be returned if they are not separately removed by a filter.", + "description": "If false or unspecified, each row with all metrics equal to 0 will not be returned. If true, these rows will be returned if they are not separately removed by a filter. Regardless of this `keep_empty_rows` setting, only data recorded by the Google Analytics (GA4) property can be displayed in a report. For example if a property never logs a `purchase` event, then a query for the `eventName` dimension and `eventCount` metric will not have a row eventName: \"purchase\" and eventCount: 0.", "type": "boolean" }, "metricFilter": { @@ -1512,7 +1819,7 @@ "type": "array" }, "limit": { - "description": "The number of rows to return. If unspecified, 10,000 rows are returned. The API returns a maximum of 100,000 rows per request, no matter how many you ask for. `limit` must be positive. The API can also return fewer rows than the requested `limit`, if there aren't as many dimension values as the `limit`. For instance, there are fewer than 300 possible values for the dimension `country`, so when reporting on only `country`, you can't get more than 300 rows, even if you set `limit` to a higher value.", + "description": "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`. For instance, there are fewer than 300 possible values for the dimension `country`, so when reporting on only `country`, you can't get more than 300 rows, even if you set `limit` to a higher value.", "format": "int64", "type": "string" }, @@ -1652,7 +1959,7 @@ }, "dimensionFilter": { "$ref": "FilterExpression", - "description": "Dimension filters allow you to ask for only specific dimension values in the report. To learn more, see [Fundamentals of Dimension Filters](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#dimension_filters) for examples. Metrics cannot be used in this filter." + "description": "Dimension filters let you ask for only specific dimension values in the report. To learn more, see [Fundamentals of Dimension Filters](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#dimension_filters) for examples. Metrics cannot be used in this filter." }, "dimensions": { "description": "The dimensions requested and displayed.", @@ -1662,11 +1969,11 @@ "type": "array" }, "keepEmptyRows": { - "description": "If false or unspecified, each row with all metrics equal to 0 will not be returned. If true, these rows will be returned if they are not separately removed by a filter.", + "description": "If false or unspecified, each row with all metrics equal to 0 will not be returned. If true, these rows will be returned if they are not separately removed by a filter. Regardless of this `keep_empty_rows` setting, only data recorded by the Google Analytics (GA4) property can be displayed in a report. For example if a property never logs a `purchase` event, then a query for the `eventName` dimension and `eventCount` metric will not have a row eventName: \"purchase\" and eventCount: 0.", "type": "boolean" }, "limit": { - "description": "The number of rows to return. If unspecified, 10,000 rows are returned. The API returns a maximum of 100,000 rows per request, no matter how many you ask for. `limit` must be positive. The API can also return fewer rows than the requested `limit`, if there aren't as many dimension values as the `limit`. For instance, there are fewer than 300 possible values for the dimension `country`, so when reporting on only `country`, you can't get more than 300 rows, even if you set `limit` to a higher value. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).", + "description": "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`. For instance, there are fewer than 300 possible values for the dimension `country`, so when reporting on only `country`, you can't get more than 300 rows, even if you set `limit` to a higher value. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).", "format": "int64", "type": "string" }, @@ -1791,6 +2098,23 @@ }, "type": "object" }, + "SamplingMetadata": { + "description": "If this report results is [sampled](https://support.google.com/analytics/answer/13331292), this describes the percentage of events used in this report. Sampling is the practice of analyzing a subset of all data in order to uncover the meaningful information in the larger data set.", + "id": "SamplingMetadata", + "properties": { + "samplesReadCount": { + "description": "The total number of events read in this sampled report for a date range. This is the size of the subset this property's data that was analyzed in this report.", + "format": "int64", + "type": "string" + }, + "samplingSpaceSize": { + "description": "The total number of events present in this property's data that could have been analyzed in this report for a date range. Sampling uncovers the meaningful information about the larger data set, and this is the size of the larger data set. To calculate the percentage of available data that was used in this report, compute `samplesReadCount/samplingSpaceSize`.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "SchemaRestrictionResponse": { "description": "The schema restrictions actively enforced in creating this report. To learn more, see [Access and data-restriction management](https://support.google.com/analytics/answer/10851388).", "id": "SchemaRestrictionResponse", @@ -1805,6 +2129,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", @@ -1841,6 +2192,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" } }, "servicePath": "", diff --git a/etc/api/analyticsreporting/v4/analyticsreporting-api.json b/etc/api/analyticsreporting/v4/analyticsreporting-api.json index f16c4b2301..72cbeafea5 100644 --- a/etc/api/analyticsreporting/v4/analyticsreporting-api.json +++ b/etc/api/analyticsreporting/v4/analyticsreporting-api.json @@ -155,7 +155,7 @@ } } }, - "revision": "20221104", + "revision": "20240123", "rootUrl": "https://analyticsreporting.googleapis.com/", "schemas": { "Activity": { diff --git a/etc/api/androiddeviceprovisioning/v1/androiddeviceprovisioning-api.json b/etc/api/androiddeviceprovisioning/v1/androiddeviceprovisioning-api.json index f3a3b03440..116fa23bce 100644 --- a/etc/api/androiddeviceprovisioning/v1/androiddeviceprovisioning-api.json +++ b/etc/api/androiddeviceprovisioning/v1/androiddeviceprovisioning-api.json @@ -631,6 +631,32 @@ "$ref": "Device" } }, + "getSimLockState": { + "description": "Gets a device's SIM lock state.", + "flatPath": "v1/partners/{partnersId}/devices:getSimLockState", + "httpMethod": "POST", + "id": "androiddeviceprovisioning.partners.devices.getSimLockState", + "parameterOrder": [ + "partnerId" + ], + "parameters": { + "partnerId": { + "description": "Required. The ID of the partner.", + "format": "int64", + "location": "path", + "pattern": "^[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/partners/{+partnerId}/devices:getSimLockState", + "request": { + "$ref": "GetDeviceSimLockStateRequest" + }, + "response": { + "$ref": "GetDeviceSimLockStateResponse" + } + }, "metadata": { "description": "Updates reseller metadata associated with the device. Android devices only.", "flatPath": "v1/partners/{partnersId}/devices/{devicesId}/metadata", @@ -825,13 +851,18 @@ } } }, - "revision": "20230115", + "revision": "20240304", "rootUrl": "https://androiddeviceprovisioning.googleapis.com/", "schemas": { "ClaimDeviceRequest": { "description": "Request message to claim a device on behalf of a customer.", "id": "ClaimDeviceRequest", "properties": { + "configurationId": { + "description": "Optional. The ID of the configuration applied to the device section.", + "format": "int64", + "type": "string" + }, "customerId": { "description": "The ID of the customer for whom the device is being claimed.", "format": "int64", @@ -868,7 +899,7 @@ "type": "string" }, "simlockProfileId": { - "description": "Optional. Must and can only be set when DeviceProvisioningSectionType is SECTION_TYPE_SIM_LOCK. The unique identifier of the SimLock profile (go/simlock/profiles).", + "description": "Optional. Must and can only be set when DeviceProvisioningSectionType is SECTION_TYPE_SIM_LOCK. The unique identifier of the SimLock profile.", "format": "int64", "type": "string" } @@ -1009,6 +1040,11 @@ "description": "Required. The resource name of the selected DPC (device policy controller) in the format `customers/[CUSTOMER_ID]/dpcs/*`. To list the supported DPCs, call `customers.dpcs.list`.", "type": "string" }, + "forcedResetTime": { + "description": "Optional. The timeout before forcing factory reset the device if the device doesn't go through provisioning in the setup wizard, usually due to lack of network connectivity during setup wizard. Ranges from 0-6 hours, with 2 hours being the default if unset.", + "format": "google-duration", + "type": "string" + }, "isDefault": { "description": "Required. Whether this is the default configuration that zero-touch enrollment applies to any new devices the organization purchases in the future. Only one customer configuration can be the default. Setting this value to `true`, changes the previous default configuration's `isDefault` value to `false`.", "type": "boolean" @@ -1495,6 +1531,39 @@ }, "type": "object" }, + "GetDeviceSimLockStateRequest": { + "description": "Request to get a device's SIM lock status.", + "id": "GetDeviceSimLockStateRequest", + "properties": { + "deviceIdentifier": { + "$ref": "DeviceIdentifier", + "description": "Required. Required. The device identifier to search for." + } + }, + "type": "object" + }, + "GetDeviceSimLockStateResponse": { + "description": "Response containing a device's SimLock state.", + "id": "GetDeviceSimLockStateResponse", + "properties": { + "simLockState": { + "enum": [ + "SIM_LOCK_STATE_UNSPECIFIED", + "UNLOCKED", + "LOCKED_TO_PARTNER", + "LOCKED_TO_OTHER_PARTNER" + ], + "enumDescriptions": [ + "Invalid code. Shouldn't be used.", + "Device is not SIM locked.", + "Device is SIM locked to the partner querying SIM lock state.", + "Device is SIM locked to a different partner." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleWorkspaceAccount": { "description": "A Google Workspace customer.", "id": "GoogleWorkspaceAccount", @@ -1645,6 +1714,11 @@ "description": "Identifies one claim request.", "id": "PartnerClaim", "properties": { + "configurationId": { + "description": "Optional. The ID of the configuration applied to the device section.", + "format": "int64", + "type": "string" + }, "customerId": { "description": "The ID of the customer for whom the device is being claimed.", "format": "int64", @@ -1679,6 +1753,11 @@ "Zero-touch enrollment section type." ], "type": "string" + }, + "simlockProfileId": { + "description": "Optional. Must and can only be set when DeviceProvisioningSectionType is SECTION_TYPE_SIM_LOCK. The unique identifier of the SimLock profile.", + "format": "int64", + "type": "string" } }, "type": "object" @@ -1752,7 +1831,8 @@ "SINGLE_DEVICE_STATUS_INVALID_SECTION_TYPE", "SINGLE_DEVICE_STATUS_SECTION_NOT_YOURS", "SINGLE_DEVICE_STATUS_INVALID_TOKEN", - "SINGLE_DEVICE_STATUS_REVOKED_TOKEN" + "SINGLE_DEVICE_STATUS_REVOKED_TOKEN", + "SINGLE_DEVICE_STATUS_DEVICE_LIMIT_EXCEEDED" ], "enumDescriptions": [ "Invalid code. Shouldn't be used.", @@ -1764,7 +1844,8 @@ "Invalid section type.", "This section is claimed by another company.", "Invalid pre-provisioning token.", - "Revoked pre-provisioning token." + "Revoked pre-provisioning token.", + "Status used to indicate a failure due to a device limit being exceeded" ], "type": "string" } diff --git a/etc/api/androidenterprise/v1/androidenterprise-api.json b/etc/api/androidenterprise/v1/androidenterprise-api.json index 1d99e81f45..7d6ae34684 100644 --- a/etc/api/androidenterprise/v1/androidenterprise-api.json +++ b/etc/api/androidenterprise/v1/androidenterprise-api.json @@ -987,7 +987,7 @@ "installs": { "methods": { "delete": { - "description": "Requests to remove an app from a device. A call to get or list will still show the app as installed on the device until it is actually removed.", + "description": "Requests to remove an app from a device. A call to get or list will still show the app as installed on the device until it is actually removed. A successful response indicates that a removal request has been sent to the device. The call will be considered successful even if the app is not present on the device (e.g. it was never installed, or was removed by the user).", "flatPath": "androidenterprise/v1/enterprises/{enterpriseId}/users/{userId}/devices/{deviceId}/installs/{installId}", "httpMethod": "DELETE", "id": "androidenterprise.installs.delete", @@ -2649,7 +2649,7 @@ } } }, - "revision": "20230123", + "revision": "20240304", "rootUrl": "https://androidenterprise.googleapis.com/", "schemas": { "Administrator": { @@ -2975,6 +2975,11 @@ "description": "True if this version is a production APK.", "type": "boolean" }, + "targetSdkVersion": { + "description": "The SDK version this app targets, as specified in the manifest of the APK. See http://developer.android.com/guide/topics/manifest/uses-sdk-element.html", + "format": "int32", + "type": "integer" + }, "track": { "description": "Deprecated, use trackId instead.", "enum": [ @@ -3092,7 +3097,7 @@ "type": "array" }, "autoInstallMode": { - "description": "The auto-install mode. If unset defaults to \"doNotAutoInstall\".", + "description": "The auto-install mode. If unset, defaults to \"doNotAutoInstall\". An app is automatically installed regardless of a set maintenance window.", "enum": [ "autoInstallModeUnspecified", "doNotAutoInstall", @@ -3157,6 +3162,18 @@ "description": "The Google Play Services Android ID for the device encoded as a lowercase hex string. For example, \"123456789abcdef0\".", "type": "string" }, + "device": { + "description": "The internal hardware codename of the device. This comes from android.os.Build.DEVICE. (field named \"device\" per logs/wireless/android/android_checkin.proto)", + "type": "string" + }, + "latestBuildFingerprint": { + "description": "The build fingerprint of the device if known.", + "type": "string" + }, + "maker": { + "description": "The manufacturer of the device. This comes from android.os.Build.MANUFACTURER.", + "type": "string" + }, "managementType": { "description": "Identifies the extent to which the device is controlled by a managed Google Play EMM in various deployment configurations. Possible values include: - \"managedDevice\", a device that has the EMM's device policy controller (DPC) as the device owner. - \"managedProfile\", a device that has a profile managed by the DPC (DPC is profile owner) in addition to a separate, personal profile that is unavailable to the DPC. - \"containerApp\", no longer used (deprecated). - \"unmanagedProfile\", a device that has been allowed (by the domain's admin, using the Admin Console to enable the privilege) to use managed Google Play, but the profile is itself not owned by a DPC. ", "enum": [ @@ -3173,13 +3190,30 @@ ], "type": "string" }, + "model": { + "description": "The model name of the device. This comes from android.os.Build.MODEL.", + "type": "string" + }, "policy": { "$ref": "Policy", "description": "The policy enforced on the device." }, + "product": { + "description": "The product name of the device. This comes from android.os.Build.PRODUCT.", + "type": "string" + }, "report": { "$ref": "DeviceReport", "description": "The device report updated with the latest app states." + }, + "retailBrand": { + "description": "Retail brand for the device, if set. See android.os.Build.BRAND", + "type": "string" + }, + "sdkVersion": { + "description": "API compatibility version.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -3975,7 +4009,8 @@ "id": "Policy", "properties": { "autoUpdatePolicy": { - "description": "Recommended alternative: autoUpdateMode which is set per app, provides greater flexibility around update frequency. When autoUpdateMode is set to AUTO_UPDATE_POSTPONED or AUTO_UPDATE_HIGH_PRIORITY, this field has no effect. \"choiceToTheUser\" allows the device's user to configure the app update policy. \"always\" enables auto updates. \"never\" disables auto updates. \"wifiOnly\" enables auto updates only when the device is connected to wifi.", + "deprecated": true, + "description": "Controls when automatic app updates on the device can be applied. Recommended alternative: autoUpdateMode which is set per app, provides greater flexibility around update frequency. When autoUpdateMode is set to AUTO_UPDATE_POSTPONED or AUTO_UPDATE_HIGH_PRIORITY, autoUpdatePolicy has no effect. \"choiceToTheUser\" allows the device's user to configure the app update policy. \"always\" enables auto updates. \"never\" disables auto updates. \"wifiOnly\" enables auto updates only when the device is connected to wifi.", "enum": [ "autoUpdatePolicyUnspecified", "choiceToTheUser", @@ -4145,6 +4180,10 @@ }, "type": "array" }, + "fullDescription": { + "description": "The localized full app store description, if available.", + "type": "string" + }, "iconUrl": { "description": "A link to an image that can be used as an icon for the product. This image is suitable for use at up to 512px x 512px.", "type": "string" @@ -4322,7 +4361,7 @@ "description": "The auto-install policy for the product." }, "autoUpdateMode": { - "description": "The auto-update mode for the product.", + "description": "The auto-update mode for the product. When autoUpdateMode is used, it always takes precedence over the user's choice. So when a user makes changes to the device settings manually, these changes are ignored.", "enum": [ "autoUpdateModeUnspecified", "autoUpdateDefault", @@ -4338,7 +4377,7 @@ "type": "string" }, "enterpriseAuthenticationAppLinkConfigs": { - "description": "An authentication URL configuration for the authenticator app of an identity provider. This helps to launch the identity provider's authenticator app during the authentication happening in a private app using Android WebView. Authenticator app should already be the [default handler](https://developer.android.com/training/app-links/verify-site-associations) for the authentication url on the device.", + "description": "An authentication URL configuration for the authenticator app of an identity provider. This helps to launch the identity provider's authenticator app during the authentication happening in a private app using Android WebView. Authenticator app should already be the default handler for the authentication url on the device.", "items": { "$ref": "EnterpriseAuthenticationAppLinkConfig" }, diff --git a/etc/api/androidmanagement/v1/androidmanagement-api.json b/etc/api/androidmanagement/v1/androidmanagement-api.json index 42da249bec..18a1100186 100644 --- a/etc/api/androidmanagement/v1/androidmanagement-api.json +++ b/etc/api/androidmanagement/v1/androidmanagement-api.json @@ -108,13 +108,14 @@ "enterprises": { "methods": { "create": { - "description": "Creates an enterprise. This is the last step in the enterprise signup flow.", + "description": "Creates an enterprise. This is the last step in the enterprise signup flow. See also: SigninDetail", "flatPath": "v1/enterprises", "httpMethod": "POST", "id": "androidmanagement.enterprises.create", "parameterOrder": [], "parameters": { "agreementAccepted": { + "deprecated": true, "description": "Whether the enterprise admin has seen and agreed to the managed Google Play Agreement (https://www.android.com/enterprise/terms/). Do not set this field for any customer-managed enterprise (https://developers.google.com/android/management/create-enterprise#customer-managed_enterprises). Set this to field to true for all EMM-managed enterprises (https://developers.google.com/android/management/create-enterprise#emm-managed_enterprises).", "location": "query", "type": "boolean" @@ -147,7 +148,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", @@ -242,7 +243,7 @@ ] }, "patch": { - "description": "Updates an enterprise.", + "description": "Updates an enterprise. See also: SigninDetail", "flatPath": "v1/enterprises/{enterprisesId}", "httpMethod": "PATCH", "id": "androidmanagement.enterprises.patch", @@ -511,31 +512,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}", @@ -562,7 +538,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as \"/v1/{name=users/*}/operations\" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.", "flatPath": "v1/enterprises/{enterprisesId}/devices/{devicesId}/operations", "httpMethod": "GET", "id": "androidmanagement.enterprises.devices.operations.list", @@ -724,6 +700,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": { @@ -1034,6 +1103,35 @@ } } }, + "provisioningInfo": { + "methods": { + "get": { + "description": "Get the device provisioning information by the identifier provided in the sign-in url.", + "flatPath": "v1/provisioningInfo/{provisioningInfoId}", + "httpMethod": "GET", + "id": "androidmanagement.provisioningInfo.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The identifier that Android Device Policy passes to the 3P sign-in page in the form of provisioningInfo/{provisioning_info}.", + "location": "path", + "pattern": "^provisioningInfo/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ProvisioningInfo" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidmanagement" + ] + } + } + }, "signupUrls": { "methods": { "create": { @@ -1065,7 +1163,7 @@ } } }, - "revision": "20230119", + "revision": "20240221", "rootUrl": "https://androidmanagement.googleapis.com/", "schemas": { "AdbShellCommandEvent": { @@ -1086,7 +1184,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": { @@ -1131,6 +1229,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": { @@ -1173,6 +1287,7 @@ "type": "object" }, "ApiLevelCondition": { + "deprecated": true, "description": "A compliance rule condition which is satisfied if the Android Framework API level on the device doesn't meet a minimum requirement. There can only be one rule with this type of condition per policy.", "id": "ApiLevelCondition", "properties": { @@ -1503,7 +1618,7 @@ "type": "object" }, "ApplicationPolicy": { - "description": "Policy for an individual app.", + "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": { @@ -1537,7 +1652,7 @@ ], "enumDescriptions": [ "Unspecified. Defaults to AUTO_UPDATE_DEFAULT.", - "The app is automatically updated with low priority to minimize the impact on the user.The app is updated when all of the following constraints are met: The device is not actively used. The device is connected to an unmetered network. The device is charging.The device is notified about a new update within 24 hours after it is published by the developer, after which the app is updated the next time the constraints above are met.", + "The default update mode.The app is automatically updated with low priority to minimize the impact on the user.The app is updated when all of the following constraints are met: The device is not actively used. The device is connected to an unmetered network. The device is charging. The app to be updated is not running in the foreground.The device is notified about a new update within 24 hours after it is published by the developer, after which the app is updated the next time the constraints above are met.", "The app is not automatically updated for a maximum of 90 days after the app becomes out of date.90 days after the app becomes out of date, the latest available version is installed automatically with low priority (see AUTO_UPDATE_DEFAULT). After the app is updated it is not automatically updated again until 90 days after it becomes out of date again.The user can still manually update the app from the Play Store at any time.", "The app is updated as soon as possible. No constraints are applied.The device is notified immediately about a new update after it becomes available." ], @@ -1557,6 +1672,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": [ @@ -1568,13 +1695,13 @@ "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" }, "delegatedScopes": { - "description": "The scopes delegated to the app from Android Device Policy.", + "description": "The scopes delegated to the app from Android Device Policy. These provide additional privileges for the applications they are applied to.", "items": { "enum": [ "DELEGATED_SCOPE_UNSPECIFIED", @@ -1585,7 +1712,8 @@ "PACKAGE_ACCESS", "ENABLE_SYSTEM_APP", "NETWORK_ACTIVITY_LOGS", - "SECURITY_LOGS" + "SECURITY_LOGS", + "CERT_SELECTION" ], "enumDescriptions": [ "No delegation scope specified.", @@ -1596,7 +1724,8 @@ "Grants access to package access state.", "Grants access for enabling system apps.", "Grants access to network activity logs. Allows the delegated application to call setNetworkLoggingEnabled (https://developer.android.com/reference/android/app/admin/DevicePolicyManager#setNetworkLoggingEnabled%28android.content.ComponentName,%20boolean%29), isNetworkLoggingEnabled (https://developer.android.com/reference/android/app/admin/DevicePolicyManager#isNetworkLoggingEnabled%28android.content.ComponentName%29) and retrieveNetworkLogs (https://developer.android.com/reference/android/app/admin/DevicePolicyManager#retrieveNetworkLogs%28android.content.ComponentName,%20long%29) methods. This scope can be delegated to at most one application. Supported for fully managed devices on Android 10 and above. Supported for a work profile on Android 12 and above. When delegation is supported and set, NETWORK_ACTIVITY_LOGS is ignored.", - "Grants access to security logs. Allows the delegated application to call setSecurityLoggingEnabled (https://developer.android.com/reference/android/app/admin/DevicePolicyManager#setSecurityLoggingEnabled%28android.content.ComponentName,%20boolean%29), isSecurityLoggingEnabled (https://developer.android.com/reference/android/app/admin/DevicePolicyManager#isSecurityLoggingEnabled%28android.content.ComponentName%29), retrieveSecurityLogs (https://developer.android.com/reference/android/app/admin/DevicePolicyManager#retrieveSecurityLogs%28android.content.ComponentName%29) and retrievePreRebootSecurityLogs (https://developer.android.com/reference/android/app/admin/DevicePolicyManager#retrievePreRebootSecurityLogs%28android.content.ComponentName%29) methods. This scope can be delegated to at most one application. Supported for fully managed devices and company-owned devices with a work profile on Android 12 and above. When delegation is supported and set, SECURITY_LOGS is ignored." + "Grants access to security logs. Allows the delegated application to call setSecurityLoggingEnabled (https://developer.android.com/reference/android/app/admin/DevicePolicyManager#setSecurityLoggingEnabled%28android.content.ComponentName,%20boolean%29), isSecurityLoggingEnabled (https://developer.android.com/reference/android/app/admin/DevicePolicyManager#isSecurityLoggingEnabled%28android.content.ComponentName%29), retrieveSecurityLogs (https://developer.android.com/reference/android/app/admin/DevicePolicyManager#retrieveSecurityLogs%28android.content.ComponentName%29) and retrievePreRebootSecurityLogs (https://developer.android.com/reference/android/app/admin/DevicePolicyManager#retrievePreRebootSecurityLogs%28android.content.ComponentName%29) methods. This scope can be delegated to at most one application. Supported for fully managed devices and company-owned devices with a work profile on Android 12 and above. When delegation is supported and set, SECURITY_LOGS is ignored.", + "Grants access to selection of KeyChain certificates on behalf of requesting apps. Once granted, the delegated application will start receiving DelegatedAdminReceiver#onChoosePrivateKeyAlias (https://developer.android.com/reference/android/app/admin/DelegatedAdminReceiver#onChoosePrivateKeyAlias%28android.content.Context,%20android.content.Intent,%20int,%20android.net.Uri,%20java.lang.String%29). Allows the delegated application to call grantKeyPairToApp (https://developer.android.com/reference/android/app/admin/DevicePolicyManager#grantKeyPairToApp%28android.content.ComponentName,%20java.lang.String,%20java.lang.String%29) and revokeKeyPairFromApp (https://developer.android.com/reference/android/app/admin/DevicePolicyManager#revokeKeyPairFromApp%28android.content.ComponentName,%20java.lang.String,%20java.lang.String%29) methods. There can be at most one app that has this delegation. choosePrivateKeyRules must be empty and privateKeySelectionEnabled has no effect if certificate selection is delegated to an application." ], "type": "string" }, @@ -1610,6 +1739,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": [ @@ -1624,8 +1765,8 @@ "enumDescriptions": [ "Unspecified. Defaults to AVAILABLE.", "The app is automatically installed and can be removed by the user.", - "The app is automatically installed and can't be removed by the user.", - "The app is blocked and can't be installed. If the app was installed under a previous policy, it will be uninstalled.", + "The app is automatically installed regardless of a set maintenance window and can't be removed by the user.", + "The app is blocked and can't be installed. If the app was installed under a previous policy, it will be uninstalled. This also blocks its instant app functionality.", "The app is available to install.", "The app is automatically installed and can't be removed by the user and will prevent setup from completion until installation is complete.", "The app is automatically installed in kiosk mode: it's set as the preferred home intent and whitelisted for lock task mode. Device setup won't complete until the app is installed. After installation, users won't be able to remove the app. You can only set this installType for one app per policy. When this is present in the policy, status bar will be automatically disabled." @@ -1633,6 +1774,7 @@ "type": "string" }, "lockTaskAllowed": { + "deprecated": true, "description": "Whether the app is allowed to lock itself in full-screen mode. DEPRECATED. Use InstallType KIOSK or kioskCustomLauncherEnabled to configure a dedicated device.", "type": "boolean" }, @@ -1752,6 +1894,20 @@ ], "type": "string" }, + "userFacingType": { + "description": "Whether the app is user facing.", + "enum": [ + "USER_FACING_TYPE_UNSPECIFIED", + "NOT_USER_FACING", + "USER_FACING" + ], + "enumDescriptions": [ + "App user facing type is unspecified.", + "App is not user facing.", + "App is user facing." + ], + "type": "string" + }, "versionCode": { "description": "The app version code, which can be used to determine whether one version is more recent than another.", "format": "int32", @@ -1973,7 +2129,7 @@ "type": "string" }, "newPassword": { - "description": "For commands of type RESET_PASSWORD, optionally specifies the new password.", + "description": "For commands of type RESET_PASSWORD, optionally specifies the new password. Note: The new password must be at least 6 characters long if it is numeric in case of Android 14 devices. Else the command will fail with INVALID_VALUE.", "type": "string" }, "resetPasswordFlags": { @@ -1995,6 +2151,24 @@ }, "type": "array" }, + "startLostModeParams": { + "$ref": "StartLostModeParams", + "description": "Parameters for the START_LOST_MODE command to put the device into lost mode. See StartLostModeParams. If this is set, then it is suggested that type should not be set. In this case, the server automatically sets it to START_LOST_MODE. It is also acceptable to explicitly set type to START_LOST_MODE." + }, + "startLostModeStatus": { + "$ref": "StartLostModeStatus", + "description": "Output only. Status of the START_LOST_MODE command to put the device into lost mode. See StartLostModeStatus.", + "readOnly": true + }, + "stopLostModeParams": { + "$ref": "StopLostModeParams", + "description": "Parameters for the STOP_LOST_MODE command to take the device out of lost mode. See StopLostModeParams. If this is set, then it is suggested that type should not be set. In this case, the server automatically sets it to STOP_LOST_MODE. It is also acceptable to explicitly set type to STOP_LOST_MODE." + }, + "stopLostModeStatus": { + "$ref": "StopLostModeStatus", + "description": "Output only. Status of the STOP_LOST_MODE command to take the device out of lost mode. See StopLostModeStatus.", + "readOnly": true + }, "type": { "description": "The type of the command.", "enum": [ @@ -2003,7 +2177,9 @@ "RESET_PASSWORD", "REBOOT", "RELINQUISH_OWNERSHIP", - "CLEAR_APP_DATA" + "CLEAR_APP_DATA", + "START_LOST_MODE", + "STOP_LOST_MODE" ], "enumDescriptions": [ "This value is disallowed.", @@ -2011,7 +2187,9 @@ "Reset the user's password.", "Reboot the device. Only supported on fully managed devices running Android 7.0 (API level 24) or higher.", "Removes the work profile and all policies from a company-owned Android 8.0+ device, relinquishing the device for personal use. Apps and data associated with the personal profile(s) are preserved. The device will be deleted from the server after it acknowledges the command.", - "Clears the application data of specified apps. This is supported on Android 9 and above. Note that an application can store data outside of its application data, for example in external storage or in a user dictionary. See also clear_apps_data_params." + "Clears the application data of specified apps. This is supported on Android 9 and above. Note that an application can store data outside of its application data, for example in external storage or in a user dictionary. See also clear_apps_data_params.", + "Puts the device into lost mode. Only supported on fully managed devices or organization-owned devices with a managed profile. See also start_lost_mode_params.", + "Takes the device out of lost mode. Only supported on fully managed devices or organization-owned devices with a managed profile. See also stop_lost_mode_params." ], "type": "string" }, @@ -2044,6 +2222,7 @@ "type": "object" }, "ComplianceRule": { + "deprecated": true, "description": "A rule declaring which mitigating actions to take when a device is not compliant with its policy. For every rule, there is always an implicit mitigating action to set policy_compliant to false for the Device resource, and display a message on the device indicating that the device is not compliant with its policy. Other mitigating actions may optionally be taken as well, depending on the field values in the rule.", "id": "ComplianceRule", "properties": { @@ -2147,7 +2326,7 @@ "type": "object" }, "CrossProfilePolicies": { - "description": "Cross-profile policies applied on the device.", + "description": "Controls the data from the work profile that can be accessed from the personal profile and vice versa. A nonComplianceDetail with MANAGEMENT_MODE is reported if the device does not have a work profile.", "id": "CrossProfilePolicies", "properties": { "crossProfileCopyPaste": { @@ -2180,17 +2359,23 @@ ], "type": "string" }, + "exemptionsToShowWorkContactsInPersonalProfile": { + "$ref": "PackageNameList", + "description": "List of apps which are excluded from the ShowWorkContactsInPersonalProfile setting. For this to be set, ShowWorkContactsInPersonalProfile must be set to one of the following values: SHOW_WORK_CONTACTS_IN_PERSONAL_PROFILE_ALLOWED. In this case, these exemptions act as a blocklist. SHOW_WORK_CONTACTS_IN_PERSONAL_PROFILE_DISALLOWED. In this case, these exemptions act as an allowlist. SHOW_WORK_CONTACTS_IN_PERSONAL_PROFILE_DISALLOWED_EXCEPT_SYSTEM. In this case, these exemptions act as an allowlist, in addition to the already allowlisted system apps.Supported on Android 14 and above. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 14." + }, "showWorkContactsInPersonalProfile": { - "description": "Whether contacts stored in the work profile can be shown in personal profile contact searches and incoming calls.", + "description": "Whether personal apps can access contacts stored in the work profile.See also exemptions_to_show_work_contacts_in_personal_profile.", "enum": [ "SHOW_WORK_CONTACTS_IN_PERSONAL_PROFILE_UNSPECIFIED", "SHOW_WORK_CONTACTS_IN_PERSONAL_PROFILE_DISALLOWED", - "SHOW_WORK_CONTACTS_IN_PERSONAL_PROFILE_ALLOWED" + "SHOW_WORK_CONTACTS_IN_PERSONAL_PROFILE_ALLOWED", + "SHOW_WORK_CONTACTS_IN_PERSONAL_PROFILE_DISALLOWED_EXCEPT_SYSTEM" ], "enumDescriptions": [ - "Unspecified. Defaults to SHOW_WORK_CONTACTS_IN_PERSONAL_PROFILE_ALLOWED.", - "Prevents work profile contacts from appearing in personal profile contact searches and incoming calls", - "Default. Allows work profile contacts to appear in personal profile contact searches and incoming calls" + "Unspecified. Defaults to SHOW_WORK_CONTACTS_IN_PERSONAL_PROFILE_ALLOWED.When this is set, exemptions_to_show_work_contacts_in_personal_profile must not be set.", + "Prevents personal apps from accessing work profile contacts and looking up work contacts.When this is set, personal apps specified in exemptions_to_show_work_contacts_in_personal_profile are allowlisted and can access work profile contacts directly.Supported on Android 7.0 and above. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 7.0.", + "Default. Allows apps in the personal profile to access work profile contacts including contact searches and incoming calls.When this is set, personal apps specified in exemptions_to_show_work_contacts_in_personal_profile are blocklisted and can not access work profile contacts directly.Supported on Android 7.0 and above. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 7.0.", + "Prevents most personal apps from accessing work profile contacts including contact searches and incoming calls, except for the OEM default Dialer, Messages, and Contacts apps. Neither user-configured Dialer, Messages, and Contacts apps, nor any other system or play installed apps, will be able to query work contacts directly.When this is set, personal apps specified in exemptions_to_show_work_contacts_in_personal_profile are allowlisted and can access work profile contacts.Supported on Android 14 and above. If this is set on a device with Android version less than 14, the behaviour falls back to SHOW_WORK_CONTACTS_IN_PERSONAL_PROFILE_DISALLOWED and a nonComplianceDetail with API_LEVEL is reported." ], "type": "string" }, @@ -2283,14 +2468,18 @@ "ACTIVE", "DISABLED", "DELETED", - "PROVISIONING" + "PROVISIONING", + "LOST", + "PREPARING_FOR_MIGRATION" ], "enumDescriptions": [ "This value is disallowed.", "The device is active.", "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 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 preparing for migrating to Android Management API. No further action is needed for the migration to continue." ], "type": "string" }, @@ -2313,6 +2502,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", @@ -2338,6 +2532,7 @@ "type": "array" }, "lastPolicyComplianceReportTime": { + "deprecated": true, "description": "Deprecated.", "format": "google-datetime", "type": "string" @@ -2367,7 +2562,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" }, @@ -2443,14 +2638,18 @@ "ACTIVE", "DISABLED", "DELETED", - "PROVISIONING" + "PROVISIONING", + "LOST", + "PREPARING_FOR_MIGRATION" ], "enumDescriptions": [ "This value is disallowed.", "The device is active.", "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 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 preparing for migrating to Android Management API. No further action is needed for the migration to continue." ], "type": "string" }, @@ -2472,6 +2671,156 @@ }, "type": "object" }, + "DeviceConnectivityManagement": { + "description": "Covers controls for device connectivity such as Wi-Fi, USB data access, keyboard/mouse connections, and more.", + "id": "DeviceConnectivityManagement", + "properties": { + "configureWifi": { + "description": "Controls Wi-Fi configuring privileges. Based on the option set, user will have either full or limited or no control in configuring Wi-Fi networks.", + "enum": [ + "CONFIGURE_WIFI_UNSPECIFIED", + "ALLOW_CONFIGURING_WIFI", + "DISALLOW_ADD_WIFI_CONFIG", + "DISALLOW_CONFIGURING_WIFI" + ], + "enumDescriptions": [ + "Unspecified. Defaults to ALLOW_CONFIGURING_WIFI unless wifiConfigDisabled is set to true. If wifiConfigDisabled is set to true, this is equivalent to DISALLOW_CONFIGURING_WIFI.", + "The user is allowed to configure Wi-Fi. wifiConfigDisabled is ignored.", + "Adding new Wi-Fi configurations is disallowed. The user is only able to switch between already configured networks. Supported on Android 13 and above, on fully managed devices and work profiles on company-owned devices. If the setting is not supported, ALLOW_CONFIGURING_WIFI is set. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 13. wifiConfigDisabled is ignored.", + "Disallows configuring Wi-Fi networks. The setting wifiConfigDisabled is ignored when this value is set. Supported on fully managed devices and work profile on company-owned devices, on all supported API levels. For fully managed devices, setting this removes all configured networks and retains only the networks configured using openNetworkConfiguration policy. For work profiles on company-owned devices, existing configured networks are not affected and the user is not allowed to add, remove, or modify Wi-Fi networks. Note: If a network connection can't be made at boot time and configuring Wi-Fi is disabled then network escape hatch will be shown in order to refresh the device policy (see networkEscapeHatchEnabled)." + ], + "type": "string" + }, + "tetheringSettings": { + "description": "Controls tethering settings. Based on the value set, the user is partially or fully disallowed from using different forms of tethering.", + "enum": [ + "TETHERING_SETTINGS_UNSPECIFIED", + "ALLOW_ALL_TETHERING", + "DISALLOW_WIFI_TETHERING", + "DISALLOW_ALL_TETHERING" + ], + "enumDescriptions": [ + "Unspecified. Defaults to ALLOW_ALL_TETHERING unless tetheringConfigDisabled is set to true. If tetheringConfigDisabled is set to true, this is equivalent to DISALLOW_ALL_TETHERING.", + "Allows configuration and use of all forms of tethering. tetheringConfigDisabled is ignored.", + "Disallows the user from using Wi-Fi tethering. Supported on company owned devices running Android 13 and above. If the setting is not supported, ALLOW_ALL_TETHERING will be set. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 13. tetheringConfigDisabled is ignored.", + "Disallows all forms of tethering. Supported on fully managed devices and work profile on company-owned devices, on all supported android versions. The setting tetheringConfigDisabled is ignored." + ], + "type": "string" + }, + "usbDataAccess": { + "description": "Controls what files and/or data can be transferred via USB. Supported only on company-owned devices.", + "enum": [ + "USB_DATA_ACCESS_UNSPECIFIED", + "ALLOW_USB_DATA_TRANSFER", + "DISALLOW_USB_FILE_TRANSFER", + "DISALLOW_USB_DATA_TRANSFER" + ], + "enumDescriptions": [ + "Unspecified. Defaults to ALLOW_USB_DATA_TRANSFER, unless usbFileTransferDisabled is set to true. If usbFileTransferDisabled is set to true, this is equivalent to DISALLOW_USB_FILE_TRANSFER.", + "All types of USB data transfers are allowed. usbFileTransferDisabled is ignored.", + "Transferring files over USB is disallowed. Other types of USB data connections, such as mouse and keyboard connection, are allowed. usbFileTransferDisabled is ignored.", + "When set, all types of USB data transfers are prohibited. Supported for devices running Android 12 or above with USB HAL 1.3 or above. If the setting is not supported, DISALLOW_USB_FILE_TRANSFER will be set. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 12. A nonComplianceDetail with DEVICE_INCOMPATIBLE is reported if the device does not have USB HAL 1.3 or above. usbFileTransferDisabled is ignored." + ], + "type": "string" + }, + "wifiDirectSettings": { + "description": "Controls configuring and using Wi-Fi direct settings. Supported on company-owned devices running Android 13 and above.", + "enum": [ + "WIFI_DIRECT_SETTINGS_UNSPECIFIED", + "ALLOW_WIFI_DIRECT", + "DISALLOW_WIFI_DIRECT" + ], + "enumDescriptions": [ + "Unspecified. Defaults to ALLOW_WIFI_DIRECT", + "The user is allowed to use Wi-Fi direct.", + "The user is not allowed to use Wi-Fi direct. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 13." + ], + "type": "string" + } + }, + "type": "object" + }, + "DeviceRadioState": { + "description": "Controls for device radio settings.", + "id": "DeviceRadioState", + "properties": { + "airplaneModeState": { + "description": "Controls whether airplane mode can be toggled by the user or not.", + "enum": [ + "AIRPLANE_MODE_STATE_UNSPECIFIED", + "AIRPLANE_MODE_USER_CHOICE", + "AIRPLANE_MODE_DISABLED" + ], + "enumDescriptions": [ + "Unspecified. Defaults to AIRPLANE_MODE_USER_CHOICE.", + "The user is allowed to toggle airplane mode on or off.", + "Airplane mode is disabled. The user is not allowed to toggle airplane mode on. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 9." + ], + "type": "string" + }, + "cellularTwoGState": { + "description": "Controls whether cellular 2G setting can be toggled by the user or not.", + "enum": [ + "CELLULAR_TWO_G_STATE_UNSPECIFIED", + "CELLULAR_TWO_G_USER_CHOICE", + "CELLULAR_TWO_G_DISABLED" + ], + "enumDescriptions": [ + "Unspecified. Defaults to CELLULAR_TWO_G_USER_CHOICE.", + "The user is allowed to toggle cellular 2G on or off.", + "Cellular 2G is disabled. The user is not allowed to toggle cellular 2G on via settings. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 14." + ], + "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": [ + "ULTRA_WIDEBAND_STATE_UNSPECIFIED", + "ULTRA_WIDEBAND_USER_CHOICE", + "ULTRA_WIDEBAND_DISABLED" + ], + "enumDescriptions": [ + "Unspecified. Defaults to ULTRA_WIDEBAND_USER_CHOICE.", + "The user is allowed to toggle ultra wideband on or off.", + "Ultra wideband is disabled. The user is not allowed to toggle ultra wideband on via settings. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 14." + ], + "type": "string" + }, + "wifiState": { + "description": "Controls current state of Wi-Fi and if user can change its state.", + "enum": [ + "WIFI_STATE_UNSPECIFIED", + "WIFI_STATE_USER_CHOICE", + "WIFI_ENABLED", + "WIFI_DISABLED" + ], + "enumDescriptions": [ + "Unspecified. Defaults to WIFI_STATE_USER_CHOICE", + "User is allowed to enable/disable Wi-Fi.", + "Wi-Fi is on and the user is not allowed to turn it off. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 13.", + "Wi-Fi is off and the user is not allowed to turn it on. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 13." + ], + "type": "string" + } + }, + "type": "object" + }, "DeviceSettings": { "description": "Information about security related device settings on device.", "id": "DeviceSettings", @@ -2606,12 +2955,35 @@ }, "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", "properties": {}, "type": "object" }, + "EnrollmentCompleteEvent": { + "description": "Represents that the device has completed enrollment. User should be in the launcher at this point, device at this point will be compliant and all setup steps have been completed. Intentionally empty.", + "id": "EnrollmentCompleteEvent", + "properties": {}, + "type": "object" + }, "EnrollmentToken": { "description": "An enrollment token.", "id": "EnrollmentToken", @@ -2676,6 +3048,7 @@ "id": "Enterprise", "properties": { "appAutoApprovalEnabled": { + "deprecated": true, "description": "Deprecated and unused.", "type": "boolean" }, @@ -2694,6 +3067,14 @@ "COMMAND", "USAGE_LOGS" ], + "enumDeprecated": [ + false, + false, + true, + false, + false, + false + ], "enumDescriptions": [ "This value is ignored.", "A notification sent when a device enrolls.", @@ -2707,7 +3088,7 @@ "type": "array" }, "enterpriseDisplayName": { - "description": "The name of the enterprise displayed to users.", + "description": "The name of the enterprise displayed to users. This field has a maximum length of 100 characters.", "type": "string" }, "logo": { @@ -2800,7 +3181,7 @@ "type": "object" }, "FreezePeriod": { - "description": "A system freeze period. When a device\u2019s clock is within the freeze period, all incoming system updates (including security patches) are blocked and won\u2019t be installed. When a device is outside the freeze period, normal update behavior applies. Leap years are ignored in freeze period calculations, in particular: * If Feb. 29th is set as the start or end date of a freeze period, the freeze period will start or end on Feb. 28th instead. * When a device\u2019s system clock reads Feb. 29th, it\u2019s treated as Feb. 28th. * When calculating the number of days in a freeze period or the time between two freeze periods, Feb. 29th is ignored and not counted as a day.Note: For Freeze Periods to take effect, SystemUpdateType cannot be specified as SYSTEM_UPDATE_TYPE_UNSPECIFIED, because freeze periods require a defined policy to be specified.", + "description": "A system freeze period. When a device\u2019s clock is within the freeze period, all incoming system updates (including security patches) are blocked and won\u2019t be installed.When the device is outside any set freeze periods, the normal policy behavior (automatic, windowed, or postponed) applies.Leap years are ignored in freeze period calculations, in particular: If Feb. 29th is set as the start or end date of a freeze period, the freeze period will start or end on Feb. 28th instead. When a device\u2019s system clock reads Feb. 29th, it\u2019s treated as Feb. 28th. When calculating the number of days in a freeze period or the time between two freeze periods, Feb. 29th is ignored and not counted as a day.Note: For Freeze Periods to take effect, SystemUpdateType cannot be specified as SYSTEM_UPDATE_TYPE_UNSPECIFIED, because freeze periods require a defined policy to be specified.", "id": "FreezePeriod", "properties": { "endDate": { @@ -2974,6 +3355,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", @@ -3272,6 +3702,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", @@ -3326,6 +3774,23 @@ }, "type": "object" }, + "Location": { + "description": "The device location containing the latitude and longitude.", + "id": "Location", + "properties": { + "latitude": { + "description": "The latitude position of the location", + "format": "double", + "type": "number" + }, + "longitude": { + "description": "The longitude position of the location", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "LogBufferSizeCriticalEvent": { "description": "The usageLog buffer on the device has reached 90% of its capacity, therefore older events may be dropped. Intentionally empty.", "id": "LogBufferSizeCriticalEvent", @@ -3344,6 +3809,28 @@ "properties": {}, "type": "object" }, + "LostModeLocationEvent": { + "description": "A lost mode event containing the device location and battery level as a percentage.", + "id": "LostModeLocationEvent", + "properties": { + "batteryLevel": { + "description": "The battery level as a number between 0 and 100 inclusive", + "format": "int32", + "type": "integer" + }, + "location": { + "$ref": "Location", + "description": "The device location" + } + }, + "type": "object" + }, + "LostModeOutgoingPhoneCallEvent": { + "description": "An event indicating an outgoing phone call has been made when a device is in lost mode. Intentionally empty.", + "id": "LostModeOutgoingPhoneCallEvent", + "properties": {}, + "type": "object" + }, "ManagedConfigurationTemplate": { "description": "The managed configurations template for the app, saved from the managed configurations iframe.", "id": "ManagedConfigurationTemplate", @@ -3471,7 +3958,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": { @@ -3524,6 +4011,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", @@ -3537,6 +4094,7 @@ "type": "string" }, "networkOperatorName": { + "deprecated": true, "description": "Alphabetic name of current registered operator. For example, Vodafone.", "type": "string" }, @@ -3579,7 +4137,9 @@ "NOT_AVAILABLE_IN_COUNTRY", "NO_LICENSES_REMAINING", "NOT_ENROLLED", - "USER_INVALID" + "USER_INVALID", + "NETWORK_ERROR_UNRELIABLE_CONNECTION", + "INSUFFICIENT_STORAGE" ], "enumDescriptions": [ "This value is disallowed.", @@ -3592,7 +4152,9 @@ "The app is not available in the user's country.", "There are no licenses available to assign to the user.", "The enterprise is no longer enrolled with Managed Google Play or the admin has not accepted the latest Managed Google Play Terms of Service.", - "The user is no longer valid. The user may have been deleted or disabled." + "The user is no longer valid. The user may have been deleted or disabled.", + "A network error on the user's device has prevented the install from succeeding. This usually happens when the device's internet connectivity is degraded, unavailable or there's a network configuration issue. Please ensure the device has access to full internet connectivity on a network that meets Android Enterprise Network Requirements (https://support.google.com/work/android/answer/10513641). App install or update will automatically resume once this is the case.", + "The user's device does not have sufficient storage space to install the app. This can be resolved by clearing up storage space on the device. App install or update will automatically resume once the device has sufficient storage." ], "type": "string" }, @@ -3609,7 +4171,8 @@ "APP_INSTALLED", "PENDING", "APP_INCOMPATIBLE", - "APP_NOT_UPDATED" + "APP_NOT_UPDATED", + "DEVICE_INCOMPATIBLE" ], "enumDescriptions": [ "This value is disallowed.", @@ -3622,7 +4185,8 @@ "A blocked app is installed.", "The setting hasn't been applied at the time of the report, but is expected to be applied shortly.", "The setting can't be applied to the app because the app doesn't support it, for example because its target SDK version is not high enough.", - "The app is installed, but it hasn't been updated to the minimum version code specified by policy." + "The app is installed, but it hasn't been updated to the minimum version code specified by policy.", + "The device is incompatible with the policy requirements." ], "type": "string" }, @@ -3646,7 +4210,10 @@ "PASSWORD_POLICIES_PASSWORD_EXPIRED", "PASSWORD_POLICIES_PASSWORD_NOT_SUFFICIENT", "ONC_WIFI_INVALID_VALUE", - "ONC_WIFI_API_LEVEL" + "ONC_WIFI_API_LEVEL", + "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.", @@ -3654,7 +4221,10 @@ "The device or profile password has expired. passwordPoliciesContext is set. nonComplianceReason is set to USER_ACTION.", "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 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.", + "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" } @@ -3662,6 +4232,7 @@ "type": "object" }, "NonComplianceDetailCondition": { + "deprecated": true, "description": "A compliance rule condition which is satisfied if there exists any matching NonComplianceDetail for the device. A NonComplianceDetail matches a NonComplianceDetailCondition if all the fields which are set within the NonComplianceDetailCondition match the corresponding NonComplianceDetail fields.", "id": "NonComplianceDetailCondition", "properties": { @@ -3678,7 +4249,8 @@ "APP_INSTALLED", "PENDING", "APP_INCOMPATIBLE", - "APP_NOT_UPDATED" + "APP_NOT_UPDATED", + "DEVICE_INCOMPATIBLE" ], "enumDescriptions": [ "This value is disallowed.", @@ -3691,7 +4263,8 @@ "A blocked app is installed.", "The setting hasn't been applied at the time of the report, but is expected to be applied shortly.", "The setting can't be applied to the app because the app doesn't support it, for example because its target SDK version is not high enough.", - "The app is installed, but it hasn't been updated to the minimum version code specified by policy." + "The app is installed, but it hasn't been updated to the minimum version code specified by policy.", + "The device is incompatible with the policy requirements." ], "type": "string" }, @@ -3764,7 +4337,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" } }, @@ -4023,7 +4596,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" @@ -4069,7 +4642,7 @@ ], "enumDescriptions": [ "Unspecified. Defaults to AVAILABLE.", - "The app is blocked and can't be installed in the personal profile.", + "The app is blocked and can't be installed in the personal profile. If the app was previously installed in the device, it will be uninstalled.", "The app is available to install in the personal profile." ], "type": "string" @@ -4097,7 +4670,7 @@ "type": "boolean" }, "maxDaysWithWorkOff": { - "description": "Controls how long the work profile can stay off. The duration must be at least 3 days.", + "description": "Controls how long the work profile can stay off. The minimum duration must be at least 3 days. Other details are as follows: - If the duration is set to 0, the feature is turned off. - If the duration is set to a value smaller than the minimum duration, the feature returns an error. *Note:* If you want to avoid personal profiles being suspended during long periods of off-time, you can temporarily set a large value for this parameter.", "format": "int32", "type": "integer" }, @@ -4116,6 +4689,12 @@ "BLOCKLIST", "ALLOWLIST" ], + "enumDeprecated": [ + false, + true, + false, + false + ], "enumDescriptions": [ "Unspecified. Defaults to BLOCKLIST.", "All Play Store apps are available for installation in the personal profile, except those whose installType is BLOCKED in personalApplications.", @@ -4152,14 +4731,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", @@ -4176,7 +4756,7 @@ "type": "array" }, "appAutoUpdatePolicy": { - "description": "Deprecated. Use autoUpdateMode instead.When autoUpdateMode is set to AUTO_UPDATE_POSTPONED or AUTO_UPDATE_HIGH_PRIORITY, this field has no effect.The app auto update policy, which controls when automatic app updates can be applied.", + "description": "Recommended alternative: autoUpdateMode which is set per app, provides greater flexibility around update frequency.When autoUpdateMode is set to AUTO_UPDATE_POSTPONED or AUTO_UPDATE_HIGH_PRIORITY, this field has no effect.The app auto update policy, which controls when automatic app updates can be applied.", "enum": [ "APP_AUTO_UPDATE_POLICY_UNSPECIFIED", "CHOICE_TO_THE_USER", @@ -4194,7 +4774,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" }, @@ -4215,10 +4795,12 @@ "type": "string" }, "autoTimeRequired": { + "deprecated": true, "description": "Whether auto time is required, which prevents the user from manually setting the date and time. If autoDateAndTimeZone is set, this field is ignored.", "type": "boolean" }, "blockApplicationsEnabled": { + "deprecated": true, "description": "Whether applications other than the ones configured in applications are blocked from being installed. When set, applications that were installed under a previous policy but no longer appear in the policy are automatically uninstalled.", "type": "boolean" }, @@ -4251,6 +4833,7 @@ "type": "string" }, "cameraDisabled": { + "deprecated": true, "description": "If camera_access is set to any value other than CAMERA_ACCESS_UNSPECIFIED, this has no effect. Otherwise this field controls whether cameras are disabled: If true, all cameras are disabled, otherwise they are available. For fully managed devices this field applies for all apps on the device. For work profiles, this field applies only to apps in the work profile, and the camera access of apps outside the work profile is unaffected.", "type": "boolean" }, @@ -4259,13 +4842,14 @@ "type": "boolean" }, "choosePrivateKeyRules": { - "description": "Rules for determining apps' access to private keys. See ChoosePrivateKeyRule for details.", + "description": "Rules for determining apps' access to private keys. See ChoosePrivateKeyRule for details. This must be empty if any application has CERT_SELECTION delegation scope.", "items": { "$ref": "ChoosePrivateKeyRule" }, "type": "array" }, "complianceRules": { + "deprecated": true, "description": "Rules declaring which mitigating actions to take when a device is not compliant with its policy. When the conditions for multiple rules are satisfied, all of the mitigating actions for the rules are taken. There is a maximum limit of 100 rules. Use policy enforcement rules instead.", "items": { "$ref": "ComplianceRule" @@ -4276,6 +4860,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" @@ -4289,6 +4887,7 @@ "type": "boolean" }, "debuggingFeaturesAllowed": { + "deprecated": true, "description": "Whether the user is allowed to enable debugging features.", "type": "boolean" }, @@ -4303,15 +4902,23 @@ "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" }, + "deviceConnectivityManagement": { + "$ref": "DeviceConnectivityManagement", + "description": "Covers controls for device connectivity such as Wi-Fi, USB data access, keyboard/mouse connections, and more." + }, "deviceOwnerLockScreenInfo": { "$ref": "UserFacingMessage", "description": "The device owner information to be shown on the lock screen." }, + "deviceRadioState": { + "$ref": "DeviceRadioState", + "description": "Covers controls for radio state such as Wi-Fi, bluetooth, and more." + }, "encryptionPolicy": { "description": "Whether encryption is enabled", "enum": [ @@ -4327,6 +4934,7 @@ "type": "string" }, "ensureVerifyAppsEnabled": { + "deprecated": true, "description": "Whether app verification is force-enabled.", "type": "boolean" }, @@ -4350,6 +4958,7 @@ "type": "boolean" }, "installUnknownSourcesAllowed": { + "deprecated": true, "description": "This field has no effect.", "type": "boolean" }, @@ -4371,6 +4980,7 @@ "FACE", "IRIS", "BIOMETRICS", + "SHORTCUTS", "ALL_FEATURES" ], "enumDescriptions": [ @@ -4384,6 +4994,7 @@ "Disable face authentication on secure keyguard screens.", "Disable iris authentication on secure keyguard screens.", "Disable all biometric authentication on secure keyguard screens.", + "Disable all shortcuts on secure keyguard screen on Android 14 and above.", "Disable all current and future keyguard customizations." ], "type": "string" @@ -4410,6 +5021,16 @@ "LOCATION_ENFORCED", "LOCATION_DISABLED" ], + "enumDeprecated": [ + false, + true, + true, + true, + true, + false, + false, + false + ], "enumDescriptions": [ "Defaults to LOCATION_USER_CHOICE.", "On Android 8 and below, all location detection methods are enabled, including GPS, networks, and other sensors. On Android 9 and above, this is equivalent to LOCATION_ENFORCED.", @@ -4469,7 +5090,7 @@ "type": "string" }, "networkEscapeHatchEnabled": { - "description": "Whether the network escape hatch is enabled. If a network connection can't be made at boot time, the escape hatch prompts the user to temporarily connect to a network in order to refresh the device policy. After applying policy, the temporary network will be forgotten and the device will continue booting. This prevents being unable to connect to a network if there is no suitable network in the last policy and the device boots into an app in lock task mode, or the user is otherwise unable to reach device settings.Note: Setting wifiConfigDisabled to true will override this setting under specific circumstances. Please see wifiConfigDisabled for further details.", + "description": "Whether the network escape hatch is enabled. If a network connection can't be made at boot time, the escape hatch prompts the user to temporarily connect to a network in order to refresh the device policy. After applying policy, the temporary network will be forgotten and the device will continue booting. This prevents being unable to connect to a network if there is no suitable network in the last policy and the device boots into an app in lock task mode, or the user is otherwise unable to reach device settings.Note: Setting wifiConfigDisabled to true will override this setting under specific circumstances. Please see wifiConfigDisabled for further details. Setting configureWifi to DISALLOW_CONFIGURING_WIFI will override this setting under specific circumstances. Please see DISALLOW_CONFIGURING_WIFI for further details.", "type": "boolean" }, "networkResetDisabled": { @@ -4508,6 +5129,7 @@ }, "passwordRequirements": { "$ref": "PasswordRequirements", + "deprecated": true, "description": "Password requirements. The field password_requirements.require_password_unlock must not be set. DEPRECATED - Use passwordPolicies.Note:Complexity-based values of PasswordQuality, that is, COMPLEXITY_LOW, COMPLEXITY_MEDIUM, and COMPLEXITY_HIGH, cannot be used here. unified_lock_settings cannot be used here." }, "permissionGrants": { @@ -4571,8 +5193,22 @@ ], "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.", + "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" }, "recommendedGlobalProxy": { @@ -4584,6 +5220,7 @@ "type": "boolean" }, "safeBootDisabled": { + "deprecated": true, "description": "Whether rebooting the device into safe boot is disabled.", "type": "boolean" }, @@ -4623,6 +5260,7 @@ "type": "boolean" }, "statusBarDisabled": { + "deprecated": true, "description": "Whether the status bar is disabled. This disables notifications, quick settings, and other screen overlays that allow escape from full-screen mode. DEPRECATED. To disable the status bar on a kiosk device, use InstallType KIOSK or kioskCustomLauncherEnabled.", "type": "boolean" }, @@ -4654,7 +5292,8 @@ "description": "The system update policy, which controls how OS updates are applied. If the update type is WINDOWED, the update window will automatically apply to Play app updates as well." }, "tetheringConfigDisabled": { - "description": "Whether configuring tethering and portable hotspots is disabled.", + "deprecated": true, + "description": "Whether configuring tethering and portable hotspots is disabled. If tetheringSettings is set to anything other than TETHERING_SETTINGS_UNSPECIFIED, this setting is ignored.", "type": "boolean" }, "uninstallAppsDisabled": { @@ -4662,6 +5301,7 @@ "type": "boolean" }, "unmuteMicrophoneDisabled": { + "deprecated": true, "description": "If microphone_access is set to any value other than MICROPHONE_ACCESS_UNSPECIFIED, this has no effect. Otherwise this field controls whether microphones are disabled: If true, all microphones are disabled, otherwise they are available. This is available only on fully managed devices.", "type": "boolean" }, @@ -4670,10 +5310,12 @@ "description": "Configuration of device activity logging." }, "usbFileTransferDisabled": { + "deprecated": true, "description": "Whether transferring files over USB is disabled. This is supported only on company-owned devices.", "type": "boolean" }, "usbMassStorageEnabled": { + "deprecated": true, "description": "Whether USB storage is enabled. Deprecated.", "type": "boolean" }, @@ -4687,10 +5329,12 @@ "type": "boolean" }, "wifiConfigDisabled": { - "description": "Whether configuring Wi-Fi access points is disabled. Note: If a network connection can't be made at boot time and configuring Wi-Fi is disabled then network escape hatch will be shown in order to refresh the device policy (see networkEscapeHatchEnabled).", + "deprecated": true, + "description": "Whether configuring Wi-Fi networks is disabled. Supported on fully managed devices and work profiles on company-owned devices. For fully managed devices, setting this to true removes all configured networks and retains only the networks configured using openNetworkConfiguration. For work profiles on company-owned devices, existing configured networks are not affected and the user is not allowed to add, remove, or modify Wi-Fi networks. If configureWifi is set to anything other than CONFIGURE_WIFI_UNSPECIFIED, this setting is ignored. Note: If a network connection can't be made at boot time and configuring Wi-Fi is disabled then network escape hatch will be shown in order to refresh the device policy (see networkEscapeHatchEnabled).", "type": "boolean" }, "wifiConfigsLockdownEnabled": { + "deprecated": true, "description": "DEPRECATED - Use wifi_config_disabled.", "type": "boolean" } @@ -4698,7 +5342,7 @@ "type": "object" }, "PolicyEnforcementRule": { - "description": "A rule that defines the actions to take if a device or work profile is not compliant with the policy specified in settingName.", + "description": "A rule that defines the actions to take if a device or work profile is not compliant with the policy specified in settingName. In the case of multiple matching or multiple triggered enforcement rules, a merge will occur with the most severe action being taken. However, all triggered rules are still kept track of: this includes initial trigger time and all associated non-compliance details. In the situation where the most severe enforcement rule is satisfied, the next most appropriate action is applied.", "id": "PolicyEnforcementRule", "properties": { "blockAction": { @@ -4737,9 +5381,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" } @@ -4787,6 +5431,62 @@ }, "type": "object" }, + "ProvisioningInfo": { + "description": "Information about a device that is available during setup.", + "id": "ProvisioningInfo", + "properties": { + "apiLevel": { + "description": "The API level of the Android platform version running on the device.", + "format": "int32", + "type": "integer" + }, + "brand": { + "description": "The brand of the device. For example, Google.", + "type": "string" + }, + "enterprise": { + "description": "The name of the enterprise in the form enterprises/{enterprise}.", + "type": "string" + }, + "managementMode": { + "description": "The management mode of the device or profile.", + "enum": [ + "MANAGEMENT_MODE_UNSPECIFIED", + "DEVICE_OWNER", + "PROFILE_OWNER" + ], + "enumDescriptions": [ + "This value is disallowed.", + "Device owner. Android Device Policy has full control over the device.", + "Profile owner. Android Device Policy has control over a managed profile on the device." + ], + "type": "string" + }, + "model": { + "description": "The model of the device. For example, Asus Nexus 7.", + "type": "string" + }, + "name": { + "description": "The name of this resource in the form provisioningInfo/{provisioning_info}.", + "type": "string" + }, + "ownership": { + "description": "Ownership of the managed device.", + "enum": [ + "OWNERSHIP_UNSPECIFIED", + "COMPANY_OWNED", + "PERSONALLY_OWNED" + ], + "enumDescriptions": [ + "Ownership is unspecified.", + "Device is company-owned.", + "Device is personally-owned." + ], + "type": "string" + } + }, + "type": "object" + }, "ProxyInfo": { "description": "Configuration info for an HTTP proxy. For a direct proxy, set the host, port, and excluded_hosts fields. For a PAC script proxy, set the pac_uri field.", "id": "ProxyInfo", @@ -4885,7 +5585,7 @@ "type": "object" }, "SigninDetail": { - "description": "A resource containing sign in details for an enterprise.", + "description": "A resource containing sign in details for an enterprise. Use enterprises to manage SigninDetails for a given enterprise.For an enterprise, we can have any number of SigninDetails that is uniquely identified by combination of the following three fields (signin_url, allow_personal_usage, token_tag). One cannot create two SigninDetails with the same (signin_url, allow_personal_usage, token_tag). (token_tag is an optional field).Patch: The operation updates the current list of SigninDetails with the new list of SigninDetails. If the stored SigninDetail configuration is passed, it returns the same signin_enrollment_token and qr_code. If we pass multiple identical SigninDetail configurations that are not stored, it will store the first one amongst those SigninDetail configurations. if the configuration already exists we cannot request it more than once in a particular patch API call, otherwise it will give a duplicate key error and the whole operation will fail. If we remove certain SigninDetail configuration from the request then it will get removed from the storage. We can then request another signin_enrollment_token and qr_code for the same SigninDetail configuration.", "id": "SigninDetail", "properties": { "allowPersonalUsage": { @@ -4913,6 +5613,10 @@ "signinUrl": { "description": "Sign-in URL for authentication when device is provisioned with a sign-in enrollment token. The sign-in endpoint should finish authentication flow with a URL in the form of https://enterprise.google.com/android/enroll?et= for a successful login, or https://enterprise.google.com/android/enroll/invalid for a failed login.", "type": "string" + }, + "tokenTag": { + "description": "An EMM-specified metadata to distinguish between instances of SigninDetail.", + "type": "string" } }, "type": "object" @@ -5000,6 +5704,58 @@ }, "type": "object" }, + "StartLostModeParams": { + "description": "Parameters associated with the START_LOST_MODE command to put the device into lost mode. At least one of the parameters, not including the organization name, must be provided in order for the device to be put into lost mode.", + "id": "StartLostModeParams", + "properties": { + "lostEmailAddress": { + "description": "The email address displayed to the user when the device is in lost mode.", + "type": "string" + }, + "lostMessage": { + "$ref": "UserFacingMessage", + "description": "The message displayed to the user when the device is in lost mode." + }, + "lostOrganization": { + "$ref": "UserFacingMessage", + "description": "The organization name displayed to the user when the device is in lost mode." + }, + "lostPhoneNumber": { + "$ref": "UserFacingMessage", + "description": "The phone number displayed to the user when the device is in lost mode." + }, + "lostStreetAddress": { + "$ref": "UserFacingMessage", + "description": "The street address displayed to the user when the device is in lost mode." + } + }, + "type": "object" + }, + "StartLostModeStatus": { + "description": "Status of the START_LOST_MODE command to put the device into lost mode.", + "id": "StartLostModeStatus", + "properties": { + "status": { + "description": "The status. See StartLostModeStatus.", + "enum": [ + "STATUS_UNSPECIFIED", + "SUCCESS", + "RESET_PASSWORD_RECENTLY", + "USER_EXIT_LOST_MODE_RECENTLY", + "ALREADY_IN_LOST_MODE" + ], + "enumDescriptions": [ + "Unspecified. This value is not used.", + "The device was put into lost mode.", + "The device could not be put into lost mode because the admin reset the device's password recently.", + "The device could not be put into lost mode because the user exited lost mode recently.", + "The device is already in lost mode." + ], + "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", @@ -5078,6 +5834,54 @@ }, "type": "object" }, + "StopLostModeParams": { + "description": "Parameters associated with the STOP_LOST_MODE command to take the device out of lost mode.", + "id": "StopLostModeParams", + "properties": {}, + "type": "object" + }, + "StopLostModeStatus": { + "description": "Status of the STOP_LOST_MODE command to take the device out of lost mode.", + "id": "StopLostModeStatus", + "properties": { + "status": { + "description": "The status. See StopLostModeStatus.", + "enum": [ + "STATUS_UNSPECIFIED", + "SUCCESS", + "NOT_IN_LOST_MODE" + ], + "enumDescriptions": [ + "Unspecified. This value is not used.", + "The device was taken out of lost mode.", + "The device is not in lost mode." + ], + "type": "string" + } + }, + "type": "object" + }, + "StopLostModeUserAttemptEvent": { + "description": "A lost mode event indicating the user has attempted to stop lost mode.", + "id": "StopLostModeUserAttemptEvent", + "properties": { + "status": { + "description": "The status of the attempt to stop lost mode.", + "enum": [ + "STATUS_UNSPECIFIED", + "ATTEMPT_SUCCEEDED", + "ATTEMPT_FAILED" + ], + "enumDescriptions": [ + "This value is not used.", + "Indicates that the user successfully stopped lost mode.", + "Indicates that the user's attempt to stop lost mode failed." + ], + "type": "string" + } + }, + "type": "object" + }, "SystemUpdate": { "description": "Configuration for managing system updates", "id": "SystemUpdate", @@ -5111,7 +5915,7 @@ "Follow the default update behavior for the device, which typically requires the user to accept system updates.", "Install automatically as soon as an update is available.", "Install automatically within a daily maintenance window. This also configures Play apps to be updated within the window. This is strongly recommended for kiosk devices because this is the only way apps persistently pinned to the foreground can be updated by Play.If autoUpdateMode is set to AUTO_UPDATE_HIGH_PRIORITY for an app, then the maintenance window is ignored for that app and it is updated as soon as possible even outside of the maintenance window.", - "Postpone automatic install up to a maximum of 30 days." + "Postpone automatic install up to a maximum of 30 days. This policy does not affect security updates (e.g. monthly security patches)." ], "type": "string" } @@ -5259,6 +6063,10 @@ "$ref": "DnsEvent", "description": "A DNS lookup event was initiated through the standard network stack. Part of NETWORK_ACTIVITY_LOGS." }, + "enrollmentCompleteEvent": { + "$ref": "EnrollmentCompleteEvent", + "description": "Device has completed enrollment. Part of AMAPI_LOGS." + }, "eventId": { "description": "Unique id of the event.", "format": "int64", @@ -5299,7 +6107,11 @@ "REMOTE_LOCK", "WIPE_FAILURE", "CONNECT", - "DNS" + "DNS", + "STOP_LOST_MODE_USER_ATTEMPT", + "LOST_MODE_OUTGOING_PHONE_CALL", + "LOST_MODE_LOCATION", + "ENROLLMENT_COMPLETE" ], "enumDescriptions": [ "This value is not used", @@ -5329,7 +6141,11 @@ "Indicates remote_lock_event has been set.", "Indicates wipe_failure_event has been set.", "Indicates connect_event has been set.", - "Indicates dns_event has been set." + "Indicates dns_event has been set.", + "Indicates stopLostModeUserAttemptEvent has been set.", + "Indicates lostModeOutgoingPhoneCallEvent has been set.", + "Indicates lostModeLocationEvent has been set.", + "Indicates enrollment_complete_event has been set." ], "type": "string" }, @@ -5381,6 +6197,14 @@ "$ref": "LoggingStoppedEvent", "description": "usageLog policy has been disabled. Part of SECURITY_LOGS." }, + "lostModeLocationEvent": { + "$ref": "LostModeLocationEvent", + "description": "A lost mode location update when a device in lost mode." + }, + "lostModeOutgoingPhoneCallEvent": { + "$ref": "LostModeOutgoingPhoneCallEvent", + "description": "An outgoing phone call has been made when a device in lost mode." + }, "mediaMountEvent": { "$ref": "MediaMountEvent", "description": "Removable media was mounted. Part of SECURITY_LOGS." @@ -5401,6 +6225,10 @@ "$ref": "RemoteLockEvent", "description": "The device or profile has been remotely locked via the LOCK command. Part of SECURITY_LOGS." }, + "stopLostModeUserAttemptEvent": { + "$ref": "StopLostModeUserAttemptEvent", + "description": "An attempt to take a device out of lost mode." + }, "wipeFailureEvent": { "$ref": "WipeFailureEvent", "description": "The work profile or company-owned device failed to wipe when requested. This could be user initiated or admin initiated e.g. delete was received. Part of SECURITY_LOGS." @@ -5533,6 +6361,7 @@ "type": "string" }, "permissions": { + "deprecated": true, "description": "Permissions available to an admin in the embedded UI. An admin must have all of these permissions in order to view the UI. This field is deprecated.", "items": { "enum": [ diff --git a/etc/api/androidpublisher/v3/androidpublisher-api.json b/etc/api/androidpublisher/v3/androidpublisher-api.json index ee7e750461..28ad9f19fe 100644 --- a/etc/api/androidpublisher/v3/androidpublisher-api.json +++ b/etc/api/androidpublisher/v3/androidpublisher-api.json @@ -105,6 +105,35 @@ "protocol": "rest", "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": { @@ -211,6 +240,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": { @@ -632,7 +827,7 @@ "accept": [ "application/octet-stream" ], - "maxSize": "838860800", + "maxSize": "1677721600", "protocols": { "resumable": { "multipart": true, @@ -1689,6 +1884,40 @@ }, "tracks": { "methods": { + "create": { + "description": "Creates a new track.", + "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks", + "httpMethod": "POST", + "id": "androidpublisher.edits.tracks.create", + "parameterOrder": [ + "packageName", + "editId" + ], + "parameters": { + "editId": { + "description": "Required. Identifier of the edit.", + "location": "path", + "required": true, + "type": "string" + }, + "packageName": { + "description": "Required. Package name of the app.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks", + "request": { + "$ref": "TrackConfig" + }, + "response": { + "$ref": "Track" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, "get": { "description": "Gets a track.", "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks/{track}", @@ -1713,7 +1942,7 @@ "type": "string" }, "track": { - "description": "Identifier of the track.", + "description": "Identifier of the track. [More on track name](https://developers.google.com/android-publisher/tracks#ff-track-name)", "location": "path", "required": true, "type": "string" @@ -1782,7 +2011,7 @@ "type": "string" }, "track": { - "description": "Identifier of the track.", + "description": "Identifier of the track. [More on track name](https://developers.google.com/android-publisher/tracks#ff-track-name)", "location": "path", "required": true, "type": "string" @@ -1823,7 +2052,7 @@ "type": "string" }, "track": { - "description": "Identifier of the track.", + "description": "Identifier of the track. [More on track name](https://developers.google.com/android-publisher/tracks#ff-track-name)", "location": "path", "required": true, "type": "string" @@ -1844,6 +2073,96 @@ } } }, + "externaltransactions": { + "methods": { + "createexternaltransaction": { + "description": "Creates a new external transaction.", + "flatPath": "androidpublisher/v3/applications/{applicationsId}/externalTransactions", + "httpMethod": "POST", + "id": "androidpublisher.externaltransactions.createexternaltransaction", + "parameterOrder": [ + "parent" + ], + "parameters": { + "externalTransactionId": { + "description": "Required. The id to use for the external transaction. Must be unique across all other transactions for the app. This value should be 1-63 characters and valid characters are /a-z0-9_-/. Do not use this field to store any Personally Identifiable Information (PII) such as emails. Attempting to store PII in this field may result in requests being blocked.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource where this external transaction will be created. Format: applications/{package_name}", + "location": "path", + "pattern": "^applications/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/{+parent}/externalTransactions", + "request": { + "$ref": "ExternalTransaction" + }, + "response": { + "$ref": "ExternalTransaction" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "getexternaltransaction": { + "description": "Gets an existing external transaction.", + "flatPath": "androidpublisher/v3/applications/{applicationsId}/externalTransactions/{externalTransactionsId}", + "httpMethod": "GET", + "id": "androidpublisher.externaltransactions.getexternaltransaction", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the external transaction to retrieve. Format: applications/{package_name}/externalTransactions/{external_transaction}", + "location": "path", + "pattern": "^applications/[^/]+/externalTransactions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/{+name}", + "response": { + "$ref": "ExternalTransaction" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "refundexternaltransaction": { + "description": "Refunds or partially refunds an existing external transaction.", + "flatPath": "androidpublisher/v3/applications/{applicationsId}/externalTransactions/{externalTransactionsId}:refund", + "httpMethod": "POST", + "id": "androidpublisher.externaltransactions.refundexternaltransaction", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the external transaction that will be refunded. Format: applications/{package_name}/externalTransactions/{external_transaction}", + "location": "path", + "pattern": "^applications/[^/]+/externalTransactions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/{+name}:refund", + "request": { + "$ref": "RefundExternalTransactionRequest" + }, + "response": { + "$ref": "ExternalTransaction" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + } + }, "generatedapks": { "methods": { "download": { @@ -2008,8 +2327,89 @@ }, "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 (i.e. a managed product or a subscriptions).", + "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}", "httpMethod": "DELETE", "id": "androidpublisher.inappproducts.delete", @@ -2018,6 +2418,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", @@ -2037,7 +2452,7 @@ ] }, "get": { - "description": "Gets an in-app product, which can be a managed product or a subscription.", + "description": "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.", "flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}", "httpMethod": "GET", "id": "androidpublisher.inappproducts.get", @@ -2068,7 +2483,7 @@ ] }, "insert": { - "description": "Creates an in-app product (i.e. a managed product or a subscriptions).", + "description": "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.", "flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts", "httpMethod": "POST", "id": "androidpublisher.inappproducts.insert", @@ -2100,7 +2515,7 @@ ] }, "list": { - "description": "Lists all in-app products - both managed products and subscriptions. If an app has a large number of in-app products, the response may be paginated. In this case the response field `tokenPagination.nextPageToken` will be set and the caller should provide its value as a `token` request parameter to retrieve the next page.", + "description": "Lists all in-app products - both managed products and subscriptions. If an app has a large number of in-app products, the response may be paginated. In this case the response field `tokenPagination.nextPageToken` will be set and the caller should provide its value as a `token` request parameter to retrieve the next page. 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.", "flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts", "httpMethod": "GET", "id": "androidpublisher.inappproducts.list", @@ -2109,6 +2524,7 @@ ], "parameters": { "maxResults": { + "deprecated": true, "description": "Deprecated and ignored. The page size is determined by the server.", "format": "uint32", "location": "query", @@ -2121,7 +2537,8 @@ "type": "string" }, "startIndex": { - "description": "Deprecated and ignored. Set the `token` parameter to rertieve the next page.", + "deprecated": true, + "description": "Deprecated and ignored. Set the `token` parameter to retrieve the next page.", "format": "uint32", "location": "query", "type": "integer" @@ -2141,7 +2558,7 @@ ] }, "patch": { - "description": "Patches an in-app product (i.e. a managed product or a subscriptions).", + "description": "Patches an in-app product (a managed product or a subscription). 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/{sku}", "httpMethod": "PATCH", "id": "androidpublisher.inappproducts.patch", @@ -2155,6 +2572,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", @@ -2180,7 +2612,7 @@ ] }, "update": { - "description": "Updates an in-app product (i.e. a managed product or a subscriptions).", + "description": "Updates an in-app product (a managed product or a subscription). 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/{sku}", "httpMethod": "PUT", "id": "androidpublisher.inappproducts.update", @@ -2199,6 +2631,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", @@ -2346,7 +2793,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", @@ -2379,6 +2827,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", @@ -2400,7 +2905,7 @@ "type": "string" }, "regionsVersion.version": { - "description": "Required. A string representing version of the available regions being used for the specified resource. The current version is 2022/02.", + "description": "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 published in [this article](https://support.google.com/googleplay/android-developer/answer/10532353). Each time the supported locations substantially change, the version will be incremented. Using this field will ensure that creating and updating the resource with an older region's version and set of regional prices and currencies will succeed even though a new version is available. The latest version is 2022/02.", "location": "query", "type": "string" } @@ -2502,7 +3007,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" } @@ -2525,6 +3031,26 @@ "productId" ], "parameters": { + "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", @@ -2538,7 +3064,7 @@ "type": "string" }, "regionsVersion.version": { - "description": "Required. A string representing version of the available regions being used for the specified resource. The current version is 2022/02.", + "description": "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 published in [this article](https://support.google.com/googleplay/android-developer/answer/10532353). Each time the supported locations substantially change, the version will be incremented. Using this field will ensure that creating and updating the resource with an older region's version and set of regional prices and currencies will succeed even though a new version is available. The latest version is 2022/02.", "location": "query", "type": "string" }, @@ -2605,6 +3131,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", @@ -2774,6 +3368,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", @@ -2809,7 +3526,7 @@ "type": "string" }, "regionsVersion.version": { - "description": "Required. A string representing version of the available regions being used for the specified resource. The current version is 2022/02.", + "description": "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 published in [this article](https://support.google.com/googleplay/android-developer/answer/10532353). Each time the supported locations substantially change, the version will be incremented. Using this field will ensure that creating and updating the resource with an older region's version and set of regional prices and currencies will succeed even though a new version is available. The latest version is 2022/02.", "location": "query", "type": "string" } @@ -2972,7 +3689,7 @@ ], "parameters": { "basePlanId": { - "description": "Required. The parent base plan (ID) for which the offers should be read. May be specified as '-' to read all offers under a subscription.", + "description": "Required. The parent base plan (ID) for which the offers should be read. May be specified as '-' to read all offers under a subscription or an app. Must be specified as '-' if product_id is specified as '-'.", "location": "path", "required": true, "type": "string" @@ -2995,7 +3712,7 @@ "type": "string" }, "productId": { - "description": "Required. The parent subscription (ID) for which the offers should be read.", + "description": "Required. The parent subscription (ID) for which the offers should be read. May be specified as '-' to read all offers under an app.", "location": "path", "required": true, "type": "string" @@ -3021,12 +3738,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", @@ -3046,7 +3783,7 @@ "type": "string" }, "regionsVersion.version": { - "description": "Required. A string representing version of the available regions being used for the specified resource. The current version is 2022/02.", + "description": "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 published in [this article](https://support.google.com/googleplay/android-developer/answer/10532353). Each time the supported locations substantially change, the version will be incremented. Using this field will ensure that creating and updating the resource with an older region's version and set of regional prices and currencies will succeed even though a new version is available. The latest version is 2022/02.", "location": "query", "type": "string" }, @@ -3079,7 +3816,7 @@ "orders": { "methods": { "refund": { - "description": "Refunds a user's subscription or in-app purchase order. Orders older than 1 year cannot be refunded.", + "description": "Refunds a user's subscription or in-app purchase order. Orders older than 3 years cannot be refunded.", "flatPath": "androidpublisher/v3/applications/{packageName}/orders/{orderId}:refund", "httpMethod": "POST", "id": "androidpublisher.orders.refund", @@ -3155,6 +3892,41 @@ "https://www.googleapis.com/auth/androidpublisher" ] }, + "consume": { + "description": "Consumes a purchase for an inapp item.", + "flatPath": "androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}:consume", + "httpMethod": "POST", + "id": "androidpublisher.purchases.products.consume", + "parameterOrder": [ + "packageName", + "productId", + "token" + ], + "parameters": { + "packageName": { + "description": "The package name of the application the inapp product was sold in (for example, 'com.some.thing').", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "The inapp product SKU (for example, 'com.some.thing.inapp1').", + "location": "path", + "required": true, + "type": "string" + }, + "token": { + "description": "The token provided to the user's device when the inapp product was purchased.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}:consume", + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, "get": { "description": "Checks the purchase and consumption status of an inapp item.", "flatPath": "androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}", @@ -3453,6 +4225,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" + ] } } }, @@ -3920,9 +4726,59 @@ } } }, - "revision": "20230124", + "revision": "20240229", "rootUrl": "https://androidpublisher.googleapis.com/", "schemas": { + "Abi": { + "description": "Represents an Abi.", + "id": "Abi", + "properties": { + "alias": { + "description": "Alias for an abi.", + "enum": [ + "UNSPECIFIED_CPU_ARCHITECTURE", + "ARMEABI", + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64", + "RISCV64" + ], + "enumDescriptions": [ + "Unspecified abi.", + "ARMEABI abi.", + "ARMEABI_V7A abi.", + "ARM64_V8A abi.", + "X86 abi.", + "X86_64 abi.", + "RISCV64 abi." + ], + "type": "string" + } + }, + "type": "object" + }, + "AbiTargeting": { + "description": "Targeting based on Abi.", + "id": "AbiTargeting", + "properties": { + "alternatives": { + "description": "Targeting of other sibling directories that were in the Bundle. For main splits this is targeting of other main splits.", + "items": { + "$ref": "Abi" + }, + "type": "array" + }, + "value": { + "description": "Value of an abi.", + "items": { + "$ref": "Abi" + }, + "type": "array" + } + }, + "type": "object" + }, "AcquisitionTargetingRule": { "description": "Represents a targeting rule of the form: User never had {scope} before.", "id": "AcquisitionTargetingRule", @@ -3937,15 +4793,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", @@ -3977,6 +4934,86 @@ }, "type": "object" }, + "ApkDescription": { + "description": "Description of the created apks.", + "id": "ApkDescription", + "properties": { + "assetSliceMetadata": { + "$ref": "SplitApkMetadata", + "description": "Set only for asset slices." + }, + "instantApkMetadata": { + "$ref": "SplitApkMetadata", + "description": "Set only for Instant split APKs." + }, + "path": { + "description": "Path of the Apk, will be in the following format: .apk where DownloadId is the ID used to download the apk using GeneratedApks.Download API.", + "type": "string" + }, + "splitApkMetadata": { + "$ref": "SplitApkMetadata", + "description": "Set only for Split APKs." + }, + "standaloneApkMetadata": { + "$ref": "StandaloneApkMetadata", + "description": "Set only for standalone APKs." + }, + "targeting": { + "$ref": "ApkTargeting", + "description": "Apk-level targeting." + } + }, + "type": "object" + }, + "ApkSet": { + "description": "A set of apks representing a module.", + "id": "ApkSet", + "properties": { + "apkDescription": { + "description": "Description of the generated apks.", + "items": { + "$ref": "ApkDescription" + }, + "type": "array" + }, + "moduleMetadata": { + "$ref": "ModuleMetadata", + "description": "Metadata about the module represented by this ApkSet" + } + }, + "type": "object" + }, + "ApkTargeting": { + "description": "Represents a set of apk-level targetings.", + "id": "ApkTargeting", + "properties": { + "abiTargeting": { + "$ref": "AbiTargeting", + "description": "The abi that the apk targets" + }, + "languageTargeting": { + "$ref": "LanguageTargeting", + "description": "The language that the apk targets" + }, + "multiAbiTargeting": { + "$ref": "MultiAbiTargeting", + "description": "Multi-api-level targeting." + }, + "screenDensityTargeting": { + "$ref": "ScreenDensityTargeting", + "description": "The screen density that this apk supports." + }, + "sdkVersionTargeting": { + "$ref": "SdkVersionTargeting", + "description": "The sdk version that the apk targets" + }, + "textureCompressionFormatTargeting": { + "$ref": "TextureCompressionFormatTargeting", + "description": "Texture-compression-format-level targeting" + } + }, + "type": "object" + }, "ApksAddExternallyHostedRequest": { "description": "Request to create a new externally hosted APK.", "id": "ApksAddExternallyHostedRequest", @@ -4057,16 +5094,158 @@ }, "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" }, + "AssetModuleMetadata": { + "description": "Metadata of an asset module.", + "id": "AssetModuleMetadata", + "properties": { + "deliveryType": { + "description": "Indicates the delivery type for persistent install.", + "enum": [ + "UNKNOWN_DELIVERY_TYPE", + "INSTALL_TIME", + "ON_DEMAND", + "FAST_FOLLOW" + ], + "enumDescriptions": [ + "Unspecified delivery type.", + "This module will always be downloaded as part of the initial install of the app.", + "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.", + "This module will be downloaded immediately after initial install finishes. The app can be opened before these modules are downloaded." + ], + "type": "string" + }, + "name": { + "description": "Module name.", + "type": "string" + } + }, + "type": "object" + }, + "AssetSliceSet": { + "description": "Set of asset slices belonging to a single asset module.", + "id": "AssetSliceSet", + "properties": { + "apkDescription": { + "description": "Asset slices.", + "items": { + "$ref": "ApkDescription" + }, + "type": "array" + }, + "assetModuleMetadata": { + "$ref": "AssetModuleMetadata", + "description": "Module level metadata." + } + }, + "type": "object" + }, "AutoRenewingBasePlanType": { "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" @@ -4183,6 +5362,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", @@ -4221,6 +5581,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", @@ -4371,16 +5743,100 @@ }, "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": { + "description": "Information related to deferred item replacement.", + "id": "DeferredItemReplacement", + "properties": { + "productId": { + "description": "The product_id going to replace the existing product_id.", + "type": "string" + } + }, "type": "object" }, "DeobfuscationFile": { @@ -4415,6 +5871,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", @@ -4436,8 +5904,35 @@ "properties": {}, "type": "object" }, + "DeviceFeature": { + "description": "Represents a device feature.", + "id": "DeviceFeature", + "properties": { + "featureName": { + "description": "Name of the feature.", + "type": "string" + }, + "featureVersion": { + "description": "The feature version specified by android:glEsVersion or android:version in in the AndroidManifest.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "DeviceFeatureTargeting": { + "description": "Targeting for a device feature.", + "id": "DeviceFeatureTargeting", + "properties": { + "requiredFeature": { + "$ref": "DeviceFeature", + "description": "Feature of the device." + } + }, + "type": "object" + }, "DeviceGroup": { - "description": "LINT.IfChange A group of devices. A group is defined by a set of device selectors. A device belongs to the group if it matches any selector (logical OR).", + "description": "A group of devices. A group is defined by a set of device selectors. A device belongs to the group if it matches any selector (logical OR).", "id": "DeviceGroup", "properties": { "deviceSelectors": { @@ -4627,7 +6122,7 @@ "type": "object" }, "DeviceTierConfig": { - "description": "LINT.IfChange Configuration describing device targeting criteria for the content of an app.", + "description": "Configuration describing device targeting criteria for the content of an app.", "id": "DeviceTierConfig", "properties": { "deviceGroups": { @@ -4646,6 +6141,13 @@ "deviceTierSet": { "$ref": "DeviceTierSet", "description": "Definition of the set of device tiers for the app." + }, + "userCountrySets": { + "description": "Definition of user country sets for the app.", + "items": { + "$ref": "UserCountrySet" + }, + "type": "array" } }, "type": "object" @@ -4711,6 +6213,126 @@ }, "type": "object" }, + "ExternalSubscription": { + "description": "Details of an external subscription.", + "id": "ExternalSubscription", + "properties": { + "subscriptionType": { + "description": "Required. The type of the external subscription.", + "enum": [ + "SUBSCRIPTION_TYPE_UNSPECIFIED", + "RECURRING", + "PREPAID" + ], + "enumDescriptions": [ + "Unspecified, do not use.", + "This is a recurring subscription where the user is charged every billing cycle.", + "This is a prepaid subscription where the user pays up front." + ], + "type": "string" + } + }, + "type": "object" + }, + "ExternalTransaction": { + "description": "The details of an external transaction.", + "id": "ExternalTransaction", + "properties": { + "createTime": { + "description": "Output only. The time when this transaction was created. This is the time when Google was notified of the transaction.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "currentPreTaxAmount": { + "$ref": "Price", + "description": "Output only. The current transaction amount before tax. This represents the current pre-tax amount including any refunds that may have been applied to this transaction.", + "readOnly": true + }, + "currentTaxAmount": { + "$ref": "Price", + "description": "Output only. The current tax amount. This represents the current tax amount including any refunds that may have been applied to this transaction.", + "readOnly": true + }, + "externalTransactionId": { + "description": "Output only. The id of this transaction. All transaction ids under the same package name must be unique. Set when creating the external transaction.", + "readOnly": true, + "type": "string" + }, + "oneTimeTransaction": { + "$ref": "OneTimeExternalTransaction", + "description": "This is a one-time transaction and not part of a subscription." + }, + "originalPreTaxAmount": { + "$ref": "Price", + "description": "Required. The original transaction amount before taxes. This represents the pre-tax amount originally notified to Google before any refunds were applied." + }, + "originalTaxAmount": { + "$ref": "Price", + "description": "Required. The original tax amount. This represents the tax amount originally notified to Google before any refunds were applied." + }, + "packageName": { + "description": "Output only. The resource name of the external transaction. The package name of the application the inapp products were sold (for example, 'com.some.app').", + "readOnly": true, + "type": "string" + }, + "recurringTransaction": { + "$ref": "RecurringExternalTransaction", + "description": "This transaction is part of a recurring series of transactions." + }, + "testPurchase": { + "$ref": "ExternalTransactionTestPurchase", + "description": "Output only. If set, this transaction was a test purchase. Google will not charge for a test transaction.", + "readOnly": true + }, + "transactionState": { + "description": "Output only. The current state of the transaction.", + "enum": [ + "TRANSACTION_STATE_UNSPECIFIED", + "TRANSACTION_REPORTED", + "TRANSACTION_CANCELED" + ], + "enumDescriptions": [ + "Unspecified transaction state. Not used.", + "The transaction has been successfully reported to Google.", + "The transaction has been fully refunded." + ], + "readOnly": true, + "type": "string" + }, + "transactionTime": { + "description": "Required. The time when the transaction was completed.", + "format": "google-datetime", + "type": "string" + }, + "userTaxAddress": { + "$ref": "ExternalTransactionAddress", + "description": "Required. User address for tax computation." + } + }, + "type": "object" + }, + "ExternalTransactionAddress": { + "description": "User's address for the external transaction.", + "id": "ExternalTransactionAddress", + "properties": { + "administrativeArea": { + "description": "Optional. Top-level administrative subdivision of the country/region. Only required for transactions in India. Valid values are \"ANDAMAN AND NICOBAR ISLANDS\", \"ANDHRA PRADESH\", \"ARUNACHAL PRADESH\", \"ASSAM\", \"BIHAR\", \"CHANDIGARH\", \"CHHATTISGARH\", \"DADRA AND NAGAR HAVELI\", \"DADRA AND NAGAR HAVELI AND DAMAN AND DIU\", \"DAMAN AND DIU\", \"DELHI\", \"GOA\", \"GUJARAT\", \"HARYANA\", \"HIMACHAL PRADESH\", \"JAMMU AND KASHMIR\", \"JHARKHAND\", \"KARNATAKA\", \"KERALA\", \"LADAKH\", \"LAKSHADWEEP\", \"MADHYA PRADESH\", \"MAHARASHTRA\", \"MANIPUR\", \"MEGHALAYA\", \"MIZORAM\", \"NAGALAND\", \"ODISHA\", \"PUDUCHERRY\", \"PUNJAB\", \"RAJASTHAN\", \"SIKKIM\", \"TAMIL NADU\", \"TELANGANA\", \"TRIPURA\", \"UTTAR PRADESH\", \"UTTARAKHAND\", and \"WEST BENGAL\".", + "type": "string" + }, + "regionCode": { + "description": "Required. Two letter region code based on ISO-3166-1 Alpha-2 (UN region codes).", + "type": "string" + } + }, + "type": "object" + }, + "ExternalTransactionTestPurchase": { + "description": "Represents a transaction performed using a test account. These transactions will not be charged by Google.", + "id": "ExternalTransactionTestPurchase", + "properties": {}, + "type": "object" + }, "ExternallyHostedApk": { "description": "Defines an APK available for this application that is hosted externally and not uploaded to Google Play. This function is only available to organizations using Managed Play whose application is configured to restrict distribution to the organizations.", "id": "ExternallyHostedApk", @@ -4794,6 +6416,12 @@ }, "type": "object" }, + "FullRefund": { + "description": "A full refund of the remaining amount of a transaction.", + "id": "FullRefund", + "properties": {}, + "type": "object" + }, "GeneratedApksListResponse": { "description": "Response to list generated APKs.", "id": "GeneratedApksListResponse", @@ -4823,6 +6451,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": { @@ -4840,6 +6475,10 @@ "generatedUniversalApk": { "$ref": "GeneratedUniversalApk", "description": "Generated universal APK, signed with a key corresponding to certificate_sha256_hash. This field is not set if no universal APK was generated for this signing key." + }, + "targetingInfo": { + "$ref": "TargetingInfo", + "description": "Contains targeting information about the generated apks." } }, "type": "object" @@ -4868,6 +6507,46 @@ }, "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 which recovery apk belongs to.", + "type": "string" + }, + "recoveryId": { + "description": "ID of the recovery action.", + "format": "int64", + "type": "string" + }, + "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" + } + }, + "type": "object" + }, "GeneratedSplitApk": { "description": "Download metadata for a split APK.", "id": "GeneratedSplitApk", @@ -4919,6 +6598,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", @@ -4937,11 +6639,30 @@ "CAN_MANAGE_TRACK_USERS", "CAN_MANAGE_PUBLIC_LISTING", "CAN_MANAGE_DRAFT_APPS", - "CAN_MANAGE_ORDERS" + "CAN_MANAGE_ORDERS", + "CAN_MANAGE_APP_CONTENT", + "CAN_VIEW_NON_FINANCIAL_DATA", + "CAN_VIEW_APP_QUALITY" + ], + "enumDeprecated": [ + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "Unknown or unspecified permission.", - "View app information (read-only).", + "View app information (read-only). Deprecated: Try defining a more granular capability. Otherwise, check AppLevelPermission.CAN_VIEW_NON_FINANCIAL_DATA.", "View financial data.", "Admin (all permissions).", "Reply to reviews.", @@ -4950,7 +6671,10 @@ "Manage testing tracks and edit tester lists.", "Manage store presence.", "Edit and delete draft apps.", - "Manage orders and subscriptions." + "Manage orders and subscriptions.", + "Manage policy related pages.", + "View app information (read-only).", + "View app quality data such as Vitals, Crashes etc." ], "type": "string" }, @@ -5136,6 +6860,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", @@ -5153,6 +6962,7 @@ }, "pageInfo": { "$ref": "PageInfo", + "deprecated": true, "description": "Deprecated and unset." }, "tokenPagination": { @@ -5162,6 +6972,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", @@ -5206,6 +7057,41 @@ }, "type": "object" }, + "LanguageTargeting": { + "description": "Targeting based on language.", + "id": "LanguageTargeting", + "properties": { + "alternatives": { + "description": "Alternative languages.", + "items": { + "type": "string" + }, + "type": "array" + }, + "value": { + "description": "ISO-639: 2 or 3 letter language code.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "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", @@ -5356,6 +7242,10 @@ ], "type": "string" }, + "isTokenizedDigitalAsset": { + "description": "Whether this in-app product is declared as a product representing a tokenized digital asset.", + "type": "boolean" + }, "taxRateInfoByRegionCode": { "additionalProperties": { "$ref": "RegionalTaxRateInfo" @@ -5370,6 +7260,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": { @@ -5390,6 +7306,78 @@ "properties": {}, "type": "object" }, + "ModuleMetadata": { + "description": "Metadata of a module.", + "id": "ModuleMetadata", + "properties": { + "deliveryType": { + "description": "Indicates the delivery type (e.g. on-demand) of the module.", + "enum": [ + "UNKNOWN_DELIVERY_TYPE", + "INSTALL_TIME", + "ON_DEMAND", + "FAST_FOLLOW" + ], + "enumDescriptions": [ + "Unspecified delivery type.", + "This module will always be downloaded as part of the initial install of the app.", + "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.", + "This module will be downloaded immediately after initial install finishes. The app can be opened before these modules are downloaded." + ], + "type": "string" + }, + "dependencies": { + "description": "Names of the modules that this module directly depends on. Each module implicitly depends on the base module.", + "items": { + "type": "string" + }, + "type": "array" + }, + "moduleType": { + "description": "Indicates the type of this feature module.", + "enum": [ + "UNKNOWN_MODULE_TYPE", + "FEATURE_MODULE" + ], + "enumDescriptions": [ + "Unknown feature module.", + "Regular feature module." + ], + "type": "string" + }, + "name": { + "description": "Module name.", + "type": "string" + }, + "targeting": { + "$ref": "ModuleTargeting", + "description": "The targeting that makes a conditional module installed. Relevant only for Split APKs." + } + }, + "type": "object" + }, + "ModuleTargeting": { + "description": "Targeting on the module level.", + "id": "ModuleTargeting", + "properties": { + "deviceFeatureTargeting": { + "description": "Targeting for device features.", + "items": { + "$ref": "DeviceFeatureTargeting" + }, + "type": "array" + }, + "sdkVersionTargeting": { + "$ref": "SdkVersionTargeting", + "description": "The sdk version that the variant targets" + }, + "userCountriesTargeting": { + "$ref": "UserCountriesTargeting", + "description": "Countries-level targeting" + } + }, + "type": "object" + }, "Money": { "description": "Represents an amount of money with its currency type.", "id": "Money", @@ -5411,6 +7399,41 @@ }, "type": "object" }, + "MultiAbi": { + "description": "Represents a list of apis.", + "id": "MultiAbi", + "properties": { + "abi": { + "description": "A list of targeted ABIs, as represented by the Android Platform", + "items": { + "$ref": "Abi" + }, + "type": "array" + } + }, + "type": "object" + }, + "MultiAbiTargeting": { + "description": "Targeting based on multiple abis.", + "id": "MultiAbiTargeting", + "properties": { + "alternatives": { + "description": "Targeting of other sibling directories that were in the Bundle. For main splits this is targeting of other main splits.", + "items": { + "$ref": "MultiAbi" + }, + "type": "array" + }, + "value": { + "description": "Value of a multi abi.", + "items": { + "$ref": "MultiAbi" + }, + "type": "array" + } + }, + "type": "object" + }, "OfferDetails": { "description": "Offer details information related to a purchase line item.", "id": "OfferDetails", @@ -5444,6 +7467,17 @@ }, "type": "object" }, + "OneTimeExternalTransaction": { + "description": "Represents a one-time transaction.", + "id": "OneTimeExternalTransaction", + "properties": { + "externalTransactionToken": { + "description": "Input only. Provided during the call to Create. Retrieved from the client when the alternative billing flow is launched.", + "type": "string" + } + }, + "type": "object" + }, "OtherRegionsBasePlanConfig": { "description": "Pricing information for any new locations Play may launch in.", "id": "OtherRegionsBasePlanConfig", @@ -5531,6 +7565,21 @@ }, "type": "object" }, + "PartialRefund": { + "description": "A partial refund of a transaction.", + "id": "PartialRefund", + "properties": { + "refundId": { + "description": "Required. A unique id distinguishing this partial refund. If the refund is successful, subsequent refunds with the same id will fail. Must be unique across refunds for one individual transaction.", + "type": "string" + }, + "refundPreTaxAmount": { + "$ref": "Price", + "description": "Required. The pre-tax amount of the partial refund. Should be less than the remaining pre-tax amount of the transaction." + } + }, + "type": "object" + }, "PausedStateContext": { "description": "Information specific to a subscription in paused state.", "id": "PausedStateContext", @@ -5675,6 +7724,59 @@ }, "type": "object" }, + "RecurringExternalTransaction": { + "description": "Represents a transaction that is part of a recurring series of payments. This can be a subscription or a one-time product with multiple payments (such as preorder).", + "id": "RecurringExternalTransaction", + "properties": { + "externalSubscription": { + "$ref": "ExternalSubscription", + "description": "Details of an external subscription." + }, + "externalTransactionToken": { + "description": "Input only. Provided during the call to Create. Retrieved from the client when the alternative billing flow is launched. Required only for the initial purchase.", + "type": "string" + }, + "initialExternalTransactionId": { + "description": "The external transaction id of the first transaction of this recurring series of transactions. For example, for a subscription this would be the transaction id of the first payment. Required when creating recurring external transactions.", + "type": "string" + }, + "migratedTransactionProgram": { + "description": "Input only. Provided during the call to Create. Must only be used when migrating a subscription from manual monthly reporting to automated reporting.", + "enum": [ + "EXTERNAL_TRANSACTION_PROGRAM_UNSPECIFIED", + "USER_CHOICE_BILLING", + "ALTERTNATIVE_BILLING_ONLY" + ], + "enumDescriptions": [ + "Unspecified transaction program. Not used.", + "User choice billing, where a user may choose between Google Play Billing developer-managed billing.", + "Alternatively billing only, where users may only use developer-manager billing." + ], + "type": "string" + } + }, + "type": "object" + }, + "RefundExternalTransactionRequest": { + "description": "A request to refund an existing external transaction.", + "id": "RefundExternalTransactionRequest", + "properties": { + "fullRefund": { + "$ref": "FullRefund", + "description": "A full-amount refund." + }, + "partialRefund": { + "$ref": "PartialRefund", + "description": "A partial refund." + }, + "refundTime": { + "description": "Required. The time that the transaction was refunded.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "RegionalBasePlanConfig": { "description": "Configuration for a base plan specific to a region.", "id": "RegionalBasePlanConfig", @@ -5699,10 +7801,24 @@ "id": "RegionalPriceMigrationConfig", "properties": { "oldestAllowedPriceVersionTime": { - "description": "Required. The cutoff time for historical prices that subscribers can remain paying. Subscribers who are on a price that was created before this cutoff time will be migrated to the currently-offered price. These subscribers will receive a notification that they will be paying a different price. Subscribers who do not agree to the new price will have their subscription ended at the next renewal.", + "description": "Required. The cutoff time for historical prices that subscribers can remain paying. Subscribers on prices which were available at this cutoff time or later will stay on their existing price. Subscribers on older prices will be migrated to the currently-offered price. The migrated subscribers will receive a notification that they will be paying a different price. Subscribers who do not agree to the new price will have their subscription ended at the next renewal.", "format": "google-datetime", "type": "string" }, + "priceIncreaseType": { + "description": "Optional. The behavior the caller wants users to see when there is a price increase during migration. If left unset, the behavior defaults to PRICE_INCREASE_TYPE_OPT_IN. Note that the first opt-out price increase migration for each app must be initiated in Play Console.", + "enum": [ + "PRICE_INCREASE_TYPE_UNSPECIFIED", + "PRICE_INCREASE_TYPE_OPT_IN", + "PRICE_INCREASE_TYPE_OPT_OUT" + ], + "enumDescriptions": [ + "Unspecified state.", + "Price increase will be presented to users on an opt-in basis.", + "Price increase will be presented to users on an opt-out basis." + ], + "type": "string" + }, "regionCode": { "description": "Required. Region code this configuration applies to, as defined by ISO 3166-2, e.g. \"US\".", "type": "string" @@ -5754,7 +7870,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": { @@ -5802,12 +7918,73 @@ }, "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", "properties": { "version": { - "description": "Required. A string representing version of the available regions being used for the specified resource. The current version is 2022/02.", + "description": "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 published in [this article](https://support.google.com/googleplay/android-developer/answer/10532353). Each time the supported locations substantially change, the version will be incremented. Using this field will ensure that creating and updating the resource with an older region's version and set of regional prices and currencies will succeed even though a new version is available. The latest version is 2022/02.", + "type": "string" + } + }, + "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" } }, @@ -5900,6 +8077,201 @@ }, "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", + "properties": { + "densityAlias": { + "description": "Alias for a screen density.", + "enum": [ + "DENSITY_UNSPECIFIED", + "NODPI", + "LDPI", + "MDPI", + "TVDPI", + "HDPI", + "XHDPI", + "XXHDPI", + "XXXHDPI" + ], + "enumDescriptions": [ + "Unspecified screen density.", + "NODPI screen density.", + "LDPI screen density.", + "MDPI screen density.", + "TVDPI screen density.", + "HDPI screen density.", + "XHDPI screen density.", + "XXHDPI screen density.", + "XXXHDPI screen density." + ], + "type": "string" + }, + "densityDpi": { + "description": "Value for density dpi.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ScreenDensityTargeting": { + "description": "Targeting based on screen density.", + "id": "ScreenDensityTargeting", + "properties": { + "alternatives": { + "description": "Targeting of other sibling directories that were in the Bundle. For main splits this is targeting of other main splits.", + "items": { + "$ref": "ScreenDensity" + }, + "type": "array" + }, + "value": { + "description": "Value of a screen density.", + "items": { + "$ref": "ScreenDensity" + }, + "type": "array" + } + }, + "type": "object" + }, + "SdkVersion": { + "description": "Represents an sdk version.", + "id": "SdkVersion", + "properties": { + "min": { + "description": "Inclusive minimum value of an sdk version.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "SdkVersionTargeting": { + "description": "Targeting based on sdk version.", + "id": "SdkVersionTargeting", + "properties": { + "alternatives": { + "description": "Targeting of other sibling directories that were in the Bundle. For main splits this is targeting of other main splits.", + "items": { + "$ref": "SdkVersion" + }, + "type": "array" + }, + "value": { + "description": "Value of an sdk version.", + "items": { + "$ref": "SdkVersion" + }, + "type": "array" + } + }, + "type": "object" + }, + "SplitApkMetadata": { + "description": "Holds data specific to Split APKs.", + "id": "SplitApkMetadata", + "properties": { + "isMasterSplit": { + "description": "Indicates whether this APK is the main split of the module.", + "type": "boolean" + }, + "splitId": { + "description": "Id of the split.", + "type": "string" + } + }, + "type": "object" + }, + "SplitApkVariant": { + "description": "Variant is a group of APKs that covers a part of the device configuration space. APKs from multiple variants are never combined on one device.", + "id": "SplitApkVariant", + "properties": { + "apkSet": { + "description": "Set of APKs, one set per module.", + "items": { + "$ref": "ApkSet" + }, + "type": "array" + }, + "targeting": { + "$ref": "VariantTargeting", + "description": "Variant-level targeting." + }, + "variantNumber": { + "description": "Number of the variant, starting at 0 (unless overridden). A device will receive APKs from the first variant that matches the device configuration, with higher variant numbers having priority over lower variant numbers.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "StandaloneApkMetadata": { + "description": "Holds data specific to Standalone APKs.", + "id": "StandaloneApkMetadata", + "properties": { + "fusedModuleName": { + "description": "Names of the modules fused in this standalone APK.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "SubscribeWithGoogleInfo": { "description": "Information associated with purchases made with 'Subscribe with Google'.", "id": "SubscribeWithGoogleInfo", @@ -5932,7 +8304,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" }, @@ -6003,7 +8376,7 @@ "id": "SubscriptionItemPriceChangeDetails", "properties": { "expectedNewPriceChargeTime": { - "description": "The renewal time at which the price change will become effective for the user. This is subject to change(to a future time) due to cases where the renewal time shifts like pause.", + "description": "The renewal time at which the price change will become effective for the user. This is subject to change(to a future time) due to cases where the renewal time shifts like pause. This field is only populated if the price change has not taken effect.", "format": "google-datetime", "type": "string" }, @@ -6016,12 +8389,14 @@ "enum": [ "PRICE_CHANGE_MODE_UNSPECIFIED", "PRICE_DECREASE", - "PRICE_INCREASE" + "PRICE_INCREASE", + "OPT_OUT_PRICE_INCREASE" ], "enumDescriptions": [ "Price change mode unspecified. This value should never be set.", "If the subscription price is decreasing.", - "If the subscription price is increasing and the user needs to accept it." + "If the subscription price is increasing and the user needs to accept it.", + "If the subscription price is increasing with opt out mode." ], "type": "string" }, @@ -6338,6 +8713,10 @@ "$ref": "AutoRenewingPlan", "description": "The item is auto renewing." }, + "deferredItemReplacement": { + "$ref": "DeferredItemReplacement", + "description": "Information for deferred item replacement." + }, "expiryTime": { "description": "Time at which the subscription expired or will expire unless the access is extended (ex. renews).", "format": "google-datetime", @@ -6503,6 +8882,10 @@ ], "type": "string" }, + "isTokenizedDigitalAsset": { + "description": "Whether this subscription is declared as a product representing a tokenized digital asset.", + "type": "boolean" + }, "taxRateInfoByRegionCode": { "additionalProperties": { "$ref": "RegionalTaxRateInfo" @@ -6513,6 +8896,25 @@ }, "type": "object" }, + "SystemApkOptions": { + "description": "Options for system APKs.", + "id": "SystemApkOptions", + "properties": { + "rotated": { + "description": "Whether to use the rotated key for signing the system APK.", + "type": "boolean" + }, + "uncompressedDexFiles": { + "description": "Whether system APK was generated with uncompressed dex files.", + "type": "boolean" + }, + "uncompressedNativeLibraries": { + "description": "Whether system APK was generated with uncompressed native libraries.", + "type": "boolean" + } + }, + "type": "object" + }, "SystemApksListResponse": { "description": "Response to list previously created system APK variants.", "id": "SystemApksListResponse", @@ -6544,6 +8946,58 @@ "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", + "properties": { + "assetSliceSet": { + "description": "List of created asset slices.", + "items": { + "$ref": "AssetSliceSet" + }, + "type": "array" + }, + "packageName": { + "description": "The package name of this app.", + "type": "string" + }, + "variant": { + "description": "List of the created variants.", + "items": { + "$ref": "SplitApkVariant" + }, + "type": "array" + } + }, + "type": "object" + }, "TargetingRuleScope": { "description": "Defines the scope of subscriptions which a targeting rule can match to target offers to users based on past or current entitlement.", "id": "TargetingRuleScope", @@ -6555,6 +9009,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", @@ -6575,6 +9048,64 @@ }, "type": "object" }, + "TextureCompressionFormat": { + "description": "Represents texture compression format.", + "id": "TextureCompressionFormat", + "properties": { + "alias": { + "description": "Alias for texture compression format.", + "enum": [ + "UNSPECIFIED_TEXTURE_COMPRESSION_FORMAT", + "ETC1_RGB8", + "PALETTED", + "THREE_DC", + "ATC", + "LATC", + "DXT1", + "S3TC", + "PVRTC", + "ASTC", + "ETC2" + ], + "enumDescriptions": [ + "Unspecified format.", + "ETC1_RGB8 format.", + "PALETTED format.", + "THREE_DC format.", + "ATC format.", + "LATC format.", + "DXT1 format.", + "S3TC format.", + "PVRTC format.", + "ASTC format.", + "ETC2 format." + ], + "type": "string" + } + }, + "type": "object" + }, + "TextureCompressionFormatTargeting": { + "description": "Targeting by a texture compression format.", + "id": "TextureCompressionFormatTargeting", + "properties": { + "alternatives": { + "description": "List of alternative TCFs (TCFs targeted by the sibling splits).", + "items": { + "$ref": "TextureCompressionFormat" + }, + "type": "array" + }, + "value": { + "description": "The list of targeted TCFs. Should not be empty.", + "items": { + "$ref": "TextureCompressionFormat" + }, + "type": "array" + } + }, + "type": "object" + }, "Timestamp": { "description": "A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970.", "id": "Timestamp", @@ -6618,7 +9149,46 @@ "type": "array" }, "track": { - "description": "Identifier of the track.", + "description": "Identifier of the track. Form factor tracks have a special prefix as an identifier, for example `wear:production`, `automotive:production`. [More on track name](https://developers.google.com/android-publisher/tracks#ff-track-name)", + "type": "string" + } + }, + "type": "object" + }, + "TrackConfig": { + "description": "Configurations of the new track.", + "id": "TrackConfig", + "properties": { + "formFactor": { + "description": "Required. Form factor of the new track. Defaults to the default track.", + "enum": [ + "FORM_FACTOR_UNSPECIFIED", + "DEFAULT", + "WEAR", + "AUTOMOTIVE" + ], + "enumDescriptions": [ + "Fallback value, do not use.", + "Default track.", + "Wear form factor track.", + "Automotive form factor track." + ], + "type": "string" + }, + "track": { + "description": "Required. Identifier of the new track. For default tracks, this field consists of the track alias only. Form factor tracks have a special prefix as an identifier, for example `wear:production`, `automotive:production`. This prefix must match the value of the `form_factor` field, if it is not a default track. [More on track name](https://developers.google.com/android-publisher/tracks#ff-track-name)", + "type": "string" + }, + "type": { + "description": "Required. Type of the new track. Currently, the only supported value is closedTesting.", + "enum": [ + "TRACK_TYPE_UNSPECIFIED", + "CLOSED_TESTING" + ], + "enumDescriptions": [ + "Fallback value, do not use.", + "Closed testing track." + ], "type": "string" } }, @@ -6724,7 +9294,7 @@ "type": "string" }, "tracks": { - "description": "All tracks.", + "description": "All tracks (including tracks with no releases).", "items": { "$ref": "Track" }, @@ -6733,6 +9303,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", @@ -6793,11 +9469,34 @@ "CAN_MANAGE_DRAFT_APPS_GLOBAL", "CAN_CREATE_MANAGED_PLAY_APPS_GLOBAL", "CAN_CHANGE_MANAGED_PLAY_SETTING_GLOBAL", - "CAN_MANAGE_ORDERS_GLOBAL" + "CAN_MANAGE_ORDERS_GLOBAL", + "CAN_MANAGE_APP_CONTENT_GLOBAL", + "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL", + "CAN_VIEW_APP_QUALITY_GLOBAL" + ], + "enumDeprecated": [ + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "Unknown or unspecified permission.", - "View app information and download bulk reports (read-only).", + "View app information and download bulk reports (read-only). Deprecated: Check CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL.", "View financial data, orders, and cancellation survey responses.", "Admin (all permissions).", "Edit Play Games Services projects.", @@ -6810,7 +9509,10 @@ "Create, edit, and delete draft apps.", "Create and publish private apps to your organization.", "Choose whether apps are public, or only available to your organization.", - "Manage orders and subscriptions." + "Manage orders and subscriptions.", + "Manage policy related pages on all apps for the developer.", + "View app information and download bulk reports (read-only).", + "View app quality information for all apps for the developer." ], "type": "string" }, @@ -6905,6 +9607,42 @@ }, "type": "object" }, + "UserCountriesTargeting": { + "description": "Describes an inclusive/exclusive list of country codes that module targets.", + "id": "UserCountriesTargeting", + "properties": { + "countryCodes": { + "description": "List of country codes in the two-letter CLDR territory format.", + "items": { + "type": "string" + }, + "type": "array" + }, + "exclude": { + "description": "Indicates if the list above is exclusive.", + "type": "boolean" + } + }, + "type": "object" + }, + "UserCountrySet": { + "description": "A set of user countries. A country set determines what variation of app content gets served to a specific location.", + "id": "UserCountrySet", + "properties": { + "countryCodes": { + "description": "List of country codes representing countries. A Country code is represented in ISO 3166 alpha-2 format. For Example:- \"IT\" for Italy, \"GE\" for Georgia.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Country set name.", + "type": "string" + } + }, + "type": "object" + }, "UserInitiatedCancellation": { "description": "Information specific to cancellations initiated by users.", "id": "UserInitiatedCancellation", @@ -6945,6 +9683,10 @@ "$ref": "DeviceSpec", "description": "The device spec used to generate the APK." }, + "options": { + "$ref": "SystemApkOptions", + "description": "Optional. Options applied to the generated APK." + }, "variantId": { "description": "Output only. The ID of a previously created system APK variant.", "format": "uint32", @@ -6954,6 +9696,33 @@ }, "type": "object" }, + "VariantTargeting": { + "description": "Targeting on the level of variants.", + "id": "VariantTargeting", + "properties": { + "abiTargeting": { + "$ref": "AbiTargeting", + "description": "The abi that the variant targets" + }, + "multiAbiTargeting": { + "$ref": "MultiAbiTargeting", + "description": "Multi-api-level targeting" + }, + "screenDensityTargeting": { + "$ref": "ScreenDensityTargeting", + "description": "The screen densities that this variant supports" + }, + "sdkVersionTargeting": { + "$ref": "SdkVersionTargeting", + "description": "The sdk version that the variant targets" + }, + "textureCompressionFormatTargeting": { + "$ref": "TextureCompressionFormatTargeting", + "description": "Texture-compression-format-level targeting" + } + }, + "type": "object" + }, "VoidedPurchase": { "description": "A VoidedPurchase resource indicates a purchase that was either canceled/refunded/charged-back.", "id": "VoidedPurchase", diff --git a/etc/api/apigateway/v1/apigateway-api.json b/etc/api/apigateway/v1/apigateway-api.json index 15ac76c9f3..81f9396a61 100644 --- a/etc/api/apigateway/v1/apigateway-api.json +++ b/etc/api/apigateway/v1/apigateway-api.json @@ -1036,7 +1036,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "apigateway.projects.locations.operations.list", @@ -1083,7 +1083,7 @@ } } }, - "revision": "20221213", + "revision": "20240221", "rootUrl": "https://apigateway.googleapis.com/", "schemas": { "ApigatewayApi": { @@ -1336,14 +1336,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1555,7 +1555,7 @@ "type": "object" }, "ApigatewayLocation": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "ApigatewayLocation", "properties": { "displayName": { @@ -1617,7 +1617,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" } }, @@ -1691,7 +1691,7 @@ "type": "object" }, "ApigatewayPolicy": { - "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/).", + "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": "ApigatewayPolicy", "properties": { "auditConfigs": { diff --git a/etc/api/apigateway/v1beta/apigateway-api.json b/etc/api/apigateway/v1beta/apigateway-api.json index 34bcb72f0c..b57f14315f 100644 --- a/etc/api/apigateway/v1beta/apigateway-api.json +++ b/etc/api/apigateway/v1beta/apigateway-api.json @@ -1036,7 +1036,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "apigateway.projects.locations.operations.list", @@ -1083,7 +1083,7 @@ } } }, - "revision": "20221213", + "revision": "20240221", "rootUrl": "https://apigateway.googleapis.com/", "schemas": { "ApigatewayApi": { @@ -1332,6 +1332,7 @@ "type": "object" }, "ApigatewayBackendConfig": { + "deprecated": true, "description": "Configuration for all backends.", "id": "ApigatewayBackendConfig", "properties": { @@ -1351,14 +1352,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1464,6 +1465,7 @@ "properties": { "backendConfig": { "$ref": "ApigatewayBackendConfig", + "deprecated": true, "description": "Required. Backend settings that are applied to all backends of the Gateway." } }, @@ -1581,7 +1583,7 @@ "type": "object" }, "ApigatewayLocation": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "ApigatewayLocation", "properties": { "displayName": { @@ -1643,7 +1645,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" } }, @@ -1717,7 +1719,7 @@ "type": "object" }, "ApigatewayPolicy": { - "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/).", + "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": "ApigatewayPolicy", "properties": { "auditConfigs": { diff --git a/etc/api/apigee/v1/apigee-api.json b/etc/api/apigee/v1/apigee-api.json index e37eee9bce..7f4fb86595 100644 --- a/etc/api/apigee/v1/apigee-api.json +++ b/etc/api/apigee/v1/apigee-api.json @@ -165,7 +165,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", @@ -181,7 +181,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" @@ -317,6 +317,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", @@ -453,6 +478,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": { @@ -1464,6 +1523,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" + ] } } } @@ -1594,6 +1681,488 @@ } } }, + "appgroups": { + "methods": { + "create": { + "description": "Creates an AppGroup. Once created, user can register apps under the AppGroup to obtain secret key and password. At creation time, the AppGroup's state is set as `active`.", + "flatPath": "v1/organizations/{organizationsId}/appgroups", + "httpMethod": "POST", + "id": "apigee.organizations.appgroups.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Name of the Apigee organization in which the AppGroup is created. Use the following structure in your request: `organizations/{org}`.", + "location": "path", + "pattern": "^organizations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/appgroups", + "request": { + "$ref": "GoogleCloudApigeeV1AppGroup" + }, + "response": { + "$ref": "GoogleCloudApigeeV1AppGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an AppGroup. All app and API keys associations with the AppGroup are also removed. **Warning**: This API will permanently delete the AppGroup and related artifacts. **Note**: The delete operation is asynchronous. The AppGroup app is deleted immediately, but its associated resources, such as apps and API keys, may take anywhere from a few seconds to a few minutes to be deleted.", + "flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}", + "httpMethod": "DELETE", + "id": "apigee.organizations.appgroups.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the AppGroup. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}`", + "location": "path", + "pattern": "^organizations/[^/]+/appgroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1AppGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns the AppGroup details for the provided AppGroup name in the request URI.", + "flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}", + "httpMethod": "GET", + "id": "apigee.organizations.appgroups.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the AppGroup. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}`", + "location": "path", + "pattern": "^organizations/[^/]+/appgroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1AppGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all AppGroups in an organization. A maximum of 1000 AppGroups are returned in the response if PageSize is not specified, or if the PageSize is greater than 1000.", + "flatPath": "v1/organizations/{organizationsId}/appgroups", + "httpMethod": "GET", + "id": "apigee.organizations.appgroups.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "The filter expression to be used to get the list of AppGroups, where filtering can be done on status, channelId or channelUri of the app group. Examples: filter=status=active\", filter=channelId=, filter=channelUri=", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Count of AppGroups a single page can have in the response. If unspecified, at most 1000 AppGroups will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The starting index record for listing the AppGroups.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the Apigee organization. Use the following structure in your request: `organizations/{org}`.", + "location": "path", + "pattern": "^organizations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/appgroups", + "response": { + "$ref": "GoogleCloudApigeeV1ListAppGroupsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "update": { + "description": "Updates an AppGroup. This API replaces the existing AppGroup details with those specified in the request. Include or exclude any existing details that you want to retain or delete, respectively. Note that the state of the AppGroup should be updated using `action`, and not via AppGroup.", + "flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}", + "httpMethod": "PUT", + "id": "apigee.organizations.appgroups.update", + "parameterOrder": [ + "name" + ], + "parameters": { + "action": { + "description": "Activate or de-activate the AppGroup by setting the action as `active` or `inactive`. The `Content-Type` header must be set to `application/octet-stream`, with empty body.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. Name of the AppGroup. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}`", + "location": "path", + "pattern": "^organizations/[^/]+/appgroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudApigeeV1AppGroup" + }, + "response": { + "$ref": "GoogleCloudApigeeV1AppGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "apps": { + "methods": { + "create": { + "description": "Creates an app and associates it with an AppGroup. This API associates the AppGroup app with the specified API product and auto-generates an API key for the app to use in calls to API proxies inside that API product. The `name` is the unique ID of the app that you can use in API calls.", + "flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps", + "httpMethod": "POST", + "id": "apigee.organizations.appgroups.apps.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Name of the AppGroup. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}`", + "location": "path", + "pattern": "^organizations/[^/]+/appgroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/apps", + "request": { + "$ref": "GoogleCloudApigeeV1AppGroupApp" + }, + "response": { + "$ref": "GoogleCloudApigeeV1AppGroupApp" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an AppGroup app. **Note**: The delete operation is asynchronous. The AppGroup app is deleted immediately, but its associated resources, such as app keys or access tokens, may take anywhere from a few seconds to a few minutes to be deleted.", + "flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps/{appsId}", + "httpMethod": "DELETE", + "id": "apigee.organizations.appgroups.apps.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the AppGroup app. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}`", + "location": "path", + "pattern": "^organizations/[^/]+/appgroups/[^/]+/apps/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1AppGroupApp" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns the details for an AppGroup app.", + "flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps/{appsId}", + "httpMethod": "GET", + "id": "apigee.organizations.appgroups.apps.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the AppGroup app. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}`", + "location": "path", + "pattern": "^organizations/[^/]+/appgroups/[^/]+/apps/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1AppGroupApp" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all apps created by an AppGroup in an Apigee organization. Optionally, you can request an expanded view of the AppGroup apps. Lists all AppGroupApps in an AppGroup. A maximum of 1000 AppGroup apps are returned in the response if PageSize is not specified, or if the PageSize is greater than 1000.", + "flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps", + "httpMethod": "GET", + "id": "apigee.organizations.appgroups.apps.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. Maximum number entries to return. If unspecified, at most 1000 entries will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Page token. If provides, must be a valid AppGroup app returned from a previous call that can be used to retrieve the next page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the AppGroup. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}`", + "location": "path", + "pattern": "^organizations/[^/]+/appgroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/apps", + "response": { + "$ref": "GoogleCloudApigeeV1ListAppGroupAppsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "update": { + "description": "Updates the details for an AppGroup app. In addition, you can add an API product to an AppGroup app and automatically generate an API key for the app to use when calling APIs in the API product. If you want to use an existing API key for the API product, add the API product to the API key using the UpdateAppGroupAppKey API. Using this API, you cannot update the app name, as it is the primary key used to identify the app and cannot be changed. This API replaces the existing attributes with those specified in the request. Include or exclude any existing attributes that you want to retain or delete, respectively.", + "flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps/{appsId}", + "httpMethod": "PUT", + "id": "apigee.organizations.appgroups.apps.update", + "parameterOrder": [ + "name" + ], + "parameters": { + "action": { + "description": "Approve or revoke the consumer key by setting this value to `approve` or `revoke`. The `Content-Type` header must be set to `application/octet-stream`, with empty body.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. Name of the AppGroup app. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}`", + "location": "path", + "pattern": "^organizations/[^/]+/appgroups/[^/]+/apps/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudApigeeV1AppGroupApp" + }, + "response": { + "$ref": "GoogleCloudApigeeV1AppGroupApp" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "keys": { + "methods": { + "create": { + "description": "Creates a custom consumer key and secret for a AppGroup app. This is particularly useful if you want to migrate existing consumer keys and secrets to Apigee from another system. Consumer keys and secrets can contain letters, numbers, underscores, and hyphens. No other special characters are allowed. To avoid service disruptions, a consumer key and secret should not exceed 2 KBs each. **Note**: When creating the consumer key and secret, an association to API products will not be made. Therefore, you should not specify the associated API products in your request. Instead, use the ProductizeAppGroupAppKey API to make the association after the consumer key and secret are created. If a consumer key and secret already exist, you can keep them or delete them using the DeleteAppGroupAppKey API.", + "flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps/{appsId}/keys", + "httpMethod": "POST", + "id": "apigee.organizations.appgroups.apps.keys.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Parent of the AppGroup app key. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}/keys`", + "location": "path", + "pattern": "^organizations/[^/]+/appgroups/[^/]+/apps/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/keys", + "request": { + "$ref": "GoogleCloudApigeeV1AppGroupAppKey" + }, + "response": { + "$ref": "GoogleCloudApigeeV1AppGroupAppKey" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an app's consumer key and removes all API products associated with the app. After the consumer key is deleted, it cannot be used to access any APIs.", + "flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps/{appsId}/keys/{keysId}", + "httpMethod": "DELETE", + "id": "apigee.organizations.appgroups.apps.keys.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the AppGroup app key. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}/keys/{key}`", + "location": "path", + "pattern": "^organizations/[^/]+/appgroups/[^/]+/apps/[^/]+/keys/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1AppGroupAppKey" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details for a consumer key for a AppGroup app, including the key and secret value, associated API products, and other information.", + "flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps/{appsId}/keys/{keysId}", + "httpMethod": "GET", + "id": "apigee.organizations.appgroups.apps.keys.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the AppGroup app key. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}/keys/{key}`", + "location": "path", + "pattern": "^organizations/[^/]+/appgroups/[^/]+/apps/[^/]+/keys/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1AppGroupAppKey" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "updateAppGroupAppKey": { + "description": "Adds an API product to an AppGroupAppKey, enabling the app that holds the key to access the API resources bundled in the API product. In addition, you can add attributes to the AppGroupAppKey. This API replaces the existing attributes with those specified in the request. Include or exclude any existing attributes that you want to retain or delete, respectively. You can use the same key to access all API products associated with the app.", + "flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps/{appsId}/keys/{keysId}", + "httpMethod": "POST", + "id": "apigee.organizations.appgroups.apps.keys.updateAppGroupAppKey", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the AppGroup app key. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}/keys/{key}`", + "location": "path", + "pattern": "^organizations/[^/]+/appgroups/[^/]+/apps/[^/]+/keys/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudApigeeV1UpdateAppGroupAppKeyRequest" + }, + "response": { + "$ref": "GoogleCloudApigeeV1AppGroupAppKey" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "apiproducts": { + "methods": { + "delete": { + "description": "Removes an API product from an app's consumer key. After the API product is removed, the app cannot access the API resources defined in that API product. **Note**: The consumer key is not removed, only its association with the API product.", + "flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps/{appsId}/keys/{keysId}/apiproducts/{apiproductsId}", + "httpMethod": "DELETE", + "id": "apigee.organizations.appgroups.apps.keys.apiproducts.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Parent of the AppGroup app key. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}/keys/{key}/apiproducts/{apiproduct}`", + "location": "path", + "pattern": "^organizations/[^/]+/appgroups/[^/]+/apps/[^/]+/keys/[^/]+/apiproducts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1AppGroupAppKey" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "updateAppGroupAppKeyApiProduct": { + "description": "Approves or revokes the consumer key for an API product. After a consumer key is approved, the app can use it to access APIs. A consumer key that is revoked or pending cannot be used to access an API. Any access tokens associated with a revoked consumer key will remain active. However, Apigee checks the status of the consumer key and if set to `revoked` will not allow access to the API.", + "flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps/{appsId}/keys/{keysId}/apiproducts/{apiproductsId}", + "httpMethod": "POST", + "id": "apigee.organizations.appgroups.apps.keys.apiproducts.updateAppGroupAppKeyApiProduct", + "parameterOrder": [ + "name" + ], + "parameters": { + "action": { + "description": "Approve or revoke the consumer key by setting this value to `approve` or `revoke` respectively. The `Content-Type` header, if set, must be set to `application/octet-stream`, with empty body.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. Name of the API product in the developer app key in the following format: `organizations/{org}/appgroups/{app_group_name}/apps/{app}/keys/{key}/apiproducts/{apiproduct}`", + "location": "path", + "pattern": "^organizations/[^/]+/appgroups/[^/]+/apps/[^/]+/keys/[^/]+/apiproducts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + } + } + } + }, "apps": { "methods": { "get": { @@ -1636,7 +2205,7 @@ "type": "string" }, "apptype": { - "description": "Optional. Filter by the type of the app. Valid values are `company` or `developer`. Defaults to `developer`.", + "description": "Optional. 'apptype' is no longer available. Use a 'filter' instead.", "location": "query", "type": "string" }, @@ -1645,6 +2214,11 @@ "location": "query", "type": "boolean" }, + "filter": { + "description": "Optional. The filter expression to be used to get the list of apps, where filtering can be done on developerEmail, apiProduct, consumerKey, status, appId, appName, appType and appGroup. Examples: \"developerEmail=foo@bar.com\", \"appType=AppGroup\", or \"appType=Developer\" \"filter\" is supported from ver 1.10.0 and above.", + "location": "query", + "type": "string" + }, "ids": { "description": "Optional. Comma-separated list of app IDs on which to filter.", "location": "query", @@ -1660,6 +2234,17 @@ "location": "query", "type": "string" }, + "pageSize": { + "description": "Optional. Count of apps a single page can have in the response. If unspecified, at most 100 apps will be returned. The maximum value is 100; values above 100 will be coerced to 100. \"page_size\" is supported from ver 1.10.0 and above.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. The starting index record for listing the developers. \"page_token\" is supported from ver 1.10.0 and above.", + "location": "query", + "type": "string" + }, "parent": { "description": "Required. Resource path of the parent in the following format: `organizations/{org}`", "location": "path", @@ -2529,7 +3114,7 @@ "keys": { "methods": { "create": { - "description": "Creates a custom consumer key and secret for a developer app. This is particularly useful if you want to migrate existing consumer keys and secrets to Apigee from another system. Consumer keys and secrets can contain letters, numbers, underscores, and hyphens. No other special characters are allowed. To avoid service disruptions, a consumer key and secret should not exceed 2 KBs each. **Note**: When creating the consumer key and secret, an association to API products will not be made. Therefore, you should not specify the associated API products in your request. Instead, use the UpdateDeveloperAppKey API to make the association after the consumer key and secret are created. If a consumer key and secret already exist, you can keep them or delete them using the DeleteDeveloperAppKey API.", + "description": "Creates a custom consumer key and secret for a developer app. This is particularly useful if you want to migrate existing consumer keys and secrets to Apigee from another system. Consumer keys and secrets can contain letters, numbers, underscores, and hyphens. No other special characters are allowed. To avoid service disruptions, a consumer key and secret should not exceed 2 KBs each. **Note**: When creating the consumer key and secret, an association to API products will not be made. Therefore, you should not specify the associated API products in your request. Instead, use the UpdateDeveloperAppKey API to make the association after the consumer key and secret are created. If a consumer key and secret already exist, you can keep them or delete them using the DeleteDeveloperAppKey API. **Note**: All keys start out with status=approved, even if status=revoked is passed when the key is created. To revoke a key, use the UpdateDeveloperAppKey API.", "flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}/keys", "httpMethod": "POST", "id": "apigee.organizations.developers.apps.keys.create", @@ -2538,7 +3123,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, @@ -2731,7 +3316,7 @@ "create": { "methods": { "create": { - "description": "Creates a custom consumer key and secret for a developer app. This is particularly useful if you want to migrate existing consumer keys and secrets to Apigee from another system. Consumer keys and secrets can contain letters, numbers, underscores, and hyphens. No other special characters are allowed. To avoid service disruptions, a consumer key and secret should not exceed 2 KBs each. **Note**: When creating the consumer key and secret, an association to API products will not be made. Therefore, you should not specify the associated API products in your request. Instead, use the UpdateDeveloperAppKey API to make the association after the consumer key and secret are created. If a consumer key and secret already exist, you can keep them or delete them using the DeleteDeveloperAppKey API.", + "description": "Creates a custom consumer key and secret for a developer app. This is particularly useful if you want to migrate existing consumer keys and secrets to Apigee from another system. Consumer keys and secrets can contain letters, numbers, underscores, and hyphens. No other special characters are allowed. To avoid service disruptions, a consumer key and secret should not exceed 2 KBs each. **Note**: When creating the consumer key and secret, an association to API products will not be made. Therefore, you should not specify the associated API products in your request. Instead, use the UpdateDeveloperAppKey API to make the association after the consumer key and secret are created. If a consumer key and secret already exist, you can keep them or delete them using the DeleteDeveloperAppKey API. **Note**: All keys start out with status=approved, even if status=revoked is passed when the key is created. To revoke a key, use the UpdateDeveloperAppKey API.", "flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}/keys/create", "httpMethod": "POST", "id": "apigee.organizations.developers.apps.keys.create.create", @@ -2740,7 +3325,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, @@ -3189,7 +3774,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" }, @@ -3355,7 +3940,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" @@ -3506,7 +4091,7 @@ ], "parameters": { "name": { - "description": "Optional. Name of the environment. Alternatively, the name may be specified in the request body in the name field.", + "description": "Optional. Name of the environment.", "location": "query", "type": "string" }, @@ -3579,6 +4164,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getAddonsConfig": { + "description": "Gets the add-ons config of an environment.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/addonsConfig", + "httpMethod": "GET", + "id": "apigee.organizations.environments.getAddonsConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the add-ons config. Must be in the format of `/organizations/{org}/environments/{env}/addonsConfig`", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+/addonsConfig$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1AddonsConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getApiSecurityRuntimeConfig": { "description": "Gets the API Security runtime configuration for an environment. This named ApiSecurityRuntimeConfig to prevent conflicts with ApiSecurityConfig from addon config.", "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/apiSecurityRuntimeConfig", @@ -3685,6 +4295,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getSecurityActionsConfig": { + "description": "GetSecurityActionConfig returns the current SecurityActions configuration.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityActionsConfig", + "httpMethod": "GET", + "id": "apigee.organizations.environments.getSecurityActionsConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the SecurityActionsConfig to retrieve. This will always be: `organizations/{org}/environments/{env}/security_actions_config`", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+/securityActionsConfig$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1SecurityActionsConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getTraceConfig": { "description": "Get distributed trace configuration in an environment.", "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/traceConfig", @@ -3948,6 +4583,40 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "updateSecurityActionsConfig": { + "description": "UpdateSecurityActionConfig updates the current SecurityActions configuration. This method is used to enable/disable the feature at the environment level.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityActionsConfig", + "httpMethod": "PATCH", + "id": "apigee.organizations.environments.updateSecurityActionsConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "This is a singleton resource, the name will always be set by SecurityActions and any user input will be ignored. The name is always: `organizations/{org}/environments/{env}/security_actions_config`", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+/securityActionsConfig$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to update.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudApigeeV1SecurityActionsConfig" + }, + "response": { + "$ref": "GoogleCloudApigeeV1SecurityActionsConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "updateTraceConfig": { "description": "Updates the trace configurations in an environment. Note that the repeated fields have replace semantics when included in the field mask and that they will be overwritten by the value of the fields in the request body.", "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/traceConfig", @@ -3984,6 +4653,38 @@ } }, "resources": { + "addonsConfig": { + "methods": { + "setAddonEnablement": { + "description": "Updates an add-on enablement status of an environment.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/addonsConfig:setAddonEnablement", + "httpMethod": "POST", + "id": "apigee.organizations.environments.addonsConfig.setAddonEnablement", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the add-ons config. Must be in the format of `/organizations/{org}/environments/{env}/addonsConfig`", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+/addonsConfig$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:setAddonEnablement", + "request": { + "$ref": "GoogleCloudApigeeV1SetAddonEnablementRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "analytics": { "resources": { "admin": { @@ -4164,7 +4865,7 @@ "type": "boolean" }, "sequencedRollout": { - "description": "Flag that specifies whether to enable sequenced rollout. If set to `true`, the routing rules for this deployment and the environment changes to add the deployment will be rolled out in a safe order. This reduces the risk of downtime that could be caused by changing the environment group's routing before the new destination for the affected traffic is ready to receive it. This should only be necessary if the new deployment will be capturing traffic from another environment under a shared environment group or if traffic will be rerouted to a different environment due to a base path removal. The [GenerateDeployChangeReport API](GenerateDeployChangeReport) may be used to examine routing changes before issuing the deployment request, and its response will indicate if a sequenced rollout is recommended for the deployment.", + "description": "Flag that specifies whether to enable sequenced rollout. If set to `true`, the routing rules for this deployment and the environment changes to add the deployment will be rolled out in a safe order. This reduces the risk of downtime that could be caused by changing the environment group's routing before the new destination for the affected traffic is ready to receive it. This should only be necessary if the new deployment will be capturing traffic from another environment under a shared environment group or if traffic will be rerouted to a different environment due to a base path removal. The generateDeployChangeReport API may be used to examine routing changes before issuing the deployment request, and its response will indicate if a sequenced rollout is recommended for the deployment.", "location": "query", "type": "boolean" }, @@ -4224,7 +4925,7 @@ "type": "string" }, "sequencedRollout": { - "description": "Flag that specifies whether to enable sequenced rollout. If set to `true`, the environment group routing rules corresponding to this deployment will be removed before removing the deployment from the runtime. This is likely to be a rare use case; it is only needed when the intended effect of undeploying this proxy is to cause the traffic it currently handles to be rerouted to some other existing proxy in the environment group. The [GenerateUndeployChangeReport API](GenerateUndeployChangeReport) may be used to examine routing changes before issuing the undeployment request, and its response will indicate if a sequenced rollout is recommended for the undeployment.", + "description": "Flag that specifies whether to enable sequenced rollout. If set to `true`, the environment group routing rules corresponding to this deployment will be removed before removing the deployment from the runtime. This is likely to be a rare use case; it is only needed when the intended effect of undeploying this proxy is to cause the traffic it currently handles to be rerouted to some other existing proxy in the environment group. The GenerateUndeployChangeReport API may be used to examine routing changes before issuing the undeployment request, and its response will indicate if a sequenced rollout is recommended for the undeployment.", "location": "query", "type": "boolean" } @@ -5271,6 +5972,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" + ] } } } @@ -5876,6 +6605,297 @@ } } }, + "securityActions": { + "methods": { + "create": { + "description": "CreateSecurityAction creates a SecurityAction.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityActions", + "httpMethod": "POST", + "id": "apigee.organizations.environments.securityActions.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The organization and environment that this SecurityAction applies to. Format: organizations/{org}/environments/{env}", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + }, + "securityActionId": { + "description": "Required. The ID to use for the SecurityAction, which will become the final component of the action's resource name. This value should be 0-61 characters, and valid format is (^[a-z]([a-z0-9-]{\u200b0,61}[a-z0-9])?$).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/securityActions", + "request": { + "$ref": "GoogleCloudApigeeV1SecurityAction" + }, + "response": { + "$ref": "GoogleCloudApigeeV1SecurityAction" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "disable": { + "description": "Disable a SecurityAction. The `state` of the SecurityAction after disabling is `DISABLED`. `DisableSecurityAction` can be called on SecurityActions in the state `ENABLED`; SecurityActions in a different state (including `DISABLED`) return an error.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityActions/{securityActionsId}:disable", + "httpMethod": "POST", + "id": "apigee.organizations.environments.securityActions.disable", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the SecurityAction to disable. Format: organizations/{org}/environments/{env}/securityActions/{security_action}", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+/securityActions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:disable", + "request": { + "$ref": "GoogleCloudApigeeV1DisableSecurityActionRequest" + }, + "response": { + "$ref": "GoogleCloudApigeeV1SecurityAction" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "enable": { + "description": "Enable a SecurityAction. The `state` of the SecurityAction after enabling is `ENABLED`. `EnableSecurityAction` can be called on SecurityActions in the state `DISABLED`; SecurityActions in a different state (including `ENABLED) return an error.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityActions/{securityActionsId}:enable", + "httpMethod": "POST", + "id": "apigee.organizations.environments.securityActions.enable", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the SecurityAction to enable. Format: organizations/{org}/environments/{env}/securityActions/{security_action}", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+/securityActions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:enable", + "request": { + "$ref": "GoogleCloudApigeeV1EnableSecurityActionRequest" + }, + "response": { + "$ref": "GoogleCloudApigeeV1SecurityAction" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Get a SecurityAction by name.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityActions/{securityActionsId}", + "httpMethod": "GET", + "id": "apigee.organizations.environments.securityActions.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The fully qualified name of the SecurityAction to retrieve. Format: organizations/{org}/environments/{env}/securityActions/{security_action}", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+/securityActions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1SecurityAction" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Returns a list of SecurityActions. This returns both enabled and disabled actions.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityActions", + "httpMethod": "GET", + "id": "apigee.organizations.environments.securityActions.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "The filter expression to filter List results. https://google.aip.dev/160. Allows for filtering over: state and api_proxies. E.g.: state = ACTIVE AND apiProxies:foo. Filtering by action is not supported https://github.com/aip-dev/google.aip.dev/issues/624", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of SecurityActions to return. If unspecified, at most 50 SecurityActions 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 `ListSecurityActions` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListSecurityActions` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent, which owns this collection of SecurityActions. Format: organizations/{org}/environments/{env}", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/securityActions", + "response": { + "$ref": "GoogleCloudApigeeV1ListSecurityActionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "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}", + "httpMethod": "GET", + "id": "apigee.organizations.environments.securityIncidents.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Security incident in the following format: `organizations/{org}/environments/{environment}/securityIncidents/{incident}'. Example: organizations/testOrg/environments/testEnv/securityIncidents/1234-4567-890-111", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+/securityIncidents/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1SecurityIncident" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "ListSecurityIncidents lists all the security incident associated with the environment.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityIncidents", + "httpMethod": "GET", + "id": "apigee.organizations.environments.securityIncidents.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "The filter expression to be used to get the list of security incidents, where filtering can be done on API Proxies. Example: filter = \"api_proxy = /\", \"first_detected_time >\", \"last_detected_time <\"", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of incidents to return. The service may return fewer than this value. If unspecified, at most 50 incidents will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListSecurityIncident` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. For a specific organization, list of all the security incidents. Format: `organizations/{org}/environments/{environment}`", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/securityIncidents", + "response": { + "$ref": "GoogleCloudApigeeV1ListSecurityIncidentsResponse" + }, + "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" + ] + } + } + }, "securityReports": { "methods": { "create": { @@ -7717,6 +8737,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" + ] } } } @@ -7750,7 +8798,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/organizations/{organizationsId}/operations", "httpMethod": "GET", "id": "apigee.organizations.operations.list", @@ -8033,6 +9081,64 @@ }, "securityProfiles": { "methods": { + "create": { + "description": "CreateSecurityProfile create a new custom security profile.", + "flatPath": "v1/organizations/{organizationsId}/securityProfiles", + "httpMethod": "POST", + "id": "apigee.organizations.securityProfiles.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Name of organization. Format: organizations/{org}", + "location": "path", + "pattern": "^organizations/[^/]+$", + "required": true, + "type": "string" + }, + "securityProfileId": { + "description": "Required. The ID to use for the SecurityProfile, which will become the final component of the action's resource name. This value should be 1-63 characters and validated by \"(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$)\".", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/securityProfiles", + "request": { + "$ref": "GoogleCloudApigeeV1SecurityProfile" + }, + "response": { + "$ref": "GoogleCloudApigeeV1SecurityProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "DeleteSecurityProfile delete a profile with all its revisions.", + "flatPath": "v1/organizations/{organizationsId}/securityProfiles/{securityProfilesId}", + "httpMethod": "DELETE", + "id": "apigee.organizations.securityProfiles.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of profile. Format: organizations/{org}/securityProfiles/{profile}", + "location": "path", + "pattern": "^organizations/[^/]+/securityProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "GetSecurityProfile gets the specified security profile. Returns NOT_FOUND if security profile is not present for the specified organization.", "flatPath": "v1/organizations/{organizationsId}/securityProfiles/{securityProfilesId}", @@ -8129,6 +9235,40 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "patch": { + "description": "UpdateSecurityProfile update the metadata of security profile.", + "flatPath": "v1/organizations/{organizationsId}/securityProfiles/{securityProfilesId}", + "httpMethod": "PATCH", + "id": "apigee.organizations.securityProfiles.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. Name of the security profile resource. Format: organizations/{org}/securityProfiles/{profile}", + "location": "path", + "pattern": "^organizations/[^/]+/securityProfiles/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to update.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudApigeeV1SecurityProfile" + }, + "response": { + "$ref": "GoogleCloudApigeeV1SecurityProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { @@ -8505,7 +9645,7 @@ "apicategories": { "methods": { "create": { - "description": "Creates a new category on the portal.", + "description": "Creates a new API category.", "flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apicategories", "httpMethod": "POST", "id": "apigee.organizations.sites.apicategories.create", @@ -8523,17 +9663,17 @@ }, "path": "v1/{+parent}/apicategories", "request": { - "$ref": "GoogleCloudApigeeV1ApiCategoryData" + "$ref": "GoogleCloudApigeeV1ApiCategory" }, "response": { - "$ref": "GoogleCloudApigeeV1ApiCategory" + "$ref": "GoogleCloudApigeeV1ApiCategoryResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "delete": { - "description": "Deletes a category from the portal.", + "description": "Deletes an API category.", "flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apicategories/{apicategoriesId}", "httpMethod": "DELETE", "id": "apigee.organizations.sites.apicategories.delete", @@ -8551,14 +9691,14 @@ }, "path": "v1/{+name}", "response": { - "$ref": "GoogleCloudApigeeV1ApiResponseWrapper" + "$ref": "GoogleCloudApigeeV1DeleteResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "get": { - "description": "Gets a category on the portal.", + "description": "Gets an API category.", "flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apicategories/{apicategoriesId}", "httpMethod": "GET", "id": "apigee.organizations.sites.apicategories.get", @@ -8576,14 +9716,14 @@ }, "path": "v1/{+name}", "response": { - "$ref": "GoogleCloudApigeeV1ApiCategory" + "$ref": "GoogleCloudApigeeV1ApiCategoryResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "list": { - "description": "Lists the categories on the portal.", + "description": "Returns the API categories associated with a portal.", "flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apicategories", "httpMethod": "GET", "id": "apigee.organizations.sites.apicategories.list", @@ -8608,7 +9748,7 @@ ] }, "patch": { - "description": "Updates a category on the portal.", + "description": "Updates an API category.", "flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apicategories/{apicategoriesId}", "httpMethod": "PATCH", "id": "apigee.organizations.sites.apicategories.patch", @@ -8626,10 +9766,209 @@ }, "path": "v1/{+name}", "request": { - "$ref": "GoogleCloudApigeeV1ApiCategoryData" + "$ref": "GoogleCloudApigeeV1ApiCategory" }, "response": { - "$ref": "GoogleCloudApigeeV1ApiCategory" + "$ref": "GoogleCloudApigeeV1ApiCategoryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "apidocs": { + "methods": { + "create": { + "description": "Creates a new catalog item.", + "flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apidocs", + "httpMethod": "POST", + "id": "apigee.organizations.sites.apidocs.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Name of the portal. Use the following structure in your request: `organizations/{org}/sites/{site}`", + "location": "path", + "pattern": "^organizations/[^/]+/sites/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/apidocs", + "request": { + "$ref": "GoogleCloudApigeeV1ApiDoc" + }, + "response": { + "$ref": "GoogleCloudApigeeV1ApiDocResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a catalog item.", + "flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apidocs/{apidocsId}", + "httpMethod": "DELETE", + "id": "apigee.organizations.sites.apidocs.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the catalog item. Use the following structure in your request: `organizations/{org}/sites/{site}/apidocs/{apidoc}`", + "location": "path", + "pattern": "^organizations/[^/]+/sites/[^/]+/apidocs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1DeleteResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a catalog item.", + "flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apidocs/{apidocsId}", + "httpMethod": "GET", + "id": "apigee.organizations.sites.apidocs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the catalog item. Use the following structure in your request: `organizations/{org}/sites/{site}/apidocs/{apidoc}`", + "location": "path", + "pattern": "^organizations/[^/]+/sites/[^/]+/apidocs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1ApiDocResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getDocumentation": { + "description": "Gets the documentation for the specified catalog item.", + "flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apidocs/{apidocsId}/documentation", + "httpMethod": "GET", + "id": "apigee.organizations.sites.apidocs.getDocumentation", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the catalog item documentation. Use the following structure in your request: `organizations/{org}/sites/{site}/apidocs/{apidoc}/documentation`", + "location": "path", + "pattern": "^organizations/[^/]+/sites/[^/]+/apidocs/[^/]+/documentation$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1ApiDocDocumentationResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Returns the catalog items associated with a portal.", + "flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apidocs", + "httpMethod": "GET", + "id": "apigee.organizations.sites.apidocs.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 25 books will be returned. The maximum value is 100; values above 100 will be coerced to 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListApiDocs` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the portal. Use the following structure in your request: `organizations/{org}/sites/{site}`", + "location": "path", + "pattern": "^organizations/[^/]+/sites/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/apidocs", + "response": { + "$ref": "GoogleCloudApigeeV1ListApiDocsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "update": { + "description": "Updates a catalog item.", + "flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apidocs/{apidocsId}", + "httpMethod": "PUT", + "id": "apigee.organizations.sites.apidocs.update", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the catalog item. Use the following structure in your request: `organizations/{org}/sites/{site}/apidocs/{apidoc}`", + "location": "path", + "pattern": "^organizations/[^/]+/sites/[^/]+/apidocs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudApigeeV1ApiDoc" + }, + "response": { + "$ref": "GoogleCloudApigeeV1ApiDocResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "updateDocumentation": { + "description": "Updates the documentation for the specified catalog item. Note that the documentation file contents will not be populated in the return message.", + "flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apidocs/{apidocsId}/documentation", + "httpMethod": "PATCH", + "id": "apigee.organizations.sites.apidocs.updateDocumentation", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the catalog item documentation. Use the following structure in your request: `organizations/{org}/sites/{site}/apidocs/{apidoc}/documentation`", + "location": "path", + "pattern": "^organizations/[^/]+/sites/[^/]+/apidocs/[^/]+/documentation$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudApigeeV1ApiDocDocumentation" + }, + "response": { + "$ref": "GoogleCloudApigeeV1ApiDocDocumentationResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" @@ -8674,7 +10013,7 @@ } } }, - "revision": "20230104", + "revision": "20240222", "rootUrl": "https://apigee.googleapis.com/", "schemas": { "EdgeConfigstoreBundleBadBundle": { @@ -8733,6 +10072,21 @@ }, "type": "object" }, + "GoogleCloudApigeeV1APIProductAssociation": { + "description": "APIProductAssociation has the API product and its administrative state association.", + "id": "GoogleCloudApigeeV1APIProductAssociation", + "properties": { + "apiproduct": { + "description": "API product to be associated with the credential.", + "type": "string" + }, + "status": { + "description": "The API product credential associated status. Valid values are `approved` or `revoked`.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1Access": { "id": "GoogleCloudApigeeV1Access", "properties": { @@ -8804,6 +10158,10 @@ "$ref": "GoogleCloudApigeeV1AdvancedApiOpsConfig", "description": "Configuration for the Advanced API Ops add-on." }, + "analyticsConfig": { + "$ref": "GoogleCloudApigeeV1AnalyticsConfig", + "description": "Configuration for the Analytics add-on." + }, "apiSecurityConfig": { "$ref": "GoogleCloudApigeeV1ApiSecurityConfig", "description": "Configuration for the API Security add-on." @@ -8901,36 +10259,51 @@ }, "type": "object" }, - "GoogleCloudApigeeV1ApiCategory": { - "description": "the Api category resource wrapped with response status, error_code etc.", - "id": "GoogleCloudApigeeV1ApiCategory", + "GoogleCloudApigeeV1AnalyticsConfig": { + "description": "Configuration for the Analytics add-on.", + "id": "GoogleCloudApigeeV1AnalyticsConfig", "properties": { - "data": { - "$ref": "GoogleCloudApigeeV1ApiCategoryData", - "description": "Details of category." + "enabled": { + "description": "Whether the Analytics add-on is enabled.", + "type": "boolean" }, - "errorCode": { - "description": "ID that can be used to find errors in the log files.", + "expireTimeMillis": { + "description": "Output only. Time at which the Analytics add-on expires in milliseconds since epoch. If unspecified, the add-on will never expire.", + "format": "int64", + "readOnly": true, "type": "string" }, - "message": { - "description": "Description of the operation.", + "state": { + "description": "Output only. The state of the Analytics add-on.", + "enum": [ + "ADDON_STATE_UNSPECIFIED", + "ENABLING", + "ENABLED", + "DISABLING", + "DISABLED" + ], + "enumDescriptions": [ + "Default value.", + "Add-on is in progress of enabling.", + "Add-on is fully enabled and ready to use.", + "Add-on is in progress of disabling.", + "Add-on is fully disabled." + ], + "readOnly": true, "type": "string" }, - "requestId": { - "description": "ID that can be used to find request details in the log files.", - "type": "string" - }, - "status": { - "description": "Status of the operation.", + "updateTime": { + "description": "Output only. The latest update time.", + "format": "google-datetime", + "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudApigeeV1ApiCategoryData": { - "description": "the Api category resource.", - "id": "GoogleCloudApigeeV1ApiCategoryData", + "GoogleCloudApigeeV1ApiCategory": { + "description": "`ApiCategory` represents an API category. [Catalog items](/apigee/docs/reference/apis/apigee/rest/v1/organizations.sites.apidocs) can be tagged with API categories; users viewing the API catalog in the portal will have the option to browse the catalog by category.", + "id": "GoogleCloudApigeeV1ApiCategory", "properties": { "id": { "description": "ID of the category (a UUID).", @@ -8952,6 +10325,194 @@ }, "type": "object" }, + "GoogleCloudApigeeV1ApiCategoryResponse": { + "description": "The API category resource wrapped with response status, error_code, etc.", + "id": "GoogleCloudApigeeV1ApiCategoryResponse", + "properties": { + "data": { + "$ref": "GoogleCloudApigeeV1ApiCategory", + "description": "The API category resource." + }, + "errorCode": { + "description": "Unique error code for the request, if any.", + "type": "string" + }, + "message": { + "description": "Description of the operation.", + "type": "string" + }, + "requestId": { + "description": "Unique ID of the request.", + "type": "string" + }, + "status": { + "description": "Status of the operation.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1ApiDoc": { + "description": "`ApiDoc` represents an API catalog item. Catalog items are used in two ways in a portal: - Users can browse and interact with a visual representation of the API documentation - The `api_product_name` field provides a link to a backing API product. Through this link, portal users can create and manage developer apps linked to one or more API products.", + "id": "GoogleCloudApigeeV1ApiDoc", + "properties": { + "anonAllowed": { + "description": "Optional. Boolean flag that manages user access to the catalog item. When true, the catalog item can be viewed anonymously; otherwise, only registered users may view it. Note: when the parent portal is enrolled in the [audience management feature](https://cloud.google.com/apigee/docs/api-platform/publish/portal/portal-audience#enrolling_in_the_beta_release_of_the_audience_management_feature), this flag is ignored; instead visibility must be further managed in the management UI (see [Manage the visibility of an API in your portal](https://cloud.google.com/apigee/docs/api-platform/publish/portal/publish-apis#visibility)).", + "type": "boolean" + }, + "apiProductName": { + "description": "Required. Immutable. The `name` field of the associated [API product](/apigee/docs/reference/apis/apigee/rest/v1/organizations.apiproducts). A portal may have only one catalog item associated with a given API product.", + "type": "string" + }, + "categoryIds": { + "description": "Optional. The IDs of the API categories to which this catalog item belongs.", + "items": { + "type": "string" + }, + "type": "array" + }, + "description": { + "description": "Optional. Description of the catalog item. Max length is 10,000 characters.", + "type": "string" + }, + "edgeAPIProductName": { + "description": "Optional. Immutable. DEPRECATED: use the `apiProductName` field instead", + "type": "string" + }, + "graphqlEndpointUrl": { + "deprecated": true, + "description": "Optional. DEPRECATED: manage documentation through the `getDocumentation` and `updateDocumentation` methods", + "type": "string" + }, + "graphqlSchema": { + "deprecated": true, + "description": "Optional. DEPRECATED: manage documentation through the `getDocumentation` and `updateDocumentation` methods", + "type": "string" + }, + "graphqlSchemaDisplayName": { + "deprecated": true, + "description": "Optional. DEPRECATED: manage documentation through the `getDocumentation` and `updateDocumentation` methods", + "type": "string" + }, + "id": { + "description": "Output only. The ID of the catalog item.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "imageUrl": { + "description": "Optional. Location of the image used for the catalog item in the catalog. For portal files, this can have the format `/files/{filename}`. Max length is 2,083 characters.", + "type": "string" + }, + "modified": { + "description": "Output only. Time the catalog item was last modified in milliseconds since epoch.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "published": { + "description": "Optional. Denotes whether the catalog item is published to the portal or is in a draft state. When the parent portal is enrolled in the [audience management feature](https://cloud.google.com/apigee/docs/api-platform/publish/portal/portal-audience#enrolling_in_the_beta_release_of_the_audience_management_feature), the visibility must be further managed in the management UI (see [Manage the visibility of an API in your portal](https://cloud.google.com/apigee/docs/api-platform/publish/portal/publish-apis#visibility)) before it can be visible to any users. If not enrolled in the audience management feature, the visibility is further managed by the `anonAllowed` flag.", + "type": "boolean" + }, + "requireCallbackUrl": { + "description": "Optional. Whether a callback URL is required when this catalog item's API product is enabled in a developer app. When true, a portal user will be required to input a URL when managing the app (this is typically used for the app's OAuth flow).", + "type": "boolean" + }, + "siteId": { + "description": "Output only. The ID of the parent portal.", + "readOnly": true, + "type": "string" + }, + "specId": { + "deprecated": true, + "description": "Optional. DEPRECATED: DO NOT USE", + "type": "string" + }, + "title": { + "description": "Required. The user-facing name of the catalog item. `title` must be a non-empty string with a max length of 255 characters.", + "type": "string" + }, + "visibility": { + "description": "Optional. DEPRECATED: use the `published` field instead", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1ApiDocDocumentation": { + "description": "The documentation for a catalog item.", + "id": "GoogleCloudApigeeV1ApiDocDocumentation", + "properties": { + "graphqlDocumentation": { + "$ref": "GoogleCloudApigeeV1GraphqlDocumentation", + "description": "Optional. GraphQL documentation." + }, + "oasDocumentation": { + "$ref": "GoogleCloudApigeeV1OASDocumentation", + "description": "Optional. OpenAPI Specification documentation." + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1ApiDocDocumentationResponse": { + "description": "The catalog item documentation wrapped with response status, error_code, etc.", + "id": "GoogleCloudApigeeV1ApiDocDocumentationResponse", + "properties": { + "data": { + "$ref": "GoogleCloudApigeeV1ApiDocDocumentation", + "description": "Output only. The documentation resource.", + "readOnly": true + }, + "errorCode": { + "description": "Output only. Unique error code for the request, if any.", + "readOnly": true, + "type": "string" + }, + "message": { + "description": "Output only. Description of the operation.", + "readOnly": true, + "type": "string" + }, + "requestId": { + "description": "Output only. Unique ID of the request.", + "readOnly": true, + "type": "string" + }, + "status": { + "description": "Output only. Status of the operation.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1ApiDocResponse": { + "description": "The catalog item resource wrapped with response status, error_code, etc.", + "id": "GoogleCloudApigeeV1ApiDocResponse", + "properties": { + "data": { + "$ref": "GoogleCloudApigeeV1ApiDoc", + "description": "The catalog item resource." + }, + "errorCode": { + "description": "Unique error code for the request, if any.", + "type": "string" + }, + "message": { + "description": "Description of the operation.", + "type": "string" + }, + "requestId": { + "description": "Unique ID of the request.", + "type": "string" + }, + "status": { + "description": "Status of the operation.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1ApiProduct": { "id": "GoogleCloudApigeeV1ApiProduct", "properties": { @@ -8997,6 +10558,10 @@ "$ref": "GoogleCloudApigeeV1GraphQLOperationGroup", "description": "Configuration used to group Apigee proxies or remote services with graphQL operation name, graphQL operation type and quotas. This grouping allows us to precisely set quota for a particular combination of graphQL name and operation type for a particular proxy request. If graphQL name is not set, this would imply quota will be applied on all graphQL requests matching the operation type." }, + "grpcOperationGroup": { + "$ref": "GoogleCloudApigeeV1GrpcOperationGroup", + "description": "Optional. Configuration used to group Apigee proxies with gRPC services and method names. This grouping allows us to set quota for a particular proxy with the gRPC service name and method. If a method name is not set, this implies quota and authorization are applied to all gRPC methods implemented by that proxy for that particular gRPC service." + }, "lastModifiedAt": { "description": "Response only. Modified time of this environment as milliseconds since epoch.", "format": "int64", @@ -9168,6 +10733,11 @@ "description": "Metadata describing the API proxy revision as a key-value map.", "type": "object" }, + "hasExtensiblePolicy": { + "description": "Output only. This field will be marked as true if revision contains any policies marked as extensible.", + "readOnly": true, + "type": "boolean" + }, "integrationEndpoints": { "description": "List of IntegrationEndpoints in the '/integration-endpoints' directory of the API proxy. This is a 'manifest' setting designed to provide visibility into the contents of the API proxy.", "items": { @@ -9266,28 +10836,6 @@ }, "type": "object" }, - "GoogleCloudApigeeV1ApiResponseWrapper": { - "id": "GoogleCloudApigeeV1ApiResponseWrapper", - "properties": { - "errorCode": { - "description": "ID that can be used to find errors in the log files.", - "type": "string" - }, - "message": { - "description": "Description of the operation.", - "type": "string" - }, - "requestId": { - "description": "ID that can be used to find request details in the log files.", - "type": "string" - }, - "status": { - "description": "Status of the operation.", - "type": "string" - } - }, - "type": "object" - }, "GoogleCloudApigeeV1ApiSecurityConfig": { "description": "Configurations of the API Security add-on.", "id": "GoogleCloudApigeeV1ApiSecurityConfig", @@ -9347,6 +10895,10 @@ }, "type": "array" }, + "appGroup": { + "description": "Name of the AppGroup", + "type": "string" + }, "appId": { "description": "ID of the app.", "type": "string" @@ -9380,6 +10932,10 @@ "readOnly": true, "type": "array" }, + "developerEmail": { + "description": "Email of the developer.", + "type": "string" + }, "developerId": { "description": "ID of the developer.", "type": "string" @@ -9413,6 +10969,192 @@ }, "type": "object" }, + "GoogleCloudApigeeV1AppGroup": { + "description": "AppGroup contains the request/response fields representing the logical grouping of apps. Note that appgroup_id, create_time and update_time cannot be changed by the user, and gets updated by the system. The name and the organization once provided cannot be edited subsequently.", + "id": "GoogleCloudApigeeV1AppGroup", + "properties": { + "appGroupId": { + "description": "Output only. Internal identifier that cannot be edited", + "readOnly": true, + "type": "string" + }, + "attributes": { + "description": "A list of attributes", + "items": { + "$ref": "GoogleCloudApigeeV1Attribute" + }, + "type": "array" + }, + "channelId": { + "description": "channel identifier identifies the owner maintaing this grouping.", + "type": "string" + }, + "channelUri": { + "description": "A reference to the associated storefront/marketplace.", + "type": "string" + }, + "createdAt": { + "description": "Output only. Created time as milliseconds since epoch.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "app group name displayed in the UI", + "type": "string" + }, + "lastModifiedAt": { + "description": "Output only. Modified time as milliseconds since epoch.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Immutable. Name of the AppGroup. Characters you can use in the name are restricted to: A-Z0-9._\\-$ %.", + "type": "string" + }, + "organization": { + "description": "Immutable. the org the app group is created", + "type": "string" + }, + "status": { + "description": "Valid values are `active` or `inactive`. Note that the status of the AppGroup should be updated via UpdateAppGroupRequest by setting the action as `active` or `inactive`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1AppGroupApp": { + "description": "Response for [GetAppGroupApp].[AppGroupApps.GetAppGroupApp], [CreateAppGroupAppRequest].[AppGroupApp.CreateAppGroupAppRequest] and [DeleteAppGroupApp].[AppGroupApp.DeleteAppGroupApp]", + "id": "GoogleCloudApigeeV1AppGroupApp", + "properties": { + "apiProducts": { + "description": "List of API products associated with the AppGroup app.", + "items": { + "type": "string" + }, + "type": "array" + }, + "appGroup": { + "description": "Immutable. Name of the parent AppGroup whose resource name format is of syntax (organizations/*/appgroups/*).", + "type": "string" + }, + "appId": { + "description": "Immutable. ID of the AppGroup app.", + "type": "string" + }, + "attributes": { + "description": "List of attributes for the AppGroup app.", + "items": { + "$ref": "GoogleCloudApigeeV1Attribute" + }, + "type": "array" + }, + "callbackUrl": { + "description": "Callback URL used by OAuth 2.0 authorization servers to communicate authorization codes back to AppGroup apps.", + "type": "string" + }, + "createdAt": { + "description": "Output only. Time the AppGroup app was created in milliseconds since epoch.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "credentials": { + "description": "Output only. Set of credentials for the AppGroup app consisting of the consumer key/secret pairs associated with the API products.", + "items": { + "$ref": "GoogleCloudApigeeV1Credential" + }, + "readOnly": true, + "type": "array" + }, + "keyExpiresIn": { + "description": "Immutable. Expiration time, in seconds, for the consumer key that is generated for the AppGroup app. If not set or left to the default value of `-1`, the API key never expires. The expiration time can't be updated after it is set.", + "format": "int64", + "type": "string" + }, + "lastModifiedAt": { + "description": "Output only. Time the AppGroup app was modified in milliseconds since epoch.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Immutable. Name of the AppGroup app whose resource name format is of syntax (organizations/*/appgroups/*/apps/*).", + "type": "string" + }, + "scopes": { + "description": "Scopes to apply to the AppGroup app. The specified scopes must already exist for the API product that you associate with the AppGroup app.", + "items": { + "type": "string" + }, + "type": "array" + }, + "status": { + "description": "Status of the App. Valid values include `approved` or `revoked`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1AppGroupAppKey": { + "description": "AppGroupAppKey contains all the information associated with the credentials.", + "id": "GoogleCloudApigeeV1AppGroupAppKey", + "properties": { + "apiProducts": { + "description": "Output only. List of API products and its status for which the credential can be used. **Note**: Use UpdateAppGroupAppKeyApiProductRequest API to make the association after the consumer key and secret are created.", + "items": { + "$ref": "GoogleCloudApigeeV1APIProductAssociation" + }, + "readOnly": true, + "type": "array" + }, + "attributes": { + "description": "List of attributes associated with the credential.", + "items": { + "$ref": "GoogleCloudApigeeV1Attribute" + }, + "type": "array" + }, + "consumerKey": { + "description": "Immutable. Consumer key.", + "type": "string" + }, + "consumerSecret": { + "description": "Secret key.", + "type": "string" + }, + "expiresAt": { + "description": "Output only. Time the AppGroup app expires in milliseconds since epoch.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "expiresInSeconds": { + "description": "Immutable. Expiration time, in seconds, for the consumer key. If not set or left to the default value of `-1`, the API key never expires. The expiration time can't be updated after it is set.", + "format": "int64", + "type": "string" + }, + "issuedAt": { + "description": "Output only. Time the AppGroup app was created in milliseconds since epoch.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "scopes": { + "description": "Scopes to apply to the app. The specified scope names must already be defined for the API product that you associate with the app.", + "items": { + "type": "string" + }, + "type": "array" + }, + "status": { + "description": "Status of the credential. Valid values include `approved` or `revoked`.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1ArchiveDeployment": { "description": "Archive Deployment information.", "id": "GoogleCloudApigeeV1ArchiveDeployment", @@ -9583,6 +11325,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", @@ -10340,6 +12111,33 @@ }, "type": "object" }, + "GoogleCloudApigeeV1DeleteResponse": { + "description": "Response for certain delete operations.", + "id": "GoogleCloudApigeeV1DeleteResponse", + "properties": { + "errorCode": { + "description": "Unique error code for the request, if any.", + "type": "string" + }, + "gcpResource": { + "description": "Google Cloud name of deleted resource.", + "type": "string" + }, + "message": { + "description": "Description of the operation.", + "type": "string" + }, + "requestId": { + "description": "Unique ID of the request.", + "type": "string" + }, + "status": { + "description": "Status of the operation.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1Deployment": { "id": "GoogleCloudApigeeV1Deployment", "properties": { @@ -10377,6 +12175,21 @@ }, "type": "array" }, + "proxyDeploymentType": { + "description": "Output only. The type of the deployment (standard or extensible) Deployed proxy revision will be marked as extensible in following 2 cases. 1. The deployed proxy revision uses extensible policies. 2. If a environment supports flowhooks and flow hook is configured.", + "enum": [ + "PROXY_DEPLOYMENT_TYPE_UNSPECIFIED", + "STANDARD", + "EXTENSIBLE" + ], + "enumDescriptions": [ + "Default value till public preview. After public preview this value should not be returned.", + "Deployment will be of type Standard if only Standard proxies are used", + "Proxy will be of type Extensible if deployments uses one or more Extensible proxies" + ], + "readOnly": true, + "type": "string" + }, "revision": { "description": "API proxy revision.", "type": "string" @@ -10561,6 +12374,20 @@ "description": "DeploymentGroupConfig represents a deployment group that should be present in a particular environment.", "id": "GoogleCloudApigeeV1DeploymentGroupConfig", "properties": { + "deploymentGroupType": { + "description": "Type of the deployment group, which will be either Standard or Extensible.", + "enum": [ + "DEPLOYMENT_GROUP_TYPE_UNSPECIFIED", + "STANDARD", + "EXTENSIBLE" + ], + "enumDescriptions": [ + "Unspecified type", + "Standard type", + "Extensible Type" + ], + "type": "string" + }, "name": { "description": "Name of the deployment group in the following format: `organizations/{org}/environments/{env}/deploymentGroups/{group}`.", "type": "string" @@ -10879,6 +12706,13 @@ "description": "Encapsulates a metric grouped by dimension.", "id": "GoogleCloudApigeeV1DimensionMetric", "properties": { + "individualNames": { + "description": "Individual dimension names. E.g. [\"dim1_name\", \"dim2_name\"].", + "items": { + "type": "string" + }, + "type": "array" + }, "metrics": { "description": "List of metrics.", "items": { @@ -10887,12 +12721,41 @@ "type": "array" }, "name": { - "description": "Name of the dimension.", + "deprecated": true, + "description": "Comma joined dimension names. E.g. \"dim1_name,dim2_name\". Deprecated. If name already has comma before join, we may get wrong splits. Please use individual_names.", "type": "string" } }, "type": "object" }, + "GoogleCloudApigeeV1DisableSecurityActionRequest": { + "description": "Message to disable an enabled SecurityAction.", + "id": "GoogleCloudApigeeV1DisableSecurityActionRequest", + "properties": {}, + "type": "object" + }, + "GoogleCloudApigeeV1DocumentationFile": { + "description": "Documentation file contents for a catalog item.", + "id": "GoogleCloudApigeeV1DocumentationFile", + "properties": { + "contents": { + "description": "Required. The file contents. The max size is 4 MB.", + "format": "byte", + "type": "string" + }, + "displayName": { + "description": "Required. A display name for the file, shown in the management UI. Max length is 255 characters.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1EnableSecurityActionRequest": { + "description": "Message to enable a disabled SecurityAction.", + "id": "GoogleCloudApigeeV1EnableSecurityActionRequest", + "properties": {}, + "type": "object" + }, "GoogleCloudApigeeV1EndpointAttachment": { "description": "Apigee endpoint attachment. For more information, see [Southbound networking patterns] (https://cloud.google.com/apigee/docs/api-platform/architecture/southbound-networking-patterns-endpoints).", "id": "GoogleCloudApigeeV1EndpointAttachment", @@ -11046,9 +12909,12 @@ "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": { + "type": "boolean" + }, "lastModifiedAt": { "description": "Output only. Last modification time of this environment as milliseconds since epoch.", "format": "int64", @@ -11085,6 +12951,22 @@ ], "readOnly": true, "type": "string" + }, + "type": { + "description": "Optional. EnvironmentType selected for the environment.", + "enum": [ + "ENVIRONMENT_TYPE_UNSPECIFIED", + "BASE", + "INTERMEDIATE", + "COMPREHENSIVE" + ], + "enumDescriptions": [ + "Environment type not specified.", + "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" } }, "type": "object" @@ -11092,6 +12974,10 @@ "GoogleCloudApigeeV1EnvironmentConfig": { "id": "GoogleCloudApigeeV1EnvironmentConfig", "properties": { + "addonsConfig": { + "$ref": "GoogleCloudApigeeV1RuntimeAddonsConfig", + "description": "The latest runtime configurations for add-ons." + }, "arcConfigLocation": { "description": "The location for the config blob of API Runtime Control, aka Envoy Adapter, for op-based authentication as a URI, e.g. a Cloud Storage URI. This is only used by Envoy-based gateways.", "type": "string" @@ -11600,6 +13486,68 @@ }, "type": "object" }, + "GoogleCloudApigeeV1GraphqlDocumentation": { + "description": "GraphQL documentation for a catalog item.", + "id": "GoogleCloudApigeeV1GraphqlDocumentation", + "properties": { + "endpointUri": { + "description": "Required. The GraphQL endpoint URI to be queried by API consumers. Max length is 2,083 characters.", + "type": "string" + }, + "schema": { + "$ref": "GoogleCloudApigeeV1DocumentationFile", + "description": "Required. The documentation file contents for the GraphQL schema." + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1GrpcOperationConfig": { + "description": "Binds the resources in a proxy or remote service with the gRPC operation and its associated quota enforcement.", + "id": "GoogleCloudApigeeV1GrpcOperationConfig", + "properties": { + "apiSource": { + "description": "Required. Name of the API proxy with which the gRPC operation and quota are associated.", + "type": "string" + }, + "attributes": { + "description": "Custom attributes associated with the operation.", + "items": { + "$ref": "GoogleCloudApigeeV1Attribute" + }, + "type": "array" + }, + "methods": { + "description": "List of unqualified gRPC method names for the proxy to which quota will be applied. If this field is empty, the Quota will apply to all operations on the gRPC service defined on the proxy. Example: Given a proxy that is configured to serve com.petstore.PetService, the methods com.petstore.PetService.ListPets and com.petstore.PetService.GetPet would be specified here as simply [\"ListPets\", \"GetPet\"].", + "items": { + "type": "string" + }, + "type": "array" + }, + "quota": { + "$ref": "GoogleCloudApigeeV1Quota", + "description": "Quota parameters to be enforced for the methods and API source combination. If none are specified, quota enforcement will not be done." + }, + "service": { + "description": "Required. gRPC Service name associated to be associated with the API proxy, on which quota rules can be applied upon.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1GrpcOperationGroup": { + "description": "List of gRPC operation configuration details associated with Apigee API proxies.", + "id": "GoogleCloudApigeeV1GrpcOperationGroup", + "properties": { + "operationConfigs": { + "description": "Required. List of operation configurations for either Apigee API proxies that are associated with this API product.", + "items": { + "$ref": "GoogleCloudApigeeV1GrpcOperationConfig" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1IngressConfig": { "id": "GoogleCloudApigeeV1IngressConfig", "properties": { @@ -11684,6 +13632,7 @@ "type": "string" }, "peeringCidrRange": { + "deprecated": true, "description": "Optional. Size of the CIDR block range that will be reserved by the instance. PAID organizations support `SLASH_16` to `SLASH_20` and defaults to `SLASH_16`. Evaluation organizations support only `SLASH_23`.", "enum": [ "CIDR_RANGE_UNSPECIFIED", @@ -11876,7 +13825,7 @@ "id": "GoogleCloudApigeeV1KeyValueMap", "properties": { "encrypted": { - "description": "Optional. Flag that specifies whether entry values will be encrypted. You must set this value to `true`. Apigee X and hybrid do not support unencrytped key value maps.", + "description": "Required. Flag that specifies whether entry values will be encrypted. This field is retained for backward compatibility and the value of encrypted will always be `true`. Apigee X and hybrid do not support unencrypted key value maps.", "type": "boolean" }, "name": { @@ -11923,18 +13872,18 @@ "type": "object" }, "GoogleCloudApigeeV1ListApiCategoriesResponse": { - "description": "the response for ListApiCategoriesRequest.", + "description": "The response for `ListApiCategoriesRequest`. Next ID: 6", "id": "GoogleCloudApigeeV1ListApiCategoriesResponse", "properties": { "data": { - "description": "Details of categories.", + "description": "The API category resources.", "items": { - "$ref": "GoogleCloudApigeeV1ApiCategoryData" + "$ref": "GoogleCloudApigeeV1ApiCategory" }, "type": "array" }, "errorCode": { - "description": "ID that can be used to find errors in the log files.", + "description": "Unique error code for the request, if any.", "type": "string" }, "message": { @@ -11942,7 +13891,40 @@ "type": "string" }, "requestId": { - "description": "ID that can be used to find request details in the log files.", + "description": "Unique ID of the request.", + "type": "string" + }, + "status": { + "description": "Status of the operation.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1ListApiDocsResponse": { + "id": "GoogleCloudApigeeV1ListApiDocsResponse", + "properties": { + "data": { + "description": "The catalog item resources.", + "items": { + "$ref": "GoogleCloudApigeeV1ApiDoc" + }, + "type": "array" + }, + "errorCode": { + "description": "Unique error code for the request, if any.", + "type": "string" + }, + "message": { + "description": "Description of the operation.", + "type": "string" + }, + "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" + }, + "requestId": { + "description": "Unique ID of the request.", "type": "string" }, "status": { @@ -11978,6 +13960,47 @@ }, "type": "object" }, + "GoogleCloudApigeeV1ListAppGroupAppsResponse": { + "description": "Response for ListAppGroupApps", + "id": "GoogleCloudApigeeV1ListAppGroupAppsResponse", + "properties": { + "appGroupApps": { + "description": "List of AppGroup apps and their credentials.", + "items": { + "$ref": "GoogleCloudApigeeV1AppGroupApp" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Token that can be sent as `next_page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1ListAppGroupsResponse": { + "description": "ListAppGroupsResponse contains the 0 or more AppGroups, along with the optional page token and the total count of apps.", + "id": "GoogleCloudApigeeV1ListAppGroupsResponse", + "properties": { + "appGroups": { + "description": "List of AppGroups.", + "items": { + "$ref": "GoogleCloudApigeeV1AppGroup" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Token that can be sent as `next_page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "totalSize": { + "description": "Total count of AppGroups.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1ListAppsResponse": { "id": "GoogleCloudApigeeV1ListAppsResponse", "properties": { @@ -11986,6 +14009,15 @@ "$ref": "GoogleCloudApigeeV1App" }, "type": "array" + }, + "nextPageToken": { + "description": "Token that can be sent as `next_page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "totalSize": { + "description": "Total count of Apps.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -12339,6 +14371,42 @@ }, "type": "object" }, + "GoogleCloudApigeeV1ListSecurityActionsResponse": { + "description": "Contains a list of SecurityActions in response to a ListSecurityActionRequest.", + "id": "GoogleCloudApigeeV1ListSecurityActionsResponse", + "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" + }, + "securityActions": { + "description": "The SecurityActions for the specified environment.", + "items": { + "$ref": "GoogleCloudApigeeV1SecurityAction" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1ListSecurityIncidentsResponse": { + "description": "Response for ListSecurityIncidents.", + "id": "GoogleCloudApigeeV1ListSecurityIncidentsResponse", + "properties": { + "nextPageToken": { + "description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "securityIncidents": { + "description": "List of security incidents in the organization", + "items": { + "$ref": "GoogleCloudApigeeV1SecurityIncident" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1ListSecurityProfileRevisionsResponse": { "description": "Response for ListSecurityProfileRevisions.", "id": "GoogleCloudApigeeV1ListSecurityProfileRevisionsResponse", @@ -12577,6 +14645,32 @@ }, "type": "object" }, + "GoogleCloudApigeeV1OASDocumentation": { + "description": "OpenAPI Specification documentation for a catalog item.", + "id": "GoogleCloudApigeeV1OASDocumentation", + "properties": { + "format": { + "description": "Output only. The format of the input specification file contents.", + "enum": [ + "FORMAT_UNSPECIFIED", + "YAML", + "JSON" + ], + "enumDescriptions": [ + "The format is not available.", + "YAML format.", + "JSON format." + ], + "readOnly": true, + "type": "string" + }, + "spec": { + "$ref": "GoogleCloudApigeeV1DocumentationFile", + "description": "Required. The documentation file contents for the OpenAPI Specification. JSON and YAML file formats are supported." + } + }, + "type": "object" + }, "GoogleCloudApigeeV1Operation": { "description": "Represents the pairing of REST resource path and the actions (verbs) allowed on the resource path.", "id": "GoogleCloudApigeeV1Operation", @@ -12792,7 +14886,16 @@ "description": "Addon configurations of the Apigee organization." }, "analyticsRegion": { - "description": "Required. DEPRECATED: This field will be deprecated once Apigee supports DRZ. Primary Google Cloud region for analytics data storage. For valid values, see [Create an Apigee organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org).", + "deprecated": true, + "description": "Required. DEPRECATED: This field will eventually be deprecated and replaced with a differently-named field. Primary Google Cloud region for analytics data storage. For valid values, see [Create an Apigee organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org).", + "type": "string" + }, + "apiConsumerDataEncryptionKeyName": { + "description": "Cloud KMS key name used for encrypting API consumer data. Required for US/EU regions when [BillingType](#BillingType) is `SUBSCRIPTION`. When [BillingType](#BillingType) is `EVALUATION` or the region is not US/EU, a Google-Managed encryption key will be used. Format: `projects/*/locations/*/keyRings/*/cryptoKeys/*`", + "type": "string" + }, + "apiConsumerDataLocation": { + "description": "This field is needed only for customers with control plane in US or EU. Apigee stores some control plane data only in single region. This field determines which single region Apigee should use. For example: \"us-west1\" when control plane is in US or \"europe-west2\" when control plane is in EU.", "type": "string" }, "apigeeProjectId": { @@ -12822,7 +14925,7 @@ "enumDescriptions": [ "Billing type not specified.", "A pre-paid subscription to Apigee.", - "Free and limited access to Apigee for evaluation purposes only. only.", + "Free and limited access to Apigee for evaluation purposes only.", "Access to Apigee using a Pay-As-You-Go plan." ], "type": "string" @@ -12833,6 +14936,10 @@ "readOnly": true, "type": "string" }, + "controlPlaneEncryptionKeyName": { + "description": "Cloud KMS key name used for encrypting control plane data that is stored in a multi region. Required when [BillingType](#BillingType) is `SUBSCRIPTION`. When [BillingType](#BillingType) is `EVALUATION`, a Google-Managed encryption key will be used. Format: `projects/*/locations/*/keyRings/*/cryptoKeys/*`", + "type": "string" + }, "createdAt": { "description": "Output only. Time that the Apigee organization was created in milliseconds since epoch.", "format": "int64", @@ -12847,6 +14954,10 @@ "description": "Description of the Apigee organization.", "type": "string" }, + "disableVpcPeering": { + "description": "Optional. Flag that specifies whether the VPC Peering through Private Google Access should be disabled between the consumer network and Apigee. Valid only when RuntimeType is set to CLOUD. Required if an authorizedNetwork on the consumer project is not provided, in which case the flag should be set to true. The value must be set before the creation of any Apigee runtime instance and can be updated only when there are no runtime instances. **Note:** Apigee will be deprecating the vpc peering model that requires you to provide 'authorizedNetwork', by making the non-peering model as the default way of provisioning Apigee organization in future. So, this will be a temporary flag to enable the transition. Not supported for Apigee hybrid.", + "type": "boolean" + }, "displayName": { "description": "Display name for the Apigee organization. Unused, but reserved for future use.", "type": "string" @@ -12926,7 +15037,23 @@ "readOnly": true, "type": "string" }, + "subscriptionPlan": { + "description": "Output only. Subscription plan that the customer has purchased. Output only.", + "enum": [ + "SUBSCRIPTION_PLAN_UNSPECIFIED", + "SUBSCRIPTION_2021", + "SUBSCRIPTION_2024" + ], + "enumDescriptions": [ + "Subscription plan not specified.", + "Traditional subscription plan.", + "New subscription plan that provides standard proxy and scaled proxy implementation." + ], + "readOnly": true, + "type": "string" + }, "subscriptionType": { + "deprecated": true, "description": "Output only. DEPRECATED: This will eventually be replaced by BillingType. Subscription type of the Apigee organization. Valid values include trial (free, limited, and for evaluation purposes only) or paid (full subscription has been purchased). See [Apigee pricing](https://cloud.google.com/apigee/pricing/).", "enum": [ "SUBSCRIPTION_TYPE_UNSPECIFIED", @@ -12977,6 +15104,7 @@ "type": "string" }, "projectIds": { + "deprecated": true, "description": "DEPRECATED: Use `project_id`. An Apigee Organization is mapped to a single project.", "items": { "type": "string" @@ -13049,6 +15177,87 @@ }, "type": "object" }, + "GoogleCloudApigeeV1ProfileConfig": { + "description": "ProfileConfig defines a set of categories and policies which will be used to compute security score.", + "id": "GoogleCloudApigeeV1ProfileConfig", + "properties": { + "categories": { + "description": "List of categories of profile config.", + "items": { + "$ref": "GoogleCloudApigeeV1ProfileConfigCategory" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1ProfileConfigAbuse": { + "description": "Checks for abuse, which includes any requests sent to the API for purposes other than what it is intended for, such as high volumes of requests, data scraping, and abuse related to authorization.", + "id": "GoogleCloudApigeeV1ProfileConfigAbuse", + "properties": {}, + "type": "object" + }, + "GoogleCloudApigeeV1ProfileConfigAuthorization": { + "description": "By default, following policies will be included: - JWS - JWT - OAuth - BasicAuth - APIKey", + "id": "GoogleCloudApigeeV1ProfileConfigAuthorization", + "properties": {}, + "type": "object" + }, + "GoogleCloudApigeeV1ProfileConfigCORS": { + "description": "Checks to see if you have CORS policy in place.", + "id": "GoogleCloudApigeeV1ProfileConfigCORS", + "properties": {}, + "type": "object" + }, + "GoogleCloudApigeeV1ProfileConfigCategory": { + "description": "Advanced API Security provides security profile that scores the following categories.", + "id": "GoogleCloudApigeeV1ProfileConfigCategory", + "properties": { + "abuse": { + "$ref": "GoogleCloudApigeeV1ProfileConfigAbuse", + "description": "Checks for abuse, which includes any requests sent to the API for purposes other than what it is intended for, such as high volumes of requests, data scraping, and abuse related to authorization." + }, + "authorization": { + "$ref": "GoogleCloudApigeeV1ProfileConfigAuthorization", + "description": "Checks to see if you have an authorization policy in place." + }, + "cors": { + "$ref": "GoogleCloudApigeeV1ProfileConfigCORS", + "description": "Checks to see if you have CORS policy in place." + }, + "mediation": { + "$ref": "GoogleCloudApigeeV1ProfileConfigMediation", + "description": "Checks to see if you have a mediation policy in place." + }, + "mtls": { + "$ref": "GoogleCloudApigeeV1ProfileConfigMTLS", + "description": "Checks to see if you have configured mTLS for the target server." + }, + "threat": { + "$ref": "GoogleCloudApigeeV1ProfileConfigThreat", + "description": "Checks to see if you have a threat protection policy in place." + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1ProfileConfigMTLS": { + "description": "Checks to see if you have configured mTLS for the target server.", + "id": "GoogleCloudApigeeV1ProfileConfigMTLS", + "properties": {}, + "type": "object" + }, + "GoogleCloudApigeeV1ProfileConfigMediation": { + "description": "By default, following policies will be included: - OASValidation - SOAPMessageValidation", + "id": "GoogleCloudApigeeV1ProfileConfigMediation", + "properties": {}, + "type": "object" + }, + "GoogleCloudApigeeV1ProfileConfigThreat": { + "description": "By default, following policies will be included: - XMLThreatProtection - JSONThreatProtection", + "id": "GoogleCloudApigeeV1ProfileConfigThreat", + "properties": {}, + "type": "object" + }, "GoogleCloudApigeeV1Properties": { "description": "Message for compatibility with legacy Edge specification for Java Properties object in JSON.", "id": "GoogleCloudApigeeV1Properties", @@ -13087,9 +15296,13 @@ "type": "string" }, "authorizedNetwork": { - "description": "Name of the customer project's VPC network. If provided, the network needs to be peered through Service Networking. If none is provided, the organization will have access only to the public internet.", + "description": "Compute Engine network used for Service Networking to be peered with Apigee runtime instances. See [Getting started with the Service Networking API](https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started). Apigee also supports shared VPC (that is, the host network project is not the same as the one that is peering with Apigee). See [Shared VPC overview](https://cloud.google.com/vpc/docs/shared-vpc). To use a shared VPC network, use the following format: `projects/{host-project-id}/{region}/networks/{network-name}`. For example: `projects/my-sharedvpc-host/global/networks/mynetwork`", "type": "string" }, + "disableVpcPeering": { + "description": "Optional. Flag that specifies whether the VPC Peering through Private Google Access should be disabled between the consumer network and Apigee. Required if an authorizedNetwork on the consumer project is not provided, in which case the flag should be set to true. The value must be set before the creation of any Apigee runtime instance and can be updated only when there are no runtime instances. **Note:** Apigee will be deprecating the vpc peering model that requires you to provide 'authorizedNetwork', by making the non-peering model as the default way of provisioning Apigee organization in future. So, this will be a temporary flag to enable the transition. Not supported for Apigee hybrid.", + "type": "boolean" + }, "runtimeLocation": { "description": "Cloud Platform location for the runtime instance. Defaults to zone `us-west1-a`. If a region is provided, `EVAL` organizations will use the region for automatically selecting a zone for the runtime instance.", "type": "string" @@ -13512,6 +15725,7 @@ "type": "string" }, "paymentFundingModel": { + "deprecated": true, "description": "DEPRECATED: This field is no longer supported and will eventually be removed when Apigee Hybrid 1.5/1.6 is no longer supported. Instead, use the `billingType` field inside `DeveloperMonetizationConfig` resource. Flag that specifies the billing account type, prepaid or postpaid.", "enum": [ "PAYMENT_FUNDING_MODEL_UNSPECIFIED", @@ -13887,6 +16101,59 @@ }, "type": "object" }, + "GoogleCloudApigeeV1RuntimeAddonsConfig": { + "description": "RuntimeAddonsConfig defines the runtime configurations for add-ons in an environment.", + "id": "GoogleCloudApigeeV1RuntimeAddonsConfig", + "properties": { + "analyticsConfig": { + "$ref": "GoogleCloudApigeeV1RuntimeAnalyticsConfig", + "description": "Runtime configuration for Analytics add-on." + }, + "apiSecurityConfig": { + "$ref": "GoogleCloudApigeeV1RuntimeApiSecurityConfig", + "description": "Runtime configuration for API Security add-on." + }, + "name": { + "description": "Name of the addons config in the format: `organizations/{org}/environments/{env}/addonsConfig`", + "type": "string" + }, + "revisionId": { + "description": "Revision number used by the runtime to detect config changes.", + "type": "string" + }, + "uid": { + "description": "UID is to detect if config is recreated after deletion. The add-on config will only be deleted when the environment itself gets deleted, thus it will always be the same as the UID of EnvironmentConfig.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1RuntimeAnalyticsConfig": { + "description": "Runtime configuration for the Analytics add-on.", + "id": "GoogleCloudApigeeV1RuntimeAnalyticsConfig", + "properties": { + "billingPipelineEnabled": { + "description": "If Runtime should send billing data to AX or not.", + "type": "boolean" + }, + "enabled": { + "description": "If the Analytics is enabled or not.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1RuntimeApiSecurityConfig": { + "description": "Runtime configuration for the API Security add-on.", + "id": "GoogleCloudApigeeV1RuntimeApiSecurityConfig", + "properties": { + "enabled": { + "description": "If the API Security is enabled or not.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1RuntimeConfig": { "description": "Runtime configuration for the organization. Response for GetRuntimeConfig.", "id": "GoogleCloudApigeeV1RuntimeConfig", @@ -14195,12 +16462,292 @@ }, "type": "object" }, + "GoogleCloudApigeeV1SecurityAction": { + "description": "A SecurityAction is rule that can be enforced at an environment level. The result is one of: - A denied API call - An explicitly allowed API call - A flagged API call (HTTP headers added before the target receives it) At least one condition is required to create a SecurityAction.", + "id": "GoogleCloudApigeeV1SecurityAction", + "properties": { + "allow": { + "$ref": "GoogleCloudApigeeV1SecurityActionAllow", + "description": "Allow a request through if it matches this SecurityAction." + }, + "conditionConfig": { + "$ref": "GoogleCloudApigeeV1SecurityActionConditionConfig", + "description": "Required. A valid SecurityAction must contain at least one condition." + }, + "createTime": { + "description": "Output only. The create time for this SecurityAction.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deny": { + "$ref": "GoogleCloudApigeeV1SecurityActionDeny", + "description": "Deny a request through if it matches this SecurityAction." + }, + "description": { + "description": "Optional. An optional user provided description of the SecurityAction.", + "type": "string" + }, + "expireTime": { + "description": "The expiration for this SecurityAction.", + "format": "google-datetime", + "type": "string" + }, + "flag": { + "$ref": "GoogleCloudApigeeV1SecurityActionFlag", + "description": "Flag a request through if it matches this SecurityAction." + }, + "name": { + "description": "Immutable. This field is ignored during creation as per AIP-133. Please set the `security_action_id` field in the CreateSecurityActionRequest when creating a new SecurityAction. Format: organizations/{org}/environments/{env}/securityActions/{security_action}", + "type": "string" + }, + "state": { + "description": "Required. Only an ENABLED SecurityAction is enforced. An ENABLED SecurityAction past its expiration time will not be enforced.", + "enum": [ + "STATE_UNSPECIFIED", + "ENABLED", + "DISABLED" + ], + "enumDescriptions": [ + "The default value. This only exists for forward compatibility. A create request with this value will be rejected.", + "An ENABLED SecurityAction is actively enforced if the `expiration_time` is in the future.", + "A disabled SecurityAction is never enforced." + ], + "type": "string" + }, + "ttl": { + "description": "Input only. The TTL for this SecurityAction.", + "format": "google-duration", + "type": "string" + }, + "updateTime": { + "description": "Output only. The update time for this SecurityAction. This reflects when this SecurityAction changed states.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityActionAllow": { + "description": "Message that should be set in case of an Allow Action. This does not have any fields.", + "id": "GoogleCloudApigeeV1SecurityActionAllow", + "properties": {}, + "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: 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, 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" + }, + "type": "array" + }, + "ipAddressRanges": { + "description": "Optional. A list of IP addresses. This could be either IPv4 or IPv6. Limited to 100 per action.", + "items": { + "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" + }, + "GoogleCloudApigeeV1SecurityActionDeny": { + "description": "Message that should be set in case of a Deny Action.", + "id": "GoogleCloudApigeeV1SecurityActionDeny", + "properties": { + "responseCode": { + "description": "Optional. The HTTP response code if the Action = DENY.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityActionFlag": { + "description": "The message that should be set in the case of a Flag action.", + "id": "GoogleCloudApigeeV1SecurityActionFlag", + "properties": { + "headers": { + "description": "Optional. A list of HTTP headers to be sent to the target in case of a FLAG SecurityAction. Limit 5 headers per SecurityAction. At least one is mandatory.", + "items": { + "$ref": "GoogleCloudApigeeV1SecurityActionHttpHeader" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityActionHttpHeader": { + "description": "An HTTP header.", + "id": "GoogleCloudApigeeV1SecurityActionHttpHeader", + "properties": { + "name": { + "description": "The header name to be sent to the target.", + "type": "string" + }, + "value": { + "description": "The header value to be sent to the target.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityActionsConfig": { + "description": "SecurityActionsConfig reflects the current state of the SecurityActions feature. This is a singleton resource: https://google.aip.dev/156", + "id": "GoogleCloudApigeeV1SecurityActionsConfig", + "properties": { + "enabled": { + "description": "The flag that controls whether this feature is enabled. This is `unset` by default. When this flag is `false`, even if individual rules are enabled, no SecurityActions will be enforced.", + "type": "boolean" + }, + "name": { + "description": "This is a singleton resource, the name will always be set by SecurityActions and any user input will be ignored. The name is always: `organizations/{org}/environments/{env}/security_actions_config`", + "type": "string" + }, + "updateTime": { + "description": "Output only. The update time for configuration.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityIncident": { + "description": "Represents an SecurityIncident resource.", + "id": "GoogleCloudApigeeV1SecurityIncident", + "properties": { + "detectionTypes": { + "description": "Output only. Detection types which are part of the incident. Examples: Flooder, OAuth Abuser, Static Content Scraper, Anomaly Detection.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "displayName": { + "description": "Optional. Display name of the security incident.", + "type": "string" + }, + "firstDetectedTime": { + "description": "Output only. The time when events associated with the incident were first detected.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "lastDetectedTime": { + "description": "Output only. The time when events associated with the incident were last detected.", + "format": "google-datetime", + "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": [ + "RISK_LEVEL_UNSPECIFIED", + "LOW", + "MODERATE", + "SEVERE" + ], + "enumDescriptions": [ + "Risk Level Unspecified.", + "Risk level of the incident is low.", + "Risk level of the incident is moderate.", + "Risk level of the incident is severe." + ], + "readOnly": true, + "type": "string" + }, + "trafficCount": { + "description": "Total traffic detected as part of the incident.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1SecurityProfile": { "description": "Represents a SecurityProfile resource.", "id": "GoogleCloudApigeeV1SecurityProfile", "properties": { + "description": { + "description": "Description of the security profile.", + "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": { @@ -14226,6 +16773,10 @@ "description": "Immutable. Name of the security profile resource. Format: organizations/{org}/securityProfiles/{profile}", "type": "string" }, + "profileConfig": { + "$ref": "GoogleCloudApigeeV1ProfileConfig", + "description": "Required. Customized profile configuration that computes the security score." + }, "revisionCreateTime": { "description": "Output only. The time when revision was created.", "format": "google-datetime", @@ -14239,7 +16790,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" @@ -14289,11 +16841,12 @@ "type": "string" }, "name": { - "description": "Immutable. Name of the profile-environment association resource. Format: organizations/{org}/securityProfiles/{profile}/environments/{env}", + "description": "Immutable. Name of the environment that the profile is attached to.", "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" } @@ -14551,6 +17104,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": { @@ -14584,6 +17152,21 @@ }, "type": "object" }, + "GoogleCloudApigeeV1SetAddonEnablementRequest": { + "description": "Request for SetAddonEnablement.", + "id": "GoogleCloudApigeeV1SetAddonEnablementRequest", + "properties": { + "analyticsEnabled": { + "description": "If the Analytics should be enabled in the environment.", + "type": "boolean" + }, + "apiSecurityEnabled": { + "description": "If the API Security should be enabled in the environment.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1SetAddonsRequest": { "description": "Request for SetAddons.", "id": "GoogleCloudApigeeV1SetAddonsRequest", @@ -14832,12 +17415,18 @@ "enum": [ "PROTOCOL_UNSPECIFIED", "HTTP", - "GRPC" + "HTTP2", + "GRPC_TARGET", + "GRPC", + "EXTERNAL_CALLOUT" ], "enumDescriptions": [ "UNSPECIFIED defaults to HTTP for backwards compatibility.", "The TargetServer uses HTTP.", - "The TargetServer uses GRPC." + "The TargetSever uses HTTP2.", + "The TargetServer uses GRPC.", + "GRPC TargetServer to be used in ExternalCallout Policy. Prefer to use EXTERNAL_CALLOUT instead. TODO(b/266125112) deprecate once EXTERNAL _CALLOUT generally available.", + "The TargetServer is to be used in the ExternalCallout Policy" ], "type": "string" }, @@ -14873,12 +17462,18 @@ "enum": [ "PROTOCOL_UNSPECIFIED", "HTTP", - "GRPC" + "HTTP2", + "GRPC_TARGET", + "GRPC", + "EXTERNAL_CALLOUT" ], "enumDescriptions": [ "UNSPECIFIED defaults to HTTP for backwards compatibility.", "The TargetServer uses HTTP.", - "The TargetServer uses GRPC." + "The TargetSever uses HTTP2.", + "The TargetServer uses GRPC.", + "GRPC TargetServer to be used in ExternalCallout Policy. Prefer to use EXTERNAL_CALLOUT instead. TODO(b/266125112) deprecate once EXTERNAL _CALLOUT generally available.", + "The TargetServer is to be used in the ExternalCallout Policy" ], "type": "string" }, @@ -15091,6 +17686,28 @@ }, "type": "object" }, + "GoogleCloudApigeeV1UpdateAppGroupAppKeyRequest": { + "description": "Request for UpdateAppGroupAppKey", + "id": "GoogleCloudApigeeV1UpdateAppGroupAppKeyRequest", + "properties": { + "action": { + "description": "Approve or revoke the consumer key by setting this value to `approve` or `revoke` respectively. The `Content-Type` header, if set, must be set to `application/octet-stream`, with empty body.", + "type": "string" + }, + "apiProducts": { + "description": "The list of API products that will be associated with the credential. This list will be appended to the existing list of associated API Products for this App Key. Duplicates will be ignored.", + "items": { + "type": "string" + }, + "type": "array" + }, + "appGroupAppKey": { + "$ref": "GoogleCloudApigeeV1AppGroupAppKey", + "description": "The new AppGroupKey to be amended. Note that the status can be updated only via action." + } + }, + "type": "object" + }, "GoogleCloudApigeeV1UpdateError": { "description": "Details on why a resource update failed in the runtime.", "id": "GoogleCloudApigeeV1UpdateError", @@ -15152,6 +17769,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", @@ -15209,21 +17842,21 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, "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/).", + "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": { "auditConfigs": { @@ -15344,7 +17977,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/etc/api/apikeys/v2/apikeys-api.json b/etc/api/apikeys/v2/apikeys-api.json index 577bd3875b..20c352f630 100644 --- a/etc/api/apikeys/v2/apikeys-api.json +++ b/etc/api/apikeys/v2/apikeys-api.json @@ -396,7 +396,7 @@ } } }, - "revision": "20230118", + "revision": "20240303", "rootUrl": "https://apikeys.googleapis.com/", "schemas": { "Operation": { @@ -428,7 +428,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/etc/api/appengine/v1/appengine-api.json b/etc/api/appengine/v1/appengine-api.json index 7f938873ec..eb1b17acbd 100644 --- a/etc/api/appengine/v1/appengine-api.json +++ b/etc/api/appengine/v1/appengine-api.json @@ -144,6 +144,21 @@ "location": "path", "required": true, "type": "string" + }, + "includeExtraData": { + "description": "Options to include extra data", + "enum": [ + "INCLUDE_EXTRA_DATA_UNSPECIFIED", + "INCLUDE_EXTRA_DATA_NONE", + "INCLUDE_GOOGLE_GENERATED_METADATA" + ], + "enumDescriptions": [ + "Unspecified: No extra data will be returned", + "Do not return any extra data", + "Return GGCM associated with the resources" + ], + "location": "query", + "type": "string" } }, "path": "v1/apps/{appsId}", @@ -156,6 +171,47 @@ "https://www.googleapis.com/auth/cloud-platform.read-only" ] }, + "listRuntimes": { + "description": "Lists all the available runtimes for the application.", + "flatPath": "v1/apps/{appsId}:listRuntimes", + "httpMethod": "GET", + "id": "appengine.apps.listRuntimes", + "parameterOrder": [ + "appsId" + ], + "parameters": { + "appsId": { + "description": "Part of `parent`. Required. Name of the parent Application resource. Example: apps/myapp.", + "location": "path", + "required": true, + "type": "string" + }, + "environment": { + "description": "Optional. The environment of the Application.", + "enum": [ + "ENVIRONMENT_UNSPECIFIED", + "STANDARD", + "FLEXIBLE" + ], + "enumDescriptions": [ + "Default value.", + "App Engine Standard.", + "App Engine Flexible" + ], + "location": "query", + "type": "string" + } + }, + "path": "v1/apps/{appsId}:listRuntimes", + "response": { + "$ref": "ListRuntimesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + }, "patch": { "description": "Updates the specified Application resource. You can update the following fields: auth_domain - Google authentication domain for controlling user access to the application. default_cookie_expiration - Cookie expiration policy for the application. iap - Identity-Aware Proxy properties for the application.", "flatPath": "v1/apps/{appsId}", @@ -967,7 +1023,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as \"/v1/{name=users/*}/operations\" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.", "flatPath": "v1/apps/{appsId}/operations", "httpMethod": "GET", "id": "appengine.apps.operations.list", @@ -1599,46 +1655,61 @@ "locations": { "resources": { "applications": { - "methods": { - "get": { - "description": "Gets information about an application.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}", - "httpMethod": "GET", - "id": "appengine.projects.locations.applications.get", - "parameterOrder": [ - "projectsId", - "locationsId", - "applicationsId" - ], - "parameters": { - "applicationsId": { - "description": "Part of `name`. See documentation of `projectsId`.", - "location": "path", - "required": true, - "type": "string" - }, - "locationsId": { - "description": "Part of `name`. See documentation of `projectsId`.", - "location": "path", - "required": true, - "type": "string" - }, - "projectsId": { - "description": "Part of `name`. Name of the Application resource to get. Example: apps/myapp.", - "location": "path", - "required": true, - "type": "string" + "resources": { + "authorizedDomains": { + "methods": { + "list": { + "description": "Lists all domains the user is authorized to administer.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedDomains", + "httpMethod": "GET", + "id": "appengine.projects.locations.applications.authorizedDomains.list", + "parameterOrder": [ + "projectsId", + "locationsId", + "applicationsId" + ], + "parameters": { + "applicationsId": { + "description": "Part of `parent`. See documentation of `projectsId`.", + "location": "path", + "required": true, + "type": "string" + }, + "locationsId": { + "description": "Part of `parent`. See documentation of `projectsId`.", + "location": "path", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Maximum results to return per page.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Continuation token for fetching the next page of results.", + "location": "query", + "type": "string" + }, + "projectsId": { + "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedDomains", + "response": { + "$ref": "ListAuthorizedDomainsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] } - }, - "path": "v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}", - "response": { - "$ref": "Application" - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ] + } } } } @@ -1647,7 +1718,7 @@ } } }, - "revision": "20230114", + "revision": "20240226", "rootUrl": "https://appengine.googleapis.com/", "schemas": { "ApiConfigHandler": { @@ -1733,7 +1804,8 @@ "type": "string" }, "codeBucket": { - "description": "Google Cloud Storage bucket that can be used for storing files associated with this application. This bucket is associated with the application and can be used by the gcloud deployment commands.@OutputOnly", + "description": "Output only. Google Cloud Storage bucket that can be used for storing files associated with this application. This bucket is associated with the application and can be used by the gcloud deployment commands.@OutputOnly", + "readOnly": true, "type": "string" }, "databaseType": { @@ -1753,7 +1825,8 @@ "type": "string" }, "defaultBucket": { - "description": "Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly", + "description": "Output only. Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly", + "readOnly": true, "type": "string" }, "defaultCookieExpiration": { @@ -1762,7 +1835,8 @@ "type": "string" }, "defaultHostname": { - "description": "Hostname used to reach this application, as resolved by App Engine.@OutputOnly", + "description": "Output only. Hostname used to reach this application, as resolved by App Engine.@OutputOnly", + "readOnly": true, "type": "string" }, "dispatchRules": { @@ -1777,9 +1851,18 @@ "description": "The feature specific settings to be used in the application." }, "gcrDomain": { - "description": "The Google Container Registry domain used for storing managed build docker images for this application.", + "description": "Output only. The Google Container Registry domain used for storing managed build docker images for this application.", + "readOnly": true, "type": "string" }, + "generatedCustomerMetadata": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Additional Google Generated Customer Metadata, this field won't be provided by default and can be requested by setting the IncludeExtraData field in GetApplicationRequest", + "type": "object" + }, "iap": { "$ref": "IdentityAwareProxy" }, @@ -1792,7 +1875,8 @@ "type": "string" }, "name": { - "description": "Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly", + "description": "Output only. Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly", + "readOnly": true, "type": "string" }, "serviceAccount": { @@ -1870,7 +1954,7 @@ "type": "object" }, "AuthorizedDomain": { - "description": "A domain that a user has been authorized to administer. To authorize use of a domain, verify ownership via Webmaster Central (https://www.google.com/webmasters/verification/home).", + "description": "A domain that a user has been authorized to administer. To authorize use of a domain, verify ownership via Search Console (https://search.google.com/search-console/welcome).", "id": "AuthorizedDomain", "properties": { "id": { @@ -2038,6 +2122,36 @@ }, "type": "object" }, + "ContainerState": { + "description": "ContainerState contains the externally-visible container state that is used to communicate the state and reasoning for that state to the CLH. This data is not persisted by CCFE, but is instead derived from CCFE's internal representation of the container state.", + "id": "ContainerState", + "properties": { + "currentReasons": { + "$ref": "Reasons" + }, + "previousReasons": { + "$ref": "Reasons", + "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.", + "enum": [ + "UNKNOWN_STATE", + "ON", + "OFF", + "DELETED" + ], + "enumDescriptions": [ + "A container should never be in an unknown state. Receipt of a container with this state is an error.", + "CCFE considers the container to be serving or transitioning into serving.", + "CCFE considers the container to be in an OFF state. This could occur due to various factors. The state could be triggered by Google-internal audits (ex. abuse suspension, billing closed) or cleanups trigged by compliance systems (ex. data governance hide). User-initiated events such as service management deactivation trigger a container to an OFF state.CLHs might choose to do nothing in this case or to turn off costly resources. CLHs need to consider the customer experience if an ON/OFF/ON sequence of state transitions occurs vs. the cost of deleting resources, keeping metadata about resources, or even keeping resources live for a period of time.CCFE will not send any new customer requests to the CLH when the container is in an OFF state. However, CCFE will allow all previous customer requests relayed to CLH to complete.", + "This state indicates that the container has been (or is being) completely removed. This is often due to a data governance purge request and therefore resources should be deleted when this state is reached." + ], + "type": "string" + } + }, + "type": "object" + }, "CpuUtilization": { "description": "Target scaling by CPU usage.", "id": "CpuUtilization", @@ -2088,6 +2202,28 @@ }, "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" + }, "DebugInstanceRequest": { "description": "Request message for Instances.DebugInstance.", "id": "DebugInstanceRequest", @@ -2329,6 +2465,21 @@ }, "type": "object" }, + "FlexibleRuntimeSettings": { + "description": "Runtime settings for the App Engine flexible environment.", + "id": "FlexibleRuntimeSettings", + "properties": { + "operatingSystem": { + "description": "The operating system of the application runtime.", + "type": "string" + }, + "runtimeVersion": { + "description": "The runtime version of an App Engine flexible application.", + "type": "string" + } + }, + "type": "object" + }, "GoogleAppengineV1betaLocationMetadata": { "description": "Metadata for the given google.cloud.location.Location.", "id": "GoogleAppengineV1betaLocationMetadata", @@ -2406,7 +2557,8 @@ "type": "string" }, "oauth2ClientSecretSha256": { - "description": "Hex-encoded SHA-256 hash of the client secret.@OutputOnly", + "description": "Output only. Hex-encoded SHA-256 hash of the client secret.@OutputOnly", + "readOnly": true, "type": "string" } }, @@ -2677,6 +2829,24 @@ }, "type": "object" }, + "ListRuntimesResponse": { + "description": "Response message for Applications.ListRuntimes.", + "id": "ListRuntimesResponse", + "properties": { + "nextPageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, + "runtimes": { + "description": "The runtimes available to the requested application.", + "items": { + "$ref": "Runtime" + }, + "type": "array" + } + }, + "type": "object" + }, "ListServicesResponse": { "description": "Response message for Services.ListServices.", "id": "ListServicesResponse", @@ -2754,7 +2924,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -2976,7 +3146,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" } }, @@ -3137,42 +3307,12 @@ "description": "The projects metadata for this project. required" }, "state": { - "$ref": "ProjectState", + "$ref": "ContainerState", "description": "The state of the project that led to this event." } }, "type": "object" }, - "ProjectState": { - "description": "ProjectState contains the externally-visible project state that is used to communicate the state and reasoning for that state to the CLH. This data is not persisted by CCFE, but is instead derived from CCFE's internal representation of the project state.", - "id": "ProjectState", - "properties": { - "currentReasons": { - "$ref": "Reasons" - }, - "previousReasons": { - "$ref": "Reasons", - "description": "The previous and current reasons for a project state will be sent for a project event. CLHs that need to know the signal that caused the project 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)." - }, - "state": { - "description": "The current state of the project. This state is the culmination of all of the opinions from external systems that CCFE knows about of the project.", - "enum": [ - "UNKNOWN_STATE", - "ON", - "OFF", - "DELETED" - ], - "enumDescriptions": [ - "A project should never be in an unknown state. Receipt of a project with this state is an error.", - "CCFE considers the project to be serving or transitioning into serving.", - "CCFE considers the project to be in an OFF state. This could occur due to various factors. The state could be triggered by Google-internal audits (ex. abuse suspension, billing closed) or cleanups trigged by compliance systems (ex. data governance hide). User-initiated events such as service management deactivation trigger a project to an OFF state.CLHs might choose to do nothing in this case or to turn off costly resources. CLHs need to consider the customer experience if an ON/OFF/ON sequence of state transitions occurs vs. the cost of deleting resources, keeping metadata about resources, or even keeping resources live for a period of time.CCFE will not send any new customer requests to the CLH when the project is in an OFF state. However, CCFE will allow all previous customer requests relayed to CLH to complete.", - "This state indicates that the project has been (or is being) completely removed. This is often due to a data governance purge request and therefore resources should be deleted when this state is reached." - ], - "type": "string" - } - }, - "type": "object" - }, "ProjectsMetadata": { "description": "ProjectsMetadata is the metadata CCFE stores about the all the relevant projects (tenant, consumer, producer).", "id": "ProjectsMetadata", @@ -3195,10 +3335,10 @@ "DELETED" ], "enumDescriptions": [ - "A project should never be in an unknown state. Receipt of a project with this state is an error.", - "CCFE considers the project to be serving or transitioning into serving.", - "CCFE considers the project to be in an OFF state. This could occur due to various factors. The state could be triggered by Google-internal audits (ex. abuse suspension, billing closed) or cleanups trigged by compliance systems (ex. data governance hide). User-initiated events such as service management deactivation trigger a project to an OFF state.CLHs might choose to do nothing in this case or to turn off costly resources. CLHs need to consider the customer experience if an ON/OFF/ON sequence of state transitions occurs vs. the cost of deleting resources, keeping metadata about resources, or even keeping resources live for a period of time.CCFE will not send any new customer requests to the CLH when the project is in an OFF state. However, CCFE will allow all previous customer requests relayed to CLH to complete.", - "This state indicates that the project has been (or is being) completely removed. This is often due to a data governance purge request and therefore resources should be deleted when this state is reached." + "A container should never be in an unknown state. Receipt of a container with this state is an error.", + "CCFE considers the container to be serving or transitioning into serving.", + "CCFE considers the container to be in an OFF state. This could occur due to various factors. The state could be triggered by Google-internal audits (ex. abuse suspension, billing closed) or cleanups trigged by compliance systems (ex. data governance hide). User-initiated events such as service management deactivation trigger a container to an OFF state.CLHs might choose to do nothing in this case or to turn off costly resources. CLHs need to consider the customer experience if an ON/OFF/ON sequence of state transitions occurs vs. the cost of deleting resources, keeping metadata about resources, or even keeping resources live for a period of time.CCFE will not send any new customer requests to the CLH when the container is in an OFF state. However, CCFE will allow all previous customer requests relayed to CLH to complete.", + "This state indicates that the container has been (or is being) completely removed. This is often due to a data governance purge request and therefore resources should be deleted when this state is reached." ], "type": "string" }, @@ -3268,7 +3408,7 @@ "type": "object" }, "Reasons": { - "description": "Projects transition between and within states based on reasons sent from various systems. CCFE will provide the CLH with reasons for the current state per system.The current systems that CCFE supports are: Service Management (Inception) Data Governance (Wipeout) Abuse (Ares) Billing (Internal Cloud Billing API)", + "description": "Containers transition between and within states based on reasons sent from various systems. CCFE will provide the CLH with reasons for the current state per system.The current systems that CCFE supports are: Service Management (Inception) Data Governance (Wipeout) Abuse (Ares) Billing (Internal Cloud Billing API) Service Activation (Service Controller)", "id": "Reasons", "properties": { "abuse": { @@ -3279,10 +3419,10 @@ "REINSTATE" ], "enumDescriptions": [ - "An unknown reason indicates that the abuse system has not sent a signal for this project.", - "Due to various reasons CCFE might proactively restate a project state to a CLH to ensure that the CLH and CCFE are both aware of the project state. This reason can be tied to any of the states.", - "If a project is deemed abusive we receive a suspend signal. Suspend is a reason to put the project into an INTERNAL_OFF state.", - "Projects that were once considered abusive can later be deemed non-abusive. When this happens we must reinstate the project. Reinstate is a reason to put the project into an ON state." + "An unknown reason indicates that the abuse system has not sent a signal for this container.", + "Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.", + "If a container is deemed abusive we receive a suspend signal. Suspend is a reason to put the container into an INTERNAL_OFF state.", + "Containers that were once considered abusive can later be deemed non-abusive. When this happens we must reinstate the container. Reinstate is a reason to put the container into an ON state." ], "type": "string" }, @@ -3295,11 +3435,11 @@ "OPEN" ], "enumDescriptions": [ - "An unknown reason indicates that the billing system has not sent a signal for this project.", - "Due to various reasons CCFE might proactively restate a project state to a CLH to ensure that the CLH and CCFE are both aware of the project state. This reason can be tied to any of the states.", - "Minor infractions cause a probation signal to be sent. Probation is a reason to put the project into a ON state even though it is a negative signal. CCFE will block mutations for this project while it is on billing probation, but the CLH is expected to serve non-mutation requests.", - "When a billing account is closed, it is a stronger signal about non-payment. Close is a reason to put the project into an INTERNAL_OFF state.", - "Consumers can re-open billing accounts and update accounts to pull them out of probation. When this happens, we get a signal that the account is open. Open is a reason to put the project into an ON state." + "An unknown reason indicates that the billing system has not sent a signal for this container.", + "Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.", + "Minor infractions cause a probation signal to be sent. Probation is a reason to put the container into a ON state even though it is a negative signal. CCFE will block mutations for this container while it is on billing probation, but the CLH is expected to serve non-mutation requests.", + "When a billing account is closed, it is a stronger signal about non-payment. Close is a reason to put the container into an INTERNAL_OFF state.", + "Consumers can re-open billing accounts and update accounts to pull them out of probation. When this happens, we get a signal that the account is open. Open is a reason to put the container into an ON state." ], "type": "string" }, @@ -3312,11 +3452,29 @@ "PURGE" ], "enumDescriptions": [ - "An unknown reason indicates that data governance has not sent a signal for this project.", - "Due to various reasons CCFE might proactively restate a project state to a CLH to ensure that the CLH and CCFE are both aware of the project state. This reason can be tied to any of the states.", - "When a project is deleted we retain some data for a period of time to allow the consumer to change their mind. Data governance sends a signal to hide the data when this occurs. Hide is a reason to put the project in an INTERNAL_OFF state.", - "The decision to un-delete a project can be made. When this happens data governance tells us to unhide any hidden data. Unhide is a reason to put the project in an ON state.", - "After a period of time data must be completely removed from our systems. When data governance sends a purge signal we need to remove data. Purge is a reason to put the project in a DELETED state. Purge is the only event that triggers a delete mutation. All other events have update semantics." + "An unknown reason indicates that data governance has not sent a signal for this container.", + "Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.", + "When a container is deleted we retain some data for a period of time to allow the consumer to change their mind. Data governance sends a signal to hide the data when this occurs. Hide is a reason to put the container in an INTERNAL_OFF state.", + "The decision to un-delete a container can be made. When this happens data governance tells us to unhide any hidden data. Unhide is a reason to put the container in an ON state.", + "After a period of time data must be completely removed from our systems. When data governance sends a purge signal we need to remove data. Purge is a reason to put the container in a DELETED state. Purge is the only event that triggers a delete mutation. All other events have update semantics." + ], + "type": "string" + }, + "serviceActivation": { + "description": "Consumer Container denotes if the service is active within a project or not. This information could be used to clean up resources in case service in DISABLED_FULL i.e. Service is inactive > 30 days.", + "enum": [ + "SERVICE_ACTIVATION_STATUS_UNSPECIFIED", + "SERVICE_ACTIVATION_ENABLED", + "SERVICE_ACTIVATION_DISABLED", + "SERVICE_ACTIVATION_DISABLED_FULL", + "SERVICE_ACTIVATION_UNKNOWN_REASON" + ], + "enumDescriptions": [ + "Default Unspecified status", + "Service is active in the project.", + "Service is disabled in the project recently i.e., within last 24 hours.", + "Service has been disabled for configured grace_period (default 30 days).", + "Happens when PSM cannot determine the status of service in a project Could happen due to variety of reasons like PERMISSION_DENIED or Project got deleted etc." ], "type": "string" }, @@ -3329,13 +3487,21 @@ "ABORT_DEACTIVATION", "COMMIT_DEACTIVATION" ], + "enumDeprecated": [ + false, + false, + true, + true, + true, + true + ], "enumDescriptions": [ - "An unknown reason indicates that we have not received a signal from service management about this project. Since projects are created by request of service management, this reason should never be set.", - "Due to various reasons CCFE might proactively restate a project state to a CLH to ensure that the CLH and CCFE are both aware of the project state. This reason can be tied to any of the states.", - "When a customer activates an API CCFE notifies the CLH and sets the project to the ON state.", - "When a customer deactivates and API service management starts a two-step process to perform the deactivation. The first step is to prepare. Prepare is a reason to put the project in a EXTERNAL_OFF state.", - "If the deactivation is cancelled, service managed needs to abort the deactivation. Abort is a reason to put the project in an ON state.", - "If the deactivation is followed through with, service management needs to finish deactivation. Commit is a reason to put the project in a DELETED state." + "An unknown reason indicates that we have not received a signal from service management about this container. Since containers are created by request of service management, this reason should never be set.", + "Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.", + "When a customer activates an API CCFE notifies the CLH and sets the container to the ON state.", + "When a customer deactivates and API service management starts a two-step process to perform the deactivation. The first step is to prepare. Prepare is a reason to put the container in a EXTERNAL_OFF state.", + "If the deactivation is cancelled, service managed needs to abort the deactivation. Abort is a reason to put the container in an ON state.", + "If the deactivation is followed through with, service management needs to finish deactivation. Commit is a reason to put the container in a DELETED state." ], "type": "string" } @@ -3429,6 +3595,85 @@ }, "type": "object" }, + "Runtime": { + "description": "Runtime versions for App Engine.", + "id": "Runtime", + "properties": { + "decommissionedDate": { + "$ref": "Date", + "description": "Date when Runtime is decommissioned." + }, + "deprecationDate": { + "$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." + }, + "environment": { + "description": "The environment of the runtime.", + "enum": [ + "ENVIRONMENT_UNSPECIFIED", + "STANDARD", + "FLEXIBLE" + ], + "enumDescriptions": [ + "Default value.", + "App Engine Standard.", + "App Engine Flexible" + ], + "type": "string" + }, + "name": { + "description": "The name of the runtime, e.g., 'go113', 'nodejs12', etc.", + "type": "string" + }, + "stage": { + "description": "The stage of life this runtime is in, e.g., BETA, GA, etc.", + "enum": [ + "RUNTIME_STAGE_UNSPECIFIED", + "DEVELOPMENT", + "ALPHA", + "BETA", + "GA", + "DEPRECATED", + "DECOMMISSIONED", + "END_OF_SUPPORT" + ], + "enumDescriptions": [ + "Not specified.", + "The runtime is in development.", + "The runtime is in the Alpha stage.", + "The runtime is in the Beta stage.", + "The runtime is generally available.", + "The runtime is deprecated.", + "The runtime is no longer supported.", + "The runtime is end of support." + ], + "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": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ScriptHandler": { "description": "Executes a script to handle the request that matches the URL pattern.", "id": "ScriptHandler", @@ -3444,6 +3689,14 @@ "description": "A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle tasks such as backend data analysis or API requests from mobile devices. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.", "id": "Service", "properties": { + "generatedCustomerMetadata": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Additional Google Generated Customer Metadata, this field won't be provided by default and can be requested by setting the IncludeExtraData field in GetServiceRequest", + "type": "object" + }, "id": { "description": "Relative name of the service within the application. Example: default.@OutputOnly", "type": "string" @@ -3737,6 +3990,7 @@ "properties": { "apiConfig": { "$ref": "ApiConfigHandler", + "deprecated": true, "description": "Serving configuration for Google Cloud Endpoints (https://cloud.google.com/endpoints).Only returned in GET requests if view=FULL is set." }, "appEngineApis": { @@ -3814,6 +4068,18 @@ }, "type": "array" }, + "flexibleRuntimeSettings": { + "$ref": "FlexibleRuntimeSettings", + "description": "Settings for App Engine flexible runtimes." + }, + "generatedCustomerMetadata": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Additional Google Generated Customer Metadata, this field won't be provided by default and can be requested by setting the IncludeExtraData field in GetVersionRequest", + "type": "object" + }, "handlers": { "description": "An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.", "items": { @@ -3823,7 +4089,7 @@ }, "healthCheck": { "$ref": "HealthCheck", - "description": "Configures health checking for instances. Unhealthy instances are stopped and replaced with new instances. Only applicable in the App Engine flexible environment.Only returned in GET requests if view=FULL is set." + "description": "Configures health checking for instances. Unhealthy instances are stopped and replaced with new instances. Only applicable in the App Engine flexible environment." }, "id": { "description": "Relative name of the version within the service. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: \"default\", \"latest\", and any name with the prefix \"ah-\".", @@ -3871,7 +4137,7 @@ }, "livenessCheck": { "$ref": "LivenessCheck", - "description": "Configures liveness health checking for instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set." + "description": "Configures liveness health checking for instances. Unhealthy instances are stopped and replaced with new instances" }, "manualScaling": { "$ref": "ManualScaling", @@ -3891,7 +4157,7 @@ }, "readinessCheck": { "$ref": "ReadinessCheck", - "description": "Configures readiness health checking for instances. Unhealthy instances are not put into the backend traffic rotation.Only returned in GET requests if view=FULL is set." + "description": "Configures readiness health checking for instances. Unhealthy instances are not put into the backend traffic rotation." }, "resources": { "$ref": "Resources", @@ -3996,7 +4262,7 @@ "type": "string" }, "name": { - "description": "Full Serverless VPC Access Connector name e.g. /projects/my-project/locations/us-central1/connectors/c1.", + "description": "Full Serverless VPC Access Connector name e.g. projects/my-project/locations/us-central1/connectors/c1.", "type": "string" } }, diff --git a/etc/api/appengine/v1alpha/appengine-api.json b/etc/api/appengine/v1alpha/appengine-api.json index f5ee0855d0..3a5a62c37f 100644 --- a/etc/api/appengine/v1alpha/appengine-api.json +++ b/etc/api/appengine/v1alpha/appengine-api.json @@ -663,7 +663,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as \"/v1/{name=users/*}/operations\" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.", "flatPath": "v1alpha/apps/{appsId}/operations", "httpMethod": "GET", "id": "appengine.apps.operations.list", @@ -789,6 +789,65 @@ } }, "resources": { + "applications": { + "resources": { + "authorizedDomains": { + "methods": { + "list": { + "description": "Lists all domains the user is authorized to administer.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedDomains", + "httpMethod": "GET", + "id": "appengine.projects.locations.applications.authorizedDomains.list", + "parameterOrder": [ + "projectsId", + "locationsId", + "applicationsId" + ], + "parameters": { + "applicationsId": { + "description": "Part of `parent`. See documentation of `projectsId`.", + "location": "path", + "required": true, + "type": "string" + }, + "locationsId": { + "description": "Part of `parent`. See documentation of `projectsId`.", + "location": "path", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Maximum results to return per page.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Continuation token for fetching the next page of results.", + "location": "query", + "type": "string" + }, + "projectsId": { + "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedDomains", + "response": { + "$ref": "ListAuthorizedDomainsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + } + } + } + } + }, "operations": { "methods": { "get": { @@ -832,7 +891,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as \"/v1/{name=users/*}/operations\" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.", "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "appengine.projects.locations.operations.list", @@ -887,7 +946,7 @@ } } }, - "revision": "20230114", + "revision": "20240226", "rootUrl": "https://appengine.googleapis.com/", "schemas": { "AuthorizedCertificate": { @@ -942,7 +1001,7 @@ "type": "object" }, "AuthorizedDomain": { - "description": "A domain that a user has been authorized to administer. To authorize use of a domain, verify ownership via Webmaster Central (https://www.google.com/webmasters/verification/home).", + "description": "A domain that a user has been authorized to administer. To authorize use of a domain, verify ownership via Search Console (https://search.google.com/search-console/welcome).", "id": "AuthorizedDomain", "properties": { "id": { @@ -971,6 +1030,36 @@ }, "type": "object" }, + "ContainerState": { + "description": "ContainerState contains the externally-visible container state that is used to communicate the state and reasoning for that state to the CLH. This data is not persisted by CCFE, but is instead derived from CCFE's internal representation of the container state.", + "id": "ContainerState", + "properties": { + "currentReasons": { + "$ref": "Reasons" + }, + "previousReasons": { + "$ref": "Reasons", + "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.", + "enum": [ + "UNKNOWN_STATE", + "ON", + "OFF", + "DELETED" + ], + "enumDescriptions": [ + "A container should never be in an unknown state. Receipt of a container with this state is an error.", + "CCFE considers the container to be serving or transitioning into serving.", + "CCFE considers the container to be in an OFF state. This could occur due to various factors. The state could be triggered by Google-internal audits (ex. abuse suspension, billing closed) or cleanups trigged by compliance systems (ex. data governance hide). User-initiated events such as service management deactivation trigger a container to an OFF state.CLHs might choose to do nothing in this case or to turn off costly resources. CLHs need to consider the customer experience if an ON/OFF/ON sequence of state transitions occurs vs. the cost of deleting resources, keeping metadata about resources, or even keeping resources live for a period of time.CCFE will not send any new customer requests to the CLH when the container is in an OFF state. However, CCFE will allow all previous customer requests relayed to CLH to complete.", + "This state indicates that the container has been (or is being) completely removed. This is often due to a data governance purge request and therefore resources should be deleted when this state is reached." + ], + "type": "string" + } + }, + "type": "object" + }, "CreateVersionMetadataV1": { "description": "Metadata for the given google.longrunning.Operation during a google.appengine.v1.CreateVersionRequest.", "id": "CreateVersionMetadataV1", @@ -1147,7 +1236,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1265,7 +1354,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" } }, @@ -1426,42 +1515,12 @@ "description": "The projects metadata for this project. required" }, "state": { - "$ref": "ProjectState", + "$ref": "ContainerState", "description": "The state of the project that led to this event." } }, "type": "object" }, - "ProjectState": { - "description": "ProjectState contains the externally-visible project state that is used to communicate the state and reasoning for that state to the CLH. This data is not persisted by CCFE, but is instead derived from CCFE's internal representation of the project state.", - "id": "ProjectState", - "properties": { - "currentReasons": { - "$ref": "Reasons" - }, - "previousReasons": { - "$ref": "Reasons", - "description": "The previous and current reasons for a project state will be sent for a project event. CLHs that need to know the signal that caused the project 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)." - }, - "state": { - "description": "The current state of the project. This state is the culmination of all of the opinions from external systems that CCFE knows about of the project.", - "enum": [ - "UNKNOWN_STATE", - "ON", - "OFF", - "DELETED" - ], - "enumDescriptions": [ - "A project should never be in an unknown state. Receipt of a project with this state is an error.", - "CCFE considers the project to be serving or transitioning into serving.", - "CCFE considers the project to be in an OFF state. This could occur due to various factors. The state could be triggered by Google-internal audits (ex. abuse suspension, billing closed) or cleanups trigged by compliance systems (ex. data governance hide). User-initiated events such as service management deactivation trigger a project to an OFF state.CLHs might choose to do nothing in this case or to turn off costly resources. CLHs need to consider the customer experience if an ON/OFF/ON sequence of state transitions occurs vs. the cost of deleting resources, keeping metadata about resources, or even keeping resources live for a period of time.CCFE will not send any new customer requests to the CLH when the project is in an OFF state. However, CCFE will allow all previous customer requests relayed to CLH to complete.", - "This state indicates that the project has been (or is being) completely removed. This is often due to a data governance purge request and therefore resources should be deleted when this state is reached." - ], - "type": "string" - } - }, - "type": "object" - }, "ProjectsMetadata": { "description": "ProjectsMetadata is the metadata CCFE stores about the all the relevant projects (tenant, consumer, producer).", "id": "ProjectsMetadata", @@ -1484,10 +1543,10 @@ "DELETED" ], "enumDescriptions": [ - "A project should never be in an unknown state. Receipt of a project with this state is an error.", - "CCFE considers the project to be serving or transitioning into serving.", - "CCFE considers the project to be in an OFF state. This could occur due to various factors. The state could be triggered by Google-internal audits (ex. abuse suspension, billing closed) or cleanups trigged by compliance systems (ex. data governance hide). User-initiated events such as service management deactivation trigger a project to an OFF state.CLHs might choose to do nothing in this case or to turn off costly resources. CLHs need to consider the customer experience if an ON/OFF/ON sequence of state transitions occurs vs. the cost of deleting resources, keeping metadata about resources, or even keeping resources live for a period of time.CCFE will not send any new customer requests to the CLH when the project is in an OFF state. However, CCFE will allow all previous customer requests relayed to CLH to complete.", - "This state indicates that the project has been (or is being) completely removed. This is often due to a data governance purge request and therefore resources should be deleted when this state is reached." + "A container should never be in an unknown state. Receipt of a container with this state is an error.", + "CCFE considers the container to be serving or transitioning into serving.", + "CCFE considers the container to be in an OFF state. This could occur due to various factors. The state could be triggered by Google-internal audits (ex. abuse suspension, billing closed) or cleanups trigged by compliance systems (ex. data governance hide). User-initiated events such as service management deactivation trigger a container to an OFF state.CLHs might choose to do nothing in this case or to turn off costly resources. CLHs need to consider the customer experience if an ON/OFF/ON sequence of state transitions occurs vs. the cost of deleting resources, keeping metadata about resources, or even keeping resources live for a period of time.CCFE will not send any new customer requests to the CLH when the container is in an OFF state. However, CCFE will allow all previous customer requests relayed to CLH to complete.", + "This state indicates that the container has been (or is being) completely removed. This is often due to a data governance purge request and therefore resources should be deleted when this state is reached." ], "type": "string" }, @@ -1517,7 +1576,7 @@ "type": "object" }, "Reasons": { - "description": "Projects transition between and within states based on reasons sent from various systems. CCFE will provide the CLH with reasons for the current state per system.The current systems that CCFE supports are: Service Management (Inception) Data Governance (Wipeout) Abuse (Ares) Billing (Internal Cloud Billing API)", + "description": "Containers transition between and within states based on reasons sent from various systems. CCFE will provide the CLH with reasons for the current state per system.The current systems that CCFE supports are: Service Management (Inception) Data Governance (Wipeout) Abuse (Ares) Billing (Internal Cloud Billing API) Service Activation (Service Controller)", "id": "Reasons", "properties": { "abuse": { @@ -1528,10 +1587,10 @@ "REINSTATE" ], "enumDescriptions": [ - "An unknown reason indicates that the abuse system has not sent a signal for this project.", - "Due to various reasons CCFE might proactively restate a project state to a CLH to ensure that the CLH and CCFE are both aware of the project state. This reason can be tied to any of the states.", - "If a project is deemed abusive we receive a suspend signal. Suspend is a reason to put the project into an INTERNAL_OFF state.", - "Projects that were once considered abusive can later be deemed non-abusive. When this happens we must reinstate the project. Reinstate is a reason to put the project into an ON state." + "An unknown reason indicates that the abuse system has not sent a signal for this container.", + "Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.", + "If a container is deemed abusive we receive a suspend signal. Suspend is a reason to put the container into an INTERNAL_OFF state.", + "Containers that were once considered abusive can later be deemed non-abusive. When this happens we must reinstate the container. Reinstate is a reason to put the container into an ON state." ], "type": "string" }, @@ -1544,11 +1603,11 @@ "OPEN" ], "enumDescriptions": [ - "An unknown reason indicates that the billing system has not sent a signal for this project.", - "Due to various reasons CCFE might proactively restate a project state to a CLH to ensure that the CLH and CCFE are both aware of the project state. This reason can be tied to any of the states.", - "Minor infractions cause a probation signal to be sent. Probation is a reason to put the project into a ON state even though it is a negative signal. CCFE will block mutations for this project while it is on billing probation, but the CLH is expected to serve non-mutation requests.", - "When a billing account is closed, it is a stronger signal about non-payment. Close is a reason to put the project into an INTERNAL_OFF state.", - "Consumers can re-open billing accounts and update accounts to pull them out of probation. When this happens, we get a signal that the account is open. Open is a reason to put the project into an ON state." + "An unknown reason indicates that the billing system has not sent a signal for this container.", + "Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.", + "Minor infractions cause a probation signal to be sent. Probation is a reason to put the container into a ON state even though it is a negative signal. CCFE will block mutations for this container while it is on billing probation, but the CLH is expected to serve non-mutation requests.", + "When a billing account is closed, it is a stronger signal about non-payment. Close is a reason to put the container into an INTERNAL_OFF state.", + "Consumers can re-open billing accounts and update accounts to pull them out of probation. When this happens, we get a signal that the account is open. Open is a reason to put the container into an ON state." ], "type": "string" }, @@ -1561,11 +1620,29 @@ "PURGE" ], "enumDescriptions": [ - "An unknown reason indicates that data governance has not sent a signal for this project.", - "Due to various reasons CCFE might proactively restate a project state to a CLH to ensure that the CLH and CCFE are both aware of the project state. This reason can be tied to any of the states.", - "When a project is deleted we retain some data for a period of time to allow the consumer to change their mind. Data governance sends a signal to hide the data when this occurs. Hide is a reason to put the project in an INTERNAL_OFF state.", - "The decision to un-delete a project can be made. When this happens data governance tells us to unhide any hidden data. Unhide is a reason to put the project in an ON state.", - "After a period of time data must be completely removed from our systems. When data governance sends a purge signal we need to remove data. Purge is a reason to put the project in a DELETED state. Purge is the only event that triggers a delete mutation. All other events have update semantics." + "An unknown reason indicates that data governance has not sent a signal for this container.", + "Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.", + "When a container is deleted we retain some data for a period of time to allow the consumer to change their mind. Data governance sends a signal to hide the data when this occurs. Hide is a reason to put the container in an INTERNAL_OFF state.", + "The decision to un-delete a container can be made. When this happens data governance tells us to unhide any hidden data. Unhide is a reason to put the container in an ON state.", + "After a period of time data must be completely removed from our systems. When data governance sends a purge signal we need to remove data. Purge is a reason to put the container in a DELETED state. Purge is the only event that triggers a delete mutation. All other events have update semantics." + ], + "type": "string" + }, + "serviceActivation": { + "description": "Consumer Container denotes if the service is active within a project or not. This information could be used to clean up resources in case service in DISABLED_FULL i.e. Service is inactive > 30 days.", + "enum": [ + "SERVICE_ACTIVATION_STATUS_UNSPECIFIED", + "SERVICE_ACTIVATION_ENABLED", + "SERVICE_ACTIVATION_DISABLED", + "SERVICE_ACTIVATION_DISABLED_FULL", + "SERVICE_ACTIVATION_UNKNOWN_REASON" + ], + "enumDescriptions": [ + "Default Unspecified status", + "Service is active in the project.", + "Service is disabled in the project recently i.e., within last 24 hours.", + "Service has been disabled for configured grace_period (default 30 days).", + "Happens when PSM cannot determine the status of service in a project Could happen due to variety of reasons like PERMISSION_DENIED or Project got deleted etc." ], "type": "string" }, @@ -1578,13 +1655,21 @@ "ABORT_DEACTIVATION", "COMMIT_DEACTIVATION" ], + "enumDeprecated": [ + false, + false, + true, + true, + true, + true + ], "enumDescriptions": [ - "An unknown reason indicates that we have not received a signal from service management about this project. Since projects are created by request of service management, this reason should never be set.", - "Due to various reasons CCFE might proactively restate a project state to a CLH to ensure that the CLH and CCFE are both aware of the project state. This reason can be tied to any of the states.", - "When a customer activates an API CCFE notifies the CLH and sets the project to the ON state.", - "When a customer deactivates and API service management starts a two-step process to perform the deactivation. The first step is to prepare. Prepare is a reason to put the project in a EXTERNAL_OFF state.", - "If the deactivation is cancelled, service managed needs to abort the deactivation. Abort is a reason to put the project in an ON state.", - "If the deactivation is followed through with, service management needs to finish deactivation. Commit is a reason to put the project in a DELETED state." + "An unknown reason indicates that we have not received a signal from service management about this container. Since containers are created by request of service management, this reason should never be set.", + "Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.", + "When a customer activates an API CCFE notifies the CLH and sets the container to the ON state.", + "When a customer deactivates and API service management starts a two-step process to perform the deactivation. The first step is to prepare. Prepare is a reason to put the container in a EXTERNAL_OFF state.", + "If the deactivation is cancelled, service managed needs to abort the deactivation. Abort is a reason to put the container in an ON state.", + "If the deactivation is followed through with, service management needs to finish deactivation. Commit is a reason to put the container in a DELETED state." ], "type": "string" } diff --git a/etc/api/appengine/v1beta/appengine-api.json b/etc/api/appengine/v1beta/appengine-api.json index 03e2e2cf60..4650a91616 100644 --- a/etc/api/appengine/v1beta/appengine-api.json +++ b/etc/api/appengine/v1beta/appengine-api.json @@ -118,13 +118,7 @@ "httpMethod": "POST", "id": "appengine.apps.create", "parameterOrder": [], - "parameters": { - "parent": { - "description": "The project and location in which the application should be created, specified in the format projects/*/locations/*", - "location": "query", - "type": "string" - } - }, + "parameters": {}, "path": "v1beta/apps", "request": { "$ref": "Application" @@ -150,6 +144,21 @@ "location": "path", "required": true, "type": "string" + }, + "includeExtraData": { + "description": "Optional. Options to include extra data", + "enum": [ + "INCLUDE_EXTRA_DATA_UNSPECIFIED", + "INCLUDE_EXTRA_DATA_NONE", + "INCLUDE_GOOGLE_GENERATED_METADATA" + ], + "enumDescriptions": [ + "Unspecified: No extra data will be returned", + "Do not return any extra data", + "Return GGCM associated with the resources" + ], + "location": "query", + "type": "string" } }, "path": "v1beta/apps/{appsId}", @@ -162,6 +171,47 @@ "https://www.googleapis.com/auth/cloud-platform.read-only" ] }, + "listRuntimes": { + "description": "Lists all the available runtimes for the application.", + "flatPath": "v1beta/apps/{appsId}:listRuntimes", + "httpMethod": "GET", + "id": "appengine.apps.listRuntimes", + "parameterOrder": [ + "appsId" + ], + "parameters": { + "appsId": { + "description": "Part of `parent`. Required. Name of the parent Application resource. Example: apps/myapp.", + "location": "path", + "required": true, + "type": "string" + }, + "environment": { + "description": "Optional. The environment of the Application.", + "enum": [ + "ENVIRONMENT_UNSPECIFIED", + "STANDARD", + "FLEXIBLE" + ], + "enumDescriptions": [ + "Default value.", + "App Engine Standard.", + "App Engine Flexible" + ], + "location": "query", + "type": "string" + } + }, + "path": "v1beta/apps/{appsId}:listRuntimes", + "response": { + "$ref": "ListRuntimesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + }, "patch": { "description": "Updates the specified Application resource. You can update the following fields: auth_domain - Google authentication domain for controlling user access to the application. default_cookie_expiration - Cookie expiration policy for the application. iap - Identity-Aware Proxy properties for the application.", "flatPath": "v1beta/apps/{appsId}", @@ -973,7 +1023,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as \"/v1/{name=users/*}/operations\" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.", "flatPath": "v1beta/apps/{appsId}/operations", "httpMethod": "GET", "id": "appengine.apps.operations.list", @@ -1065,6 +1115,21 @@ "required": true, "type": "string" }, + "includeExtraData": { + "description": "Optional. Options to include extra data", + "enum": [ + "INCLUDE_EXTRA_DATA_UNSPECIFIED", + "INCLUDE_EXTRA_DATA_NONE", + "INCLUDE_GOOGLE_GENERATED_METADATA" + ], + "enumDescriptions": [ + "Unspecified: No extra data will be returned", + "Do not return any extra data", + "Return GGCM associated with the resources" + ], + "location": "query", + "type": "string" + }, "servicesId": { "description": "Part of `name`. See documentation of `appsId`.", "location": "path", @@ -1257,6 +1322,21 @@ "required": true, "type": "string" }, + "includeExtraData": { + "description": "Optional. Options to include extra data", + "enum": [ + "INCLUDE_EXTRA_DATA_UNSPECIFIED", + "INCLUDE_EXTRA_DATA_NONE", + "INCLUDE_GOOGLE_GENERATED_METADATA" + ], + "enumDescriptions": [ + "Unspecified: No extra data will be returned", + "Do not return any extra data", + "Return GGCM associated with the resources" + ], + "location": "query", + "type": "string" + }, "servicesId": { "description": "Part of `name`. See documentation of `appsId`.", "location": "path", @@ -1682,121 +1762,61 @@ }, "resources": { "applications": { - "methods": { - "create": { - "description": "Creates an App Engine application for a Google Cloud Platform project. Required fields: id - The ID of the target Cloud Platform project. location - The region (https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.For more information about App Engine applications, see Managing Projects, Applications, and Billing (https://cloud.google.com/appengine/docs/standard/python/console/).", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/applications", - "httpMethod": "POST", - "id": "appengine.projects.locations.applications.create", - "parameterOrder": [ - "projectsId", - "locationsId" - ], - "parameters": { - "locationsId": { - "description": "Part of `parent`. See documentation of `projectsId`.", - "location": "path", - "required": true, - "type": "string" - }, - "projectsId": { - "description": "Part of `parent`. The project and location in which the application should be created, specified in the format projects/*/locations/*", - "location": "path", - "required": true, - "type": "string" + "resources": { + "authorizedDomains": { + "methods": { + "list": { + "description": "Lists all domains the user is authorized to administer.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedDomains", + "httpMethod": "GET", + "id": "appengine.projects.locations.applications.authorizedDomains.list", + "parameterOrder": [ + "projectsId", + "locationsId", + "applicationsId" + ], + "parameters": { + "applicationsId": { + "description": "Part of `parent`. See documentation of `projectsId`.", + "location": "path", + "required": true, + "type": "string" + }, + "locationsId": { + "description": "Part of `parent`. See documentation of `projectsId`.", + "location": "path", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Maximum results to return per page.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Continuation token for fetching the next page of results.", + "location": "query", + "type": "string" + }, + "projectsId": { + "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1beta/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedDomains", + "response": { + "$ref": "ListAuthorizedDomainsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] } - }, - "path": "v1beta/projects/{projectsId}/locations/{locationsId}/applications", - "request": { - "$ref": "Application" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "get": { - "description": "Gets information about an application.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}", - "httpMethod": "GET", - "id": "appengine.projects.locations.applications.get", - "parameterOrder": [ - "projectsId", - "locationsId", - "applicationsId" - ], - "parameters": { - "applicationsId": { - "description": "Part of `name`. See documentation of `projectsId`.", - "location": "path", - "required": true, - "type": "string" - }, - "locationsId": { - "description": "Part of `name`. See documentation of `projectsId`.", - "location": "path", - "required": true, - "type": "string" - }, - "projectsId": { - "description": "Part of `name`. Name of the Application resource to get. Example: apps/myapp.", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "v1beta/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}", - "response": { - "$ref": "Application" - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ] - }, - "repair": { - "description": "Recreates the required App Engine features for the specified App Engine application, for example a Cloud Storage bucket or App Engine service account. Use this method if you receive an error message about a missing feature, for example, Error retrieving the App Engine service account. If you have deleted your App Engine service account, this will not be able to recreate it. Instead, you should attempt to use the IAM undelete API if possible at https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts/undelete?apix_params=%7B\"name\"%3A\"projects%2F-%2FserviceAccounts%2Funique_id\"%2C\"resource\"%3A%7B%7D%7D . If the deletion was recent, the numeric ID can be found in the Cloud Console Activity Log.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}:repair", - "httpMethod": "POST", - "id": "appengine.projects.locations.applications.repair", - "parameterOrder": [ - "projectsId", - "locationsId", - "applicationsId" - ], - "parameters": { - "applicationsId": { - "description": "Part of `name`. See documentation of `projectsId`.", - "location": "path", - "required": true, - "type": "string" - }, - "locationsId": { - "description": "Part of `name`. See documentation of `projectsId`.", - "location": "path", - "required": true, - "type": "string" - }, - "projectsId": { - "description": "Part of `name`. Name of the application to repair. Example: apps/myapp", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "v1beta/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}:repair", - "request": { - "$ref": "RepairApplicationRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] + } } } }, @@ -1843,7 +1863,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as \"/v1/{name=users/*}/operations\" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.", "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "appengine.projects.locations.operations.list", @@ -1898,7 +1918,7 @@ } } }, - "revision": "20230114", + "revision": "20240226", "rootUrl": "https://appengine.googleapis.com/", "schemas": { "ApiConfigHandler": { @@ -2035,6 +2055,14 @@ "readOnly": true, "type": "string" }, + "generatedCustomerMetadata": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Additional Google Generated Customer Metadata, this field won't be provided by default and can be requested by setting the IncludeExtraData field in GetApplicationRequest", + "type": "object" + }, "iap": { "$ref": "IdentityAwareProxy" }, @@ -2126,7 +2154,7 @@ "type": "object" }, "AuthorizedDomain": { - "description": "A domain that a user has been authorized to administer. To authorize use of a domain, verify ownership via Webmaster Central (https://www.google.com/webmasters/verification/home).", + "description": "A domain that a user has been authorized to administer. To authorize use of a domain, verify ownership via Search Console (https://search.google.com/search-console/welcome).", "id": "AuthorizedDomain", "properties": { "id": { @@ -2312,6 +2340,36 @@ }, "type": "object" }, + "ContainerState": { + "description": "ContainerState contains the externally-visible container state that is used to communicate the state and reasoning for that state to the CLH. This data is not persisted by CCFE, but is instead derived from CCFE's internal representation of the container state.", + "id": "ContainerState", + "properties": { + "currentReasons": { + "$ref": "Reasons" + }, + "previousReasons": { + "$ref": "Reasons", + "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.", + "enum": [ + "UNKNOWN_STATE", + "ON", + "OFF", + "DELETED" + ], + "enumDescriptions": [ + "A container should never be in an unknown state. Receipt of a container with this state is an error.", + "CCFE considers the container to be serving or transitioning into serving.", + "CCFE considers the container to be in an OFF state. This could occur due to various factors. The state could be triggered by Google-internal audits (ex. abuse suspension, billing closed) or cleanups trigged by compliance systems (ex. data governance hide). User-initiated events such as service management deactivation trigger a container to an OFF state.CLHs might choose to do nothing in this case or to turn off costly resources. CLHs need to consider the customer experience if an ON/OFF/ON sequence of state transitions occurs vs. the cost of deleting resources, keeping metadata about resources, or even keeping resources live for a period of time.CCFE will not send any new customer requests to the CLH when the container is in an OFF state. However, CCFE will allow all previous customer requests relayed to CLH to complete.", + "This state indicates that the container has been (or is being) completely removed. This is often due to a data governance purge request and therefore resources should be deleted when this state is reached." + ], + "type": "string" + } + }, + "type": "object" + }, "CpuUtilization": { "description": "Target scaling by CPU usage.", "id": "CpuUtilization", @@ -2391,6 +2449,28 @@ }, "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" + }, "DebugInstanceRequest": { "description": "Request message for Instances.DebugInstance.", "id": "DebugInstanceRequest", @@ -3000,6 +3080,24 @@ }, "type": "object" }, + "ListRuntimesResponse": { + "description": "Response message for Applications.ListRuntimes.", + "id": "ListRuntimesResponse", + "properties": { + "nextPageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, + "runtimes": { + "description": "The runtimes available to the requested application.", + "items": { + "$ref": "Runtime" + }, + "type": "array" + } + }, + "type": "object" + }, "ListServicesResponse": { "description": "Response message for Services.ListServices.", "id": "ListServicesResponse", @@ -3077,7 +3175,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -3299,7 +3397,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" } }, @@ -3460,42 +3558,12 @@ "description": "The projects metadata for this project. required" }, "state": { - "$ref": "ProjectState", + "$ref": "ContainerState", "description": "The state of the project that led to this event." } }, "type": "object" }, - "ProjectState": { - "description": "ProjectState contains the externally-visible project state that is used to communicate the state and reasoning for that state to the CLH. This data is not persisted by CCFE, but is instead derived from CCFE's internal representation of the project state.", - "id": "ProjectState", - "properties": { - "currentReasons": { - "$ref": "Reasons" - }, - "previousReasons": { - "$ref": "Reasons", - "description": "The previous and current reasons for a project state will be sent for a project event. CLHs that need to know the signal that caused the project 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)." - }, - "state": { - "description": "The current state of the project. This state is the culmination of all of the opinions from external systems that CCFE knows about of the project.", - "enum": [ - "UNKNOWN_STATE", - "ON", - "OFF", - "DELETED" - ], - "enumDescriptions": [ - "A project should never be in an unknown state. Receipt of a project with this state is an error.", - "CCFE considers the project to be serving or transitioning into serving.", - "CCFE considers the project to be in an OFF state. This could occur due to various factors. The state could be triggered by Google-internal audits (ex. abuse suspension, billing closed) or cleanups trigged by compliance systems (ex. data governance hide). User-initiated events such as service management deactivation trigger a project to an OFF state.CLHs might choose to do nothing in this case or to turn off costly resources. CLHs need to consider the customer experience if an ON/OFF/ON sequence of state transitions occurs vs. the cost of deleting resources, keeping metadata about resources, or even keeping resources live for a period of time.CCFE will not send any new customer requests to the CLH when the project is in an OFF state. However, CCFE will allow all previous customer requests relayed to CLH to complete.", - "This state indicates that the project has been (or is being) completely removed. This is often due to a data governance purge request and therefore resources should be deleted when this state is reached." - ], - "type": "string" - } - }, - "type": "object" - }, "ProjectsMetadata": { "description": "ProjectsMetadata is the metadata CCFE stores about the all the relevant projects (tenant, consumer, producer).", "id": "ProjectsMetadata", @@ -3518,10 +3586,10 @@ "DELETED" ], "enumDescriptions": [ - "A project should never be in an unknown state. Receipt of a project with this state is an error.", - "CCFE considers the project to be serving or transitioning into serving.", - "CCFE considers the project to be in an OFF state. This could occur due to various factors. The state could be triggered by Google-internal audits (ex. abuse suspension, billing closed) or cleanups trigged by compliance systems (ex. data governance hide). User-initiated events such as service management deactivation trigger a project to an OFF state.CLHs might choose to do nothing in this case or to turn off costly resources. CLHs need to consider the customer experience if an ON/OFF/ON sequence of state transitions occurs vs. the cost of deleting resources, keeping metadata about resources, or even keeping resources live for a period of time.CCFE will not send any new customer requests to the CLH when the project is in an OFF state. However, CCFE will allow all previous customer requests relayed to CLH to complete.", - "This state indicates that the project has been (or is being) completely removed. This is often due to a data governance purge request and therefore resources should be deleted when this state is reached." + "A container should never be in an unknown state. Receipt of a container with this state is an error.", + "CCFE considers the container to be serving or transitioning into serving.", + "CCFE considers the container to be in an OFF state. This could occur due to various factors. The state could be triggered by Google-internal audits (ex. abuse suspension, billing closed) or cleanups trigged by compliance systems (ex. data governance hide). User-initiated events such as service management deactivation trigger a container to an OFF state.CLHs might choose to do nothing in this case or to turn off costly resources. CLHs need to consider the customer experience if an ON/OFF/ON sequence of state transitions occurs vs. the cost of deleting resources, keeping metadata about resources, or even keeping resources live for a period of time.CCFE will not send any new customer requests to the CLH when the container is in an OFF state. However, CCFE will allow all previous customer requests relayed to CLH to complete.", + "This state indicates that the container has been (or is being) completely removed. This is often due to a data governance purge request and therefore resources should be deleted when this state is reached." ], "type": "string" }, @@ -3591,7 +3659,7 @@ "type": "object" }, "Reasons": { - "description": "Projects transition between and within states based on reasons sent from various systems. CCFE will provide the CLH with reasons for the current state per system.The current systems that CCFE supports are: Service Management (Inception) Data Governance (Wipeout) Abuse (Ares) Billing (Internal Cloud Billing API)", + "description": "Containers transition between and within states based on reasons sent from various systems. CCFE will provide the CLH with reasons for the current state per system.The current systems that CCFE supports are: Service Management (Inception) Data Governance (Wipeout) Abuse (Ares) Billing (Internal Cloud Billing API) Service Activation (Service Controller)", "id": "Reasons", "properties": { "abuse": { @@ -3602,10 +3670,10 @@ "REINSTATE" ], "enumDescriptions": [ - "An unknown reason indicates that the abuse system has not sent a signal for this project.", - "Due to various reasons CCFE might proactively restate a project state to a CLH to ensure that the CLH and CCFE are both aware of the project state. This reason can be tied to any of the states.", - "If a project is deemed abusive we receive a suspend signal. Suspend is a reason to put the project into an INTERNAL_OFF state.", - "Projects that were once considered abusive can later be deemed non-abusive. When this happens we must reinstate the project. Reinstate is a reason to put the project into an ON state." + "An unknown reason indicates that the abuse system has not sent a signal for this container.", + "Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.", + "If a container is deemed abusive we receive a suspend signal. Suspend is a reason to put the container into an INTERNAL_OFF state.", + "Containers that were once considered abusive can later be deemed non-abusive. When this happens we must reinstate the container. Reinstate is a reason to put the container into an ON state." ], "type": "string" }, @@ -3618,11 +3686,11 @@ "OPEN" ], "enumDescriptions": [ - "An unknown reason indicates that the billing system has not sent a signal for this project.", - "Due to various reasons CCFE might proactively restate a project state to a CLH to ensure that the CLH and CCFE are both aware of the project state. This reason can be tied to any of the states.", - "Minor infractions cause a probation signal to be sent. Probation is a reason to put the project into a ON state even though it is a negative signal. CCFE will block mutations for this project while it is on billing probation, but the CLH is expected to serve non-mutation requests.", - "When a billing account is closed, it is a stronger signal about non-payment. Close is a reason to put the project into an INTERNAL_OFF state.", - "Consumers can re-open billing accounts and update accounts to pull them out of probation. When this happens, we get a signal that the account is open. Open is a reason to put the project into an ON state." + "An unknown reason indicates that the billing system has not sent a signal for this container.", + "Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.", + "Minor infractions cause a probation signal to be sent. Probation is a reason to put the container into a ON state even though it is a negative signal. CCFE will block mutations for this container while it is on billing probation, but the CLH is expected to serve non-mutation requests.", + "When a billing account is closed, it is a stronger signal about non-payment. Close is a reason to put the container into an INTERNAL_OFF state.", + "Consumers can re-open billing accounts and update accounts to pull them out of probation. When this happens, we get a signal that the account is open. Open is a reason to put the container into an ON state." ], "type": "string" }, @@ -3635,11 +3703,29 @@ "PURGE" ], "enumDescriptions": [ - "An unknown reason indicates that data governance has not sent a signal for this project.", - "Due to various reasons CCFE might proactively restate a project state to a CLH to ensure that the CLH and CCFE are both aware of the project state. This reason can be tied to any of the states.", - "When a project is deleted we retain some data for a period of time to allow the consumer to change their mind. Data governance sends a signal to hide the data when this occurs. Hide is a reason to put the project in an INTERNAL_OFF state.", - "The decision to un-delete a project can be made. When this happens data governance tells us to unhide any hidden data. Unhide is a reason to put the project in an ON state.", - "After a period of time data must be completely removed from our systems. When data governance sends a purge signal we need to remove data. Purge is a reason to put the project in a DELETED state. Purge is the only event that triggers a delete mutation. All other events have update semantics." + "An unknown reason indicates that data governance has not sent a signal for this container.", + "Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.", + "When a container is deleted we retain some data for a period of time to allow the consumer to change their mind. Data governance sends a signal to hide the data when this occurs. Hide is a reason to put the container in an INTERNAL_OFF state.", + "The decision to un-delete a container can be made. When this happens data governance tells us to unhide any hidden data. Unhide is a reason to put the container in an ON state.", + "After a period of time data must be completely removed from our systems. When data governance sends a purge signal we need to remove data. Purge is a reason to put the container in a DELETED state. Purge is the only event that triggers a delete mutation. All other events have update semantics." + ], + "type": "string" + }, + "serviceActivation": { + "description": "Consumer Container denotes if the service is active within a project or not. This information could be used to clean up resources in case service in DISABLED_FULL i.e. Service is inactive > 30 days.", + "enum": [ + "SERVICE_ACTIVATION_STATUS_UNSPECIFIED", + "SERVICE_ACTIVATION_ENABLED", + "SERVICE_ACTIVATION_DISABLED", + "SERVICE_ACTIVATION_DISABLED_FULL", + "SERVICE_ACTIVATION_UNKNOWN_REASON" + ], + "enumDescriptions": [ + "Default Unspecified status", + "Service is active in the project.", + "Service is disabled in the project recently i.e., within last 24 hours.", + "Service has been disabled for configured grace_period (default 30 days).", + "Happens when PSM cannot determine the status of service in a project Could happen due to variety of reasons like PERMISSION_DENIED or Project got deleted etc." ], "type": "string" }, @@ -3652,13 +3738,21 @@ "ABORT_DEACTIVATION", "COMMIT_DEACTIVATION" ], + "enumDeprecated": [ + false, + false, + true, + true, + true, + true + ], "enumDescriptions": [ - "An unknown reason indicates that we have not received a signal from service management about this project. Since projects are created by request of service management, this reason should never be set.", - "Due to various reasons CCFE might proactively restate a project state to a CLH to ensure that the CLH and CCFE are both aware of the project state. This reason can be tied to any of the states.", - "When a customer activates an API CCFE notifies the CLH and sets the project to the ON state.", - "When a customer deactivates and API service management starts a two-step process to perform the deactivation. The first step is to prepare. Prepare is a reason to put the project in a EXTERNAL_OFF state.", - "If the deactivation is cancelled, service managed needs to abort the deactivation. Abort is a reason to put the project in an ON state.", - "If the deactivation is followed through with, service management needs to finish deactivation. Commit is a reason to put the project in a DELETED state." + "An unknown reason indicates that we have not received a signal from service management about this container. Since containers are created by request of service management, this reason should never be set.", + "Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.", + "When a customer activates an API CCFE notifies the CLH and sets the container to the ON state.", + "When a customer deactivates and API service management starts a two-step process to perform the deactivation. The first step is to prepare. Prepare is a reason to put the container in a EXTERNAL_OFF state.", + "If the deactivation is cancelled, service managed needs to abort the deactivation. Abort is a reason to put the container in an ON state.", + "If the deactivation is followed through with, service management needs to finish deactivation. Commit is a reason to put the container in a DELETED state." ], "type": "string" } @@ -3750,6 +3844,85 @@ }, "type": "object" }, + "Runtime": { + "description": "Runtime versions for App Engine.", + "id": "Runtime", + "properties": { + "decommissionedDate": { + "$ref": "Date", + "description": "Date when Runtime is decommissioned." + }, + "deprecationDate": { + "$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." + }, + "environment": { + "description": "The environment of the runtime.", + "enum": [ + "ENVIRONMENT_UNSPECIFIED", + "STANDARD", + "FLEXIBLE" + ], + "enumDescriptions": [ + "Default value.", + "App Engine Standard.", + "App Engine Flexible" + ], + "type": "string" + }, + "name": { + "description": "The name of the runtime, e.g., 'go113', 'nodejs12', etc.", + "type": "string" + }, + "stage": { + "description": "The stage of life this runtime is in, e.g., BETA, GA, etc.", + "enum": [ + "RUNTIME_STAGE_UNSPECIFIED", + "DEVELOPMENT", + "ALPHA", + "BETA", + "GA", + "DEPRECATED", + "DECOMMISSIONED", + "END_OF_SUPPORT" + ], + "enumDescriptions": [ + "Not specified.", + "The runtime is in development.", + "The runtime is in the Alpha stage.", + "The runtime is in the Beta stage.", + "The runtime is generally available.", + "The runtime is deprecated.", + "The runtime is no longer supported.", + "The runtime is end of support." + ], + "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": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ScriptHandler": { "description": "Executes a script to handle the request that matches the URL pattern.", "id": "ScriptHandler", @@ -3765,6 +3938,14 @@ "description": "A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle tasks such as backend data analysis or API requests from mobile devices. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.", "id": "Service", "properties": { + "generatedCustomerMetadata": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Additional Google Generated Customer Metadata, this field won't be provided by default and can be requested by setting the IncludeExtraData field in GetServiceRequest", + "type": "object" + }, "id": { "description": "Relative name of the service within the application. Example: default.@OutputOnly", "type": "string" @@ -4056,6 +4237,7 @@ "properties": { "apiConfig": { "$ref": "ApiConfigHandler", + "deprecated": true, "description": "Serving configuration for Google Cloud Endpoints (https://cloud.google.com/endpoints).Only returned in GET requests if view=FULL is set." }, "appEngineApis": { @@ -4137,6 +4319,14 @@ "$ref": "FlexibleRuntimeSettings", "description": "Settings for App Engine flexible runtimes." }, + "generatedCustomerMetadata": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Additional Google Generated Customer Metadata, this field won't be provided by default and can be requested by setting the IncludeExtraData field in GetVersionRequest", + "type": "object" + }, "handlers": { "description": "An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.", "items": { @@ -4146,7 +4336,7 @@ }, "healthCheck": { "$ref": "HealthCheck", - "description": "Configures health checking for instances. Unhealthy instances are stopped and replaced with new instances. Only applicable in the App Engine flexible environment.Only returned in GET requests if view=FULL is set." + "description": "Configures health checking for instances. Unhealthy instances are stopped and replaced with new instances. Only applicable in the App Engine flexible environment." }, "id": { "description": "Relative name of the version within the service. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: \"default\", \"latest\", and any name with the prefix \"ah-\".", @@ -4194,7 +4384,7 @@ }, "livenessCheck": { "$ref": "LivenessCheck", - "description": "Configures liveness health checking for instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set." + "description": "Configures liveness health checking for instances. Unhealthy instances are stopped and replaced with new instances" }, "manualScaling": { "$ref": "ManualScaling", @@ -4214,7 +4404,7 @@ }, "readinessCheck": { "$ref": "ReadinessCheck", - "description": "Configures readiness health checking for instances. Unhealthy instances are not put into the backend traffic rotation.Only returned in GET requests if view=FULL is set." + "description": "Configures readiness health checking for instances. Unhealthy instances are not put into the backend traffic rotation." }, "resources": { "$ref": "Resources", @@ -4319,7 +4509,7 @@ "type": "string" }, "name": { - "description": "Full Serverless VPC Access Connector name e.g. /projects/my-project/locations/us-central1/connectors/c1.", + "description": "Full Serverless VPC Access Connector name e.g. projects/my-project/locations/us-central1/connectors/c1.", "type": "string" } }, diff --git a/etc/api/area120tables/v1alpha1/area120tables-api.json b/etc/api/area120tables/v1alpha1/area120tables-api.json index 894e905732..897970a529 100644 --- a/etc/api/area120tables/v1alpha1/area120tables-api.json +++ b/etc/api/area120tables/v1alpha1/area120tables-api.json @@ -586,7 +586,7 @@ } } }, - "revision": "20230123", + "revision": "20240304", "rootUrl": "https://area120tables.googleapis.com/", "schemas": { "BatchCreateRowsRequest": { diff --git a/etc/api/artifactregistry/v1/artifactregistry-api.json b/etc/api/artifactregistry/v1/artifactregistry-api.json index fd064949e3..cb588c7005 100644 --- a/etc/api/artifactregistry/v1/artifactregistry-api.json +++ b/etc/api/artifactregistry/v1/artifactregistry-api.json @@ -18,6 +18,13 @@ "description": "Store and manage build artifacts in a scalable and integrated service built on Google infrastructure.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/artifacts/docs/", + "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://artifactregistry.me-central2.rep.googleapis.com/", + "location": "me-central2" + } + ], "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -200,6 +207,32 @@ "https://www.googleapis.com/auth/cloud-platform.read-only" ] }, + "getVpcscConfig": { + "description": "Retrieves the VPCSC Config for the Project.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vpcscConfig", + "httpMethod": "GET", + "id": "artifactregistry.projects.locations.getVpcscConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the VPCSCConfig resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/vpcscConfig$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "VPCSCConfig" + }, + "scopes": [ + "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": "v1/projects/{projectsId}/locations", @@ -241,6 +274,40 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ] + }, + "updateVpcscConfig": { + "description": "Updates the VPCSC Config for the Project.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vpcscConfig", + "httpMethod": "PATCH", + "id": "artifactregistry.projects.locations.updateVpcscConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the project's VPC SC Config. Always of the form: projects/{projectID}/locations/{location}/vpcscConfig In update request: never set In response: always set", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/vpcscConfig$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Field mask to support partial updates.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "VPCSCConfig" + }, + "response": { + "$ref": "VPCSCConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { @@ -293,7 +360,7 @@ "type": "string" }, "repositoryId": { - "description": "The repository id to use for this repository.", + "description": "Required. The repository id to use for this repository.", "location": "query", "type": "string" } @@ -439,7 +506,7 @@ ], "parameters": { "name": { - "description": "The name of the repository, for example: \"projects/p1/locations/us-central1/repositories/repo1\".", + "description": "The name of the repository, for example: `projects/p1/locations/us-central1/repositories/repo1`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", "required": true, @@ -678,7 +745,7 @@ ], "parameters": { "name": { - "description": "The name of the file to retrieve.", + "description": "Required. The name of the file to retrieve.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/files/.*$", "required": true, @@ -725,7 +792,7 @@ "type": "string" }, "parent": { - "description": "The name of the repository whose files will be listed. For example: \"projects/p1/locations/us-central1/repositories/repo1", + "description": "Required. The name of the repository whose files will be listed. For example: \"projects/p1/locations/us-central1/repositories/repo1", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", "required": true, @@ -743,6 +810,122 @@ } } }, + "goModules": { + "methods": { + "upload": { + "description": "Directly uploads a Go module. The returned Operation will complete once the Go module is uploaded. Package, Version, and File resources are created based on the uploaded Go module.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/goModules:create", + "httpMethod": "POST", + "id": "artifactregistry.projects.locations.repositories.goModules.upload", + "mediaUpload": { + "accept": [ + "*/*" + ], + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/v1/{+parent}/goModules:create" + } + } + }, + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "The resource name of the repository where the Go module will be uploaded.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/goModules:create", + "request": { + "$ref": "UploadGoModuleRequest" + }, + "response": { + "$ref": "UploadGoModuleMediaResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "supportsMediaUpload": true + } + } + }, + "googetArtifacts": { + "methods": { + "import": { + "description": "Imports GooGet artifacts. The returned Operation will complete once the resources are imported. Package, Version, and File resources are created based on the imported artifacts. Imported artifacts that conflict with existing resources are ignored.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/googetArtifacts:import", + "httpMethod": "POST", + "id": "artifactregistry.projects.locations.repositories.googetArtifacts.import", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "The name of the parent resource where the artifacts will be imported.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/googetArtifacts:import", + "request": { + "$ref": "ImportGoogetArtifactsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "upload": { + "description": "Directly uploads a GooGet artifact. The returned Operation will complete once the resources are uploaded. Package, Version, and File resources are created based on the imported artifact. Imported artifacts that conflict with existing resources are ignored.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/googetArtifacts:create", + "httpMethod": "POST", + "id": "artifactregistry.projects.locations.repositories.googetArtifacts.upload", + "mediaUpload": { + "accept": [ + "*/*" + ], + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/v1/{+parent}/googetArtifacts:create" + } + } + }, + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "The name of the parent resource where the artifacts will be uploaded.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/googetArtifacts:create", + "request": { + "$ref": "UploadGoogetArtifactRequest" + }, + "response": { + "$ref": "UploadGoogetArtifactMediaResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "supportsMediaUpload": true + } + } + }, "kfpArtifacts": { "methods": { "upload": { @@ -1125,7 +1308,7 @@ "type": "string" }, "parent": { - "description": "The name of the parent resource whose tags will be listed.", + "description": "The name of the parent package whose tags will be listed. For example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+$", "required": true, @@ -1179,6 +1362,34 @@ }, "versions": { "methods": { + "batchDelete": { + "description": "Deletes multiple versions across a repository. The returned operation will complete once the versions have been deleted.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/versions:batchDelete", + "httpMethod": "POST", + "id": "artifactregistry.projects.locations.repositories.packages.versions.batchDelete", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "The name of the repository holding all requested versions.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/versions:batchDelete", + "request": { + "$ref": "BatchDeleteVersionsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "delete": { "description": "Deletes a version and all of its content. The returned operation will complete once the version has been deleted.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/versions/{versionsId}", @@ -1457,7 +1668,7 @@ } } }, - "revision": "20230113", + "revision": "20240213", "rootUrl": "https://artifactregistry.googleapis.com/", "schemas": { "AptArtifact": { @@ -1508,6 +1719,17 @@ }, "type": "object" }, + "AptRepository": { + "description": "Configuration for an Apt remote repository.", + "id": "AptRepository", + "properties": { + "publicRepository": { + "$ref": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigAptRepositoryPublicRepository", + "description": "One of the publicly available Apt repositories supported by Artifact Registry." + } + }, + "type": "object" + }, "BatchDeleteVersionsMetadata": { "description": "The metadata of an LRO from deleting multiple versions.", "id": "BatchDeleteVersionsMetadata", @@ -1522,6 +1744,24 @@ }, "type": "object" }, + "BatchDeleteVersionsRequest": { + "description": "The request to delete multiple versions across a repository.", + "id": "BatchDeleteVersionsRequest", + "properties": { + "names": { + "description": "Required. The names of the versions to delete. A maximum of 10000 versions can be deleted in a batch.", + "items": { + "type": "string" + }, + "type": "array" + }, + "validateOnly": { + "description": "If true, the request is performed without deleting data, following AIP-163.", + "type": "boolean" + } + }, + "type": "object" + }, "Binding": { "description": "Associates `members`, or principals, with a `role`.", "id": "Binding", @@ -1531,19 +1771,125 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, + "CleanupPolicy": { + "description": "Artifact policy configuration for repository cleanup policies.", + "id": "CleanupPolicy", + "properties": { + "action": { + "description": "Policy action.", + "enum": [ + "ACTION_UNSPECIFIED", + "DELETE", + "KEEP" + ], + "enumDescriptions": [ + "Action not specified.", + "Delete action.", + "Keep action." + ], + "type": "string" + }, + "condition": { + "$ref": "CleanupPolicyCondition", + "description": "Policy condition for matching versions." + }, + "id": { + "description": "The user-provided ID of the cleanup policy.", + "type": "string" + }, + "mostRecentVersions": { + "$ref": "CleanupPolicyMostRecentVersions", + "description": "Policy condition for retaining a minimum number of versions. May only be specified with a Keep action." + } + }, + "type": "object" + }, + "CleanupPolicyCondition": { + "description": "CleanupPolicyCondition is a set of conditions attached to a CleanupPolicy. If multiple entries are set, all must be satisfied for the condition to be satisfied.", + "id": "CleanupPolicyCondition", + "properties": { + "newerThan": { + "description": "Match versions newer than a duration.", + "format": "google-duration", + "type": "string" + }, + "olderThan": { + "description": "Match versions older than a duration.", + "format": "google-duration", + "type": "string" + }, + "packageNamePrefixes": { + "description": "Match versions by package prefix. Applied on any prefix match.", + "items": { + "type": "string" + }, + "type": "array" + }, + "tagPrefixes": { + "description": "Match versions by tag prefix. Applied on any prefix match.", + "items": { + "type": "string" + }, + "type": "array" + }, + "tagState": { + "description": "Match versions by tag status.", + "enum": [ + "TAG_STATE_UNSPECIFIED", + "TAGGED", + "UNTAGGED", + "ANY" + ], + "enumDescriptions": [ + "Tag status not specified.", + "Applies to tagged versions only.", + "Applies to untagged versions only.", + "Applies to all versions." + ], + "type": "string" + }, + "versionNamePrefixes": { + "description": "Match versions by version name prefix. Applied on any prefix match.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CleanupPolicyMostRecentVersions": { + "description": "CleanupPolicyMostRecentVersions is an alternate condition of a CleanupPolicy for retaining a minimum number of versions.", + "id": "CleanupPolicyMostRecentVersions", + "properties": { + "keepCount": { + "description": "Minimum number of versions to keep.", + "format": "int32", + "type": "integer" + }, + "packageNamePrefixes": { + "description": "List of package name prefixes that will apply this rule.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "DockerImage": { "description": "DockerImage represents a docker artifact. The following fields are returned as untyped metadata in the Version resource, using camelcase keys (i.e. metadata.imageSizeBytes): * imageSizeBytes * mediaType * buildTime", "id": "DockerImage", @@ -1591,6 +1937,36 @@ }, "type": "object" }, + "DockerRepository": { + "description": "Configuration for a Docker remote repository.", + "id": "DockerRepository", + "properties": { + "publicRepository": { + "description": "One of the publicly available Docker repositories supported by Artifact Registry.", + "enum": [ + "PUBLIC_REPOSITORY_UNSPECIFIED", + "DOCKER_HUB" + ], + "enumDescriptions": [ + "Unspecified repository.", + "Docker Hub." + ], + "type": "string" + } + }, + "type": "object" + }, + "DockerRepositoryConfig": { + "description": "DockerRepositoryConfig is docker related repository details. Provides additional configuration details for repositories of the docker format type.", + "id": "DockerRepositoryConfig", + "properties": { + "immutableTags": { + "description": "The repository which enabled this flag prevents all tags from being modified, moved or deleted. This does not prevent tags from being created.", + "type": "boolean" + } + }, + "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", @@ -1620,13 +1996,69 @@ }, "type": "object" }, + "GoModule": { + "description": "GoModule represents a Go module.", + "id": "GoModule", + "properties": { + "createTime": { + "description": "Output only. The time when the Go module is created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "The resource name of a Go module.", + "type": "string" + }, + "updateTime": { + "description": "Output only. The time when the Go module is updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "version": { + "description": "The version of the Go module. Must be a valid canonical version as defined in https://go.dev/ref/mod#glos-canonical-version.", + "type": "string" + } + }, + "type": "object" + }, + "GoogetArtifact": { + "description": "A detailed representation of a GooGet artifact.", + "id": "GoogetArtifact", + "properties": { + "architecture": { + "description": "Output only. Operating system architecture of the artifact.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. The Artifact Registry resource name of the artifact.", + "readOnly": true, + "type": "string" + }, + "packageName": { + "description": "Output only. The GooGet package name of the artifact.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleDevtoolsArtifactregistryV1File": { "description": "Files store content that is potentially associated with Packages or Versions.", "id": "GoogleDevtoolsArtifactregistryV1File", "properties": { "createTime": { - "description": "The time when the File was created.", + "description": "Output only. The time when the File was created.", "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "fetchTime": { + "description": "Output only. The time when the last attempt to refresh the file's data was made. Only set when the repository is remote.", + "format": "google-datetime", + "readOnly": true, "type": "string" }, "hashes": { @@ -1650,8 +2082,69 @@ "type": "string" }, "updateTime": { - "description": "The time when the File was last updated.", + "description": "Output only. The time when the File was last updated.", "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigAptRepositoryPublicRepository": { + "description": "Publicly available Apt repositories constructed from a common repository base and a custom repository path.", + "id": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigAptRepositoryPublicRepository", + "properties": { + "repositoryBase": { + "description": "A common public repository base for Apt.", + "enum": [ + "REPOSITORY_BASE_UNSPECIFIED", + "DEBIAN", + "UBUNTU", + "DEBIAN_SNAPSHOT" + ], + "enumDescriptions": [ + "Unspecified repository base.", + "Debian.", + "Ubuntu LTS/Pro.", + "Archived Debian." + ], + "type": "string" + }, + "repositoryPath": { + "description": "A custom field to define a path to a specific repository from the base.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigYumRepositoryPublicRepository": { + "description": "Publicly available Yum repositories constructed from a common repository base and a custom repository path.", + "id": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigYumRepositoryPublicRepository", + "properties": { + "repositoryBase": { + "description": "A common public repository base for Yum.", + "enum": [ + "REPOSITORY_BASE_UNSPECIFIED", + "CENTOS", + "CENTOS_DEBUG", + "CENTOS_VAULT", + "CENTOS_STREAM", + "ROCKY", + "EPEL" + ], + "enumDescriptions": [ + "Unspecified repository base.", + "CentOS.", + "CentOS Debug.", + "CentOS Vault.", + "CentOS Stream.", + "Rocky.", + "Fedora Extra Packages for Enterprise Linux (EPEL)." + ], + "type": "string" + }, + "repositoryPath": { + "description": "A custom field to define a path to a specific repository from the base.", "type": "string" } }, @@ -1754,6 +2247,77 @@ }, "type": "object" }, + "ImportGoogetArtifactsErrorInfo": { + "description": "Error information explaining why a package was not imported.", + "id": "ImportGoogetArtifactsErrorInfo", + "properties": { + "error": { + "$ref": "Status", + "description": "The detailed error status." + }, + "gcsSource": { + "$ref": "ImportGoogetArtifactsGcsSource", + "description": "Google Cloud Storage location requested." + } + }, + "type": "object" + }, + "ImportGoogetArtifactsGcsSource": { + "description": "Google Cloud Storage location where the artifacts currently reside.", + "id": "ImportGoogetArtifactsGcsSource", + "properties": { + "uris": { + "description": "Cloud Storage paths URI (e.g., `gs://my_bucket/my_object`).", + "items": { + "type": "string" + }, + "type": "array" + }, + "useWildcards": { + "description": "Supports URI wildcards for matching multiple objects from a single URI.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImportGoogetArtifactsMetadata": { + "description": "The operation metadata for importing artifacts.", + "id": "ImportGoogetArtifactsMetadata", + "properties": {}, + "type": "object" + }, + "ImportGoogetArtifactsRequest": { + "description": "The request to import new googet artifacts.", + "id": "ImportGoogetArtifactsRequest", + "properties": { + "gcsSource": { + "$ref": "ImportGoogetArtifactsGcsSource", + "description": "Google Cloud Storage location where input content is located." + } + }, + "type": "object" + }, + "ImportGoogetArtifactsResponse": { + "description": "The response message from importing artifacts.", + "id": "ImportGoogetArtifactsResponse", + "properties": { + "errors": { + "description": "Detailed error info for packages that were not imported.", + "items": { + "$ref": "ImportGoogetArtifactsErrorInfo" + }, + "type": "array" + }, + "googetArtifacts": { + "description": "The GooGet artifacts updated.", + "items": { + "$ref": "GoogetArtifact" + }, + "type": "array" + } + }, + "type": "object" + }, "ImportYumArtifactsErrorInfo": { "description": "Error information explaining why a package was not imported.", "id": "ImportYumArtifactsErrorInfo", @@ -1826,7 +2390,7 @@ "type": "object" }, "KfpArtifact": { - "description": "A detailed representation of a GooGet artifact.", + "description": "A detailed representation of a KFP artifact.", "id": "KfpArtifact", "properties": { "name": { @@ -2022,7 +2586,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -2094,6 +2658,25 @@ }, "type": "object" }, + "MavenRepository": { + "description": "Configuration for a Maven remote repository.", + "id": "MavenRepository", + "properties": { + "publicRepository": { + "description": "One of the publicly available Maven repositories supported by Artifact Registry.", + "enum": [ + "PUBLIC_REPOSITORY_UNSPECIFIED", + "MAVEN_CENTRAL" + ], + "enumDescriptions": [ + "Unspecified repository.", + "Maven Central." + ], + "type": "string" + } + }, + "type": "object" + }, "MavenRepositoryConfig": { "description": "MavenRepositoryConfig is maven related repository details. Provides additional configuration details for repositories of the maven format type.", "id": "MavenRepositoryConfig", @@ -2157,6 +2740,25 @@ }, "type": "object" }, + "NpmRepository": { + "description": "Configuration for a Npm remote repository.", + "id": "NpmRepository", + "properties": { + "publicRepository": { + "description": "One of the publicly available Npm repositories supported by Artifact Registry.", + "enum": [ + "PUBLIC_REPOSITORY_UNSPECIFIED", + "NPMJS" + ], + "enumDescriptions": [ + "Unspecified repository.", + "npmjs." + ], + "type": "string" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -2186,7 +2788,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" } }, @@ -2212,7 +2814,7 @@ "type": "string" }, "name": { - "description": "The name of the package, for example: \"projects/p1/locations/us-central1/repositories/repo1/packages/pkg1\". If the package ID part contains slashes, the slashes are escaped.", + "description": "The name of the package, for example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`. If the package ID part contains slashes, the slashes are escaped.", "type": "string" }, "updateTime": { @@ -2224,7 +2826,7 @@ "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/).", + "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": { "bindings": { @@ -2259,6 +2861,12 @@ "REDIRECTION_FROM_GCR_IO_ENABLED", "REDIRECTION_FROM_GCR_IO_FINALIZED" ], + "enumDeprecated": [ + false, + false, + false, + true + ], "enumDescriptions": [ "No redirection status has been set.", "Redirection is disabled.", @@ -2309,21 +2917,99 @@ }, "type": "object" }, + "PythonRepository": { + "description": "Configuration for a Python remote repository.", + "id": "PythonRepository", + "properties": { + "publicRepository": { + "description": "One of the publicly available Python repositories supported by Artifact Registry.", + "enum": [ + "PUBLIC_REPOSITORY_UNSPECIFIED", + "PYPI" + ], + "enumDescriptions": [ + "Unspecified repository.", + "PyPI." + ], + "type": "string" + } + }, + "type": "object" + }, + "RemoteRepositoryConfig": { + "description": "Remote repository configuration.", + "id": "RemoteRepositoryConfig", + "properties": { + "aptRepository": { + "$ref": "AptRepository", + "description": "Specific settings for an Apt remote repository." + }, + "description": { + "description": "The description of the remote source.", + "type": "string" + }, + "dockerRepository": { + "$ref": "DockerRepository", + "description": "Specific settings for a Docker remote repository." + }, + "mavenRepository": { + "$ref": "MavenRepository", + "description": "Specific settings for a Maven remote repository." + }, + "npmRepository": { + "$ref": "NpmRepository", + "description": "Specific settings for an Npm remote repository." + }, + "pythonRepository": { + "$ref": "PythonRepository", + "description": "Specific settings for a Python remote repository." + }, + "upstreamCredentials": { + "$ref": "UpstreamCredentials", + "description": "Optional. The credentials used to access the remote repository." + }, + "yumRepository": { + "$ref": "YumRepository", + "description": "Specific settings for a Yum remote repository." + } + }, + "type": "object" + }, "Repository": { "description": "A Repository for storing artifacts with a specific format.", "id": "Repository", "properties": { + "cleanupPolicies": { + "additionalProperties": { + "$ref": "CleanupPolicy" + }, + "description": "Optional. Cleanup policies for this repository. Cleanup policies indicate when certain package versions can be automatically deleted. Map keys are policy IDs supplied by users during policy creation. They must unique within a repository and be under 128 characters in length.", + "type": "object" + }, + "cleanupPolicyDryRun": { + "description": "Optional. If true, the cleanup pipeline is prevented from deleting versions in this repository.", + "type": "boolean" + }, "createTime": { - "description": "The time when the repository was created.", + "description": "Output only. The time when the repository was created.", "format": "google-datetime", + "readOnly": true, "type": "string" }, "description": { "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." + }, "format": { - "description": "The format of packages that are stored in the repository.", + "description": "Optional. The format of packages that are stored in the repository.", "enum": [ "FORMAT_UNSPECIFIED", "DOCKER", @@ -2331,8 +3017,10 @@ "NPM", "APT", "YUM", + "GOOGET", "PYTHON", - "KFP" + "KFP", + "GO" ], "enumDescriptions": [ "Unspecified package format.", @@ -2341,8 +3029,10 @@ "NPM package format.", "APT package format.", "YUM package format.", + "GooGet package format.", "Python package format.", - "Kubeflow Pipelines package format." + "Kubeflow Pipelines package format.", + "Go package format." ], "type": "string" }, @@ -2361,10 +3051,30 @@ "$ref": "MavenRepositoryConfig", "description": "Maven repository config contains repository level configuration for the repositories of maven type." }, - "name": { - "description": "The name of the repository, for example: \"projects/p1/locations/us-central1/repositories/repo1\".", + "mode": { + "description": "Optional. The mode of the repository.", + "enum": [ + "MODE_UNSPECIFIED", + "STANDARD_REPOSITORY", + "VIRTUAL_REPOSITORY", + "REMOTE_REPOSITORY" + ], + "enumDescriptions": [ + "Unspecified mode.", + "A standard repository storing artifacts.", + "A virtual repository to serve artifacts from one or more sources.", + "A remote repository to serve artifacts from a remote source." + ], "type": "string" }, + "name": { + "description": "The name of the repository, for example: `projects/p1/locations/us-central1/repositories/repo1`.", + "type": "string" + }, + "remoteRepositoryConfig": { + "$ref": "RemoteRepositoryConfig", + "description": "Configuration specific for a Remote Repository." + }, "satisfiesPzs": { "description": "Output only. If set, the repository satisfies physical zone separation.", "readOnly": true, @@ -2377,9 +3087,14 @@ "type": "string" }, "updateTime": { - "description": "The time when the repository was last updated.", + "description": "Output only. The time when the repository was last updated.", "format": "google-datetime", + "readOnly": true, "type": "string" + }, + "virtualRepositoryConfig": { + "$ref": "VirtualRepositoryConfig", + "description": "Configuration specific for a Virtual Repository." } }, "type": "object" @@ -2502,6 +3217,66 @@ }, "type": "object" }, + "UploadGoModuleMediaResponse": { + "description": "The response to upload a Go module.", + "id": "UploadGoModuleMediaResponse", + "properties": { + "operation": { + "$ref": "Operation", + "description": "Operation to be returned to the user." + } + }, + "type": "object" + }, + "UploadGoModuleMetadata": { + "description": "The operation metadata for uploading go modules.", + "id": "UploadGoModuleMetadata", + "properties": {}, + "type": "object" + }, + "UploadGoModuleRequest": { + "description": "The request to upload a Go module.", + "id": "UploadGoModuleRequest", + "properties": {}, + "type": "object" + }, + "UploadGoogetArtifactMediaResponse": { + "description": "The response to upload an artifact.", + "id": "UploadGoogetArtifactMediaResponse", + "properties": { + "operation": { + "$ref": "Operation", + "description": "Operation to be returned to the user." + } + }, + "type": "object" + }, + "UploadGoogetArtifactMetadata": { + "description": "The operation metadata for uploading artifacts.", + "id": "UploadGoogetArtifactMetadata", + "properties": {}, + "type": "object" + }, + "UploadGoogetArtifactRequest": { + "description": "The request to upload an artifact.", + "id": "UploadGoogetArtifactRequest", + "properties": {}, + "type": "object" + }, + "UploadGoogetArtifactResponse": { + "description": "The response of the completed artifact upload operation. This response is contained in the Operation and available to users.", + "id": "UploadGoogetArtifactResponse", + "properties": { + "googetArtifacts": { + "description": "The GooGet artifacts updated.", + "items": { + "$ref": "GoogetArtifact" + }, + "type": "array" + } + }, + "type": "object" + }, "UploadKfpArtifactMediaResponse": { "description": "The response to upload an artifact.", "id": "UploadKfpArtifactMediaResponse", @@ -2565,7 +3340,7 @@ "id": "UploadYumArtifactResponse", "properties": { "yumArtifacts": { - "description": "The Apt artifacts updated.", + "description": "The Yum artifacts updated.", "items": { "$ref": "YumArtifact" }, @@ -2574,6 +3349,77 @@ }, "type": "object" }, + "UpstreamCredentials": { + "description": "The credentials to access the remote repository.", + "id": "UpstreamCredentials", + "properties": { + "usernamePasswordCredentials": { + "$ref": "UsernamePasswordCredentials", + "description": "Use username and password to access the remote repository." + } + }, + "type": "object" + }, + "UpstreamPolicy": { + "description": "Artifact policy configuration for the repository contents.", + "id": "UpstreamPolicy", + "properties": { + "id": { + "description": "The user-provided ID of the upstream policy.", + "type": "string" + }, + "priority": { + "description": "Entries with a greater priority value take precedence in the pull order.", + "format": "int32", + "type": "integer" + }, + "repository": { + "description": "A reference to the repository resource, for example: `projects/p1/locations/us-central1/repositories/repo1`.", + "type": "string" + } + }, + "type": "object" + }, + "UsernamePasswordCredentials": { + "description": "Username and password credentials.", + "id": "UsernamePasswordCredentials", + "properties": { + "passwordSecretVersion": { + "description": "The Secret Manager key version that holds the password to access the remote repository. Must be in the format of `projects/{project}/secrets/{secret}/versions/{version}`.", + "type": "string" + }, + "username": { + "description": "The username to access the remote repository.", + "type": "string" + } + }, + "type": "object" + }, + "VPCSCConfig": { + "description": "The Artifact Registry VPC SC config that apply to a Project.", + "id": "VPCSCConfig", + "properties": { + "name": { + "description": "The name of the project's VPC SC Config. Always of the form: projects/{projectID}/locations/{location}/vpcscConfig In update request: never set In response: always set", + "type": "string" + }, + "vpcscPolicy": { + "description": "The project per location VPC SC policy that defines the VPC SC behavior for the Remote Repository (Allow/Deny).", + "enum": [ + "VPCSC_POLICY_UNSPECIFIED", + "DENY", + "ALLOW" + ], + "enumDescriptions": [ + "VPCSC_POLICY_UNSPECIFIED - the VPS SC policy is not defined. When VPS SC policy is not defined - the Service will use the default behavior (VPCSC_DENY).", + "VPCSC_DENY - repository will block the requests to the Upstreams for the Remote Repositories if the resource is in the perimeter.", + "VPCSC_ALLOW - repository will allow the requests to the Upstreams for the Remote Repositories if the resource is in the perimeter." + ], + "type": "string" + } + }, + "type": "object" + }, "Version": { "description": "The body of a version resource. A version resource represents a collection of components, such as files and other data. This may correspond to a version in many package management schemes.", "id": "Version", @@ -2615,6 +3461,20 @@ }, "type": "object" }, + "VirtualRepositoryConfig": { + "description": "Virtual repository configuration.", + "id": "VirtualRepositoryConfig", + "properties": { + "upstreamPolicies": { + "description": "Policies that configure the upstream artifacts distributed by the Virtual Repository. Upstream policies cannot be set on a standard repository.", + "items": { + "$ref": "UpstreamPolicy" + }, + "type": "array" + } + }, + "type": "object" + }, "YumArtifact": { "description": "A detailed representation of a Yum artifact.", "id": "YumArtifact", @@ -2651,6 +3511,17 @@ } }, "type": "object" + }, + "YumRepository": { + "description": "Configuration for a Yum remote repository.", + "id": "YumRepository", + "properties": { + "publicRepository": { + "$ref": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigYumRepositoryPublicRepository", + "description": "One of the publicly available Yum repositories supported by Artifact Registry." + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/artifactregistry/v1beta1/artifactregistry-api.json b/etc/api/artifactregistry/v1beta1/artifactregistry-api.json index 2594b08794..2770683986 100644 --- a/etc/api/artifactregistry/v1beta1/artifactregistry-api.json +++ b/etc/api/artifactregistry/v1beta1/artifactregistry-api.json @@ -18,6 +18,13 @@ "description": "Store and manage build artifacts in a scalable and integrated service built on Google infrastructure.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/artifacts/docs/", + "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://artifactregistry.me-central2.rep.googleapis.com/", + "location": "me-central2" + } + ], "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -231,7 +238,7 @@ "type": "string" }, "repositoryId": { - "description": "The repository id to use for this repository.", + "description": "Required. The repository id to use for this repository.", "location": "query", "type": "string" } @@ -377,7 +384,7 @@ ], "parameters": { "name": { - "description": "The name of the repository, for example: \"projects/p1/locations/us-central1/repositories/repo1\".", + "description": "The name of the repository, for example: `projects/p1/locations/us-central1/repositories/repo1`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", "required": true, @@ -472,7 +479,7 @@ ], "parameters": { "name": { - "description": "The name of the file to retrieve.", + "description": "Required. The name of the file to retrieve.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/files/.*$", "required": true, @@ -514,7 +521,7 @@ "type": "string" }, "parent": { - "description": "The name of the repository whose files will be listed. For example: \"projects/p1/locations/us-central1/repositories/repo1", + "description": "Required. The name of the repository whose files will be listed. For example: \"projects/p1/locations/us-central1/repositories/repo1", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", "required": true, @@ -736,7 +743,7 @@ "type": "string" }, "parent": { - "description": "The name of the parent resource whose tags will be listed.", + "description": "The name of the parent package whose tags will be listed. For example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+$", "required": true, @@ -929,7 +936,7 @@ } } }, - "revision": "20230113", + "revision": "20240213", "rootUrl": "https://artifactregistry.googleapis.com/", "schemas": { "Binding": { @@ -941,14 +948,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -988,8 +995,9 @@ "id": "File", "properties": { "createTime": { - "description": "The time when the File was created.", + "description": "Output only. The time when the File was created.", "format": "google-datetime", + "readOnly": true, "type": "string" }, "hashes": { @@ -1013,8 +1021,9 @@ "type": "string" }, "updateTime": { - "description": "The time when the File was last updated.", + "description": "Output only. The time when the File was last updated.", "format": "google-datetime", + "readOnly": true, "type": "string" } }, @@ -1155,7 +1164,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1217,7 +1226,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" } }, @@ -1237,7 +1246,7 @@ "type": "string" }, "name": { - "description": "The name of the package, for example: \"projects/p1/locations/us-central1/repositories/repo1/packages/pkg1\". If the package ID part contains slashes, the slashes are escaped.", + "description": "The name of the package, for example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`. If the package ID part contains slashes, the slashes are escaped.", "type": "string" }, "updateTime": { @@ -1249,7 +1258,7 @@ "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/).", + "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": { "bindings": { @@ -1277,8 +1286,9 @@ "id": "Repository", "properties": { "createTime": { - "description": "The time when the repository was created.", + "description": "Output only. The time when the repository was created.", "format": "google-datetime", + "readOnly": true, "type": "string" }, "description": { @@ -1286,7 +1296,7 @@ "type": "string" }, "format": { - "description": "The format of packages that are stored in the repository.", + "description": "Optional. The format of packages that are stored in the repository.", "enum": [ "FORMAT_UNSPECIFIED", "DOCKER", @@ -1294,6 +1304,7 @@ "NPM", "APT", "YUM", + "GOOGET", "PYTHON" ], "enumDescriptions": [ @@ -1303,6 +1314,7 @@ "NPM package format.", "APT package format.", "YUM package format.", + "GooGet package format.", "Python package format." ], "type": "string" @@ -1319,7 +1331,7 @@ "type": "object" }, "name": { - "description": "The name of the repository, for example: \"projects/p1/locations/us-central1/repositories/repo1\".", + "description": "The name of the repository, for example: `projects/p1/locations/us-central1/repositories/repo1`.", "type": "string" }, "satisfiesPzs": { @@ -1334,8 +1346,9 @@ "type": "string" }, "updateTime": { - "description": "The time when the repository was last updated.", + "description": "Output only. The time when the repository was last updated.", "format": "google-datetime", + "readOnly": true, "type": "string" } }, diff --git a/etc/api/artifactregistry/v1beta2/artifactregistry-api.json b/etc/api/artifactregistry/v1beta2/artifactregistry-api.json index 7ad8c5e9ad..f394dd88a0 100644 --- a/etc/api/artifactregistry/v1beta2/artifactregistry-api.json +++ b/etc/api/artifactregistry/v1beta2/artifactregistry-api.json @@ -18,6 +18,13 @@ "description": "Store and manage build artifacts in a scalable and integrated service built on Google infrastructure.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/artifacts/docs/", + "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://artifactregistry.me-central2.rep.googleapis.com/", + "location": "me-central2" + } + ], "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -293,7 +300,7 @@ "type": "string" }, "repositoryId": { - "description": "The repository id to use for this repository.", + "description": "Required. The repository id to use for this repository.", "location": "query", "type": "string" } @@ -439,7 +446,7 @@ ], "parameters": { "name": { - "description": "The name of the repository, for example: \"projects/p1/locations/us-central1/repositories/repo1\".", + "description": "The name of the repository, for example: `projects/p1/locations/us-central1/repositories/repo1`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", "required": true, @@ -606,7 +613,7 @@ ], "parameters": { "name": { - "description": "The name of the file to retrieve.", + "description": "Required. The name of the file to retrieve.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/files/.*$", "required": true, @@ -648,7 +655,7 @@ "type": "string" }, "parent": { - "description": "The name of the repository whose files will be listed. For example: \"projects/p1/locations/us-central1/repositories/repo1", + "description": "Required. The name of the repository whose files will be listed. For example: \"projects/p1/locations/us-central1/repositories/repo1", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", "required": true, @@ -870,7 +877,7 @@ "type": "string" }, "parent": { - "description": "The name of the parent resource whose tags will be listed.", + "description": "The name of the parent package whose tags will be listed. For example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+$", "required": true, @@ -1135,7 +1142,7 @@ } } }, - "revision": "20230113", + "revision": "20240213", "rootUrl": "https://artifactregistry.googleapis.com/", "schemas": { "AptArtifact": { @@ -1195,14 +1202,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1242,8 +1249,9 @@ "id": "GoogleDevtoolsArtifactregistryV1beta2File", "properties": { "createTime": { - "description": "The time when the File was created.", + "description": "Output only. The time when the File was created.", "format": "google-datetime", + "readOnly": true, "type": "string" }, "hashes": { @@ -1267,8 +1275,9 @@ "type": "string" }, "updateTime": { - "description": "The time when the File was last updated.", + "description": "Output only. The time when the File was last updated.", "format": "google-datetime", + "readOnly": true, "type": "string" } }, @@ -1551,7 +1560,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1638,7 +1647,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" } }, @@ -1664,7 +1673,7 @@ "type": "string" }, "name": { - "description": "The name of the package, for example: \"projects/p1/locations/us-central1/repositories/repo1/packages/pkg1\". If the package ID part contains slashes, the slashes are escaped.", + "description": "The name of the package, for example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`. If the package ID part contains slashes, the slashes are escaped.", "type": "string" }, "updateTime": { @@ -1676,7 +1685,7 @@ "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/).", + "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": { "bindings": { @@ -1711,6 +1720,12 @@ "REDIRECTION_FROM_GCR_IO_ENABLED", "REDIRECTION_FROM_GCR_IO_FINALIZED" ], + "enumDeprecated": [ + false, + false, + false, + true + ], "enumDescriptions": [ "No redirection status has been set.", "Redirection is disabled.", @@ -1731,8 +1746,9 @@ "id": "Repository", "properties": { "createTime": { - "description": "The time when the repository was created.", + "description": "Output only. The time when the repository was created.", "format": "google-datetime", + "readOnly": true, "type": "string" }, "description": { @@ -1740,7 +1756,7 @@ "type": "string" }, "format": { - "description": "The format of packages that are stored in the repository.", + "description": "Optional. The format of packages that are stored in the repository.", "enum": [ "FORMAT_UNSPECIFIED", "DOCKER", @@ -1748,6 +1764,7 @@ "NPM", "APT", "YUM", + "GOOGET", "PYTHON" ], "enumDescriptions": [ @@ -1757,6 +1774,7 @@ "NPM package format.", "APT package format.", "YUM package format.", + "GooGet package format.", "Python package format." ], "type": "string" @@ -1777,7 +1795,7 @@ "description": "Maven repository config contains repository level configuration for the repositories of maven type." }, "name": { - "description": "The name of the repository, for example: \"projects/p1/locations/us-central1/repositories/repo1\".", + "description": "The name of the repository, for example: `projects/p1/locations/us-central1/repositories/repo1`.", "type": "string" }, "satisfiesPzs": { @@ -1792,8 +1810,9 @@ "type": "string" }, "updateTime": { - "description": "The time when the repository was last updated.", + "description": "Output only. The time when the repository was last updated.", "format": "google-datetime", + "readOnly": true, "type": "string" } }, @@ -1945,7 +1964,7 @@ "id": "UploadYumArtifactResponse", "properties": { "yumArtifacts": { - "description": "The Apt artifacts updated.", + "description": "The Yum artifacts updated.", "items": { "$ref": "YumArtifact" }, diff --git a/etc/api/assuredworkloads/v1/assuredworkloads-api.json b/etc/api/assuredworkloads/v1/assuredworkloads-api.json index 6d35abca78..25548088d0 100644 --- a/etc/api/assuredworkloads/v1/assuredworkloads-api.json +++ b/etc/api/assuredworkloads/v1/assuredworkloads-api.json @@ -137,7 +137,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "assuredworkloads.organizations.locations.operations.list", @@ -181,6 +181,53 @@ }, "workloads": { "methods": { + "analyzeWorkloadMove": { + "description": "Analyzes a hypothetical move of a source resource to a target workload to surface compliance risks. The analysis is best effort and is not guaranteed to be exhaustive.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}:analyzeWorkloadMove", + "httpMethod": "GET", + "id": "assuredworkloads.organizations.locations.workloads.analyzeWorkloadMove", + "parameterOrder": [ + "target" + ], + "parameters": { + "assetTypes": { + "description": "Optional. List of asset types to be analyzed, including and under the source resource. If empty, all assets are analyzed. The complete list of asset types is available [here](https://cloud.google.com/asset-inventory/docs/supported-asset-types).", + "location": "query", + "repeated": true, + "type": "string" + }, + "pageSize": { + "description": "Optional. Page size. If a value is not specified, the default value of 10 is used.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. The page token from the previous response. It needs to be passed in the second and following requests.", + "location": "query", + "type": "string" + }, + "project": { + "description": "The source type is a project. Specify the project's relative resource name, formatted as either a project number or a project ID: \"projects/{PROJECT_NUMBER}\" or \"projects/{PROJECT_ID}\" For example: \"projects/951040570662\" when specifying a project number, or \"projects/my-project-123\" when specifying a project ID.", + "location": "query", + "type": "string" + }, + "target": { + "description": "Required. The resource ID of the folder-based destination workload. This workload is where the source resource will hypothetically be moved to. Specify the workload's relative resource name, formatted as: \"organizations/{ORGANIZATION_ID}/locations/{LOCATION_ID}/workloads/{WORKLOAD_ID}\" For example: \"organizations/123/locations/us-east1/workloads/assured-workload-2\"", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/workloads/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+target}:analyzeWorkloadMove", + "response": { + "$ref": "GoogleCloudAssuredworkloadsV1AnalyzeWorkloadMoveResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates Assured Workload.", "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads", @@ -215,7 +262,7 @@ ] }, "delete": { - "description": "Deletes the workload. Make sure that workload's direct children are already in a deleted state, otherwise the request will fail with a FAILED_PRECONDITION error.", + "description": "Deletes the workload. Make sure that workload's direct children are already in a deleted state, otherwise the request will fail with a FAILED_PRECONDITION error. In addition to assuredworkloads.workload.delete permission, the user should also have orgpolicy.policy.set permission on the deleted folder to remove Assured Workloads OrgPolicies.", "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}", "httpMethod": "DELETE", "id": "assuredworkloads.organizations.locations.workloads.delete", @@ -244,6 +291,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}", @@ -254,7 +326,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the Workload to fetch. This is the workload's relative path in the API, formatted as \"organizations/{organization_id}/locations/{location_id}/workloads/{workload_id}\". For example, \"organizations/123/locations/us-east1/workloads/assured-workload-1\".", + "description": "Required. The resource name of the Workload to fetch. This is the workloads's relative path in the API, formatted as \"organizations/{organization_id}/locations/{location_id}/workloads/{workload_id}\". For example, \"organizations/123/locations/us-east1/workloads/assured-workload-1\".", "location": "path", "pattern": "^organizations/[^/]+/locations/[^/]+/workloads/[^/]+$", "required": true, @@ -519,18 +591,33 @@ } } }, - "revision": "20230116", + "revision": "20240222", "rootUrl": "https://assuredworkloads.googleapis.com/", "schemas": { "GoogleCloudAssuredworkloadsV1AcknowledgeViolationRequest": { - "description": "Request for acknowledging the violation Next Id: 4", + "description": "Request for acknowledging the violation", "id": "GoogleCloudAssuredworkloadsV1AcknowledgeViolationRequest", "properties": { + "acknowledgeType": { + "description": "Optional. Acknowledge type of specified violation.", + "enum": [ + "ACKNOWLEDGE_TYPE_UNSPECIFIED", + "SINGLE_VIOLATION", + "EXISTING_CHILD_RESOURCE_VIOLATIONS" + ], + "enumDescriptions": [ + "Acknowledge type unspecified.", + "Acknowledge only the specific violation.", + "Acknowledge specified orgPolicy violation and also associated resource violations." + ], + "type": "string" + }, "comment": { "description": "Required. Business justification explaining the need for violation acknowledgement", "type": "string" }, "nonCompliantOrgPolicy": { + "deprecated": true, "description": "Optional. This field is deprecated and will be removed in future version of the API. Name of the OrgPolicy which was modified with non-compliant change and resulted in this violation. Format: projects/{project_number}/policies/{constraint_name} folders/{folder_id}/policies/{constraint_name} organizations/{organization_id}/policies/{constraint_name}", "type": "string" } @@ -543,6 +630,46 @@ "properties": {}, "type": "object" }, + "GoogleCloudAssuredworkloadsV1AnalyzeWorkloadMoveResponse": { + "description": "Response containing the analysis results for the hypothetical resource move.", + "id": "GoogleCloudAssuredworkloadsV1AnalyzeWorkloadMoveResponse", + "properties": { + "assetMoveAnalyses": { + "description": "List of analysis results for each asset in scope.", + "items": { + "$ref": "GoogleCloudAssuredworkloadsV1AssetMoveAnalysis" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The next page token. Is empty if the last page is reached.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAssuredworkloadsV1AssetMoveAnalysis": { + "description": "Represents move analysis results for an asset.", + "id": "GoogleCloudAssuredworkloadsV1AssetMoveAnalysis", + "properties": { + "analysisGroups": { + "description": "List of eligible analyses performed for the asset.", + "items": { + "$ref": "GoogleCloudAssuredworkloadsV1MoveAnalysisGroup" + }, + "type": "array" + }, + "asset": { + "description": "The full resource name of the asset being analyzed. Example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1", + "type": "string" + }, + "assetType": { + "description": "Type of the asset being analyzed. Possible values will be among the ones listed [here](https://cloud.google.com/asset-inventory/docs/supported-asset-types).", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudAssuredworkloadsV1CreateWorkloadOperationMetadata": { "description": "Operation metadata to give request details of CreateWorkload.", "id": "GoogleCloudAssuredworkloadsV1CreateWorkloadOperationMetadata", @@ -563,7 +690,12 @@ "ITAR", "AU_REGIONS_AND_US_SUPPORT", "ASSURED_WORKLOADS_FOR_PARTNERS", - "ISR_REGIONS" + "ISR_REGIONS", + "ISR_REGIONS_AND_SUPPORT", + "CA_PROTECTED_B", + "IL5", + "IL2", + "JP_REGIONS_AND_SUPPORT" ], "enumDescriptions": [ "Unknown compliance regime.", @@ -577,9 +709,14 @@ "Assured Workloads For EU Regions and Support controls", "Assured Workloads For Canada Regions and Support controls", "International Traffic in Arms Regulations", - "Assured Workloads for Australia Regions and Support controls Available for public preview consumption. Don't create production workloads.", - "Assured Workloads for Partners", - "Assured Workloads for Israel Regions" + "Assured Workloads for Australia Regions and Support controls", + "Assured Workloads for Partners;", + "Assured Workloads for Israel", + "Assured Workloads for Israel Regions", + "Assured Workloads for Canada Protected B regime", + "Information protection as per DoD IL5 requirements.", + "Information protection as per DoD IL2 requirements.", + "Assured Workloads for Japan Regions" ], "type": "string" }, @@ -599,6 +736,12 @@ }, "type": "object" }, + "GoogleCloudAssuredworkloadsV1EnableResourceMonitoringResponse": { + "description": "Response for EnableResourceMonitoring endpoint.", + "id": "GoogleCloudAssuredworkloadsV1EnableResourceMonitoringResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudAssuredworkloadsV1ListViolationsResponse": { "description": "Response of ListViolations endpoint.", "id": "GoogleCloudAssuredworkloadsV1ListViolationsResponse", @@ -635,8 +778,59 @@ }, "type": "object" }, + "GoogleCloudAssuredworkloadsV1MoveAnalysisGroup": { + "description": "Represents a logical group of checks performed for an asset. If successful, the group contains the analysis result, otherwise it contains an error with the failure reason.", + "id": "GoogleCloudAssuredworkloadsV1MoveAnalysisGroup", + "properties": { + "analysisResult": { + "$ref": "GoogleCloudAssuredworkloadsV1MoveAnalysisResult", + "description": "Result of a successful analysis." + }, + "displayName": { + "description": "Name of the analysis group.", + "type": "string" + }, + "error": { + "$ref": "GoogleRpcStatus", + "description": "Error details for a failed analysis." + } + }, + "type": "object" + }, + "GoogleCloudAssuredworkloadsV1MoveAnalysisResult": { + "description": "Represents the successful move analysis results for a group.", + "id": "GoogleCloudAssuredworkloadsV1MoveAnalysisResult", + "properties": { + "blockers": { + "description": "List of blockers. If not resolved, these will result in compliance violations in the target.", + "items": { + "$ref": "GoogleCloudAssuredworkloadsV1MoveImpact" + }, + "type": "array" + }, + "warnings": { + "description": "List of warnings. These are risks that may or may not result in compliance violations.", + "items": { + "$ref": "GoogleCloudAssuredworkloadsV1MoveImpact" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAssuredworkloadsV1MoveImpact": { + "description": "Represents the impact of moving the asset to the target.", + "id": "GoogleCloudAssuredworkloadsV1MoveImpact", + "properties": { + "detail": { + "description": "Explanation of the impact.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudAssuredworkloadsV1MutatePartnerPermissionsRequest": { - "description": "Request of updating permission settings for a partner workload.", + "description": "Request for updating permission settings for a partner workload.", "id": "GoogleCloudAssuredworkloadsV1MutatePartnerPermissionsRequest", "properties": { "etag": { @@ -671,7 +865,7 @@ "Unknown restriction type.", "Allow the use all of all gcp products, irrespective of the compliance posture. This effectively removes gcp.restrictServiceUsage OrgPolicy on the AssuredWorkloads Folder.", "Based on Workload's compliance regime, allowed list changes. See - https://cloud.google.com/assured-workloads/docs/supported-products for the list of supported resources.", - "Similar to ALLOW_COMPLIANT_RESOURCES but adds the list of compliant resources to the existing list of resources. Effective org-policy of the Folder is considered to ensure there is no disruption to the existing customer workflows." + "Similar to ALLOW_COMPLIANT_RESOURCES but adds the list of compliant resources to the existing list of compliant resources. Effective org-policy of the Folder is considered to ensure there is no disruption to the existing customer workflows." ], "type": "string" } @@ -685,7 +879,7 @@ "type": "object" }, "GoogleCloudAssuredworkloadsV1Violation": { - "description": "Workload monitoring Violation. Next Id: 22", + "description": "Workload monitoring Violation.", "id": "GoogleCloudAssuredworkloadsV1Violation", "properties": { "acknowledged": { @@ -693,10 +887,15 @@ "type": "boolean" }, "acknowledgementTime": { - "description": "Optional. Timestamp when this violation was acknowledged last. This will be absent when acknowledged field is marked as false.", + "description": "Optional. Timestamp when this violation was acknowledged first. Check exception_contexts to find the last time the violation was acknowledged when there are more than one violations. This field will be absent when acknowledged field is marked as false.", "format": "google-datetime", "type": "string" }, + "associatedOrgPolicyViolationId": { + "description": "Optional. Output only. Violation Id of the org-policy violation due to which the resource violation is caused. Empty for org-policy violations.", + "readOnly": true, + "type": "string" + }, "auditLogLink": { "description": "Output only. Immutable. Audit Log Link for violated resource Format: https://console.cloud.google.com/logs/query;query={logName}{protoPayload.resourceName}{timeRange}{folder}", "readOnly": true, @@ -723,6 +922,14 @@ "readOnly": true, "type": "string" }, + "exceptionContexts": { + "description": "Output only. List of all the exception detail added for the violation.", + "items": { + "$ref": "GoogleCloudAssuredworkloadsV1ViolationExceptionContext" + }, + "readOnly": true, + "type": "array" + }, "name": { "description": "Output only. Immutable. Name of the Violation. Format: organizations/{organization}/locations/{location}/workloads/{workload_id}/violations/{violations_id}", "readOnly": true, @@ -734,10 +941,16 @@ "type": "string" }, "orgPolicyConstraint": { + "deprecated": true, "description": "Output only. Immutable. The org-policy-constraint that was incorrectly changed, which resulted in this violation.", "readOnly": true, "type": "string" }, + "parentProjectNumber": { + "description": "Optional. Output only. Parent project number where resource is present. Empty for org-policy violations.", + "readOnly": true, + "type": "string" + }, "remediation": { "$ref": "GoogleCloudAssuredworkloadsV1ViolationRemediation", "description": "Output only. Compliance violation remediation", @@ -749,6 +962,16 @@ "readOnly": true, "type": "string" }, + "resourceName": { + "description": "Optional. Output only. Name of the resource like //storage.googleapis.com/myprojectxyz-testbucket. Empty for org-policy violations.", + "readOnly": true, + "type": "string" + }, + "resourceType": { + "description": "Optional. Output only. Type of the resource like compute.googleapis.com/Disk, etc. Empty for org-policy violations.", + "readOnly": true, + "type": "string" + }, "state": { "description": "Output only. State of the violation", "enum": [ @@ -771,6 +994,41 @@ "format": "google-datetime", "readOnly": true, "type": "string" + }, + "violationType": { + "description": "Output only. Type of the violation", + "enum": [ + "VIOLATION_TYPE_UNSPECIFIED", + "ORG_POLICY", + "RESOURCE" + ], + "enumDescriptions": [ + "Unspecified type.", + "Org Policy Violation.", + "Resource Violation." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAssuredworkloadsV1ViolationExceptionContext": { + "description": "Violation exception detail.", + "id": "GoogleCloudAssuredworkloadsV1ViolationExceptionContext", + "properties": { + "acknowledgementTime": { + "description": "Timestamp when the violation was acknowledged.", + "format": "google-datetime", + "type": "string" + }, + "comment": { + "description": "Business justification provided towards the acknowledgement of the violation.", + "type": "string" + }, + "userName": { + "description": "Name of the user (or service account) who acknowledged the violation.", + "type": "string" } }, "type": "object" @@ -797,14 +1055,16 @@ "REMEDIATION_BOOLEAN_ORG_POLICY_VIOLATION", "REMEDIATION_LIST_ALLOWED_VALUES_ORG_POLICY_VIOLATION", "REMEDIATION_LIST_DENIED_VALUES_ORG_POLICY_VIOLATION", - "REMEDIATION_RESTRICT_CMEK_CRYPTO_KEY_PROJECTS_ORG_POLICY_VIOLATION" + "REMEDIATION_RESTRICT_CMEK_CRYPTO_KEY_PROJECTS_ORG_POLICY_VIOLATION", + "REMEDIATION_RESOURCE_VIOLATION" ], "enumDescriptions": [ "Unspecified remediation type", "Remediation type for boolean org policy", "Remediation type for list org policy which have allowed values in the monitoring rule", "Remediation type for list org policy which have denied values in the monitoring rule", - "Remediation type for gcp.restrictCmekCryptoKeyProjects" + "Remediation type for gcp.restrictCmekCryptoKeyProjects", + "Remediation type for resource violation." ], "readOnly": true, "type": "string" @@ -907,7 +1167,12 @@ "ITAR", "AU_REGIONS_AND_US_SUPPORT", "ASSURED_WORKLOADS_FOR_PARTNERS", - "ISR_REGIONS" + "ISR_REGIONS", + "ISR_REGIONS_AND_SUPPORT", + "CA_PROTECTED_B", + "IL5", + "IL2", + "JP_REGIONS_AND_SUPPORT" ], "enumDescriptions": [ "Unknown compliance regime.", @@ -921,9 +1186,14 @@ "Assured Workloads For EU Regions and Support controls", "Assured Workloads For Canada Regions and Support controls", "International Traffic in Arms Regulations", - "Assured Workloads for Australia Regions and Support controls Available for public preview consumption. Don't create production workloads.", - "Assured Workloads for Partners", - "Assured Workloads for Israel Regions" + "Assured Workloads for Australia Regions and Support controls", + "Assured Workloads for Partners;", + "Assured Workloads for Israel", + "Assured Workloads for Israel Regions", + "Assured Workloads for Canada Protected B regime", + "Information protection as per DoD IL5 requirements.", + "Information protection as per DoD IL2 requirements.", + "Assured Workloads for Japan Regions" ], "type": "string" }, @@ -933,7 +1203,7 @@ "readOnly": true }, "compliantButDisallowedServices": { - "description": "Output only. Urls for services which are compliant for this Assured Workload, but which are currently disallowed by the ResourceUsageRestriction org policy. Invoke RestrictAllowedResources endpoint to allow your project developers to use these services in their environment.\"", + "description": "Output only. Urls for services which are compliant for this Assured Workload, but which are currently disallowed by the ResourceUsageRestriction org policy. Invoke RestrictAllowedResources endpoint to allow your project developers to use these services in their environment.", "items": { "type": "string" }, @@ -950,6 +1220,11 @@ "description": "Required. The user-assigned display name of the Workload. When present it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, and spaces. Example: My Workload", "type": "string" }, + "ekmProvisioningResponse": { + "$ref": "GoogleCloudAssuredworkloadsV1WorkloadEkmProvisioningResponse", + "description": "Output only. Represents the Ekm Provisioning State of the given workload.", + "readOnly": true + }, "enableSovereignControls": { "description": "Optional. Indicates the sovereignty status of the given workload. Currently meant to be used by Europe/Canada customers.", "type": "boolean" @@ -975,6 +1250,7 @@ }, "kmsSettings": { "$ref": "GoogleCloudAssuredworkloadsV1WorkloadKMSSettings", + "deprecated": true, "description": "Input only. Settings used to create a CMEK crypto key. When set, a project with a KMS CMEK key is provisioned. This field is deprecated as of Feb 28, 2022. In order to create a Keyring, callers should specify, ENCRYPTION_KEYS_PROJECT or KEYRING in ResourceSettings.resource_type field." }, "labels": { @@ -993,19 +1269,32 @@ "enum": [ "PARTNER_UNSPECIFIED", "LOCAL_CONTROLS_BY_S3NS", - "SOVEREIGN_CONTROLS_BY_T_SYSTEMS" + "SOVEREIGN_CONTROLS_BY_T_SYSTEMS", + "SOVEREIGN_CONTROLS_BY_SIA_MINSAIT", + "SOVEREIGN_CONTROLS_BY_PSN" ], "enumDescriptions": [ "", - "Enum representing S3NS partner.", - "Enum representing T_SYSTEM partner." + "Enum representing S3NS (Thales) partner.", + "Enum representing T_SYSTEM (TSI) partner.", + "Enum representing SIA_MINSAIT (Indra) partner.", + "Enum representing PSN (TIM) partner." ], "type": "string" }, + "partnerPermissions": { + "$ref": "GoogleCloudAssuredworkloadsV1WorkloadPartnerPermissions", + "description": "Optional. Permissions granted to the AW Partner SA account for the customer workload" + }, "provisionedResourcesParent": { "description": "Input only. The parent resource for the resources managed by this Assured Workload. May be either empty or a folder resource which is a child of the Workload parent. If not specified all resources are created under the parent organization. Format: folders/{folder_id}", "type": "string" }, + "resourceMonitoringEnabled": { + "description": "Output only. Indicates whether resource monitoring is enabled for workload or not. It is true when Resource feed is subscribed to AWM topic and AWM Service Agent Role is binded to AW Service Account for resource Assured workload.", + "readOnly": true, + "type": "boolean" + }, "resourceSettings": { "description": "Input only. Resource properties that are used to customize workload resources. These properties (such as custom project id) will be used to create workload resources if possible. This field is optional.", "items": { @@ -1025,6 +1314,10 @@ "$ref": "GoogleCloudAssuredworkloadsV1WorkloadSaaEnrollmentResponse", "description": "Output only. Represents the SAA enrollment response of the given workload. SAA enrollment response is queried during GetWorkload call. In failure cases, user friendly error message is shown in SAA details page.", "readOnly": true + }, + "violationNotificationsEnabled": { + "description": "Optional. Indicates whether the e-mail notification for a violation is enabled for a workload. This value will be by default True, and if not present will be considered as true. This should only be updated via updateWorkload call. Any Changes to this field during the createWorkload call will not be honored. This will always be true while creating the workload.", + "type": "boolean" } }, "type": "object" @@ -1033,21 +1326,91 @@ "description": "Represents the Compliance Status of this workload", "id": "GoogleCloudAssuredworkloadsV1WorkloadComplianceStatus", "properties": { + "acknowledgedResourceViolationCount": { + "description": "Number of current resource violations which are not acknowledged.", + "format": "int32", + "type": "integer" + }, "acknowledgedViolationCount": { - "description": "Count of active Violations which are acknowledged in the Workload.", + "description": "Number of current orgPolicy violations which are acknowledged.", + "format": "int32", + "type": "integer" + }, + "activeResourceViolationCount": { + "description": "Number of current resource violations which are acknowledged.", "format": "int32", "type": "integer" }, "activeViolationCount": { - "description": "Count of active Violations which haven't been acknowledged.", + "description": "Number of current orgPolicy violations which are not acknowledged.", "format": "int32", "type": "integer" } }, "type": "object" }, + "GoogleCloudAssuredworkloadsV1WorkloadEkmProvisioningResponse": { + "description": "External key management systems(EKM) Provisioning response", + "id": "GoogleCloudAssuredworkloadsV1WorkloadEkmProvisioningResponse", + "properties": { + "ekmProvisioningErrorDomain": { + "description": "Indicates Ekm provisioning error if any.", + "enum": [ + "EKM_PROVISIONING_ERROR_DOMAIN_UNSPECIFIED", + "UNSPECIFIED_ERROR", + "GOOGLE_SERVER_ERROR", + "EXTERNAL_USER_ERROR", + "EXTERNAL_PARTNER_ERROR", + "TIMEOUT_ERROR" + ], + "enumDescriptions": [ + "No error domain", + "Error but domain is unspecified.", + "Internal logic breaks within provisioning code.", + "Error occurred with the customer not granting permission/creating resource.", + "Error occurred within the partner's provisioning cluster.", + "Resource wasn't provisioned in the required 7 day time period" + ], + "type": "string" + }, + "ekmProvisioningErrorMapping": { + "description": "Detailed error message if Ekm provisioning fails", + "enum": [ + "EKM_PROVISIONING_ERROR_MAPPING_UNSPECIFIED", + "INVALID_SERVICE_ACCOUNT", + "MISSING_METRICS_SCOPE_ADMIN_PERMISSION", + "MISSING_EKM_CONNECTION_ADMIN_PERMISSION" + ], + "enumDescriptions": [ + "Error is unspecified.", + "Service account is used is invalid.", + "Iam permission monitoring.MetricsScopeAdmin wasn't applied.", + "Iam permission cloudkms.ekmConnectionsAdmin wasn't applied." + ], + "type": "string" + }, + "ekmProvisioningState": { + "description": "Indicates Ekm enrollment Provisioning of a given workload.", + "enum": [ + "EKM_PROVISIONING_STATE_UNSPECIFIED", + "EKM_PROVISIONING_STATE_PENDING", + "EKM_PROVISIONING_STATE_FAILED", + "EKM_PROVISIONING_STATE_COMPLETED" + ], + "enumDescriptions": [ + "Default State for Ekm Provisioning", + "Pending State for Ekm Provisioning", + "Failed State for Ekm Provisioning", + "Completed State for Ekm Provisioning" + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudAssuredworkloadsV1WorkloadKMSSettings": { - "description": "Settings specific to the Key Management Service. This message is deprecated. In order to create a Keyring, callers should specify, ENCRYPTION_KEYS_PROJECT or KEYRING in ResourceSettings.resource_type field.", + "deprecated": true, + "description": "Settings specific to the Key Management Service.", "id": "GoogleCloudAssuredworkloadsV1WorkloadKMSSettings", "properties": { "nextRotationTime": { @@ -1067,16 +1430,16 @@ "description": "Permissions granted to the AW Partner SA account for the customer workload", "id": "GoogleCloudAssuredworkloadsV1WorkloadPartnerPermissions", "properties": { - "dataLogsViewer": { - "description": "Allow partner to view data and logs", + "assuredWorkloadsMonitoring": { + "description": "Optional. Allow partner to view violation alerts.", "type": "boolean" }, - "remediateFolderViolations": { - "description": "Allow partner to monitor folder and remediate violations", + "dataLogsViewer": { + "description": "Allow the partner to view inspectability logs and monitoring violations.", "type": "boolean" }, "serviceAccessApprover": { - "description": "Allow partner to approve or reject Service Access requests", + "description": "Optional. Allow partner to view access approval logs.", "type": "boolean" } }, @@ -1100,9 +1463,16 @@ "ENCRYPTION_KEYS_PROJECT", "KEYRING" ], + "enumDeprecated": [ + false, + true, + false, + false, + false + ], "enumDescriptions": [ "Unknown resource type.", - "Consumer project. AssuredWorkloads Projects are no longer supported. This field will be ignored only in CreateWorkload requests. ListWorkloads and GetWorkload will continue to provide projects information. Use CONSUMER_FOLDER instead.", + "Deprecated. Existing workloads will continue to support this, but new CreateWorkloadRequests should not specify this as an input value.", "Consumer Folder.", "Consumer project containing encryption keys.", "Keyring resource that hosts encryption keys." @@ -1125,7 +1495,7 @@ "type": "string" }, "resourceType": { - "description": "Indicates the type of resource. This field should be specified to correspond the id to the right resource type (CONSUMER_FOLDER or ENCRYPTION_KEYS_PROJECT)", + "description": "Indicates the type of resource. This field should be specified to correspond the id to the right project type (CONSUMER_PROJECT or ENCRYPTION_KEYS_PROJECT)", "enum": [ "RESOURCE_TYPE_UNSPECIFIED", "CONSUMER_PROJECT", @@ -1133,9 +1503,16 @@ "ENCRYPTION_KEYS_PROJECT", "KEYRING" ], + "enumDeprecated": [ + false, + true, + false, + false, + false + ], "enumDescriptions": [ "Unknown resource type.", - "Consumer project. AssuredWorkloads Projects are no longer supported. This field will be ignored only in CreateWorkload requests. ListWorkloads and GetWorkload will continue to provide projects information. Use CONSUMER_FOLDER instead.", + "Deprecated. Existing workloads will continue to support this, but new CreateWorkloadRequests should not specify this as an input value.", "Consumer Folder.", "Consumer project containing encryption keys.", "Keyring resource that hosts encryption keys." @@ -1234,7 +1611,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/etc/api/authorizedbuyersmarketplace/v1/authorizedbuyersmarketplace-api.json b/etc/api/authorizedbuyersmarketplace/v1/authorizedbuyersmarketplace-api.json index b5cee05313..e48709a5ff 100644 --- a/etc/api/authorizedbuyersmarketplace/v1/authorizedbuyersmarketplace-api.json +++ b/etc/api/authorizedbuyersmarketplace/v1/authorizedbuyersmarketplace-api.json @@ -119,7 +119,7 @@ ], "parameters": { "filter": { - "description": "Optional query string using the [Cloud API list filtering syntax](https://developers.google.com/authorized-buyers/apis/guides/v2/list-filters) Supported columns for filtering are: * deal.displayName * deal.dealType * deal.createTime * deal.updateTime * deal.flightStartTime * deal.flightEndTime * dealServingStatus", + "description": "Optional query string using the [Cloud API list filtering syntax](https://developers.google.com/authorized-buyers/apis/guides/list-filters) Supported columns for filtering are: * deal.displayName * deal.dealType * deal.createTime * deal.updateTime * deal.flightStartTime * deal.flightEndTime * deal.eligibleSeatIds * dealServingStatus", "location": "query", "type": "string" }, @@ -459,7 +459,7 @@ ], "parameters": { "filter": { - "description": "Query string using the [Filtering Syntax](https://developers.google.com/authorized-buyers/apis/guides/v2/list-filters) Supported fields for filtering are: * partnerClientId Use this field to filter the clients by the partnerClientId. For example, if the partnerClientId of the client is \"1234\", the value of this field should be `partnerClientId = \"1234\"`, in order to get only the client whose partnerClientId is \"1234\" in the response.", + "description": "Query string using the [Filtering Syntax](https://developers.google.com/authorized-buyers/apis/guides/list-filters) Supported fields for filtering are: * partnerClientId Use this field to filter the clients by the partnerClientId. For example, if the partnerClientId of the client is \"1234\", the value of this field should be `partnerClientId = \"1234\"`, in order to get only the client whose partnerClientId is \"1234\" in the response.", "location": "query", "type": "string" }, @@ -767,7 +767,7 @@ ], "parameters": { "filter": { - "description": "Optional query string using the [Cloud API list filtering syntax](https://developers.google.com/authorized-buyers/apis/guides/v2/list-filters) Supported columns for filtering are: * deal.displayName * deal.dealType * deal.createTime * deal.updateTime * deal.flightStartTime * deal.flightEndTime * dealServingStatus", + "description": "Optional query string using the [Cloud API list filtering syntax](https://developers.google.com/authorized-buyers/apis/guides/list-filters) Supported columns for filtering are: * deal.displayName * deal.dealType * deal.createTime * deal.updateTime * deal.flightStartTime * deal.flightEndTime * deal.eligibleSeatIds * dealServingStatus", "location": "query", "type": "string" }, @@ -976,7 +976,7 @@ ] }, "get": { - "description": "Gets a proposal using its name. The proposal is returned at most recent revision. revision.", + "description": "Gets a proposal using its resource name. The proposal is returned at the latest revision.", "flatPath": "v1/buyers/{buyersId}/proposals/{proposalsId}", "httpMethod": "GET", "id": "authorizedbuyersmarketplace.buyers.proposals.get", @@ -1001,7 +1001,7 @@ ] }, "list": { - "description": "Lists proposals. A filter expression (list filter syntax) may be specified to filter the results. This will not list finalized versions of proposals that are being renegotiated; to retrieve these use the finalizedProposals resource.", + "description": "Lists proposals. A filter expression using [Cloud API list filtering syntax](https://developers.google.com/authorized-buyers/apis/guides/list-filters) may be specified to filter the results.", "flatPath": "v1/buyers/{buyersId}/proposals", "httpMethod": "GET", "id": "authorizedbuyersmarketplace.buyers.proposals.list", @@ -1010,7 +1010,7 @@ ], "parameters": { "filter": { - "description": "Optional query string using the [Cloud API list filtering syntax](https://developers.google.com/authorized-buyers/apis/guides/v2/list-filters) Supported columns for filtering are: * displayName * dealType * updateTime * state", + "description": "Optional query string using the [Cloud API list filtering syntax](https://developers.google.com/authorized-buyers/apis/guides/list-filters) Supported columns for filtering are: * displayName * dealType * updateTime * state", "location": "query", "type": "string" }, @@ -1042,7 +1042,7 @@ ] }, "patch": { - "description": "Updates the proposal at the given revision number. If the revision number in the request is behind the latest from the server, an error message will be returned. See FieldMask for how to use FieldMask. Only fields specified in the UpdateProposalRequest.update_mask will be updated; Fields noted as 'Immutable' or 'Output only' yet specified in the UpdateProposalRequest.update_mask will be ignored and left unchanged. Updating a private auction proposal is not allowed and will result in an error.", + "description": "Updates the proposal at the given revision number. If the revision number in the request is behind the latest one kept in the server, an error message will be returned. See FieldMask for how to use FieldMask. Only fields specified in the UpdateProposalRequest.update_mask will be updated; Fields noted as 'Immutable' or 'Output only' yet specified in the UpdateProposalRequest.update_mask will be ignored and left unchanged. Updating a private auction proposal is not allowed and will result in an error.", "flatPath": "v1/buyers/{buyersId}/proposals/{proposalsId}", "httpMethod": "PATCH", "id": "authorizedbuyersmarketplace.buyers.proposals.patch", @@ -1271,7 +1271,7 @@ ], "parameters": { "filter": { - "description": "Optional query string using the [Cloud API list filtering] (https://developers.google.com/authorized-buyers/apis/guides/v2/list-filters) syntax.", + "description": "Optional query string using the [Cloud API list filtering] (https://developers.google.com/authorized-buyers/apis/guides/list-filters) syntax.", "location": "query", "type": "string" }, @@ -1307,7 +1307,7 @@ } } }, - "revision": "20230124", + "revision": "20240305", "rootUrl": "https://authorizedbuyersmarketplace.googleapis.com/", "schemas": { "AcceptProposalRequest": { @@ -1582,12 +1582,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" @@ -1772,12 +1774,12 @@ "id": "Deal", "properties": { "billedBuyer": { - "description": "Output only. When the client field is populated, this field refers to the buyer who creates and manages the client buyer and gets billed on behalf of the client buyer; when the buyer field is populated, this field is the same value as buyer. Format : `buyers/{buyerAccountId}`", + "description": "Output only. When the client field is populated, this field refers to the buyer who creates and manages the client buyer and gets billed on behalf of the client buyer; when the buyer field is populated, this field is the same value as buyer; when the deal belongs to a media planner account, this field will be empty. Format : `buyers/{buyerAccountId}`", "readOnly": true, "type": "string" }, "buyer": { - "description": "Output only. Refers to a buyer in The Realtime-bidding API. Format: `buyers/{buyerAccountId}`", + "description": "Output only. Refers to a buyer in Real-time Bidding API's Buyer resource. Format: `buyers/{buyerAccountId}`", "readOnly": true, "type": "string" }, @@ -1829,6 +1831,14 @@ "readOnly": true, "type": "string" }, + "eligibleSeatIds": { + "description": "Output only. If set, this field contains the list of DSP specific seat ids set by media planners that are eligible to transact on this deal. The seat ID is in the calling DSP's namespace.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "estimatedGrossSpend": { "$ref": "Money", "description": "Specified by buyers in request for proposal (RFP) to notify publisher the total estimated spend for the proposal. Publishers will receive this information and send back proposed deals accordingly." @@ -1843,6 +1853,11 @@ "format": "google-datetime", "type": "string" }, + "mediaPlanner": { + "$ref": "MediaPlanner", + "description": "Output only. Refers to a buyer in Real-time Bidding API's Buyer resource. This field represents a media planner (For example, agency or big advertiser).", + "readOnly": true + }, "name": { "description": "Immutable. The unique identifier of the deal. Auto-generated by the server when a deal is created. Format: buyers/{accountId}/proposals/{proposalId}/deals/{dealId}", "type": "string" @@ -2042,7 +2057,7 @@ "type": "string" }, "name": { - "description": "The resource name of the finalized deal. Format: `buyers/{accountId}/finalizeddeals/{finalizedDealId}`", + "description": "The resource name of the finalized deal. Format: `buyers/{accountId}/finalizedDeals/{finalizedDealId}`", "type": "string" }, "readyToServe": { @@ -2338,6 +2353,18 @@ }, "type": "object" }, + "MediaPlanner": { + "description": "Describes a single Media Planner account.", + "id": "MediaPlanner", + "properties": { + "accountId": { + "description": "Output only. Account ID of the media planner.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "MobileApplicationTargeting": { "description": "Mobile application targeting settings.", "id": "MobileApplicationTargeting", @@ -2515,7 +2542,7 @@ "description": "Fixed price for the deal." }, "guaranteedLooks": { - "description": "Count of guaranteed looks.", + "description": "Count of guaranteed looks. For CPD deals, buyer changes to guaranteed_looks will be ignored.", "format": "int64", "type": "string" }, @@ -2525,7 +2552,7 @@ "type": "string" }, "minimumDailyLooks": { - "description": "Daily minimum looks for CPD deal types.", + "description": "Daily minimum looks for CPD deal types. For CPD deals, buyer should negotiate on this field instead of guaranteed_looks.", "format": "int64", "type": "string" }, @@ -2801,7 +2828,8 @@ "OPPO", "SAMSUNG", "VIVO", - "XIAOMI" + "XIAOMI", + "LG_TV" ], "enumDescriptions": [ "A placeholder for an unknown app store.", @@ -2816,7 +2844,8 @@ "OPPO App Market", "Samsung Galaxy Store", "VIVO App Store", - "Xiaomi GetApps" + "Xiaomi GetApps", + "LG TV" ], "type": "string" }, diff --git a/etc/api/baremetalsolution/v1/baremetalsolution-api.json b/etc/api/baremetalsolution/v1/baremetalsolution-api.json index dfb25e072e..1656711ae3 100644 --- a/etc/api/baremetalsolution/v1/baremetalsolution-api.json +++ b/etc/api/baremetalsolution/v1/baremetalsolution-api.json @@ -185,7 +185,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/operations", "httpMethod": "GET", "id": "baremetalsolution.operations.list", @@ -228,7 +228,7 @@ } } }, - "revision": "20230113", + "revision": "20240228", "rootUrl": "https://baremetalsolution.googleapis.com/", "schemas": { "CancelOperationRequest": { @@ -237,12 +237,24 @@ "properties": {}, "type": "object" }, + "DisableInteractiveSerialConsoleResponse": { + "description": "Message for response of DisableInteractiveSerialConsole.", + "id": "DisableInteractiveSerialConsoleResponse", + "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" }, + "EnableInteractiveSerialConsoleResponse": { + "description": "Message for response of EnableInteractiveSerialConsole.", + "id": "EnableInteractiveSerialConsoleResponse", + "properties": {}, + "type": "object" + }, "ListOperationsResponse": { "description": "The response message for Operations.ListOperations.", "id": "ListOperationsResponse", @@ -261,6 +273,35 @@ }, "type": "object" }, + "LogicalInterface": { + "description": "Logical interface.", + "id": "LogicalInterface", + "properties": { + "name": { + "description": "Interface name. This is not a globally unique identifier. Name is unique only inside the ServerNetworkTemplate. This is of syntax or and forms part of the network template name.", + "type": "string" + }, + "required": { + "description": "If true, interface must have network connected.", + "type": "boolean" + }, + "type": { + "description": "Interface type.", + "enum": [ + "INTERFACE_TYPE_UNSPECIFIED", + "BOND", + "NIC" + ], + "enumDescriptions": [ + "Unspecified value.", + "Bond interface type.", + "NIC interface type." + ], + "type": "string" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -290,7 +331,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" } }, @@ -345,6 +386,7 @@ "id": "ReconciliationOperationMetadata", "properties": { "deleteResource": { + "deprecated": true, "description": "DEPRECATED. Use exclusive_action instead.", "type": "boolean" }, @@ -355,9 +397,14 @@ "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. For more information - go/ccfe-delete-on-upsert, go/ccfe-reconciliation-protocol-ug#apply_delete", + "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" @@ -365,6 +412,44 @@ }, "type": "object" }, + "ResetInstanceResponse": { + "description": "Response message from resetting a server.", + "id": "ResetInstanceResponse", + "properties": {}, + "type": "object" + }, + "ServerNetworkTemplate": { + "description": "Network template.", + "id": "ServerNetworkTemplate", + "properties": { + "applicableInstanceTypes": { + "description": "Instance types this template is applicable to.", + "items": { + "type": "string" + }, + "type": "array" + }, + "logicalInterfaces": { + "description": "Logical interfaces.", + "items": { + "$ref": "LogicalInterface" + }, + "type": "array" + }, + "name": { + "description": "Output only. Template's unique name. The full resource name follows the pattern: `projects/{project}/locations/{location}/serverNetworkTemplate/{server_network_template}` Generally, the {server_network_template} follows the syntax of \"bond\" or \"nic\".", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "StartInstanceResponse": { + "description": "Response message from starting a server.", + "id": "StartInstanceResponse", + "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", @@ -391,6 +476,12 @@ } }, "type": "object" + }, + "StopInstanceResponse": { + "description": "Response message from stopping a server.", + "id": "StopInstanceResponse", + "properties": {}, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/baremetalsolution/v2/baremetalsolution-api.json b/etc/api/baremetalsolution/v2/baremetalsolution-api.json index c80cd58864..331eec5e6c 100644 --- a/etc/api/baremetalsolution/v2/baremetalsolution-api.json +++ b/etc/api/baremetalsolution/v2/baremetalsolution-api.json @@ -176,65 +176,8 @@ } }, "resources": { - "instanceProvisioningSettings": { - "methods": { - "fetch": { - "description": "Get instance provisioning settings for a given project. This is hidden method used by UI only.", - "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/instanceProvisioningSettings:fetch", - "httpMethod": "GET", - "id": "baremetalsolution.projects.locations.instanceProvisioningSettings.fetch", - "parameterOrder": [ - "location" - ], - "parameters": { - "location": { - "description": "Required. The parent project and location containing the ProvisioningSettings.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v2/{+location}/instanceProvisioningSettings:fetch", - "response": { - "$ref": "FetchInstanceProvisioningSettingsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - } - }, "instances": { "methods": { - "create": { - "description": "Create an Instance.", - "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/instances", - "httpMethod": "POST", - "id": "baremetalsolution.projects.locations.instances.create", - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. The parent project and location.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v2/{+parent}/instances", - "request": { - "$ref": "Instance" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, "detachLun": { "description": "Detach LUN from Instance.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:detachLun", @@ -385,6 +328,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}", @@ -402,7 +370,7 @@ "type": "string" }, "updateMask": { - "description": "The list of fields to update. The currently supported fields are: `labels` `hyperthreading_enabled` `os_image`", + "description": "The list of fields to update. The currently supported fields are: `labels` `hyperthreading_enabled` `os_image` `ssh_keys` `kms_key_version`", "format": "google-fieldmask", "location": "query", "type": "string" @@ -419,6 +387,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "rename": { + "description": "RenameInstance sets a new name for an instance. Use with caution, previous names become immediately invalidated.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:rename", + "httpMethod": "POST", + "id": "baremetalsolution.projects.locations.instances.rename", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The `name` field is used to identify the instance. Format: projects/{project}/locations/{location}/instances/{instance}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:rename", + "request": { + "$ref": "RenameInstanceRequest" + }, + "response": { + "$ref": "Instance" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "reset": { "description": "Perform an ungraceful, hard reset on a server. Equivalent to shutting the power off and then turning it back on.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:reset", @@ -631,6 +627,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "rename": { + "description": "RenameNetwork sets a new name for a network. Use with caution, previous names become immediately invalidated.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/networks/{networksId}:rename", + "httpMethod": "POST", + "id": "baremetalsolution.projects.locations.networks.rename", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The `name` field is used to identify the network. Format: projects/{project}/locations/{location}/networks/{network}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/networks/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:rename", + "request": { + "$ref": "RenameNetworkRequest" + }, + "response": { + "$ref": "Network" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -788,13 +812,41 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "rename": { + "description": "RenameNfsShare sets a new name for an nfsshare. Use with caution, previous names become immediately invalidated.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/nfsShares/{nfsSharesId}:rename", + "httpMethod": "POST", + "id": "baremetalsolution.projects.locations.nfsShares.rename", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The `name` field is used to identify the nfsshare. Format: projects/{project}/locations/{location}/nfsshares/{nfsshare}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/nfsShares/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:rename", + "request": { + "$ref": "RenameNfsShareRequest" + }, + "response": { + "$ref": "NfsShare" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, "operations": { "methods": { "get": { - "description": "Get details about an operation. This method used only to work around CCFE lack of passthrough LRO support (b/221498758).", + "description": "Get details about an operation.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", "httpMethod": "GET", "id": "baremetalsolution.projects.locations.operations.get", @@ -820,6 +872,71 @@ } } }, + "osImages": { + "methods": { + "get": { + "description": "Get details of a single OS image.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/osImages/{osImagesId}", + "httpMethod": "GET", + "id": "baremetalsolution.projects.locations.osImages.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the OS image.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/osImages/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "OSImage" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Retrieves the list of OS images which are currently approved.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/osImages", + "httpMethod": "GET", + "id": "baremetalsolution.projects.locations.osImages.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Requested page size. The server might return fewer items than requested. If unspecified, server will pick an appropriate default. Notice that page_size field is not supported and won't be respected in the API request for now, will be updated when pagination is supported.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A token identifying a page of results from the server.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent value for ListOSImagesRequest.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/osImages", + "response": { + "$ref": "ListOSImagesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "provisioningConfigs": { "methods": { "create": { @@ -1089,6 +1206,34 @@ }, "volumes": { "methods": { + "evict": { + "description": "Skips volume's cooloff and deletes it now. Volume must be in cooloff state.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}:evict", + "httpMethod": "POST", + "id": "baremetalsolution.projects.locations.volumes.evict", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the Volume.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:evict", + "request": { + "$ref": "EvictVolumeRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Get details of a single storage volume.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}", @@ -1189,6 +1334,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "rename": { + "description": "RenameVolume sets a new name for a volume. Use with caution, previous names become immediately invalidated.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}:rename", + "httpMethod": "POST", + "id": "baremetalsolution.projects.locations.volumes.rename", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The `name` field is used to identify the volume. Format: projects/{project}/locations/{location}/volumes/{volume}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:rename", + "request": { + "$ref": "RenameVolumeRequest" + }, + "response": { + "$ref": "Volume" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "resize": { "description": "Emergency Volume resize.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}:resize", @@ -1221,6 +1394,34 @@ "resources": { "luns": { "methods": { + "evict": { + "description": "Skips lun's cooloff and deletes it now. Lun must be in cooloff state.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/luns/{lunsId}:evict", + "httpMethod": "POST", + "id": "baremetalsolution.projects.locations.volumes.luns.evict", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the lun.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/luns/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:evict", + "request": { + "$ref": "EvictLunRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Get details of a single storage logical unit number(LUN).", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/luns/{lunsId}", @@ -1437,7 +1638,7 @@ } } }, - "revision": "20230113", + "revision": "20240228", "rootUrl": "https://baremetalsolution.googleapis.com/", "schemas": { "AllowedClient": { @@ -1512,6 +1713,12 @@ "properties": {}, "type": "object" }, + "DisableInteractiveSerialConsoleResponse": { + "description": "Message for response of DisableInteractiveSerialConsole.", + "id": "DisableInteractiveSerialConsoleResponse", + "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", @@ -1524,18 +1731,22 @@ "properties": {}, "type": "object" }, - "FetchInstanceProvisioningSettingsResponse": { - "description": "Response with all provisioning settings.", - "id": "FetchInstanceProvisioningSettingsResponse", - "properties": { - "images": { - "description": "The OS images available.", - "items": { - "$ref": "OSImage" - }, - "type": "array" - } - }, + "EnableInteractiveSerialConsoleResponse": { + "description": "Message for response of EnableInteractiveSerialConsole.", + "id": "EnableInteractiveSerialConsoleResponse", + "properties": {}, + "type": "object" + }, + "EvictLunRequest": { + "description": "Request for skip lun cooloff and delete it.", + "id": "EvictLunRequest", + "properties": {}, + "type": "object" + }, + "EvictVolumeRequest": { + "description": "Request for skip volume cooloff and delete it.", + "id": "EvictVolumeRequest", + "properties": {}, "type": "object" }, "GoogleCloudBaremetalsolutionV2LogicalInterface": { @@ -1543,6 +1754,7 @@ "id": "GoogleCloudBaremetalsolutionV2LogicalInterface", "properties": { "interfaceIndex": { + "deprecated": true, "description": "The index of the logical interface mapping to the index of the hardware bond or nic on the chosen network template. This field is deprecated.", "format": "int32", "type": "integer" @@ -1600,6 +1812,11 @@ "readOnly": true, "type": "string" }, + "firmwareVersion": { + "description": "Output only. The firmware version for the instance.", + "readOnly": true, + "type": "string" + }, "hyperthreadingEnabled": { "description": "True if you enable hyperthreading for the server, otherwise false. The default value is false.", "type": "boolean" @@ -1614,6 +1831,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" @@ -1665,9 +1886,16 @@ "type": "string" }, "pod": { - "description": "Immutable. Pod name. Pod is an independent part of infrastructure. Instance can be connected to the assets (networks, volumes) allocated in the same pod only.", + "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": [ @@ -1733,6 +1961,7 @@ }, "clientNetwork": { "$ref": "NetworkAddress", + "deprecated": true, "description": "Client network address. Filled if InstanceConfig.multivlan_config is false." }, "hyperthreading": { @@ -1740,6 +1969,7 @@ "type": "boolean" }, "id": { + "deprecated": true, "description": "A transient unique identifier to idenfity an instance within an ProvisioningConfig request.", "type": "string" }, @@ -1747,6 +1977,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": { @@ -1755,8 +1989,7 @@ "type": "array" }, "name": { - "description": "Output only. The name of the instance config.", - "readOnly": true, + "description": "The name of the instance config.", "type": "string" }, "networkConfig": { @@ -1783,8 +2016,16 @@ }, "privateNetwork": { "$ref": "NetworkAddress", + "deprecated": true, "description": "Private network address, if any. Filled if InstanceConfig.multivlan_config is false." }, + "sshKeyNames": { + "description": "Optional. List of names of ssh keys used to provision the instance.", + "items": { + "type": "string" + }, + "type": "array" + }, "userNote": { "description": "User note field, it can be used by customers to add additional information for the BMS Ops team .", "type": "string" @@ -1806,6 +2047,7 @@ "type": "string" }, "instanceType": { + "deprecated": true, "description": "Instance type. Deprecated: use gcp_service.", "type": "string" }, @@ -1968,6 +2210,24 @@ }, "type": "object" }, + "ListOSImagesResponse": { + "description": "Request for getting all available OS images.", + "id": "ListOSImagesResponse", + "properties": { + "nextPageToken": { + "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", + "type": "string" + }, + "osImages": { + "description": "The OS images available.", + "items": { + "$ref": "OSImage" + }, + "type": "array" + } + }, + "type": "object" + }, "ListProvisioningQuotasResponse": { "description": "Response message for the list of provisioning quotas.", "id": "ListProvisioningQuotasResponse", @@ -2054,8 +2314,29 @@ }, "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 Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -2133,10 +2414,24 @@ "description": "Display if this LUN is a boot LUN.", "type": "boolean" }, + "expireTime": { + "description": "Output only. Time after which LUN will be fully deleted. It is filled only for LUNs in COOL_OFF state.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "id": { "description": "An identifier for the LUN, generated by the backend.", "type": "string" }, + "instances": { + "description": "Output only. Instances this Lun is attached to.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "multiprotocolType": { "description": "The LUN multiprotocol type ensures the characteristics of the LUN are optimized for each operating system.", "enum": [ @@ -2159,7 +2454,7 @@ "type": "boolean" }, "sizeGb": { - "description": "The size of this LUN, in gigabytes.", + "description": "The size of this LUN, in GiB.", "format": "int64", "type": "string" }, @@ -2170,14 +2465,16 @@ "CREATING", "UPDATING", "READY", - "DELETING" + "DELETING", + "COOL_OFF" ], "enumDescriptions": [ "The LUN is in an unknown state.", "The LUN is being created.", "The LUN is being updated.", "The LUN is ready for use.", - "The LUN has been requested to be deleted." + "The LUN has been requested to be deleted.", + "The LUN is in cool off state. It will be deleted after `expire_time`." ], "type": "string" }, @@ -2275,8 +2572,7 @@ "type": "string" }, "pod": { - "description": "Output only. Pod name.", - "readOnly": true, + "description": "Immutable. Pod name. Pod is an independent part of infrastructure. Network can only be connected to the assets (instances, nfsshares) allocated in the same pod.", "type": "string" }, "reservations": { @@ -2328,7 +2624,11 @@ }, "vrf": { "$ref": "VRF", - "description": "The vrf for the Network." + "description": "The Vrf for the Network. Use this only if a new Vrf needs to be created." + }, + "vrfAttachment": { + "description": "Optional. The name of a pre-existing Vrf that the network should be attached to. Format is `vrfs/{vrf}`.", + "type": "string" } }, "type": "object" @@ -2582,6 +2882,10 @@ "readOnly": true, "type": "string" }, + "pod": { + "description": "Immutable. Pod name. Pod is an independent part of infrastructure. NFSShare can only be connected to the assets (networks, instances) allocated in the same pod.", + "type": "string" + }, "requestedSizeGib": { "description": "The requested size, in GiB.", "format": "int64", @@ -2655,7 +2959,7 @@ "supportedNetworkTemplates": { "description": "Network templates that can be used with this OS Image.", "items": { - "$ref": "ServerNetworkTemplate" + "type": "string" }, "type": "array" } @@ -2691,7 +2995,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" } }, @@ -2711,6 +3015,7 @@ "type": "string" }, "email": { + "deprecated": true, "description": "Email provided to send a confirmation with provisioning config to. Deprecated in favour of email field in request messages.", "type": "string" }, @@ -2741,6 +3046,10 @@ }, "type": "array" }, + "pod": { + "description": "Optional. Pod name. Pod is an independent part of infrastructure. Instance can be connected to the assets (networks, volumes, nfsshares) allocated in the same pod only.", + "type": "string" + }, "state": { "description": "Output only. State of ProvisioningConfig.", "enum": [ @@ -2866,12 +3175,62 @@ }, "type": "object" }, + "RenameInstanceRequest": { + "description": "Message requesting rename of a server.", + "id": "RenameInstanceRequest", + "properties": { + "newInstanceId": { + "description": "Required. The new `id` of the instance.", + "type": "string" + } + }, + "type": "object" + }, + "RenameNetworkRequest": { + "description": "Message requesting rename of a server.", + "id": "RenameNetworkRequest", + "properties": { + "newNetworkId": { + "description": "Required. The new `id` of the network.", + "type": "string" + } + }, + "type": "object" + }, + "RenameNfsShareRequest": { + "description": "Message requesting rename of a server.", + "id": "RenameNfsShareRequest", + "properties": { + "newNfsshareId": { + "description": "Required. The new `id` of the nfsshare.", + "type": "string" + } + }, + "type": "object" + }, + "RenameVolumeRequest": { + "description": "Message requesting rename of a server.", + "id": "RenameVolumeRequest", + "properties": { + "newVolumeId": { + "description": "Required. The new `id` of the volume.", + "type": "string" + } + }, + "type": "object" + }, "ResetInstanceRequest": { "description": "Message requesting to reset a server.", "id": "ResetInstanceRequest", "properties": {}, "type": "object" }, + "ResetInstanceResponse": { + "description": "Response message from resetting a server.", + "id": "ResetInstanceResponse", + "properties": {}, + "type": "object" + }, "ResizeVolumeRequest": { "description": "Request for emergency resize Volume.", "id": "ResizeVolumeRequest", @@ -2965,6 +3324,12 @@ "properties": {}, "type": "object" }, + "StartInstanceResponse": { + "description": "Response message from starting a server.", + "id": "StartInstanceResponse", + "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", @@ -2998,6 +3363,12 @@ "properties": {}, "type": "object" }, + "StopInstanceResponse": { + "description": "Response message from stopping a server.", + "id": "StopInstanceResponse", + "properties": {}, + "type": "object" + }, "SubmitProvisioningConfigRequest": { "description": "Request for SubmitProvisioningConfig.", "id": "SubmitProvisioningConfigRequest", @@ -3024,6 +3395,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", @@ -3068,6 +3454,10 @@ "description": "Immutable. The identifier of the attachment within vrf.", "type": "string" }, + "interconnectAttachment": { + "description": "Optional. The name of the vlan attachment within vrf. This is of the form projects/{project_number}/regions/{region}/interconnectAttachments/{interconnect_attachment}", + "type": "string" + }, "pairingKey": { "description": "Input only. Pairing key.", "type": "string" @@ -3096,6 +3486,11 @@ "description": "A storage volume.", "id": "Volume", "properties": { + "attached": { + "description": "Output only. Is the Volume attached at at least one instance. This field is a lightweight counterpart of `instances` field. It is filled in List responses as well.", + "readOnly": true, + "type": "boolean" + }, "autoGrownSizeGib": { "description": "The size, in GiB, that this storage volume has expanded as a result of an auto grow policy. In the absence of auto-grow, the value is 0.", "format": "int64", @@ -3116,10 +3511,24 @@ "format": "int64", "type": "string" }, + "expireTime": { + "description": "Output only. Time after which volume will be fully deleted. It is filled only for volumes in COOLOFF state.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "id": { "description": "An identifier for the `Volume`, generated by the backend.", "type": "string" }, + "instances": { + "description": "Output only. Instances this Volume is attached to. This field is set only in Get requests.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "labels": { "additionalProperties": { "type": "string" @@ -3152,18 +3561,20 @@ "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" }, "pod": { - "description": "Immutable. Pod name.", + "description": "Immutable. Pod name. Pod is an independent part of infrastructure. Volume can only be connected to the instances allocated in the same pod.", "type": "string" }, "protocol": { @@ -3215,10 +3626,6 @@ "$ref": "SnapshotReservationDetail", "description": "Details about snapshot space reservation and usage on the storage volume." }, - "snapshotSchedulePolicy": { - "description": "The name of the snapshot schedule policy in use for this volume, if any.", - "type": "string" - }, "state": { "description": "The state of this storage volume.", "enum": [ @@ -3226,21 +3633,19 @@ "CREATING", "READY", "DELETING", - "UPDATING" + "UPDATING", + "COOL_OFF" ], "enumDescriptions": [ "The storage volume is in an unknown state.", "The storage volume is being created.", "The storage volume is ready for use.", "The storage volume has been requested to be deleted.", - "The storage volume is being updated." + "The storage volume is being updated.", + "The storage volume is in cool off state. It will be deleted after `expire_time`." ], "type": "string" }, - "storageAggregatePool": { - "description": "Input only. Name of the storage aggregate pool to allocate the volume in. Can be used only for VOLUME_PERFORMANCE_TIER_ASSIGNED volumes.", - "type": "string" - }, "storageType": { "description": "The storage type for this volume.", "enum": [ @@ -3316,13 +3721,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" }, @@ -3349,10 +3756,6 @@ "description": "Whether snapshots should be enabled.", "type": "boolean" }, - "storageAggregatePool": { - "description": "Input only. Name of the storage aggregate pool to allocate the volume in. Can be used only for VOLUME_PERFORMANCE_TIER_ASSIGNED volumes.", - "type": "string" - }, "type": { "description": "The type of this Volume.", "enum": [ diff --git a/etc/api/bigquery/v2/bigquery-api.json b/etc/api/bigquery/v2/bigquery-api.json index e89df27e50..b7c4c85b26 100644 --- a/etc/api/bigquery/v2/bigquery-api.json +++ b/etc/api/bigquery/v2/bigquery-api.json @@ -29,12 +29,14 @@ "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/", + "fullyEncodeReservedExpansion": true, "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", @@ -43,18 +45,45 @@ "ownerDomain": "google.com", "ownerName": "Google", "parameters": { - "alt": { - "default": "json", - "description": "Data format for the response.", + "$.xgafv": { + "description": "V1 error format.", "enum": [ - "json" + "1", + "2" ], "enumDescriptions": [ - "Responses with Content-Type of application/json" + "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", @@ -77,12 +106,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" }, - "userIp": { - "description": "Deprecated. Please use quotaUser instead.", + "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" } @@ -93,6 +127,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": [ @@ -101,8 +136,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" }, @@ -112,13 +148,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" @@ -126,6 +163,7 @@ }, "get": { "description": "Returns the dataset specified by datasetID.", + "flatPath": "projects/{projectsId}/datasets/{datasetsId}", "httpMethod": "GET", "id": "bigquery.datasets.get", "parameterOrder": [ @@ -134,19 +172,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": "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" }, @@ -158,6 +215,7 @@ }, "insert": { "description": "Creates a new empty dataset.", + "flatPath": "projects/{projectsId}/datasets", "httpMethod": "POST", "id": "bigquery.datasets.insert", "parameterOrder": [ @@ -165,13 +223,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" }, @@ -184,7 +243,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": [ @@ -197,12 +257,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" @@ -213,13 +273,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" }, @@ -230,7 +291,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": [ @@ -239,19 +301,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" }, @@ -263,8 +327,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": [ @@ -273,19 +375,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" }, @@ -303,6 +407,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": [ @@ -311,24 +416,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" }, @@ -375,6 +482,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": [ @@ -383,24 +491,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" }, @@ -411,7 +521,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": [ @@ -419,48 +530,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" }, @@ -471,7 +589,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": { @@ -481,11 +600,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" } } }, @@ -494,13 +613,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" }, @@ -518,6 +638,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": [ @@ -525,41 +646,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" }, @@ -593,7 +715,7 @@ "type": "string" } }, - "path": "projects/{projectId}/jobs", + "path": "projects/{+projectId}/jobs", "response": { "$ref": "JobList" }, @@ -605,6 +727,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": [ @@ -612,13 +735,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" }, @@ -813,7 +937,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": [ @@ -821,13 +946,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" }, @@ -838,18 +964,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" } @@ -1011,7 +1139,7 @@ "type": "string" }, "filter": { - "description": "If set, then only the Routines matching this filter are returned. The current supported form is either \"routine_type:\" or \"routineType:\", where is a RoutineType enum. Example: \"routineType:SCALAR_FUNCTION\".", + "description": "If set, then only the Routines matching this filter are returned. The supported format is `routineType:{RoutineType}`, where `{RoutineType}` is a RoutineType enum. For example: `routineType:SCALAR_FUNCTION`.", "location": "query", "type": "string" }, @@ -1183,35 +1311,6 @@ "https://www.googleapis.com/auth/cloud-platform.read-only" ] }, - "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": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}/rowAccessPolicies/{rowAccessPoliciesId}:setIamPolicy", - "httpMethod": "POST", - "id": "bigquery.rowAccessPolicies.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/[^/]+/datasets/[^/]+/tables/[^/]+/rowAccessPolicies/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "{+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": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}/rowAccessPolicies/{rowAccessPoliciesId}:testIamPermissions", @@ -1247,7 +1346,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": [ @@ -1257,25 +1357,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" }, @@ -1289,7 +1392,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": [ @@ -1299,47 +1403,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" }, @@ -1355,6 +1467,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": [ @@ -1364,25 +1477,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" @@ -1390,6 +1506,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": [ @@ -1399,47 +1516,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" }, @@ -1481,6 +1601,7 @@ }, "insert": { "description": "Creates a new, empty table in the dataset.", + "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables", "httpMethod": "POST", "id": "bigquery.tables.insert", "parameterOrder": [ @@ -1489,19 +1610,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" }, @@ -1515,6 +1638,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": [ @@ -1523,13 +1647,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" @@ -1540,13 +1665,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" }, @@ -1557,7 +1683,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": [ @@ -1567,30 +1694,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" }, @@ -1662,7 +1792,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": [ @@ -1672,30 +1803,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" }, @@ -1710,7 +1844,7 @@ } } }, - "revision": "20230114", + "revision": "20240214", "rootUrl": "https://bigquery.googleapis.com/", "schemas": { "AggregateClassificationMetrics": { @@ -1755,6 +1889,25 @@ }, "type": "object" }, + "AggregationThresholdPolicy": { + "description": "Represents privacy policy associated with \"aggregation threshold\" method.", + "id": "AggregationThresholdPolicy", + "properties": { + "privacyUnitColumns": { + "description": "Optional. The privacy unit column(s) associated with this policy. For now, only one column per data source object (table, view) is allowed as a privacy unit column. Representing as a repeated field in metadata for extensibility to multiple columns in future. Duplicates and Repeated struct fields are not allowed. For nested fields, use dot notation (\"outer.inner\")", + "items": { + "type": "string" + }, + "type": "array" + }, + "threshold": { + "description": "Optional. The threshold for the \"aggregation threshold\" policy.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "Argument": { "description": "Input/output argument of a function or a stored procedure.", "id": "Argument", @@ -1767,7 +1920,7 @@ "ANY_TYPE" ], "enumDescriptions": [ - "", + "Default value.", "The argument is a variable with fully specified type, which can be a struct or an array, but not a table.", "The argument is any type, including struct or array, but not a table. To be added: FIXED_TABLE, ANY_TABLE" ], @@ -1777,6 +1930,10 @@ "$ref": "StandardSqlDataType", "description": "Required unless argument_kind = ANY_TYPE." }, + "isAggregate": { + "description": "Optional. Whether the argument is an aggregate function parameter. Must be Unset for routine types other than AGGREGATE_FUNCTION. For AGGREGATE_FUNCTION, if set to false, it is equivalent to adding \"NOT AGGREGATE\" clause in DDL; Otherwise, it is equivalent to omitting \"NOT AGGREGATE\" clause in DDL.", + "type": "boolean" + }, "mode": { "description": "Optional. Specifies whether the argument is input or output. Can be set for procedures only.", "enum": [ @@ -1786,7 +1943,7 @@ "INOUT" ], "enumDescriptions": [ - "", + "Default value.", "The argument is input-only.", "The argument is output-only.", "The argument is both an input and an output." @@ -1855,6 +2012,7 @@ "id": "ArimaForecastingMetrics", "properties": { "arimaFittingMetrics": { + "deprecated": true, "description": "Arima model fitting metrics.", "items": { "$ref": "ArimaFittingMetrics" @@ -1869,6 +2027,7 @@ "type": "array" }, "hasDrift": { + "deprecated": true, "description": "Whether Arima model fitted with drift or not. It is always false when d is not 1.", "items": { "type": "boolean" @@ -1876,6 +2035,7 @@ "type": "array" }, "nonSeasonalOrder": { + "deprecated": true, "description": "Non-seasonal order.", "items": { "$ref": "ArimaOrder" @@ -1883,6 +2043,7 @@ "type": "array" }, "seasonalPeriods": { + "deprecated": true, "description": "Seasonal periods. Repeated because multiple periods are supported for one time series.", "items": { "enum": [ @@ -1908,6 +2069,7 @@ "type": "array" }, "timeSeriesId": { + "deprecated": true, "description": "Id to differentiate different time series for the large-scale case.", "items": { "type": "string" @@ -2165,42 +2327,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": { @@ -2213,16 +2422,55 @@ }, "type": "object" }, + "BigLakeConfiguration": { + "description": "Configuration for BigLake managed tables.", + "id": "BigLakeConfiguration", + "properties": { + "connectionId": { + "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. 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. 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. The table format the metadata only snapshots are stored in.", + "enum": [ + "TABLE_FORMAT_UNSPECIFIED", + "ICEBERG" + ], + "enumDescriptions": [ + "Default Value.", + "Apache Iceberg format." + ], + "type": "string" + } + }, + "type": "object" + }, "BigQueryModelTraining": { "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" } @@ -2230,47 +2478,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": { @@ -2278,32 +2529,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" } }, @@ -2396,14 +2652,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -2413,27 +2669,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" } @@ -2444,23 +2700,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" @@ -2532,14 +2788,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" } @@ -2593,10 +2850,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" }, @@ -2649,66 +2907,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" }, - "null_marker": { - "description": "[Optional] An custom string that will represent a NULL value in CSV import data.", + "nullMarker": { + "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" } }, @@ -2737,8 +3008,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", @@ -2757,7 +3029,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": { @@ -2774,7 +3046,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" @@ -2782,54 +3054,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": "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. 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": { @@ -2840,59 +3135,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", @@ -2912,18 +3238,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": { @@ -2931,8 +3259,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": { @@ -2943,7 +3270,7 @@ "type": "object" }, "location": { - "description": "The geographic location where the data resides.", + "description": "The geographic location where the dataset resides.", "type": "string" } }, @@ -2952,17 +3279,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" @@ -2971,47 +3307,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" } }, @@ -3030,21 +3357,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" } }, @@ -3101,7 +3432,7 @@ "id": "EncryptionConfiguration", "properties": { "kmsKeyName": { - "description": "[Optional] Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key.", + "description": "Optional. Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key.", "type": "string" } }, @@ -3124,6 +3455,7 @@ "type": "object" }, "ErrorProto": { + "description": "Error details.", "id": "ErrorProto", "properties": { "debugInfo": { @@ -3181,6 +3513,7 @@ "type": "object" }, "ExplainQueryStage": { + "description": "A single stage of query execution.", "id": "ExplainQueryStage", "properties": { "completedParallelInputs": { @@ -3188,6 +3521,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", @@ -3209,12 +3557,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" }, @@ -3227,11 +3575,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" }, @@ -3281,12 +3629,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": { @@ -3340,6 +3688,7 @@ "type": "object" }, "ExplainQueryStep": { + "description": "An operation within a stage.", "id": "ExplainQueryStep", "properties": { "kind": { @@ -3347,7 +3696,7 @@ "type": "string" }, "substeps": { - "description": "Human-readable stage descriptions.", + "description": "Human-readable description of the step(s).", "items": { "type": "string" }, @@ -3372,6 +3721,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", @@ -3404,70 +3770,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.", + "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": "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": { @@ -3480,6 +3906,52 @@ }, "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}", + "type": "string" + }, + "externalSource": { + "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" + } + }, + "type": "object" + }, "FeatureValue": { "description": "Representative value of a single feature within the cluster.", "id": "FeatureValue", @@ -3524,6 +3996,7 @@ "type": "object" }, "GetQueryResultsResponse": { + "description": "Response object of GetQueryResults.", "id": "GetQueryResultsResponse", "properties": { "cacheHit": { @@ -3531,10 +4004,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": { @@ -3555,16 +4029,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" }, @@ -3588,6 +4063,7 @@ "type": "object" }, "GetServiceAccountResponse": { + "description": "Response object of GetServiceAccount", "id": "GetServiceAccountResponse", "properties": { "email": { @@ -3621,33 +4097,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" }, + "HighCardinalityJoin": { + "description": "High cardinality join detailed information.", + "id": "HighCardinalityJoin", + "properties": { + "leftRows": { + "description": "Output only. Count of left input rows.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "outputRows": { + "description": "Output only. Count of the output rows.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "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. (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.", + "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": { - "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.", + "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" } }, @@ -3795,7 +4313,7 @@ "STOPPED_EARLY" ], "enumDescriptions": [ - "", + "Default value.", "Scheduled but not started.", "Running state.", "The trial succeeded.", @@ -3819,30 +4337,85 @@ "type": "object" }, "IndexUnusedReason": { + "description": "Reason about why no search index was used in the search query (or sub-query).", "id": "IndexUnusedReason", "properties": { - "base_table": { + "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" }, - "index_name": { - "default": "$(reason.index_name)", - "description": "[Output-only] Specifies the name of the unused search index, if available.", + "indexName": { + "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", @@ -3920,8 +4493,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", @@ -3942,6 +4527,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", @@ -3955,45 +4547,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": { + "$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": { @@ -4016,7 +4626,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": { @@ -4024,12 +4634,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": { @@ -4051,14 +4661,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": { @@ -4073,12 +4684,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": { @@ -4090,17 +4705,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": { @@ -4108,38 +4724,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", @@ -4147,43 +4779,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: \ufffd.", "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. 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": { @@ -4195,21 +4847,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\".", @@ -4220,19 +4872,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": { @@ -4247,73 +4899,78 @@ "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" }, "type": "array" }, + "continuous": { + "description": "[Optional] Specifies whether the query should be executed as a continuous query. The default value is false.", + "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": { @@ -4321,15 +4978,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" }, @@ -4337,20 +4994,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": { @@ -4359,12 +5025,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": { @@ -4375,17 +5041,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": { @@ -4393,15 +5060,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": { @@ -4416,13 +5098,40 @@ "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" + } + }, + "type": "object" + }, + "JobCreationReason": { + "description": "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.", + "id": "JobCreationReason", + "properties": { + "code": { + "description": "Output only. Specifies the high level reason why a Job was created.", + "enum": [ + "CODE_UNSPECIFIED", + "REQUESTED", + "LONG_RUNNING", + "LARGE_RESULTS", + "OTHER" + ], + "enumDescriptions": [ + "Reason is not specified.", + "Job creation was requested.", + "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.", + "The results from the query cannot fit in the response.", + "BigQuery has determined that the query needs to be executed as a Job." + ], + "readOnly": true, "type": "string" } }, "type": "object" }, "JobList": { + "description": "JobList is the response format for a jobs.list call.", "id": "JobList", "properties": { "etag": { @@ -4432,10 +5141,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", @@ -4447,24 +5157,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.", @@ -4483,387 +5197,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 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": { - "copied_logical_bytes": { - "description": "[Output-only] Number of logical bytes copied to the destination table.", + "copiedLogicalBytes": { + "description": "Output only. Number of logical bytes copied to the destination table.", "format": "int64", + "readOnly": true, "type": "string" }, - "copied_rows": { - "description": "[Output-only] Number of rows copied to the destination table.", + "copiedRows": { + "description": "Output only. Number of rows copied to the destination table.", "format": "int64", + "readOnly": true, "type": "string" } }, @@ -4874,17 +5734,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" } }, @@ -4898,11 +5761,34 @@ "id": "JsonObject", "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.", + "type": "string" + } + }, + "type": "object" + }, "JsonValue": { "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", "properties": { "models": { @@ -4920,6 +5806,7 @@ "type": "object" }, "ListRoutinesResponse": { + "description": "Describes the format of a single result page when listing routines.", "id": "ListRoutinesResponse", "properties": { "nextPageToken": { @@ -4954,6 +5841,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", @@ -4965,20 +5896,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": { - "allow_non_incremental_definition": { - "description": "[Optional] Allow non incremental materialized view definition. The default value is \"false\".", + "allowNonIncrementalDefinition": { + "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": { @@ -4987,30 +5972,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" } }, @@ -5020,6 +6133,7 @@ "id": "Model", "properties": { "bestTrialId": { + "deprecated": true, "description": "The best trial_id across all training runs.", "format": "int64", "type": "string" @@ -5055,7 +6169,7 @@ "type": "string" }, "featureColumns": { - "description": "Output only. Input feature columns that were used to train this model.", + "description": "Output only. Input feature columns for the model inference. If the model is trained with TRANSFORM clause, these are the input of the TRANSFORM clause.", "items": { "$ref": "StandardSqlField" }, @@ -5120,6 +6234,7 @@ "DNN_CLASSIFIER", "TENSORFLOW", "DNN_REGRESSOR", + "XGBOOST", "BOOSTED_TREE_REGRESSOR", "BOOSTED_TREE_CLASSIFIER", "ARIMA", @@ -5130,11 +6245,14 @@ "DNN_LINEAR_COMBINED_REGRESSOR", "AUTOENCODER", "ARIMA_PLUS", + "ARIMA_PLUS_XREG", "RANDOM_FOREST_REGRESSOR", - "RANDOM_FOREST_CLASSIFIER" + "RANDOM_FOREST_CLASSIFIER", + "TENSORFLOW_LITE", + "ONNX" ], "enumDescriptions": [ - "", + "Default value.", "Linear regression model.", "Logistic regression based classification model.", "K-means clustering model.", @@ -5142,6 +6260,7 @@ "DNN classifier model.", "An imported TensorFlow model.", "DNN regressor model.", + "An imported XGBoost model.", "Boosted tree regressor model.", "Boosted tree classifier model.", "ARIMA model.", @@ -5152,8 +6271,11 @@ "Wide-and-deep regressor model.", "Autoencoder model.", "New name for the ARIMA model.", - "Random Forest regressor model.", - "Random Forest classifier 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" @@ -5167,12 +6289,25 @@ "readOnly": true, "type": "array" }, + "remoteModelInfo": { + "$ref": "RemoteModelInfo", + "description": "Output only. Remote model info", + "readOnly": true + }, "trainingRuns": { "description": "Information for all training runs in increasing order of start_time.", "items": { "$ref": "TrainingRun" }, "type": "array" + }, + "transformColumns": { + "description": "Output only. This field will be populated if a TRANSFORM clause was used to train a model. TRANSFORM clause (if used) takes feature_columns as input and outputs transform_columns. transform_columns then are used to train the model.", + "items": { + "$ref": "TransformColumn" + }, + "readOnly": true, + "type": "array" } }, "type": "object" @@ -5181,7 +6316,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": { @@ -5199,7 +6334,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" }, @@ -5208,19 +6343,32 @@ }, "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": { - "description": "[Required] The ID of the dataset containing this model.", + "description": "Required. The ID of the dataset containing this model.", "type": "string" }, "modelId": { - "description": "[Required] The ID of the model. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.", + "description": "Required. The ID of the model. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.", "type": "string" }, "projectId": { - "description": "[Required] The ID of the project containing this model.", + "description": "Required. The ID of the project containing this model.", "type": "string" } }, @@ -5245,21 +6393,51 @@ "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/).", + "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": { @@ -5316,28 +6494,41 @@ }, "type": "object" }, + "PrivacyPolicy": { + "description": "Represents privacy policy that contains the privacy requirements specified by the data owner. Currently, this is only supported on views.", + "id": "PrivacyPolicy", + "properties": { + "aggregationThresholdPolicy": { + "$ref": "AggregationThresholdPolicy", + "description": "Optional. Policy used for aggregation thresholds." + } + }, + "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": { @@ -5345,7 +6536,6 @@ "type": "string" }, "kind": { - "default": "bigquery#project", "description": "The resource type.", "type": "string" }, @@ -5364,7 +6554,7 @@ "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" } @@ -5372,55 +6562,79 @@ "type": "object" }, "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.", + "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": { + "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" @@ -5428,58 +6642,86 @@ "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" }, "type": "array" }, + "continuous": { + "description": "[Optional] Specifies whether the query should be executed as a continuous query. The default value is false.", + "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": { "default": "bigquery#queryRequest", "description": "The resource type of the request.", @@ -5489,7 +6731,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": { @@ -5497,56 +6739,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" } }, @@ -5561,19 +6799,25 @@ }, "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": { "description": "Whether the query has completed or not. If rows or totalRows are present, this will always be true. If this is false, totalRows will not be available.", "type": "boolean" }, + "jobCreationReason": { + "$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", "description": "Reference to the Job that was created to run the query. This field will be present even if the original request timed out, in which case GetQueryResults can be used to read the results once the query has completed. Since this API only returns the first page of results, subsequent pages can be fetched via the same mechanism (GetQueryResults)." @@ -5584,12 +6828,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. 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": { + "description": "Query ID for the completed query. This ID will be auto-generated. This field is not yet available and it is currently not guaranteed to be populated.", "type": "string" }, "rows": { @@ -5605,7 +6854,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.", @@ -5621,10 +6871,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" }, @@ -5639,7 +6890,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" }, @@ -5660,24 +6911,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" } @@ -5687,6 +6938,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", @@ -5773,6 +7039,58 @@ }, "type": "object" }, + "RemoteModelInfo": { + "description": "Remote Model Info", + "id": "RemoteModelInfo", + "properties": { + "connection": { + "description": "Output only. Fully qualified name of the user-provided connection object of the remote model. Format: ```\"projects/{project_id}/locations/{location_id}/connections/{connection_id}\"```", + "readOnly": true, + "type": "string" + }, + "endpoint": { + "description": "Output only. The endpoint for remote model.", + "readOnly": true, + "type": "string" + }, + "maxBatchingRows": { + "description": "Output only. Max number of rows in each batch sent to the remote service. If unset, the number of rows in each batch is set dynamically.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "remoteModelVersion": { + "description": "Output only. The model version for LLM.", + "readOnly": true, + "type": "string" + }, + "remoteServiceType": { + "description": "Output only. The remote service type for remote model.", + "enum": [ + "REMOTE_SERVICE_TYPE_UNSPECIFIED", + "CLOUD_AI_TRANSLATE_V3", + "CLOUD_AI_VISION_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).", + "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" + }, "Routine": { "description": "A user-defined function or a stored procedure.", "id": "Routine", @@ -5790,6 +7108,18 @@ "readOnly": true, "type": "string" }, + "dataGovernanceType": { + "description": "Optional. If set to `DATA_MASKING`, the function is validated and made available as a masking function. For more information, see [Create custom masking routines](https://cloud.google.com/bigquery/docs/user-defined-functions#custom-mask).", + "enum": [ + "DATA_GOVERNANCE_TYPE_UNSPECIFIED", + "DATA_MASKING" + ], + "enumDescriptions": [ + "The data governance type is unspecified.", + "The data governance type is data masking." + ], + "type": "string" + }, "definitionBody": { "description": "Required. The body of the routine. For functions, this is the expression in the AS clause. If language=SQL, it is the substring inside (but excluding) the parentheses. For example, for the function created with the following statement: `CREATE FUNCTION JoinLines(x string, y string) as (concat(x, \"\\n\", y))` The definition_body is `concat(x, \"\\n\", y)` (\\n is not replaced with linebreak). If language=JAVASCRIPT, it is the evaluated string in the AS clause. For example, for the function created with the following statement: `CREATE FUNCTION f() RETURNS STRING LANGUAGE js AS 'return \"\\n\";\\n'` The definition_body is `return \"\\n\";\\n` Note that both \\n are replaced with linebreaks.", "type": "string" @@ -5830,13 +7160,17 @@ "LANGUAGE_UNSPECIFIED", "SQL", "JAVASCRIPT", - "PYTHON" + "PYTHON", + "JAVA", + "SCALA" ], "enumDescriptions": [ - "", + "Default value.", "SQL language.", "JavaScript language.", - "Python language." + "Python language.", + "Java language.", + "Scala language." ], "type": "string" }, @@ -5868,13 +7202,29 @@ "ROUTINE_TYPE_UNSPECIFIED", "SCALAR_FUNCTION", "PROCEDURE", - "TABLE_VALUED_FUNCTION" + "TABLE_VALUED_FUNCTION", + "AGGREGATE_FUNCTION" ], "enumDescriptions": [ - "", - "Non-builtin permanent scalar function.", + "Default value.", + "Non-built-in persistent scalar function.", "Stored procedure.", - "Non-builtin permanent TVF." + "Non-built-in persistent TVF.", + "Non-built-in persistent aggregate function." + ], + "type": "string" + }, + "securityMode": { + "description": "Optional. The security mode of the routine, if defined. If not defined, the security mode is automatically determined from the routine's configuration.", + "enum": [ + "SECURITY_MODE_UNSPECIFIED", + "DEFINER", + "INVOKER" + ], + "enumDescriptions": [ + "The security mode of the routine is unspecified.", + "The routine is to be executed with the privileges of the user who defines it.", + "The routine is to be executed with the privileges of the user who invokes it." ], "type": "string" }, @@ -5883,25 +7233,26 @@ "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": { - "description": "[Required] The ID of the dataset containing this routine.", + "description": "Required. The ID of the dataset containing this routine.", "type": "string" }, "projectId": { - "description": "[Required] The ID of the project containing this routine.", + "description": "Required. The ID of the project containing this routine.", "type": "string" }, "routineId": { - "description": "[Required] The ID of the routine. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 256 characters.", + "description": "Required. The ID of the routine. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 256 characters.", "type": "string" } }, @@ -5958,76 +7309,127 @@ "type": "object" }, "RowAccessPolicyReference": { + "description": "Id path of a row access policy.", "id": "RowAccessPolicyReference", "properties": { "datasetId": { - "description": "[Required] The ID of the dataset containing this row access policy.", + "description": "Required. The ID of the dataset containing this row access policy.", "type": "string" }, "policyId": { - "description": "[Required] The ID of the row access policy. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 256 characters.", + "description": "Required. The ID of the row access policy. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 256 characters.", "type": "string" }, "projectId": { - "description": "[Required] The ID of the project containing this row access policy.", + "description": "Required. The ID of the project containing this row access policy.", "type": "string" }, "tableId": { - "description": "[Required] The ID of the table containing this row access policy.", + "description": "Required. The ID of the table containing this row access policy.", "type": "string" } }, "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": { @@ -6041,27 +7443,42 @@ "type": "object" }, "SearchStatistics": { + "description": "Statistics for a search query. Populated as part of JobStatistics2.", "id": "SearchStatistics", "properties": { - "indexUnusedReason": { - "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.", + "indexUnusedReasons": { + "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" } }, @@ -6084,14 +7501,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" } @@ -6099,14 +7517,17 @@ "type": "object" }, "SparkLoggingInfo": { + "description": "Spark job logs can be filtered by these fields in Cloud Logging.", "id": "SparkLoggingInfo", "properties": { - "project_id": { - "description": "[Output-only] Project ID used for logging", + "projectId": { + "description": "Output only. Project ID where the Spark logs were written.", + "readOnly": true, "type": "string" }, - "resource_type": { - "description": "[Output-only] Resource type used for logging", + "resourceType": { + "description": "Output only. Resource type used for logging.", + "readOnly": true, "type": "string" } }, @@ -6145,6 +7566,10 @@ }, "type": "array" }, + "mainClass": { + "description": "The fully qualified name of a class in jar_uris, for example, com.example.wordcount. Exactly one of main_class and main_jar_uri field should be set for Java/Scala language type.", + "type": "string" + }, "mainFileUri": { "description": "The main file/jar URI of the Spark application. Exactly one of the definition_body field and the main_file_uri field must be set for Python. Exactly one of main_class and main_file_uri field should be set for Java/Scala language type.", "type": "string" @@ -6153,7 +7578,7 @@ "additionalProperties": { "type": "string" }, - "description": "Configuration properties as a set of key/value pairs, which will be passed on to the Spark application. For more information, see [Apache Spark](https://spark.apache.org/docs/latest/index.html).", + "description": "Configuration properties as a set of key/value pairs, which will be passed on to the Spark application. For more information, see [Apache Spark](https://spark.apache.org/docs/latest/index.html) and the [procedure option list](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#procedure_option_list).", "type": "object" }, "pyFileUris": { @@ -6171,25 +7596,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" }, - "logging_info": { - "$ref": "SparkLoggingInfo", - "description": "[Output-only] Logging info is used to generate a link to Cloud Logging." - }, - "spark_job_id": { - "description": "[Output-only] Spark job id if a Spark job is created successfully.", + "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" }, - "spark_job_location": { - "description": "[Output-only] Location where the Spark job is executed.", + "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.", + "readOnly": true + }, + "sparkJobId": { + "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. 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" } }, @@ -6203,12 +7700,16 @@ "$ref": "StandardSqlDataType", "description": "The type of the array's elements, if type_kind = \"ARRAY\"." }, + "rangeElementType": { + "$ref": "StandardSqlDataType", + "description": "The type of the range's elements, if type_kind = \"RANGE\"." + }, "structType": { "$ref": "StandardSqlStructType", "description": "The fields of this struct, in order, if type_kind = \"STRUCT\"." }, "typeKind": { - "description": "Required. The top level type of this field. Can be any standard SQL data type (e.g., \"INT64\", \"DATE\", \"ARRAY\").", + "description": "Required. The top level type of this field. Can be any GoogleSQL data type (e.g., \"INT64\", \"DATE\", \"ARRAY\").", "enum": [ "TYPE_KIND_UNSPECIFIED", "INT64", @@ -6226,7 +7727,8 @@ "BIGNUMERIC", "JSON", "ARRAY", - "STRUCT" + "STRUCT", + "RANGE" ], "enumDescriptions": [ "Invalid type.", @@ -6245,7 +7747,8 @@ "Encoded as a decimal string.", "Encoded as a string.", "Encoded as a list with types matching Type.array_type.", - "Encoded as a list with fields of type Type.struct_type[i]. List is used because a JSON object cannot have duplicate field names." + "Encoded as a list with fields of type Type.struct_type[i]. List is used because a JSON object cannot have duplicate field names.", + "Encoded as a pair with types matching range_element_type. Pairs must begin with \"[\", end with \")\", and be separated by \", \"." ], "type": "string" } @@ -6268,9 +7771,11 @@ "type": "object" }, "StandardSqlStructType": { + "description": "The representation of a SQL STRUCT type.", "id": "StandardSqlStructType", "properties": { "fields": { + "description": "Fields within the struct.", "items": { "$ref": "StandardSqlField" }, @@ -6297,18 +7802,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" } }, @@ -6328,28 +7836,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." + }, "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": "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": { @@ -6357,29 +7909,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": { @@ -6390,127 +7944,172 @@ "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.", + "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.", + "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.", + "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.", + "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.", + "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" }, - "num_active_logical_bytes": { - "description": "[Output-only] Number of logical bytes that are less than 90 days old.", + "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.", "format": "int64", + "readOnly": true, "type": "string" }, - "num_active_physical_bytes": { - "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.", + "numTotalLogicalBytes": { + "description": "Output only. Total number of logical bytes in the table or materialized view.", "format": "int64", + "readOnly": true, "type": "string" }, - "num_long_term_logical_bytes": { - "description": "[Output-only] Number of logical bytes that are more than 90 days old.", - "format": "int64", - "type": "string" - }, - "num_long_term_physical_bytes": { - "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", - "type": "string" - }, - "num_partitions": { - "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", - "type": "string" - }, - "num_time_travel_physical_bytes": { - "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", - "type": "string" - }, - "num_total_logical_bytes": { - "description": "[Output-only] Total number of logical bytes in the table or materialized view.", - "format": "int64", - "type": "string" - }, - "num_total_physical_bytes": { - "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.", + "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.", "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": { + "additionalProperties": { + "type": "string" + }, + "description": "[Optional] The tags associated with this table. Tag keys are globally unique. See additional information on [tags](https://cloud.google.com/iam/docs/tags-access-control#definitions). An object containing a list of \"key\": value pairs. The key is the namespaced friendly name of the tag key, e.g. \"12345/environment\" where 12345 is parent id. The value is the friendly short name of the tag value, e.g. \"production\".", + "type": "object" + }, "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. 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" @@ -6524,29 +8123,96 @@ }, "type": "object" }, + "TableConstraints": { + "description": "The TableConstraints defines the primary key and foreign key.", + "id": "TableConstraints", + "properties": { + "foreignKeys": { + "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" + } + }, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "Optional. Set only if the foreign key constraint is named.", + "type": "string" + }, + "referencedTable": { + "properties": { + "datasetId": { + "type": "string" + }, + "projectId": { + "type": "string" + }, + "tableId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "primaryKey": { + "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" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "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" @@ -6554,22 +8220,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.", @@ -6590,7 +8262,7 @@ }, "kind": { "default": "bigquery#tableDataInsertAllResponse", - "description": "The resource type of the response.", + "description": "Returns \"bigquery#tableDataInsertAllResponse\".", "type": "string" } }, @@ -6620,7 +8292,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" } @@ -6628,13 +8300,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" }, @@ -6644,41 +8317,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 \u2260 \"STRING\" and \u2260 \"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 \u2260 \"STRING\" and \u2260 \"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" }, @@ -6688,23 +8362,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 \u2260 \"NUMERIC\" and \u2260 \"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 \u2264 precision - scale \u2264 29 and 0 \u2264 scale \u2264 9. - If type = \"BIGNUMERIC\": 1 \u2264 precision - scale \u2264 38 and 0 \u2264 scale \u2264 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 \u2264 precision \u2264 29. - If type = \"BIGNUMERIC\": 1 \u2264 precision \u2264 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 \u2260 \"NUMERIC\" and \u2260 \"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 \u2264 precision - scale \u2264 29 and 0 \u2264 scale \u2264 9. * If type = \"BIGNUMERIC\": 1 \u2264 precision - scale \u2264 38 and 0 \u2264 scale \u2264 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 \u2264 precision \u2264 29. * If type = \"BIGNUMERIC\": 1 \u2264 precision \u2264 38. If scale is specified but not precision, then it is invalid.", "format": "int64", "type": "string" }, + "rangeElementType": { + "description": "Represents the type of a field element.", + "properties": { + "type": { + "description": "Required. The type of a field element. See TableFieldSchema.type.", + "type": "string" + } + }, + "type": "object" + }, + "roundingMode": { + "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": { @@ -6726,15 +8425,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" }, @@ -6743,11 +8443,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" }, @@ -6760,25 +8459,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" } }, @@ -6797,39 +8505,105 @@ }, "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\u2019t allow replication." + ], + "readOnly": true, + "type": "string" + }, + "sourceTable": { + "$ref": "TableReference", + "description": "Required. Source table reference that is replicated." + } + }, + "type": "object" + }, "TableRow": { "id": "TableRow", "properties": { @@ -6844,6 +8618,7 @@ "type": "object" }, "TableSchema": { + "description": "Schema of a table", "id": "TableSchema", "properties": { "fields": { @@ -6888,19 +8663,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" } }, @@ -6910,19 +8688,36 @@ "description": "Options used in model training.", "id": "TrainingOptions", "properties": { + "activationFn": { + "description": "Activation function of the neural nets.", + "type": "string" + }, "adjustStepChanges": { "description": "If true, detect step changes and make data adjustment in the input time series.", "type": "boolean" }, + "approxGlobalFeatureContrib": { + "description": "Whether to use approximate feature contribution method in XGBoost model explanation for global explain.", + "type": "boolean" + }, "autoArima": { "description": "Whether to enable auto ARIMA or not.", "type": "boolean" }, "autoArimaMaxOrder": { - "description": "The max value of non-seasonal p and q.", + "description": "The max value of the sum of non-seasonal p and q.", "format": "int64", "type": "string" }, + "autoArimaMinOrder": { + "description": "The min value of the sum of non-seasonal p and q.", + "format": "int64", + "type": "string" + }, + "autoClassWeights": { + "description": "Whether to calculate class weights automatically based on the popularity of each label.", + "type": "boolean" + }, "batchSize": { "description": "Batch size for dnn models.", "format": "int64", @@ -6942,10 +8737,31 @@ ], "type": "string" }, + "budgetHours": { + "description": "Budget in hours for AutoML training.", + "format": "double", + "type": "number" + }, "calculatePValues": { "description": "Whether or not p-value test should be computed for this model. Only available for linear and logistic regression models.", "type": "boolean" }, + "categoryEncodingMethod": { + "description": "Categorical feature encoding method.", + "enum": [ + "ENCODING_METHOD_UNSPECIFIED", + "ONE_HOT_ENCODING", + "LABEL_ENCODING", + "DUMMY_ENCODING" + ], + "enumDescriptions": [ + "Unspecified encoding method.", + "Applies one-hot encoding.", + "Applies label encoding.", + "Applies dummy encoding." + ], + "type": "string" + }, "cleanSpikesAndDips": { "description": "If true, clean spikes and dips in the input time series.", "type": "boolean" @@ -7013,7 +8829,7 @@ "PER_MINUTE" ], "enumDescriptions": [ - "", + "Default value.", "Automatically inferred from timestamps.", "Yearly data.", "Quarterly data.", @@ -7045,7 +8861,7 @@ "AUTO_SPLIT" ], "enumDescriptions": [ - "", + "Default value.", "Splits data randomly.", "Splits data with the user provided tags.", "Splits data sequentially.", @@ -7066,7 +8882,7 @@ "COSINE" ], "enumDescriptions": [ - "", + "Default value.", "Eculidean distance.", "Cosine distance." ], @@ -7093,12 +8909,16 @@ "EXPLICIT" ], "enumDescriptions": [ - "", + "Default value.", "Use weighted-als for implicit feedback problems.", "Use nonweighted-als for explicit feedback problems." ], "type": "string" }, + "fitIntercept": { + "description": "Whether the model should include intercept during model training.", + "type": "boolean" + }, "hiddenUnits": { "description": "Hidden units for dnn models.", "items": { @@ -7253,6 +9073,155 @@ ], "type": "string" }, + "holidayRegions": { + "description": "A list of geographical regions that are used for time series modeling.", + "items": { + "enum": [ + "HOLIDAY_REGION_UNSPECIFIED", + "GLOBAL", + "NA", + "JAPAC", + "EMEA", + "LAC", + "AE", + "AR", + "AT", + "AU", + "BE", + "BR", + "CA", + "CH", + "CL", + "CN", + "CO", + "CS", + "CZ", + "DE", + "DK", + "DZ", + "EC", + "EE", + "EG", + "ES", + "FI", + "FR", + "GB", + "GR", + "HK", + "HU", + "ID", + "IE", + "IL", + "IN", + "IR", + "IT", + "JP", + "KR", + "LV", + "MA", + "MX", + "MY", + "NG", + "NL", + "NO", + "NZ", + "PE", + "PH", + "PK", + "PL", + "PT", + "RO", + "RS", + "RU", + "SA", + "SE", + "SG", + "SI", + "SK", + "TH", + "TR", + "TW", + "UA", + "US", + "VE", + "VN", + "ZA" + ], + "enumDescriptions": [ + "Holiday region unspecified.", + "Global.", + "North America.", + "Japan and Asia Pacific: Korea, Greater China, India, Australia, and New Zealand.", + "Europe, the Middle East and Africa.", + "Latin America and the Caribbean.", + "United Arab Emirates", + "Argentina", + "Austria", + "Australia", + "Belgium", + "Brazil", + "Canada", + "Switzerland", + "Chile", + "China", + "Colombia", + "Czechoslovakia", + "Czech Republic", + "Germany", + "Denmark", + "Algeria", + "Ecuador", + "Estonia", + "Egypt", + "Spain", + "Finland", + "France", + "Great Britain (United Kingdom)", + "Greece", + "Hong Kong", + "Hungary", + "Indonesia", + "Ireland", + "Israel", + "India", + "Iran", + "Italy", + "Japan", + "Korea (South)", + "Latvia", + "Morocco", + "Mexico", + "Malaysia", + "Nigeria", + "Netherlands", + "Norway", + "New Zealand", + "Peru", + "Philippines", + "Pakistan", + "Poland", + "Portugal", + "Romania", + "Serbia", + "Russian Federation", + "Saudi Arabia", + "Sweden", + "Singapore", + "Slovenia", + "Slovakia", + "Thailand", + "Turkey", + "Taiwan", + "Ukraine", + "United States", + "Venezuela", + "Viet Nam", + "South Africa" + ], + "type": "string" + }, + "type": "array" + }, "horizon": { "description": "The number of periods ahead that need to be forecasted.", "format": "int64", @@ -7319,6 +9288,10 @@ }, "type": "array" }, + "instanceWeightColumn": { + "description": "Name of the instance weight column for training data. This column isn't be used as a feature.", + "type": "string" + }, "integratedGradientsNumSteps": { "description": "Number of integral steps for the integrated gradients explain method.", "format": "int64", @@ -7348,6 +9321,11 @@ ], "type": "string" }, + "l1RegActivation": { + "description": "L1 regularization coefficient to activations.", + "format": "double", + "type": "number" + }, "l1Regularization": { "description": "L1 regularization coefficient.", "format": "double", @@ -7379,7 +9357,7 @@ "CONSTANT" ], "enumDescriptions": [ - "", + "Default value.", "Use line search to determine learning rate.", "Use a constant learning rate." ], @@ -7393,7 +9371,7 @@ "MEAN_LOG_LOSS" ], "enumDescriptions": [ - "", + "Default value.", "Mean squared loss, used for linear regression.", "Mean log loss, used for logistic regression." ], @@ -7410,7 +9388,7 @@ "type": "string" }, "maxTimeSeriesLength": { - "description": "Get truncated length by last n points in time series. Use separately from time_series_length_fraction and min_time_series_length.", + "description": "The maximum number of time points in a time series that can be used in modeling the trend component of the time series. Don't use this option with the `timeSeriesLengthFraction` or `minTimeSeriesLength` options.", "format": "int64", "type": "string" }, @@ -7430,7 +9408,7 @@ "type": "number" }, "minTimeSeriesLength": { - "description": "Set fast trend ARIMA_PLUS model minimum training length. Use in pair with time_series_length_fraction.", + "description": "The minimum number of time points in a time series that are used in modeling the trend component of the time series. If you use this option you must also set the `timeSeriesLengthFraction` option. This training option ensures that enough time points are available when you use `timeSeriesLengthFraction` in trend modeling. This is particularly important when forecasting multiple time series in a single query using `timeSeriesIdColumn`. If the total number of time points is less than the `minTimeSeriesLength` value, then the query uses all available time points.", "format": "int64", "type": "string" }, @@ -7439,6 +9417,18 @@ "format": "int64", "type": "string" }, + "modelRegistry": { + "description": "The model registry.", + "enum": [ + "MODEL_REGISTRY_UNSPECIFIED", + "VERTEX_AI" + ], + "enumDescriptions": [ + "Default value.", + "Vertex AI." + ], + "type": "string" + }, "modelUri": { "description": "Google Cloud Storage URI from which the model was imported. Only applicable for imported models.", "type": "string" @@ -7462,6 +9452,11 @@ "format": "int64", "type": "string" }, + "numPrincipalComponents": { + "description": "Number of principal components to keep in the PCA model. Must be <= the number of features.", + "format": "int64", + "type": "string" + }, "numTrials": { "description": "Number of trials to run this hyperparameter tuning job.", "format": "int64", @@ -7475,26 +9470,59 @@ "NORMAL_EQUATION" ], "enumDescriptions": [ - "", + "Default value.", "Uses an iterative batch gradient descent algorithm.", "Uses a normal equation to solve linear regression problem." ], "type": "string" }, - "preserveInputStructs": { - "description": "Whether to preserve the input structs in output feature names. Suppose there is a struct A with field b. When false (default), the output feature name is A_b. When true, the output feature name is A.b.", - "type": "boolean" + "optimizer": { + "description": "Optimizer used for training the neural nets.", + "type": "string" + }, + "pcaExplainedVarianceRatio": { + "description": "The minimum ratio of cumulative explained variance that needs to be given by the PCA model.", + "format": "double", + "type": "number" + }, + "pcaSolver": { + "description": "The solver for PCA.", + "enum": [ + "UNSPECIFIED", + "FULL", + "RANDOMIZED", + "AUTO" + ], + "enumDescriptions": [ + "Default value.", + "Full eigen-decoposition.", + "Randomized SVD.", + "Auto." + ], + "type": "string" }, "sampledShapleyNumPaths": { "description": "Number of paths for the sampled Shapley explain method.", "format": "int64", "type": "string" }, + "scaleFeatures": { + "description": "If true, scale the feature values by dividing the feature standard deviation. Currently only apply to PCA.", + "type": "boolean" + }, + "standardizeFeatures": { + "description": "Whether to standardize numerical features. Default to true.", + "type": "boolean" + }, "subsample": { "description": "Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.", "format": "double", "type": "number" }, + "tfVersion": { + "description": "Based on the selected TF version, the corresponding docker image is used to train external models.", + "type": "string" + }, "timeSeriesDataColumn": { "description": "Column to be designated as time series data for ARIMA model.", "type": "string" @@ -7511,7 +9539,7 @@ "type": "array" }, "timeSeriesLengthFraction": { - "description": "Get truncated length by fraction in time series.", + "description": "The fraction of the interpolated length of the time series that's used to model the time series trend component. All of the time points of the time series are used to model the non-trend component. This training option accelerates modeling training without sacrificing much forecasting accuracy. You can use this option with `minTimeSeriesLength` but not with `maxTimeSeriesLength`.", "format": "double", "type": "number" }, @@ -7538,7 +9566,7 @@ "type": "string" }, "trendSmoothingWindowSize": { - "description": "The smoothing window size for the trend component of the time series.", + "description": "Smoothing window size for the trend component. When a positive value is specified, a center moving average smoothing is applied on the history trend. When the smoothing window is out of the boundary at the beginning or the end of the trend, the first element or the last element is padded to fill the smoothing window before the average is applied.", "format": "int64", "type": "string" }, @@ -7546,6 +9574,13 @@ "description": "User column specified for matrix factorization models.", "type": "string" }, + "vertexAiModelVersionAliases": { + "description": "The version aliases to apply in Vertex AI model registry. Always overwrite if the version aliases exists in a existing model.", + "items": { + "type": "string" + }, + "type": "array" + }, "walsAlpha": { "description": "Hyperparameter for matrix factoration when implicit feedback type is specified.", "format": "double", @@ -7554,6 +9589,10 @@ "warmStart": { "description": "Whether to train a model from the last checkpoint.", "type": "boolean" + }, + "xgboostVersion": { + "description": "User-selected XGBoost versions for training of XGBoost models.", + "type": "string" } }, "type": "object" @@ -7605,6 +9644,7 @@ "readOnly": true }, "trainingStartTime": { + "deprecated": true, "description": "Output only. The start time of this training run, in milliseconds since epoch.", "format": "int64", "readOnly": true, @@ -7623,17 +9663,53 @@ "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" + } + }, + "type": "object" + }, + "TransformColumn": { + "description": "Information about a single transform column.", + "id": "TransformColumn", + "properties": { + "name": { + "description": "Output only. Name of the column.", + "readOnly": true, + "type": "string" + }, + "transformSql": { + "description": "Output only. The SQL expression used in the column transform.", + "readOnly": true, + "type": "string" + }, + "type": { + "$ref": "StandardSqlDataType", + "description": "Output only. Data type of the column after the transform.", + "readOnly": true + } + }, + "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": { @@ -7647,19 +9723,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/etc/api/bigqueryconnection/v1beta1/bigqueryconnection-api.json b/etc/api/bigqueryconnection/v1beta1/bigqueryconnection-api.json index 34a83d530a..e275a9e1fe 100644 --- a/etc/api/bigqueryconnection/v1beta1/bigqueryconnection-api.json +++ b/etc/api/bigqueryconnection/v1beta1/bigqueryconnection-api.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", "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -395,7 +395,7 @@ } } }, - "revision": "20230115", + "revision": "20240214", "rootUrl": "https://bigqueryconnection.googleapis.com/", "schemas": { "AuditConfig": { @@ -455,14 +455,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -643,7 +643,7 @@ "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/).", + "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": { diff --git a/etc/api/bigquerydatatransfer/v1/bigquerydatatransfer-api.json b/etc/api/bigquerydatatransfer/v1/bigquerydatatransfer-api.json index 366bc033e2..804b7a2679 100644 --- a/etc/api/bigquerydatatransfer/v1/bigquerydatatransfer-api.json +++ b/etc/api/bigquerydatatransfer/v1/bigquerydatatransfer-api.json @@ -343,6 +343,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": { @@ -469,7 +498,7 @@ "type": "string" }, "serviceAccountName": { - "description": "Optional service account name. If this field is set, the transfer config will be created with this service account's credentials. It requires that the requesting user calling this API has permissions to act as this service account. Note that not all data sources support service account credentials when creating a transfer config. For the latest list of data sources, read about [using service accounts](https://cloud.google.com/bigquery-transfer/docs/use-service-accounts).", + "description": "Optional service account email. If this field is set, the transfer config will be created with this service account's credentials. It requires that the requesting user calling this API has permissions to act as this service account. Note that not all data sources support service account credentials when creating a transfer config. For the latest list of data sources, read about [using service accounts](https://cloud.google.com/bigquery-transfer/docs/use-service-accounts).", "location": "query", "type": "string" }, @@ -602,14 +631,14 @@ "type": "string" }, "name": { - "description": "The resource name of the transfer config. Transfer config names have the form `projects/{project_id}/locations/{region}/transferConfigs/{config_id}`. Where `config_id` is usually a uuid, even though it is not guaranteed or required. The name is ignored when creating a transfer config.", + "description": "The resource name of the transfer config. Transfer config names have the form either `projects/{project_id}/locations/{region}/transferConfigs/{config_id}` or `projects/{project_id}/transferConfigs/{config_id}`, where `config_id` is usually a UUID, even though it is not guaranteed or required. The name is ignored when creating a transfer config.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$", "required": true, "type": "string" }, "serviceAccountName": { - "description": "Optional service account name. If this field is set, the transfer config will be created with this service account's credentials. It requires that the requesting user calling this API has permissions to act as this service account. Note that not all data sources support service account credentials when creating a transfer config. For the latest list of data sources, read about [using service accounts](https://cloud.google.com/bigquery-transfer/docs/use-service-accounts).", + "description": "Optional service account email. If this field is set, the transfer config will be created with this service account's credentials. It requires that the requesting user calling this API has permissions to act as this service account. Note that not all data sources support service account credentials when creating a transfer config. For the latest list of data sources, read about [using service accounts](https://cloud.google.com/bigquery-transfer/docs/use-service-accounts).", "location": "query", "type": "string" }, @@ -637,6 +666,7 @@ ] }, "scheduleRuns": { + "deprecated": true, "description": "Creates transfer runs for a time range [start_time, end_time]. For each date - or whatever granularity the data source supports - in the range, one transfer run is created. Note that runs are created per UTC time in the time range. DEPRECATED: use StartManualTransferRuns instead.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}:scheduleRuns", "httpMethod": "POST", @@ -916,7 +946,7 @@ "type": "string" }, "serviceAccountName": { - "description": "Optional service account name. If this field is set, the transfer config will be created with this service account's credentials. It requires that the requesting user calling this API has permissions to act as this service account. Note that not all data sources support service account credentials when creating a transfer config. For the latest list of data sources, read about [using service accounts](https://cloud.google.com/bigquery-transfer/docs/use-service-accounts).", + "description": "Optional service account email. If this field is set, the transfer config will be created with this service account's credentials. It requires that the requesting user calling this API has permissions to act as this service account. Note that not all data sources support service account credentials when creating a transfer config. For the latest list of data sources, read about [using service accounts](https://cloud.google.com/bigquery-transfer/docs/use-service-accounts).", "location": "query", "type": "string" }, @@ -1049,14 +1079,14 @@ "type": "string" }, "name": { - "description": "The resource name of the transfer config. Transfer config names have the form `projects/{project_id}/locations/{region}/transferConfigs/{config_id}`. Where `config_id` is usually a uuid, even though it is not guaranteed or required. The name is ignored when creating a transfer config.", + "description": "The resource name of the transfer config. Transfer config names have the form either `projects/{project_id}/locations/{region}/transferConfigs/{config_id}` or `projects/{project_id}/transferConfigs/{config_id}`, where `config_id` is usually a UUID, even though it is not guaranteed or required. The name is ignored when creating a transfer config.", "location": "path", "pattern": "^projects/[^/]+/transferConfigs/[^/]+$", "required": true, "type": "string" }, "serviceAccountName": { - "description": "Optional service account name. If this field is set, the transfer config will be created with this service account's credentials. It requires that the requesting user calling this API has permissions to act as this service account. Note that not all data sources support service account credentials when creating a transfer config. For the latest list of data sources, read about [using service accounts](https://cloud.google.com/bigquery-transfer/docs/use-service-accounts).", + "description": "Optional service account email. If this field is set, the transfer config will be created with this service account's credentials. It requires that the requesting user calling this API has permissions to act as this service account. Note that not all data sources support service account credentials when creating a transfer config. For the latest list of data sources, read about [using service accounts](https://cloud.google.com/bigquery-transfer/docs/use-service-accounts).", "location": "query", "type": "string" }, @@ -1084,6 +1114,7 @@ ] }, "scheduleRuns": { + "deprecated": true, "description": "Creates transfer runs for a time range [start_time, end_time]. For each date - or whatever granularity the data source supports - in the range, one transfer run is created. Note that runs are created per UTC time in the time range. DEPRECATED: use StartManualTransferRuns instead.", "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}:scheduleRuns", "httpMethod": "POST", @@ -1340,7 +1371,7 @@ } } }, - "revision": "20230115", + "revision": "20240227", "rootUrl": "https://bigquerydatatransfer.googleapis.com/", "schemas": { "CheckValidCredsRequest": { @@ -1456,10 +1487,12 @@ "type": "boolean" }, "supportsMultipleTransfers": { + "deprecated": true, "description": "Deprecated. This field has no effect.", "type": "boolean" }, "transferType": { + "deprecated": true, "description": "Deprecated. This field has no effect.", "enum": [ "TRANSFER_TYPE_UNSPECIFIED", @@ -1550,7 +1583,8 @@ "DOUBLE", "BOOLEAN", "RECORD", - "PLUS_PAGE" + "PLUS_PAGE", + "LIST" ], "enumDescriptions": [ "Type unspecified.", @@ -1559,7 +1593,8 @@ "Double precision floating point parameter.", "Boolean parameter.", "Deprecated. This field has no effect.", - "Page ID for a Google+ Page." + "Page ID for a Google+ Page.", + "List of strings parameter." ], "type": "string" }, @@ -1595,6 +1630,17 @@ "properties": {}, "type": "object" }, + "EncryptionConfiguration": { + "description": "Represents the encryption configuration for a transfer.", + "id": "EncryptionConfiguration", + "properties": { + "kmsKeyName": { + "description": "The name of the KMS key used for encrypting BigQuery data.", + "type": "string" + } + }, + "type": "object" + }, "EnrollDataSourcesRequest": { "description": "A request to enroll a set of data sources so they are visible in the BigQuery UI's `Transfer` tab.", "id": "EnrollDataSourcesRequest", @@ -1707,7 +1753,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1749,12 +1795,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" } @@ -1797,13 +1843,13 @@ "id": "StartManualTransferRunsRequest", "properties": { "requestedRunTime": { - "description": "Specific run_time for a transfer run to be started. The requested_run_time must not be in the future.", + "description": "A run_time timestamp for historical data files or reports that are scheduled to be transferred by the scheduled transfer run. requested_run_time must be a past time and cannot include future time values.", "format": "google-datetime", "type": "string" }, "requestedTimeRange": { "$ref": "TimeRange", - "description": "Time range for the transfer runs that should be started." + "description": "A time_range start and end timestamp for historical data files or reports that are scheduled to be transferred by the scheduled transfer run. requested_time_range must be a past time and cannot include future time values." } }, "type": "object" @@ -1889,7 +1935,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": { @@ -1900,8 +1946,12 @@ "$ref": "EmailPreferences", "description": "Email notifications will be sent according to these preferences to the email address of the user who owns this transfer config." }, + "encryptionConfiguration": { + "$ref": "EncryptionConfiguration", + "description": "The encryption configuration part. Currently, it is only used for the optional KMS key name. The BigQuery service account of your project must be granted permissions to use the key. Read methods will return the key name applied in effect. Write methods will apply the key if it is present, or otherwise try to apply project default keys if it is absent." + }, "name": { - "description": "The resource name of the transfer config. Transfer config names have the form `projects/{project_id}/locations/{region}/transferConfigs/{config_id}`. Where `config_id` is usually a uuid, even though it is not guaranteed or required. The name is ignored when creating a transfer config.", + "description": "The resource name of the transfer config. Transfer config names have the form either `projects/{project_id}/locations/{region}/transferConfigs/{config_id}` or `projects/{project_id}/transferConfigs/{config_id}`, where `config_id` is usually a UUID, even though it is not guaranteed or required. The name is ignored when creating a transfer config.", "type": "string" }, "nextRunTime": { @@ -1911,7 +1961,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": { @@ -2036,7 +2086,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" }, @@ -2104,6 +2154,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/etc/api/bigqueryreservation/v1/bigqueryreservation-api.json b/etc/api/bigqueryreservation/v1/bigqueryreservation-api.json index d7f8575800..58a6d6b000 100644 --- a/etc/api/bigqueryreservation/v1/bigqueryreservation-api.json +++ b/etc/api/bigqueryreservation/v1/bigqueryreservation-api.json @@ -18,6 +18,33 @@ "description": "A service to modify your BigQuery flat-rate reservations.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/bigquery/", + "endpoints": [ + { + "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" + } + ], "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -181,6 +208,7 @@ ] }, "searchAssignments": { + "deprecated": true, "description": "Deprecated: Looks up assignments for a specified resource for a particular region. If the request is about a project: 1. Assignments created on the project will be returned if they exist. 2. Otherwise assignments created on the closest ancestor will be returned. 3. Assignments for different JobTypes will all be returned. The same logic applies if the request is about a folder. If the request is about an organization, then assignments created on the organization will be returned (organization doesn't have ancestors). Comparing to ListAssignments, there are some behavior differences: 1. permission on the assignee will be verified in this API. 2. Hierarchy lookup (project->folder->organization) happens in this API. 3. Parent here is `projects/*/locations/*`, instead of `projects/*/locations/*reservations/*`. **Note** \"-\" cannot be used for projects nor locations.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:searchAssignments", "httpMethod": "GET", @@ -823,7 +851,7 @@ } } }, - "revision": "20230117", + "revision": "20240227", "rootUrl": "https://bigqueryreservation.googleapis.com/", "schemas": { "Assignment": { @@ -875,6 +903,24 @@ }, "type": "object" }, + "Autoscale": { + "description": "Auto scaling settings.", + "id": "Autoscale", + "properties": { + "currentSlots": { + "description": "Output only. The slot capacity added to this reservation when autoscale happens. Will be between [0, max_slots].", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "maxSlots": { + "description": "Number of slots to be scaled when needed.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "BiReservation": { "description": "Represents a BI Reservation.", "id": "BiReservation", @@ -920,13 +966,34 @@ "readOnly": true, "type": "string" }, + "edition": { + "description": "Edition of the capacity commitment.", + "enum": [ + "EDITION_UNSPECIFIED", + "STANDARD", + "ENTERPRISE", + "ENTERPRISE_PLUS" + ], + "enumDescriptions": [ + "Default value, which will be treated as ENTERPRISE.", + "Standard edition.", + "Enterprise edition.", + "Enterprise plus edition." + ], + "type": "string" + }, "failureStatus": { "$ref": "Status", "description": "Output only. For FAILED commitment plan, provides the reason of failure.", "readOnly": true }, + "isFlatRate": { + "description": "Output only. If true, the commitment is a flat-rate commitment, otherwise, it's an edition commitment.", + "readOnly": true, + "type": "boolean" + }, "multiRegionAuxiliary": { - "description": "Applicable only for commitments located within one of the BigQuery multi-regions (US or EU). If set to true, this commitment is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this commitment is placed in the organization's default region.", + "description": "Applicable only for commitments located within one of the BigQuery multi-regions (US or EU). If set to true, this commitment is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this commitment is placed in the organization's default region. NOTE: this is a preview feature. Project must be allow-listed in order to set this field.", "type": "boolean" }, "name": { @@ -939,16 +1006,38 @@ "enum": [ "COMMITMENT_PLAN_UNSPECIFIED", "FLEX", + "FLEX_FLAT_RATE", "TRIAL", "MONTHLY", - "ANNUAL" + "MONTHLY_FLAT_RATE", + "ANNUAL", + "ANNUAL_FLAT_RATE", + "THREE_YEAR", + "NONE" + ], + "enumDeprecated": [ + false, + false, + true, + true, + false, + true, + false, + true, + false, + false ], "enumDescriptions": [ "Invalid plan value. Requests with this value will be rejected with error code `google.rpc.Code.INVALID_ARGUMENT`.", "Flex commitments have committed period of 1 minute after becoming ACTIVE. After that, they are not in a committed period anymore and can be removed any time.", + "Same as FLEX, should only be used if flat-rate commitments are still available.", "Trial commitments have a committed period of 182 days after becoming ACTIVE. After that, they are converted to a new commitment based on the `renewal_plan`. Default `renewal_plan` for Trial commitment is Flex so that it can be deleted right after committed period ends.", "Monthly commitments have a committed period of 30 days after becoming ACTIVE. After that, they are not in a committed period anymore and can be removed any time.", - "Annual commitments have a committed period of 365 days after becoming ACTIVE. After that they are converted to a new commitment based on the renewal_plan." + "Same as MONTHLY, should only be used if flat-rate commitments are still available.", + "Annual commitments have a committed period of 365 days after becoming ACTIVE. After that they are converted to a new commitment based on the renewal_plan.", + "Same as ANNUAL, should only be used if flat-rate commitments are still available.", + "3-year commitments have a committed period of 1095(3 * 365) days after becoming ACTIVE. After that they are converted to a new commitment based on the renewal_plan.", + "Should only be used for `renewal_plan` and is only meaningful if edition is specified to values other than EDITION_UNSPECIFIED. Otherwise CreateCapacityCommitmentRequest or UpdateCapacityCommitmentRequest will be rejected with error code `google.rpc.Code.INVALID_ARGUMENT`. If the renewal_plan is NONE, capacity commitment will be removed at the end of its commitment period." ], "type": "string" }, @@ -957,16 +1046,38 @@ "enum": [ "COMMITMENT_PLAN_UNSPECIFIED", "FLEX", + "FLEX_FLAT_RATE", "TRIAL", "MONTHLY", - "ANNUAL" + "MONTHLY_FLAT_RATE", + "ANNUAL", + "ANNUAL_FLAT_RATE", + "THREE_YEAR", + "NONE" + ], + "enumDeprecated": [ + false, + false, + true, + true, + false, + true, + false, + true, + false, + false ], "enumDescriptions": [ "Invalid plan value. Requests with this value will be rejected with error code `google.rpc.Code.INVALID_ARGUMENT`.", "Flex commitments have committed period of 1 minute after becoming ACTIVE. After that, they are not in a committed period anymore and can be removed any time.", + "Same as FLEX, should only be used if flat-rate commitments are still available.", "Trial commitments have a committed period of 182 days after becoming ACTIVE. After that, they are converted to a new commitment based on the `renewal_plan`. Default `renewal_plan` for Trial commitment is Flex so that it can be deleted right after committed period ends.", "Monthly commitments have a committed period of 30 days after becoming ACTIVE. After that, they are not in a committed period anymore and can be removed any time.", - "Annual commitments have a committed period of 365 days after becoming ACTIVE. After that they are converted to a new commitment based on the renewal_plan." + "Same as MONTHLY, should only be used if flat-rate commitments are still available.", + "Annual commitments have a committed period of 365 days after becoming ACTIVE. After that they are converted to a new commitment based on the renewal_plan.", + "Same as ANNUAL, should only be used if flat-rate commitments are still available.", + "3-year commitments have a committed period of 1095(3 * 365) days after becoming ACTIVE. After that they are converted to a new commitment based on the renewal_plan.", + "Should only be used for `renewal_plan` and is only meaningful if edition is specified to values other than EDITION_UNSPECIFIED. Otherwise CreateCapacityCommitmentRequest or UpdateCapacityCommitmentRequest will be rejected with error code `google.rpc.Code.INVALID_ARGUMENT`. If the renewal_plan is NONE, capacity commitment will be removed at the end of its commitment period." ], "type": "string" }, @@ -1073,6 +1184,10 @@ "description": "The request for ReservationService.MoveAssignment. **Note**: \"bigquery.reservationAssignments.create\" permission is required on the destination_id. **Note**: \"bigquery.reservationAssignments.create\" and \"bigquery.reservationAssignments.delete\" permission are required on the related assignee.", "id": "MoveAssignmentRequest", "properties": { + "assignmentId": { + "description": "The optional assignment ID. A new assignment name is generated if this field is empty. This field can contain only lowercase alphanumeric characters or dashes. Max length is 64 characters.", + "type": "string" + }, "destinationId": { "description": "The new reservation ID, e.g.: `projects/myotherproject/locations/US/reservations/team2-prod`", "type": "string" @@ -1084,6 +1199,10 @@ "description": "A reservation is a mechanism used to guarantee slots to users.", "id": "Reservation", "properties": { + "autoscale": { + "$ref": "Autoscale", + "description": "The configuration parameters for the auto scaling feature." + }, "concurrency": { "description": "Job concurrency target which sets a soft upper bound on the number of jobs that can run concurrently in this reservation. This is a soft target due to asynchronous nature of the system and various optimizations for small queries. Default value is 0 which means that concurrency target will be automatically computed by the system. NOTE: this field is exposed as `target_job_concurrency` in the Information Schema, DDL and BQ CLI.", "format": "int64", @@ -1095,12 +1214,28 @@ "readOnly": true, "type": "string" }, + "edition": { + "description": "Edition of the reservation.", + "enum": [ + "EDITION_UNSPECIFIED", + "STANDARD", + "ENTERPRISE", + "ENTERPRISE_PLUS" + ], + "enumDescriptions": [ + "Default value, which will be treated as ENTERPRISE.", + "Standard edition.", + "Enterprise edition.", + "Enterprise plus edition." + ], + "type": "string" + }, "ignoreIdleSlots": { "description": "If false, any query or pipeline job using this reservation will use idle slots from other reservations within the same admin project. If true, a query or pipeline job using this reservation will execute with the slot capacity specified in the slot_capacity field at most.", "type": "boolean" }, "multiRegionAuxiliary": { - "description": "Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region.", + "description": "Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. NOTE: this is a preview feature. Project must be allow-listed in order to set this field.", "type": "boolean" }, "name": { @@ -1108,7 +1243,7 @@ "type": "string" }, "slotCapacity": { - "description": "Minimum slots available to this reservation. A slot is a unit of computational power in BigQuery, and serves as the unit of parallelism. Queries using this reservation might use more slots during runtime if ignore_idle_slots is set to false. If total slot_capacity of the reservation and its siblings exceeds the total slot_count of all capacity commitments, the request will fail with `google.rpc.Code.RESOURCE_EXHAUSTED`. NOTE: for reservations in US or EU multi-regions, slot capacity constraints are checked separately for default and auxiliary regions. See multi_region_auxiliary flag for more details.", + "description": "Baseline slots available to this reservation. A slot is a unit of computational power in BigQuery, and serves as the unit of parallelism. Queries using this reservation might use more slots during runtime if ignore_idle_slots is set to false, or autoscaling is enabled. If edition is EDITION_UNSPECIFIED and total slot_capacity of the reservation and its siblings exceeds the total slot_count of all capacity commitments, the request will fail with `google.rpc.Code.RESOURCE_EXHAUSTED`. If edition is any value but EDITION_UNSPECIFIED, then the above requirement is not needed. The total slot_capacity of the reservation and its siblings may exceed the total slot_count of capacity commitments. In that case, the exceeding slots will be charged with the autoscale SKU. You can increase the number of baseline slots in a reservation every few minutes. If you want to decrease your baseline slots, you are limited to once an hour if you have recently changed your baseline slot capacity and your baseline slots exceed your committed slots. Otherwise, you can decrease your baseline slots every few minutes.", "format": "int64", "type": "string" }, diff --git a/etc/api/bigtableadmin/v2/bigtableadmin-api.json b/etc/api/bigtableadmin/v2/bigtableadmin-api.json index 48b5454152..e07592a364 100644 --- a/etc/api/bigtableadmin/v2/bigtableadmin-api.json +++ b/etc/api/bigtableadmin/v2/bigtableadmin-api.json @@ -131,66 +131,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}", @@ -229,7 +169,7 @@ "operations": { "methods": { "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v2/operations/projects/{projectsId}/operations", "httpMethod": "GET", "id": "bigtableadmin.operations.projects.operations.list", @@ -1127,7 +1067,7 @@ ] }, "getIamPolicy": { - "description": "Gets the access control policy for a Table resource. Returns an empty policy if the resource exists but does not have a policy set.", + "description": "Gets the access control policy for a Table or Backup resource. Returns an empty policy if the resource exists but does not have a policy set.", "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters/{clustersId}/backups/{backupsId}:getIamPolicy", "httpMethod": "POST", "id": "bigtableadmin.projects.instances.clusters.backups.getIamPolicy", @@ -1247,7 +1187,7 @@ ] }, "setIamPolicy": { - "description": "Sets the access control policy on a Table resource. Replaces any existing policy.", + "description": "Sets the access control policy on a Table or Backup resource. Replaces any existing policy.", "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters/{clustersId}/backups/{backupsId}:setIamPolicy", "httpMethod": "POST", "id": "bigtableadmin.projects.instances.clusters.backups.setIamPolicy", @@ -1279,7 +1219,7 @@ ] }, "testIamPermissions": { - "description": "Returns permissions that the caller has on the specified table resource.", + "description": "Returns permissions that the caller has on the specified Table or Backup resource.", "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters/{clustersId}/backups/{backupsId}:testIamPermissions", "httpMethod": "POST", "id": "bigtableadmin.projects.instances.clusters.backups.testIamPermissions", @@ -1467,7 +1407,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", @@ -1584,7 +1524,7 @@ ] }, "getIamPolicy": { - "description": "Gets the access control policy for a Table resource. Returns an empty policy if the resource exists but does not have a policy set.", + "description": "Gets the access control policy for a Table or Backup resource. Returns an empty policy if the resource exists but does not have a policy set.", "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}:getIamPolicy", "httpMethod": "POST", "id": "bigtableadmin.projects.instances.tables.getIamPolicy", @@ -1782,7 +1722,7 @@ ] }, "setIamPolicy": { - "description": "Sets the access control policy on a Table resource. Replaces any existing policy.", + "description": "Sets the access control policy on a Table or Backup resource. Replaces any existing policy.", "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}:setIamPolicy", "httpMethod": "POST", "id": "bigtableadmin.projects.instances.tables.setIamPolicy", @@ -1814,7 +1754,7 @@ ] }, "testIamPermissions": { - "description": "Returns permissions that the caller has on the specified table resource.", + "description": "Returns permissions that the caller has on the specified Table or Backup resource.", "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}:testIamPermissions", "httpMethod": "POST", "id": "bigtableadmin.projects.instances.tables.testIamPermissions", @@ -1883,37 +1823,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", @@ -1966,7 +1875,7 @@ } } }, - "revision": "20230110", + "revision": "20240221", "rootUrl": "https://bigtableadmin.googleapis.com/", "schemas": { "AppProfile": { @@ -1989,9 +1898,30 @@ "description": "The unique name of the app profile. Values are of the form `projects/{project}/instances/{instance}/appProfiles/_a-zA-Z0-9*`.", "type": "string" }, + "priority": { + "deprecated": true, + "description": "This field has been deprecated in favor of `standard_isolation.priority`. If you set this field, `standard_isolation.priority` will be set instead. The priority of requests sent using this app profile.", + "enum": [ + "PRIORITY_UNSPECIFIED", + "PRIORITY_LOW", + "PRIORITY_MEDIUM", + "PRIORITY_HIGH" + ], + "enumDescriptions": [ + "Default value. Mapped to PRIORITY_HIGH (the legacy behavior) on creation.", + "", + "", + "" + ], + "type": "string" + }, "singleClusterRouting": { "$ref": "SingleClusterRouting", "description": "Use a single-cluster routing policy." + }, + "standardIsolation": { + "$ref": "StandardIsolation", + "description": "The standard options used for isolating this app profile's traffic from other use cases." } }, "type": "object" @@ -2094,7 +2024,7 @@ "type": "string" }, "expireTime": { - "description": "Required. The expiration time of the backup, with microseconds granularity that must be at least 6 hours and at most 30 days from the time the request is received. Once the `expire_time` has passed, Cloud Bigtable will delete the backup and free the resources used by the backup.", + "description": "Required. The expiration time of the backup, with microseconds granularity that must be at least 6 hours and at most 90 days from the time the request is received. Once the `expire_time` has passed, Cloud Bigtable will delete the backup and free the resources used by the backup.", "format": "google-datetime", "type": "string" }, @@ -2109,7 +2039,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" }, @@ -2157,7 +2087,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" }, @@ -2184,14 +2114,26 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" + }, + "ChangeStreamConfig": { + "description": "Change stream configuration.", + "id": "ChangeStreamConfig", + "properties": { + "retentionPeriod": { + "description": "How long the change stream should be retained. Change stream data older than the retention period will not be returned when reading the change stream from the table. Values must be at least 1 day and at most 7 days, and will be truncated to microsecond granularity.", + "format": "google-duration", "type": "string" } }, @@ -2254,7 +2196,7 @@ "type": "string" }, "serveNodes": { - "description": "The number of nodes allocated to this cluster. More nodes enable higher throughput and more consistent performance.", + "description": "The number of nodes in the cluster. If no value is set, Cloud Bigtable automatically allocates nodes based on your data footprint and optimized for 50% storage utilization.", "format": "int32", "type": "integer" }, @@ -2352,7 +2294,8 @@ }, "stats": { "$ref": "ColumnFamilyStats", - "description": "Only available with STATS_VIEW, this includes summary statistics about column family contents. For statistics over an entire table, see TableStats above." + "description": "Output only. Only available with STATS_VIEW, this includes summary statistics about column family contents. For statistics over an entire table, see TableStats above.", + "readOnly": true } }, "type": "object" @@ -2995,7 +2938,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -3055,6 +2998,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": { @@ -3108,7 +3055,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" } }, @@ -3205,7 +3152,7 @@ "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/).", + "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": { @@ -3350,6 +3297,29 @@ }, "type": "object" }, + "StandardIsolation": { + "description": "Standard options for isolating this app profile's traffic from other use cases.", + "id": "StandardIsolation", + "properties": { + "priority": { + "description": "The priority of requests sent using this app profile.", + "enum": [ + "PRIORITY_UNSPECIFIED", + "PRIORITY_LOW", + "PRIORITY_MEDIUM", + "PRIORITY_HIGH" + ], + "enumDescriptions": [ + "Default value. Mapped to PRIORITY_HIGH (the legacy behavior) on creation.", + "", + "", + "" + ], + "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", @@ -3381,6 +3351,10 @@ "description": "A collection of user data indexed by row, column, and timestamp. Each table is served using the resources of its parent cluster.", "id": "Table", "properties": { + "changeStreamConfig": { + "$ref": "ChangeStreamConfig", + "description": "If specified, enable the change stream on this table. Otherwise, the change stream is disabled and the change stream is not retained." + }, "clusterStates": { "additionalProperties": { "$ref": "ClusterState" @@ -3423,7 +3397,8 @@ }, "stats": { "$ref": "TableStats", - "description": "Only available with STATS_VIEW, this includes summary statistics about the entire table contents. For statistics about a specific column family, see ColumnFamilyStats in the mapped ColumnFamily collection above." + "description": "Output only. Only available with STATS_VIEW, this includes summary statistics about the entire table contents. For statistics about a specific column family, see ColumnFamilyStats in the mapped ColumnFamily collection above.", + "readOnly": true } }, "type": "object" diff --git a/etc/api/billingbudgets/v1/billingbudgets-api.json b/etc/api/billingbudgets/v1/billingbudgets-api.json index d4e7c5af9c..fc3cd0ec84 100644 --- a/etc/api/billingbudgets/v1/billingbudgets-api.json +++ b/etc/api/billingbudgets/v1/billingbudgets-api.json @@ -219,6 +219,11 @@ "pattern": "^billingAccounts/[^/]+$", "required": true, "type": "string" + }, + "scope": { + "description": "Optional. Set the scope of the budgets to be returned, in the format of the resource name. The scope of a budget is the cost that it tracks, such as costs for a single project, or the costs for all projects in a folder. Only project scope (in the format of \"projects/project-id\" or \"projects/123\") is supported in this field. When this field is set to a project's resource name, the budgets returned are tracking the costs for that project.", + "location": "query", + "type": "string" } }, "path": "v1/{+parent}/budgets", @@ -270,7 +275,7 @@ } } }, - "revision": "20230117", + "revision": "20240225", "rootUrl": "https://billingbudgets.googleapis.com/", "schemas": { "GoogleCloudBillingBudgetsV1Budget": { @@ -302,6 +307,19 @@ "$ref": "GoogleCloudBillingBudgetsV1NotificationsRule", "description": "Optional. Rules to apply to notifications sent based on budget spend and thresholds." }, + "ownershipScope": { + "enum": [ + "OWNERSHIP_SCOPE_UNSPECIFIED", + "ALL_USERS", + "BILLING_ACCOUNT" + ], + "enumDescriptions": [ + "Unspecified ownership scope, same as ALL_USERS.", + "Both billing account-level users and project-level users have full access to the budget, if the users have the required IAM permissions.", + "Only billing account-level users have full access to the budget. Project-level users have read-only access, even if they have the required IAM permissions." + ], + "type": "string" + }, "thresholdRules": { "description": "Optional. Rules that trigger alerts (notifications of thresholds being crossed) when spend exceeds the specified percentages of the budget. Optional for `pubsubTopic` notifications. Required if using email notifications.", "items": { @@ -406,6 +424,13 @@ }, "type": "array" }, + "resourceAncestors": { + "description": "Optional. A set of folder and organization names of the form `folders/{folderId}` or `organizations/{organizationId}`, specifying that usage from only this set of folders and organizations should be included in the budget. If omitted, the budget includes all usage that the billing account pays for. If the folder or organization contains projects that are paid for by a different Cloud Billing account, the budget *doesn't* apply to those projects.", + "items": { + "type": "string" + }, + "type": "array" + }, "services": { "description": "Optional. A set of services of the form `services/{service_id}`, specifying that usage from only this set of services should be included in the budget. If omitted, the report includes usage for all the services. The service names are available through the Catalog API: https://cloud.google.com/billing/v1/how-tos/catalog-api.", "items": { @@ -455,6 +480,10 @@ "description": "Optional. When set to true, disables default notifications sent when a threshold is exceeded. Default notifications are sent to those with Billing Account Administrator and Billing Account User IAM roles for the target account.", "type": "boolean" }, + "enableProjectLevelRecipients": { + "description": "Optional. When set to true, and when the budget has a single project configured, notifications will be sent to project level recipients of that project. This field will be ignored if the budget has multiple or no project configured. Currently, project level recipients are the users with `Owner` role on a cloud project.", + "type": "boolean" + }, "monitoringNotificationChannels": { "description": "Optional. Email targets to send notifications to when a threshold is exceeded. This is in addition to the `DefaultIamRecipients` who receive alert emails based on their billing account IAM role. The value is the full REST resource name of a Cloud Monitoring email notification channel with the form `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 email notifications are allowed. To customize budget alert email recipients with monitoring notification channels, you _must create the monitoring notification channels before you link them to a budget_. For guidance on setting up notification channels to use with budgets, see [Customize budget alert email recipients](https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients). For Cloud Billing budget alerts, you _must use email notification channels_. The other types of notification channels are _not_ supported, such as Slack, SMS, or PagerDuty. If you want to [send budget notifications to Slack](https://cloud.google.com/billing/docs/how-to/notify#send_notifications_to_slack), use a pubsubTopic and configure [programmatic notifications](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications).", "items": { diff --git a/etc/api/billingbudgets/v1beta1/billingbudgets-api.json b/etc/api/billingbudgets/v1beta1/billingbudgets-api.json index f92f7c9a6a..a1f74c3385 100644 --- a/etc/api/billingbudgets/v1beta1/billingbudgets-api.json +++ b/etc/api/billingbudgets/v1beta1/billingbudgets-api.json @@ -219,6 +219,11 @@ "pattern": "^billingAccounts/[^/]+$", "required": true, "type": "string" + }, + "scope": { + "description": "Optional. Set the scope of the budgets to be returned, in the format of the resource name. The scope of a budget is the cost that it tracks, such as costs for a single project, or the costs for all projects in a folder. Only project scope (in the format of \"projects/project-id\" or \"projects/123\") is supported in this field. When this field is set to a project's resource name, the budgets returned are tracking the costs for that project.", + "location": "query", + "type": "string" } }, "path": "v1beta1/{+parent}/budgets", @@ -264,7 +269,7 @@ } } }, - "revision": "20230117", + "revision": "20240225", "rootUrl": "https://billingbudgets.googleapis.com/", "schemas": { "GoogleCloudBillingBudgetsV1beta1AllUpdatesRule": { @@ -275,6 +280,10 @@ "description": "Optional. When set to true, disables default notifications sent when a threshold is exceeded. Default notifications are sent to those with Billing Account Administrator and Billing Account User IAM roles for the target account.", "type": "boolean" }, + "enableProjectLevelRecipients": { + "description": "Optional. When set to true, and when the budget has a single project configured, notifications will be sent to project level recipients of that project. This field will be ignored if the budget has multiple or no project configured. Currently, project level recipients are the users with `Owner` role on a cloud project.", + "type": "boolean" + }, "monitoringNotificationChannels": { "description": "Optional. Targets to send notifications to when a threshold is exceeded. This is in addition to default recipients who have billing account IAM roles. The value is the full REST resource name of a monitoring notification channel with the form `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 channels are allowed. See https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients for more details.", "items": { @@ -322,6 +331,19 @@ "readOnly": true, "type": "string" }, + "ownershipScope": { + "enum": [ + "OWNERSHIP_SCOPE_UNSPECIFIED", + "ALL_USERS", + "BILLING_ACCOUNT" + ], + "enumDescriptions": [ + "Unspecified ownership scope, same as ALL_USERS.", + "The Budget is fully accessible to both billing account users and resource users, provided that they have the required IAM permissions.", + "Only billing account users have full access to the `Budget`, resource-level users have read-only access, provided that they have the required IAM permissions." + ], + "type": "string" + }, "thresholdRules": { "description": "Optional. Rules that trigger alerts (notifications of thresholds being crossed) when spend exceeds the specified percentages of the budget. Optional for `pubsubTopic` notifications. Required if using email notifications.", "items": { @@ -437,6 +459,13 @@ }, "type": "array" }, + "resourceAncestors": { + "description": "Optional. A set of folder and organization names of the form `folders/{folderId}` or `organizations/{organizationId}`, specifying that usage from only this set of folders and organizations should be included in the budget. If omitted, the budget includes all usage that the billing account pays for. If the folder or organization contains projects that are paid for by a different Cloud Billing account, the budget *doesn't* apply to those projects.", + "items": { + "type": "string" + }, + "type": "array" + }, "services": { "description": "Optional. A set of services of the form `services/{service_id}`, specifying that usage from only this set of services should be included in the budget. If omitted, the report will include usage for all the services. The service names are available through the Catalog API: https://cloud.google.com/billing/v1/how-tos/catalog-api.", "items": { diff --git a/etc/api/binaryauthorization/v1/binaryauthorization-api.json b/etc/api/binaryauthorization/v1/binaryauthorization-api.json index e31fc76643..2fbdc23065 100644 --- a/etc/api/binaryauthorization/v1/binaryauthorization-api.json +++ b/etc/api/binaryauthorization/v1/binaryauthorization-api.json @@ -133,7 +133,7 @@ ] }, "updatePolicy": { - "description": "Creates or updates a project's policy, and returns a copy of the new policy. A policy is always updated as a whole, to avoid race conditions with concurrent policy enforcement (or management!) requests. Returns NOT_FOUND if the project does not exist, INVALID_ARGUMENT if the request is malformed.", + "description": "Creates or updates a project's policy, and returns a copy of the new policy. A policy is always updated as a whole, to avoid race conditions with concurrent policy enforcement (or management!) requests. Returns `NOT_FOUND` if the project does not exist, `INVALID_ARGUMENT` if the request is malformed.", "flatPath": "v1/projects/{projectsId}/policy", "httpMethod": "PUT", "id": "binaryauthorization.projects.updatePolicy", @@ -165,7 +165,7 @@ "attestors": { "methods": { "create": { - "description": "Creates an attestor, and returns a copy of the new attestor. Returns NOT_FOUND if the project does not exist, INVALID_ARGUMENT if the request is malformed, ALREADY_EXISTS if the attestor already exists.", + "description": "Creates an attestor, and returns a copy of the new attestor. Returns `NOT_FOUND` if the project does not exist, `INVALID_ARGUMENT` if the request is malformed, `ALREADY_EXISTS` if the attestor already exists.", "flatPath": "v1/projects/{projectsId}/attestors", "httpMethod": "POST", "id": "binaryauthorization.projects.attestors.create", @@ -198,7 +198,7 @@ ] }, "delete": { - "description": "Deletes an attestor. Returns NOT_FOUND if the attestor does not exist.", + "description": "Deletes an attestor. Returns `NOT_FOUND` if the attestor does not exist.", "flatPath": "v1/projects/{projectsId}/attestors/{attestorsId}", "httpMethod": "DELETE", "id": "binaryauthorization.projects.attestors.delete", @@ -223,7 +223,7 @@ ] }, "get": { - "description": "Gets an attestor. Returns NOT_FOUND if the attestor does not exist.", + "description": "Gets an attestor. Returns `NOT_FOUND` if the attestor does not exist.", "flatPath": "v1/projects/{projectsId}/attestors/{attestorsId}", "httpMethod": "GET", "id": "binaryauthorization.projects.attestors.get", @@ -279,7 +279,7 @@ ] }, "list": { - "description": "Lists attestors. Returns INVALID_ARGUMENT if the project does not exist.", + "description": "Lists attestors. Returns `INVALID_ARGUMENT` if the project does not exist.", "flatPath": "v1/projects/{projectsId}/attestors", "httpMethod": "GET", "id": "binaryauthorization.projects.attestors.list", @@ -371,7 +371,7 @@ ] }, "update": { - "description": "Updates an attestor. Returns NOT_FOUND if the attestor does not exist.", + "description": "Updates an attestor. Returns `NOT_FOUND` if the attestor does not exist.", "flatPath": "v1/projects/{projectsId}/attestors/{attestorsId}", "httpMethod": "PUT", "id": "binaryauthorization.projects.attestors.update", @@ -399,7 +399,7 @@ ] }, "validateAttestationOccurrence": { - "description": "Returns whether the given Attestation for the given image URI was signed by the given Attestor", + "description": "Returns whether the given `Attestation` for the given image URI was signed by the given `Attestor`", "flatPath": "v1/projects/{projectsId}/attestors/{attestorsId}:validateAttestationOccurrence", "httpMethod": "POST", "id": "binaryauthorization.projects.attestors.validateAttestationOccurrence", @@ -428,6 +428,197 @@ } } }, + "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": { + "description": "Creates a platform policy, and returns a copy of it. Returns `NOT_FOUND` if the project or platform doesn't exist, `INVALID_ARGUMENT` if the request is malformed, `ALREADY_EXISTS` if the policy already exists, and `INVALID_ARGUMENT` if the policy contains a platform-specific policy that does not match the platform value specified in the URL.", + "flatPath": "v1/projects/{projectsId}/platforms/{platformsId}/policies", + "httpMethod": "POST", + "id": "binaryauthorization.projects.platforms.policies.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent of this platform policy.", + "location": "path", + "pattern": "^projects/[^/]+/platforms/[^/]+$", + "required": true, + "type": "string" + }, + "policyId": { + "description": "Required. The platform policy ID.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/policies", + "request": { + "$ref": "PlatformPolicy" + }, + "response": { + "$ref": "PlatformPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a platform policy. Returns `NOT_FOUND` if the policy doesn't exist.", + "flatPath": "v1/projects/{projectsId}/platforms/{platformsId}/policies/{policiesId}", + "httpMethod": "DELETE", + "id": "binaryauthorization.projects.platforms.policies.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the platform policy to delete, in the format `projects/*/platforms/*/policies/*`.", + "location": "path", + "pattern": "^projects/[^/]+/platforms/[^/]+/policies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a platform policy. Returns `NOT_FOUND` if the policy doesn't exist.", + "flatPath": "v1/projects/{projectsId}/platforms/{platformsId}/policies/{policiesId}", + "httpMethod": "GET", + "id": "binaryauthorization.projects.platforms.policies.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the platform policy to retrieve in the format `projects/*/platforms/*/policies/*`.", + "location": "path", + "pattern": "^projects/[^/]+/platforms/[^/]+/policies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "PlatformPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists platform policies owned by a project in the specified platform. Returns `INVALID_ARGUMENT` if the project or the platform doesn't exist.", + "flatPath": "v1/projects/{projectsId}/platforms/{platformsId}/policies", + "httpMethod": "GET", + "id": "binaryauthorization.projects.platforms.policies.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "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": "A token identifying a page of results the server should return. Typically, this is the value of ListPlatformPoliciesResponse.next_page_token returned from the previous call to the `ListPlatformPolicies` method.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the platform associated with the platform policies using the format `projects/*/platforms/*`.", + "location": "path", + "pattern": "^projects/[^/]+/platforms/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/policies", + "response": { + "$ref": "ListPlatformPoliciesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "replacePlatformPolicy": { + "description": "Replaces a platform policy. Returns `NOT_FOUND` if the policy doesn't exist.", + "flatPath": "v1/projects/{projectsId}/platforms/{platformsId}/policies/{policiesId}", + "httpMethod": "PUT", + "id": "binaryauthorization.projects.platforms.policies.replacePlatformPolicy", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The relative resource name of the Binary Authorization platform policy, in the form of `projects/*/platforms/*/policies/*`.", + "location": "path", + "pattern": "^projects/[^/]+/platforms/[^/]+/policies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "PlatformPolicy" + }, + "response": { + "$ref": "PlatformPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "policy": { "methods": { "getIamPolicy": { @@ -551,7 +742,7 @@ } } }, - "revision": "20230113", + "revision": "20240223", "rootUrl": "https://binaryauthorization.googleapis.com/", "schemas": { "AdmissionRule": { @@ -582,14 +773,14 @@ ], "enumDescriptions": [ "Do not use.", - "This rule allows all all pod creations.", + "This rule allows all pod creations.", "This rule allows a pod creation if all the attestors listed in `require_attestations_by` have valid attestations for all of the images in the pod spec.", "This rule denies all pod creations." ], "type": "string" }, "requireAttestationsBy": { - "description": "Optional. The resource names of the attestors that must attest to a container image, in the format `projects/*/attestors/*`. Each attestor must exist before a policy can reference it. To add an attestor to a policy the principal issuing the policy change request must be able to read the attestor resource. Note: this field must be non-empty when the evaluation_mode field specifies REQUIRE_ATTESTATION, otherwise it must be empty.", + "description": "Optional. The resource names of the attestors that must attest to a container image, in the format `projects/*/attestors/*`. Each attestor must exist before a policy can reference it. To add an attestor to a policy the principal issuing the policy change request must be able to read the attestor resource. Note: this field must be non-empty when the `evaluation_mode` field specifies `REQUIRE_ATTESTATION`, otherwise it must be empty.", "items": { "type": "string" }, @@ -609,6 +800,32 @@ }, "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", + "properties": { + "displayName": { + "description": "Optional. A user-provided name for this `AttestationAuthenticator`. This field has no effect on the policy evaluation behavior except to improve readability of messages in evaluation results.", + "type": "string" + }, + "pkixPublicKeySet": { + "$ref": "PkixPublicKeySet", + "description": "Optional. A set of raw PKIX SubjectPublicKeyInfo format public keys. If any public key in the set validates the attestation signature, then the signature is considered authenticated (i.e. any one key is sufficient to authenticate)." + } + }, + "type": "object" + }, "AttestationOccurrence": { "description": "Occurrence that represents a single \"attestation\". The authenticity of an attestation can be verified using the attached signature. If the verifier trusts the public key of the signer, then verifying the signature is sufficient to establish trust. In this circumstance, the authority to which this attestation is attached is primarily useful for lookup (how to find this attestation if you already know the authority and artifact to be verified) and intent (for which authority this attestation was intended to sign.", "id": "AttestationOccurrence", @@ -635,6 +852,20 @@ }, "type": "object" }, + "AttestationSource": { + "description": "Specifies the locations for fetching the provenance attestations.", + "id": "AttestationSource", + "properties": { + "containerAnalysisAttestationProjects": { + "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" + }, + "type": "array" + } + }, + "type": "object" + }, "Attestor": { "description": "An attestor that attests to container image artifacts. An existing attestor cannot be modified except where indicated.", "id": "Attestor", @@ -669,7 +900,7 @@ "id": "AttestorPublicKey", "properties": { "asciiArmoredPgpPublicKey": { - "description": "ASCII-armored representation of a PGP public key, as the entire output by the command `gpg --export --armor foo@example.com` (either LF or CRLF line endings). When using this field, `id` should be left blank. The BinAuthz API handlers will calculate the ID and fill it in automatically. BinAuthz computes this ID as the OpenPGP RFC4880 V4 fingerprint, represented as upper-case hex. If `id` is provided by the caller, it will be overwritten by the API-calculated ID.", + "description": "ASCII-armored representation of a PGP public key, as the entire output by the command `gpg --export --armor foo@example.com` (either LF or CRLF line endings). When using this field, `id` should be left blank. The Binary Authorization API handlers will calculate the ID and fill it in automatically. Binary Authorization computes this ID as the OpenPGP RFC4880 V4 fingerprint, represented as upper-case hex. If `id` is provided by the caller, it will be overwritten by the API-calculated ID.", "type": "string" }, "comment": { @@ -677,7 +908,7 @@ "type": "string" }, "id": { - "description": "The ID of this public key. Signatures verified by BinAuthz must include the ID of the public key that can be used to verify them, and that ID must match the contents of this field exactly. Additional restrictions on this field can be imposed based on which public key type is encapsulated. See the documentation on `public_key` cases below for details.", + "description": "The ID of this public key. Signatures verified by Binary Authorization must include the ID of the public key that can be used to verify them, and that ID must match the contents of this field exactly. Additional restrictions on this field can be imposed based on which public key type is encapsulated. See the documentation on `public_key` cases below for details.", "type": "string" }, "pkixPublicKey": { @@ -696,25 +927,240 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, + "Check": { + "description": "A single check to perform against a Pod. Checks are grouped into `CheckSet` objects, which are defined by the top-level policy.", + "id": "Check", + "properties": { + "alwaysDeny": { + "description": "Optional. A special-case check that always denies. Note that this still only applies when the scope of the `CheckSet` applies and the image isn't exempted by an image allowlist. This check is primarily useful for testing, or to set the default behavior for all unmatched scopes to \"deny\".", + "type": "boolean" + }, + "displayName": { + "description": "Optional. A user-provided name for this check. This field has no effect on the policy evaluation behavior except to improve readability of messages in evaluation results.", + "type": "string" + }, + "imageAllowlist": { + "$ref": "ImageAllowlist", + "description": "Optional. Images exempted from this check. If any of the patterns match the image url, the check will not be evaluated." + }, + "imageFreshnessCheck": { + "$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." + }, + "slsaCheck": { + "$ref": "SlsaCheck", + "description": "Optional. Require that an image was built by a trusted builder (such as Google Cloud Build), meets requirements for Supply chain Levels for Software Artifacts (SLSA), and was built from a trusted source code repostitory." + }, + "trustedDirectoryCheck": { + "$ref": "TrustedDirectoryCheck", + "description": "Optional. Require that an image lives in a trusted directory." + }, + "vulnerabilityCheck": { + "$ref": "VulnerabilityCheck", + "description": "Optional. Require that an image does not contain vulnerabilities that violate the configured rules, such as based on severity levels." + } + }, + "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", + "properties": { + "checks": { + "description": "Optional. The checks to apply. The ultimate result of evaluating the check set will be \"allow\" if and only if every check in `checks` evaluates to \"allow\". If `checks` is empty, the default behavior is \"always allow\".", + "items": { + "$ref": "Check" + }, + "type": "array" + }, + "displayName": { + "description": "Optional. A user-provided name for this `CheckSet`. This field has no effect on the policy evaluation behavior except to improve readability of messages in evaluation results.", + "type": "string" + }, + "imageAllowlist": { + "$ref": "ImageAllowlist", + "description": "Optional. Images exempted from this `CheckSet`. If any of the patterns match the image being evaluated, no checks in the `CheckSet` will be evaluated." + }, + "scope": { + "$ref": "Scope", + "description": "Optional. The scope to which this `CheckSet` applies. If unset or an empty string (the default), applies to all namespaces and service accounts. See the `Scope` message documentation for details on scoping rules." + } + }, + "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", @@ -738,8 +1184,26 @@ }, "type": "object" }, + "GkePolicy": { + "description": "A Binary Authorization policy for a GKE cluster. This is one type of policy that can occur as a `PlatformPolicy`.", + "id": "GkePolicy", + "properties": { + "checkSets": { + "description": "Optional. The `CheckSet` objects to apply, scoped by namespace or namespace and service account. Exactly one `CheckSet` will be evaluated for a given Pod (unless the list is empty, in which case the behavior is \"always allow\"). If multiple `CheckSet` objects have scopes that match the namespace and service account of the Pod being evaluated, only the `CheckSet` with the MOST SPECIFIC scope will match. `CheckSet` objects must be listed in order of decreasing specificity, i.e. if a scope matches a given service account (which must include the namespace), it must come before a `CheckSet` with a scope matching just that namespace. This property is enforced by server-side validation. The purpose of this restriction is to ensure that if more than one `CheckSet` matches a given Pod, the `CheckSet` that will be evaluated will always be the first in the list to match (because if any other matches, it must be less specific). If `check_sets` is empty, the default behavior is to allow all images. If `check_sets` is non-empty, the last `check_sets` entry must always be a `CheckSet` with no scope set, i.e. a catchall to handle any situation not caught by the preceding `CheckSet` objects.", + "items": { + "$ref": "CheckSet" + }, + "type": "array" + }, + "imageAllowlist": { + "$ref": "ImageAllowlist", + "description": "Optional. Images exempted from this policy. If any of the patterns match the image being evaluated, the rest of the policy will not be evaluated." + } + }, + "type": "object" + }, "IamPolicy": { - "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/).", + "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": "IamPolicy", "properties": { "bindings": { @@ -762,6 +1226,71 @@ }, "type": "object" }, + "ImageAllowlist": { + "description": "Images that are exempted from normal checks based on name pattern only.", + "id": "ImageAllowlist", + "properties": { + "allowPattern": { + "description": "Required. A disjunction of image patterns to allow. If any of these patterns match, then the image is considered exempted by this allowlist.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ImageFreshnessCheck": { + "description": "An image freshness check, which rejects images that were uploaded before the set number of days ago to the supported repositories.", + "id": "ImageFreshnessCheck", + "properties": { + "maxUploadAgeDays": { + "description": "Required. The max number of days that is allowed since the image was uploaded. Must be greater than zero.", + "format": "int32", + "type": "integer" + } + }, + "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": { @@ -773,7 +1302,7 @@ "type": "object" }, "ListAttestorsResponse": { - "description": "Response message for BinauthzManagementService.ListAttestors.", + "description": "Response message for BinauthzManagementServiceV1.ListAttestors.", "id": "ListAttestorsResponse", "properties": { "attestors": { @@ -790,10 +1319,32 @@ }, "type": "object" }, + "ListPlatformPoliciesResponse": { + "description": "Response message for PlatformPolicyManagementService.ListPlatformPolicies.", + "id": "ListPlatformPoliciesResponse", + "properties": { + "nextPageToken": { + "description": "A token to retrieve the next page of results. Pass this value in the ListPlatformPoliciesRequest.page_token field in the subsequent call to the `ListPlatformPolicies` method to retrieve the next page of results.", + "type": "string" + }, + "platformPolicies": { + "description": "The list of platform policies.", + "items": { + "$ref": "PlatformPolicy" + }, + "type": "array" + } + }, + "type": "object" + }, "PkixPublicKey": { - "description": "A public key in the PkixPublicKey format (see https://tools.ietf.org/html/rfc5280#section-4.1.2.7 for details). Public keys of this type are typically textually encoded using the PEM format.", + "description": "A public key in the PkixPublicKey [format](https://tools.ietf.org/html/rfc5280#section-4.1.2.7). Public keys of this type are typically textually encoded using the PEM format.", "id": "PkixPublicKey", "properties": { + "keyId": { + "description": "Optional. The ID of this public key. Signatures verified by Binary Authorization must include the ID of the public key that can be used to verify them, and that ID must match the contents of this field exactly. This may be explicitly provided by the caller, but it MUST be a valid RFC3986 URI. If `key_id` is left blank and this `PkixPublicKey` is not used in the context of a wrapper (see next paragraph), a default key ID will be computed based on the digest of the DER encoding of the public key. If this `PkixPublicKey` is used in the context of a wrapper that has its own notion of key ID (e.g. `AttestorPublicKey`), then this field can either: * Match that value exactly. * Or be left blank, in which case it behaves exactly as though it is equal to that wrapper value.", + "type": "string" + }, "publicKeyPem": { "description": "A PEM-encoded public key, as described in https://tools.ietf.org/html/rfc7468#section-13", "type": "string" @@ -847,6 +1398,88 @@ }, "type": "object" }, + "PkixPublicKeySet": { + "description": "A bundle of PKIX public keys, used to authenticate attestation signatures. Generally, a signature is considered to be authenticated by a `PkixPublicKeySet` if any of the public keys verify it (i.e. it is an \"OR\" of the keys).", + "id": "PkixPublicKeySet", + "properties": { + "pkixPublicKeys": { + "description": "Required. `pkix_public_keys` must have at least one entry.", + "items": { + "$ref": "PkixPublicKey" + }, + "type": "array" + } + }, + "type": "object" + }, + "PlatformPolicy": { + "description": "A Binary Authorization platform policy for deployments on various platforms.", + "id": "PlatformPolicy", + "properties": { + "description": { + "description": "Optional. A description comment about the policy.", + "type": "string" + }, + "gkePolicy": { + "$ref": "GkePolicy", + "description": "Optional. GKE platform-specific policy." + }, + "name": { + "description": "Output only. The relative resource name of the Binary Authorization platform policy, in the form of `projects/*/platforms/*/policies/*`.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Time when the policy was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "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", @@ -885,7 +1518,7 @@ "DISABLE" ], "enumDescriptions": [ - "Not specified: DISABLE is assumed.", + "Not specified: `DISABLE` is assumed.", "Enables system policy evaluation.", "Disables system policy evaluation." ], @@ -926,6 +1559,21 @@ }, "type": "object" }, + "Scope": { + "description": "A scope specifier for `CheckSet` objects.", + "id": "Scope", + "properties": { + "kubernetesNamespace": { + "description": "Optional. Matches all Kubernetes service accounts in the provided namespace, unless a more specific `kubernetes_service_account` scope already matched.", + "type": "string" + }, + "kubernetesServiceAccount": { + "description": "Optional. Matches a single Kubernetes service account, e.g. `my-namespace:my-service-account`. `kubernetes_service_account` scope is always more specific than `kubernetes_namespace` scope for the same namespace.", + "type": "string" + } + }, + "type": "object" + }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", @@ -953,6 +1601,95 @@ }, "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", + "properties": { + "attestationAuthenticators": { + "description": "Required. The authenticators required by this check to verify an attestation. Typically this is one or more PKIX public keys for signature verification. Only one authenticator needs to consider an attestation verified in order for an attestation to be considered fully authenticated. In otherwords, this list of authenticators is an \"OR\" of the authenticator results. At least one authenticator is required.", + "items": { + "$ref": "AttestationAuthenticator" + }, + "type": "array" + }, + "containerAnalysisAttestationProjects": { + "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" + }, + "type": "array" + } + }, + "type": "object" + }, + "SlsaCheck": { + "description": "A SLSA provenance attestation check, which ensures that images are built by a trusted builder using source code from its trusted repositories only.", + "id": "SlsaCheck", + "properties": { + "rules": { + "description": "Specifies a list of verification rules for the SLSA attestations. An image is considered compliant with the SlsaCheck if any of the rules are satisfied.", + "items": { + "$ref": "VerificationRule" + }, + "type": "array" + } + }, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", @@ -981,12 +1718,26 @@ }, "type": "object" }, + "TrustedDirectoryCheck": { + "description": "A trusted directory check, which rejects images that do not come from the set of user-configured trusted directories.", + "id": "TrustedDirectoryCheck", + "properties": { + "trustedDirPatterns": { + "description": "Required. List of trusted directory patterns. A pattern is in the form \"registry/path/to/directory\". The registry domain part is defined as two or more dot-separated words, e.g., `us.pkg.dev`, or `gcr.io`. Additionally, `*` can be used in three ways as wildcards: 1. leading `*` to match varying prefixes in registry subdomain (useful for location prefixes); 2. trailing `*` after registry/ to match varying endings; 3. trailing `**` after registry/ to match \"/\" as well. For example: -- `gcr.io/my-project/my-repo` is valid to match a single directory -- `*-docker.pkg.dev/my-project/my-repo` or `*.gcr.io/my-project` are valid to match varying prefixes -- `gcr.io/my-project/*` will match all direct directories in `my-project` -- `gcr.io/my-project/**` would match all directories in `my-project` -- `gcr.i*` is not allowed since the registry is not completely specified -- `sub*domain.gcr.io/nginx` is not valid because only leading `*` or trailing `*` are allowed. -- `*pkg.dev/my-project/my-repo` is not valid because leading `*` can only match subdomain -- `**-docker.pkg.dev` is not valid because one leading `*` is allowed, and that it cannot match `/`", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "UserOwnedGrafeasNote": { "description": "An user owned Grafeas note references a Grafeas Attestation.Authority Note created by the user.", "id": "UserOwnedGrafeasNote", "properties": { "delegationServiceAccountEmail": { - "description": "Output only. This field will contain the service account email address that this Attestor will use as the principal when querying Container Analysis. Attestor administrators must grant this service account the IAM role needed to read attestations from the note_reference in Container Analysis (`containeranalysis.notes.occurrences.viewer`). This email address is fixed for the lifetime of the Attestor, but callers should not make any other assumptions about the service account email; future versions may use an email based on a different naming pattern.", + "description": "Output only. This field will contain the service account email address that this attestor will use as the principal when querying Container Analysis. Attestor administrators must grant this service account the IAM role needed to read attestations from the note_reference in Container Analysis (`containeranalysis.notes.occurrences.viewer`). This email address is fixed for the lifetime of the attestor, but callers should not make any other assumptions about the service account email; future versions may use an email based on a different naming pattern.", "readOnly": true, "type": "string" }, @@ -1010,7 +1761,7 @@ "properties": { "attestation": { "$ref": "AttestationOccurrence", - "description": "Required. An AttestationOccurrence to be checked that it can be verified by the Attestor. It does not have to be an existing entity in Container Analysis. It must otherwise be a valid AttestationOccurrence." + "description": "Required. An AttestationOccurrence to be checked that it can be verified by the `Attestor`. It does not have to be an existing entity in Container Analysis. It must otherwise be a valid `AttestationOccurrence`." }, "occurrenceNote": { "description": "Required. The resource name of the Note to which the containing Occurrence is associated.", @@ -1047,6 +1798,116 @@ } }, "type": "object" + }, + "VerificationRule": { + "description": "Specifies verification rules for evaluating the SLSA attestations including: which builders to trust, where to fetch the SLSA attestations generated by those builders, and other builder-specific evaluation rules such as which source repositories are trusted. An image is considered verified by the rule if any of the fetched SLSA attestations is verified.", + "id": "VerificationRule", + "properties": { + "attestationSource": { + "$ref": "AttestationSource", + "description": "Specifies where to fetch the provenances attestations generated by the builder (group)." + }, + "configBasedBuildRequired": { + "description": "If true, require the image to be built from a top-level configuration. `trusted_source_repo_patterns` specifies the repositories containing this configuration.", + "type": "boolean" + }, + "trustedBuilder": { + "description": "Each verification rule is used for evaluation against provenances generated by a specific builder (group). For some of the builders, such as the Google Cloud Build, users don't need to explicitly specify their roots of trust in the policy since the evaluation service can automatically fetch them based on the builder (group).", + "enum": [ + "BUILDER_UNSPECIFIED", + "GOOGLE_CLOUD_BUILD" + ], + "enumDescriptions": [ + "Should never happen.", + "The whole Google Cloud Build (GCB) builder group, including all GCB builder types." + ], + "type": "string" + }, + "trustedSourceRepoPatterns": { + "description": "List of trusted source code repository URL patterns. These patterns match the full repository URL without its scheme (e.g. `https://`). The patterns must not include schemes. For example, the pattern `source.cloud.google.com/my-project/my-repo-name` matches the following URLs: - `source.cloud.google.com/my-project/my-repo-name` - `git+ssh://source.cloud.google.com/my-project/my-repo-name` - `https://source.cloud.google.com/my-project/my-repo-name` A pattern matches a URL either exactly or with `*` wildcards. `*` can be used in only two ways: 1. trailing `*` after hosturi/ to match varying endings; 2. trailing `**` after hosturi/ to match `/` as well. `*` and `**` can only be used as wildcards and can only occur at the end of the pattern after a `/`. (So it's not possible to match a URL that contains literal `*`.) For example: - `github.com/my-project/my-repo` is valid to match a single repo - `github.com/my-project/*` will match all direct repos in `my-project` - `github.com/**` matches all repos in GitHub", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "VulnerabilityCheck": { + "description": "An image vulnerability check, which rejects images that violate the configured vulnerability rules.", + "id": "VulnerabilityCheck", + "properties": { + "allowedCves": { + "description": "Optional. A list of specific CVEs to ignore even if the vulnerability level violates `maximumUnfixableSeverity` or `maximumFixableSeverity`. CVEs are listed in the format of Container Analysis note id. For example: - CVE-2021-20305 - CVE-2020-10543 The CVEs are applicable regardless of note provider project, e.g., an entry of `CVE-2021-20305` will allow vulnerabilities with a note name of either `projects/goog-vulnz/notes/CVE-2021-20305` or `projects/CUSTOM-PROJECT/notes/CVE-2021-20305`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "blockedCves": { + "description": "Optional. A list of specific CVEs to always raise warnings about even if the vulnerability level meets `maximumUnfixableSeverity` or `maximumFixableSeverity`. CVEs are listed in the format of Container Analysis note id. For example: - CVE-2021-20305 - CVE-2020-10543 The CVEs are applicable regardless of note provider project, e.g., an entry of `CVE-2021-20305` will block vulnerabilities with a note name of either `projects/goog-vulnz/notes/CVE-2021-20305` or `projects/CUSTOM-PROJECT/notes/CVE-2021-20305`.", + "items": { + "type": "string" + }, + "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. Maximum number of `container_analysis_vulnerability_projects` allowed in each `VulnerabilityCheck` is 10.", + "items": { + "type": "string" + }, + "type": "array" + }, + "maximumFixableSeverity": { + "description": "Required. The threshold for severity for which a fix is currently available. This field is required and must be set.", + "enum": [ + "MAXIMUM_ALLOWED_SEVERITY_UNSPECIFIED", + "BLOCK_ALL", + "MINIMAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL", + "ALLOW_ALL" + ], + "enumDescriptions": [ + "Not specified.", + "Block any vulnerability.", + "Allow only minimal severity.", + "Allow only low severity and lower.", + "Allow medium severity and lower.", + "Allow high severity and lower.", + "Allow critical severity and lower.", + "Allow all severity, even vulnerability with unspecified severity." + ], + "type": "string" + }, + "maximumUnfixableSeverity": { + "description": "Required. The threshold for severity for which a fix isn't currently available. This field is required and must be set.", + "enum": [ + "MAXIMUM_ALLOWED_SEVERITY_UNSPECIFIED", + "BLOCK_ALL", + "MINIMAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL", + "ALLOW_ALL" + ], + "enumDescriptions": [ + "Not specified.", + "Block any vulnerability.", + "Allow only minimal severity.", + "Allow only low severity and lower.", + "Allow medium severity and lower.", + "Allow high severity and lower.", + "Allow critical severity and lower.", + "Allow all severity, even vulnerability with unspecified severity." + ], + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/binaryauthorization/v1beta1/binaryauthorization-api.json b/etc/api/binaryauthorization/v1beta1/binaryauthorization-api.json index 5d0bcaf8e1..ce72469d61 100644 --- a/etc/api/binaryauthorization/v1beta1/binaryauthorization-api.json +++ b/etc/api/binaryauthorization/v1beta1/binaryauthorization-api.json @@ -399,7 +399,7 @@ ] }, "validateAttestationOccurrence": { - "description": "Returns whether the given Attestation for the given image URI was signed by the given Attestor", + "description": "Returns whether the given `Attestation` for the given image URI was signed by the given `Attestor`", "flatPath": "v1beta1/projects/{projectsId}/attestors/{attestorsId}:validateAttestationOccurrence", "httpMethod": "POST", "id": "binaryauthorization.projects.attestors.validateAttestationOccurrence", @@ -551,7 +551,7 @@ } } }, - "revision": "20230113", + "revision": "20240223", "rootUrl": "https://binaryauthorization.googleapis.com/", "schemas": { "AdmissionRule": { @@ -696,14 +696,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -739,7 +739,7 @@ "type": "object" }, "IamPolicy": { - "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/).", + "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": "IamPolicy", "properties": { "bindings": { @@ -1010,7 +1010,7 @@ "properties": { "attestation": { "$ref": "AttestationOccurrence", - "description": "Required. An AttestationOccurrence to be checked that it can be verified by the Attestor. It does not have to be an existing entity in Container Analysis. It must otherwise be a valid AttestationOccurrence." + "description": "Required. An AttestationOccurrence to be checked that it can be verified by the `Attestor`. It does not have to be an existing entity in Container Analysis. It must otherwise be a valid `AttestationOccurrence`." }, "occurrenceNote": { "description": "Required. The resource name of the Note to which the containing Occurrence is associated.", diff --git a/etc/api/blogger/v2/blogger-api.json b/etc/api/blogger/v2/blogger-api.json index dc059bfef0..2b325cdf56 100644 --- a/etc/api/blogger/v2/blogger-api.json +++ b/etc/api/blogger/v2/blogger-api.json @@ -401,7 +401,7 @@ } } }, - "revision": "20230124", + "revision": "20240304", "rootUrl": "https://blogger.googleapis.com/", "schemas": { "Blog": { diff --git a/etc/api/blogger/v3/blogger-api.json b/etc/api/blogger/v3/blogger-api.json index ae5b60eca0..4859a752af 100644 --- a/etc/api/blogger/v3/blogger-api.json +++ b/etc/api/blogger/v3/blogger-api.json @@ -1710,7 +1710,7 @@ } } }, - "revision": "20230124", + "revision": "20240304", "rootUrl": "https://blogger.googleapis.com/", "schemas": { "Blog": { diff --git a/etc/api/books/v1/books-api.json b/etc/api/books/v1/books-api.json index ae39413be4..6d2ec75649 100644 --- a/etc/api/books/v1/books-api.json +++ b/etc/api/books/v1/books-api.json @@ -14,6 +14,7 @@ "description": "The Google Books API allows clients to access the Google Books repository.", "discoveryVersion": "v1", "documentationLink": "https://code.google.com/apis/books/docs/v1/getting_started.html", + "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" @@ -1240,6 +1241,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", @@ -2671,7 +2677,7 @@ } } }, - "revision": "20230117", + "revision": "20240222", "rootUrl": "https://books.googleapis.com/", "schemas": { "Annotation": { diff --git a/etc/api/calendar/v3/calendar-api.json b/etc/api/calendar/v3/calendar-api.json index cc838c64c5..9ca0193f05 100644 --- a/etc/api/calendar/v3/calendar-api.json +++ b/etc/api/calendar/v3/calendar-api.json @@ -1077,7 +1077,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" }, @@ -1087,6 +1087,24 @@ "required": true, "type": "string" }, + "eventTypes": { + "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" + }, "iCalUID": { "description": "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 its iCalendar ID.", "location": "query", @@ -1132,7 +1150,7 @@ "type": "string" }, "q": { - "description": "Free text search terms to find events that match these terms in the following fields: summary, description, location, attendee's displayName, attendee's email. 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" }, @@ -1158,7 +1176,7 @@ "type": "boolean" }, "syncToken": { - "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All events deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False.\nThere are several query parameters that cannot be specified together with nextSyncToken to ensure consistency of the client state.\n\nThese are: \n- iCalUID \n- orderBy \n- privateExtendedProperty \n- q \n- sharedExtendedProperty \n- timeMin \n- timeMax \n- updatedMin If the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", + "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All events deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False.\nThere are several query parameters that cannot be specified together with nextSyncToken to ensure consistency of the client state.\n\nThese are: \n- iCalUID \n- orderBy \n- privateExtendedProperty \n- q \n- sharedExtendedProperty \n- timeMin \n- timeMax \n- updatedMin All other query parameters should be the same as for the initial synchronization to avoid undefined behavior. If the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", "location": "query", "type": "string" }, @@ -1199,7 +1217,7 @@ "supportsSubscription": true }, "move": { - "description": "Moves an event to another calendar, i.e. changes an event's organizer.", + "description": "Moves an event to another calendar, i.e. changes an event's organizer. Note that only default events can be moved; outOfOffice, focusTime and workingLocation events cannot be moved.", "httpMethod": "POST", "id": "calendar.events.move", "parameterOrder": [ @@ -1474,7 +1492,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" }, @@ -1484,6 +1502,24 @@ "required": true, "type": "string" }, + "eventTypes": { + "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" + }, "iCalUID": { "description": "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 its iCalendar ID.", "location": "query", @@ -1529,7 +1565,7 @@ "type": "string" }, "q": { - "description": "Free text search terms to find events that match these terms in the following fields: summary, description, location, attendee's displayName, attendee's email. 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" }, @@ -1555,7 +1591,7 @@ "type": "boolean" }, "syncToken": { - "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All events deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False.\nThere are several query parameters that cannot be specified together with nextSyncToken to ensure consistency of the client state.\n\nThese are: \n- iCalUID \n- orderBy \n- privateExtendedProperty \n- q \n- sharedExtendedProperty \n- timeMin \n- timeMax \n- updatedMin If the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", + "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All events deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False.\nThere are several query parameters that cannot be specified together with nextSyncToken to ensure consistency of the client state.\n\nThese are: \n- iCalUID \n- orderBy \n- privateExtendedProperty \n- q \n- sharedExtendedProperty \n- timeMin \n- timeMax \n- updatedMin All other query parameters should be the same as for the initial synchronization to avoid undefined behavior. If the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", "location": "query", "type": "string" }, @@ -1723,7 +1759,7 @@ } } }, - "revision": "20221229", + "revision": "20240223", "rootUrl": "https://www.googleapis.com/", "schemas": { "Acl": { @@ -2380,7 +2416,7 @@ }, "eventType": { "default": "default", - "description": "Specific type of the event. Read-only. Possible values are: \n- \"default\" - A regular event or not further specified. \n- \"outOfOffice\" - An out-of-office event. \n- \"focusTime\" - A focus-time event.", + "description": "Specific type of the event. This cannot be modified after the event is created. Possible values are: \n- \"default\" - A regular event or not further specified. \n- \"outOfOffice\" - An out-of-office event. \n- \"focusTime\" - A focus-time event. \n- \"workingLocation\" - A working location event. Currently, only \"default \" and \"workingLocation\" events can be created using the API. Extended support for other event types will be made available in later releases.", "type": "string" }, "extendedProperties": { @@ -2405,6 +2441,10 @@ }, "type": "object" }, + "focusTimeProperties": { + "$ref": "EventFocusTimeProperties", + "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.", "properties": { @@ -2526,6 +2566,10 @@ "$ref": "EventDateTime", "description": "For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable." }, + "outOfOfficeProperties": { + "$ref": "EventOutOfOfficeProperties", + "description": "Out of office event data. Used if eventType is outOfOffice." + }, "privateCopy": { "default": "false", "description": "If set to True, Event propagation is disabled. Note that it is not the same thing as Private event properties. Optional. Immutable. The default is False.", @@ -2611,6 +2655,10 @@ "default": "default", "description": "Visibility of the event. Optional. Possible values are: \n- \"default\" - Uses the default visibility for events on the calendar. This is the default value. \n- \"public\" - The event is public and event details are visible to all readers of the calendar. \n- \"private\" - The event is private and only event attendees may view event details. \n- \"confidential\" - The event is private. This value is provided for compatibility reasons.", "type": "string" + }, + "workingLocationProperties": { + "$ref": "EventWorkingLocationProperties", + "description": "Working location event data." } }, "type": "object" @@ -2712,6 +2760,38 @@ }, "type": "object" }, + "EventFocusTimeProperties": { + "id": "EventFocusTimeProperties", + "properties": { + "autoDeclineMode": { + "description": "Whether to decline meeting invitations which overlap Focus Time events. Valid values are declineNone, meaning that no meeting invitations are declined; declineAllConflictingInvitations, meaning that all conflicting meeting invitations that conflict with the event are declined; and declineOnlyNewConflictingInvitations, meaning that only new conflicting meeting invitations which arrive while the Focus Time event is present are to be declined.", + "type": "string" + }, + "chatStatus": { + "description": "The status to mark the user in Chat and related products. This can be available or doNotDisturb.", + "type": "string" + }, + "declineMessage": { + "description": "Response message to set if an existing event or new invitation is automatically declined by Calendar.", + "type": "string" + } + }, + "type": "object" + }, + "EventOutOfOfficeProperties": { + "id": "EventOutOfOfficeProperties", + "properties": { + "autoDeclineMode": { + "description": "Whether to decline meeting invitations which overlap Out of office events. Valid values are declineNone, meaning that no meeting invitations are declined; declineAllConflictingInvitations, meaning that all conflicting meeting invitations that conflict with the event are declined; and declineOnlyNewConflictingInvitations, meaning that only new conflicting meeting invitations which arrive while the Out of office event is present are to be declined.", + "type": "string" + }, + "declineMessage": { + "description": "Response message to set if an existing event or new invitation is automatically declined by Calendar.", + "type": "string" + } + }, + "type": "object" + }, "EventReminder": { "id": "EventReminder", "properties": { @@ -2727,6 +2807,56 @@ }, "type": "object" }, + "EventWorkingLocationProperties": { + "id": "EventWorkingLocationProperties", + "properties": { + "customLocation": { + "description": "If present, specifies that the user is working from a custom location.", + "properties": { + "label": { + "description": "An optional extra label for additional information.", + "type": "string" + } + }, + "type": "object" + }, + "homeOffice": { + "description": "If present, specifies that the user is working at home.", + "type": "any" + }, + "officeLocation": { + "description": "If present, specifies that the user is working from an office.", + "properties": { + "buildingId": { + "description": "An optional building identifier. This should reference a building ID in the organization's Resources database.", + "type": "string" + }, + "deskId": { + "description": "An optional desk identifier.", + "type": "string" + }, + "floorId": { + "description": "An optional floor identifier.", + "type": "string" + }, + "floorSectionId": { + "description": "An optional floor section identifier.", + "type": "string" + }, + "label": { + "description": "The office name that's displayed in Calendar Web and Mobile clients. We recommend you reference a building name in the organization's Resources database.", + "type": "string" + } + }, + "type": "object" + }, + "type": { + "description": "Type of the working location. Possible values are: \n- \"homeOffice\" - The user is working at home. \n- \"officeLocation\" - The user is working from an office. \n- \"customLocation\" - The user is working from a custom location. Any details are specified in a sub-field of the specified name, but this field may be missing if empty. Any other fields are ignored.\nRequired when adding working location properties.", + "type": "string" + } + }, + "type": "object" + }, "Events": { "id": "Events", "properties": { diff --git a/etc/api/certificatemanager/v1/certificatemanager-api.json b/etc/api/certificatemanager/v1/certificatemanager-api.json index c88c94b5fd..af6d739ce3 100644 --- a/etc/api/certificatemanager/v1/certificatemanager-api.json +++ b/etc/api/certificatemanager/v1/certificatemanager-api.json @@ -1061,7 +1061,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "certificatemanager.projects.locations.operations.list", @@ -1102,13 +1102,185 @@ ] } } + }, + "trustConfigs": { + "methods": { + "create": { + "description": "Creates a new TrustConfig in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/trustConfigs", + "httpMethod": "POST", + "id": "certificatemanager.projects.locations.trustConfigs.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the TrustConfig. Must be in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "trustConfigId": { + "description": "Required. A user-provided name of the TrustConfig. Must match the regexp `[a-z0-9-]{1,63}`.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/trustConfigs", + "request": { + "$ref": "TrustConfig" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single TrustConfig.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/trustConfigs/{trustConfigsId}", + "httpMethod": "DELETE", + "id": "certificatemanager.projects.locations.trustConfigs.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "The current etag of the TrustConfig. If an etag is provided and does not match the current etag of the resource, deletion will be blocked and an ABORTED error will be returned.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. A name of the TrustConfig to delete. Must be in the format `projects/*/locations/*/trustConfigs/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/trustConfigs/[^/]+$", + "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 TrustConfig.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/trustConfigs/{trustConfigsId}", + "httpMethod": "GET", + "id": "certificatemanager.projects.locations.trustConfigs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the TrustConfig to describe. Must be in the format `projects/*/locations/*/trustConfigs/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/trustConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "TrustConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists TrustConfigs in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/trustConfigs", + "httpMethod": "GET", + "id": "certificatemanager.projects.locations.trustConfigs.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Filter expression to restrict the TrustConfigs returned.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "A list of TrustConfig field names used to specify the order of the returned results. The default sorting order is ascending. To specify descending order for a field, add a suffix \" desc\".", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Maximum number of TrustConfigs to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListTrustConfigsResponse`. Indicates that this is a continuation of a prior `ListTrustConfigs` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project and location from which the TrustConfigs should be listed, specified in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/trustConfigs", + "response": { + "$ref": "ListTrustConfigsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a TrustConfig.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/trustConfigs/{trustConfigsId}", + "httpMethod": "PATCH", + "id": "certificatemanager.projects.locations.trustConfigs.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "A user-defined name of the trust config. TrustConfig names must be unique globally and match pattern `projects/*/locations/*/trustConfigs/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/trustConfigs/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "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" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "TrustConfig" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } } } } }, - "revision": "20230104", + "revision": "20240221", "rootUrl": "https://certificatemanager.googleapis.com/", "schemas": { "AuthorizationAttemptInfo": { @@ -1133,7 +1305,7 @@ "RATE_LIMITED" ], "enumDescriptions": [ - "", + "FailureReason is unspecified.", "There was a problem with the user's DNS or load balancer configuration for this domain.", "Certificate issuance forbidden by an explicit CAA record for the domain or a failure to check CAA records for the domain.", "Reached a CA or internal rate-limit for the domain, e.g. for certificates per top-level private domain." @@ -1150,8 +1322,8 @@ "FAILED" ], "enumDescriptions": [ - "", - "Certificate provisioning for this domain is under way. GCP will attempt to authorize the domain.", + "State is unspecified.", + "Certificate provisioning for this domain is under way. Google Cloud will attempt to authorize the domain.", "A managed certificate can be provisioned, no issues for this domain.", "Attempt to authorize the domain failed. This prevents the Managed Certificate from being issued. See `failure_reason` and `details` fields for more information." ], @@ -1219,11 +1391,13 @@ "description": "Immutable. The scope of the certificate.", "enum": [ "DEFAULT", - "EDGE_CACHE" + "EDGE_CACHE", + "ALL_REGIONS" ], "enumDescriptions": [ "Certificates with default scope are served from core Google data centers. If unsure, choose this option.", - "Certificates with scope EDGE_CACHE are special-purposed certificates, served from non-core Google data centers." + "Certificates with scope EDGE_CACHE are special-purposed certificates, served from Edge Points of Presence. See https://cloud.google.com/vpc/docs/edge-locations.", + "Certificates with ALL_REGIONS scope are served from all Google Cloud regions. See https://cloud.google.com/compute/docs/regions-zones." ], "type": "string" }, @@ -1371,7 +1545,7 @@ "id": "CertificateMapEntry", "properties": { "certificates": { - "description": "A set of Certificates defines for the given `hostname`. There can be defined up to fifteen certificates in each Certificate Map Entry. Each certificate must match pattern `projects/*/locations/*/certificates/*`.", + "description": "A set of Certificates defines for the given `hostname`. There can be defined up to four certificates in each Certificate Map Entry. Each certificate must match pattern `projects/*/locations/*/certificates/*`.", "items": { "type": "string" }, @@ -1472,6 +1646,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", @@ -1534,6 +1722,17 @@ }, "type": "object" }, + "IntermediateCA": { + "description": "Defines an intermediate CA.", + "id": "IntermediateCA", + "properties": { + "pemCertificate": { + "description": "PEM intermediate certificate used for building up paths for validation. Each certificate provided in PEM format may occupy up to 5kB.", + "type": "string" + } + }, + "type": "object" + }, "IpConfig": { "description": "Defines IP configuration where this Certificate Map is serving.", "id": "IpConfig", @@ -1716,8 +1915,33 @@ }, "type": "object" }, + "ListTrustConfigsResponse": { + "description": "Response for the `ListTrustConfigs` method.", + "id": "ListTrustConfigsResponse", + "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" + }, + "trustConfigs": { + "description": "A list of TrustConfigs for the parent resource.", + "items": { + "$ref": "TrustConfig" + }, + "type": "array" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1794,7 +2018,7 @@ "ACTIVE" ], "enumDescriptions": [ - "", + "State is unspecified.", "Certificate Manager attempts to provision or renew the certificate. If the process takes longer than expected, consult the `provisioning_issue` field.", "Multiple certificate provisioning attempts failed and Certificate Manager gave up. To try again, delete and create a new managed Certificate resource. For details see the `provisioning_issue` field.", "The certificate management is working, and a certificate has been provisioned." @@ -1834,7 +2058,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" } }, @@ -1894,7 +2118,7 @@ "RATE_LIMITED" ], "enumDescriptions": [ - "", + "Reason is unspecified.", "Certificate provisioning failed due to an issue with one or more of the domains on the certificate. For details of which domains failed, consult the `authorization_attempt_info` field.", "Exceeded Certificate Authority quotas or internal rate limits of the system. Provisioning may take longer to complete." ], @@ -1945,6 +2169,83 @@ } }, "type": "object" + }, + "TrustAnchor": { + "description": "Defines a trust anchor.", + "id": "TrustAnchor", + "properties": { + "pemCertificate": { + "description": "PEM root certificate of the PKI used for validation. Each certificate provided in PEM format may occupy up to 5kB.", + "type": "string" + } + }, + "type": "object" + }, + "TrustConfig": { + "description": "Defines a trust config.", + "id": "TrustConfig", + "properties": { + "createTime": { + "description": "Output only. The creation timestamp of a TrustConfig.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "One or more paragraphs of text description of a TrustConfig.", + "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.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Set of labels associated with a TrustConfig.", + "type": "object" + }, + "name": { + "description": "A user-defined name of the trust config. TrustConfig names must be unique globally and match pattern `projects/*/locations/*/trustConfigs/*`.", + "type": "string" + }, + "trustStores": { + "description": "Set of trust stores to perform validation against. This field is supported when TrustConfig is configured with Load Balancers, currently not supported for SPIFFE certificate validation. Only one TrustStore specified is currently allowed.", + "items": { + "$ref": "TrustStore" + }, + "type": "array" + }, + "updateTime": { + "description": "Output only. The last update timestamp of a TrustConfig.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "TrustStore": { + "description": "Defines a trust store.", + "id": "TrustStore", + "properties": { + "intermediateCas": { + "description": "Set of intermediate CA certificates used for the path building phase of chain validation. The field is currently not supported if TrustConfig is used for the workload certificate feature.", + "items": { + "$ref": "IntermediateCA" + }, + "type": "array" + }, + "trustAnchors": { + "description": "List of Trust Anchors to be used while performing validation against a given TrustStore.", + "items": { + "$ref": "TrustAnchor" + }, + "type": "array" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/chat/v1/chat-api.json b/etc/api/chat/v1/chat-api.json index a2714df7c5..0521a46a48 100644 --- a/etc/api/chat/v1/chat-api.json +++ b/etc/api/chat/v1/chat-api.json @@ -2,9 +2,21 @@ "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.delete": { + "description": "Delete conversations and spaces & remove access to associated files in Google Chat" + }, + "https://www.googleapis.com/auth/chat.import": { + "description": "Import spaces, messages, and memberships into Google Chat." + }, "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.app": { + "description": "Add and remove itself from conversations in Google Chat" + }, "https://www.googleapis.com/auth/chat.memberships.readonly": { "description": "View members in Google Chat conversations." }, @@ -14,11 +26,23 @@ "https://www.googleapis.com/auth/chat.messages.create": { "description": "Compose and send messages in Google Chat" }, + "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.create": { + "description": "Add 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 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" }, "https://www.googleapis.com/auth/chat.spaces.readonly": { "description": "View chat and spaces in Google Chat" @@ -30,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", "fullyEncodeReservedExpansion": true, @@ -147,17 +171,168 @@ "$ref": "Media" }, "scopes": [ + "https://www.googleapis.com/auth/chat.bot", "https://www.googleapis.com/auth/chat.messages", "https://www.googleapis.com/auth/chat.messages.readonly" ], "supportsMediaDownload": true + }, + "upload": { + "description": "Uploads an attachment. For an example, see [Upload media as a file attachment](https://developers.google.com/chat/api/guides/v1/media-and-attachments/upload). Requires user [authentication](https://developers.google.com/chat/api/guides/auth/users). You can upload attachments up to 200 MB. Certain file types aren't supported. For details, see [File types blocked by Google Chat](https://support.google.com/chat/answer/7651457?&co=GENIE.Platform%3DDesktop#File%20types%20blocked%20in%20Google%20Chat).", + "flatPath": "v1/spaces/{spacesId}/attachments:upload", + "httpMethod": "POST", + "id": "chat.media.upload", + "mediaUpload": { + "accept": [ + "*/*" + ], + "maxSize": "209715200", + "protocols": { + "resumable": { + "multipart": true, + "path": "/resumable/upload/v1/{+parent}/attachments:upload" + }, + "simple": { + "multipart": true, + "path": "/upload/v1/{+parent}/attachments:upload" + } + } + }, + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Resource name of the Chat space in which the attachment is uploaded. Format \"spaces/{space}\".", + "location": "path", + "pattern": "^spaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/attachments:upload", + "request": { + "$ref": "UploadAttachmentRequest" + }, + "response": { + "$ref": "UploadAttachmentResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.import", + "https://www.googleapis.com/auth/chat.messages", + "https://www.googleapis.com/auth/chat.messages.create" + ], + "supportsMediaUpload": true } } }, "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", + "httpMethod": "POST", + "id": "chat.spaces.create", + "parameterOrder": [], + "parameters": { + "requestId": { + "description": "Optional. A unique identifier for this request. A random UUID is recommended. Specifying an existing request ID returns the space created with that ID instead of creating a new space. Specifying an existing request ID from the same Chat app with a different authenticated user returns an error.", + "location": "query", + "type": "string" + } + }, + "path": "v1/spaces", + "request": { + "$ref": "Space" + }, + "response": { + "$ref": "Space" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.import", + "https://www.googleapis.com/auth/chat.spaces", + "https://www.googleapis.com/auth/chat.spaces.create" + ] + }, + "delete": { + "description": "Deletes a named space. Always performs a cascading delete, which means that the space's child resources\u2014like messages posted in the space and memberships in the space\u2014are also deleted. For an example, see [Delete a space](https://developers.google.com/chat/api/guides/v1/spaces/delete). Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users) from a user who has permission to delete the space.", + "flatPath": "v1/spaces/{spacesId}", + "httpMethod": "DELETE", + "id": "chat.spaces.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the space to delete. Format: `spaces/{space}`", + "location": "path", + "pattern": "^spaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.delete", + "https://www.googleapis.com/auth/chat.import" + ] + }, + "findDirectMessage": { + "description": "Returns the existing direct message with the specified user. If no direct message space is found, returns a `404 NOT_FOUND` error. For an example, see [Find a direct message](/chat/api/guides/v1/spaces/find-direct-message). With [user authentication](https://developers.google.com/chat/api/guides/auth/users), returns the direct message space between the specified user and the authenticated user. With [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts), returns the direct message space between the specified user and the calling Chat app. Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users) or [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts).", + "flatPath": "v1/spaces:findDirectMessage", + "httpMethod": "GET", + "id": "chat.spaces.findDirectMessage", + "parameterOrder": [], + "parameters": { + "name": { + "description": "Required. Resource name of the user to find direct message with. Format: `users/{user}`, where `{user}` is either the `id` for the [person](https://developers.google.com/people/api/rest/v1/people) from the People API, or the `id` for the [user](https://developers.google.com/admin-sdk/directory/reference/rest/v1/users) in the Directory API. For example, if the People API profile ID is `123456789`, you can find a direct message with that person by using `users/123456789` as the `name`. When [authenticated as a user](https://developers.google.com/chat/api/guides/auth/users), you can use the email as an alias for `{user}`. For example, `users/example@gmail.com` where `example@gmail.com` is the email of the Google Chat user.", + "location": "query", + "type": "string" + } + }, + "path": "v1/spaces:findDirectMessage", + "response": { + "$ref": "Space" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.bot", + "https://www.googleapis.com/auth/chat.spaces", + "https://www.googleapis.com/auth/chat.spaces.readonly" + ] + }, "get": { - "description": "Returns a space. Requires [authentication](https://developers.google.com/chat/api/guides/auth). Fully supports [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). Supports [user authentication](https://developers.google.com/chat/api/guides/auth/users) as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. [User authentication](https://developers.google.com/chat/api/guides/auth/users) requires the `chat.spaces` or `chat.spaces.readonly` authorization scope.", + "description": "Returns details about a space. For an example, see [Get a space](https://developers.google.com/chat/api/guides/v1/spaces/get). Requires [authentication](https://developers.google.com/chat/api/guides/auth). Supports [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [user authentication](https://developers.google.com/chat/api/guides/auth/users).", "flatPath": "v1/spaces/{spacesId}", "httpMethod": "GET", "id": "chat.spaces.get", @@ -166,7 +341,7 @@ ], "parameters": { "name": { - "description": "Required. Resource name of the space, in the form \"spaces/*\". Format: spaces/{space}", + "description": "Required. Resource name of the space, in the form \"spaces/*\". Format: `spaces/{space}`", "location": "path", "pattern": "^spaces/[^/]+$", "required": true, @@ -178,25 +353,31 @@ "$ref": "Space" }, "scopes": [ + "https://www.googleapis.com/auth/chat.bot", "https://www.googleapis.com/auth/chat.spaces", "https://www.googleapis.com/auth/chat.spaces.readonly" ] }, "list": { - "description": "Lists spaces the caller is a member of. Requires [authentication](https://developers.google.com/chat/api/guides/auth). Fully supports [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). Supports [user authentication](https://developers.google.com/chat/api/guides/auth/users) as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. [User authentication](https://developers.google.com/chat/api/guides/auth/users) requires the `chat.spaces` or `chat.spaces.readonly` authorization scope. Lists spaces visible to the caller or authenticated user. Group chats and DMs aren't listed until the first message is sent.", + "description": "Lists spaces the caller is a member of. Group chats and DMs aren't listed until the first message is sent. For an example, see [List spaces](https://developers.google.com/chat/api/guides/v1/spaces/list). Requires [authentication](https://developers.google.com/chat/api/guides/auth). Supports [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [user authentication](https://developers.google.com/chat/api/guides/auth/users). Lists spaces visible to the caller or authenticated user. Group chats and DMs aren't listed until the first message is sent.", "flatPath": "v1/spaces", "httpMethod": "GET", "id": "chat.spaces.list", "parameterOrder": [], "parameters": { + "filter": { + "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" + }, "pageSize": { - "description": "Optional. The maximum number of spaces to return. The service may return fewer than this value. If unspecified, at most 100 spaces are returned. The maximum value is 1000; values above 1000 are coerced to 1000. Negative values return an INVALID_ARGUMENT error.", + "description": "Optional. The maximum number of spaces to return. The service might return fewer than this value. If unspecified, at most 100 spaces are returned. The maximum value is 1,000. If you use a value more than 1,000, it's automatically changed to 1,000. Negative values return an `INVALID_ARGUMENT` error.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Optional. A page token, received from a previous list spaces call. Provide this to retrieve the subsequent page. When paginating, the filter value should match the call that provided the page token. Passing a different value may lead to unexpected results.", + "description": "Optional. A page token, received from a previous list spaces 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 may lead to unexpected results.", "location": "query", "type": "string" } @@ -206,25 +387,110 @@ "$ref": "ListSpacesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/chat.bot", "https://www.googleapis.com/auth/chat.spaces", "https://www.googleapis.com/auth/chat.spaces.readonly" ] + }, + "patch": { + "description": "Updates a space. For an example, see [Update a space](https://developers.google.com/chat/api/guides/v1/spaces/update). If you're updating the `displayName` field and receive the error message `ALREADY_EXISTS`, try a different display name.. An existing space within the Google Workspace organization might already use this display name. Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users).", + "flatPath": "v1/spaces/{spacesId}", + "httpMethod": "PATCH", + "id": "chat.spaces.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Resource name of the space. Format: `spaces/{space}`", + "location": "path", + "pattern": "^spaces/[^/]+$", + "required": true, + "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.) - 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" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Space" + }, + "response": { + "$ref": "Space" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.import", + "https://www.googleapis.com/auth/chat.spaces" + ] + }, + "setup": { + "description": "Creates a space and adds specified users to it. The calling user is automatically added to the space, and shouldn't be specified as a membership in the request. For an example, see [Set up a space](https://developers.google.com/chat/api/guides/v1/spaces/set-up). To specify the human members to add, add memberships with the appropriate `member.name` in the `SetUpSpaceRequest`. To add a human user, use `users/{user}`, where `{user}` can be the email address for the user. For users in the same Workspace organization `{user}` can also be the `id` for the person from the People API, or the `id` for the user in the Directory API. For example, if the People API Person profile ID for `user@example.com` is `123456789`, you can add the user to the space by setting the `membership.member.name` to `users/user@example.com` or `users/123456789`. For a space or group chat, if the caller blocks or is blocked by some members, then those members aren't added to the created space. To create a direct message (DM) between the calling user and another human user, specify exactly one membership to represent the human user. If one user blocks the other, the request fails and the DM isn't created. To create a DM between the calling user and the calling app, set `Space.singleUserBotDm` to `true` and don't specify any memberships. You can only use this method to set up a DM with the calling app. To add the calling app as a member of a space or an existing DM between two human users, see [create a membership](https://developers.google.com/chat/api/guides/v1/members/create). If a DM already exists between two users, even when one user blocks the other at the time a request is made, then the existing DM is returned. Spaces with threaded replies aren't supported. If you receive the error message `ALREADY_EXISTS` when setting up 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:setup", + "httpMethod": "POST", + "id": "chat.spaces.setup", + "parameterOrder": [], + "parameters": {}, + "path": "v1/spaces:setup", + "request": { + "$ref": "SetUpSpaceRequest" + }, + "response": { + "$ref": "Space" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.spaces", + "https://www.googleapis.com/auth/chat.spaces.create" + ] } }, "resources": { "members": { "methods": { - "get": { - "description": "Returns a membership. Requires [authentication](https://developers.google.com/chat/api/guides/auth/). Fully supports [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). Supports [user authentication](https://developers.google.com/chat/api/guides/auth/users) as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. [User authentication](https://developers.google.com/chat/api/guides/auth/users) requires the `chat.memberships` or `chat.memberships.readonly` authorization scope.", + "create": { + "description": "Creates a human membership or app membership for the calling app. Creating memberships for other apps isn't supported. For an example, see [ Create a membership](https://developers.google.com/chat/api/guides/v1/members/create). When creating a membership, if the specified member has their auto-accept policy turned off, then they're invited, and must accept the space invitation before joining. Otherwise, creating a membership adds the member directly to the specified space. Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users). To specify the member to add, set the `membership.member.name` in the `CreateMembershipRequest`: - To add the calling app to a space or a direct message between two human users, use `users/app`. Unable to add other apps to the space. - To add a human user, use `users/{user}`, where `{user}` can be the email address for the user. For users in the same Workspace organization `{user}` can also be the `id` for the person from the People API, or the `id` for the user in the Directory API. For example, if the People API Person profile ID for `user@example.com` is `123456789`, you can add the user to the space by setting the `membership.member.name` to `users/user@example.com` or `users/123456789`.", + "flatPath": "v1/spaces/{spacesId}/members", + "httpMethod": "POST", + "id": "chat.spaces.members.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The resource name of the space for which to create the membership. Format: spaces/{space}", + "location": "path", + "pattern": "^spaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/members", + "request": { + "$ref": "Membership" + }, + "response": { + "$ref": "Membership" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.import", + "https://www.googleapis.com/auth/chat.memberships", + "https://www.googleapis.com/auth/chat.memberships.app" + ] + }, + "delete": { + "description": "Deletes a membership. For an example, see [Delete a membership](https://developers.google.com/chat/api/guides/v1/members/delete). Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users).", "flatPath": "v1/spaces/{spacesId}/members/{membersId}", - "httpMethod": "GET", - "id": "chat.spaces.members.get", + "httpMethod": "DELETE", + "id": "chat.spaces.members.delete", "parameterOrder": [ "name" ], "parameters": { "name": { - "description": "Required. Resource name of the membership to retrieve. Format: spaces/{space}/members/{member}", + "description": "Required. Resource name of the membership to delete. Chat apps can delete human users' or their own memberships. Chat apps can't delete other apps' memberships. When deleting a human membership, requires the `chat.memberships` scope and `spaces/{space}/members/{member}` format. You can use the email as an alias for `{member}`. For example, `spaces/{space}/members/example@gmail.com` where `example@gmail.com` is the email of the Google Chat user. When deleting an app membership, requires the `chat.memberships.app` scope and `spaces/{space}/members/app` format. Format: `spaces/{space}/members/{member}` or `spaces/{space}/members/app`.", "location": "path", "pattern": "^spaces/[^/]+/members/[^/]+$", "required": true, @@ -236,12 +502,40 @@ "$ref": "Membership" }, "scopes": [ + "https://www.googleapis.com/auth/chat.import", + "https://www.googleapis.com/auth/chat.memberships", + "https://www.googleapis.com/auth/chat.memberships.app" + ] + }, + "get": { + "description": "Returns details about a membership. For an example, see [Get a membership](https://developers.google.com/chat/api/guides/v1/members/get). Requires [authentication](https://developers.google.com/chat/api/guides/auth). Supports [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [user authentication](https://developers.google.com/chat/api/guides/auth/users).", + "flatPath": "v1/spaces/{spacesId}/members/{membersId}", + "httpMethod": "GET", + "id": "chat.spaces.members.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the membership to retrieve. To get the app's own membership, you can optionally use `spaces/{space}/members/app`. Format: `spaces/{space}/members/{member}` or `spaces/{space}/members/app` When [authenticated as a user](https://developers.google.com/chat/api/guides/auth/users), you can use the user's email as an alias for `{member}`. For example, `spaces/{space}/members/example@gmail.com` where `example@gmail.com` is the email of the Google Chat user.", + "location": "path", + "pattern": "^spaces/[^/]+/members/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Membership" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.bot", "https://www.googleapis.com/auth/chat.memberships", "https://www.googleapis.com/auth/chat.memberships.readonly" ] }, "list": { - "description": "Lists memberships in a space. Requires [authentication](https://developers.google.com/chat/api/guides/auth/). Fully supports [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). Supports [user authentication](https://developers.google.com/chat/api/guides/auth/users) as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. [User authentication](https://developers.google.com/chat/api/guides/auth/users) requires the `chat.memberships` or `chat.memberships.readonly` authorization scope.", + "description": "Lists memberships in a space. For an example, see [List memberships](https://developers.google.com/chat/api/guides/v1/members/list). Listing memberships with [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) lists memberships in spaces that the Chat app has access to, but excludes Chat app memberships, including its own. Listing memberships with [User authentication](https://developers.google.com/chat/api/guides/auth/users) lists memberships in spaces that the authenticated user has access to. Requires [authentication](https://developers.google.com/chat/api/guides/auth). Supports [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [user authentication](https://developers.google.com/chat/api/guides/auth/users).", "flatPath": "v1/spaces/{spacesId}/members", "httpMethod": "GET", "id": "chat.spaces.members.list", @@ -249,14 +543,19 @@ "parent" ], "parameters": { + "filter": { + "description": "Optional. A query filter. You can filter memberships by a member's role ([`role`](https://developers.google.com/chat/api/reference/rest/v1/spaces.members#membershiprole)) and type ([`member.type`](https://developers.google.com/chat/api/reference/rest/v1/User#type)). To filter by role, set `role` to `ROLE_MEMBER` or `ROLE_MANAGER`. To filter by type, set `member.type` to `HUMAN` or `BOT`. To filter by both role and type, use the `AND` operator. To filter by either role or type, use the `OR` operator. For example, the following queries are valid: ``` role = \"ROLE_MANAGER\" OR role = \"ROLE_MEMBER\" member.type = \"HUMAN\" AND role = \"ROLE_MANAGER\" ``` The following queries are invalid: ``` member.type = \"HUMAN\" AND member.type = \"BOT\" role = \"ROLE_MANAGER\" AND role = \"ROLE_MEMBER\" ``` Invalid queries are rejected by the server with an `INVALID_ARGUMENT` error.", + "location": "query", + "type": "string" + }, "pageSize": { - "description": "The maximum number of memberships to return. The service may return fewer than this value. If unspecified, at most 100 memberships are returned. The maximum value is 1000; values above 1000 are coerced to 1000. Negative values return an INVALID_ARGUMENT error.", + "description": "Optional. The maximum number of memberships to return. The service might return fewer than this value. If unspecified, at most 100 memberships are returned. The maximum value is 1,000. If you use a value more than 1,000, it's automatically changed to 1,000. Negative values return an `INVALID_ARGUMENT` error.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "A page token, received from a previous list memberships call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided should match the call that provided the page token. Passing different values to the other parameters may lead to unexpected results.", + "description": "Optional. A page token, received from a previous call to list memberships. Provide this parameter to retrieve the subsequent page. When paginating, all other parameters provided should match the call that provided the page token. Passing different values to the other parameters might lead to unexpected results.", "location": "query", "type": "string" }, @@ -266,6 +565,16 @@ "pattern": "^spaces/[^/]+$", "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", + "type": "boolean" } }, "path": "v1/{+parent}/members", @@ -273,6 +582,8 @@ "$ref": "ListMembershipsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/chat.bot", + "https://www.googleapis.com/auth/chat.import", "https://www.googleapis.com/auth/chat.memberships", "https://www.googleapis.com/auth/chat.memberships.readonly" ] @@ -282,7 +593,7 @@ "messages": { "methods": { "create": { - "description": "Creates a message. For example usage, see [Create a message](https://developers.google.com/chat/api/guides/crudl/messages#create_a_message). Requires [authentication](https://developers.google.com/chat/api/guides/auth). Fully supports [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). Supports [user authentication](https://developers.google.com/chat/api/guides/auth/users) as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. [User authentication](https://developers.google.com/chat/api/guides/auth/users) requires the `chat.messages` or `chat.messages.create` authorization scope. Because Chat provides authentication for [webhooks](https://developers.google.com/chat/how-tos/webhooks) as part of the URL that's generated when a webhook is registered, webhooks can create messages without a service account or user authentication.", + "description": "Creates a message in a Google Chat space. For an example, see [Create a message](https://developers.google.com/chat/api/guides/v1/messages/create). Calling this method requires [authentication](https://developers.google.com/chat/api/guides/auth) and supports the following authentication types: - For text messages, user authentication or app authentication are supported. - For card messages, only app authentication is supported. (Only Chat apps can create card messages.)", "flatPath": "v1/spaces/{spacesId}/messages", "httpMethod": "POST", "id": "chat.spaces.messages.create", @@ -291,7 +602,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. For example usage, see [Name a created message](https://developers.google.com/chat/api/guides/crudl/messages#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" }, @@ -303,15 +614,15 @@ "REPLY_MESSAGE_OR_FAIL" ], "enumDescriptions": [ - "Default. Starts a thread.", - "Creates the message as a reply to the thread specified by thread ID or thread_key. If it fails, the message starts a new thread instead.", - "Creates the message as a reply to the thread specified by thread ID or thread_key. If it fails, a NOT_FOUND error is returned instead." + "Default. Starts a new thread. Using this option ignores any thread ID or `thread_key` that's included.", + "Creates the message as a reply to the thread specified by thread ID or `thread_key`. If it fails, the message starts a new thread instead.", + "Creates the message as a reply to the thread specified by thread ID or `thread_key`. If a new `thread_key` is used, a new thread is created. If the message creation fails, a `NOT_FOUND` error is returned instead." ], "location": "query", "type": "string" }, "parent": { - "description": "Required. The resource name of the space in which to create a message. Format: spaces/{space}", + "description": "Required. The resource name of the space in which to create a message. Format: `spaces/{space}`", "location": "path", "pattern": "^spaces/[^/]+$", "required": true, @@ -323,7 +634,8 @@ "type": "string" }, "threadKey": { - "description": "Optional. Deprecated: Use thread.thread_key instead. Opaque thread identifier. To start or add to a thread, create a message and specify a `threadKey` or the thread.name. For example usage, see [Start or reply to a message thread](/chat/api/guides/crudl/messages#start_or_reply_to_a_message_thread).", + "deprecated": true, + "description": "Optional. Deprecated: Use thread.thread_key instead. ID for the thread. Supports up to 4000 characters. To start or add to a thread, create a message and specify a `threadKey` or the thread.name. For example usage, see [Start or reply to a message thread](https://developers.google.com/chat/api/guides/v1/messages/create#create-message-thread).", "location": "query", "type": "string" } @@ -336,12 +648,14 @@ "$ref": "Message" }, "scopes": [ + "https://www.googleapis.com/auth/chat.bot", + "https://www.googleapis.com/auth/chat.import", "https://www.googleapis.com/auth/chat.messages", "https://www.googleapis.com/auth/chat.messages.create" ] }, "delete": { - "description": "Deletes a message. For example usage, see [Delete a message](https://developers.google.com/chat/api/guides/crudl/messages#delete_a_message). Requires [authentication](https://developers.google.com/chat/api/guides/auth). Fully supports [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). Supports [user authentication](https://developers.google.com/chat/api/guides/auth/users) as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. [User authentication](https://developers.google.com/chat/api/guides/auth/users) requires the `chat.messages` authorization scope.", + "description": "Deletes a message. For an example, see [Delete a message](https://developers.google.com/chat/api/guides/v1/messages/delete). Requires [authentication](https://developers.google.com/chat/api/guides/auth). Supports [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [user authentication](https://developers.google.com/chat/api/guides/auth/users). When using app authentication, requests can only delete messages created by the calling Chat app.", "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}", "httpMethod": "DELETE", "id": "chat.spaces.messages.delete", @@ -349,8 +663,13 @@ "name" ], "parameters": { + "force": { + "description": "When `true`, deleting a message also deletes its threaded replies. When `false`, if a message has threaded replies, deletion fails. Only applies when [authenticating as a user](https://developers.google.com/chat/api/guides/auth/users). Has no effect when [authenticating as a Chat app] (https://developers.google.com/chat/api/guides/auth/service-accounts).", + "location": "query", + "type": "boolean" + }, "name": { - "description": "Required. Resource name of the message to be deleted, 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, @@ -362,11 +681,13 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/chat.bot", + "https://www.googleapis.com/auth/chat.import", "https://www.googleapis.com/auth/chat.messages" ] }, "get": { - "description": "Returns a message. For example usage, see [Read a message](https://developers.google.com/chat/api/guides/crudl/messages#read_a_message). Requires [authentication](https://developers.google.com/chat/api/guides/auth). Fully supports [Service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). Supports [user authentication](https://developers.google.com/chat/api/guides/auth/users) as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. [User authentication](https://developers.google.com/chat/api/guides/auth/users) requires the `chat.messages` or `chat.messages.readonly` authorization scope. Note: Might return a message from a blocked member or space.", + "description": "Returns details about a message. For an example, see [Read a message](https://developers.google.com/chat/api/guides/v1/messages/get). Requires [authentication](https://developers.google.com/chat/api/guides/auth). Supports [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [user authentication](https://developers.google.com/chat/api/guides/auth/users). Note: Might return a message from a blocked member or space.", "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}", "httpMethod": "GET", "id": "chat.spaces.messages.get", @@ -375,7 +696,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/crudl/messages#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, @@ -387,12 +708,66 @@ "$ref": "Message" }, "scopes": [ + "https://www.googleapis.com/auth/chat.bot", + "https://www.googleapis.com/auth/chat.messages", + "https://www.googleapis.com/auth/chat.messages.readonly" + ] + }, + "list": { + "description": "Lists messages in a space that the caller is a member of, including messages from blocked members and spaces. For an example, see [List messages](/chat/api/guides/v1/messages/list). Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users).", + "flatPath": "v1/spaces/{spacesId}/messages", + "httpMethod": "GET", + "id": "chat.spaces.messages.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "A query filter. You can filter messages by date (`create_time`) and thread (`thread.name`). To filter messages by the date they were created, specify the `create_time` with a timestamp in [RFC-3339](https://www.rfc-editor.org/rfc/rfc3339) format and double quotation marks. For example, `\"2023-04-21T11:30:00-04:00\"`. You can use the greater than operator `>` to list messages that were created after a timestamp, or the less than operator `<` to list messages that were created before a timestamp. To filter messages within a time interval, use the `AND` operator between two timestamps. To filter by thread, specify the `thread.name`, formatted as `spaces/{space}/threads/{thread}`. You can only specify one `thread.name` per query. To filter by both thread and date, use the `AND` operator in your query. For example, the following queries are valid: ``` create_time > \"2012-04-21T11:30:00-04:00\" create_time > \"2012-04-21T11:30:00-04:00\" AND thread.name = spaces/AAAAAAAAAAA/threads/123 create_time > \"2012-04-21T11:30:00+00:00\" AND create_time < \"2013-01-01T00:00:00+00:00\" AND thread.name = spaces/AAAAAAAAAAA/threads/123 thread.name = spaces/AAAAAAAAAAA/threads/123 ``` Invalid queries are rejected by the server with an `INVALID_ARGUMENT` error.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional, if resuming from a previous query. How the list of messages is ordered. Specify a value to order by an ordering operation. Valid ordering operation values are as follows: - `ASC` for ascending. - `DESC` for descending. The default ordering is `create_time ASC`.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of messages returned. The service might return fewer messages than this value. If unspecified, at most 25 are returned. The maximum value is 1,000. If you use a value more than 1,000, it's automatically changed to 1,000. Negative values return an `INVALID_ARGUMENT` error.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional, if resuming from a previous query. A page token received from a previous list messages call. Provide this parameter to retrieve the subsequent page. When paginating, all other parameters provided should match the call that provided the page token. Passing different values to the other parameters might lead to unexpected results.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the space to list messages from. Format: `spaces/{space}`", + "location": "path", + "pattern": "^spaces/[^/]+$", + "required": true, + "type": "string" + }, + "showDeleted": { + "description": "Whether to include deleted messages. Deleted messages include deleted time and metadata about their deletion, but message content is unavailable.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+parent}/messages", + "response": { + "$ref": "ListMessagesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.import", "https://www.googleapis.com/auth/chat.messages", "https://www.googleapis.com/auth/chat.messages.readonly" ] }, "patch": { - "description": "Updates a message. For example usage, see [Update a message](https://developers.google.com/chat/api/guides/crudl/messages#update_a_message). Requires [authentication](https://developers.google.com/chat/api/guides/auth/). Fully supports [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). Supports [user authentication](https://developers.google.com/chat/api/guides/auth/users) as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. [User authentication](https://developers.google.com/chat/api/guides/auth/users) requires the `chat.messages` authorization scope.", + "description": "Updates a message. There's a difference between the `patch` and `update` methods. The `patch` method uses a `patch` request while the `update` method uses a `put` request. We recommend using the `patch` method. For an example, see [Update a message](https://developers.google.com/chat/api/guides/v1/messages/update). Requires [authentication](https://developers.google.com/chat/api/guides/auth). Supports [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [user authentication](https://developers.google.com/chat/api/guides/auth/users). When using app authentication, requests can only update messages created by the calling Chat app.", "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}", "httpMethod": "PATCH", "id": "chat.spaces.messages.patch", @@ -401,19 +776,19 @@ ], "parameters": { "allowMissing": { - "description": "Optional. If `true` and the message is not found, a new message is created and `updateMask` is ignored. The specified message ID must be [client-assigned](https://developers.google.com/chat/api/guides/crudl/messages#name_a_created_message) or the request fails.", + "description": "Optional. If `true` and the message isn't found, a new message is created and `updateMask` is ignored. The specified message ID must be [client-assigned](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message) or the request fails.", "location": "query", "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 - cards (Requires [service account authentication](/chat/api/guides/auth/service-accounts).) - cards_v2 ", + "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" @@ -427,11 +802,13 @@ "$ref": "Message" }, "scopes": [ + "https://www.googleapis.com/auth/chat.bot", + "https://www.googleapis.com/auth/chat.import", "https://www.googleapis.com/auth/chat.messages" ] }, "update": { - "description": "Updates a message. For example usage, see [Update a message](https://developers.google.com/chat/api/guides/crudl/messages#update_a_message). Requires [authentication](https://developers.google.com/chat/api/guides/auth/). Fully supports [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). Supports [user authentication](https://developers.google.com/chat/api/guides/auth/users) as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. [User authentication](https://developers.google.com/chat/api/guides/auth/users) requires the `chat.messages` authorization scope.", + "description": "Updates a message. There's a difference between the `patch` and `update` methods. The `patch` method uses a `patch` request while the `update` method uses a `put` request. We recommend using the `patch` method. For an example, see [Update a message](https://developers.google.com/chat/api/guides/v1/messages/update). Requires [authentication](https://developers.google.com/chat/api/guides/auth). Supports [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [user authentication](https://developers.google.com/chat/api/guides/auth/users). When using app authentication, requests can only update messages created by the calling Chat app.", "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}", "httpMethod": "PUT", "id": "chat.spaces.messages.update", @@ -440,19 +817,19 @@ ], "parameters": { "allowMissing": { - "description": "Optional. If `true` and the message is not found, a new message is created and `updateMask` is ignored. The specified message ID must be [client-assigned](https://developers.google.com/chat/api/guides/crudl/messages#name_a_created_message) or the request fails.", + "description": "Optional. If `true` and the message isn't found, a new message is created and `updateMask` is ignored. The specified message ID must be [client-assigned](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message) or the request fails.", "location": "query", "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 - cards (Requires [service account authentication](/chat/api/guides/auth/service-accounts).) - cards_v2 ", + "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" @@ -466,6 +843,8 @@ "$ref": "Message" }, "scopes": [ + "https://www.googleapis.com/auth/chat.bot", + "https://www.googleapis.com/auth/chat.import", "https://www.googleapis.com/auth/chat.messages" ] } @@ -474,7 +853,7 @@ "attachments": { "methods": { "get": { - "description": "Gets the metadata of a message attachment. The attachment data is fetched using the media API. Requires [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts).", + "description": "Gets the metadata of a message attachment. The attachment data is fetched using the [media API](https://developers.google.com/chat/api/reference/rest/v1/media/download). For an example, see [Get a message attachment](https://developers.google.com/chat/api/guides/v1/media-and-attachments/get). Requires [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts).", "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}/attachments/{attachmentsId}", "httpMethod": "GET", "id": "chat.spaces.messages.attachments.get", @@ -483,7 +862,7 @@ ], "parameters": { "name": { - "description": "Required. Resource name of the attachment, in the form \"spaces/*/messages/*/attachments/*\".", + "description": "Required. Resource name of the attachment, in the form `spaces/*/messages/*/attachments/*`.", "location": "path", "pattern": "^spaces/[^/]+/messages/[^/]+/attachments/[^/]+$", "required": true, @@ -493,7 +872,116 @@ "path": "v1/{+name}", "response": { "$ref": "Attachment" - } + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.bot" + ] + } + } + }, + "reactions": { + "methods": { + "create": { + "description": "Creates a reaction and adds it to a message. For an example, see [Create a reaction](https://developers.google.com/chat/api/guides/v1/reactions/create). Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users). Only unicode emoji are supported.", + "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}/reactions", + "httpMethod": "POST", + "id": "chat.spaces.messages.reactions.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The message where the reaction is created. Format: `spaces/{space}/messages/{message}`", + "location": "path", + "pattern": "^spaces/[^/]+/messages/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/reactions", + "request": { + "$ref": "Reaction" + }, + "response": { + "$ref": "Reaction" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.import", + "https://www.googleapis.com/auth/chat.messages", + "https://www.googleapis.com/auth/chat.messages.reactions", + "https://www.googleapis.com/auth/chat.messages.reactions.create" + ] + }, + "delete": { + "description": "Deletes a reaction to a message. For an example, see [Delete a reaction](https://developers.google.com/chat/api/guides/v1/reactions/delete). Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users).", + "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}/reactions/{reactionsId}", + "httpMethod": "DELETE", + "id": "chat.spaces.messages.reactions.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the reaction to delete. Format: `spaces/{space}/messages/{message}/reactions/{reaction}`", + "location": "path", + "pattern": "^spaces/[^/]+/messages/[^/]+/reactions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.import", + "https://www.googleapis.com/auth/chat.messages", + "https://www.googleapis.com/auth/chat.messages.reactions" + ] + }, + "list": { + "description": "Lists reactions to a message. For an example, see [List reactions](https://developers.google.com/chat/api/guides/v1/reactions/list). Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users).", + "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}/reactions", + "httpMethod": "GET", + "id": "chat.spaces.messages.reactions.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. A query filter. You can filter reactions by [emoji](https://developers.google.com/chat/api/reference/rest/v1/Emoji) (either `emoji.unicode` or `emoji.custom_emoji.uid`) and [user](https://developers.google.com/chat/api/reference/rest/v1/User) (`user.name`). To filter reactions for multiple emojis or users, join similar fields with the `OR` operator, such as `emoji.unicode = \"\ud83d\ude42\" OR emoji.unicode = \"\ud83d\udc4d\"` and `user.name = \"users/AAAAAA\" OR user.name = \"users/BBBBBB\"`. To filter reactions by emoji and user, use the `AND` operator, such as `emoji.unicode = \"\ud83d\ude42\" AND user.name = \"users/AAAAAA\"`. If your query uses both `AND` and `OR`, group them with parentheses. For example, the following queries are valid: ``` user.name = \"users/{user}\" emoji.unicode = \"\ud83d\ude42\" emoji.custom_emoji.uid = \"{uid}\" emoji.unicode = \"\ud83d\ude42\" OR emoji.unicode = \"\ud83d\udc4d\" emoji.unicode = \"\ud83d\ude42\" OR emoji.custom_emoji.uid = \"{uid}\" emoji.unicode = \"\ud83d\ude42\" AND user.name = \"users/{user}\" (emoji.unicode = \"\ud83d\ude42\" OR emoji.custom_emoji.uid = \"{uid}\") AND user.name = \"users/{user}\" ``` The following queries are invalid: ``` emoji.unicode = \"\ud83d\ude42\" AND emoji.unicode = \"\ud83d\udc4d\" emoji.unicode = \"\ud83d\ude42\" AND emoji.custom_emoji.uid = \"{uid}\" emoji.unicode = \"\ud83d\ude42\" OR user.name = \"users/{user}\" emoji.unicode = \"\ud83d\ude42\" OR emoji.custom_emoji.uid = \"{uid}\" OR user.name = \"users/{user}\" emoji.unicode = \"\ud83d\ude42\" OR emoji.custom_emoji.uid = \"{uid}\" AND user.name = \"users/{user}\" ``` Invalid queries are rejected by the server with an `INVALID_ARGUMENT` error.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of reactions returned. The service can return fewer reactions than this value. If unspecified, the default value is 25. The maximum value is 200; values above 200 are changed to 200.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. (If resuming from a previous query.) A page token received from a previous list reactions call. Provide this 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" + }, + "parent": { + "description": "Required. The message users reacted to. Format: `spaces/{space}/messages/{message}`", + "location": "path", + "pattern": "^spaces/[^/]+/messages/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/reactions", + "response": { + "$ref": "ListReactionsResponse" + }, + "scopes": [ + "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" + ] } } } @@ -502,11 +990,11 @@ } } }, - "revision": "20230115", + "revision": "20240227", "rootUrl": "https://chat.googleapis.com/", "schemas": { "ActionParameter": { - "description": "List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.", + "description": "List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze one day, snooze next week. You might use `action method = snooze()`, passing the snooze type and snooze time in the list of string parameters.", "id": "ActionParameter", "properties": { "key": { @@ -521,12 +1009,12 @@ "type": "object" }, "ActionResponse": { - "description": "Parameters that a Chat app can use to configure how it's response is posted.", + "description": "Parameters that a Chat app can use to configure how its response is posted.", "id": "ActionResponse", "properties": { "dialogAction": { "$ref": "DialogAction", - "description": "Input only. A response to an event related to a [dialog](https://developers.google.com/chat/how-tos/dialogs). Must be accompanied by `ResponseType.Dialog`." + "description": "Input only. A response to an interaction event related to a [dialog](https://developers.google.com/chat/how-tos/dialogs). Must be accompanied by `ResponseType.Dialog`." }, "type": { "description": "Input only. The type of Chat app response.", @@ -536,20 +1024,26 @@ "UPDATE_MESSAGE", "UPDATE_USER_MESSAGE_CARDS", "REQUEST_CONFIG", - "DIALOG" + "DIALOG", + "UPDATE_WIDGET" ], "enumDescriptions": [ - "Default type; will be handled as NEW_MESSAGE.", + "Default type that's handled as `NEW_MESSAGE`.", "Post as a new message in the topic.", - "Update the Chat app's message. This is only permitted on a CARD_CLICKED event where the message sender type is BOT.", - "Update the cards on a user's message. This is only permitted as a response to a MESSAGE event with a matched url, or a CARD_CLICKED event where the message sender type is HUMAN. Text will be ignored.", - "Privately ask the user for additional auth or config.", - "Presents a [dialog](https://developers.google.com/chat/how-tos/dialogs)." + "Update the Chat app's message. This is only permitted on a `CARD_CLICKED` event where the message sender type is `BOT`.", + "Update the cards on a user's message. This is only permitted as a response to a `MESSAGE` event with a matched url, or a `CARD_CLICKED` event where the message sender type is `HUMAN`. Text is ignored.", + "Privately ask the user for additional authentication or configuration.", + "Presents a [dialog](https://developers.google.com/chat/how-tos/dialogs).", + "Widget text autocomplete options query." ], "type": "string" }, + "updatedWidget": { + "$ref": "UpdatedWidget", + "description": "Input only. The response of the updated widget." + }, "url": { - "description": "Input only. URL for users to auth or config. (Only for REQUEST_CONFIG response types.)", + "description": "Input only. URL for users to authenticate or configure. (Only for `REQUEST_CONFIG` response types.)", "type": "string" } }, @@ -609,7 +1103,7 @@ "type": "object" }, "Annotation": { - "description": "Annotations associated with the plain-text body of the message. Example plain-text message body: ``` Hello @FooBot how are you!\" ``` The corresponding annotations metadata: ``` \"annotations\":[{ \"type\":\"USER_MENTION\", \"startIndex\":6, \"length\":7, \"userMention\": { \"user\": { \"name\":\"users/107946847022116401880\", \"displayName\":\"FooBot\", \"avatarUrl\":\"https://goo.gl/aeDtrS\", \"type\":\"BOT\" }, \"type\":\"MENTION\" } }] ```", + "description": "Output only. Annotations associated with the plain-text body of the message. To add basic formatting to a text message, see [Format text messages](https://developers.google.com/chat/format-messages). Example plain-text message body: ``` Hello @FooBot how are you!\" ``` The corresponding annotations metadata: ``` \"annotations\":[{ \"type\":\"USER_MENTION\", \"startIndex\":6, \"length\":7, \"userMention\": { \"user\": { \"name\":\"users/{user}\", \"displayName\":\"FooBot\", \"avatarUrl\":\"https://goo.gl/aeDtrS\", \"type\":\"BOT\" }, \"type\":\"MENTION\" } }] ```", "id": "Annotation", "properties": { "length": { @@ -634,7 +1128,7 @@ "SLASH_COMMAND" ], "enumDescriptions": [ - "Default value for the enum. DO NOT USE.", + "Default value for the enum. Don't use.", "A user is mentioned.", "A slash command is invoked." ], @@ -647,37 +1141,52 @@ }, "type": "object" }, + "AttachedGif": { + "description": "A GIF image that's specified by a URL.", + "id": "AttachedGif", + "properties": { + "uri": { + "description": "Output only. The URL that hosts the GIF image.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Attachment": { "description": "An attachment in Google Chat.", "id": "Attachment", "properties": { "attachmentDataRef": { "$ref": "AttachmentDataRef", - "description": "A reference to the attachment data. This is used with the media API to download the attachment data." + "description": "A reference to the attachment data. This field is used with the media API to download the attachment data." }, "contentName": { - "description": "The original file name for the content, not the full path.", + "description": "Output only. The original file name for the content, not the full path.", + "readOnly": true, "type": "string" }, "contentType": { - "description": "The content type (MIME type) of the file.", + "description": "Output only. The content type (MIME type) of the file.", + "readOnly": true, "type": "string" }, "downloadUri": { - "description": "Output only. The download URL which should be used to allow a human user to download the attachment. Chat apps should not use this URL to download attachment content.", + "description": "Output only. The download URL which should be used to allow a human user to download the attachment. Chat apps shouldn't use this URL to download attachment content.", "readOnly": true, "type": "string" }, "driveDataRef": { "$ref": "DriveDataRef", - "description": "A reference to the drive attachment. This is used with the Drive API." + "description": "Output only. A reference to the Google Drive attachment. This field is used with the Google Drive API.", + "readOnly": true }, "name": { - "description": "Resource name of the attachment, in the form \"spaces/*/messages/*/attachments/*\".", + "description": "Resource name of the attachment, in the form `spaces/*/messages/*/attachments/*`.", "type": "string" }, "source": { - "description": "The source of the attachment.", + "description": "Output only. The source of the attachment.", "enum": [ "SOURCE_UNSPECIFIED", "DRIVE_FILE", @@ -688,10 +1197,11 @@ "", "" ], + "readOnly": true, "type": "string" }, "thumbnailUri": { - "description": "Output only. The thumbnail URL which should be used to preview the attachment to a human user. Chat apps should not use this URL to download attachment content.", + "description": "Output only. The thumbnail URL which should be used to preview the attachment to a human user. Chat apps shouldn't use this URL to download attachment content.", "readOnly": true, "type": "string" } @@ -701,8 +1211,12 @@ "AttachmentDataRef": { "id": "AttachmentDataRef", "properties": { + "attachmentUploadToken": { + "description": "Opaque token containing a reference to an uploaded attachment. Treated by clients as an opaque string and used to create or update Chat messages with attachments.", + "type": "string" + }, "resourceName": { - "description": "The resource name of the attachment data. This is used with the media API to download the attachment data.", + "description": "The resource name of the attachment data. This field is used with the media API to download the attachment data.", "type": "string" } }, @@ -714,17 +1228,17 @@ "properties": { "imageButton": { "$ref": "ImageButton", - "description": "A button with image and onclick action." + "description": "A button with image and `onclick` action." }, "textButton": { "$ref": "TextButton", - "description": "A button with text and onclick action." + "description": "A button with text and `onclick` action." } }, "type": "object" }, "Card": { - "description": "A card is a UI element that can contain UI widgets such as texts, images.", + "description": "A card is a UI element that can contain UI widgets such as text and images.", "id": "Card", "properties": { "cardActions": { @@ -771,7 +1285,7 @@ "id": "CardHeader", "properties": { "imageStyle": { - "description": "The image's type (e.g. square border or circular border).", + "description": "The image's type (for example, square border or circular border).", "enum": [ "IMAGE_STYLE_UNSPECIFIED", "IMAGE", @@ -793,22 +1307,22 @@ "type": "string" }, "title": { - "description": "The title must be specified. The header has a fixed height: if both a title and subtitle is specified, each will take up 1 line. If only the title is specified, it will take up both lines.", + "description": "The title must be specified. The header has a fixed height: if both a title and subtitle is specified, each takes up one line. If only the title is specified, it takes up both lines.", "type": "string" } }, "type": "object" }, "CardWithId": { - "description": "Widgets for Chat apps to specify.", + "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": { "$ref": "GoogleAppsCardV1Card", - "description": "Card proto that allows Chat apps to specify UI elements and editable widgets." + "description": "A card. Maximum size is 32 KB." }, "cardId": { - "description": "Required for `cardsV2` messages. Chat app-specified identifier for this widget. Scoped within a message.", + "description": "Required if the message contains multiple cards. A unique identifier for a card in a message.", "type": "string" } }, @@ -833,8 +1347,19 @@ }, "type": "object" }, + "ChatClientDataSourceMarkup": { + "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/workspace/chat):", + "id": "ChatClientDataSourceMarkup", + "properties": { + "spaceDataSource": { + "$ref": "SpaceDataSource", + "description": "Google Chat spaces that the user is a member of." + } + }, + "type": "object" + }, "Color": { - "description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/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 carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). 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(''); }; // ...", + "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\u2014for 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": { @@ -868,7 +1393,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": { @@ -884,7 +1409,8 @@ "SHEETS", "SLIDES", "DRAWINGS", - "CHAT" + "CHAT", + "CHAT_IN_GMAIL" ], "enumDescriptions": [ "Google can't identify a host app.", @@ -897,7 +1423,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" }, @@ -930,17 +1457,44 @@ }, "timeZone": { "$ref": "TimeZone", - "description": "The timezone ID and offset from Coordinated Universal Time (UTC)." + "description": "The timezone ID and offset from Coordinated Universal Time (UTC). Only supported for the event types [`CARD_CLICKED`](https://developers.google.com/chat/api/reference/rest/v1/EventType#ENUM_VALUES.CARD_CLICKED) and [`SUBMIT_DIALOG`](https://developers.google.com/chat/api/reference/rest/v1/DialogEventType#ENUM_VALUES.SUBMIT_DIALOG)." }, "userLocale": { - "description": "The full `locale.displayName` in the format of [ISO 639 language code]-[ISO 3166 country/region code] such as \"en-US\". Not supported by Chat apps.", + "description": "The full `locale.displayName` in the format of [ISO 639 language code]-[ISO 3166 country/region code] such as \"en-US\".", + "type": "string" + } + }, + "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", + "properties": { + "uid": { + "description": "Unique key for the custom emoji resource.", "type": "string" } }, "type": "object" }, "DateInput": { - "description": "Date input values. Not supported by Chat apps.", + "description": "Date input values.", "id": "DateInput", "properties": { "msSinceEpoch": { @@ -952,7 +1506,7 @@ "type": "object" }, "DateTimeInput": { - "description": "Date and time input values. Not supported by Chat apps.", + "description": "Date and time input values.", "id": "DateTimeInput", "properties": { "hasDate": { @@ -971,24 +1525,53 @@ }, "type": "object" }, + "DeletionMetadata": { + "description": "Information about a deleted message. A message is deleted when `delete_time` is set.", + "id": "DeletionMetadata", + "properties": { + "deletionType": { + "description": "Indicates who deleted the message.", + "enum": [ + "DELETION_TYPE_UNSPECIFIED", + "CREATOR", + "SPACE_OWNER", + "ADMIN", + "APP_MESSAGE_EXPIRY", + "CREATOR_VIA_APP", + "SPACE_OWNER_VIA_APP" + ], + "enumDescriptions": [ + "This value is unused.", + "User deleted their own message.", + "The space owner deleted the message.", + "A Google Workspace admin deleted the message.", + "A Chat app deleted its own message when it expired.", + "A Chat app deleted the message on behalf of the user.", + "A Chat app deleted the message on behalf of the space owner." + ], + "type": "string" + } + }, + "type": "object" + }, "DeprecatedEvent": { - "description": "Google Chat events.", + "description": "A Google Chat app interaction event. To learn about interaction events, see [Receive and respond to interactions with your Google Chat app](https://developers.google.com/chat/api/guides/message-formats). To learn about event types and for example event payloads, see [Types of Google Chat app interaction events](https://developers.google.com/chat/api/guides/message-formats/events).", "id": "DeprecatedEvent", "properties": { "action": { "$ref": "FormAction", - "description": "The form action data associated with an interactive card that was clicked. Only populated for CARD_CLICKED events. See the [Interactive Cards guide](/chat/how-tos/cards-onclick) for more information." + "description": "For `CARD_CLICKED` interaction events, the form action data associated when a user clicks a card or dialog. To learn more, see [Read form data input by users on cards](https://developers.google.com/chat/ui/read-form-data)." }, "common": { "$ref": "CommonEventObject", "description": "Represents information about the user's client, such as locale, host app, and platform. For Chat apps, `CommonEventObject` includes information submitted by users interacting with [dialogs](https://developers.google.com/chat/how-tos/dialogs), like data entered on a card." }, "configCompleteRedirectUrl": { - "description": "The URL the Chat app should redirect the user to after they have completed an authorization or configuration flow outside of Google Chat. See the [Authorizing access to 3p services guide](/chat/how-tos/auth-3p) for more information.", + "description": "The URL the Chat app should redirect the user to after they have completed an authorization or configuration flow outside of Google Chat. For more information, see [Connect a Chat app with other services & tools](https://developers.google.com/chat/how-tos/connect-web-services-tools).", "type": "string" }, "dialogEventType": { - "description": "The type of [dialog](https://developers.google.com/chat/how-tos/dialogs) event received.", + "description": "The type of [dialog](https://developers.google.com/chat/how-tos/dialogs) interaction event received.", "enum": [ "TYPE_UNSPECIFIED", "REQUEST_DIALOG", @@ -996,32 +1579,32 @@ "CANCEL_DIALOG" ], "enumDescriptions": [ - "This could be used when the corresponding event is not dialog related. For example an @mention.", - "Any user action that opens a [dialog](https://developers.google.com/chat/how-tos/dialogs).", - "A card click event from a [dialog](https://developers.google.com/chat/how-tos/dialogs).", - "The [dialog](https://developers.google.com/chat/how-tos/dialogs) was cancelled." + "Default value. Unspecified.", + "A user opens a dialog.", + "A user clicks an interactive element of a dialog. For example, a user fills out information in a dialog and clicks a button to submit the information.", + "A user closes a dialog without submitting information, or the dialog is canceled." ], "type": "string" }, "eventTime": { - "description": "The timestamp indicating when the event occurred.", + "description": "The timestamp indicating when the interaction event occurred.", "format": "google-datetime", "type": "string" }, "isDialogEvent": { - "description": "True when the event is related to [dialogs](https://developers.google.com/chat/how-tos/dialogs).", + "description": "For `CARD_CLICKED` interaction events, whether the user interacted with a [dialog](https://developers.google.com/chat/how-tos/dialogs).", "type": "boolean" }, "message": { "$ref": "Message", - "description": "The message that triggered the event, if applicable." + "description": "The message that triggered the interaction event, if applicable." }, "space": { "$ref": "Space", - "description": "The space in which the event occurred." + "description": "The space in which the interaction event occurred." }, "threadKey": { - "description": "The Chat app-defined key for the thread related to the event. See [`spaces.messages.thread.threadKey`](/chat/api/reference/rest/v1/spaces.messages#Thread.FIELDS.thread_key) for more information.", + "description": "The Chat app-defined key for the thread related to the interaction event. See [`spaces.messages.thread.threadKey`](/chat/api/reference/rest/v1/spaces.messages#Thread.FIELDS.thread_key) for more information.", "type": "string" }, "token": { @@ -1029,26 +1612,28 @@ "type": "string" }, "type": { - "description": "The type of the event.", + "description": "The type of interaction event. For details, see [Types of Google Chat app interaction events](https://developers.google.com/chat/api/guides/message-formats/events).", "enum": [ "UNSPECIFIED", "MESSAGE", "ADDED_TO_SPACE", "REMOVED_FROM_SPACE", - "CARD_CLICKED" + "CARD_CLICKED", + "WIDGET_UPDATED" ], "enumDescriptions": [ "Default value for the enum. DO NOT USE.", - "A message was sent in a space.", - "The Chat app was added to a space.", - "The Chat app was removed from a space.", - "The Chat app's interactive card was clicked." + "A user sends the Chat app a message, or invokes the Chat app in a space.", + "A user adds the Chat app to a space, or a Google Workspace administrator installs the Chat app in direct message spaces for users in their organization.", + "A user removes the Chat app from a space.", + "A user clicks an interactive element of a card or dialog from a Chat app, such as a button. If a user interacts with a dialog, the `CARD_CLICKED` interaction event's `isDialogEvent` field is set to `true` and includes a [`DialogEventType`](https://developers.google.com/chat/api/reference/rest/v1/DialogEventType).", + "A user updates a widget in a card message or dialog." ], "type": "string" }, "user": { "$ref": "User", - "description": "The user that triggered the event." + "description": "The user that triggered the interaction event." } }, "type": "object" @@ -1059,7 +1644,7 @@ "properties": { "body": { "$ref": "GoogleAppsCardV1Card", - "description": "Input only. Body of the dialog, which is rendered in a modal. Google Chat apps do not support the following card entities: `DateTimePicker`, `OnChangeAction`." + "description": "Input only. Body of the dialog, which is rendered in a modal. Google Chat apps don't support the following card entities: `DateTimePicker`, `OnChangeAction`." } }, "type": "object" @@ -1084,12 +1669,44 @@ "id": "DriveDataRef", "properties": { "driveFileId": { - "description": "The id for the drive file, for use with the Drive API.", + "description": "The ID for the drive file. Use with the Drive API.", "type": "string" } }, "type": "object" }, + "Emoji": { + "description": "An emoji that is used as a reaction to a message.", + "id": "Emoji", + "properties": { + "customEmoji": { + "$ref": "CustomEmoji", + "description": "Output only. A custom emoji.", + "readOnly": true + }, + "unicode": { + "description": "A basic emoji represented by a unicode string.", + "type": "string" + } + }, + "type": "object" + }, + "EmojiReactionSummary": { + "description": "The number of people who reacted to a message with a specific emoji.", + "id": "EmojiReactionSummary", + "properties": { + "emoji": { + "$ref": "Emoji", + "description": "Emoji associated with the reactions." + }, + "reactionCount": { + "description": "The total number of reactions using the associated emoji.", + "format": "int32", + "type": "integer" + } + }, + "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", @@ -1097,11 +1714,11 @@ "type": "object" }, "FormAction": { - "description": "A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form.", + "description": "A form action describes the behavior when the form is submitted. For example, you can invoke Apps Script to handle the form.", "id": "FormAction", "properties": { "actionMethodName": { - "description": "The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the Chat app as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.", + "description": "The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the Chat app as part of the card click event. You can use the same method name for several elements that trigger a common behavior.", "type": "string" }, "parameters": { @@ -1115,7 +1732,7 @@ "type": "object" }, "GoogleAppsCardV1Action": { - "description": "An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form.", + "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": { @@ -1123,14 +1740,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 button on 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 is not 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`\u2014like opening a link or running a function\u2014as 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/workspace/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/workspace/chat):" ], "type": "string" }, @@ -1154,14 +1771,14 @@ "type": "array" }, "persistValues": { - "description": "Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. Not supported by Chat apps.", + "description": "Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. To let the user make changes while the action is being processed, set [`LoadIndicator`](https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) to `NONE`. For [card messages](https://developers.google.com/chat/api/guides/v1/messages/create#create) in Chat apps, you must also set the action's [`ResponseType`](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages#responsetype) to `UPDATE_MESSAGE` and use the same [`card_id`](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages#CardWithId) from the card that contained the action. If `false`, the form values are cleared when the action is triggered. To prevent the user from making changes while the action is being processed, set [`LoadIndicator`](https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) to `SPINNER`.", "type": "boolean" } }, "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 1 day, 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": { @@ -1176,7 +1793,7 @@ "type": "object" }, "GoogleAppsCardV1BorderStyle": { - "description": "Represents the complete border style applied to items in a widget.", + "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": { @@ -1196,7 +1813,7 @@ "STROKE" ], "enumDescriptions": [ - "No value specified.", + "Don't use. Unspecified.", "Default value. No border.", "Outline." ], @@ -1206,16 +1823,16 @@ "type": "object" }, "GoogleAppsCardV1Button": { - "description": "A text, icon, or text + icon button that users can click. 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": { - "description": "The alternative text used for accessibility. Set descriptive text that lets users know what the button does. For example, if a button opens a hyperlink, you might write: \"Opens a new browser tab and navigates to the Google Chat developer documentation at https://developers.google.com/chat\". Has no effect when an icon is set; use `icon.alt_text` instead.", + "description": "The alternative text that's used for accessibility. Set descriptive text that lets users know what the button does. For example, if a button opens a hyperlink, you might write: \"Opens a new browser tab and navigates to the Google Chat developer documentation at https://developers.google.com/chat\".", "type": "string" }, "color": { "$ref": "Color", - "description": "If set, the button is filled with a solid background color and the font color changes to maintain contrast with the background color. For example, setting a blue background will likely result in white text. If unset, the image background is white and the font color is blue. For red, green and blue, the value of each field is a `float` number that can be expressed in either of two ways: as a number between 0 and 255 divided by 255 (153/255) or as a value between 0 and 1 (0.6). 0 represents the absence of a color and 1 or 255/255 represent the full presence of that color on the RGB scale. Optionally set alpha, which sets a level of transparency using this equation: ``` pixel color = alpha * (this color) + (1.0 - alpha) * (background color) ``` For alpha, a value of 1 corresponds with a solid color, and a value of 0 corresponds with a completely transparent color. For example, the following color represents a half transparent red: ``` \"color\": { \"red\": 1, \"green\": 0, \"blue\": 0, \"alpha\": 0.5 } ```" + "description": "If set, the button is filled with a solid background color and the font color changes to maintain contrast with the background color. For example, setting a blue background likely results in white text. If unset, the image background is white and the font color is blue. For red, green, and blue, the value of each field is a `float` number that you can express in either of two ways: as a number between 0 and 255 divided by 255 (153/255), or as a value between 0 and 1 (0.6). 0 represents the absence of a color and 1 or 255/255 represent the full presence of that color on the RGB scale. Optionally set `alpha`, which sets a level of transparency using this equation: ``` pixel color = alpha * (this color) + (1.0 - alpha) * (background color) ``` For `alpha`, a value of `1` corresponds with a solid color, and a value of `0` corresponds with a completely transparent color. For example, the following color represents a half transparent red: ``` \"color\": { \"red\": 1, \"green\": 0, \"blue\": 0, \"alpha\": 0.5 } ```" }, "disabled": { "description": "If `true`, the button is displayed in an inactive state and doesn't respond to user actions.", @@ -1223,11 +1840,11 @@ }, "icon": { "$ref": "GoogleAppsCardV1Icon", - "description": "The icon image. If both `icon` and `text` are set, then the icon appears in place of the text. Support for both an icon and text is coming soon." + "description": "The icon image. If both `icon` and `text` are set, then the icon appears before the text." }, "onClick": { "$ref": "GoogleAppsCardV1OnClick", - "description": "The action to perform when the button is clicked, such as opening a hyperlink or running a custom function." + "description": "Required. The action to perform when a user clicks the button, such as opening a hyperlink or running a custom function." }, "text": { "description": "The text displayed inside the button.", @@ -1237,7 +1854,7 @@ "type": "object" }, "GoogleAppsCardV1ButtonList": { - "description": "A list of buttons layed out horizontally.", + "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": { @@ -1251,25 +1868,25 @@ "type": "object" }, "GoogleAppsCardV1Card": { - "description": "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. In Google Chat, cards appear in several places: - As stand-alone messages. - Accompanying a text message, just beneath the text message. - As a [dialog](https://developers.google.com/chat/how-tos/dialogs). The following example JSON creates a \"contact card\" that features: - A header with the contact's name, job title, avatar picture. - A section with the contact information, including formatted text. - Buttons that users can click to share the contact or see more or less info. ![Example contact card](https://developers.google.com/chat/images/card_api_reference.png) ``` { \"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[]` is not 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", "REPLACE" ], "enumDescriptions": [ - "Do not use.", + "Don't use. Unspecified.", "The header of the card appears at the bottom of the sidebar, partially covering the current top card of the stack. Clicking the header pops the card into the card stack. If the card has no header, a generated header is used instead.", "Default value. The card is shown by replacing the view of the top card in the card stack." ], @@ -1277,22 +1894,36 @@ }, "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. Chat apps support `fixedFooter` in [dialogs](https://developers.google.com/chat/how-tos/dialogs), but not in [card messages](https://developers.google.com/chat/api/guides/message-formats/cards)." + "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.", + "enum": [ + "DIVIDER_STYLE_UNSPECIFIED", + "SOLID_DIVIDER", + "NO_DIVIDER" + ], + "enumDescriptions": [ + "Don't use. Unspecified.", + "Default option. Render a solid divider between sections.", + "If set, no divider is rendered between sections." + ], + "type": "string" }, "sections": { - "description": "Contains a collection of widgets. Each section has its own, optional header. Sections are visually separated by a line divider.", + "description": "Contains a collection of widgets. Each section has its own, optional header. Sections are visually separated by a line divider. For an example in Google Chat apps, see [Card section](https://developers.google.com/chat/ui/widgets/card-section).", "items": { "$ref": "GoogleAppsCardV1Section" }, @@ -1302,7 +1933,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": { @@ -1317,7 +1948,7 @@ "type": "object" }, "GoogleAppsCardV1CardFixedFooter": { - "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. Chat apps support `fixedFooter` in [dialogs](https://developers.google.com/chat/how-tos/dialogs), but not in [card messages](https://developers.google.com/chat/api/guides/message-formats/cards).", + "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": { @@ -1326,21 +1957,21 @@ }, "secondaryButton": { "$ref": "GoogleAppsCardV1Button", - "description": "The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set." + "description": "The secondary button of the fixed footer. The button must be a text button with text and color set. If `secondaryButton` is set, you must also set `primaryButton`." } }, "type": "object" }, "GoogleAppsCardV1CardHeader": { - "description": "Represents a 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": { - "description": "The alternative text of this image which is used for accessibility.", + "description": "The alternative text of this image that's used for accessibility.", "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" @@ -1366,43 +1997,117 @@ }, "type": "object" }, + "GoogleAppsCardV1Column": { + "description": "A column. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend): Columns for Google Workspace Add-ons are in Developer Preview.", + "id": "GoogleAppsCardV1Column", + "properties": { + "horizontalAlignment": { + "description": "Specifies whether widgets align to the left, right, or center of a column.", + "enum": [ + "HORIZONTAL_ALIGNMENT_UNSPECIFIED", + "START", + "CENTER", + "END" + ], + "enumDescriptions": [ + "Don't use. Unspecified.", + "Default value. Aligns widgets to the start position of the column. For left-to-right layouts, aligns to the left. For right-to-left layouts, aligns to the right.", + "Aligns widgets to the center of the column.", + "Aligns widgets to the end position of the column. For left-to-right layouts, aligns widgets to the right. For right-to-left layouts, aligns widgets to the left." + ], + "type": "string" + }, + "horizontalSizeStyle": { + "description": "Specifies how a column fills the width of the card.", + "enum": [ + "HORIZONTAL_SIZE_STYLE_UNSPECIFIED", + "FILL_AVAILABLE_SPACE", + "FILL_MINIMUM_SPACE" + ], + "enumDescriptions": [ + "Don't use. Unspecified.", + "Default value. Column fills the available space, up to 70% of the card's width. If both columns are set to `FILL_AVAILABLE_SPACE`, each column fills 50% of the space.", + "Column fills the least amount of space possible and no more than 30% of the card's width." + ], + "type": "string" + }, + "verticalAlignment": { + "description": "Specifies whether widgets align to the top, bottom, or center of a column.", + "enum": [ + "VERTICAL_ALIGNMENT_UNSPECIFIED", + "CENTER", + "TOP", + "BOTTOM" + ], + "enumDescriptions": [ + "Don't use. Unspecified.", + "Default value. Aligns widgets to the center of a column.", + "Aligns widgets to the top of a column.", + "Aligns widgets to the bottom of a column." + ], + "type": "string" + }, + "widgets": { + "description": "An array of widgets included in a column. Widgets appear in the order that they are specified.", + "items": { + "$ref": "GoogleAppsCardV1Widgets" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAppsCardV1Columns": { + "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.", + "id": "GoogleAppsCardV1Columns", + "properties": { + "columnItems": { + "description": "An array of columns. You can include up to 2 columns in a card or dialog.", + "items": { + "$ref": "GoogleAppsCardV1Column" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleAppsCardV1DateTimePicker": { - "description": "Lets users specify a date, a time, or both a date and a time. Accepts text input from users, but features an interactive date and time selector that helps users enter correctly-formatted dates and times. If users enter a date or time incorrectly, the widget shows an error that prompts users to enter the correct format. Not supported by Chat apps. Support by Chat apps coming soon.", + "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": { - "description": "The text that prompts users to enter a date, time, or datetime. Specify text that helps the user enter the information your app needs. For example, if users are setting an appointment, then a label like \"Appointment date\" or \"Appointment date and time\" might work well.", + "description": "The text that prompts users to input a date, a time, or a date and time. For example, if users are scheduling an appointment, use a label such as `Appointment date` or `Appointment date and time`.", "type": "string" }, "name": { - "description": "The name by which the datetime picker is identified in a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/how-tos/dialogs#receive_form_data_from_dialogs).", + "description": "The name by which the `DateTimePicker` is identified in a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data).", "type": "string" }, "onChangeAction": { "$ref": "GoogleAppsCardV1Action", - "description": "Triggered when the user clicks **Save** or **Clear** from the datetime picker interface." + "description": "Triggered when the user clicks **Save** or **Clear** from the `DateTimePicker` interface." }, "timezoneOffsetDate": { - "description": "The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side.", + "description": "The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If unset, the value defaults to the user's time zone setting.", "format": "int32", "type": "integer" }, "type": { - "description": "What kind of date and time input the datetime picker supports.", + "description": "Whether the widget supports inputting a date, a time, or the date and time.", "enum": [ "DATE_AND_TIME", "DATE_ONLY", "TIME_ONLY" ], "enumDescriptions": [ - "The user can select a date and time.", - "The user can only select a date.", - "The user can only select a time." + "Users input a date and time.", + "Users input a date.", + "Users input a time." ], "type": "string" }, "valueMsEpoch": { - "description": "The value displayed as the default value before user input or previous user input, represented in milliseconds ([Epoch time](https://en.wikipedia.org/wiki/Unix_time)). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, to represent 3:00 AM, set epoch time to `3 * 60 * 60 * 1000`.", + "description": "The default value displayed in the widget, in milliseconds since [Unix epoch time](https://en.wikipedia.org/wiki/Unix_time). Specify the value based on the type of picker (`DateTimePickerType`): * `DATE_AND_TIME`: a calendar date and time in UTC. For example, to represent January 1, 2023 at 12:00 PM UTC, use `1672574400000`. * `DATE_ONLY`: a calendar date at 00:00:00 UTC. For example, to represent January 1, 2023, use `1672531200000`. * `TIME_ONLY`: a time in UTC. For example, to represent 12:00 PM, use `43200000` (or `12 * 60 * 60 * 1000`).", "format": "int64", "type": "string" } @@ -1410,28 +2115,29 @@ "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.", + "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": { - "description": "The text that appears below `text`. Always truncates. Supports simple formatting. See Text formatting for formatting details.", + "description": "The text that appears below `text`. Always wraps.", "type": "string" }, "button": { "$ref": "GoogleAppsCardV1Button", - "description": "A button that can be clicked to trigger an action." + "description": "A button that a user can click to trigger an action." }, "endIcon": { "$ref": "GoogleAppsCardV1Icon", - "description": "An icon displayed after the text. Supports [standard](https://developers.google.com/chat/api/guides/message-formats/cards#builtinicons) and [custom](https://developers.google.com/chat/api/guides/message-formats/cards#customicons) icons." + "description": "An icon displayed after the text. Supports [built-in](https://developers.google.com/chat/format-messages#builtinicons) and [custom](https://developers.google.com/chat/format-messages#customicons) icons." }, "icon": { "$ref": "GoogleAppsCardV1Icon", + "deprecated": true, "description": "Deprecated in favor of `startIcon`." }, "onClick": { "$ref": "GoogleAppsCardV1OnClick", - "description": "When users click on `topLabel` or `bottomLabel`, this action triggers." + "description": "This action is triggered when users click `topLabel` or `bottomLabel`." }, "startIcon": { "$ref": "GoogleAppsCardV1Icon", @@ -1439,14 +2145,14 @@ }, "switchControl": { "$ref": "GoogleAppsCardV1SwitchControl", - "description": "A switch widget can be clicked to change its state and trigger an action. Currently supported in [dialogs](https://developers.google.com/chat/how-tos/dialogs). Support for [card messages](https://developers.google.com/chat/api/guides/message-formats/cards) is coming soon." + "description": "A switch widget that a user can click to change its state and trigger an action." }, "text": { - "description": "Required. The primary text. Supports simple formatting. See Text formatting for formatting details.", + "description": "Required. The primary text. Supports simple formatting. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", "type": "string" }, "topLabel": { - "description": "The text that appears above `text`. Always truncates. Supports simple formatting. See Text formatting for formatting details.", + "description": "The text that appears above `text`. Always truncates.", "type": "string" }, "wrapText": { @@ -1457,13 +2163,13 @@ "type": "object" }, "GoogleAppsCardV1Divider": { - "description": "Displays a divider between widgets, a horizontal line. 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. 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. Currently supported in [dialogs](https://developers.google.com/chat/how-tos/dialogs). Support for [card messages](https://developers.google.com/chat/api/guides/message-formats/cards) is coming soon. For example, the following JSON creates a 2 column grid with a single item: ``` \"grid\": { \"title\": \"A fine collection of items\", \"numColumns\": 2, \"borderStyle\": { \"type\": \"STROKE\", \"cornerRadius\": 4.0 }, \"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": { @@ -1494,11 +2200,11 @@ "type": "object" }, "GoogleAppsCardV1GridItem": { - "description": "Represents a single item in the grid layout.", + "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": { - "description": "A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters.", + "description": "A user-specified identifier for this grid item. This identifier is returned in the parent grid's `onClick` callback parameters.", "type": "string" }, "image": { @@ -1513,7 +2219,7 @@ "TEXT_ABOVE" ], "enumDescriptions": [ - "No layout specified.", + "Don't use. Unspecified.", "The title and subtitle are shown below the grid item's image.", "The title and subtitle are shown above the grid item's image." ], @@ -1531,11 +2237,11 @@ "type": "object" }, "GoogleAppsCardV1Icon": { - "description": "An icon displayed in a widget on a card. Supports [standard](https://developers.google.com/chat/api/guides/message-formats/cards) and [custom](https://developers.google.com/chat/api/guides/message-formats/cards#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": { - "description": "Optional. A description of the icon used for accessibility. If unspecified, a default value is provided. As a best practice, you should set a helpful description. For example, if an icon displays a user's account portrait, you could describe it as \"A user's account portrait.\" If the icon displays in a Button, this alt text takes precedence and overwrites the button's alt text, so you should write alt text for the button: Set descriptive text that lets users know what the button does. For example, if a button opens a hyperlink, you might write: \"Opens a new browser tab and navigates to the Google Chat developer documentation at https://developers.google.com/chat\".", + "description": "Optional. A description of the icon used for accessibility. If unspecified, the default value `Button` is provided. As a best practice, you should set a helpful description for what the icon displays, and if applicable, what it does. For example, `A user's account portrait`, or `Opens a new browser tab and navigates to the Google Chat developer documentation at https://developers.google.com/chat`. If the icon is set in a `Button`, the `altText` appears as helper text when the user hovers over the button. However, if the button also sets `text`, the icon's `altText` is ignored.", "type": "string" }, "iconUrl": { @@ -1543,7 +2249,7 @@ "type": "string" }, "imageType": { - "description": "The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.", + "description": "The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a built-in icon.", "enum": [ "SQUARE", "CIRCLE" @@ -1555,33 +2261,33 @@ "type": "string" }, "knownIcon": { - "description": "Display one of the standard icons provided by Google Workspace. For example, to display an airplane icon, specify `AIRPLANE`. For a bus, specify `BUS`. For a full list of supported icons, see [standard icons](https://developers.google.com/chat/api/guides/message-formats/cards).", + "description": "Display one of the built-in icons provided by Google Workspace. For example, to display an airplane icon, specify `AIRPLANE`. For a bus, specify `BUS`. For a full list of supported icons, see [built-in icons](https://developers.google.com/chat/format-messages#builtinicons).", "type": "string" } }, "type": "object" }, "GoogleAppsCardV1Image": { - "description": "An image that is specified by a URL and can have an `onClick` action.", + "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": { - "description": "The alternative text of this image, used for accessibility.", + "description": "The alternative text of this image that's used for accessibility.", "type": "string" }, "imageUrl": { - "description": "The `https` URL that hosts the image. For example: ``` https://developers.google.com/chat/images/quickstart-app-avatar.png ```", + "description": "The HTTPS URL that hosts the image. For example: ``` https://developers.google.com/chat/images/quickstart-app-avatar.png ```", "type": "string" }, "onClick": { "$ref": "GoogleAppsCardV1OnClick", - "description": "When a user clicks on the image, the click triggers this action." + "description": "When a user clicks the image, the click triggers this action." } }, "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": { @@ -1604,11 +2310,11 @@ "type": "object" }, "GoogleAppsCardV1ImageCropStyle": { - "description": "Represents the crop style applied to an image. For example, here's how to apply a 16 by 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": { - "description": "The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`. For example, here's how to apply a 16 by 9 aspect ratio: ``` cropStyle { \"type\": \"RECTANGLE_CUSTOM\", \"aspectRatio\": 16/9 } ```", + "description": "The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`. For example, here's how to apply a 16:9 aspect ratio: ``` cropStyle { \"type\": \"RECTANGLE_CUSTOM\", \"aspectRatio\": 16/9 } ```", "format": "double", "type": "number" }, @@ -1622,7 +2328,7 @@ "RECTANGLE_4_3" ], "enumDescriptions": [ - "No value specified. Do not use.", + "Don't use. Unspecified.", "Default value. Applies a square crop.", "Applies a circular crop.", "Applies a rectangular crop with a custom aspect ratio. Set the custom aspect ratio with `aspectRatio`.", @@ -1634,7 +2340,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": { @@ -1643,11 +2349,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 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." + "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", @@ -1657,29 +2363,29 @@ "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" ], "enumDescriptions": [ - "Default value. The card does not reload; nothing happens.", - "Reloads the card after the child window closes. If used in conjunction with [OpenAs.OVERLAY](https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1#openas), the child window acts as a modal dialog and the parent card is blocked until the child window closes." + "Default value. The card doesn't reload; nothing happens.", + "Reloads the card after the child window closes. If used in conjunction with [`OpenAs.OVERLAY`](https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1#openas), the child window acts as a modal dialog and the parent card is blocked until the child window closes." ], "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" ], "enumDescriptions": [ - "The link opens as a full size window (if that's the frame used by the client.", + "The link opens as a full-size window (if that's the frame used by the client).", "The link opens as an overlay, such as a pop-up." ], "type": "string" @@ -1691,8 +2397,31 @@ }, "type": "object" }, + "GoogleAppsCardV1PlatformDataSource": { + "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/workspace/chat):", + "id": "GoogleAppsCardV1PlatformDataSource", + "properties": { + "commonDataSource": { + "description": "A data source shared by all Google Workspace applications, such as users in a Google Workspace organization.", + "enum": [ + "UNKNOWN", + "USER" + ], + "enumDescriptions": [ + "Default value. Don't use.", + "Google Workspace users. The user can only view and select users from their Google Workspace organization." + ], + "type": "string" + }, + "hostAppDataSource": { + "$ref": "HostAppDataSourceMarkup", + "description": "A data source that's unique to a Google Workspace host application, such spaces in Google Chat." + } + }, + "type": "object" + }, "GoogleAppsCardV1Section": { - "description": "A section contains a collection of widgets that are rendered vertically in the order that they are 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": { @@ -1700,7 +2429,7 @@ "type": "boolean" }, "header": { - "description": "Text that appears at the top of a section. Supports [simple HTML formatted text](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", + "description": "Text that appears at the top of a section. Supports simple HTML formatted text. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", "type": "string" }, "uncollapsibleWidgetsCount": { @@ -1709,7 +2438,7 @@ "type": "integer" }, "widgets": { - "description": "All the widgets in the section. Must contain at least 1 widget.", + "description": "All the widgets in the section. Must contain at least one widget.", "items": { "$ref": "GoogleAppsCardV1Widget" }, @@ -1719,11 +2448,15 @@ "type": "object" }, "GoogleAppsCardV1SelectionInput": { - "description": "A widget that creates a UI item with options for users to select. For example, a dropdown menu or check list. 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/how-tos/dialogs#receive_form_data_from_dialogs). When you need to collect data from users that matches options you set, use a selection input. To collect abstract data from users, use the text input widget instead. Only supported in [dialogs](https://developers.google.com/chat/how-tos/dialogs). Support for [card messages](https://developers.google.com/chat/api/guides/message-formats/cards) coming soon.", + "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": { + "$ref": "GoogleAppsCardV1Action", + "description": "An external data source, such as a relational data base." + }, "items": { - "description": "An array of the selected items. For example, all the selected check boxes.", + "description": "An array of selectable items. For example, an array of radio buttons or checkboxes. Supports up to 100 items.", "items": { "$ref": "GoogleAppsCardV1SelectionItem" }, @@ -1733,27 +2466,43 @@ "description": "The text that appears above the selection input field in the user interface. Specify text that helps the user enter the information your app needs. For example, if users are selecting the urgency of a work ticket from a drop-down menu, the label might be \"Urgency\" or \"Select urgency\".", "type": "string" }, + "multiSelectMaxSelectedItems": { + "description": "For multiselect menus, the maximum number of items that a user can select. Minimum value is 1 item. If unspecified, defaults to 3 items.", + "format": "int32", + "type": "integer" + }, + "multiSelectMinQueryLength": { + "description": "For multiselect menus, the number of text characters that a user inputs before the Chat app queries autocomplete and displays suggested items in the menu. If unspecified, defaults to 0 characters for static data sources and 3 characters for external data sources.", + "format": "int32", + "type": "integer" + }, "name": { - "description": "The name by which the selection input is identified in a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/how-tos/dialogs#receive_form_data_from_dialogs).", + "description": "The name that identifies the selection input in a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data).", "type": "string" }, "onChangeAction": { "$ref": "GoogleAppsCardV1Action", - "description": "If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button that submits the form. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/how-tos/dialogs#receive_form_data_from_dialogs)." + "description": "If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button that submits the form. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data)." + }, + "platformDataSource": { + "$ref": "GoogleAppsCardV1PlatformDataSource", + "description": "A data source from Google Workspace." }, "type": { - "description": "The way that an option appears to users. Different options support different types of interactions. For example, users can enable multiple check boxes, but can only select one value from a dropdown menu. Each selection input supports one type of selection. Mixing check boxes and switches, for example, is not supported.", + "description": "The type of items that are displayed to users in a `SelectionInput` widget. Selection types support different types of interactions. For example, users can select one or more checkboxes, but they can only select one value from a dropdown menu.", "enum": [ "CHECK_BOX", "RADIO_BUTTON", "SWITCH", - "DROPDOWN" + "DROPDOWN", + "MULTI_SELECT" ], "enumDescriptions": [ - "A set of checkboxes. Users can select multiple check boxes per selection input. Currently supported in [dialogs](https://developers.google.com/chat/how-tos/dialogs). Support for [card messages](https://developers.google.com/chat/api/guides/message-formats/cards) is coming soon.", - "A set of radio buttons. Users can select one radio button per selection input. Currently supported in [dialogs](https://developers.google.com/chat/how-tos/dialogs). Support for [card messages](https://developers.google.com/chat/api/guides/message-formats/cards) is coming soon.", - "A set of switches. Users can turn on multiple switches at once per selection input. Currently supported in [dialogs](https://developers.google.com/chat/how-tos/dialogs). Support for [card messages](https://developers.google.com/chat/api/guides/message-formats/cards) is coming soon.", - "A dropdown menu. Users can select one dropdown menu item per selection input. Currently supported in [dialogs](https://developers.google.com/chat/how-tos/dialogs). Support for [card messages](https://developers.google.com/chat/api/guides/message-formats/cards) is coming soon." + "A set of checkboxes. Users can select one or more checkboxes.", + "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.", + "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." ], "type": "string" } @@ -1761,37 +2510,45 @@ "type": "object" }, "GoogleAppsCardV1SelectionItem": { - "description": "A selectable item in a selection input, such as a check box or a 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": { + "description": "For multiselect menus, a text description or label that's displayed below the item's `text` field.", + "type": "string" + }, "selected": { - "description": "When `true`, more than one item is selected. If more than one item is selected for radio buttons and dropdown menus, the first selected item is received and the ones after are ignored.", + "description": "Whether the item is selected by default. If the selection input only accepts one value (such as for radio buttons or a dropdown menu), only set this field for one item.", "type": "boolean" }, + "startIconUri": { + "description": "For multiselect menus, the URL for the icon displayed next to the item's `text` field. Supports PNG and JPEG files. Must be an `HTTPS` URL. For example, `https://developers.google.com/chat/images/quickstart-app-avatar.png`.", + "type": "string" + }, "text": { - "description": "The text displayed to users.", + "description": "The text that identifies or describes the item to users.", "type": "string" }, "value": { - "description": "The value associated with this item. The client should use this as a form input value. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/how-tos/dialogs#receive_form_data_from_dialogs).", + "description": "The value associated with this item. The client should use this as a form input value. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data).", "type": "string" } }, "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": { - "description": "The value of a suggested input to a text input field. This is equivalent to what users would enter themselves.", + "description": "The value of a suggested input to a text input field. This is equivalent to what users enter themselves.", "type": "string" } }, "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 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 is 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": { @@ -1805,11 +2562,11 @@ "type": "object" }, "GoogleAppsCardV1SwitchControl": { - "description": "Either a toggle-style switch or a checkbox inside a `decoratedText` widget. Only supported on the `decoratedText` widget. Currently supported in [dialogs](https://developers.google.com/chat/how-tos/dialogs). Support for [card messages](https://developers.google.com/chat/api/guides/message-formats/cards) is coming soon.", + "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", @@ -1823,7 +2580,7 @@ "type": "string" }, "name": { - "description": "The name by which the switch widget is identified in a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/how-tos/dialogs#receive_form_data_from_dialogs).", + "description": "The name by which the switch widget is identified in a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data).", "type": "string" }, "onChangeAction": { @@ -1835,19 +2592,19 @@ "type": "boolean" }, "value": { - "description": "The value entered by a user, returned as part of a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/how-tos/dialogs#receive_form_data_from_dialogs).", + "description": "The value entered by a user, returned as part of a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data).", "type": "string" } }, "type": "object" }, "GoogleAppsCardV1TextInput": { - "description": "A field in which users can enter text. Supports suggestions and on-change actions. 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/how-tos/dialogs#receive_form_data_from_dialogs). When you need to collect abstract data from users, use a text input. To collect defined data from users, use the selection input widget instead. Only supported in [dialogs](https://developers.google.com/chat/how-tos/dialogs). Support for [card messages](https://developers.google.com/chat/api/guides/message-formats/cards) coming soon.", + "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 Chat apps. Support by Chat apps coming soon." + "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.", @@ -1855,19 +2612,23 @@ }, "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 is 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.", + "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.", "type": "string" }, "name": { - "description": "The name by which the text input is identified in a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/how-tos/dialogs#receive_form_data_from_dialogs).", + "description": "The name by which the text input is identified in a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data).", "type": "string" }, "onChangeAction": { "$ref": "GoogleAppsCardV1Action", - "description": "What to do when a change occurs in the text input field. Examples of changes include 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." + "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`. [Google Chat apps](https://developers.google.com/workspace/chat):", + "type": "string" }, "type": { "description": "How a text input field appears in the user interface. For example, whether the field is single or multi-line.", @@ -1882,14 +2643,14 @@ "type": "string" }, "value": { - "description": "The value entered by a user, returned as part of a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/how-tos/dialogs#receive_form_data_from_dialogs).", + "description": "The value entered by a user, returned as part of a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data).", "type": "string" } }, "type": "object" }, "GoogleAppsCardV1TextParagraph": { - "description": "A paragraph of text that supports formatting. See [Text formatting](https://developers.google.com/workspace/add-ons/concepts/widgets#text_formatting) for details.", + "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": { @@ -1905,15 +2666,19 @@ "properties": { "buttonList": { "$ref": "GoogleAppsCardV1ButtonList", - "description": "A list of buttons. For example, the following JSON creates two buttons. The first is a blue text button and the second is an image button that opens a link: ``` \"buttonList\": { \"buttons\": [ \"button\": { \"text\": \"Edit\", \"color\": { \"red\": 0, \"green\": 0, \"blue\": 1, \"alpha\": 1 } \"disabled\": true }, \"button\": { \"icon\": { \"knownIcon\": \"INVITE\" \"altText\": \"check calendar\" }, \"onClick\": { \"openLink\": { \"url\": \"https://example.com/calendar\" } } }, ] } ```" + "description": "A list of buttons. For example, the following JSON creates two buttons. The first is a blue text button and the second is an image button that opens a link: ``` \"buttonList\": { \"buttons\": [ { \"text\": \"Edit\", \"color\": { \"red\": 0, \"green\": 0, \"blue\": 1, \"alpha\": 1 }, \"disabled\": true, }, { \"icon\": { \"knownIcon\": \"INVITE\", \"altText\": \"check calendar\" }, \"onClick\": { \"openLink\": { \"url\": \"https://example.com/calendar\" } } } ] } ```" + }, + "columns": { + "$ref": "GoogleAppsCardV1Columns", + "description": "Displays up to 2 columns. To include more than 2 columns, or to use rows, use the `Grid` widget. For example, the following JSON creates 2 columns that each contain text paragraphs: ``` \"columns\": { \"columnItems\": [ { \"horizontalSizeStyle\": \"FILL_AVAILABLE_SPACE\", \"horizontalAlignment\": \"CENTER\", \"verticalAlignment\": \"CENTER\", \"widgets\": [ { \"textParagraph\": { \"text\": \"First column text paragraph\" } } ] }, { \"horizontalSizeStyle\": \"FILL_AVAILABLE_SPACE\", \"horizontalAlignment\": \"CENTER\", \"verticalAlignment\": \"CENTER\", \"widgets\": [ { \"textParagraph\": { \"text\": \"Second column text paragraph\" } } ] } ] } ```" }, "dateTimePicker": { "$ref": "GoogleAppsCardV1DateTimePicker", - "description": "Displays a selection/input widget for date, time, or date and time. Not supported by Chat apps. Support by Chat apps is coming soon. For example, the following JSON creates a datetime picker to schedule an appointment: ``` \"date_time_picker\": { \"name\": \"appointment_time\", \"label\": \"Book your appointment at:\", \"type\": \"DateTimePickerType.DATE_AND_TIME\", \"valueMsEpoch\": \"796435200000\" } ```" + "description": "Displays a widget that lets users input a date, time, or date and time. For example, the following JSON creates a date time picker to schedule an appointment: ``` \"dateTimePicker\": { \"name\": \"appointment_time\", \"label\": \"Book your appointment at:\", \"type\": \"DATE_AND_TIME\", \"valueMsEpoch\": \"796435200000\" } ```" }, "decoratedText": { "$ref": "GoogleAppsCardV1DecoratedText", - "description": "Displays a decorated text item. For example, the following JSON creates a decorated text widget showing email address: ``` \"decoratedText\": { \"icon\": { \"knownIcon\": \"EMAIL\" }, \"topLabel\": \"Email Address\", \"text\": \"sasha@example.com\", \"bottomLabel\": \"This is a new Email address!\", \"switchWidget\": { \"name\": \"has_send_welcome_email_to_sasha\", \"selected\": false, \"controlType\": \"ControlType.CHECKBOX\" } } ```" + "description": "Displays a decorated text item. For example, the following JSON creates a decorated text widget showing email address: ``` \"decoratedText\": { \"icon\": { \"knownIcon\": \"EMAIL\" }, \"topLabel\": \"Email Address\", \"text\": \"sasha@example.com\", \"bottomLabel\": \"This is a new Email address!\", \"switchControl\": { \"name\": \"has_send_welcome_email_to_sasha\", \"selected\": false, \"controlType\": \"CHECKBOX\" } } ```" }, "divider": { "$ref": "GoogleAppsCardV1Divider", @@ -1921,33 +2686,106 @@ }, "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. Currently supported in [dialogs](https://developers.google.com/chat/how-tos/dialogs). Support for [card messages](https://developers.google.com/chat/api/guides/message-formats/cards) is coming soon. For example, the following JSON creates a 2 column grid with a single item: ``` \"grid\": { \"title\": \"A fine collection of items\", \"numColumns\": 2, \"borderStyle\": { \"type\": \"STROKE\", \"cornerRadius\": 4.0 }, \"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.", + "enum": [ + "HORIZONTAL_ALIGNMENT_UNSPECIFIED", + "START", + "CENTER", + "END" + ], + "enumDescriptions": [ + "Don't use. Unspecified.", + "Default value. Aligns widgets to the start position of the column. For left-to-right layouts, aligns to the left. For right-to-left layouts, aligns to the right.", + "Aligns widgets to the center of the column.", + "Aligns widgets to the end position of the column. For left-to-right layouts, aligns widgets to the right. For right-to-left layouts, aligns widgets to the left." + ], + "type": "string" }, "image": { "$ref": "GoogleAppsCardV1Image", - "description": "Displays an image. For example, the following JSON creates an image with alternative text: ``` \"image\": { \"imageUrl\": \"https://developers.google.com/chat/images/quickstart-app-avatar.png\" \"altText\": \"Chat app avatar\" } ```" + "description": "Displays an image. For example, the following JSON creates an image with alternative text: ``` \"image\": { \"imageUrl\": \"https://developers.google.com/chat/images/quickstart-app-avatar.png\", \"altText\": \"Chat app avatar\" } ```" }, "selectionInput": { "$ref": "GoogleAppsCardV1SelectionInput", - "description": "Displays a selection control that lets users select items. Selection controls can be check boxes, radio buttons, switches, or dropdown menus. Currently supported in [dialogs](https://developers.google.com/chat/how-tos/dialogs). Support for [card messages](https://developers.google.com/chat/api/guides/message-formats/cards) is coming soon. For example, the following JSON creates a dropdown menu that lets users choose a size: ``` \"selectionInput\": { \"name\": \"size\", \"label\": \"Size\" \"type\": \"SelectionType.DROPDOWN\", \"items\": [ { \"text\": \"S\", \"value\": \"small\", \"selected\": false }, { \"text\": \"M\", \"value\": \"medium\", \"selected\": true }, { \"text\": \"L\", \"value\": \"large\", \"selected\": false }, { \"text\": \"XL\", \"value\": \"extra_large\", \"selected\": false } ] } ```" + "description": "Displays a selection control that lets users select items. Selection controls can be checkboxes, radio buttons, switches, or dropdown menus. For example, the following JSON creates a dropdown menu that lets users choose a size: ``` \"selectionInput\": { \"name\": \"size\", \"label\": \"Size\" \"type\": \"DROPDOWN\", \"items\": [ { \"text\": \"S\", \"value\": \"small\", \"selected\": false }, { \"text\": \"M\", \"value\": \"medium\", \"selected\": true }, { \"text\": \"L\", \"value\": \"large\", \"selected\": false }, { \"text\": \"XL\", \"value\": \"extra_large\", \"selected\": false } ] } ```" }, "textInput": { "$ref": "GoogleAppsCardV1TextInput", - "description": "Displays a text box that users can type into. Currently supported in [dialogs](https://developers.google.com/chat/how-tos/dialogs). Support for [card messages](https://developers.google.com/chat/api/guides/message-formats/cards) is coming soon. For example, the following JSON creates a text input for an email address: ``` \"textInput\": { \"name\": \"mailing_address\", \"label\": \"Mailing Address\" } ``` As another example, the following JSON creates a text input for a programming language with static suggestions: ``` \"textInput\": { \"name\": \"preferred_programing_language\", \"label\": \"Preferred Language\", \"initialSuggestions\": { \"items\": [ { \"text\": \"C++\" }, { \"text\": \"Java\" }, { \"text\": \"JavaScript\" }, { \"text\": \"Python\" } ] } } ```" + "description": "Displays a text box that users can type into. For example, the following JSON creates a text input for an email address: ``` \"textInput\": { \"name\": \"mailing_address\", \"label\": \"Mailing Address\" } ``` As another example, the following JSON creates a text input for a programming language with static suggestions: ``` \"textInput\": { \"name\": \"preferred_programing_language\", \"label\": \"Preferred Language\", \"initialSuggestions\": { \"items\": [ { \"text\": \"C++\" }, { \"text\": \"Java\" }, { \"text\": \"JavaScript\" }, { \"text\": \"Python\" } ] } } ```" }, "textParagraph": { "$ref": "GoogleAppsCardV1TextParagraph", - "description": "Displays a text paragraph. Supports [simple HTML formatted text](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting). For example, the following JSON creates a bolded text: ``` \"textParagraph\": { \"text\": \" *bold text*\" } ```" + "description": "Displays a text paragraph. Supports simple HTML formatted text. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting). For example, the following JSON creates a bolded text: ``` \"textParagraph\": { \"text\": \" *bold text*\" } ```" + } + }, + "type": "object" + }, + "GoogleAppsCardV1Widgets": { + "description": "The supported widgets that you can include in a column. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend): Columns for Google Workspace Add-ons are in Developer Preview.", + "id": "GoogleAppsCardV1Widgets", + "properties": { + "buttonList": { + "$ref": "GoogleAppsCardV1ButtonList", + "description": "ButtonList widget." + }, + "dateTimePicker": { + "$ref": "GoogleAppsCardV1DateTimePicker", + "description": "DateTimePicker widget." + }, + "decoratedText": { + "$ref": "GoogleAppsCardV1DecoratedText", + "description": "DecoratedText widget." + }, + "image": { + "$ref": "GoogleAppsCardV1Image", + "description": "Image widget." + }, + "selectionInput": { + "$ref": "GoogleAppsCardV1SelectionInput", + "description": "SelectionInput widget." + }, + "textInput": { + "$ref": "GoogleAppsCardV1TextInput", + "description": "TextInput widget." + }, + "textParagraph": { + "$ref": "GoogleAppsCardV1TextParagraph", + "description": "TextParagraph widget." + } + }, + "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": "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/workspace/chat):", + "id": "HostAppDataSourceMarkup", + "properties": { + "chatDataSource": { + "$ref": "ChatClientDataSourceMarkup", + "description": "A data source from Google Chat." } }, "type": "object" }, "Image": { - "description": "An image that is specified by a URL and can have an onclick action.", + "description": "An image that's specified by a URL and can have an `onclick` action.", "id": "Image", "properties": { "aspectRatio": { - "description": "The aspect ratio of this image (width/height). This field allows clients to reserve the right height for the image while waiting for it to load. It's not meant to override the native aspect ratio of the image. If unset, the server fills it by prefetching the image.", + "description": "The aspect ratio of this image (width and height). This field lets you reserve the right height for the image while waiting for it to load. It's not meant to override the built-in aspect ratio of the image. If unset, the server fills it by prefetching the image.", "format": "double", "type": "number" }, @@ -1957,17 +2795,17 @@ }, "onClick": { "$ref": "OnClick", - "description": "The onclick action." + "description": "The `onclick` action." } }, "type": "object" }, "ImageButton": { - "description": "An image button with an onclick action.", + "description": "An image button with an `onclick` action.", "id": "ImageButton", "properties": { "icon": { - "description": "The icon specified by an enum that indices to an icon provided by Chat API.", + "description": "The icon specified by an `enum` that indices to an icon provided by Chat API.", "enum": [ "ICON_UNSPECIFIED", "AIRPLANE", @@ -2041,45 +2879,45 @@ "type": "string" }, "name": { - "description": "The name of this image_button which will be used for accessibility. Default value will be provided if developers don't specify.", + "description": "The name of this `image_button` that's used for accessibility. Default value is provided if this name isn't specified.", "type": "string" }, "onClick": { "$ref": "OnClick", - "description": "The onclick action." + "description": "The `onclick` action." } }, "type": "object" }, "Inputs": { - "description": "Types of data inputs for widgets. Users enter data with these inputs.", + "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. Not supported by Chat apps." + "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. Not supported by Chat apps." + "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. Not supported by Chat apps." + "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" }, "KeyValue": { - "description": "A UI element contains a key (label) and a value (content). And this element may also contain some actions such as onclick button.", + "description": "A UI element contains a key (label) and a value (content). This element can also contain some actions such as `onclick` button.", "id": "KeyValue", "properties": { "bottomLabel": { - "description": "The text of the bottom label. Formatted text supported.", + "description": "The text of the bottom label. Formatted text supported. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", "type": "string" }, "button": { @@ -2087,7 +2925,7 @@ "description": "A button that can be clicked to trigger an action." }, "content": { - "description": "The text of the content. Formatted text supported and always required.", + "description": "The text of the content. Formatted text supported and always required. 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).", "type": "string" }, "contentMultiline": { @@ -2095,7 +2933,7 @@ "type": "boolean" }, "icon": { - "description": "An enum value that will be replaced by the Chat API with the corresponding icon image.", + "description": "An enum value that's replaced by the Chat API with the corresponding icon image.", "enum": [ "ICON_UNSPECIFIED", "AIRPLANE", @@ -2170,10 +3008,10 @@ }, "onClick": { "$ref": "OnClick", - "description": "The onclick action. Only the top label, bottom label and content region are clickable." + "description": "The `onclick` action. Only the top label, bottom label, and content region are clickable." }, "topLabel": { - "description": "The text of the top label. Formatted text supported.", + "description": "The text of the top label. Formatted text supported. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", "type": "string" } }, @@ -2183,24 +3021,58 @@ "id": "ListMembershipsResponse", "properties": { "memberships": { - "description": "List of memberships in the requested (or first) page.", + "description": "Unordered list. List of memberships in the requested (or first) page.", "items": { "$ref": "Membership" }, "type": "array" }, "nextPageToken": { - "description": "A token that can be sent as `pageToken` to retrieve the next page of results. If empty, there are no subsequent pages.", + "description": "A token that you can send as `pageToken` to retrieve the next page of results. If empty, there are no subsequent pages.", "type": "string" } }, "type": "object" }, + "ListMessagesResponse": { + "id": "ListMessagesResponse", + "properties": { + "messages": { + "description": "List of messages.", + "items": { + "$ref": "Message" + }, + "type": "array" + }, + "nextPageToken": { + "description": "You can send a token as `pageToken` to retrieve the next page of results. If empty, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, + "ListReactionsResponse": { + "id": "ListReactionsResponse", + "properties": { + "nextPageToken": { + "description": "Continuation token to retrieve the next page of results. It's empty for the last page of results.", + "type": "string" + }, + "reactions": { + "description": "List of reactions in the requested (or first) page.", + "items": { + "$ref": "Reaction" + }, + "type": "array" + } + }, + "type": "object" + }, "ListSpacesResponse": { "id": "ListSpacesResponse", "properties": { "nextPageToken": { - "description": "A token that can be sent as `pageToken` to retrieve the next page of results. If empty, there are no subsequent pages.", + "description": "You can send a token as `pageToken` to retrieve the next page of results. If empty, there are no subsequent pages.", "type": "string" }, "spaces": { @@ -2214,11 +3086,11 @@ "type": "object" }, "MatchedUrl": { - "description": "A matched url in a Chat message. Chat apps can preview matched URLs. For more information, refer to [Preview links](https://developers.google.com/chat/how-tos/preview-links).", + "description": "A matched URL in a Chat message. Chat apps can preview matched URLs. For more information, see [Preview links](https://developers.google.com/chat/how-tos/preview-links).", "id": "MatchedUrl", "properties": { "url": { - "description": "Output only. The url that was matched.", + "description": "Output only. The URL that was matched.", "readOnly": true, "type": "string" } @@ -2241,32 +3113,39 @@ "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": "A Google Chat user or app. Format: `users/{user}` or `users/app` When `users/{user}`, represents a [person](https://developers.google.com/people/api/rest/v1/people) in the People API or a [user](https://developers.google.com/admin-sdk/directory/reference/rest/v1/users) in the Admin SDK Directory API. When `users/app`, represents a Chat app creating membership for itself." + "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`." }, "name": { - "description": "Resource name of the membership. Format: spaces/{space}/members/{member}", + "description": "Resource name of the membership, assigned by the server. Format: `spaces/{space}/members/{member}`", "type": "string" }, "role": { - "description": "Output only. User's role within a Chat space, which determines their permitted actions in the space.", + "description": "Optional. User's role within a Chat space, which determines their permitted actions in the space. [Developer Preview](https://developers.google.com/workspace/preview): This field can only be used as input in `UpdateMembership`.", "enum": [ "MEMBERSHIP_ROLE_UNSPECIFIED", "ROLE_MEMBER", "ROLE_MANAGER" ], "enumDescriptions": [ - "Default value. The user isn't a member of the space, but might be invited.", + "Default value. For users: they aren't a member of the space, but can be invited. For Google Groups: they're always assigned this role (other enum values might be used in the future).", "A member of the space. The user has basic permissions, like sending messages to the space. In 1:1 and unnamed group conversations, everyone has this role.", - "A space manager. The user has all basic permissions plus administrative permissions that allow them to manage the space, like adding or removing members. Only supports SpaceType.SPACE." + "A space manager. The user has all basic permissions plus administrative permissions that let them manage the space, like adding or removing members. Only supported in SpaceType.SPACE." ], - "readOnly": true, "type": "string" }, "state": { @@ -2278,10 +3157,10 @@ "NOT_A_MEMBER" ], "enumDescriptions": [ - "Default, do not use.", - "The user has joined the space.", - "The user has been invited, is able to join the space, but currently has not joined.", - "The user is not a member of the space, has not been invited and is not able to join the space." + "Default value. Don't use.", + "The user is added to the space, and can participate in the space.", + "The user is invited to join the space, but hasn't joined it.", + "The user doesn't belong to the space and doesn't have a pending invitation to join the space." ], "readOnly": true, "type": "string" @@ -2290,7 +3169,7 @@ "type": "object" }, "Message": { - "description": "A message in Google Chat.", + "description": "A message in a Google Chat space.", "id": "Message", "properties": { "actionResponse": { @@ -2298,7 +3177,7 @@ "description": "Input only. Parameters that a Chat app can use to configure how its response is posted." }, "annotations": { - "description": "Output only. Annotations associated with the text in this message.", + "description": "Output only. Annotations associated with the `text` in this message.", "items": { "$ref": "Annotation" }, @@ -2306,42 +3185,75 @@ "type": "array" }, "argumentText": { - "description": "Plain-text body of the message with all Chat app mentions stripped out.", + "description": "Output only. Plain-text body of the message with all Chat app mentions stripped out.", + "readOnly": true, "type": "string" }, + "attachedGifs": { + "description": "Output only. GIF images that are attached to the message.", + "items": { + "$ref": "AttachedGif" + }, + "readOnly": true, + "type": "array" + }, "attachment": { - "description": "User uploaded attachment.", + "description": "User-uploaded attachment.", "items": { "$ref": "Attachment" }, "type": "array" }, "cards": { - "description": "Deprecated: Use `cards_v2` instead. Rich, formatted and interactive cards that can be used to display UI elements such as: formatted texts, buttons, clickable images. Cards are normally displayed below the plain-text body of the message.", + "deprecated": true, + "description": "Deprecated: Use `cards_v2` instead. Rich, formatted, and interactive cards that you can use to display UI elements such as: formatted texts, buttons, and clickable images. Cards are normally displayed below the plain-text body of the message. `cards` and `cards_v2` can have a maximum size of 32 KB.", "items": { "$ref": "Card" }, "type": "array" }, "cardsV2": { - "description": "Richly formatted and interactive cards that display UI elements and editable widgets, such as: - Formatted text - Buttons - Clickable images - Checkboxes - Radio buttons - Input widgets. Cards are usually displayed below the text-body of a Chat message, but can situationally appear other places, such as [dialogs](https://developers.google.com/chat/how-tos/dialogs). The `cardId` is a unique identifier among cards in the same message and for identifying user input values. Currently supported widgets include: - `TextParagraph` - `DecoratedText` - `Image` - `ButtonList` - `Divider`", + "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. For example usage, see [Name a created message](https://developers.google.com/chat/api/guides/crudl/messages#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": "Output only. The time at which the message was created in Google Chat server.", + "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" + }, + "deleteTime": { + "description": "Output only. The time at which the message was deleted in Google Chat. If the message is never deleted, this field is empty.", "format": "google-datetime", "readOnly": true, "type": "string" }, + "deletionMetadata": { + "$ref": "DeletionMetadata", + "description": "Output only. Information about a deleted message. A message is deleted when `delete_time` is set.", + "readOnly": true + }, + "emojiReactionSummaries": { + "description": "Output only. The list of emoji reaction summaries on the message.", + "items": { + "$ref": "EmojiReactionSummary" + }, + "readOnly": true, + "type": "array" + }, "fallbackText": { - "description": "A plain-text description of the message's cards, used when the actual cards cannot be displayed (e.g. mobile notifications).", + "description": "A plain-text description of the message's cards, used when the actual cards can't be displayed\u2014for example, mobile notifications.", + "type": "string" + }, + "formattedText": { + "description": "Output only. Contains the message `text` with markups added to communicate formatting. This field might not capture all formatting visible in the UI, but includes the following: * [Markup syntax](https://developers.google.com/chat/format-messages) for bold, italic, strikethrough, monospace, and monospace block. * [User mentions](https://developers.google.com/chat/format-messages#messages-@mention) using the format ``. * Custom hyperlinks using the format `<{url}|{rendered_text}>` where the first string is the URL and the second is the rendered text\u2014for example, ``. * Custom emoji using the format `:{emoji_name}:`\u2014for example, `:smile:`. This doesn't apply to Unicode emoji, such as `U+1F600` for a grinning face emoji. For more information, see [View text formatting sent in a message](https://developers.google.com/chat/format-messages#view_text_formatting_sent_in_a_message)", + "readOnly": true, "type": "string" }, "lastUpdateTime": { @@ -2352,16 +3264,25 @@ }, "matchedUrl": { "$ref": "MatchedUrl", - "description": "Output only. A URL in `spaces.messages.text` that matches a link preview pattern. For more information, refer to [Preview links](https://developers.google.com/chat/how-tos/preview-links).", + "description": "Output only. A URL in `spaces.messages.text` that matches a link preview pattern. For more information, see [Preview links](https://developers.google.com/chat/how-tos/preview-links).", "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.", + "readOnly": true + }, "sender": { "$ref": "User", - "description": "Output only. The user who created the message.", + "description": "Output only. The user who created the message. If your Chat app [authenticates as a user](https://developers.google.com/chat/api/guides/auth/users), the output populates the [user](https://developers.google.com/chat/api/reference/rest/v1/User) `name` and `type`.", "readOnly": true }, "slashCommand": { @@ -2371,15 +3292,15 @@ }, "space": { "$ref": "Space", - "description": "The space the message belongs to. When accessed with [user authentication](https://developers.google.com/chat/api/guides/auth/users), only the name of the Space is populated." + "description": "If your Chat app [authenticates as a user](https://developers.google.com/chat/api/guides/auth/users), the output populates the [space](https://developers.google.com/chat/api/reference/rest/v1/spaces) `name`." }, "text": { - "description": "Plain-text body of the message. The first link to an image, video, web page, or other preview-able item generates a preview chip.", + "description": "Plain-text body of the message. The first link to an image, video, or web page generates a [preview chip](https://developers.google.com/chat/how-tos/preview-links). You can also [@mention a Google Chat user](https://developers.google.com/chat/format-messages#messages-@mention), or everyone in the space. To learn about creating text messages, see [Send a text message](https://developers.google.com/chat/api/guides/v1/messages/create#create-text-messages).", "type": "string" }, "thread": { "$ref": "Thread", - "description": "The thread the message belongs to. For example usage, see [Start or reply to a message thread](/chat/api/guides/crudl/messages#start_or_reply_to_a_message_thread)." + "description": "The thread the message belongs to. For example usage, see [Start or reply to a message thread](https://developers.google.com/chat/api/guides/v1/messages/create#create-message-thread)." }, "threadReply": { "description": "Output only. When `true`, the message is a response in a reply thread. When `false`, the message is visible in the space's top-level conversation as either the first message of a thread or a message with no threaded replies. If the space doesn't support reply in threads, this field is always `false`.", @@ -2390,16 +3311,16 @@ "type": "object" }, "OnClick": { - "description": "An onclick action (e.g. open a link).", + "description": "An `onclick` action (for example, open a link).", "id": "OnClick", "properties": { "action": { "$ref": "FormAction", - "description": "A form action will be triggered by this onclick if specified." + "description": "A form action is triggered by this `onclick` action if specified." }, "openLink": { "$ref": "OpenLink", - "description": "This onclick triggers an open link action if specified." + "description": "This `onclick` action triggers an open link action if specified." } }, "type": "object" @@ -2415,16 +3336,54 @@ }, "type": "object" }, + "QuotedMessageMetadata": { + "description": "Information about a quoted message.", + "id": "QuotedMessageMetadata", + "properties": { + "lastUpdateTime": { + "description": "Output only. The timestamp when the quoted message was created or when the quoted message was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. Resource name of the quoted message. Format: `spaces/{space}/messages/{message}`", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "Reaction": { + "description": "A reaction to a message.", + "id": "Reaction", + "properties": { + "emoji": { + "$ref": "Emoji", + "description": "The emoji used in the reaction." + }, + "name": { + "description": "The resource name of the reaction. Format: `spaces/{space}/messages/{message}/reactions/{reaction}`", + "type": "string" + }, + "user": { + "$ref": "User", + "description": "Output only. The user who created the reaction.", + "readOnly": true + } + }, + "type": "object" + }, "Section": { - "description": "A section contains a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties (e.g. float).", + "description": "A section contains a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there's currently no need for layout properties (for example, float).", "id": "Section", "properties": { "header": { - "description": "The header of the section, text formatted supported.", + "description": "The header of the section. Formatted text is supported. 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).", "type": "string" }, "widgets": { - "description": "A section must contain at least 1 widget.", + "description": "A section must contain at least one widget.", "items": { "$ref": "WidgetMarkup" }, @@ -2433,12 +3392,47 @@ }, "type": "object" }, + "SelectionItems": { + "description": "List of widget autocomplete results.", + "id": "SelectionItems", + "properties": { + "items": { + "description": "An array of the SelectionItem objects.", + "items": { + "$ref": "GoogleAppsCardV1SelectionItem" + }, + "type": "array" + } + }, + "type": "object" + }, + "SetUpSpaceRequest": { + "id": "SetUpSpaceRequest", + "properties": { + "memberships": { + "description": "Optional. The Google Chat users to invite to join the space. Omit the calling user, as they are added automatically. The set currently allows up to 20 memberships (in addition to the caller). The `Membership.member` field must contain a `user` with `name` populated (format: `users/{user}`) and `type` set to `User.Type.HUMAN`. You can only add human users when setting up a space (adding Chat apps is only supported for direct message setup with the calling app). You can also add members using the user's email as an alias for {user}. For example, the `user.name` can be `users/example@gmail.com`.\" To invite Gmail users or users from external Google Workspace domains, user's email must be used for `{user}`. Optional when setting `Space.spaceType` to `SPACE`. Required when setting `Space.spaceType` to `GROUP_CHAT`, along with at least two memberships. Required when setting `Space.spaceType` to `DIRECT_MESSAGE` with a human user, along with exactly one membership. Must be empty when creating a 1:1 conversation between a human and the calling Chat app (when setting `Space.spaceType` to `DIRECT_MESSAGE` and `Space.singleUserBotDm` to `true`).", + "items": { + "$ref": "Membership" + }, + "type": "array" + }, + "requestId": { + "description": "Optional. A unique identifier for this request. A random UUID is recommended. Specifying an existing request ID returns the space created with that ID instead of creating a new space. Specifying an existing request ID from the same Chat app with a different authenticated user returns an error.", + "type": "string" + }, + "space": { + "$ref": "Space", + "description": "Required. The `Space.spaceType` field is required. To create a space, set `Space.spaceType` to `SPACE` and set `Space.displayName`. If you receive the error message `ALREADY_EXISTS` when setting up a space, try a different `displayName`. An existing space within the Google Workspace organization might already use this display name. To create a group chat, set `Space.spaceType` to `GROUP_CHAT`. Don't set `Space.displayName`. To create a 1:1 conversation between humans, set `Space.spaceType` to `DIRECT_MESSAGE` and set `Space.singleUserBotDm` to `false`. Don't set `Space.displayName` or `Space.spaceDetails`. To create an 1:1 conversation between a human and the calling Chat app, set `Space.spaceType` to `DIRECT_MESSAGE` and `Space.singleUserBotDm` to `true`. Don't set `Space.displayName` or `Space.spaceDetails`. If a `DIRECT_MESSAGE` space already exists, that space is returned instead of creating a new space." + } + }, + "type": "object" + }, "SlashCommand": { "description": "A [slash command](https://developers.google.com/chat/how-tos/slash-commands) in Google Chat.", "id": "SlashCommand", "properties": { "commandId": { - "description": "The id of the slash command invoked.", + "description": "The ID of the slash command invoked.", "format": "int64", "type": "string" } @@ -2454,7 +3448,7 @@ "description": "The Chat app whose command was invoked." }, "commandId": { - "description": "The command id of the invoked slash command.", + "description": "The command ID of the invoked slash command.", "format": "int64", "type": "string" }, @@ -2463,7 +3457,7 @@ "type": "string" }, "triggersDialog": { - "description": "Indicating whether the slash command is for a dialog.", + "description": "Indicates whether the slash command is for a dialog.", "type": "boolean" }, "type": { @@ -2474,7 +3468,7 @@ "INVOKE" ], "enumDescriptions": [ - "Default value for the enum. DO NOT USE.", + "Default value for the enum. Don't use.", "Add Chat app to space.", "Invoke slash command in space." ], @@ -2487,12 +3481,30 @@ "description": "A space in Google Chat. Spaces are conversations between two or more users or 1:1 messages between a user and a Chat app.", "id": "Space", "properties": { - "displayName": { - "description": "The space's display name. Required when [creating a space](https://developers.google.com/chat/api/reference/rest/v1/spaces/create). For direct messages, this field may be empty.", + "adminInstalled": { + "description": "Output only. Whether the Chat app was installed by a Google Workspace administrator. Administrators can install a Chat app for their domain, organizational unit, or a group of users. Administrators can only install Chat apps for direct messaging between users and the app. To support admin install, your app must feature direct messaging.", + "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" + }, + "externalUserAllowed": { + "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}", + "description": "Resource name of the space. Format: `spaces/{space}`", "type": "string" }, "singleUserBotDm": { @@ -2503,6 +3515,20 @@ "$ref": "SpaceDetails", "description": "Details about the space including description and rules." }, + "spaceHistoryState": { + "description": "The message history state for messages and threads in this space.", + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "enumDescriptions": [ + "Default value. Do not use.", + "History off. [Messages and threads are kept for 24 hours](https://support.google.com/chat/answer/7664687).", + "History on. The organization's [Vault retention rules](https://support.google.com/vault/answer/7657597) specify for how long messages and threads are kept." + ], + "type": "string" + }, "spaceThreadingState": { "description": "Output only. The threading state in the Chat space.", "enum": [ @@ -2520,13 +3546,31 @@ "readOnly": true, "type": "string" }, + "spaceType": { + "description": "The type of space. Required when creating a space or updating the space type of a space. Output only for other usage.", + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "enumDescriptions": [ + "Reserved.", + "A place where people send messages, share files, and collaborate. A `SPACE` can include Chat apps.", + "Group conversations between 3 or more people. A `GROUP_CHAT` can include Chat apps.", + "1:1 messages between two humans or a human and a Chat app." + ], + "type": "string" + }, "threaded": { + "deprecated": true, "description": "Output only. Deprecated: Use `spaceThreadingState` instead. Whether messages are threaded in this space.", "readOnly": true, "type": "boolean" }, "type": { - "description": "Output only. Deprecated: Use `singleUserBotDm` or `spaceType` (developer preview) instead. The type of a space.", + "deprecated": true, + "description": "Output only. Deprecated: Use `space_type` instead. The type of a space.", "enum": [ "TYPE_UNSPECIFIED", "ROOM", @@ -2535,7 +3579,7 @@ "enumDescriptions": [ "", "Conversations between two or more humans.", - "1:1 Direct Message between a human and a Chat app, where all messages are flat. Note that this does not include direct messages between two humans." + "1:1 Direct Message between a human and a Chat app, where all messages are flat. Note that this doesn't include direct messages between two humans." ], "readOnly": true, "type": "string" @@ -2543,16 +3587,27 @@ }, "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. [Google Chat apps](https://developers.google.com/workspace/chat):", + "id": "SpaceDataSource", + "properties": { + "defaultToCurrentSpace": { + "description": "If set to `true`, the multiselect menu selects the current Google Chat space as an item by default.", + "type": "boolean" + } + }, + "type": "object" + }, "SpaceDetails": { "description": "Details about the space including description and rules.", "id": "SpaceDetails", "properties": { "description": { - "description": "Optional. A description of the space. It could describe the space's discussion topic, functional purpose, or participants.", + "description": "Optional. A description of the space. For example, describe the space's discussion topic, functional purpose, or participants. Supports up to 150 characters.", "type": "string" }, "guidelines": { - "description": "Optional. The space's rules, expectations, and etiquette.", + "description": "Optional. The space's rules, expectations, and etiquette. Supports up to 5,000 characters.", "type": "string" } }, @@ -2590,7 +3645,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" }, @@ -2600,12 +3655,12 @@ "type": "object" }, "TextButton": { - "description": "A button with text and onclick action.", + "description": "A button with text and `onclick` action.", "id": "TextButton", "properties": { "onClick": { "$ref": "OnClick", - "description": "The onclick action of the button." + "description": "The `onclick` action of the button." }, "text": { "description": "The text of the button.", @@ -2615,7 +3670,7 @@ "type": "object" }, "TextParagraph": { - "description": "A paragraph of text. Formatted text supported.", + "description": "A paragraph of text. Formatted text supported. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", "id": "TextParagraph", "properties": { "text": { @@ -2625,22 +3680,22 @@ "type": "object" }, "Thread": { - "description": "A thread in Google Chat.", + "description": "A thread in a Google Chat space. For example usage, see [Start or reply to a message thread](https://developers.google.com/chat/api/guides/v1/messages/create#create-message-thread). If you specify a thread when creating a message, you can set the [`messageReplyOption`](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages/create#messagereplyoption) field to determine what happens if no matching thread is found.", "id": "Thread", "properties": { "name": { - "description": "Resource name of the thread. Example: spaces/{space}/threads/{thread}", + "description": "Output only. Resource name of the thread. Example: `spaces/{space}/threads/{thread}`", "type": "string" }, "threadKey": { - "description": "Optional. Opaque thread identifier. To start or add to a thread, create a message and specify a `threadKey` or the thread.name. For example usage, see [Start or reply to a message thread](/chat/api/guides/crudl/messages#start_or_reply_to_a_message_thread). For other requests, this is an output only field.", + "description": "Optional. Input for creating or updating a thread. Otherwise, output only. ID for the thread. Supports up to 4000 characters. This ID is unique to the Chat app that sets it. For example, if multiple Chat apps create a message using the same thread key, the messages are posted in different threads. To reply in a thread created by a person or another Chat app, specify the thread `name` field instead.", "type": "string" } }, "type": "object" }, "TimeInput": { - "description": "Time input values. Not supported by Chat apps.", + "description": "Time input values.", "id": "TimeInput", "properties": { "hours": { @@ -2657,7 +3712,7 @@ "type": "object" }, "TimeZone": { - "description": "The timezone ID and offset from Coordinated Universal Time (UTC). Not supported by Chat apps.", + "description": "The timezone ID and offset from Coordinated Universal Time (UTC). Only supported for the event types [`CARD_CLICKED`](https://developers.google.com/chat/api/reference/rest/v1/EventType#ENUM_VALUES.CARD_CLICKED) and [`SUBMIT_DIALOG`](https://developers.google.com/chat/api/reference/rest/v1/DialogEventType#ENUM_VALUES.SUBMIT_DIALOG).", "id": "TimeZone", "properties": { "id": { @@ -2672,8 +3727,43 @@ }, "type": "object" }, + "UpdatedWidget": { + "description": "The response of the updated widget. Used to provide autocomplete options for a widget.", + "id": "UpdatedWidget", + "properties": { + "suggestions": { + "$ref": "SelectionItems", + "description": "List of widget autocomplete results" + }, + "widget": { + "description": "The ID of the updated widget. The ID must match the one for the widget that triggered the update request.", + "type": "string" + } + }, + "type": "object" + }, + "UploadAttachmentRequest": { + "id": "UploadAttachmentRequest", + "properties": { + "filename": { + "description": "Required. The filename of the attachment, including the file extension.", + "type": "string" + } + }, + "type": "object" + }, + "UploadAttachmentResponse": { + "id": "UploadAttachmentResponse", + "properties": { + "attachmentDataRef": { + "$ref": "AttachmentDataRef", + "description": "Reference to the uploaded attachment." + } + }, + "type": "object" + }, "User": { - "description": "A user in Google Chat.", + "description": "A user in Google Chat. When returned as an output from a request, if your Chat app [authenticates as a user](https://developers.google.com/chat/api/guides/auth/users), the output for a `User` resource only populates the user's `name` and `type`.", "id": "User", "properties": { "displayName": { @@ -2691,7 +3781,7 @@ "type": "boolean" }, "name": { - "description": "Resource name for a Google Chat user. For human users, represents a person in the People API or a user in the Admin SDK Directory API. Format: `users/{user}`", + "description": "Resource name for a Google Chat user. Format: `users/{user}`. `users/app` can be used as an alias for the calling app bot user. For human users, `{user}` is the same user identifier as: - the `id` for the [Person](https://developers.google.com/people/api/rest/v1/people) in the People API. For example, `users/123456789` in Chat API represents the same person as the `123456789` Person profile ID in People API. - the `id` for a [user](https://developers.google.com/admin-sdk/directory/reference/rest/v1/users) in the Admin SDK Directory API. - the user's email address can be used as an alias for `{user}` in API requests. For example, if the People API Person profile ID for `user@example.com` is `123456789`, you can use `users/user@example.com` as an alias to reference `users/123456789`. Only the canonical resource name (for example `users/123456789`) will be returned from the API.", "type": "string" }, "type": { @@ -2723,7 +3813,7 @@ "MENTION" ], "enumDescriptions": [ - "Default value for the enum. DO NOT USE.", + "Default value for the enum. Don't use.", "Add user to space.", "Mention user in space." ], @@ -2737,11 +3827,11 @@ "type": "object" }, "WidgetMarkup": { - "description": "A widget is a UI element that presents texts, images, etc.", + "description": "A widget is a UI element that presents text and images.", "id": "WidgetMarkup", "properties": { "buttons": { - "description": "A list of buttons. Buttons is also oneof data and only one of these fields should be set.", + "description": "A list of buttons. Buttons is also `oneof data` and only one of these fields should be set.", "items": { "$ref": "Button" }, diff --git a/etc/api/chromemanagement/v1/chromemanagement-api.json b/etc/api/chromemanagement/v1/chromemanagement-api.json index cda88b577c..ce49f43e8d 100644 --- a/etc/api/chromemanagement/v1/chromemanagement-api.json +++ b/etc/api/chromemanagement/v1/chromemanagement-api.json @@ -254,6 +254,36 @@ }, "reports": { "methods": { + "countChromeBrowsersNeedingAttention": { + "description": "Count of Chrome Browsers that have been recently enrolled, have new policy to be synced, or have no recent activity.", + "flatPath": "v1/customers/{customersId}/reports:countChromeBrowsersNeedingAttention", + "httpMethod": "GET", + "id": "chromemanagement.customers.reports.countChromeBrowsersNeedingAttention", + "parameterOrder": [ + "customer" + ], + "parameters": { + "customer": { + "description": "Required. The customer ID or \"my_customer\" prefixed with \"customers/\".", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + }, + "orgUnitId": { + "description": "Optional. The ID of the organizational unit. If omitted, all data will be returned.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+customer}/reports:countChromeBrowsersNeedingAttention", + "response": { + "$ref": "GoogleChromeManagementV1CountChromeBrowsersNeedingAttentionResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.reports.readonly" + ] + }, "countChromeDevicesReachingAutoExpirationDate": { "description": "Generate report of the number of devices expiring in each month of the selected time frame. Devices are grouped by auto update expiration date and model. Further information can be found [here](https://support.google.com/chrome/a/answer/10564947).", "flatPath": "v1/customers/{customersId}/reports:countChromeDevicesReachingAutoExpirationDate", @@ -429,12 +459,12 @@ "type": "string" }, "filter": { - "description": "Query string to filter results, AND-separated fields in EBNF syntax. Note: OR operations are not supported in this filter. Supported filter fields: * app_name * app_type * install_type * number_of_permissions * total_install_count * latest_profile_active_date * permission_name", + "description": "Query string to filter results, AND-separated fields in EBNF syntax. Note: OR operations are not supported in this filter. Supported filter fields: * app_name * app_type * install_type * number_of_permissions * total_install_count * latest_profile_active_date * permission_name * app_id", "location": "query", "type": "string" }, "orderBy": { - "description": "Field used to order results. Supported order by fields: * app_name * app_type * install_type * number_of_permissions * total_install_count", + "description": "Field used to order results. Supported order by fields: * app_name * app_type * install_type * number_of_permissions * total_install_count * app_id", "location": "query", "type": "string" }, @@ -463,8 +493,161 @@ "https://www.googleapis.com/auth/chrome.management.reports.readonly" ] }, + "countPrintJobsByPrinter": { + "description": "Get a summary of printing done by each printer.", + "flatPath": "v1/customers/{customersId}/reports:countPrintJobsByPrinter", + "httpMethod": "GET", + "id": "chromemanagement.customers.reports.countPrintJobsByPrinter", + "parameterOrder": [ + "customer" + ], + "parameters": { + "customer": { + "description": "Required. Customer ID prefixed with \"customers/\" or \"customers/my_customer\" to use the customer associated to the account making the request.", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + }, + "filter": { + "description": "Query string to filter results, AND-separated fields in EBNF syntax. Note: OR operations are not supported in this filter. Note: Only >= and <= comparators are supported in this filter. Supported filter fields: * complete_time", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Field used to order results. If omitted, results will be ordered in ascending order of the 'printer' field. Supported order_by fields: * printer * job_count * device_count * user_count", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Maximum number of results to return. Maximum and default are 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Token to specify the page of the response to be returned.", + "location": "query", + "type": "string" + }, + "printerOrgUnitId": { + "description": "The ID of the organizational unit for printers. If specified, only data for printers from the specified organizational unit will be returned. If omitted, data for printers from all organizational units will be returned.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+customer}/reports:countPrintJobsByPrinter", + "response": { + "$ref": "GoogleChromeManagementV1CountPrintJobsByPrinterResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.reports.readonly" + ] + }, + "countPrintJobsByUser": { + "description": "Get a summary of printing done by each user.", + "flatPath": "v1/customers/{customersId}/reports:countPrintJobsByUser", + "httpMethod": "GET", + "id": "chromemanagement.customers.reports.countPrintJobsByUser", + "parameterOrder": [ + "customer" + ], + "parameters": { + "customer": { + "description": "Required. Customer ID prefixed with \"customers/\" or \"customers/my_customer\" to use the customer associated to the account making the request.", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + }, + "filter": { + "description": "Query string to filter results, AND-separated fields in EBNF syntax. Note: OR operations are not supported in this filter. Note: Only >= and <= comparators are supported in this filter. Supported filter fields: * complete_time", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Field used to order results. If omitted, results will be ordered in ascending order of the 'user_email' field. Supported order_by fields: * user_email * job_count * printer_count * device_count", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Maximum number of results to return. Maximum and default are 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Token to specify the page of the response to be returned.", + "location": "query", + "type": "string" + }, + "printerOrgUnitId": { + "description": "The ID of the organizational unit for printers. If specified, only print jobs initiated with printers from the specified organizational unit will be counted. If omitted, all print jobs will be counted.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+customer}/reports:countPrintJobsByUser", + "response": { + "$ref": "GoogleChromeManagementV1CountPrintJobsByUserResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.reports.readonly" + ] + }, + "enumeratePrintJobs": { + "description": "Get a list of print jobs.", + "flatPath": "v1/customers/{customersId}/reports:enumeratePrintJobs", + "httpMethod": "GET", + "id": "chromemanagement.customers.reports.enumeratePrintJobs", + "parameterOrder": [ + "customer" + ], + "parameters": { + "customer": { + "description": "Required. Customer ID prefixed with \"customers/\" or \"customers/my_customer\" to use the customer associated to the account making the request.", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + }, + "filter": { + "description": "Query string to filter results, AND-separated fields in EBNF syntax. Note: OR operations are not supported in this filter. Note: Only >= and <= comparators are supported for `complete_time`. Note: Only = comparator supported for `user_id` and `printer_id`. Supported filter fields: * complete_time * printer_id * user_id", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Field used to order results. If not specified, results will be ordered in descending order of the `complete_time` field. Supported order by fields: * title * state * create_time * complete_time * document_page_count * color_mode * duplex_mode * printer * user_email", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The number of print jobs in the page from 0 to 100 inclusive, if page_size is not specified or zero, the size will be 50.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token received from a previous `EnumeratePrintJobs` call. Provide this to retrieve the subsequent page. If omitted, the first page of results will be returned. When paginating, all other parameters provided to `EnumeratePrintJobs` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "printerOrgUnitId": { + "description": "The ID of the organizational unit for printers. If specified, only print jobs submitted to printers from the specified organizational unit will be returned.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+customer}/reports:enumeratePrintJobs", + "response": { + "$ref": "GoogleChromeManagementV1EnumeratePrintJobsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.reports.readonly" + ] + }, "findInstalledAppDevices": { - "description": "Generate report of devices that have a specified app installed.", + "description": "Generate report of managed Chrome browser devices that have a specified app installed.", "flatPath": "v1/customers/{customersId}/reports:findInstalledAppDevices", "httpMethod": "GET", "id": "chromemanagement.customers.reports.findInstalledAppDevices", @@ -563,7 +746,7 @@ "type": "string" }, "readMask": { - "description": "Required. Read mask to specify which fields to return.", + "description": "Required. Read mask to specify which fields to return. Supported read_mask paths are: - name - org_unit_id - device_id - serial_number - cpu_info - cpu_status_report - memory_info - memory_status_report - network_info - network_diagnostics_report - network_status_report - os_update_status - graphics_info - graphics_status_report - battery_info - battery_status_report - storage_info - storage_status_report - thunderbolt_info - audio_status_report - boot_performance_report - heartbeat_status_report - network_bandwidth_report - peripherals_report - kiosk_app_status_report - app_report - runtime_counters_report ", "format": "google-fieldmask", "location": "query", "type": "string" @@ -587,7 +770,7 @@ ], "parameters": { "filter": { - "description": "Optional. Only include resources that match the filter. Supported filter fields: - org_unit_id - serial_number - device_id ", + "description": "Optional. Only include resources that match the filter. Supported filter fields: - org_unit_id - serial_number - device_id - reports_timestamp The \"reports_timestamp\" filter accepts either the Unix Epoch milliseconds format or the RFC3339 UTC \"Zulu\" format with nanosecond resolution and up to nine fractional digits. Both formats should be surrounded by simple double quotes. Examples: \"2014-10-02T15:01:23Z\", \"2014-10-02T15:01:23.045123456Z\", \"1679283943823\".", "location": "query", "type": "string" }, @@ -610,7 +793,7 @@ "type": "string" }, "readMask": { - "description": "Required. Read mask to specify which fields to return.", + "description": "Required. Read mask to specify which fields to return. Supported read_mask paths are: - name - org_unit_id - device_id - serial_number - cpu_info - cpu_status_report - memory_info - memory_status_report - network_info - network_diagnostics_report - network_status_report - os_update_status - graphics_info - graphics_status_report - battery_info - battery_status_report - storage_info - storage_status_report - thunderbolt_info - audio_status_report - boot_performance_report - heartbeat_status_report - network_bandwidth_report - peripherals_report - kiosk_app_status_report - app_report - runtime_counters_report ", "format": "google-fieldmask", "location": "query", "type": "string" @@ -638,7 +821,7 @@ ], "parameters": { "filter": { - "description": "Optional. Only include resources that match the filter. Supported filter fields: * device_id * user_id * device_org_unit_id * user_org_unit_id * timestamp * event_type", + "description": "Optional. Only include resources that match the filter. Although this parameter is currently optional, this parameter will be required- please specify at least 1 event type. Supported filter fields: - device_id - user_id - device_org_unit_id - user_org_unit_id - timestamp - event_type The \"timestamp\" filter accepts either the Unix Epoch milliseconds format or the RFC3339 UTC \"Zulu\" format with nanosecond resolution and up to nine fractional digits. Both formats should be surrounded by simple double quotes. Examples: \"2014-10-02T15:01:23Z\", \"2014-10-02T15:01:23.045123456Z\", \"1679283943823\".", "location": "query", "type": "string" }, @@ -661,7 +844,7 @@ "type": "string" }, "readMask": { - "description": "Required. Read mask to specify which fields to return.", + "description": "Required. Read mask to specify which fields to return. Although currently required, this field will become optional, while the filter parameter with an event type will be come required. Supported read_mask paths are: - device - user - audio_severe_underrun_event - usb_peripherals_event - https_latency_change_event - network_state_change_event - wifi_signal_strength_event - vpn_connection_state_change_event - app_install_event - app_uninstall_event - app_launch_event ", "format": "google-fieldmask", "location": "query", "type": "string" @@ -676,13 +859,188 @@ ] } } + }, + "notificationConfigs": { + "methods": { + "create": { + "description": "Create a telemetry notification config.", + "flatPath": "v1/customers/{customersId}/telemetry/notificationConfigs", + "httpMethod": "POST", + "id": "chromemanagement.customers.telemetry.notificationConfigs.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource where this notification config will be created. Format: `customers/{customer}`", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/telemetry/notificationConfigs", + "request": { + "$ref": "GoogleChromeManagementV1TelemetryNotificationConfig" + }, + "response": { + "$ref": "GoogleChromeManagementV1TelemetryNotificationConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.telemetry.readonly" + ] + }, + "delete": { + "description": "Delete a telemetry notification config.", + "flatPath": "v1/customers/{customersId}/telemetry/notificationConfigs/{notificationConfigsId}", + "httpMethod": "DELETE", + "id": "chromemanagement.customers.telemetry.notificationConfigs.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the notification config to delete. Format: `customers/{customer}/telemetry/notificationConfigs/{notification_config}`", + "location": "path", + "pattern": "^customers/[^/]+/telemetry/notificationConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.telemetry.readonly" + ] + }, + "list": { + "description": "List all telemetry notification configs.", + "flatPath": "v1/customers/{customersId}/telemetry/notificationConfigs", + "httpMethod": "GET", + "id": "chromemanagement.customers.telemetry.notificationConfigs.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of notification configs to return. The service may return fewer than this value. If unspecified, at most 100 notification configs 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 `ListTelemetryNotificationConfigs` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListTelemetryNotificationConfigs` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent which owns the notification configs.", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/telemetry/notificationConfigs", + "response": { + "$ref": "GoogleChromeManagementV1ListTelemetryNotificationConfigsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.telemetry.readonly" + ] + } + } + }, + "users": { + "methods": { + "get": { + "description": "Get telemetry user.", + "flatPath": "v1/customers/{customersId}/telemetry/users/{usersId}", + "httpMethod": "GET", + "id": "chromemanagement.customers.telemetry.users.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the `TelemetryUser` to return.", + "location": "path", + "pattern": "^customers/[^/]+/telemetry/users/[^/]+$", + "required": true, + "type": "string" + }, + "readMask": { + "description": "Read mask to specify which fields to return. Supported read_mask paths are: - name - org_unit_id - user_id - user_email - user_device.device_id - user_device.audio_status_report - user_device.device_activity_report - user_device.network_bandwidth_report - user_device.peripherals_report ", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleChromeManagementV1TelemetryUser" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.telemetry.readonly" + ] + }, + "list": { + "description": "List all telemetry users.", + "flatPath": "v1/customers/{customersId}/telemetry/users", + "httpMethod": "GET", + "id": "chromemanagement.customers.telemetry.users.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Only include resources that match the filter. Supported filter fields: - user_id - user_org_unit_id ", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Maximum number of results to return. Default value is 100. Maximum value is 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Token to specify next page in the list.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Customer id or \"my_customer\" to use the customer associated to the account making the request.", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + }, + "readMask": { + "description": "Read mask to specify which fields to return. Supported read_mask paths are: - name - org_unit_id - user_id - user_email - user_device.device_id - user_device.audio_status_report - user_device.device_activity_report - user_device.network_bandwidth_report - user_device.peripherals_report ", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/telemetry/users", + "response": { + "$ref": "GoogleChromeManagementV1ListTelemetryUsersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.telemetry.readonly" + ] + } + } } } } } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://chromemanagement.googleapis.com/", "schemas": { "GoogleChromeManagementV1AndroidAppInfo": { @@ -831,7 +1189,7 @@ "type": "object" }, "GoogleChromeManagementV1AudioStatusReport": { - "description": "Status data for storage. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportDeviceAudioStatus](https://chromeenterprise.google/policies/#ReportDeviceAudioStatus) * Data Collection Frequency: 10 minutes * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A", + "description": "Status data for storage. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportDeviceAudioStatus](https://chromeenterprise.google/policies/#ReportDeviceAudioStatus) * Data Collection Frequency: 10 minutes * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A * Granular permission needed: TELEMETRY_API_AUDIO_REPORT", "id": "GoogleChromeManagementV1AudioStatusReport", "properties": { "inputDevice": { @@ -876,7 +1234,7 @@ "type": "object" }, "GoogleChromeManagementV1BatteryInfo": { - "description": "Information about the battery. * This field provides device information, which is static and will not change over time. * Data for this field is controlled via policy: [ReportDevicePowerStatus](https://chromeenterprise.google/policies/#ReportDevicePowerStatus) * Data Collection Frequency: Only at Upload * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A", + "description": "Information about the battery. * This field provides device information, which is static and will not change over time. * Data for this field is controlled via policy: [ReportDevicePowerStatus](https://chromeenterprise.google/policies/#ReportDevicePowerStatus) * Data Collection Frequency: Only at Upload * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A * Granular permission needed: TELEMETRY_API_BATTERY_INFO", "id": "GoogleChromeManagementV1BatteryInfo", "properties": { "designCapacity": { @@ -969,7 +1327,7 @@ "type": "object" }, "GoogleChromeManagementV1BatteryStatusReport": { - "description": "Status data for battery. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportDevicePowerStatus](https://chromeenterprise.google/policies/#ReportDevicePowerStatus) * Data Collection Frequency: Only at Upload * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A", + "description": "Status data for battery. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportDevicePowerStatus](https://chromeenterprise.google/policies/#ReportDevicePowerStatus) * Data Collection Frequency: Only at Upload * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A * Granular permission needed: TELEMETRY_API_BATTERY_REPORT", "id": "GoogleChromeManagementV1BatteryStatusReport", "properties": { "batteryHealth": { @@ -982,9 +1340,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" @@ -1024,7 +1382,7 @@ "type": "object" }, "GoogleChromeManagementV1BootPerformanceReport": { - "description": "Boot performance report of a device. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportDeviceBootMode](https://chromeenterprise.google/policies/#ReportDeviceBootMode) * Data Collection Frequency: On every boot up event * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: Yes * Reported for affiliated users only: N/A", + "description": "Boot performance report of a device. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportDeviceBootMode](https://chromeenterprise.google/policies/#ReportDeviceBootMode) * Data Collection Frequency: On every boot up event * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: Yes * Reported for affiliated users only: N/A * Granular permission needed: TELEMETRY_API_OS_REPORT", "id": "GoogleChromeManagementV1BootPerformanceReport", "properties": { "bootUpDuration": { @@ -1320,6 +1678,28 @@ }, "type": "object" }, + "GoogleChromeManagementV1CountChromeBrowsersNeedingAttentionResponse": { + "description": "Response containing counts for browsers that need attention.", + "id": "GoogleChromeManagementV1CountChromeBrowsersNeedingAttentionResponse", + "properties": { + "noRecentActivityCount": { + "description": "Number of browsers that haven\u2019t had any recent activity", + "format": "int64", + "type": "string" + }, + "pendingBrowserUpdateCount": { + "description": "Number of browsers that are pending an OS update", + "format": "int64", + "type": "string" + }, + "recentlyEnrolledCount": { + "description": "Number of browsers that have been recently enrolled", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "GoogleChromeManagementV1CountChromeDevicesReachingAutoExpirationDateResponse": { "description": "Response containing a list of devices expiring in each month of a selected time frame. Counts are grouped by model and Auto Update Expiration date.", "id": "GoogleChromeManagementV1CountChromeDevicesReachingAutoExpirationDateResponse", @@ -1447,8 +1827,54 @@ }, "type": "object" }, + "GoogleChromeManagementV1CountPrintJobsByPrinterResponse": { + "description": "Response containing a summary printing report for each printer from the specified organizational unit for the requested time interval.", + "id": "GoogleChromeManagementV1CountPrintJobsByPrinterResponse", + "properties": { + "nextPageToken": { + "description": "Pagination token for requesting the next page.", + "type": "string" + }, + "printerReports": { + "description": "List of PrinterReports matching request.", + "items": { + "$ref": "GoogleChromeManagementV1PrinterReport" + }, + "type": "array" + }, + "totalSize": { + "description": "Total number of printers matching request.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1CountPrintJobsByUserResponse": { + "description": "Response containing a summary printing report for each user that has initiated a print job with a printer from the specified organizational unit during the requested time interval.", + "id": "GoogleChromeManagementV1CountPrintJobsByUserResponse", + "properties": { + "nextPageToken": { + "description": "Pagination token for requesting the next page.", + "type": "string" + }, + "totalSize": { + "description": "Total number of users matching request.", + "format": "int64", + "type": "string" + }, + "userPrintReports": { + "description": "List of UserPrintReports matching request.", + "items": { + "$ref": "GoogleChromeManagementV1UserPrintReport" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleChromeManagementV1CpuInfo": { - "description": "CPU specifications for the device * This field provides device information, which is static and will not change over time. * Data for this field is controlled via policy: [ReportDeviceCpuInfo](https://chromeenterprise.google/policies/#ReportDeviceCpuInfo) * Data Collection Frequency: Only at Upload * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A", + "description": "CPU specifications for the device * This field provides device information, which is static and will not change over time. * Data for this field is controlled via policy: [ReportDeviceCpuInfo](https://chromeenterprise.google/policies/#ReportDeviceCpuInfo) * Data Collection Frequency: Only at Upload * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A * Granular permission needed: TELEMETRY_API_CPU_INFO", "id": "GoogleChromeManagementV1CpuInfo", "properties": { "architecture": { @@ -1489,7 +1915,7 @@ "type": "object" }, "GoogleChromeManagementV1CpuStatusReport": { - "description": "Provides information about the status of the CPU. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportDeviceCpuInfo](https://chromeenterprise.google/policies/#ReportDeviceCpuInfo) * Data Collection Frequency: Every 10 minutes * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A", + "description": "Provides information about the status of the CPU. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportDeviceCpuInfo](https://chromeenterprise.google/policies/#ReportDeviceCpuInfo) * Data Collection Frequency: Every 10 minutes * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A * Granular permission needed: TELEMETRY_API_CPU_REPORT", "id": "GoogleChromeManagementV1CpuStatusReport", "properties": { "cpuTemperatureInfo": { @@ -1556,6 +1982,36 @@ }, "type": "object" }, + "GoogleChromeManagementV1DeviceActivityReport": { + "description": "Device activity report. * Granular permission needed: TELEMETRY_API_DEVICE_ACTIVITY_REPORT", + "id": "GoogleChromeManagementV1DeviceActivityReport", + "properties": { + "deviceActivityState": { + "description": "Output only. Device activity state.", + "enum": [ + "DEVICE_ACTIVITY_STATE_UNSPECIFIED", + "ACTIVE", + "IDLE", + "LOCKED" + ], + "enumDescriptions": [ + "Device activity state is unspecified.", + "Device is currently being used.", + "Device is currently idle.", + "Device is currently locked." + ], + "readOnly": true, + "type": "string" + }, + "reportTime": { + "description": "Output only. Timestamp of when the report was collected.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleChromeManagementV1DeviceAueCountReport": { "description": "Report for CountChromeDevicesPerAueDateResponse, contains the count of devices of a specific model and auto update expiration range.", "id": "GoogleChromeManagementV1DeviceAueCountReport", @@ -1713,6 +2169,52 @@ }, "type": "object" }, + "GoogleChromeManagementV1DisplayDevice": { + "description": "Information of a display device.", + "id": "GoogleChromeManagementV1DisplayDevice", + "properties": { + "displayHeightMm": { + "description": "Output only. Display height in millimeters.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "displayName": { + "description": "Output only. Display device name.", + "readOnly": true, + "type": "string" + }, + "displayWidthMm": { + "description": "Output only. Display width in millimeters.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "internal": { + "description": "Output only. Is display internal or not.", + "readOnly": true, + "type": "boolean" + }, + "manufactureYear": { + "description": "Output only. Year of manufacture.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "manufacturerId": { + "description": "Output only. Three letter manufacturer ID.", + "readOnly": true, + "type": "string" + }, + "modelId": { + "description": "Output only. Manufacturer product code.", + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, "GoogleChromeManagementV1DisplayInfo": { "description": "Information for a display.", "id": "GoogleChromeManagementV1DisplayInfo", @@ -1723,6 +2225,11 @@ "readOnly": true, "type": "string" }, + "displayName": { + "description": "Output only. Display device name.", + "readOnly": true, + "type": "string" + }, "isInternal": { "description": "Output only. Indicates if display is internal or not.", "readOnly": true, @@ -1749,6 +2256,29 @@ }, "type": "object" }, + "GoogleChromeManagementV1EnumeratePrintJobsResponse": { + "description": "Response containing a list of print jobs.", + "id": "GoogleChromeManagementV1EnumeratePrintJobsResponse", + "properties": { + "nextPageToken": { + "description": "A token, which can be used in a subsequent request to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "printJobs": { + "description": "List of requested print jobs.", + "items": { + "$ref": "GoogleChromeManagementV1PrintJob" + }, + "type": "array" + }, + "totalSize": { + "description": "Total number of print jobs matching request.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "GoogleChromeManagementV1FindInstalledAppDevicesResponse": { "description": "Response containing a list of devices with queried app installed.", "id": "GoogleChromeManagementV1FindInstalledAppDevicesResponse", @@ -1796,19 +2326,37 @@ "type": "object" }, "GoogleChromeManagementV1GraphicsInfo": { - "description": "Information of the graphics subsystem. * This field provides device information, which is static and will not change over time. * Data for this field is controlled via policy: [ReportDeviceGraphicsStatus](https://chromeenterprise.google/policies/#ReportDeviceGraphicsStatus) * Data Collection Frequency: Only at Upload * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A", + "description": "Information of the graphics subsystem. * This field provides device information, which is static and will not change over time. * Data for this field is controlled via policy: [ReportDeviceGraphicsStatus](https://chromeenterprise.google/policies/#ReportDeviceGraphicsStatus) * Data Collection Frequency: Only at Upload * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A * Granular permission needed: TELEMETRY_API_GRAPHICS_INFO", "id": "GoogleChromeManagementV1GraphicsInfo", "properties": { "adapterInfo": { "$ref": "GoogleChromeManagementV1GraphicsAdapterInfo", "description": "Output only. Information about the graphics adapter (GPU).", "readOnly": true + }, + "displayDevices": { + "description": "Output only. Information about the display(s) of the device.", + "items": { + "$ref": "GoogleChromeManagementV1DisplayDevice" + }, + "readOnly": true, + "type": "array" + }, + "eprivacySupported": { + "description": "Output only. Is ePrivacy screen supported or not.", + "readOnly": true, + "type": "boolean" + }, + "touchScreenInfo": { + "$ref": "GoogleChromeManagementV1TouchScreenInfo", + "description": "Output only. Information about the internal touch screen(s) of the device.", + "readOnly": true } }, "type": "object" }, "GoogleChromeManagementV1GraphicsStatusReport": { - "description": "Information of the graphics subsystem. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportDeviceGraphicsInfo](https://chromeenterprise.google/policies/#ReportDeviceGraphicsInfo) * Data Collection Frequency: 3 hours. * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A", + "description": "Information of the graphics subsystem. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportDeviceGraphicsInfo](https://chromeenterprise.google/policies/#ReportDeviceGraphicsInfo) * Data Collection Frequency: 3 hours. * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A * Granular permission needed: TELEMETRY_API_GRAPHICS_REPORT", "id": "GoogleChromeManagementV1GraphicsStatusReport", "properties": { "displays": { @@ -1828,6 +2376,34 @@ }, "type": "object" }, + "GoogleChromeManagementV1HeartbeatStatusReport": { + "description": "Heartbeat status report of a device. * Available for Kiosks * This field provides online/offline/unknown status of a device and will only be included if the status has changed (e.g. Online -> Offline) * Data for this field is controlled via policy: [HeartbeatEnabled](https://chromeenterprise.google/policies/#HeartbeatEnabled) [More Info](https://support.google.com/chrome/a/answer/6179663#:~:text=On%20the%20Chrome,device%20status%20alerts) * Heartbeat Frequency: 2 mins * Note: If a device goes offline, it can take up to 12 minutes for the online status of the device to be updated * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: N/A * Reported for affiliated users only: N/A * Granular permission needed: TELEMETRY_API_DEVICE_ACTIVITY_REPORT", + "id": "GoogleChromeManagementV1HeartbeatStatusReport", + "properties": { + "reportTime": { + "description": "Timestamp of when status changed was detected", + "format": "google-datetime", + "type": "string" + }, + "state": { + "description": "State the device changed to", + "enum": [ + "STATE_UNSPECIFIED", + "UNKNOWN", + "ONLINE", + "OFFLINE" + ], + "enumDescriptions": [ + "State not specified", + "Device is not eligible for heartbeat monitoring", + "Device is online", + "Device is offline" + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleChromeManagementV1HttpsLatencyRoutineData": { "description": "Data that describes the result of the HTTPS latency diagnostics routine, with the HTTPS requests issued to Google websites.", "id": "GoogleChromeManagementV1HttpsLatencyRoutineData", @@ -1971,6 +2547,26 @@ }, "type": "object" }, + "GoogleChromeManagementV1KioskAppStatusReport": { + "description": "Kiosk app status report of a device. * Available for Kiosks * This field provides the app id and version number running on a kiosk device and the timestamp of when the report was last updated * Data for this field is controlled via policy: [ReportDeviceSessionStatus](https://chromeenterprise.google/policies/#ReportDeviceSessionStatus) * Data Collection Frequency: Only at Upload * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A * Granular permission needed: TELEMETRY_API_APPS_REPORT", + "id": "GoogleChromeManagementV1KioskAppStatusReport", + "properties": { + "appId": { + "description": "App id of kiosk app for example \"mdmkkicfmmkgmpkmkdikhlbggogpicma\"", + "type": "string" + }, + "appVersion": { + "description": "App version number of kiosk app for example \"1.10.118\"", + "type": "string" + }, + "reportTime": { + "description": "Timestamp of when report was collected", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "GoogleChromeManagementV1ListTelemetryDevicesResponse": { "id": "GoogleChromeManagementV1ListTelemetryDevicesResponse", "properties": { @@ -2006,8 +2602,44 @@ }, "type": "object" }, + "GoogleChromeManagementV1ListTelemetryNotificationConfigsResponse": { + "description": "Response message for listing notification configs for a customer.", + "id": "GoogleChromeManagementV1ListTelemetryNotificationConfigsResponse", + "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" + }, + "telemetryNotificationConfigs": { + "description": "The telemetry notification configs from the specified customer.", + "items": { + "$ref": "GoogleChromeManagementV1TelemetryNotificationConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1ListTelemetryUsersResponse": { + "description": "Response message for listing telemetry users for a customer.", + "id": "GoogleChromeManagementV1ListTelemetryUsersResponse", + "properties": { + "nextPageToken": { + "description": "Token to specify next page in the list.", + "type": "string" + }, + "telemetryUsers": { + "description": "Telemetry users returned in the response.", + "items": { + "$ref": "GoogleChromeManagementV1TelemetryUser" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleChromeManagementV1MemoryInfo": { - "description": "Memory information of a device. * This field has both telemetry and device information: - `totalRamBytes` - Device information - `availableRamBytes` - Telemetry information - `totalMemoryEncryption` - Device information * Data for this field is controlled via policy: [ReportDeviceMemoryInfo](https://chromeenterprise.google/policies/#ReportDeviceMemoryInfo) * Data Collection Frequency: - `totalRamBytes` - Only at upload - `availableRamBytes` - Every 10 minutes - `totalMemoryEncryption` - at device startup * Default Data Reporting Frequency: - `totalRamBytes` - 3 hours - `availableRamBytes` - 3 hours - `totalMemoryEncryption` - at device startup - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: only for `totalMemoryEncryption` * Reported for affiliated users only: N/A", + "description": "Memory information of a device. * This field has both telemetry and device information: - `totalRamBytes` - Device information - `availableRamBytes` - Telemetry information - `totalMemoryEncryption` - Device information * Data for this field is controlled via policy: [ReportDeviceMemoryInfo](https://chromeenterprise.google/policies/#ReportDeviceMemoryInfo) * Data Collection Frequency: - `totalRamBytes` - Only at upload - `availableRamBytes` - Every 10 minutes - `totalMemoryEncryption` - at device startup * Default Data Reporting Frequency: - `totalRamBytes` - 3 hours - `availableRamBytes` - 3 hours - `totalMemoryEncryption` - at device startup - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: only for `totalMemoryEncryption` * Reported for affiliated users only: N/A * Granular permission needed: TELEMETRY_API_MEMORY_INFO", "id": "GoogleChromeManagementV1MemoryInfo", "properties": { "availableRamBytes": { @@ -2031,7 +2663,7 @@ "type": "object" }, "GoogleChromeManagementV1MemoryStatusReport": { - "description": "Contains samples of memory status reports. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportDeviceMemoryInfo](https://chromeenterprise.google/policies/#ReportDeviceMemoryInfo) * Data Collection Frequency: Only at upload, SystemRamFreeByes is collected every 10 minutes * Default Data Reporting Frequency: Every 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A", + "description": "Contains samples of memory status reports. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportDeviceMemoryInfo](https://chromeenterprise.google/policies/#ReportDeviceMemoryInfo) * Data Collection Frequency: Only at upload, SystemRamFreeByes is collected every 10 minutes * Default Data Reporting Frequency: Every 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A * Granular permission needed: TELEMETRY_API_MEMORY_REPORT", "id": "GoogleChromeManagementV1MemoryStatusReport", "properties": { "pageFaults": { @@ -2061,6 +2693,25 @@ }, "type": "object" }, + "GoogleChromeManagementV1NetworkBandwidthReport": { + "description": "Network bandwidth report. * Granular permission needed: TELEMETRY_API_NETWORK_REPORT", + "id": "GoogleChromeManagementV1NetworkBandwidthReport", + "properties": { + "downloadSpeedKbps": { + "description": "Output only. Download speed in kilobits per second.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "reportTime": { + "description": "Output only. Timestamp of when the report was collected.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleChromeManagementV1NetworkDevice": { "description": "Details about the network device. * This field provides device information, which is static and will not change over time. * Data for this field is controlled via policy: [ReportNetworkDeviceConfiguration](https://chromeenterprise.google/policies/#ReportNetworkDeviceConfiguration) * Data Collection Frequency: At device startup * Default Data Reporting Frequency: At device startup - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: Yes * Reported for affiliated users only: N/A", "id": "GoogleChromeManagementV1NetworkDevice", @@ -2111,7 +2762,7 @@ "type": "object" }, "GoogleChromeManagementV1NetworkDiagnosticsReport": { - "description": "Network testing results to determine the health of the device's network connection, for example whether the HTTPS latency is high or normal.", + "description": "Network testing results to determine the health of the device's network connection, for example whether the HTTPS latency is high or normal. * Granular permission needed: TELEMETRY_API_NETWORK_REPORT", "id": "GoogleChromeManagementV1NetworkDiagnosticsReport", "properties": { "httpsLatencyData": { @@ -2129,7 +2780,7 @@ "type": "object" }, "GoogleChromeManagementV1NetworkInfo": { - "description": "Network device information. * This field provides device information, which is static and will not change over time. * Data for this field is controlled via policy: [ReportNetworkDeviceConfiguration](https://chromeenterprise.google/policies/#ReportNetworkDeviceConfiguration) * Data Collection Frequency: At device startup * Default Data Reporting Frequency: At device startup - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: Yes * Reported for affiliated users only: N/A", + "description": "Network device information. * This field provides device information, which is static and will not change over time. * Data for this field is controlled via policy: [ReportNetworkDeviceConfiguration](https://chromeenterprise.google/policies/#ReportNetworkDeviceConfiguration) * Data Collection Frequency: At device startup * Default Data Reporting Frequency: At device startup - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: Yes * Reported for affiliated users only: N/A * Granular permission needed: TELEMETRY_API_NETWORK_INFO", "id": "GoogleChromeManagementV1NetworkInfo", "properties": { "networkDevices": { @@ -2144,7 +2795,7 @@ "type": "object" }, "GoogleChromeManagementV1NetworkStatusReport": { - "description": "State of visible/configured networks. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportNetworkStatus](https://chromeenterprise.google/policies/#ReportNetworkStatus) * Data Collection Frequency: 60 minutes * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: Yes * Reported for affiliated users only: Yes", + "description": "State of visible/configured networks. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportNetworkStatus](https://chromeenterprise.google/policies/#ReportNetworkStatus) * Data Collection Frequency: 60 minutes * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: Yes * Reported for affiliated users only: Yes * Granular permission needed: TELEMETRY_API_NETWORK_REPORT", "id": "GoogleChromeManagementV1NetworkStatusReport", "properties": { "connectionState": { @@ -2260,7 +2911,7 @@ "type": "object" }, "GoogleChromeManagementV1OsUpdateStatus": { - "description": "Contains information regarding the current OS update status. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportDeviceOsUpdateStatus](https://chromeenterprise.google/policies/#ReportDeviceOsUpdateStatus) * Data Collection Frequency: Only at Upload * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A", + "description": "Contains information regarding the current OS update status. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportDeviceOsUpdateStatus](https://chromeenterprise.google/policies/#ReportDeviceOsUpdateStatus) * Data Collection Frequency: Only at Upload * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A * Granular permission needed: TELEMETRY_API_OS_REPORT", "id": "GoogleChromeManagementV1OsUpdateStatus", "properties": { "lastRebootTime": { @@ -2311,8 +2962,191 @@ }, "type": "object" }, + "GoogleChromeManagementV1PeripheralsReport": { + "description": "Peripherals report. * Granular permission needed: TELEMETRY_API_PERIPHERALS_REPORT", + "id": "GoogleChromeManagementV1PeripheralsReport", + "properties": { + "reportTime": { + "description": "Output only. Timestamp of when the report was collected.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "usbPeripheralReport": { + "description": "Reports of all usb connected devices.", + "items": { + "$ref": "GoogleChromeManagementV1UsbPeripheralReport" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1PrintJob": { + "description": "Represents a request to print a document that has been submitted to a printer.", + "id": "GoogleChromeManagementV1PrintJob", + "properties": { + "colorMode": { + "description": "Color mode.", + "enum": [ + "COLOR_MODE_UNSPECIFIED", + "BLACK_AND_WHITE", + "COLOR" + ], + "enumDescriptions": [ + "Unspecified.", + "Black and white.", + "Color." + ], + "type": "string" + }, + "completeTime": { + "description": "Print job completion timestamp.", + "format": "google-datetime", + "type": "string" + }, + "copyCount": { + "description": "Number of copies.", + "format": "int32", + "type": "integer" + }, + "createTime": { + "description": "Print job creation timestamp.", + "format": "google-datetime", + "type": "string" + }, + "documentPageCount": { + "description": "Number of pages in the document.", + "format": "int32", + "type": "integer" + }, + "duplexMode": { + "description": "Duplex mode.", + "enum": [ + "DUPLEX_MODE_UNSPECIFIED", + "ONE_SIDED", + "TWO_SIDED_LONG_EDGE", + "TWO_SIDED_SHORT_EDGE" + ], + "enumDescriptions": [ + "Unspecified.", + "One-sided.", + "Two-sided flipping over long edge.", + "Two-sided flipping over short edge." + ], + "type": "string" + }, + "id": { + "description": "Unique ID of the print job.", + "type": "string" + }, + "printer": { + "description": "Name of the printer used for printing.", + "type": "string" + }, + "printerId": { + "description": "API ID of the printer used for printing.", + "type": "string" + }, + "state": { + "description": "The final state of the job.", + "enum": [ + "STATE_UNSPECIFIED", + "PRINTED", + "CANCELLED", + "FAILED" + ], + "enumDescriptions": [ + "Print job is in an unspecified state.", + "The document was successfully printed.", + "Print job was cancelled.", + "Print job failed." + ], + "type": "string" + }, + "title": { + "description": "The title of the document.", + "type": "string" + }, + "userEmail": { + "description": "The primary e-mail address of the user who submitted the print job.", + "type": "string" + }, + "userId": { + "description": "The unique Directory API ID of the user who submitted the print job.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1PrinterReport": { + "description": "Report for CountPrintJobsByPrinter, contains statistics on printer usage. Contains the total number of print jobs initiated with this printer, the number of users and the number of devices that have initiated at least one print job with this printer.", + "id": "GoogleChromeManagementV1PrinterReport", + "properties": { + "deviceCount": { + "description": "Number of chrome devices that have been used to send print jobs to the specified printer.", + "format": "int64", + "type": "string" + }, + "jobCount": { + "description": "Number of print jobs sent to the printer.", + "format": "int64", + "type": "string" + }, + "printer": { + "description": "Printer name.", + "type": "string" + }, + "printerId": { + "description": "Printer API ID.", + "type": "string" + }, + "printerModel": { + "description": "Printer model.", + "type": "string" + }, + "userCount": { + "description": "Number of users that have sent print jobs to the printer.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1RuntimeCountersReport": { + "description": "Runtime counters retrieved from CPU. Currently the runtime counters telemetry is only supported by Intel vPro PSR on Gen 14+.", + "id": "GoogleChromeManagementV1RuntimeCountersReport", + "properties": { + "enterHibernationCount": { + "description": "Number of times that the device has entered into the hibernation state. Currently obtained via the PSR, count from S0->S4.", + "format": "int64", + "type": "string" + }, + "enterPoweroffCount": { + "description": "Number of times that the device has entered into the power-off state. Currently obtained via the PSR, count from S0->S5.", + "format": "int64", + "type": "string" + }, + "enterSleepCount": { + "description": "Number of times that the device has entered into the sleep state. Currently obtained via the PSR, count from S0->S3.", + "format": "int64", + "type": "string" + }, + "reportTime": { + "description": "Timestamp when the report was collected.", + "format": "google-datetime", + "type": "string" + }, + "uptimeRuntimeDuration": { + "description": "Total lifetime runtime. Currently always S0 runtime from Intel vPro PSR.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "GoogleChromeManagementV1StorageInfo": { - "description": "Status data for storage. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportDeviceStorageStatus](https://chromeenterprise.google/policies/#ReportDeviceStorageStatus) * Data Collection Frequency: Only at Upload * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A", + "description": "Status data for storage. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportDeviceStorageStatus](https://chromeenterprise.google/policies/#ReportDeviceStorageStatus) * Data Collection Frequency: Only at Upload * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A * Granular permission needed: TELEMETRY_API_STORAGE_INFO", "id": "GoogleChromeManagementV1StorageInfo", "properties": { "availableDiskBytes": { @@ -2357,7 +3191,7 @@ "type": "object" }, "GoogleChromeManagementV1StorageStatusReport": { - "description": "Status data for storage. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportDeviceStorageStatus](https://chromeenterprise.google/policies/#ReportDeviceStorageStatus) * Data Collection Frequency: Only at Upload * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A", + "description": "Status data for storage. * This field is telemetry information and this will change over time as the device is utilized. * Data for this field is controlled via policy: [ReportDeviceStorageStatus](https://chromeenterprise.google/policies/#ReportDeviceStorageStatus) * Data Collection Frequency: Only at Upload * Default Data Reporting Frequency: 3 hours - Policy Controlled: Yes * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: No * Reported for affiliated users only: N/A * Granular permission needed: TELEMETRY_API_STORAGE_REPORT", "id": "GoogleChromeManagementV1StorageStatusReport", "properties": { "disk": { @@ -2378,13 +3212,13 @@ "type": "object" }, "GoogleChromeManagementV1TelemetryAudioSevereUnderrunEvent": { - "description": "`TelemetryAudioSevereUnderrunEvent` is triggered when a audio devices run out of buffer data for more than 5 seconds.", + "description": "`TelemetryAudioSevereUnderrunEvent` is triggered when a audio devices run out of buffer data for more than 5 seconds. * Granular permission needed: TELEMETRY_API_AUDIO_REPORT", "id": "GoogleChromeManagementV1TelemetryAudioSevereUnderrunEvent", "properties": {}, "type": "object" }, "GoogleChromeManagementV1TelemetryDevice": { - "description": "Telemetry data collected from a managed device.", + "description": "Telemetry data collected from a managed device. * Granular permission needed: TELEMETRY_API_DEVICE", "id": "GoogleChromeManagementV1TelemetryDevice", "properties": { "audioStatusReport": { @@ -2458,6 +3292,22 @@ "readOnly": true, "type": "array" }, + "heartbeatStatusReport": { + "description": "Output only. Heartbeat status report containing timestamps periodically sorted in decreasing order of report_time", + "items": { + "$ref": "GoogleChromeManagementV1HeartbeatStatusReport" + }, + "readOnly": true, + "type": "array" + }, + "kioskAppStatusReport": { + "description": "Output only. Kiosk app status report for the kiosk device", + "items": { + "$ref": "GoogleChromeManagementV1KioskAppStatusReport" + }, + "readOnly": true, + "type": "array" + }, "memoryInfo": { "$ref": "GoogleChromeManagementV1MemoryInfo", "description": "Output only. Information regarding memory specs for the device.", @@ -2476,6 +3326,14 @@ "readOnly": true, "type": "string" }, + "networkBandwidthReport": { + "description": "Output only. Network bandwidth reports collected periodically sorted in a decreasing order of report_time.", + "items": { + "$ref": "GoogleChromeManagementV1NetworkBandwidthReport" + }, + "readOnly": true, + "type": "array" + }, "networkDiagnosticsReport": { "description": "Output only. Network diagnostics collected periodically.", "items": { @@ -2510,6 +3368,22 @@ "readOnly": true, "type": "array" }, + "peripheralsReport": { + "description": "Output only. Peripherals reports collected periodically sorted in a decreasing order of report_time.", + "items": { + "$ref": "GoogleChromeManagementV1PeripheralsReport" + }, + "readOnly": true, + "type": "array" + }, + "runtimeCountersReport": { + "description": "Output only. Runtime counters reports collected device lifetime runtime, as well as the counts of S0->S3, S0->S4, and S0->S5 transitions, meaning entering into sleep, hibernation, and power-off states", + "items": { + "$ref": "GoogleChromeManagementV1RuntimeCountersReport" + }, + "readOnly": true, + "type": "array" + }, "serialNumber": { "description": "Output only. Device serial number. This value is the same as the Admin Console's Serial Number in the ChromeOS Devices tab.", "readOnly": true, @@ -2540,7 +3414,7 @@ "type": "object" }, "GoogleChromeManagementV1TelemetryDeviceInfo": { - "description": "Information about a device associated with telemetry data.", + "description": "Information about a device associated with telemetry data. * Granular Permission needed: TELEMETRY_API_DEVICE", "id": "GoogleChromeManagementV1TelemetryDeviceInfo", "properties": { "deviceId": { @@ -2575,10 +3449,13 @@ "enum": [ "EVENT_TYPE_UNSPECIFIED", "AUDIO_SEVERE_UNDERRUN", - "NETWORK_CONNECTION_STATE_CHANGE", + "NETWORK_STATE_CHANGE", "USB_ADDED", "USB_REMOVED", - "NETWORK_HTTPS_LATENCY_CHANGE" + "NETWORK_HTTPS_LATENCY_CHANGE", + "WIFI_SIGNAL_STRENGTH_LOW", + "WIFI_SIGNAL_STRENGTH_RECOVERED", + "VPN_CONNECTION_STATE_CHANGE" ], "enumDescriptions": [ "Event type unknown.", @@ -2586,7 +3463,10 @@ "Triggered immediately on any changes to a network connection.", "Triggered when USB devices are added.", "Triggered when USB devices are removed.", - "Triggered when a new HTTPS latency problem was detected or the device has recovered form an existing HTTPS latency problem." + "Triggered when a new HTTPS latency problem was detected or the device has recovered form an existing HTTPS latency problem.", + "Triggered when connected WiFi network signal strength drops below -70dBm.", + "Triggered when connected WiFi network signal strength is recovered from a signal drop.", + "Triggered on changes to VPN connections." ], "type": "string" }, @@ -2600,6 +3480,11 @@ "readOnly": true, "type": "string" }, + "networkStateChangeEvent": { + "$ref": "GoogleChromeManagementV1TelemetryNetworkConnectionStateChangeEvent", + "description": "Output only. Payload for network connection state change event. Present only when `event_type` is `NETWORK_STATE_CHANGE`.", + "readOnly": true + }, "reportTime": { "description": "Timestamp that represents when the event was reported.", "format": "google-datetime", @@ -2614,12 +3499,58 @@ "$ref": "GoogleChromeManagementV1TelemetryUserInfo", "description": "Output only. Information about the user associated with the event.", "readOnly": true + }, + "vpnConnectionStateChangeEvent": { + "$ref": "GoogleChromeManagementV1TelemetryNetworkConnectionStateChangeEvent", + "description": "Output only. Payload for VPN connection state change event. Present only when `event_type` is `VPN_CONNECTION_STATE_CHANGE`.", + "readOnly": true + }, + "wifiSignalStrengthEvent": { + "$ref": "GoogleChromeManagementV1TelemetryNetworkSignalStrengthEvent", + "description": "Output only. Payload for WiFi signal strength events. Present only when `event_type` is `WIFI_SIGNAL_STRENGTH_LOW` or `WIFI_SIGNAL_STRENGTH_RECOVERED`.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleChromeManagementV1TelemetryEventNotificationFilter": { + "description": "Configures how the telemetry events should be filtered.", + "id": "GoogleChromeManagementV1TelemetryEventNotificationFilter", + "properties": { + "eventTypes": { + "description": "Only sends the notifications for events of these types. Must not be empty.", + "items": { + "enum": [ + "EVENT_TYPE_UNSPECIFIED", + "AUDIO_SEVERE_UNDERRUN", + "NETWORK_STATE_CHANGE", + "USB_ADDED", + "USB_REMOVED", + "NETWORK_HTTPS_LATENCY_CHANGE", + "WIFI_SIGNAL_STRENGTH_LOW", + "WIFI_SIGNAL_STRENGTH_RECOVERED", + "VPN_CONNECTION_STATE_CHANGE" + ], + "enumDescriptions": [ + "Event type unknown.", + "Triggered when a audio devices run out of buffer data for more than 5 seconds.", + "Triggered immediately on any changes to a network connection.", + "Triggered when USB devices are added.", + "Triggered when USB devices are removed.", + "Triggered when a new HTTPS latency problem was detected or the device has recovered form an existing HTTPS latency problem.", + "Triggered when connected WiFi network signal strength drops below -70dBm.", + "Triggered when connected WiFi network signal strength is recovered from a signal drop.", + "Triggered on changes to VPN connections." + ], + "type": "string" + }, + "type": "array" } }, "type": "object" }, "GoogleChromeManagementV1TelemetryHttpsLatencyChangeEvent": { - "description": "Https latency routine is run periodically and `TelemetryHttpsLatencyChangeEvent` is triggered if a latency problem was detected or if the device has recovered from a latency problem..", + "description": "Https latency routine is run periodically and `TelemetryHttpsLatencyChangeEvent` is triggered if a latency problem was detected or if the device has recovered from a latency problem. * Granular permission needed: TELEMETRY_API_NETWORK_REPORT", "id": "GoogleChromeManagementV1TelemetryHttpsLatencyChangeEvent", "properties": { "httpsLatencyRoutineData": { @@ -2643,8 +3574,107 @@ }, "type": "object" }, + "GoogleChromeManagementV1TelemetryNetworkConnectionStateChangeEvent": { + "description": "`TelemetryNetworkConnectionStateChangeEvent` is triggered on network connection state changes. * Granular permission needed: TELEMETRY_API_NETWORK_REPORT", + "id": "GoogleChromeManagementV1TelemetryNetworkConnectionStateChangeEvent", + "properties": { + "connectionState": { + "description": "Current connection state of the network.", + "enum": [ + "NETWORK_CONNECTION_STATE_UNSPECIFIED", + "ONLINE", + "CONNECTED", + "PORTAL", + "CONNECTING", + "NOT_CONNECTED" + ], + "enumDescriptions": [ + "Network connection state unspecified.", + "The network is connected and internet connectivity is available.", + "The network is connected and not in a detected portal state, but internet connectivity may not be available.", + "The network is connected but a portal state was detected. Internet connectivity may be limited.", + "The network is in the process of connecting.", + "The network is not connected." + ], + "type": "string" + }, + "guid": { + "description": "Unique identifier of the network.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1TelemetryNetworkSignalStrengthEvent": { + "description": "`TelemetryNetworkSignalStrengthEvent` is triggered on WiFi signal strength events. * Granular permission needed: TELEMETRY_API_NETWORK_REPORT", + "id": "GoogleChromeManagementV1TelemetryNetworkSignalStrengthEvent", + "properties": { + "guid": { + "description": "Unique identifier of the network.", + "type": "string" + }, + "signalStrengthDbm": { + "description": "Signal strength RSSI value.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1TelemetryNotificationConfig": { + "description": "Configuration to receive notifications of telemetry data.", + "id": "GoogleChromeManagementV1TelemetryNotificationConfig", + "properties": { + "customer": { + "description": "Output only. Google Workspace customer that owns the resource.", + "readOnly": true, + "type": "string" + }, + "filter": { + "$ref": "GoogleChromeManagementV1TelemetryNotificationFilter", + "description": "Only send notifications for telemetry data matching this filter." + }, + "googleCloudPubsubTopic": { + "description": "The pubsub topic to which notifications are published to.", + "type": "string" + }, + "name": { + "description": "Output only. Resource name of the notification configuration.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1TelemetryNotificationFilter": { + "description": "Configures how the telemetry data should be filtered.", + "id": "GoogleChromeManagementV1TelemetryNotificationFilter", + "properties": { + "deviceId": { + "description": "If set, only sends notifications for telemetry data coming from this device.", + "type": "string" + }, + "deviceOrgUnitId": { + "description": "If set, only sends notifications for telemetry data coming from devices in this org unit.", + "type": "string" + }, + "telemetryEventNotificationFilter": { + "$ref": "GoogleChromeManagementV1TelemetryEventNotificationFilter", + "description": "Only sends notifications for the telemetry events matching this filter." + }, + "userEmail": { + "description": "If set, only sends notifications for telemetry data coming from devices owned by this user.", + "type": "string" + }, + "userOrgUnitId": { + "description": "If set, only sends notifications for telemetry data coming from devices owned by users in this org unit.", + "type": "string" + } + }, + "type": "object" + }, "GoogleChromeManagementV1TelemetryUsbPeripheralsEvent": { - "description": "`TelemetryUsbPeripheralsEvent` is triggered USB devices are either added or removed.", + "description": "`TelemetryUsbPeripheralsEvent` is triggered USB devices are either added or removed. * Granular permission needed: TELEMETRY_API_PERIPHERALS_REPORT", "id": "GoogleChromeManagementV1TelemetryUsbPeripheralsEvent", "properties": { "usbPeripheralReport": { @@ -2657,8 +3687,85 @@ }, "type": "object" }, + "GoogleChromeManagementV1TelemetryUser": { + "description": "Telemetry data collected from a managed user. * Granular permission needed: TELEMETRY_API_USER", + "id": "GoogleChromeManagementV1TelemetryUser", + "properties": { + "customer": { + "description": "G Suite Customer whose enterprise enrolled the device.", + "type": "string" + }, + "name": { + "description": "Resource name of the user.", + "type": "string" + }, + "orgUnitId": { + "description": "Organization unit of the user.", + "type": "string" + }, + "userDevice": { + "description": "Telemetry data collected from a managed user and device.", + "items": { + "$ref": "GoogleChromeManagementV1TelemetryUserDevice" + }, + "type": "array" + }, + "userEmail": { + "description": "Email address of the user.", + "type": "string" + }, + "userId": { + "description": "Directory ID of the user.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1TelemetryUserDevice": { + "description": "Telemetry data collected for a managed user and device. * Granular permission needed: TELEMETRY_API_DEVICE", + "id": "GoogleChromeManagementV1TelemetryUserDevice", + "properties": { + "audioStatusReport": { + "description": "Output only. Audio reports collected periodically sorted in a decreasing order of report_time.", + "items": { + "$ref": "GoogleChromeManagementV1AudioStatusReport" + }, + "readOnly": true, + "type": "array" + }, + "deviceActivityReport": { + "description": "Output only. Device activity reports collected periodically sorted in a decreasing order of report_time.", + "items": { + "$ref": "GoogleChromeManagementV1DeviceActivityReport" + }, + "readOnly": true, + "type": "array" + }, + "deviceId": { + "description": "The unique Directory API ID of the device. This value is the same as the Admin Console's Directory API ID in the ChromeOS Devices tab.", + "type": "string" + }, + "networkBandwidthReport": { + "description": "Output only. Network bandwidth reports collected periodically sorted in a decreasing order of report_time.", + "items": { + "$ref": "GoogleChromeManagementV1NetworkBandwidthReport" + }, + "readOnly": true, + "type": "array" + }, + "peripheralsReport": { + "description": "Output only. Peripherals reports collected periodically sorted in a decreasing order of report_time.", + "items": { + "$ref": "GoogleChromeManagementV1PeripheralsReport" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "GoogleChromeManagementV1TelemetryUserInfo": { - "description": "Information about a user associated with telemetry data.", + "description": "Information about a user associated with telemetry data. * Granular permission needed: TELEMETRY_API_USER", "id": "GoogleChromeManagementV1TelemetryUserInfo", "properties": { "email": { @@ -2675,7 +3782,7 @@ "type": "object" }, "GoogleChromeManagementV1ThunderboltInfo": { - "description": "Thunderbolt bus info. * This field provides device information, which is static and will not change over time. * Data for this field is controlled via policy: [ReportDeviceSecurityStatus](https://chromeenterprise.google/policies/#ReportDeviceSecurityStatus) * Data Collection Frequency: At device startup * Default Data Reporting Frequency: At device startup - Policy Controlled: No * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: Yes * Reported for affiliated users only: N/A", + "description": "Thunderbolt bus info. * This field provides device information, which is static and will not change over time. * Data for this field is controlled via policy: [ReportDeviceSecurityStatus](https://chromeenterprise.google/policies/#ReportDeviceSecurityStatus) * Data Collection Frequency: At device startup * Default Data Reporting Frequency: At device startup - Policy Controlled: No * Cache: If the device is offline, the collected data is stored locally, and will be reported when the device is next online: Yes * Reported for affiliated users only: N/A * Granular permission needed: TELEMETRY_API_BUS_DEVICE_INFO", "id": "GoogleChromeManagementV1ThunderboltInfo", "properties": { "securityLevel": { @@ -2754,6 +3861,49 @@ }, "type": "object" }, + "GoogleChromeManagementV1TouchScreenDevice": { + "description": "Information of an internal touch screen device.", + "id": "GoogleChromeManagementV1TouchScreenDevice", + "properties": { + "displayName": { + "description": "Output only. Touch screen device display name.", + "readOnly": true, + "type": "string" + }, + "stylusCapable": { + "description": "Output only. Touch screen device is stylus capable or not.", + "readOnly": true, + "type": "boolean" + }, + "touchPointCount": { + "description": "Output only. Number of touch points supported on the device.", + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1TouchScreenInfo": { + "description": "Information on the device touch screen.", + "id": "GoogleChromeManagementV1TouchScreenInfo", + "properties": { + "devices": { + "description": "Output only. List of the internal touch screen devices.", + "items": { + "$ref": "GoogleChromeManagementV1TouchScreenDevice" + }, + "readOnly": true, + "type": "array" + }, + "touchpadLibrary": { + "description": "Output only. Touchpad library name used by the input stack.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleChromeManagementV1UsbPeripheralReport": { "description": "USB connected peripheral report.", "id": "GoogleChromeManagementV1UsbPeripheralReport", @@ -2808,6 +3958,42 @@ }, "type": "object" }, + "GoogleChromeManagementV1UserPrintReport": { + "description": "Report for CountPrintJobsByUser, contains printing statistics for a user. Contains the number of printers, the number of devices used to initiate print jobs, and the number of print jobs initiated.", + "id": "GoogleChromeManagementV1UserPrintReport", + "properties": { + "deviceCount": { + "description": "Number of chrome devices that have been used to initiate print jobs by the user.", + "format": "int64", + "type": "string" + }, + "jobCount": { + "description": "Number of print jobs initiated by the user.", + "format": "int64", + "type": "string" + }, + "printerCount": { + "description": "Number of printers used by the user.", + "format": "int64", + "type": "string" + }, + "userEmail": { + "description": "The primary e-mail address of the user.", + "type": "string" + }, + "userId": { + "description": "The unique Directory API ID of the user.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleProtobufEmpty": { + "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }", + "id": "GoogleProtobufEmpty", + "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", diff --git a/etc/api/chromepolicy/v1/chromepolicy-api.json b/etc/api/chromepolicy/v1/chromepolicy-api.json index f35ecb2199..586477d66a 100644 --- a/etc/api/chromepolicy/v1/chromepolicy-api.json +++ b/etc/api/chromepolicy/v1/chromepolicy-api.json @@ -557,41 +557,9 @@ } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://chromepolicy.googleapis.com/", "schemas": { - "ChromeCrosDpanelAutosettingsProtoPolicyApiLifecycle": { - "id": "ChromeCrosDpanelAutosettingsProtoPolicyApiLifecycle", - "properties": { - "description": { - "description": "Description about current life cycle.", - "type": "string" - }, - "endSupport": { - "$ref": "GoogleTypeDate", - "description": "End supporting date for current policy." - }, - "policyApiLifecycleStage": { - "description": "Indicate current life cycle stage of the policy API.", - "enum": [ - "API_UNSPECIFIED", - "API_PREVIEW", - "API_DEVELOPMENT", - "API_CURRENT", - "API_DEPRECATED" - ], - "enumDescriptions": [ - "unspecified.", - "Policy is not working yet, but giving developers heads up on format. This stage can transfer to API_DEVELOPEMNT or API_CURRENT.", - "Policy can change format in backward incompatible way (breaking change). This stage can transfer to API_CURRENT or API_DEPRECATED. This could be used for policies launched only to TTs or launched to selected customers for emergency usage.", - "Policy in official format. Policy can change format in backward compatible way (non-breaking change). Example: this policy can introduce a new field, which is considered non-breaking change, when field masks are properly utilized. This stage can transfer to API_DEPRECATED.", - "Please stop using this policy. This policy is deprecated and may/will be removed in the future. Most likely a new policy was introduced to replace this one." - ], - "type": "string" - } - }, - "type": "object" - }, "GoogleChromePolicyVersionsV1AdditionalTargetKeyName": { "description": "Additional key names that will be used to identify the target of the policy value.", "id": "GoogleChromePolicyVersionsV1AdditionalTargetKeyName", @@ -794,6 +762,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" @@ -818,7 +790,11 @@ "id": "GoogleChromePolicyVersionsV1ListGroupPriorityOrderingRequest", "properties": { "policyNamespace": { - "description": "Required. The namespace of the policy type for the request.", + "description": "The namespace of the policy type for the request.", + "type": "string" + }, + "policySchema": { + "description": "The schema name of the policy for the request.", "type": "string" }, "policyTargetKey": { @@ -845,6 +821,11 @@ "readOnly": true, "type": "string" }, + "policySchema": { + "description": "Output only. The schema name of the policy for the group IDs.", + "readOnly": true, + "type": "string" + }, "policyTargetKey": { "$ref": "GoogleChromePolicyVersionsV1PolicyTargetKey", "description": "Output only. The target resource for which the group priority ordering has been retrieved.", @@ -947,6 +928,101 @@ }, "type": "object" }, + "GoogleChromePolicyVersionsV1PolicyApiLifecycle": { + "description": "Lifecycle information.", + "id": "GoogleChromePolicyVersionsV1PolicyApiLifecycle", + "properties": { + "deprecatedInFavorOf": { + "description": "In the event that this policy was deprecated in favor of another policy, the fully qualified namespace(s) of the new policies as they will show in PolicyAPI. Could only be set if policy_api_lifecycle_stage is API_DEPRECATED.", + "items": { + "type": "string" + }, + "type": "array" + }, + "description": { + "description": "Description about current life cycle.", + "type": "string" + }, + "endSupport": { + "$ref": "GoogleTypeDate", + "description": "End supporting date for current policy. Attempting to modify a policy after its end support date will result in a Bad Request (400 error). Could only be set if policy_api_lifecycle_stage is API_DEPRECATED." + }, + "policyApiLifecycleStage": { + "description": "Indicates current life cycle stage of the policy API.", + "enum": [ + "API_UNSPECIFIED", + "API_PREVIEW", + "API_DEVELOPMENT", + "API_CURRENT", + "API_DEPRECATED" + ], + "enumDescriptions": [ + "Policy Api Lifecycle is Unspecified.", + "Policy is not working yet, but giving developers heads up on format. This stage can transfer to API_DEVELOPEMNT or API_CURRENT.", + "Policy can change format in backward incompatible way (breaking change). This stage can transfer to API_CURRENT or API_DEPRECATED. This could be used for policies launched only to TTs or launched to selected customers for emergency usage.", + "Policy in official format. Policy can change format in backward compatible way (non-breaking change). Example: this policy can introduce a new field, which is considered non-breaking change, when field masks are properly utilized. This stage can transfer to API_DEPRECATED.", + "Please stop using this policy. This policy is deprecated and may/will be removed in the future. Most likely a new policy was introduced to replace this one." + ], + "type": "string" + }, + "scheduledToDeprecatePolicies": { + "description": "Corresponding to deprecated_in_favor_of, the fully qualified namespace(s) of the old policies that will be deprecated because of introduction of this policy. This field should not be manually set but will be set and exposed through PolicyAPI automatically.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1PolicyModificationError": { + "description": "Error information for a modification request of a specific policy on a specific target.", + "id": "GoogleChromePolicyVersionsV1PolicyModificationError", + "properties": { + "errors": { + "description": "Output only. The non-field errors related to the modification.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "fieldErrors": { + "description": "Output only. The error messages related to the modification.", + "items": { + "$ref": "GoogleChromePolicyVersionsV1PolicyModificationFieldError" + }, + "readOnly": true, + "type": "array" + }, + "policySchema": { + "description": "Output only. The specific policy schema modification that had an error.", + "readOnly": true, + "type": "string" + }, + "policyTargetKey": { + "$ref": "GoogleChromePolicyVersionsV1PolicyTargetKey", + "description": "Output only. The specific policy target modification that had error.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1PolicyModificationErrorDetails": { + "description": "Details of the errors encountered during a policy modification request. This message will be returned as part of the details of a google.rpc.Status returned to the user when there is an error in their request.", + "id": "GoogleChromePolicyVersionsV1PolicyModificationErrorDetails", + "properties": { + "modificationErrors": { + "description": "Output only. List of specific policy modifications errors that may have occurred during a modifying request.", + "items": { + "$ref": "GoogleChromePolicyVersionsV1PolicyModificationError" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "GoogleChromePolicyVersionsV1PolicyModificationFieldError": { "description": "Error information for a modification request of a specific field on a specific policy.", "id": "GoogleChromePolicyVersionsV1PolicyModificationFieldError", @@ -993,7 +1069,7 @@ "description": "Schema definition using proto descriptor." }, "fieldDescriptions": { - "description": "Output only. Detailed description of each field that is part of the schema.", + "description": "Output only. Detailed description of each field that is part of the schema. Fields are suggested to be displayed by the ordering in this list, not by field number.", "items": { "$ref": "GoogleChromePolicyVersionsV1PolicySchemaFieldDescription" }, @@ -1013,14 +1089,10 @@ "type": "array" }, "policyApiLifecycle": { - "$ref": "ChromeCrosDpanelAutosettingsProtoPolicyApiLifecycle", + "$ref": "GoogleChromePolicyVersionsV1PolicyApiLifecycle", "description": "Output only. Current lifecycle information.", "readOnly": true }, - "policyApiLifeycle": { - "$ref": "ChromeCrosDpanelAutosettingsProtoPolicyApiLifecycle", - "description": "Deprecated field because of typo." - }, "policyDescription": { "description": "Output only. Description about the policy schema for user consumption.", "readOnly": true, @@ -1036,6 +1108,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": { @@ -1082,6 +1176,7 @@ "type": "any" }, "description": { + "deprecated": true, "description": "Deprecated. Use name and field_description instead. The description for the field.", "type": "string" }, @@ -1127,7 +1222,7 @@ "type": "string" }, "nestedFieldDescriptions": { - "description": "Output only. Provides the description of the fields nested in this field, if the field is a message type that defines multiple fields.", + "description": "Output only. Provides the description of the fields nested in this field, if the field is a message type that defines multiple fields. Fields are suggested to be displayed by the ordering in this list, not by field number.", "items": { "$ref": "GoogleChromePolicyVersionsV1PolicySchemaFieldDescription" }, @@ -1154,6 +1249,14 @@ "readOnly": true, "type": "string" }, + "fieldDependencies": { + "description": "Output only. Field conditions required for this value to be valid.", + "items": { + "$ref": "GoogleChromePolicyVersionsV1PolicySchemaFieldDependencies" + }, + "readOnly": true, + "type": "array" + }, "value": { "description": "Output only. The string represenstation of the value that can be set for the field.", "readOnly": true, @@ -1318,7 +1421,7 @@ "type": "string" }, "policySchemaFilter": { - "description": "The schema filter to apply to the resolve request. Specify a schema name to view a particular schema, for example: chrome.users.ShowLogoutButton Wildcards are supported, but only in the leaf portion of the schema name. Wildcards cannot be used in namespace directly. Please read https://developers.google.com/chrome/policy/guides/policy-schemas for details on schema namespaces. For example: Valid: \"chrome.users.*\", \"chrome.users.apps.*\", \"chrome.printers.*\" Invalid: \"*\", \"*.users\", \"chrome.*\", \"chrome.*.apps.*\"", + "description": "Required. The schema filter to apply to the resolve request. Specify a schema name to view a particular schema, for example: chrome.users.ShowLogoutButton Wildcards are supported, but only in the leaf portion of the schema name. Wildcards cannot be used in namespace directly. Please read https://developers.google.com/chrome/policy/guides/policy-schemas for details on schema namespaces. For example: Valid: \"chrome.users.*\", \"chrome.users.apps.*\", \"chrome.printers.*\" Invalid: \"*\", \"*.users\", \"chrome.*\", \"chrome.*.apps.*\"", "type": "string" }, "policyTargetKey": { @@ -1385,7 +1488,11 @@ "type": "array" }, "policyNamespace": { - "description": "Required. The namespace of the policy type for the request.", + "description": "The namespace of the policy type for the request.", + "type": "string" + }, + "policySchema": { + "description": "The schema name of the policy for the request.", "type": "string" }, "policyTargetKey": { @@ -1417,6 +1524,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", @@ -1524,13 +1678,13 @@ "label": { "enum": [ "LABEL_OPTIONAL", - "LABEL_REQUIRED", - "LABEL_REPEATED" + "LABEL_REPEATED", + "LABEL_REQUIRED" ], "enumDescriptions": [ "0 is reserved for errors", "", - "" + "The required label is only allowed in proto2. In proto3 and Editions it's explicitly prohibited. In Editions, the `field_presence` feature can be used to get this behavior." ], "type": "string" }, @@ -1547,7 +1701,7 @@ "type": "integer" }, "proto3Optional": { - "description": "If true, this is a proto3 \"optional\". When a proto3 field is optional, it tracks presence regardless of field type. When proto3_optional is true, this field must be belong to a oneof to signal to old proto3 clients that presence is tracked for this field. This oneof is known as a \"synthetic\" oneof, and this field must be its sole member (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs exist in the descriptor only, and do not generate any API. Synthetic oneofs must be ordered after all \"real\" oneofs. For message fields, proto3_optional doesn't create any semantic change, since non-repeated message fields always track presence. However it still indicates the semantic detail of whether the user wrote \"optional\" or not. This can be useful for round-tripping the .proto file. For consistency we give message fields a synthetic oneof also, even though it is not required to track presence. This is especially important because the parser can't tell if a field is a message or an enum, so it must always create a synthetic oneof. Proto2 optional fields do not set this flag, because they already indicate optional with `LABEL_OPTIONAL`.", + "description": "If true, this is a proto3 \"optional\". When a proto3 field is optional, it tracks presence regardless of field type. When proto3_optional is true, this field must belong to a oneof to signal to old proto3 clients that presence is tracked for this field. This oneof is known as a \"synthetic\" oneof, and this field must be its sole member (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs exist in the descriptor only, and do not generate any API. Synthetic oneofs must be ordered after all \"real\" oneofs. For message fields, proto3_optional doesn't create any semantic change, since non-repeated message fields always track presence. However it still indicates the semantic detail of whether the user wrote \"optional\" or not. This can be useful for round-tripping the .proto file. For consistency we give message fields a synthetic oneof also, even though it is not required to track presence. This is especially important because the parser can't tell if a field is a message or an enum, so it must always create a synthetic oneof. Proto2 optional fields do not set this flag, because they already indicate optional with `LABEL_OPTIONAL`.", "type": "boolean" }, "type": { @@ -1582,7 +1736,7 @@ "", "", "", - "Tag-delimited aggregate. Group type is deprecated and not supported in proto3. However, Proto3 implementations should still be able to parse the group wire format and treat group fields as unknown fields.", + "Tag-delimited aggregate. Group type is deprecated and not supported after proto2. However, Proto3 implementations should still be able to parse the group wire format and treat group fields as unknown fields. In Editions, the group wire format can be enabled via the `message_encoding` feature.", "Length-delimited aggregate.", "New in version 2.", "", @@ -1605,6 +1759,11 @@ "description": "Describes a complete .proto file.", "id": "Proto2FileDescriptorProto", "properties": { + "editionDeprecated": { + "deprecated": true, + "description": "BEGIN GOOGLE-INTERNAL TODO(b/297898292) Deprecate and remove this field in favor of enums. END GOOGLE-INTERNAL", + "type": "string" + }, "enumType": { "items": { "$ref": "Proto2EnumDescriptorProto" diff --git a/etc/api/chromeuxreport/v1/chromeuxreport-api.json b/etc/api/chromeuxreport/v1/chromeuxreport-api.json index 4643447313..b70eb3a0ea 100644 --- a/etc/api/chromeuxreport/v1/chromeuxreport-api.json +++ b/etc/api/chromeuxreport/v1/chromeuxreport-api.json @@ -98,6 +98,21 @@ "resources": { "records": { "methods": { + "queryHistoryRecord": { + "description": "Queries the Chrome User Experience Report for a timeseries `history record` for a given site. Returns a `history record` that contains one or more `metric timeseries` corresponding to performance data about the requested site.", + "flatPath": "v1/records:queryHistoryRecord", + "httpMethod": "POST", + "id": "chromeuxreport.records.queryHistoryRecord", + "parameterOrder": [], + "parameters": {}, + "path": "v1/records:queryHistoryRecord", + "request": { + "$ref": "QueryHistoryRequest" + }, + "response": { + "$ref": "QueryHistoryResponse" + } + }, "queryRecord": { "description": "Queries the Chrome User Experience for a single `record` for a given site. Returns a `record` that contains one or more `metrics` corresponding to performance data about the requested site.", "flatPath": "v1/records:queryRecord", @@ -116,7 +131,7 @@ } } }, - "revision": "20230117", + "revision": "20240228", "rootUrl": "https://chromeuxreport.googleapis.com/", "schemas": { "Bin": { @@ -176,6 +191,77 @@ }, "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", + "properties": { + "formFactor": { + "description": "The form factor is the device class that all users used to access the site for this record. If the form factor is unspecified, then aggregated data over all form factors will be returned.", + "enum": [ + "ALL_FORM_FACTORS", + "PHONE", + "DESKTOP", + "TABLET" + ], + "enumDescriptions": [ + "The default value, representing all device classes.", + "The device class representing a \"mobile\"/\"phone\" sized client.", + "The device class representing a \"desktop\"/\"laptop\" type full size client.", + "The device class representing a \"tablet\" type client." + ], + "type": "string" + }, + "origin": { + "description": "Origin specifies the origin that this record is for. Note: When specifying an origin, data for loads under this origin over all pages are aggregated into origin level user experience data.", + "type": "string" + }, + "url": { + "description": "Url specifies a specific url that this record is for. This url should be normalized, following the normalization actions taken in the request to increase the chances of successful lookup. Note: When specifying a \"url\" only data for that specific url will be aggregated.", + "type": "string" + } + }, + "type": "object" + }, + "HistoryRecord": { + "description": "HistoryRecord is a timeseries of Chrome UX Report data. It contains user experience statistics for a single url pattern and a set of dimensions.", + "id": "HistoryRecord", + "properties": { + "collectionPeriods": { + "description": "The collection periods indicate when each of the data points reflected in the time series data in metrics was collected. Note that all the time series share the same collection periods, and it is enforced in the CrUX pipeline that every time series has the same number of data points.", + "items": { + "$ref": "CollectionPeriod" + }, + "type": "array" + }, + "key": { + "$ref": "HistoryKey", + "description": "Key defines all of the unique querying parameters needed to look up a user experience history record." + }, + "metrics": { + "additionalProperties": { + "$ref": "MetricTimeseries" + }, + "description": "Metrics is the map of user experience time series data available for the record defined in the key field. Metrics are keyed on the metric name. Allowed key values: [\"first_contentful_paint\", \"first_input_delay\", \"largest_contentful_paint\", \"cumulative_layout_shift\", \"experimental_time_to_first_byte\", \"experimental_interaction_to_next_paint\"]", + "type": "object" + } + }, + "type": "object" + }, "Key": { "description": "Key defines all the dimensions that identify this record as unique.", "id": "Key", @@ -215,6 +301,14 @@ "description": "A `metric` 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`.", "id": "Metric", "properties": { + "fractions": { + "additionalProperties": { + "format": "double", + "type": "number" + }, + "description": "For enum metrics, provides fractions which add up to approximately 1.0.", + "type": "object" + }, "histogram": { "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.", "items": { @@ -229,6 +323,31 @@ }, "type": "object" }, + "MetricTimeseries": { + "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": { + "$ref": "TimeseriesBin" + }, + "type": "array" + }, + "percentilesTimeseries": { + "$ref": "TimeseriesPercentiles", + "description": "Commonly useful percentiles of the Metric. The value type for the percentiles will be the same as the value types given for the Histogram bins." + } + }, + "type": "object" + }, "Percentiles": { "description": "Percentiles contains synthetic values of a metric at a given statistical percentile. These are used for estimating a metric's value as experienced by a percentage of users out of the total number of users.", "id": "Percentiles", @@ -240,6 +359,59 @@ }, "type": "object" }, + "QueryHistoryRequest": { + "description": "Request payload sent by a physical web client. This request includes all necessary context to load a particular user experience history record.", + "id": "QueryHistoryRequest", + "properties": { + "formFactor": { + "description": "The form factor is a query dimension that specifies the device class that the record's data should belong to. Note: If no form factor is specified, then a special record with aggregated data over all form factors will be returned.", + "enum": [ + "ALL_FORM_FACTORS", + "PHONE", + "DESKTOP", + "TABLET" + ], + "enumDescriptions": [ + "The default value, representing all device classes.", + "The device class representing a \"mobile\"/\"phone\" sized client.", + "The device class representing a \"desktop\"/\"laptop\" type full size client.", + "The device class representing a \"tablet\" type client." + ], + "type": "string" + }, + "metrics": { + "description": "The metrics that should be included in the response. If none are specified then any metrics found will be returned. Allowed values: [\"first_contentful_paint\", \"first_input_delay\", \"largest_contentful_paint\", \"cumulative_layout_shift\", \"experimental_time_to_first_byte\", \"experimental_interaction_to_next_paint\"]", + "items": { + "type": "string" + }, + "type": "array" + }, + "origin": { + "description": "The url pattern \"origin\" refers to a url pattern that is the origin of a website. Examples: \"https://example.com\", \"https://cloud.google.com\"", + "type": "string" + }, + "url": { + "description": "The url pattern \"url\" refers to a url pattern that is any arbitrary url. Examples: \"https://example.com/\", \"https://cloud.google.com/why-google-cloud/\"", + "type": "string" + } + }, + "type": "object" + }, + "QueryHistoryResponse": { + "description": "Response payload sent back to a physical web client. This response contains the record found based on the identiers present in a `QueryHistoryRequest`. The returned response will have a history record, and sometimes details on normalization actions taken on the request that were necessary to make the request successful.", + "id": "QueryHistoryResponse", + "properties": { + "record": { + "$ref": "HistoryRecord", + "description": "The record that was found." + }, + "urlNormalizationDetails": { + "$ref": "UrlNormalization", + "description": "These are details about automated normalization actions that were taken in order to make the requested `url_pattern` valid." + } + }, + "type": "object" + }, "QueryRequest": { "description": "Request payload sent by a physical web client. This request includes all necessary context to load a particular user experience record.", "id": "QueryRequest", @@ -319,6 +491,43 @@ }, "type": "object" }, + "TimeseriesBin": { + "description": "A bin is a discrete portion of data spanning from start to end, or if no end is given, then from start to +inf. A bin's start and end values are given in the value type of the metric it represents. For example, \"first contentful paint\" is measured in milliseconds and exposed as ints, therefore its metric bins will use int32s for its start and end types. However, \"cumulative layout shift\" is measured in unitless decimals and is exposed as a decimal encoded as a string, therefore its metric bins will use strings for its value type.", + "id": "TimeseriesBin", + "properties": { + "densities": { + "description": "The proportion of users that experienced this bin's value for the given metric in a given collection period; the index for each of these entries corresponds to an entry in the CollectionPeriods field in the HistoryRecord message, which describes when the density was observed in the field. Thus, the length of this list of densities is equal to the length of the CollectionPeriods field in the HistoryRecord message.", + "items": { + "format": "double", + "type": "number" + }, + "type": "array" + }, + "end": { + "description": "End is the end of the data bin. If end is not populated, then the bin has no end and is valid from start to +inf.", + "type": "any" + }, + "start": { + "description": "Start is the beginning of the data bin.", + "type": "any" + } + }, + "type": "object" + }, + "TimeseriesPercentiles": { + "description": "Percentiles contains synthetic values of a metric at a given statistical percentile. These are used for estimating a metric's value as experienced by a percentage of users out of the total number of users.", + "id": "TimeseriesPercentiles", + "properties": { + "p75s": { + "description": "75% of users experienced the given metric at or below this value. The length of this list of densities is equal to the length of the CollectionPeriods field in the HistoryRecord message, which describes when the density was observed in the field.", + "items": { + "type": "any" + }, + "type": "array" + } + }, + "type": "object" + }, "UrlNormalization": { "description": "Object representing the normalization actions taken to normalize a url to achieve a higher chance of successful lookup. These are simple automated changes that are taken when looking up the provided `url_patten` would be known to fail. Complex actions like following redirects are not handled.", "id": "UrlNormalization", diff --git a/etc/api/civicinfo/v2/civicinfo-api.json b/etc/api/civicinfo/v2/civicinfo-api.json index bdb52f9bf8..d25d4005a4 100644 --- a/etc/api/civicinfo/v2/civicinfo-api.json +++ b/etc/api/civicinfo/v2/civicinfo-api.json @@ -125,7 +125,14 @@ "httpMethod": "GET", "id": "civicinfo.elections.electionQuery", "parameterOrder": [], - "parameters": {}, + "parameters": { + "productionDataOnly": { + "default": "true", + "description": "Whether to include data that has not been allowlisted yet", + "location": "query", + "type": "boolean" + } + }, "path": "civicinfo/v2/elections", "response": { "$ref": "ElectionsQueryResponse" @@ -159,6 +166,12 @@ "location": "query", "type": "boolean" }, + "productionDataOnly": { + "default": "true", + "description": "Whether to include data that has not been vetted yet. Should only be made available to internal IPs or trusted partners. This is a non-discoverable parameter in the One Platform API config.", + "location": "query", + "type": "boolean" + }, "returnAllAvailableData": { "default": "false", "description": "If set to true, the query will return the success code and include any partial information when it is unable to determine a matching address or unable to determine the election for electionId=0 queries.", @@ -352,7 +365,7 @@ } } }, - "revision": "20230123", + "revision": "20240227", "rootUrl": "https://civicinfo.googleapis.com/", "schemas": { "AdministrationRegion": { @@ -590,10 +603,6 @@ }, "type": "array" }, - "primaryParty": { - "description": "[DEPRECATED] If this is a partisan election, the name of the party it is for. This field as deprecated in favor of the array \"primaryParties\", as contests may contain more than one party.", - "type": "string" - }, "referendumBallotResponses": { "description": "The set of ballot responses for the referendum. A ballot response represents a line on the ballot. Common examples might include \"yes\" or \"no\" for referenda. This field is only populated for contests of type 'Referendum'.", "items": { @@ -864,799 +873,6 @@ }, "type": "object" }, - "FeatureIdProto": { - "description": "A globally unique identifier associated with each feature. We use 128-bit identifiers so that we have lots of bits available to distinguish between features. The feature id currently consists of a 64-bit \"cell id\" that **sometimes** corresponds to the approximate centroid of the feature, plus a 64-bit fingerprint of other identifying information. See more on each respective field in its comments. Feature ids are first assigned when the data is created in MapFacts. After initial creation of the feature, they are immutable. This means that the only properties that you should rely on are that they are unique, and that cell_ids often - but not always - preserve spatial locality. The degree of locality varies as the feature undergoes geometry changes, and should not in general be considered a firm guarantee of the location of any particular feature. In fact, some locationless features have randomized cell IDs! Consumers of FeatureProtos from Mapfacts are guaranteed that fprints in the id field of features will be globally unique. Using the fprint allows consumers who don't need the spatial benefit of cell ids to uniquely identify features in a 64-bit address space. This property is not guaranteed for other sources of FeatureProtos.", - "id": "FeatureIdProto", - "properties": { - "cellId": { - "description": "The S2CellId corresponding to the approximate location of this feature as of when it was first created. This can be of variable accuracy, ranging from the exact centroid of the feature at creation, a very large S2 Cell, or even being completely randomized for locationless features. Cell ids have the nice property that they follow a space-filling curve over the surface of the earth. (See s2cellid.h for details.) WARNING: Clients should only use cell IDs to perform spatial locality optimizations. There is no strict guarantee that the cell ID of a feature is related to the current geometry of the feature in any way.", - "format": "uint64", - "type": "string" - }, - "fprint": { - "description": "A 64-bit fingerprint used to identify features. Most clients should rely on MapFacts or OneRing to choose fingerprints. If creating new fprints, the strategy should be chosen so that the chance of collision is remote or non-existent, and the distribution should be reasonably uniform. For example, if the source data assigns unique ids to features, then a fingerprint of the provider name, version, and source id is sufficient.", - "format": "uint64", - "type": "string" - }, - "temporaryData": { - "$ref": "MessageSet", - "description": "A place for clients to attach arbitrary data to a feature ID. Never set in MapFacts." - } - }, - "type": "object" - }, - "GeocodingSummary": { - "description": "Detailed summary of the result from geocoding an address", - "id": "GeocodingSummary", - "properties": { - "addressUnderstood": { - "description": "Represents the best estimate of whether or not the input address was fully understood and the address is correctly componentized. Mirrors the same-name field in geostore.staging.AddressLinkupScoringProto.", - "type": "boolean" - }, - "featureId": { - "$ref": "FeatureIdProto", - "description": "The ID of the FeatureProto returned by the geocoder" - }, - "featureType": { - "description": "The feature type for the FeatureProto returned by the geocoder", - "enum": [ - "typeAny", - "typeTransportation", - "typeRoute", - "typeDeprecatedHighwayDoNotUse", - "typeHighway", - "typeHighway1", - "typeHighway2", - "typeHighway3", - "typeHighway4", - "typeHighway5", - "typeHighway6", - "typeHighway7", - "typeHighway8", - "typeHighway9", - "typeBicycleRoute", - "typeTrail", - "typeSegment", - "typeRoad", - "typeRailway", - "typeStandardTrack", - "typeJrTrack", - "typeNarrowTrack", - "typeMonorailTrack", - "typeSubwayTrack", - "typeLightRailTrack", - "typeBroadTrack", - "typeHighSpeedRail", - "typeTrolleyTrack", - "typeFerry", - "typeFerryBoat", - "typeFerryTrain", - "typeVirtualSegment", - "typeIntersection", - "typeTransit", - "typeTransitStation", - "typeBusStation", - "typeTramwayStation", - "typeTrainStation", - "typeSubwayStation", - "typeFerryTerminal", - "typeAirport", - "typeAirportCivil", - "typeAirportMilitary", - "typeAirportMixed", - "typeHeliport", - "typeSeaplaneBase", - "typeAirstrip", - "typeCableCarStation", - "typeGondolaLiftStation", - "typeFunicularStation", - "typeSpecialStation", - "typeHorseCarriageStation", - "typeMonorailStation", - "typeSeaport", - "typeTransitStop", - "typeTransitTrip", - "typeTransitDeparture", - "typeTransitLeg", - "typeTransitLine", - "typeTransitAgencyDeprecatedValue", - "typeTransitTransfer", - "typeSegmentPath", - "typeRoadSign", - "typeIntersectionGroup", - "typePathway", - "typeRestrictionGroup", - "typeTollCluster", - "typePolitical", - "typeCountry", - "typeAdministrativeArea", - "typeAdministrativeArea1", - "typeUsState", - "typeGbCountry", - "typeJpTodoufuken", - "typeAdministrativeArea2", - "typeGbFormerPostalCounty", - "typeGbTraditionalCounty", - "typeAdministrativeArea3", - "typeAdministrativeArea4", - "typeAdministrativeArea5", - "typeAdministrativeArea6", - "typeAdministrativeArea7", - "typeAdministrativeArea8", - "typeAdministrativeArea9", - "typeColloquialArea", - "typeReservation", - "typeLocality", - "typeGbPostTown", - "typeJpGun", - "typeJpShikuchouson", - "typeJpSubShikuchouson", - "typeColloquialCity", - "typeSublocality", - "typeUsBorough", - "typeGbDependentLocality", - "typeJpOoaza", - "typeJpKoaza", - "typeJpGaiku", - "typeGbDoubleDependentLocality", - "typeJpChiban", - "typeJpEdaban", - "typeSublocality1", - "typeSublocality2", - "typeSublocality3", - "typeSublocality4", - "typeSublocality5", - "typeNeighborhood", - "typeConstituency", - "typeDesignatedMarketArea", - "typeSchoolDistrict", - "typeLandParcel", - "typeDisputedArea", - "typePoliceJurisdiction", - "typeStatisticalArea", - "typeConstituencyFuture", - "typePark", - "typeGolfCourse", - "typeLocalPark", - "typeNationalPark", - "typeUsNationalPark", - "typeUsNationalMonument", - "typeNationalForest", - "typeProvincialPark", - "typeProvincialForest", - "typeCampgrounds", - "typeHikingArea", - "typeBusiness", - "typeGovernment", - "typeBorderCrossing", - "typeCityHall", - "typeCourthouse", - "typeEmbassy", - "typeLibrary", - "typeSchool", - "typeUniversity", - "typeEmergency", - "typeHospital", - "typePharmacy", - "typePolice", - "typeFire", - "typeDoctor", - "typeDentist", - "typeVeterinarian", - "typeTravelService", - "typeLodging", - "typeRestaurant", - "typeGasStation", - "typeParking", - "typePostOffice", - "typeRestArea", - "typeCashMachine", - "typeCarRental", - "typeCarRepair", - "typeShopping", - "typeGrocery", - "typeTouristDestination", - "typeEcoTouristDestination", - "typeBirdWatching", - "typeFishing", - "typeHunting", - "typeNatureReserve", - "typeTemple", - "typeChurch", - "typeGurudwara", - "typeHinduTemple", - "typeMosque", - "typeSynagogue", - "typeStadium", - "typeBar", - "typeMovieRental", - "typeCoffee", - "typeGolf", - "typeBank", - "typeDoodle", - "typeGrounds", - "typeAirportGrounds", - "typeBuildingGrounds", - "typeCemetery", - "typeHospitalGrounds", - "typeIndustrial", - "typeMilitary", - "typeShoppingCenter", - "typeSportsComplex", - "typeUniversityGrounds", - "typeDeprecatedTarmac", - "typeEnclosedTrafficArea", - "typeParkingLot", - "typeParkingGarage", - "typeOffRoadArea", - "typeBorder", - "typeBuilding", - "typeGeocodedAddress", - "typeNaturalFeature", - "typeTerrain", - "typeSand", - "typeBeach", - "typeDune", - "typeRocky", - "typeIce", - "typeGlacier", - "typeBuiltUpArea", - "typeVegetation", - "typeShrubbery", - "typeWoods", - "typeAgricultural", - "typeGrassland", - "typeTundra", - "typeDesert", - "typeSaltFlat", - "typeWater", - "typeOcean", - "typeBay", - "typeBight", - "typeLagoon", - "typeSea", - "typeStrait", - "typeInlet", - "typeFjord", - "typeLake", - "typeSeasonalLake", - "typeReservoir", - "typePond", - "typeRiver", - "typeRapids", - "typeDistributary", - "typeConfluence", - "typeWaterfall", - "typeSpring", - "typeGeyser", - "typeHotSpring", - "typeSeasonalRiver", - "typeWadi", - "typeEstuary", - "typeWetland", - "typeWaterNavigation", - "typeFord", - "typeCanal", - "typeHarbor", - "typeChannel", - "typeReef", - "typeReefFlat", - "typeReefGrowth", - "typeReefExtent", - "typeReefRockSubmerged", - "typeIrrigation", - "typeDam", - "typeDrinkingWater", - "typeCurrent", - "typeWateringHole", - "typeTectonic", - "typeWateringHoleDeprecated", - "typeVolcano", - "typeLavaField", - "typeFissure", - "typeFault", - "typeLandMass", - "typeContinent", - "typeIsland", - "typeAtoll", - "typeOceanRockExposed", - "typeCay", - "typePeninsula", - "typeIsthmus", - "typeElevated", - "typePeak", - "typeNunatak", - "typeSpur", - "typePass", - "typePlateau", - "typeRidge", - "typeRavine", - "typeCrater", - "typeKarst", - "typeCliff", - "typeVista", - "typeDigitalElevationModel", - "typeUpland", - "typeTerrace", - "typeSlope", - "typeContourLine", - "typePan", - "typeUnstableHillside", - "typeMountainRange", - "typeUndersea", - "typeSubmarineSeamount", - "typeSubmarineRidge", - "typeSubmarineGap", - "typeSubmarinePlateau", - "typeSubmarineDeep", - "typeSubmarineValley", - "typeSubmarineBasin", - "typeSubmarineSlope", - "typeSubmarineCliff", - "typeSubmarinePlain", - "typeSubmarineFractureZone", - "typeCave", - "typeRock", - "typeArchipelago", - "typePostal", - "typePostalCode", - "typePostalCodePrefix", - "typePremise", - "typeSubPremise", - "typeSuite", - "typePostTown", - "typePostalRound", - "typeMetaFeature", - "typeDataSource", - "typeLocale", - "typeTimezone", - "typeBusinessChain", - "typePhoneNumberPrefix", - "typePhoneNumberAreaCode", - "typeBusinessCorridor", - "typeAddressTemplate", - "typeTransitAgency", - "typeFutureGeometry", - "typeEvent", - "typeEarthquake", - "typeHurricane", - "typeWeatherCondition", - "typeTransient", - "typeEntrance", - "typeCartographic", - "typeHighTension", - "typeSkiTrail", - "typeSkiLift", - "typeSkiBoundary", - "typeWatershedBoundary", - "typeTarmac", - "typeWall", - "typePicnicArea", - "typePlayGround", - "typeTrailHead", - "typeGolfTeeingGround", - "typeGolfPuttingGreen", - "typeGolfRough", - "typeGolfSandBunker", - "typeGolfFairway", - "typeGolfHole", - "typeDeprecatedGolfShop", - "typeCampingSite", - "typeDesignatedBarbecuePit", - "typeDesignatedCookingArea", - "typeCampfirePit", - "typeWaterFountain", - "typeLitterReceptacle", - "typeLockerArea", - "typeAnimalEnclosure", - "typeCartographicLine", - "typeEstablishment", - "typeEstablishmentGrounds", - "typeEstablishmentBuilding", - "typeEstablishmentPoi", - "typeEstablishmentService", - "typeCelestial", - "typeRoadMonitor", - "typePublicSpacesAndMonuments", - "typeStatue", - "typeTownSquare", - "typeLevel", - "typeCompound", - "typeCompoundGrounds", - "typeCompoundBuilding", - "typeCompoundSection", - "typeTerminalPoint", - "typeRegulatedArea", - "typeLogicalBorder", - "typeDoNotUseReservedToCatchGeneratedFiles", - "typeUnknown" - ], - "enumDescriptions": [ - "ABSTRACT", - "ABSTRACT", - "A route is any section of road (or rails, etc.) that has a name. This includes city streets as well as highways. Road segments can belong to multiple routes (e.g. El Camino, CA-82).", - "DEPRECATED", - "ABSTRACT", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "A designated bicycle route, whose segments may consist of any combination of bicycle paths, bicycle lanes, or city streets.", - "A designated trail, which may consist of paved walkways, dirt paths, fire road, streets or highways, etc.", - "ABSTRACT", - "", - "Railroads use several different incompatible track types.", - "", - "", - "", - "", - "", - "", - "", - "", - "Tracks for streetcars, cable-cars, etc. Ferries are services that are part of the road network but are not roads. They typically involve fares and scheduled departure times.", - "ABSTRACT", - "The vast majority of ferries are ferry boats.", - "Also called a \"car transport\", a ferry train is a rail service that carries passengers and their vehicles across undrivable terrain. The Channel Tunnel (\"Chunnel\") is the most famous example, but they are also common in the Alps where they connect neighboring valleys otherwise separated by impassable mountains.", - "Any plausible 1-dimensional path through a 2+ dimensional space, for the purposes of making graph-search-based routing possible. Such segments can be used to model paths through parking lots, squares, floors of buildings and other areas.", - "An intersection consists of a collection of segments that terminate at the same location. This is topological definition: it may not match what a typical user would think of as an \"intersection\". See TYPE_INTERSECTION_GROUP, below, for more information. Each segment terminating at an intersection has an \"endpoint type\" that specifies how that segment is terminated: stop sign, yield sign, three-way light, etc.", - "ABSTRACT", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "A transit line is a collection of transit legs, associated with some invariant properties of the trips that run over the legs. See also transitline.proto", - "TYPE_TRANSIT_AGENCY was moved to 0xC91. This deprecated enum value still exists for debugging purposes only.", - "DEPRECATED", - "ABSTRACT", - "Road sign features have names, point geometry, etc. They also have segment_path data (see below) which lists the segments that refer to the sign. See segment.proto for the reference from the segment to the road sign.", - "Our TYPE_INTERSECTION feature, above, models the point where one or more segments terminate. This is topological definition: it may not match what a typical user would think of as an \"intersection\". Consider the intersections where Hayes, Market, Larkin, and 9th Street meet near (37.77765, -122.41638) in San Francisco. Most people would probably consider this a single feature, even though we model it as four separate TYPE_INTERSECTION features. This TYPE_INTERSECTION_GROUP is used to model the user's concept of a complex intersection.", - "RESERVED", - "A restriction group describes a set of segment restrictions that belong together and have a name or an associated event. See also restriction_group.proto", - "A toll cluster is either a single point on a segment (represented as a point at the end of the segment that has ENDPOINT_TOLL_BOOTH set) or a group of points on various road segments in MapFacts that represents one or more lanes passing through a toll fixture that all go to the same routing destination. Each toll cluster should have at most a single price per payment method. E.g. {CASH = $5, PASS = $1}. Note: If a toll fixture has different prices for multiple routing destinations, drivers need to be in the correct lane before passing through the toll fixture and hence such a fixture is represented by multiple toll clusters. A toll cluster does not necessarily represent a real-world entity, e.g. a particular plaza/structure as perceived by humans. This is because a plaza can be represented by more than one toll cluster. We require toll clusters to have names, but they might be non-unique. For example, a plaza might be represented by multiple toll clusters that may have the same plaza name. For further details, please see go/toll-cluster-schema.", - "ABSTRACT", - "", - "ABSTRACT", - "", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "", - "DEPRECATED", - "DEPRECATED", - "", - "", - "", - "", - "", - "", - "", - "e.g. Silicon Valley", - "A reservation is a region collectively held or governed by indigenous people and officially recognized by the country\u2019s government at the federal or state level. A reservation may be fully contained within an administrative feature or partially contained within two or more. These regions are referred to by different categorical names depending on country and even by state, including but not limited to: \u201cIndian Reservations\u201d, \u201cIndian Reserves\u201d, \u201cLand Claim Settlement Lands\u201d, \u201cIndian Lands\u201d, \u201cTreaty Lands\u201d, \u201cIndigenous Territories\u201d, etc. A reservation is not a historic indigenous territory boundary or a region which has applied for land rights but has not yet received official recognition.", - "", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "An entity widely considered to be a city, that may itself be made up of smaller political entities, some of which are cities/towns/villages themselves. For example, the colloquial view of Sydney, Australia actually comprises many smaller cities, but is regarded as a city itself. This type is not suitable for modeling official metro-/micropolitan or other statistical areas.", - "ABSTRACT", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "", - "", - "", - "", - "", - "", - "", - "Designated Market Areas (or DMAs) are used by marketing and ratings companies (such as the Nielsen Media Research company) to describe geographical regions (such as the greater New York metropolitan area) that are covered by a set of television stations. (See http://www.schooldata.com/pdfs/DMA.pdf) In the United States, DMAs should have a DMA numeric ID name, tagged with the FLAG_DESIGNATED_MARKET_AREA_ID flag.", - "", - "", - "Eventually we'll have more data for disputed areas (e.g., who makes claims on the area, who has de facto control, etc.). For the moment, we just define a type so we can simply mark areas as disputed.", - "Boundaries representing the jurisdiction of a particular police station.", - "An area used for aggregating statistical data, eg, a census region. Note that TYPE_STATISTICAL_AREA has a third nibble so we can add an abstract parent above it later if need be at 0x2E1 (and rename TYPE_STATISTICAL_AREA as TYPE_STATISTICAL_AREA1).", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "A line representing the boundary between two features. See border.proto for details.", - "DEPRECATED", - "An association of a point with an address, with no other information.", - "ABSTRACT", - "Expanses of land that share common surface attributes. These areas would look more or less uniform from a high altitude.", - "", - "", - "", - "", - "", - "", - "Terrain that looks populated.", - "Terrain that is covered in vegetation.", - "", - "", - "", - "", - "", - "", - "A flat expanse of salt left by the evaporation of a body of salt water.", - "Features can be TYPE_WATER if we don't have enough information to properly type the body of water. TYPE_WATER is also used as the type for child features that compose a TYPE_RIVER feature.", - "One of the large salt-water bodies that covers most of the globe.", - "An ocean subdivision formed by a coastal indentation. Includes coves and gulfs.", - "An open body of water formed by a slight coastal indentation.", - "", - "An ocean subdivision more or less confined by land and islands.", - "A long narrow ocean subdivision. Includes sounds.", - "", - "", - "An inland body of standing water.", - "A lake that dries up part of the year.", - "An artificial body of water, possibly created by a dam, often used for irrigation or house use.", - "", - "An inland body of moving water, or parts associated with it in which there is little or no current (backwater).", - "", - "A branch which flows away from the main river. Includes deltas.", - "A place where two or more rivers join.", - "", - "A place where ground water flows naturally out of the ground.", - "", - "", - "A river that dries up part of the year.", - "A dry riverbed that occasionally receives flashfloods.", - "A place at the end of a river where fresh and salt water mix. Includes tidal creeks and limans.", - "Land that is usually flooded. Includes bogs, marshes, flats, moors, and swamps.", - "", - "A shallow place where water may be waded through.", - "A narrow passage used by boats. Normally artificial.", - "A deep place near a shore where ships commonly drop anchor.", - "A deep part in a body of water that is suitable for navigation. Includes narrows.", - "Rocks, coral, sandbars, or other features beneath the surface of the water that pose a hazard to passing ships. Includes shoals.", - "A relatively shallow zone of the back reef located closest to the shore, that may be exposed at low tide.", - "A small section of rocks, coral, sandbars, or other features beneath the surface of the water that forms part of a reef.", - "The full extent of the reef complex.", - "A submerged rock in the water.", - "Man-made (and sometimes natural) channels used to move water. This type was used for both dam structures and water that is hold back by dams. We should use TYPE_COMPOUND_BUILDING for dam structures and TYPE_RESERVOIR for water.", - "DEPRECATED", - "", - "Includes overfalls.", - "A natural depression filled with water where animals come to drink.", - "ABSTRACT This type is incorrectly under TYPE_TECTONIC instead of TYPE_WATER. This was a mistake and is now fixed. See TYPE_WATERING_HOLE for the replacement.", - "DEPRECATED", - "", - "", - "", - "", - "", - "", - "", - "", - "An exposed rock in the water.", - "A small, low-elevation, sandy island formed on the surface of coral reefs", - "A stretch of land projecting into water. Includes capes and spits.", - "A strip of land connecting two larger land masses, such as continents.", - "Features that are notable for being high (or low), or for having sudden changes in elevation. These features might have an \"elevation\" extension to specify the actual elevation. See ElevationProto for more information.", - "Elevations that have a distinctive peak.", - "A peak or ridge of a mountain that extends through a glacier.", - "A subsidiary peak of a mountain.", - "A route over an otherwise difficult to traverse feature. Includes saddle.", - "Elevations that are flat on top. Includes mesas and buttes.", - "A ridge is a geographical feature consisting of a chain of mountains or hills that form a continuous elevated crest with a single ridgeline for some distance.", - "Steep declines usually carved by erosion. Includes valleys, canyons, ditches, and gorges.", - "Depressions causes by impact, explosion, and sometimes sink-holes.", - "Topography formed on limestone and gypsum by dissolution with sinkholes, caves, etc.", - "A vertical or nearly vertical slope. Includes escarpments.", - "An elevated place that is notable for having a good view. Raster digital elevation data. This is not a type to be used by providers or consumed by clients.", - "RESERVED", - "Land along streams higher than the alluvial plain or stream terrace.", - "", - "Land not so steep as a cliff, but changing elevation. Includes slides.", - "All the points on the polygon are at the same elevation.", - "A near-level shallow, natural depression or basin, usually containing an intermittent lake, pond, or pool.", - "", - "A series of mountains or hills ranged in a line and connected by high ground. Mountain ranges usually consist of many smaller ridges. For example, the Himalayas, the Andes. the Alps, etc.", - "Features that are notable for being high (or low), or for having sudden changes in elevation. These features might have an \"elevation\" extension to specify the actual elevation. See ElevationProto for more information.", - "includes peaks, ranges, and spurs", - "", - "includes saddles", - "", - "", - "includes trenches and troughs", - "", - "", - "", - "", - "", - "Don't use 0xA7. Use 8 bits for additional types under TYPE_NATURAL_FEATURE, so we don't run out of space. The following are miscellaneous natural features that don't fit any of the categories above.", - "", - "A feature representing a group or chain of islands. ", - "ABSTRACT", - "This is the type for postal codes which are complete and independent enough that there should be a feature for them (e.g. US 5-digit ZIP codes). For even more detailed suffixes that further subdivide a postal code (such as the +4 component in US ZIP codes), store the information in a TYPE_POSTAL_CODE_SUFFIX address component. When a range or set of postal codes share the same geographical area, e.g. because a precise subdivision does not exist or this subdivision is unknown, this type is used for each individual postal code.", - "A prefix portion of a postal code which does not meet the requirements for TYPE_POSTAL_CODE, but which is useful to search for, for example UK outcodes.", - "DEPRECATED", - "DEPRECATED This is deprecated and we want to use TYPE_COMPOUND_SECTION instead.", - "DEPRECATED", - "The term \"post town\" is used for a locality-like-entity that is only used for postal addresses.", - "DEPRECATED", - "ABSTRACT", - "Every data source used in constructing a data repository has a corresponding feature that provides more information about that data source. The extra information is stored in the optional data_source field below.", - "A locale feature provides region specific conventions such as preferred language and formatting details for time, date, and currency values. Locales aren't necessary defined by physical geographic features, so they are classified as meta-features.", - "A timezone feature is used to specify the region covering an international timezone. When a point is covered by multiple timezone features, the most specific one can be used to compute the local time at this point. Most specific implies a much smaller region or the one that is closer to the center. A feature's timezone can be specified in the repeated related_timezone field.", - "A business chain feature is used to represent a chain, e.g. Starbucks, McDonald's, etc. Other features representing specific stores/franchises of this chain may refer to one such feature via RELATION_MEMBER_OF_CHAIN. This is not strictly reserved to commercial chains but can also be used to model organizations such as the Red Cross or the United Nations.", - "A phone number prefix feature is used to specify the region where phone numbers (typically fixed-line numbers) must begin with a certain prefix. Any phone number prefix down to any level of granularity could be represented by this type.", - "A phone number area code is a prefix which also coincides with the area code, or national destination code, of a particular region.", - "A Business Corridor is a dense cluster of semantically similar establishments. TYPE_BUSINESS_CORRIDOR features are distinguished from TYPE_COLLOQUIAL_AREA features because the corridors are not under the political hierarchy, are allowed to be nameless, and may not correspond to well-known real world locations. For more details, see go/geo-corridors-schema.", - "An address template feature provides region-specific conventions for structuring addresses. These features aren't necessarily defined by physical geographic features, so they are classified as meta-features.", - "A transit agency operates a number of lines, typically all in the same city, region or country. See also transitagency.proto", - "A feature whose geometry is planned to replace the geometry on another feature.", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "DEPRECATED", - "RESERVED", - "A portal of entry or exit to another feature. Examples: - Subway station entrance. - Parking lot entrance.", - "Cartographic features are used to capture real-world objects for which there is no current desire to model any specific attributes. These are only useful to make the map tiles look pretty.", - "DEPRECATED", - "Also see skitrail.proto", - "Also see skilift.proto", - "Also see skiboundary.proto", - "", - "Starting with TYPE_TARMAC, we use longer IDs, so that we can expand the number of feature types under TYPE_CARTOGRAPHIC.", - "Use TYPE_COMPOUND_GROUND and appropriate gcids for the next two.", - "DEPRECATED", - "DEPRECATED", - "", - "Sub-types within a golf course.", - "", - "", - "", - "", - "Use TYPE_ESTABLISHMENT_POI and gcid:golf_shop for golf shops instead.", - "DEPRECATED", - "DEPRECATED", - "", - "", - "", - "", - "", - "", - "Subtype within a zoo - a cage or fenced-off or otherwise delineated area containing animals.", - "A line for a cartographic detail. For example the international date line. Such features should have polyline geometry.", - "ABSTRACT This type is being replaced by TYPE_COMPOUND_GROUNDS. For further details, see go/compounds-v2", - "DEPRECATED This type has been replaced by TYPE_COMPOUND_BUILDING. For further details, see go/oyster-compounds", - "DEPRECATED", - "An establishment which has a address (a.k.a. location or storefront). Note that it *may* also have a service area (e.g. a restaurant that offers both dine-in and delivery). This type of business is also known as a \"hybrid\" Service Area Business. Establishment POIs can be referenced by TYPE_COMPOUND features using the RELATION_PRIMARILY_OCCUPIED_BY. This is the reciprocal relation of the RELATION_OCCUPIES.", - "A business without a storefront, e.g. a plumber. It would normally not have a place that a customer could visit to receive service, but it would have an area served by the business. Also known as a \"pure\" Service Area Business. NOTE(tcain): Using value 0xD441, since we could find ourselves with a need to differentiate service areas from online-only at this level in the future, but still benefit from being able to group those under a common parent, disjoint from TYPE_ESTABLISHMENT_POI.", - "The root of types of features that are in the sky, rather than on the earth. There will eventually be a hierarchy of types here.", - "Features responsible for monitoring traffic on roads (usually for speed). Includes cameras at particular points as well as monitors that cover larger spans. Features of this type should have a corresponding gcid that specifies the correct subtype (e.g. gcid:road_camera or gcid:speed_camera_zone). This type was originally named as TYPE_ROAD_CAMERA.", - "ABSTRACT", - "Note that this type does not distinguish the nature of the statue (religious, historical, memorial, tourist, ...).", - "Open space used for events, gathering, or as market-place.", - "A feature used to represent a logical level, e.g. floor.", - "ABSTRACT", - "e.g. campus, compound, parcel.", - "e.g. single family dwelling, office building.", - "e.g. suite, room, hallway, cubicle.", - "A terminal point represents a good location for a user to meet a taxi, ridesharing vehicle, or general driver.", - "An area controlled in some way by an authoritative source, such as a government-designated COVID containment zone or an area under government sanctions. Features of this type should have one or more gcids corresponding to their specific regulation, and client handling of these features may vary based on the type of regulation.", - "A grouping of TYPE_BORDER features (\"border segments\"), which together represent a border between two features of the same type.", - "DEPRECATED", - "A feature of completely unknown type. This should only be used when absolutely necessary. One example in which this type is useful is in the Chinese importer, which must heuristically segment addresses into components - it often does not know what types to make those components. Please note that the Oyster address formatter does not currently support address components of TYPE_UNKNOWN well." - ], - "type": "string" - }, - "positionPrecisionMeters": { - "description": "Precision of the center point (lat/long) of the geocoded FeatureProto", - "format": "double", - "type": "number" - }, - "queryString": { - "description": "The query sent to the geocoder", - "type": "string" - } - }, - "type": "object" - }, "GeographicDivision": { "description": "Describes a political geography.", "id": "GeographicDivision", @@ -1683,12 +899,6 @@ }, "type": "object" }, - "MessageSet": { - "description": "This is proto2's version of MessageSet.", - "id": "MessageSet", - "properties": {}, - "type": "object" - }, "Office": { "description": "Information about an Office held by one or more Officials.", "id": "Office", @@ -1808,13 +1018,6 @@ }, "type": "array" }, - "geocodingSummaries": { - "description": "Detailed summary about the official's address's geocoding", - "items": { - "$ref": "GeocodingSummary" - }, - "type": "array" - }, "name": { "description": "The official's name.", "type": "string" @@ -2151,7 +1354,7 @@ "type": "string" }, "precincts": { - "description": "The precincts that match this voter's address. Will only be returned for project IDs which have been whitelisted as \"partner projects\".", + "description": "The precincts that match this voter's address. Will only be returned for project IDs which have been allowlisted as \"partner projects\".", "items": { "$ref": "Precinct" }, diff --git a/etc/api/classroom/v1/classroom-api.json b/etc/api/classroom/v1/classroom-api.json index 75159a2f98..6aaf69dca7 100644 --- a/etc/api/classroom/v1/classroom-api.json +++ b/etc/api/classroom/v1/classroom-api.json @@ -895,7 +895,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" @@ -1383,7 +1383,7 @@ "enumDescriptions": [ "No state specified. This is never returned.", "Status for course work material that has been published. This is the default state.", - "Status for an course work material that is not yet published. Course work material in this state is visible only to course teachers and domain administrators.", + "Status for a course work material that is not yet published. Course work material in this state is visible only to course teachers and domain administrators.", "Status for course work material that was published but is now deleted. Course work material in this state is visible only to course teachers and domain administrators. Course work material in this state is deleted after some time." ], "location": "query", @@ -2400,7 +2400,7 @@ } } }, - "revision": "20230119", + "revision": "20240227", "rootUrl": "https://classroom.googleapis.com/", "schemas": { "Announcement": { @@ -2554,7 +2554,7 @@ "type": "string" }, "calendarId": { - "description": "The Calendar ID for a calendar that all course members can see, to which Classroom adds events for course work and announcements in the course. Read-only.", + "description": "The Calendar ID for a calendar that all course members can see, to which Classroom adds events for course work and announcements in the course. The Calendar for a course is created asynchronously when the course is set to `CourseState.ACTIVE` for the first time (at creation time or when it is updated to `ACTIVE` through the UI or the API). The Calendar ID will not be populated until the creation process is completed. Read-only.", "type": "string" }, "courseGroupEmail": { @@ -2562,6 +2562,7 @@ "type": "string" }, "courseMaterialSets": { + "deprecated": true, "description": "Sets of materials that appear on the \"about\" page of this course. Read-only.", "items": { "$ref": "CourseMaterialSet" @@ -2943,7 +2944,7 @@ "enumDescriptions": [ "No state specified. This is never returned.", "Status for course work material that has been published. This is the default state.", - "Status for an course work material that is not yet published. Course work material in this state is visible only to course teachers and domain administrators.", + "Status for a course work material that is not yet published. Course work material in this state is visible only to course teachers and domain administrators.", "Status for course work material that was published but is now deleted. Course work material in this state is visible only to course teachers and domain administrators. Course work material in this state is deleted after some time." ], "type": "string" @@ -3074,7 +3075,7 @@ "type": "string" }, "responseUrl": { - "description": "URL of the form responses document. Only set if respsonses have been recorded and only when the requesting user is an editor of the form. Read-only.", + "description": "URL of the form responses document. Only set if responses have been recorded and only when the requesting user is an editor of the form. Read-only.", "type": "string" }, "thumbnailUrl": { @@ -3849,7 +3850,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/etc/api/cloudasset/v1/cloudasset-api.json b/etc/api/cloudasset/v1/cloudasset-api.json index 65ce9c1934..abe2bfe0ec 100644 --- a/etc/api/cloudasset/v1/cloudasset-api.json +++ b/etc/api/cloudasset/v1/cloudasset-api.json @@ -198,13 +198,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#searchable_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, @@ -233,7 +233,7 @@ ], "parameters": { "parent": { - "description": "Required. The name of the project/folder/organization where this feed should be created in. It can only be an organization number (such as \"organizations/123\"), a folder number (such as \"folders/123\"), a project ID (such as \"projects/my-project-id\")\", or a project number (such as \"projects/12345\").", + "description": "Required. The name of the project/folder/organization where this feed should be created in. It can only be an organization number (such as \"organizations/123\"), a folder number (such as \"folders/123\"), a project ID (such as \"projects/my-project-id\"), or a project number (such as \"projects/12345\").", "location": "path", "pattern": "^[^/]+/[^/]+$", "required": true, @@ -397,7 +397,7 @@ ], "parameters": { "parent": { - "description": "Required. The name of the project/folder/organization where this saved_query should be created in. It can only be an organization number (such as \"organizations/123\"), a folder number (such as \"folders/123\"), a project ID (such as \"projects/my-project-id\")\", or a project number (such as \"projects/12345\").", + "description": "Required. The name of the project/folder/organization where this saved_query should be created in. It can only be an organization number (such as \"organizations/123\"), a folder number (such as \"folders/123\"), a project ID (such as \"projects/my-project-id\"), or a project number (such as \"projects/12345\").", "location": "path", "pattern": "^[^/]+/[^/]+$", "required": true, @@ -623,12 +623,12 @@ "type": "string" }, "savedAnalysisQuery": { - "description": "Optional. The name of a saved query, which must be in the format of: * projects/project_number/savedQueries/saved_query_id * folders/folder_number/savedQueries/saved_query_id * organizations/organization_number/savedQueries/saved_query_id If both `analysis_query` and `saved_analysis_query` are provided, they will be merged together with the `saved_analysis_query` as base and the `analysis_query` as overrides. For more details of the merge behavior, please refer to the [MergeFrom](https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.message#Message.MergeFrom.details) page. Note that you cannot override primitive fields with default value, such as 0 or empty string, etc., because we use proto3, which doesn't support field presence yet.", + "description": "Optional. The name of a saved query, which must be in the format of: * projects/project_number/savedQueries/saved_query_id * folders/folder_number/savedQueries/saved_query_id * organizations/organization_number/savedQueries/saved_query_id If both `analysis_query` and `saved_analysis_query` are provided, they will be merged together with the `saved_analysis_query` as base and the `analysis_query` as overrides. For more details of the merge behavior, refer to the [MergeFrom](https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.message#Message.MergeFrom.details) page. Note that you cannot override primitive fields with default value, such as 0 or empty string, etc., because we use proto3, which doesn't support field presence yet.", "location": "query", "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, @@ -653,7 +653,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, @@ -731,7 +731,7 @@ "type": "string" }, "filter": { - "description": "The expression to filter AnalyzeOrgPoliciesResponse.org_policy_results. The only supported field is `consolidated_policy.attached_resource`, and the only supported operator is `=`. Example: consolidated_policy.attached_resource=\"//cloudresourcemanager.googleapis.com/folders/001\" will return the org policy results of\"folders/001\".", + "description": "The expression to filter AnalyzeOrgPoliciesResponse.org_policy_results. Filtering is currently available for bare literal values and the following fields: * consolidated_policy.attached_resource * consolidated_policy.rules.enforce When filtering by a specific field, the only supported operator is `=`. For example, filtering by consolidated_policy.attached_resource=\"//cloudresourcemanager.googleapis.com/folders/001\" will return all the Organization Policy results attached to \"folders/001\".", "location": "query", "type": "string" }, @@ -763,7 +763,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#searchable_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", @@ -777,7 +777,7 @@ "type": "string" }, "filter": { - "description": "The expression to filter the governed assets in result. The only supported fields for governed resources are `governed_resource.project` and `governed_resource.folders`. The only supported fields for governed iam policies are `governed_iam_policy.project` and `governed_iam_policy.folders`. The only supported operator is `=`. Example 1: governed_resource.project=\"projects/12345678\" filter will return all governed resources under projects/12345678 including the project ifself, if applicable. Example 2: governed_iam_policy.folders=\"folders/12345678\" filter will return all governed iam policies under folders/12345678, if applicable.", + "description": "The expression to filter AnalyzeOrgPolicyGovernedAssetsResponse.governed_assets. For governed resources, filtering is currently available for bare literal values and the following fields: * governed_resource.project * governed_resource.folders * consolidated_policy.rules.enforce When filtering by `governed_resource.project` or `consolidated_policy.rules.enforce`, the only supported operator is `=`. When filtering by `governed_resource.folders`, the supported operators are `=` and `:`. For example, filtering by `governed_resource.project=\"projects/12345678\"` will return all the governed resources under \"projects/12345678\", including the project itself if applicable. For governed IAM policies, filtering is currently available for bare literal values and the following fields: * governed_iam_policy.project * governed_iam_policy.folders * consolidated_policy.rules.enforce When filtering by `governed_iam_policy.project` or `consolidated_policy.rules.enforce`, the only supported operator is `=`. When filtering by `governed_iam_policy.folders`, the supported operators are `=` and `:`. For example, filtering by `governed_iam_policy.folders:\"folders/12345678\"` will return all the governed IAM policies under \"folders/001\".", "location": "query", "type": "string" }, @@ -823,7 +823,7 @@ "type": "string" }, "filter": { - "description": "The expression to filter the governed containers in result. The only supported field is `parent`, and the only supported operator is `=`. Example: parent=\"//cloudresourcemanager.googleapis.com/folders/001\" will return all containers under \"folders/001\".", + "description": "The expression to filter AnalyzeOrgPolicyGovernedContainersResponse.governed_containers. Filtering is currently available for bare literal values and the following fields: * parent * consolidated_policy.rules.enforce When filtering by a specific field, the only supported operator is `=`. For example, filtering by parent=\"//cloudresourcemanager.googleapis.com/folders/001\" will return all the containers under \"folders/001\".", "location": "query", "type": "string" }, @@ -955,7 +955,7 @@ ] }, "queryAssets": { - "description": "Issue a job that queries assets using a SQL statement compatible with [BigQuery Standard SQL](http://cloud/bigquery/docs/reference/standard-sql/enabling-standard-sql). If the query execution finishes within timeout and there's no pagination, the full query results will be returned in the `QueryAssetsResponse`. Otherwise, full query results can be obtained by issuing extra requests with the `job_reference` from the a previous `QueryAssets` call. Note, the query result has approximately 10 GB limitation enforced by BigQuery https://cloud.google.com/bigquery/docs/best-practices-performance-output, queries return larger results will result in errors.", + "description": "Issue a job that queries assets using a SQL statement compatible with [BigQuery SQL](https://cloud.google.com/bigquery/docs/introduction-sql). If the query execution finishes within timeout and there's no pagination, the full query results will be returned in the `QueryAssetsResponse`. Otherwise, full query results can be obtained by issuing extra requests with the `job_reference` from the a previous `QueryAssets` call. Note, the query result has approximately 10 GB limitation enforced by [BigQuery](https://cloud.google.com/bigquery/docs/best-practices-performance-output). Queries return larger results will result in errors.", "flatPath": "v1/{v1Id}/{v1Id1}:queryAssets", "httpMethod": "POST", "id": "cloudasset.queryAssets", @@ -992,7 +992,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#searchable_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" @@ -1003,7 +1003,7 @@ "type": "string" }, "pageSize": { - "description": "Optional. The page size for search result pagination. Page size is capped at 500 even if a larger value is given. If set to zero, server will pick an appropriate default. Returned results may be fewer than requested. When this happens, there could be more results as long as `next_page_token` is returned.", + "description": "Optional. The page size for search result pagination. Page size is capped at 500 even if a larger value is given. If set to zero or a negative value, server will pick an appropriate default. Returned results may be fewer than requested. When this happens, there could be more results as long as `next_page_token` is returned.", "format": "int32", "location": "query", "type": "integer" @@ -1044,18 +1044,18 @@ ], "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#searchable_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" }, "orderBy": { - "description": "Optional. A comma-separated list of fields specifying the sorting order of the results. The default order is ascending. Add \" DESC\" after the field name to indicate descending order. Redundant space characters are ignored. Example: \"location DESC, name\". Only singular primitive fields in the response are sortable: * name * assetType * project * displayName * description * location * createTime * updateTime * state * parentFullResourceName * parentAssetType All the other fields such as repeated fields (e.g., `networkTags`, `kmsKeys`), map fields (e.g., `labels`) and struct fields (e.g., `additionalAttributes`) are not supported.", + "description": "Optional. A comma-separated list of fields specifying the sorting order of the results. The default order is ascending. Add \" DESC\" after the field name to indicate descending order. Redundant space characters are ignored. Example: \"location DESC, name\". Only the following fields in the response are sortable: * name * assetType * project * displayName * description * location * createTime * updateTime * state * parentFullResourceName * parentAssetType", "location": "query", "type": "string" }, "pageSize": { - "description": "Optional. The page size for search result pagination. Page size is capped at 500 even if a larger value is given. If set to zero, server will pick an appropriate default. Returned results may be fewer than requested. When this happens, there could be more results as long as `next_page_token` is returned.", + "description": "Optional. The page size for search result pagination. Page size is capped at 500 even if a larger value is given. If set to zero or a negative value, server will pick an appropriate default. Returned results may be fewer than requested. When this happens, there could be more results as long as `next_page_token` is returned.", "format": "int32", "location": "query", "type": "integer" @@ -1066,12 +1066,12 @@ "type": "string" }, "query": { - "description": "Optional. The query statement. See [how to construct a query](https://cloud.google.com/asset-inventory/docs/searching-resources#how_to_construct_a_query) for more information. If not specified or empty, it will search all the resources within the specified `scope`. Examples: * `name:Important` to find Google Cloud resources whose name contains \"Important\" as a word. * `name=Important` to find the Google Cloud resource whose name is exactly \"Important\". * `displayName:Impor*` to find Google Cloud resources whose display name contains \"Impor\" as a prefix of any word in the field. * `location:us-west*` to find Google Cloud resources whose location contains both \"us\" and \"west\" as prefixes. * `labels:prod` to find Google Cloud resources whose labels contain \"prod\" as a key or value. * `labels.env:prod` to find Google Cloud resources that have a label \"env\" and its value is \"prod\". * `labels.env:*` to find Google Cloud resources that have a label \"env\". * `kmsKey:key` to find Google Cloud resources encrypted with a customer-managed encryption key whose name contains \"key\" as a word. This field is deprecated. Please use the `kmsKeys` field to retrieve Cloud KMS key information. * `kmsKeys:key` to find Google Cloud resources encrypted with customer-managed encryption keys whose name contains the word \"key\". * `relationships:instance-group-1` to find Google Cloud resources that have relationships with \"instance-group-1\" in the related resource name. * `relationships:INSTANCE_TO_INSTANCEGROUP` to find Compute Engine instances that have relationships of type \"INSTANCE_TO_INSTANCEGROUP\". * `relationships.INSTANCE_TO_INSTANCEGROUP:instance-group-1` to find Compute Engine instances that have relationships with \"instance-group-1\" in the Compute Engine instance group resource name, for relationship type \"INSTANCE_TO_INSTANCEGROUP\". * `state:ACTIVE` to find Google Cloud resources whose state contains \"ACTIVE\" as a word. * `NOT state:ACTIVE` to find Google Cloud resources whose state doesn't contain \"ACTIVE\" as a word. * `createTime<1609459200` to find Google Cloud resources that were created before \"2021-01-01 00:00:00 UTC\". 1609459200 is the epoch timestamp of \"2021-01-01 00:00:00 UTC\" in seconds. * `updateTime>1609459200` to find Google Cloud resources that were updated after \"2021-01-01 00:00:00 UTC\". 1609459200 is the epoch timestamp of \"2021-01-01 00:00:00 UTC\" in seconds. * `Important` to find Google Cloud resources that contain \"Important\" as a word in any of the searchable fields. * `Impor*` to find Google Cloud resources that contain \"Impor\" as a prefix of any word in any of the searchable fields. * `Important location:(us-west1 OR global)` to find Google Cloud resources that contain \"Important\" as a word in any of the searchable fields and are also located in the \"us-west1\" region or the \"global\" location.", + "description": "Optional. The query statement. See [how to construct a query](https://cloud.google.com/asset-inventory/docs/searching-resources#how_to_construct_a_query) for more information. If not specified or empty, it will search all the resources within the specified `scope`. Examples: * `name:Important` to find Google Cloud resources whose name contains `Important` as a word. * `name=Important` to find the Google Cloud resource whose name is exactly `Important`. * `displayName:Impor*` to find Google Cloud resources whose display name contains `Impor` as a prefix of any word in the field. * `location:us-west*` to find Google Cloud resources whose location contains both `us` and `west` as prefixes. * `labels:prod` to find Google Cloud resources whose labels contain `prod` as a key or value. * `labels.env:prod` to find Google Cloud resources that have a label `env` and its value is `prod`. * `labels.env:*` to find Google Cloud resources that have a label `env`. * `tagKeys:env` to find Google Cloud resources that have directly attached tags where the [`TagKey.namespacedName`](https://cloud.google.com/resource-manager/reference/rest/v3/tagKeys#resource:-tagkey) contains `env`. * `tagValues:prod*` to find Google Cloud resources that have directly attached tags where the [`TagValue.namespacedName`](https://cloud.google.com/resource-manager/reference/rest/v3/tagValues#resource:-tagvalue) contains a word prefixed by `prod`. * `tagValueIds=tagValues/123` to find Google Cloud resources that have directly attached tags where the [`TagValue.name`](https://cloud.google.com/resource-manager/reference/rest/v3/tagValues#resource:-tagvalue) is exactly `tagValues/123`. * `effectiveTagKeys:env` to find Google Cloud resources that have directly attached or inherited tags where the [`TagKey.namespacedName`](https://cloud.google.com/resource-manager/reference/rest/v3/tagKeys#resource:-tagkey) contains `env`. * `effectiveTagValues:prod*` to find Google Cloud resources that have directly attached or inherited tags where the [`TagValue.namespacedName`](https://cloud.google.com/resource-manager/reference/rest/v3/tagValues#resource:-tagvalue) contains a word prefixed by `prod`. * `effectiveTagValueIds=tagValues/123` to find Google Cloud resources that have directly attached or inherited tags where the [`TagValue.name`](https://cloud.google.com/resource-manager/reference/rest/v3/tagValues#resource:-tagvalue) is exactly `tagValues/123`. * `kmsKey:key` to find Google Cloud resources encrypted with a customer-managed encryption key whose name contains `key` as a word. This field is deprecated. Use the `kmsKeys` field to retrieve Cloud KMS key information. * `kmsKeys:key` to find Google Cloud resources encrypted with customer-managed encryption keys whose name contains the word `key`. * `relationships:instance-group-1` to find Google Cloud resources that have relationships with `instance-group-1` in the related resource name. * `relationships:INSTANCE_TO_INSTANCEGROUP` to find Compute Engine instances that have relationships of type `INSTANCE_TO_INSTANCEGROUP`. * `relationships.INSTANCE_TO_INSTANCEGROUP:instance-group-1` to find Compute Engine instances that have relationships with `instance-group-1` in the Compute Engine instance group resource name, for relationship type `INSTANCE_TO_INSTANCEGROUP`. * `sccSecurityMarks.key=value` to find Cloud resources that are attached with security marks whose key is `key` and value is `value`. * `sccSecurityMarks.key:*` to find Cloud resources that are attached with security marks whose key is `key`. * `state:ACTIVE` to find Google Cloud resources whose state contains `ACTIVE` as a word. * `NOT state:ACTIVE` to find Google Cloud resources whose state doesn't contain `ACTIVE` as a word. * `createTime<1609459200` to find Google Cloud resources that were created before `2021-01-01 00:00:00 UTC`. `1609459200` is the epoch timestamp of `2021-01-01 00:00:00 UTC` in seconds. * `updateTime>1609459200` to find Google Cloud resources that were updated after `2021-01-01 00:00:00 UTC`. `1609459200` is the epoch timestamp of `2021-01-01 00:00:00 UTC` in seconds. * `Important` to find Google Cloud resources that contain `Important` as a word in any of the searchable fields. * `Impor*` to find Google Cloud resources that contain `Impor` as a prefix of any word in any of the searchable fields. * `Important location:(us-west1 OR global)` to find Google Cloud resources that contain `Important` as a word in any of the searchable fields and are also located in the `us-west1` region or the `global` location.", "location": "query", "type": "string" }, "readMask": { - "description": "Optional. A comma-separated list of fields specifying which fields to be returned in ResourceSearchResult. Only '*' or combination of top level fields can be specified. Field names of both snake_case and camelCase are supported. Examples: `\"*\"`, `\"name,location\"`, `\"name,versionedResources\"`. The read_mask paths must be valid field paths listed but not limited to (both snake_case and camelCase are supported): * name * assetType * project * displayName * description * location * tagKeys * tagValues * tagValueIds * labels * networkTags * kmsKey (This field is deprecated. Please use the `kmsKeys` field to retrieve Cloud KMS key information.) * kmsKeys * createTime * updateTime * state * additionalAttributes * versionedResources If read_mask is not specified, all fields except versionedResources will be returned. If only '*' is specified, all fields including versionedResources will be returned. Any invalid field path will trigger INVALID_ARGUMENT error.", + "description": "Optional. A comma-separated list of fields that you want returned in the results. The following fields are returned by default if not specified: * `name` * `assetType` * `project` * `folders` * `organization` * `displayName` * `description` * `location` * `labels` * `tags` * `effectiveTags` * `networkTags` * `kmsKeys` * `createTime` * `updateTime` * `state` * `additionalAttributes` * `parentFullResourceName` * `parentAssetType` Some fields of large size, such as `versionedResources`, `attachedResources`, `effectiveTags` etc., are not returned by default, but you can specify them in the `read_mask` parameter if you want to include them. If `\"*\"` is specified, all [available fields](https://cloud.google.com/asset-inventory/docs/reference/rest/v1/TopLevel/searchAllResources#resourcesearchresult) are returned. Examples: `\"name,location\"`, `\"name,versionedResources\"`, `\"*\"`. Any invalid field path will trigger INVALID_ARGUMENT error.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -1095,7 +1095,7 @@ } } }, - "revision": "20230121", + "revision": "20240302", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AccessSelector": { @@ -1145,7 +1145,7 @@ "description": "Required. Output configuration indicating where the results will be output to." }, "savedAnalysisQuery": { - "description": "Optional. The name of a saved query, which must be in the format of: * projects/project_number/savedQueries/saved_query_id * folders/folder_number/savedQueries/saved_query_id * organizations/organization_number/savedQueries/saved_query_id If both `analysis_query` and `saved_analysis_query` are provided, they will be merged together with the `saved_analysis_query` as base and the `analysis_query` as overrides. For more details of the merge behavior, please refer to the [MergeFrom](https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.message#Message.MergeFrom.details) doc. Note that you cannot override primitive fields with default value, such as 0 or empty string, etc., because we use proto3, which doesn't support field presence yet.", + "description": "Optional. The name of a saved query, which must be in the format of: * projects/project_number/savedQueries/saved_query_id * folders/folder_number/savedQueries/saved_query_id * organizations/organization_number/savedQueries/saved_query_id If both `analysis_query` and `saved_analysis_query` are provided, they will be merged together with the `saved_analysis_query` as base and the `analysis_query` as overrides. For more details of the merge behavior, refer to the [MergeFrom](https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.message#Message.MergeFrom.details) doc. Note that you cannot override primitive fields with default value, such as 0 or empty string, etc., because we use proto3, which doesn't support field presence yet.", "type": "string" } }, @@ -1310,11 +1310,11 @@ "properties": { "accessLevel": { "$ref": "GoogleIdentityAccesscontextmanagerV1AccessLevel", - "description": "Please also refer to the [access level user guide](https://cloud.google.com/access-context-manager/docs/overview#access-levels)." + "description": "Also refer to the [access level user guide](https://cloud.google.com/access-context-manager/docs/overview#access-levels)." }, "accessPolicy": { "$ref": "GoogleIdentityAccesscontextmanagerV1AccessPolicy", - "description": "Please also refer to the [access policy user guide](https://cloud.google.com/access-context-manager/docs/overview#access-policies)." + "description": "Also refer to the [access policy user guide](https://cloud.google.com/access-context-manager/docs/overview#access-policies)." }, "ancestors": { "description": "The ancestry path of an asset 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 asset is a project, folder, or organization, the ancestry path starts from the asset itself. Example: `[\"projects/123456789\", \"folders/5432\", \"organizations/1234\"]`", @@ -1352,6 +1352,7 @@ }, "relatedAssets": { "$ref": "RelatedAssets", + "deprecated": true, "description": "DEPRECATED. This field only presents for the purpose of backward-compatibility. The server will never generate responses with this field. The related assets of the asset of one relationship type. One asset only represents one type of relationship." }, "resource": { @@ -1360,7 +1361,7 @@ }, "servicePerimeter": { "$ref": "GoogleIdentityAccesscontextmanagerV1ServicePerimeter", - "description": "Please also refer to the [service perimeter user guide](https://cloud.google.com/vpc-service-controls/docs/overview)." + "description": "Also refer to the [service perimeter user guide](https://cloud.google.com/vpc-service-controls/docs/overview)." }, "updateTime": { "description": "The last update timestamp of an asset. update_time is updated when create/update/delete operation is performed.", @@ -1375,7 +1376,7 @@ "id": "AttachedResource", "properties": { "assetType": { - "description": "The type of this attached resource. Example: `osconfig.googleapis.com/Inventory` You can find the supported attached asset types of each resource in this table: `https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types`", + "description": "The type of this attached resource. Example: `osconfig.googleapis.com/Inventory` You can find the supported attached asset types of each resource in this table: `https://cloud.google.com/asset-inventory/docs/supported-asset-types`", "type": "string" }, "versionedResources": { @@ -1500,14 +1501,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1526,7 +1527,7 @@ "type": "object" }, "ConditionEvaluation": { - "description": "The Condition evaluation.", + "description": "The condition evaluation.", "id": "ConditionEvaluation", "properties": { "evaluationValue": { @@ -1541,7 +1542,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" } @@ -1603,6 +1604,24 @@ }, "type": "object" }, + "EffectiveTagDetails": { + "description": "The effective tags and the ancestor resources from which they were inherited.", + "id": "EffectiveTagDetails", + "properties": { + "attachedResource": { + "description": "The [full resource name](https://cloud.google.com/asset-inventory/docs/resource-name-format) of the ancestor from which an effective_tag is inherited, according to [tag inheritance](https://cloud.google.com/resource-manager/docs/tags/tags-overview#inheritance).", + "type": "string" + }, + "effectiveTags": { + "description": "The effective tags inherited from the attached_resource. Note that tags with the same key but different values may attach to resources at a different hierarchy levels. The lower hierarchy tag value will overwrite the higher hierarchy tag value of the same tag key. In this case, the tag value at the higher hierarchy level will be removed. For more information, see [tag inheritance](https://cloud.google.com/resource-manager/docs/tags/tags-overview#inheritance).", + "items": { + "$ref": "Tag" + }, + "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", @@ -1867,19 +1886,23 @@ "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 associated with this IAM policy. 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.", + "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" }, "folders": { - "description": "The folder(s) that this IAM policy belongs to, in the form of folders/{FOLDER_NUMBER}. This field is available when the IAM policy belongs(directly or cascadingly) to one or more folders.", + "description": "The folder(s) that this IAM policy belongs to, in the format of folders/{FOLDER_NUMBER}. This field is available when the IAM policy belongs (directly or cascadingly) to one or more folders.", "items": { "type": "string" }, "type": "array" }, "organization": { - "description": "The organization that this IAM policy belongs to, in the form of organizations/{ORGANIZATION_NUMBER}. This field is available when the IAM policy belongs(directly or cascadingly) to an organization.", + "description": "The organization that this IAM policy belongs to, in the format of organizations/{ORGANIZATION_NUMBER}. This field is available when the IAM policy belongs (directly or cascadingly) to an organization.", "type": "string" }, "policy": { @@ -1887,7 +1910,7 @@ "description": "The IAM policy directly set on the given resource." }, "project": { - "description": "The project that this IAM policy belongs to, in the form of projects/{PROJECT_NUMBER}. This field is available when the IAM policy belongs to a project.", + "description": "The project that this IAM policy belongs to, in the format of projects/{PROJECT_NUMBER}. This field is available when the IAM policy belongs to a project.", "type": "string" } }, @@ -1897,8 +1920,19 @@ "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 form of folders/{FOLDER_NUMBER}. This field is available when the resource belongs(directly or cascadingly) to one or more 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" }, @@ -1909,7 +1943,7 @@ "type": "string" }, "organization": { - "description": "The organization that this resource belongs to, in the form of organizations/{ORGANIZATION_NUMBER}. This field is available when the resource belongs(directly or cascadingly) to an 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": { @@ -1917,7 +1951,7 @@ "type": "string" }, "project": { - "description": "The project that this resource belongs to, in the form of projects/{PROJECT_NUMBER}. This field is available when the resource belongs to a 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" } }, @@ -2098,10 +2132,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" @@ -2112,6 +2164,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" @@ -2125,7 +2181,7 @@ "description": "The analysis state of this identity." }, "name": { - "description": "The identity name in any form of members appear in [IAM policy binding](https://cloud.google.com/iam/reference/rest/v1/Binding), such as: - user:foo@google.com - group:group1@google.com - serviceAccount:s1@prj1.iam.gserviceaccount.com - projectOwner:some_project_id - domain:google.com - allUsers - etc.", + "description": "The identity of members, formatted as appear in an [IAM policy binding](https://cloud.google.com/iam/reference/rest/v1/Binding). For example, they might be formatted like the following: - user:foo@google.com - group:group1@google.com - serviceAccount:s1@prj1.iam.gserviceaccount.com - projectOwner:some_project_id - domain:google.com - allUsers", "type": "string" } }, @@ -2202,7 +2258,7 @@ "type": "object" }, "GoogleCloudAssetV1Rule": { - "description": "Represents a rule defined in an organization policy", + "description": "This rule message is a customized version of the one defined in the Organization Policy system. In addition to the fields defined in the original organization policy, it contains additional field(s) under specific circumstances to support analysis results.", "id": "GoogleCloudAssetV1Rule", "properties": { "allowAll": { @@ -2213,6 +2269,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" @@ -2223,7 +2283,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" @@ -2551,7 +2611,7 @@ "type": "string" }, "scopes": { - "description": "The scopes of a policy define which resources an ACM policy can restrict, and where ACM resources can be referenced. For example, a policy with scopes=[\"folders/123\"] has the following behavior: - vpcsc perimeters can only restrict projects within folders/123 - access levels can only be referenced by resources within folders/123. If empty, there are no limitations on which resources can be restricted by an ACM policy, and there are no limitations on where ACM resources can be referenced. Only one policy can include a given scope (attempting to create a second policy which includes \"folders/123\" will result in an error). Currently, scopes cannot be modified after a policy is created. Currently, policies can only have a single scope. Format: list of `folders/{folder_number}` or `projects/{project_number}`", + "description": "The scopes of the AccessPolicy. Scopes define which resources a policy can restrict and where its resources can be referenced. For example, policy A with `scopes=[\"folders/123\"]` has the following behavior: - ServicePerimeter can only restrict projects within `folders/123`. - ServicePerimeter within policy A can only reference access levels defined within policy A. - Only one policy can include a given scope; thus, attempting to create a second policy which includes `folders/123` will result in an error. If no scopes are provided, then any resource within the organization can be restricted. Scopes cannot be modified after a policy is created. Policies can only have a single scope. Format: list of `folders/{folder_number}` or `projects/{project_number}`", "items": { "type": "string" }, @@ -2631,7 +2691,7 @@ "type": "array" }, "negate": { - "description": "Whether to negate the Condition. If true, the Condition becomes a NAND over its non-empty fields, each field must be false for the Condition overall to be satisfied. Defaults to false.", + "description": "Whether to negate the Condition. If true, the Condition becomes a NAND over its non-empty fields. Any non-empty field criteria evaluating to false will result in the Condition to be satisfied. Defaults to false.", "type": "boolean" }, "regions": { @@ -2647,6 +2707,13 @@ "type": "string" }, "type": "array" + }, + "vpcNetworkSources": { + "description": "The request must originate from one of the provided VPC networks in Google Cloud. Cannot specify this field together with `ip_subnetworks`.", + "items": { + "$ref": "GoogleIdentityAccesscontextmanagerV1VpcNetworkSource" + }, + "type": "array" } }, "type": "object" @@ -2731,7 +2798,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" }, @@ -2752,6 +2819,27 @@ "Authorize access from all service accounts outside the perimeter." ], "type": "string" + }, + "sourceRestriction": { + "description": "Whether to enforce traffic restrictions based on `sources` field. If the `sources` fields is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.", + "enum": [ + "SOURCE_RESTRICTION_UNSPECIFIED", + "SOURCE_RESTRICTION_ENABLED", + "SOURCE_RESTRICTION_DISABLED" + ], + "enumDescriptions": [ + "Enforcement preference unspecified, will not enforce traffic restrictions based on `sources` in EgressFrom.", + "Enforcement preference enabled, traffic restrictions will be enforced based on `sources` in EgressFrom.", + "Enforcement preference disabled, will not enforce traffic restrictions based on `sources` in EgressFrom." + ], + "type": "string" + }, + "sources": { + "description": "Sources that this EgressPolicy authorizes access from. If this field is not empty, then `source_restriction` must be set to `SOURCE_RESTRICTION_ENABLED`.", + "items": { + "$ref": "GoogleIdentityAccesscontextmanagerV1EgressSource" + }, + "type": "array" } }, "type": "object" @@ -2771,6 +2859,17 @@ }, "type": "object" }, + "GoogleIdentityAccesscontextmanagerV1EgressSource": { + "description": "The source that EgressPolicy authorizes access from inside the ServicePerimeter to somewhere outside the ServicePerimeter boundaries.", + "id": "GoogleIdentityAccesscontextmanagerV1EgressSource", + "properties": { + "accessLevel": { + "description": "An AccessLevel resource name that allows protected resources inside the ServicePerimeters to access outside the ServicePerimeter boundaries. AccessLevels listed must be in the same policy as this ServicePerimeter. Referencing a nonexistent AccessLevel will cause an error. If an AccessLevel name is not specified, only resources within the perimeter can be accessed through Google Cloud calls with request origins within the perimeter. Example: `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL`. If a single `*` is specified for `access_level`, then all EgressSources will be allowed.", + "type": "string" + } + }, + "type": "object" + }, "GoogleIdentityAccesscontextmanagerV1EgressTo": { "description": "Defines the conditions under which an EgressPolicy matches a request. Conditions are based on information about the ApiOperation intended to be performed on the `resources` specified. Note that if the destination of the request is also protected by a ServicePerimeter, then that ServicePerimeter must have an IngressPolicy which allows access in order for this request to succeed. The request must match `operations` AND `resources` fields in order to be allowed egress out of the perimeter.", "id": "GoogleIdentityAccesscontextmanagerV1EgressTo", @@ -2804,7 +2903,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" }, @@ -2860,7 +2959,7 @@ "type": "string" }, "resource": { - "description": "A Google Cloud resource that is allowed to ingress the perimeter. Requests from these resources will be allowed to access perimeter data. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`. The project may be in any Google Cloud organization, not just the organization that the perimeter is defined in. `*` is not allowed, the case of allowing all Google Cloud resources only is not supported.", + "description": "A Google Cloud resource that is allowed to ingress the perimeter. Requests from these resources will be allowed to access perimeter data. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC network format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`. The project may be in any Google Cloud organization, not just the organization that the perimeter is defined in. `*` is not allowed, the case of allowing all Google Cloud resources only is not supported.", "type": "string" } }, @@ -2892,11 +2991,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" } }, @@ -2940,7 +3039,7 @@ "type": "object" }, "GoogleIdentityAccesscontextmanagerV1ServicePerimeter": { - "description": "`ServicePerimeter` describes a set of Google Cloud resources which can freely import and export data amongst themselves, but not export outside of the `ServicePerimeter`. If a request with a source within this `ServicePerimeter` has a target outside of the `ServicePerimeter`, the request will be blocked. Otherwise the request is allowed. There are two types of Service Perimeter - Regular and Bridge. Regular Service Perimeters cannot overlap, a single Google Cloud project can only belong to a single regular Service Perimeter. Service Perimeter Bridges can contain only Google Cloud projects as members, a single Google Cloud project may belong to multiple Service Perimeter Bridges.", + "description": "`ServicePerimeter` describes a set of Google Cloud resources which can freely import and export data amongst themselves, but not export outside of the `ServicePerimeter`. If a request with a source within this `ServicePerimeter` has a target outside of the `ServicePerimeter`, the request will be blocked. Otherwise the request is allowed. There are two types of Service Perimeter - Regular and Bridge. Regular Service Perimeters cannot overlap, a single Google Cloud project or VPC network can only belong to a single regular Service Perimeter. Service Perimeter Bridges can contain only Google Cloud projects as members, a single Google Cloud project may belong to multiple Service Perimeter Bridges.", "id": "GoogleIdentityAccesscontextmanagerV1ServicePerimeter", "properties": { "description": { @@ -2952,7 +3051,7 @@ "type": "string" }, "perimeterType": { - "description": "Perimeter type indicator. A single project is allowed to be a member of single regular perimeter, but multiple service perimeter bridges. A project cannot be a included in a perimeter bridge without being included in regular perimeter. For perimeter bridges, the restricted service list as well as access level lists must be empty.", + "description": "Perimeter type indicator. A single project or VPC network is allowed to be a member of single regular perimeter, but multiple service perimeter bridges. A project cannot be a included in a perimeter bridge without being included in regular perimeter. For perimeter bridges, the restricted service list as well as access level lists must be empty.", "enum": [ "PERIMETER_TYPE_REGULAR", "PERIMETER_TYPE_BRIDGE" @@ -3008,7 +3107,7 @@ "type": "array" }, "resources": { - "description": "A list of Google Cloud resources that are inside of the service perimeter. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`.", + "description": "A list of Google Cloud resources that are inside of the service perimeter. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC network format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`.", "items": { "type": "string" }, @@ -3046,6 +3145,35 @@ }, "type": "object" }, + "GoogleIdentityAccesscontextmanagerV1VpcNetworkSource": { + "description": "The originating network source in Google Cloud.", + "id": "GoogleIdentityAccesscontextmanagerV1VpcNetworkSource", + "properties": { + "vpcSubnetwork": { + "$ref": "GoogleIdentityAccesscontextmanagerV1VpcSubNetwork", + "description": "Sub-segment ranges of a VPC network." + } + }, + "type": "object" + }, + "GoogleIdentityAccesscontextmanagerV1VpcSubNetwork": { + "description": "Sub-segment ranges inside of a VPC Network.", + "id": "GoogleIdentityAccesscontextmanagerV1VpcSubNetwork", + "properties": { + "network": { + "description": "Required. Network name. If the network is not part of the organization, the `compute.network.get` permission must be granted to the caller. Format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NETWORK_NAME}` Example: `//compute.googleapis.com/projects/my-project/global/networks/network-1`", + "type": "string" + }, + "vpcIpSubnetworks": { + "description": "CIDR block IP subnetwork specification. The IP address must be an IPv4 address and can be a public or private IP address. Note that for a CIDR IP address block, the specified IP address portion must be properly truncated (i.e. all the host bits must be zero) or the input is considered malformed. For example, \"192.0.2.0/24\" is accepted but \"192.0.2.1/24\" is not. If empty, all IP addresses are allowed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "IamPolicyAnalysis": { "description": "An analysis message to group the query and results.", "id": "IamPolicyAnalysis", @@ -3115,7 +3243,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" } }, @@ -3471,7 +3599,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" } }, @@ -3516,12 +3644,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" @@ -3616,7 +3759,7 @@ "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/).", + "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": { @@ -3714,7 +3857,7 @@ "description": "Optional. [start_time] is required. [start_time] must be less than [end_time] Defaults [end_time] to now if [start_time] is set and [end_time] isn't. Maximum permitted time range is 7 days." }, "statement": { - "description": "Optional. A SQL statement that's compatible with [BigQuery Standard SQL](http://cloud/bigquery/docs/reference/standard-sql/enabling-standard-sql).", + "description": "Optional. A SQL statement that's compatible with [BigQuery SQL](https://cloud.google.com/bigquery/docs/introduction-sql).", "type": "string" }, "timeout": { @@ -3821,6 +3964,7 @@ "type": "object" }, "RelatedAssets": { + "deprecated": true, "description": "DEPRECATED. This message only presents for the purpose of backward-compatibility. The server will never populate this message in responses. The detailed related assets with the `relationship_type`.", "id": "RelatedAssets", "properties": { @@ -3868,6 +4012,7 @@ "type": "object" }, "RelationshipAttributes": { + "deprecated": true, "description": "DEPRECATED. This message only presents for the purpose of backward-compatibility. The server will never populate this message in responses. The relationship attributes which include `type`, `source_resource_type`, `target_resource_type` and `action`.", "id": "RelationshipAttributes", "properties": { @@ -3915,7 +4060,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": { @@ -3930,7 +4075,7 @@ "type": "object" }, "ResourceSearchResult": { - "description": "A result of Resource Search, containing information of a cloud resource. Next ID: 31", + "description": "A result of Resource Search, containing information of a cloud resource. Next ID: 34", "id": "ResourceSearchResult", "properties": { "additionalAttributes": { @@ -3938,7 +4083,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The additional searchable attributes of this resource. The attributes may vary from one resource type to another. Examples: `projectId` for Project, `dnsName` for DNS ManagedZone. This field contains a subset of the resource metadata fields that are returned by the List or Get APIs provided by the corresponding Google Cloud service (e.g., Compute Engine). see [API references and supported searchable attributes](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types) to see which fields are included. You can search values of these fields through free text search. However, you should not consume the field programically as the field names and values may change as the Google Cloud service updates to a new incompatible API version. To search against the `additional_attributes`: * Use a free text query to match the attributes values. Example: to search `additional_attributes = { dnsName: \"foobar\" }`, you can issue a query `foobar`.", + "description": "The additional searchable attributes of this resource. The attributes may vary from one resource type to another. Examples: `projectId` for Project, `dnsName` for DNS ManagedZone. This field contains a subset of the resource metadata fields that are returned by the List or Get APIs provided by the corresponding Google Cloud service (e.g., Compute Engine). see [API references and supported searchable attributes](https://cloud.google.com/asset-inventory/docs/supported-asset-types) to see which fields are included. You can search values of these fields through free text search. However, you should not consume the field programically as the field names and values may change as the Google Cloud service updates to a new incompatible API version. To search against the `additional_attributes`: * Use a free text query to match the attributes values. Example: to search `additional_attributes = { dnsName: \"foobar\" }`, you can issue a query `foobar`.", "type": "object" }, "assetType": { @@ -3965,6 +4110,13 @@ "description": "The display name of this resource. This field is available only when the resource's Protobuf contains it. To search against the `display_name`: * Use a field query. Example: `displayName:\"My Instance\"` * Use a free text query. Example: `\"My Instance\"`", "type": "string" }, + "effectiveTags": { + "description": "The effective tags on this resource. All of the tags that are both attached to and inherited by a resource are collectively called the effective tags. For more information, see [tag inheritance](https://cloud.google.com/resource-manager/docs/tags/tags-overview#inheritance). To search against the `effective_tags`: * Use a field query. Example: - `effectiveTagKeys:\"123456789/env*\"` - `effectiveTagKeys=\"123456789/env\"` - `effectiveTagKeys:\"env\"` - `effectiveTagValues:\"env\"` - `effectiveTagValues:\"env/prod\"` - `effectiveTagValues:\"123456789/env/prod*\"` - `effectiveTagValues=\"123456789/env/prod\"` - `effectiveTagValueIds=\"tagValues/456\"`", + "items": { + "$ref": "EffectiveTagDetails" + }, + "type": "array" + }, "folders": { "description": "The folder(s) that this resource belongs to, in the form of folders/{FOLDER_NUMBER}. This field is available when the resource belongs to one or more folders. To search against `folders`: * Use a field query. Example: `folders:(123 OR 456)` * Use a free text query. Example: `123` * Specify the `scope` field as this folder in your search request.", "items": { @@ -3973,7 +4125,8 @@ "type": "array" }, "kmsKey": { - "description": "The Cloud KMS [CryptoKey](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys) name or [CryptoKeyVersion](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions) name. This field only presents for the purpose of backward compatibility. Please use the `kms_keys` field to retrieve Cloud KMS key information. This field is available only when the resource's Protobuf contains it and will only be populated for [these resource types](https://cloud.google.com/asset-inventory/docs/legacy-field-names#resource_types_with_the_to_be_deprecated_kmskey_field) for backward compatible purposes. To search against the `kms_key`: * Use a field query. Example: `kmsKey:key` * Use a free text query. Example: `key`", + "deprecated": true, + "description": "The Cloud KMS [CryptoKey](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys) name or [CryptoKeyVersion](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions) name. This field only presents for the purpose of backward compatibility. Use the `kms_keys` field to retrieve Cloud KMS key information. This field is available only when the resource's Protobuf contains it and will only be populated for [these resource types](https://cloud.google.com/asset-inventory/docs/legacy-field-names#resource_types_with_the_to_be_deprecated_kmskey_field) for backward compatible purposes. To search against the `kms_key`: * Use a field query. Example: `kmsKey:key` * Use a free text query. Example: `key`", "type": "string" }, "kmsKeys": { @@ -4028,31 +4181,48 @@ "description": "A map of related resources of this resource, keyed by the relationship type. A relationship type is in the format of {SourceType}_{ACTION}_{DestType}. Example: `DISK_TO_INSTANCE`, `DISK_TO_NETWORK`, `INSTANCE_TO_INSTANCEGROUP`. See [supported relationship types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#supported_relationship_types).", "type": "object" }, + "sccSecurityMarks": { + "additionalProperties": { + "type": "string" + }, + "description": "The actual content of Security Command Center security marks associated with the asset. To search against SCC SecurityMarks field: * Use a field query: - query by a given key value pair. Example: `sccSecurityMarks.foo=bar` - query by a given key's existence. Example: `sccSecurityMarks.foo:*`", + "type": "object" + }, "state": { "description": "The state of this resource. Different resources types have different state definitions that are mapped from various fields of different resource types. This field is available only when the resource's Protobuf contains it. Example: If the resource is an instance provided by Compute Engine, its state will include PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. See `status` definition in [API Reference](https://cloud.google.com/compute/docs/reference/rest/v1/instances). If the resource is a project provided by Resource Manager, its state will include LIFECYCLE_STATE_UNSPECIFIED, ACTIVE, DELETE_REQUESTED and DELETE_IN_PROGRESS. See `lifecycleState` definition in [API Reference](https://cloud.google.com/resource-manager/reference/rest/v1/projects). To search against the `state`: * Use a field query. Example: `state:RUNNING` * Use a free text query. Example: `RUNNING`", "type": "string" }, "tagKeys": { - "description": "TagKey namespaced names, in the format of {ORG_ID}/{TAG_KEY_SHORT_NAME}. To search against the `tagKeys`: * Use a field query. Example: - `tagKeys:\"123456789/env*\"` - `tagKeys=\"123456789/env\"` - `tagKeys:\"env\"` * Use a free text query. Example: - `env`", + "deprecated": true, + "description": "This field is only present for the purpose of backward compatibility. Use the `tags` field instead. TagKey namespaced names, in the format of {ORG_ID}/{TAG_KEY_SHORT_NAME}. To search against the `tagKeys`: * Use a field query. Example: - `tagKeys:\"123456789/env*\"` - `tagKeys=\"123456789/env\"` - `tagKeys:\"env\"` * Use a free text query. Example: - `env`", "items": { "type": "string" }, "type": "array" }, "tagValueIds": { - "description": "TagValue IDs, in the format of tagValues/{TAG_VALUE_ID}. To search against the `tagValueIds`: * Use a field query. Example: - `tagValueIds:\"456\"` - `tagValueIds=\"tagValues/456\"` * Use a free text query. Example: - `456`", + "deprecated": true, + "description": "This field is only present for the purpose of backward compatibility. Use the `tags` field instead. TagValue IDs, in the format of tagValues/{TAG_VALUE_ID}. To search against the `tagValueIds`: * Use a field query. Example: - `tagValueIds=\"tagValues/456\"` * Use a free text query. Example: - `456`", "items": { "type": "string" }, "type": "array" }, "tagValues": { - "description": "TagValue namespaced names, in the format of {ORG_ID}/{TAG_KEY_SHORT_NAME}/{TAG_VALUE_SHORT_NAME}. To search against the `tagValues`: * Use a field query. Example: - `tagValues:\"env\"` - `tagValues:\"env/prod\"` - `tagValues:\"123456789/env/prod*\"` - `tagValues=\"123456789/env/prod\"` * Use a free text query. Example: - `prod`", + "deprecated": true, + "description": "This field is only present for the purpose of backward compatibility. Use the `tags` field instead. TagValue namespaced names, in the format of {ORG_ID}/{TAG_KEY_SHORT_NAME}/{TAG_VALUE_SHORT_NAME}. To search against the `tagValues`: * Use a field query. Example: - `tagValues:\"env\"` - `tagValues:\"env/prod\"` - `tagValues:\"123456789/env/prod*\"` - `tagValues=\"123456789/env/prod\"` * Use a free text query. Example: - `prod`", "items": { "type": "string" }, "type": "array" }, + "tags": { + "description": "The tags directly attached to this resource. To search against the `tags`: * Use a field query. Example: - `tagKeys:\"123456789/env*\"` - `tagKeys=\"123456789/env\"` - `tagKeys:\"env\"` - `tagValues:\"env\"` - `tagValues:\"env/prod\"` - `tagValues:\"123456789/env/prod*\"` - `tagValues=\"123456789/env/prod\"` - `tagValueIds=\"tagValues/456\"` * Use a free text query. Example: - `env/prod`", + "items": { + "$ref": "Tag" + }, + "type": "array" + }, "updateTime": { "description": "The last update timestamp of this resource, at which the resource was last modified or deleted. The granularity is in seconds. Timestamp.nanos will always be 0. This field is available only when the resource's Protobuf contains it. To search against `update_time`: * Use a field query. - value in seconds since unix epoch. Example: `updateTime < 1609459200` - value in date string. Example: `updateTime < 2021-01-01` - value in date-time string (must be quoted). Example: `updateTime < \"2021-01-01T00:00:00\"`", "format": "google-datetime", @@ -4273,6 +4443,25 @@ }, "type": "object" }, + "Tag": { + "description": "The key and value for a [tag](https://cloud.google.com/resource-manager/docs/tags/tags-overview).", + "id": "Tag", + "properties": { + "tagKey": { + "description": "TagKey namespaced name, in the format of {ORG_ID}/{TAG_KEY_SHORT_NAME}.", + "type": "string" + }, + "tagValue": { + "description": "TagValue namespaced name, in the format of {ORG_ID}/{TAG_KEY_SHORT_NAME}/{TAG_VALUE_SHORT_NAME}.", + "type": "string" + }, + "tagValueId": { + "description": "TagValue ID, in the format of tagValues/{TAG_VALUE_ID}.", + "type": "string" + } + }, + "type": "object" + }, "TemporalAsset": { "description": "An asset in Google Cloud and its temporal metadata, including the time window when it was observed and its status during that window.", "id": "TemporalAsset", @@ -4375,7 +4564,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "JSON representation of the resource as defined by the corresponding service providing this resource. Example: If the resource is an instance provided by Compute Engine, this field will contain the JSON representation of the instance as defined by Compute Engine: `https://cloud.google.com/compute/docs/reference/rest/v1/instances`. You can find the resource definition for each supported resource type in this table: `https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types`", + "description": "JSON representation of the resource as defined by the corresponding service providing this resource. Example: If the resource is an instance provided by Compute Engine, this field will contain the JSON representation of the instance as defined by Compute Engine: `https://cloud.google.com/compute/docs/reference/rest/v1/instances`. You can find the resource definition for each supported resource type in this table: `https://cloud.google.com/asset-inventory/docs/supported-asset-types`", "type": "object" }, "version": { diff --git a/etc/api/cloudasset/v1beta1/cloudasset-api.json b/etc/api/cloudasset/v1beta1/cloudasset-api.json index cb73f4244b..1bff058fa3 100644 --- a/etc/api/cloudasset/v1beta1/cloudasset-api.json +++ b/etc/api/cloudasset/v1beta1/cloudasset-api.json @@ -411,7 +411,7 @@ } } }, - "revision": "20230121", + "revision": "20240302", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningMetadata": { @@ -546,14 +546,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -936,7 +936,7 @@ "type": "string" }, "scopes": { - "description": "The scopes of a policy define which resources an ACM policy can restrict, and where ACM resources can be referenced. For example, a policy with scopes=[\"folders/123\"] has the following behavior: - vpcsc perimeters can only restrict projects within folders/123 - access levels can only be referenced by resources within folders/123. If empty, there are no limitations on which resources can be restricted by an ACM policy, and there are no limitations on where ACM resources can be referenced. Only one policy can include a given scope (attempting to create a second policy which includes \"folders/123\" will result in an error). Currently, scopes cannot be modified after a policy is created. Currently, policies can only have a single scope. Format: list of `folders/{folder_number}` or `projects/{project_number}`", + "description": "The scopes of the AccessPolicy. Scopes define which resources a policy can restrict and where its resources can be referenced. For example, policy A with `scopes=[\"folders/123\"]` has the following behavior: - ServicePerimeter can only restrict projects within `folders/123`. - ServicePerimeter within policy A can only reference access levels defined within policy A. - Only one policy can include a given scope; thus, attempting to create a second policy which includes `folders/123` will result in an error. If no scopes are provided, then any resource within the organization can be restricted. Scopes cannot be modified after a policy is created. Policies can only have a single scope. Format: list of `folders/{folder_number}` or `projects/{project_number}`", "items": { "type": "string" }, @@ -1016,7 +1016,7 @@ "type": "array" }, "negate": { - "description": "Whether to negate the Condition. If true, the Condition becomes a NAND over its non-empty fields, each field must be false for the Condition overall to be satisfied. Defaults to false.", + "description": "Whether to negate the Condition. If true, the Condition becomes a NAND over its non-empty fields. Any non-empty field criteria evaluating to false will result in the Condition to be satisfied. Defaults to false.", "type": "boolean" }, "regions": { @@ -1032,6 +1032,13 @@ "type": "string" }, "type": "array" + }, + "vpcNetworkSources": { + "description": "The request must originate from one of the provided VPC networks in Google Cloud. Cannot specify this field together with `ip_subnetworks`.", + "items": { + "$ref": "GoogleIdentityAccesscontextmanagerV1VpcNetworkSource" + }, + "type": "array" } }, "type": "object" @@ -1116,7 +1123,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" }, @@ -1137,6 +1144,27 @@ "Authorize access from all service accounts outside the perimeter." ], "type": "string" + }, + "sourceRestriction": { + "description": "Whether to enforce traffic restrictions based on `sources` field. If the `sources` fields is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.", + "enum": [ + "SOURCE_RESTRICTION_UNSPECIFIED", + "SOURCE_RESTRICTION_ENABLED", + "SOURCE_RESTRICTION_DISABLED" + ], + "enumDescriptions": [ + "Enforcement preference unspecified, will not enforce traffic restrictions based on `sources` in EgressFrom.", + "Enforcement preference enabled, traffic restrictions will be enforced based on `sources` in EgressFrom.", + "Enforcement preference disabled, will not enforce traffic restrictions based on `sources` in EgressFrom." + ], + "type": "string" + }, + "sources": { + "description": "Sources that this EgressPolicy authorizes access from. If this field is not empty, then `source_restriction` must be set to `SOURCE_RESTRICTION_ENABLED`.", + "items": { + "$ref": "GoogleIdentityAccesscontextmanagerV1EgressSource" + }, + "type": "array" } }, "type": "object" @@ -1156,6 +1184,17 @@ }, "type": "object" }, + "GoogleIdentityAccesscontextmanagerV1EgressSource": { + "description": "The source that EgressPolicy authorizes access from inside the ServicePerimeter to somewhere outside the ServicePerimeter boundaries.", + "id": "GoogleIdentityAccesscontextmanagerV1EgressSource", + "properties": { + "accessLevel": { + "description": "An AccessLevel resource name that allows protected resources inside the ServicePerimeters to access outside the ServicePerimeter boundaries. AccessLevels listed must be in the same policy as this ServicePerimeter. Referencing a nonexistent AccessLevel will cause an error. If an AccessLevel name is not specified, only resources within the perimeter can be accessed through Google Cloud calls with request origins within the perimeter. Example: `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL`. If a single `*` is specified for `access_level`, then all EgressSources will be allowed.", + "type": "string" + } + }, + "type": "object" + }, "GoogleIdentityAccesscontextmanagerV1EgressTo": { "description": "Defines the conditions under which an EgressPolicy matches a request. Conditions are based on information about the ApiOperation intended to be performed on the `resources` specified. Note that if the destination of the request is also protected by a ServicePerimeter, then that ServicePerimeter must have an IngressPolicy which allows access in order for this request to succeed. The request must match `operations` AND `resources` fields in order to be allowed egress out of the perimeter.", "id": "GoogleIdentityAccesscontextmanagerV1EgressTo", @@ -1189,7 +1228,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" }, @@ -1245,7 +1284,7 @@ "type": "string" }, "resource": { - "description": "A Google Cloud resource that is allowed to ingress the perimeter. Requests from these resources will be allowed to access perimeter data. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`. The project may be in any Google Cloud organization, not just the organization that the perimeter is defined in. `*` is not allowed, the case of allowing all Google Cloud resources only is not supported.", + "description": "A Google Cloud resource that is allowed to ingress the perimeter. Requests from these resources will be allowed to access perimeter data. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC network format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`. The project may be in any Google Cloud organization, not just the organization that the perimeter is defined in. `*` is not allowed, the case of allowing all Google Cloud resources only is not supported.", "type": "string" } }, @@ -1277,11 +1316,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" } }, @@ -1325,7 +1364,7 @@ "type": "object" }, "GoogleIdentityAccesscontextmanagerV1ServicePerimeter": { - "description": "`ServicePerimeter` describes a set of Google Cloud resources which can freely import and export data amongst themselves, but not export outside of the `ServicePerimeter`. If a request with a source within this `ServicePerimeter` has a target outside of the `ServicePerimeter`, the request will be blocked. Otherwise the request is allowed. There are two types of Service Perimeter - Regular and Bridge. Regular Service Perimeters cannot overlap, a single Google Cloud project can only belong to a single regular Service Perimeter. Service Perimeter Bridges can contain only Google Cloud projects as members, a single Google Cloud project may belong to multiple Service Perimeter Bridges.", + "description": "`ServicePerimeter` describes a set of Google Cloud resources which can freely import and export data amongst themselves, but not export outside of the `ServicePerimeter`. If a request with a source within this `ServicePerimeter` has a target outside of the `ServicePerimeter`, the request will be blocked. Otherwise the request is allowed. There are two types of Service Perimeter - Regular and Bridge. Regular Service Perimeters cannot overlap, a single Google Cloud project or VPC network can only belong to a single regular Service Perimeter. Service Perimeter Bridges can contain only Google Cloud projects as members, a single Google Cloud project may belong to multiple Service Perimeter Bridges.", "id": "GoogleIdentityAccesscontextmanagerV1ServicePerimeter", "properties": { "description": { @@ -1337,7 +1376,7 @@ "type": "string" }, "perimeterType": { - "description": "Perimeter type indicator. A single project is allowed to be a member of single regular perimeter, but multiple service perimeter bridges. A project cannot be a included in a perimeter bridge without being included in regular perimeter. For perimeter bridges, the restricted service list as well as access level lists must be empty.", + "description": "Perimeter type indicator. A single project or VPC network is allowed to be a member of single regular perimeter, but multiple service perimeter bridges. A project cannot be a included in a perimeter bridge without being included in regular perimeter. For perimeter bridges, the restricted service list as well as access level lists must be empty.", "enum": [ "PERIMETER_TYPE_REGULAR", "PERIMETER_TYPE_BRIDGE" @@ -1393,7 +1432,7 @@ "type": "array" }, "resources": { - "description": "A list of Google Cloud resources that are inside of the service perimeter. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`.", + "description": "A list of Google Cloud resources that are inside of the service perimeter. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC network format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`.", "items": { "type": "string" }, @@ -1431,6 +1470,35 @@ }, "type": "object" }, + "GoogleIdentityAccesscontextmanagerV1VpcNetworkSource": { + "description": "The originating network source in Google Cloud.", + "id": "GoogleIdentityAccesscontextmanagerV1VpcNetworkSource", + "properties": { + "vpcSubnetwork": { + "$ref": "GoogleIdentityAccesscontextmanagerV1VpcSubNetwork", + "description": "Sub-segment ranges of a VPC network." + } + }, + "type": "object" + }, + "GoogleIdentityAccesscontextmanagerV1VpcSubNetwork": { + "description": "Sub-segment ranges inside of a VPC Network.", + "id": "GoogleIdentityAccesscontextmanagerV1VpcSubNetwork", + "properties": { + "network": { + "description": "Required. Network name. If the network is not part of the organization, the `compute.network.get` permission must be granted to the caller. Format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NETWORK_NAME}` Example: `//compute.googleapis.com/projects/my-project/global/networks/network-1`", + "type": "string" + }, + "vpcIpSubnetworks": { + "description": "CIDR block IP subnetwork specification. The IP address must be an IPv4 address and can be a public or private IP address. Note that for a CIDR IP address block, the specified IP address portion must be properly truncated (i.e. all the host bits must be zero) or the input is considered malformed. For example, \"192.0.2.0/24\" is accepted but \"192.0.2.1/24\" is not. If empty, all IP addresses are allowed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -1460,7 +1528,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" } }, @@ -1478,7 +1546,7 @@ "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/).", + "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": { diff --git a/etc/api/cloudasset/v1p1beta1/cloudasset-api.json b/etc/api/cloudasset/v1p1beta1/cloudasset-api.json index 23fc55a07c..56ca621881 100644 --- a/etc/api/cloudasset/v1p1beta1/cloudasset-api.json +++ b/etc/api/cloudasset/v1p1beta1/cloudasset-api.json @@ -207,7 +207,7 @@ } } }, - "revision": "20230121", + "revision": "20240302", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningMetadata": { @@ -286,14 +286,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -638,7 +638,7 @@ "type": "string" }, "scopes": { - "description": "The scopes of a policy define which resources an ACM policy can restrict, and where ACM resources can be referenced. For example, a policy with scopes=[\"folders/123\"] has the following behavior: - vpcsc perimeters can only restrict projects within folders/123 - access levels can only be referenced by resources within folders/123. If empty, there are no limitations on which resources can be restricted by an ACM policy, and there are no limitations on where ACM resources can be referenced. Only one policy can include a given scope (attempting to create a second policy which includes \"folders/123\" will result in an error). Currently, scopes cannot be modified after a policy is created. Currently, policies can only have a single scope. Format: list of `folders/{folder_number}` or `projects/{project_number}`", + "description": "The scopes of the AccessPolicy. Scopes define which resources a policy can restrict and where its resources can be referenced. For example, policy A with `scopes=[\"folders/123\"]` has the following behavior: - ServicePerimeter can only restrict projects within `folders/123`. - ServicePerimeter within policy A can only reference access levels defined within policy A. - Only one policy can include a given scope; thus, attempting to create a second policy which includes `folders/123` will result in an error. If no scopes are provided, then any resource within the organization can be restricted. Scopes cannot be modified after a policy is created. Policies can only have a single scope. Format: list of `folders/{folder_number}` or `projects/{project_number}`", "items": { "type": "string" }, @@ -718,7 +718,7 @@ "type": "array" }, "negate": { - "description": "Whether to negate the Condition. If true, the Condition becomes a NAND over its non-empty fields, each field must be false for the Condition overall to be satisfied. Defaults to false.", + "description": "Whether to negate the Condition. If true, the Condition becomes a NAND over its non-empty fields. Any non-empty field criteria evaluating to false will result in the Condition to be satisfied. Defaults to false.", "type": "boolean" }, "regions": { @@ -734,6 +734,13 @@ "type": "string" }, "type": "array" + }, + "vpcNetworkSources": { + "description": "The request must originate from one of the provided VPC networks in Google Cloud. Cannot specify this field together with `ip_subnetworks`.", + "items": { + "$ref": "GoogleIdentityAccesscontextmanagerV1VpcNetworkSource" + }, + "type": "array" } }, "type": "object" @@ -818,7 +825,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" }, @@ -839,6 +846,27 @@ "Authorize access from all service accounts outside the perimeter." ], "type": "string" + }, + "sourceRestriction": { + "description": "Whether to enforce traffic restrictions based on `sources` field. If the `sources` fields is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.", + "enum": [ + "SOURCE_RESTRICTION_UNSPECIFIED", + "SOURCE_RESTRICTION_ENABLED", + "SOURCE_RESTRICTION_DISABLED" + ], + "enumDescriptions": [ + "Enforcement preference unspecified, will not enforce traffic restrictions based on `sources` in EgressFrom.", + "Enforcement preference enabled, traffic restrictions will be enforced based on `sources` in EgressFrom.", + "Enforcement preference disabled, will not enforce traffic restrictions based on `sources` in EgressFrom." + ], + "type": "string" + }, + "sources": { + "description": "Sources that this EgressPolicy authorizes access from. If this field is not empty, then `source_restriction` must be set to `SOURCE_RESTRICTION_ENABLED`.", + "items": { + "$ref": "GoogleIdentityAccesscontextmanagerV1EgressSource" + }, + "type": "array" } }, "type": "object" @@ -858,6 +886,17 @@ }, "type": "object" }, + "GoogleIdentityAccesscontextmanagerV1EgressSource": { + "description": "The source that EgressPolicy authorizes access from inside the ServicePerimeter to somewhere outside the ServicePerimeter boundaries.", + "id": "GoogleIdentityAccesscontextmanagerV1EgressSource", + "properties": { + "accessLevel": { + "description": "An AccessLevel resource name that allows protected resources inside the ServicePerimeters to access outside the ServicePerimeter boundaries. AccessLevels listed must be in the same policy as this ServicePerimeter. Referencing a nonexistent AccessLevel will cause an error. If an AccessLevel name is not specified, only resources within the perimeter can be accessed through Google Cloud calls with request origins within the perimeter. Example: `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL`. If a single `*` is specified for `access_level`, then all EgressSources will be allowed.", + "type": "string" + } + }, + "type": "object" + }, "GoogleIdentityAccesscontextmanagerV1EgressTo": { "description": "Defines the conditions under which an EgressPolicy matches a request. Conditions are based on information about the ApiOperation intended to be performed on the `resources` specified. Note that if the destination of the request is also protected by a ServicePerimeter, then that ServicePerimeter must have an IngressPolicy which allows access in order for this request to succeed. The request must match `operations` AND `resources` fields in order to be allowed egress out of the perimeter.", "id": "GoogleIdentityAccesscontextmanagerV1EgressTo", @@ -891,7 +930,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" }, @@ -947,7 +986,7 @@ "type": "string" }, "resource": { - "description": "A Google Cloud resource that is allowed to ingress the perimeter. Requests from these resources will be allowed to access perimeter data. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`. The project may be in any Google Cloud organization, not just the organization that the perimeter is defined in. `*` is not allowed, the case of allowing all Google Cloud resources only is not supported.", + "description": "A Google Cloud resource that is allowed to ingress the perimeter. Requests from these resources will be allowed to access perimeter data. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC network format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`. The project may be in any Google Cloud organization, not just the organization that the perimeter is defined in. `*` is not allowed, the case of allowing all Google Cloud resources only is not supported.", "type": "string" } }, @@ -979,11 +1018,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" } }, @@ -1027,7 +1066,7 @@ "type": "object" }, "GoogleIdentityAccesscontextmanagerV1ServicePerimeter": { - "description": "`ServicePerimeter` describes a set of Google Cloud resources which can freely import and export data amongst themselves, but not export outside of the `ServicePerimeter`. If a request with a source within this `ServicePerimeter` has a target outside of the `ServicePerimeter`, the request will be blocked. Otherwise the request is allowed. There are two types of Service Perimeter - Regular and Bridge. Regular Service Perimeters cannot overlap, a single Google Cloud project can only belong to a single regular Service Perimeter. Service Perimeter Bridges can contain only Google Cloud projects as members, a single Google Cloud project may belong to multiple Service Perimeter Bridges.", + "description": "`ServicePerimeter` describes a set of Google Cloud resources which can freely import and export data amongst themselves, but not export outside of the `ServicePerimeter`. If a request with a source within this `ServicePerimeter` has a target outside of the `ServicePerimeter`, the request will be blocked. Otherwise the request is allowed. There are two types of Service Perimeter - Regular and Bridge. Regular Service Perimeters cannot overlap, a single Google Cloud project or VPC network can only belong to a single regular Service Perimeter. Service Perimeter Bridges can contain only Google Cloud projects as members, a single Google Cloud project may belong to multiple Service Perimeter Bridges.", "id": "GoogleIdentityAccesscontextmanagerV1ServicePerimeter", "properties": { "description": { @@ -1039,7 +1078,7 @@ "type": "string" }, "perimeterType": { - "description": "Perimeter type indicator. A single project is allowed to be a member of single regular perimeter, but multiple service perimeter bridges. A project cannot be a included in a perimeter bridge without being included in regular perimeter. For perimeter bridges, the restricted service list as well as access level lists must be empty.", + "description": "Perimeter type indicator. A single project or VPC network is allowed to be a member of single regular perimeter, but multiple service perimeter bridges. A project cannot be a included in a perimeter bridge without being included in regular perimeter. For perimeter bridges, the restricted service list as well as access level lists must be empty.", "enum": [ "PERIMETER_TYPE_REGULAR", "PERIMETER_TYPE_BRIDGE" @@ -1095,7 +1134,7 @@ "type": "array" }, "resources": { - "description": "A list of Google Cloud resources that are inside of the service perimeter. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`.", + "description": "A list of Google Cloud resources that are inside of the service perimeter. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC network format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`.", "items": { "type": "string" }, @@ -1133,6 +1172,35 @@ }, "type": "object" }, + "GoogleIdentityAccesscontextmanagerV1VpcNetworkSource": { + "description": "The originating network source in Google Cloud.", + "id": "GoogleIdentityAccesscontextmanagerV1VpcNetworkSource", + "properties": { + "vpcSubnetwork": { + "$ref": "GoogleIdentityAccesscontextmanagerV1VpcSubNetwork", + "description": "Sub-segment ranges of a VPC network." + } + }, + "type": "object" + }, + "GoogleIdentityAccesscontextmanagerV1VpcSubNetwork": { + "description": "Sub-segment ranges inside of a VPC Network.", + "id": "GoogleIdentityAccesscontextmanagerV1VpcSubNetwork", + "properties": { + "network": { + "description": "Required. Network name. If the network is not part of the organization, the `compute.network.get` permission must be granted to the caller. Format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NETWORK_NAME}` Example: `//compute.googleapis.com/projects/my-project/global/networks/network-1`", + "type": "string" + }, + "vpcIpSubnetworks": { + "description": "CIDR block IP subnetwork specification. The IP address must be an IPv4 address and can be a public or private IP address. Note that for a CIDR IP address block, the specified IP address portion must be properly truncated (i.e. all the host bits must be zero) or the input is considered malformed. For example, \"192.0.2.0/24\" is accepted but \"192.0.2.1/24\" is not. If empty, all IP addresses are allowed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "IamPolicySearchResult": { "description": "The result for an IAM policy search.", "id": "IamPolicySearchResult", @@ -1171,7 +1239,7 @@ "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/).", + "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": { diff --git a/etc/api/cloudasset/v1p5beta1/cloudasset-api.json b/etc/api/cloudasset/v1p5beta1/cloudasset-api.json index 0f7cd0d725..4d85aebc09 100644 --- a/etc/api/cloudasset/v1p5beta1/cloudasset-api.json +++ b/etc/api/cloudasset/v1p5beta1/cloudasset-api.json @@ -177,7 +177,7 @@ } } }, - "revision": "20230121", + "revision": "20240302", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningMetadata": { @@ -305,14 +305,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -643,7 +643,7 @@ "type": "string" }, "scopes": { - "description": "The scopes of a policy define which resources an ACM policy can restrict, and where ACM resources can be referenced. For example, a policy with scopes=[\"folders/123\"] has the following behavior: - vpcsc perimeters can only restrict projects within folders/123 - access levels can only be referenced by resources within folders/123. If empty, there are no limitations on which resources can be restricted by an ACM policy, and there are no limitations on where ACM resources can be referenced. Only one policy can include a given scope (attempting to create a second policy which includes \"folders/123\" will result in an error). Currently, scopes cannot be modified after a policy is created. Currently, policies can only have a single scope. Format: list of `folders/{folder_number}` or `projects/{project_number}`", + "description": "The scopes of the AccessPolicy. Scopes define which resources a policy can restrict and where its resources can be referenced. For example, policy A with `scopes=[\"folders/123\"]` has the following behavior: - ServicePerimeter can only restrict projects within `folders/123`. - ServicePerimeter within policy A can only reference access levels defined within policy A. - Only one policy can include a given scope; thus, attempting to create a second policy which includes `folders/123` will result in an error. If no scopes are provided, then any resource within the organization can be restricted. Scopes cannot be modified after a policy is created. Policies can only have a single scope. Format: list of `folders/{folder_number}` or `projects/{project_number}`", "items": { "type": "string" }, @@ -723,7 +723,7 @@ "type": "array" }, "negate": { - "description": "Whether to negate the Condition. If true, the Condition becomes a NAND over its non-empty fields, each field must be false for the Condition overall to be satisfied. Defaults to false.", + "description": "Whether to negate the Condition. If true, the Condition becomes a NAND over its non-empty fields. Any non-empty field criteria evaluating to false will result in the Condition to be satisfied. Defaults to false.", "type": "boolean" }, "regions": { @@ -739,6 +739,13 @@ "type": "string" }, "type": "array" + }, + "vpcNetworkSources": { + "description": "The request must originate from one of the provided VPC networks in Google Cloud. Cannot specify this field together with `ip_subnetworks`.", + "items": { + "$ref": "GoogleIdentityAccesscontextmanagerV1VpcNetworkSource" + }, + "type": "array" } }, "type": "object" @@ -823,7 +830,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" }, @@ -844,6 +851,27 @@ "Authorize access from all service accounts outside the perimeter." ], "type": "string" + }, + "sourceRestriction": { + "description": "Whether to enforce traffic restrictions based on `sources` field. If the `sources` fields is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.", + "enum": [ + "SOURCE_RESTRICTION_UNSPECIFIED", + "SOURCE_RESTRICTION_ENABLED", + "SOURCE_RESTRICTION_DISABLED" + ], + "enumDescriptions": [ + "Enforcement preference unspecified, will not enforce traffic restrictions based on `sources` in EgressFrom.", + "Enforcement preference enabled, traffic restrictions will be enforced based on `sources` in EgressFrom.", + "Enforcement preference disabled, will not enforce traffic restrictions based on `sources` in EgressFrom." + ], + "type": "string" + }, + "sources": { + "description": "Sources that this EgressPolicy authorizes access from. If this field is not empty, then `source_restriction` must be set to `SOURCE_RESTRICTION_ENABLED`.", + "items": { + "$ref": "GoogleIdentityAccesscontextmanagerV1EgressSource" + }, + "type": "array" } }, "type": "object" @@ -863,6 +891,17 @@ }, "type": "object" }, + "GoogleIdentityAccesscontextmanagerV1EgressSource": { + "description": "The source that EgressPolicy authorizes access from inside the ServicePerimeter to somewhere outside the ServicePerimeter boundaries.", + "id": "GoogleIdentityAccesscontextmanagerV1EgressSource", + "properties": { + "accessLevel": { + "description": "An AccessLevel resource name that allows protected resources inside the ServicePerimeters to access outside the ServicePerimeter boundaries. AccessLevels listed must be in the same policy as this ServicePerimeter. Referencing a nonexistent AccessLevel will cause an error. If an AccessLevel name is not specified, only resources within the perimeter can be accessed through Google Cloud calls with request origins within the perimeter. Example: `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL`. If a single `*` is specified for `access_level`, then all EgressSources will be allowed.", + "type": "string" + } + }, + "type": "object" + }, "GoogleIdentityAccesscontextmanagerV1EgressTo": { "description": "Defines the conditions under which an EgressPolicy matches a request. Conditions are based on information about the ApiOperation intended to be performed on the `resources` specified. Note that if the destination of the request is also protected by a ServicePerimeter, then that ServicePerimeter must have an IngressPolicy which allows access in order for this request to succeed. The request must match `operations` AND `resources` fields in order to be allowed egress out of the perimeter.", "id": "GoogleIdentityAccesscontextmanagerV1EgressTo", @@ -896,7 +935,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" }, @@ -952,7 +991,7 @@ "type": "string" }, "resource": { - "description": "A Google Cloud resource that is allowed to ingress the perimeter. Requests from these resources will be allowed to access perimeter data. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`. The project may be in any Google Cloud organization, not just the organization that the perimeter is defined in. `*` is not allowed, the case of allowing all Google Cloud resources only is not supported.", + "description": "A Google Cloud resource that is allowed to ingress the perimeter. Requests from these resources will be allowed to access perimeter data. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC network format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`. The project may be in any Google Cloud organization, not just the organization that the perimeter is defined in. `*` is not allowed, the case of allowing all Google Cloud resources only is not supported.", "type": "string" } }, @@ -984,11 +1023,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" } }, @@ -1032,7 +1071,7 @@ "type": "object" }, "GoogleIdentityAccesscontextmanagerV1ServicePerimeter": { - "description": "`ServicePerimeter` describes a set of Google Cloud resources which can freely import and export data amongst themselves, but not export outside of the `ServicePerimeter`. If a request with a source within this `ServicePerimeter` has a target outside of the `ServicePerimeter`, the request will be blocked. Otherwise the request is allowed. There are two types of Service Perimeter - Regular and Bridge. Regular Service Perimeters cannot overlap, a single Google Cloud project can only belong to a single regular Service Perimeter. Service Perimeter Bridges can contain only Google Cloud projects as members, a single Google Cloud project may belong to multiple Service Perimeter Bridges.", + "description": "`ServicePerimeter` describes a set of Google Cloud resources which can freely import and export data amongst themselves, but not export outside of the `ServicePerimeter`. If a request with a source within this `ServicePerimeter` has a target outside of the `ServicePerimeter`, the request will be blocked. Otherwise the request is allowed. There are two types of Service Perimeter - Regular and Bridge. Regular Service Perimeters cannot overlap, a single Google Cloud project or VPC network can only belong to a single regular Service Perimeter. Service Perimeter Bridges can contain only Google Cloud projects as members, a single Google Cloud project may belong to multiple Service Perimeter Bridges.", "id": "GoogleIdentityAccesscontextmanagerV1ServicePerimeter", "properties": { "description": { @@ -1044,7 +1083,7 @@ "type": "string" }, "perimeterType": { - "description": "Perimeter type indicator. A single project is allowed to be a member of single regular perimeter, but multiple service perimeter bridges. A project cannot be a included in a perimeter bridge without being included in regular perimeter. For perimeter bridges, the restricted service list as well as access level lists must be empty.", + "description": "Perimeter type indicator. A single project or VPC network is allowed to be a member of single regular perimeter, but multiple service perimeter bridges. A project cannot be a included in a perimeter bridge without being included in regular perimeter. For perimeter bridges, the restricted service list as well as access level lists must be empty.", "enum": [ "PERIMETER_TYPE_REGULAR", "PERIMETER_TYPE_BRIDGE" @@ -1100,7 +1139,7 @@ "type": "array" }, "resources": { - "description": "A list of Google Cloud resources that are inside of the service perimeter. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`.", + "description": "A list of Google Cloud resources that are inside of the service perimeter. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC network format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`.", "items": { "type": "string" }, @@ -1138,6 +1177,35 @@ }, "type": "object" }, + "GoogleIdentityAccesscontextmanagerV1VpcNetworkSource": { + "description": "The originating network source in Google Cloud.", + "id": "GoogleIdentityAccesscontextmanagerV1VpcNetworkSource", + "properties": { + "vpcSubnetwork": { + "$ref": "GoogleIdentityAccesscontextmanagerV1VpcSubNetwork", + "description": "Sub-segment ranges of a VPC network." + } + }, + "type": "object" + }, + "GoogleIdentityAccesscontextmanagerV1VpcSubNetwork": { + "description": "Sub-segment ranges inside of a VPC Network.", + "id": "GoogleIdentityAccesscontextmanagerV1VpcSubNetwork", + "properties": { + "network": { + "description": "Required. Network name. If the network is not part of the organization, the `compute.network.get` permission must be granted to the caller. Format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NETWORK_NAME}` Example: `//compute.googleapis.com/projects/my-project/global/networks/network-1`", + "type": "string" + }, + "vpcIpSubnetworks": { + "description": "CIDR block IP subnetwork specification. The IP address must be an IPv4 address and can be a public or private IP address. Note that for a CIDR IP address block, the specified IP address portion must be properly truncated (i.e. all the host bits must be zero) or the input is considered malformed. For example, \"192.0.2.0/24\" is accepted but \"192.0.2.1/24\" is not. If empty, all IP addresses are allowed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListAssetsResponse": { "description": "ListAssets response.", "id": "ListAssetsResponse", @@ -1162,7 +1230,7 @@ "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/).", + "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": { diff --git a/etc/api/cloudasset/v1p7beta1/cloudasset-api.json b/etc/api/cloudasset/v1p7beta1/cloudasset-api.json index 59117b46d2..aad97bdea5 100644 --- a/etc/api/cloudasset/v1p7beta1/cloudasset-api.json +++ b/etc/api/cloudasset/v1p7beta1/cloudasset-api.json @@ -167,7 +167,7 @@ } } }, - "revision": "20230121", + "revision": "20240302", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningMetadata": { @@ -246,14 +246,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -712,7 +712,7 @@ "type": "string" }, "scopes": { - "description": "The scopes of a policy define which resources an ACM policy can restrict, and where ACM resources can be referenced. For example, a policy with scopes=[\"folders/123\"] has the following behavior: - vpcsc perimeters can only restrict projects within folders/123 - access levels can only be referenced by resources within folders/123. If empty, there are no limitations on which resources can be restricted by an ACM policy, and there are no limitations on where ACM resources can be referenced. Only one policy can include a given scope (attempting to create a second policy which includes \"folders/123\" will result in an error). Currently, scopes cannot be modified after a policy is created. Currently, policies can only have a single scope. Format: list of `folders/{folder_number}` or `projects/{project_number}`", + "description": "The scopes of the AccessPolicy. Scopes define which resources a policy can restrict and where its resources can be referenced. For example, policy A with `scopes=[\"folders/123\"]` has the following behavior: - ServicePerimeter can only restrict projects within `folders/123`. - ServicePerimeter within policy A can only reference access levels defined within policy A. - Only one policy can include a given scope; thus, attempting to create a second policy which includes `folders/123` will result in an error. If no scopes are provided, then any resource within the organization can be restricted. Scopes cannot be modified after a policy is created. Policies can only have a single scope. Format: list of `folders/{folder_number}` or `projects/{project_number}`", "items": { "type": "string" }, @@ -792,7 +792,7 @@ "type": "array" }, "negate": { - "description": "Whether to negate the Condition. If true, the Condition becomes a NAND over its non-empty fields, each field must be false for the Condition overall to be satisfied. Defaults to false.", + "description": "Whether to negate the Condition. If true, the Condition becomes a NAND over its non-empty fields. Any non-empty field criteria evaluating to false will result in the Condition to be satisfied. Defaults to false.", "type": "boolean" }, "regions": { @@ -808,6 +808,13 @@ "type": "string" }, "type": "array" + }, + "vpcNetworkSources": { + "description": "The request must originate from one of the provided VPC networks in Google Cloud. Cannot specify this field together with `ip_subnetworks`.", + "items": { + "$ref": "GoogleIdentityAccesscontextmanagerV1VpcNetworkSource" + }, + "type": "array" } }, "type": "object" @@ -892,7 +899,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" }, @@ -913,6 +920,27 @@ "Authorize access from all service accounts outside the perimeter." ], "type": "string" + }, + "sourceRestriction": { + "description": "Whether to enforce traffic restrictions based on `sources` field. If the `sources` fields is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.", + "enum": [ + "SOURCE_RESTRICTION_UNSPECIFIED", + "SOURCE_RESTRICTION_ENABLED", + "SOURCE_RESTRICTION_DISABLED" + ], + "enumDescriptions": [ + "Enforcement preference unspecified, will not enforce traffic restrictions based on `sources` in EgressFrom.", + "Enforcement preference enabled, traffic restrictions will be enforced based on `sources` in EgressFrom.", + "Enforcement preference disabled, will not enforce traffic restrictions based on `sources` in EgressFrom." + ], + "type": "string" + }, + "sources": { + "description": "Sources that this EgressPolicy authorizes access from. If this field is not empty, then `source_restriction` must be set to `SOURCE_RESTRICTION_ENABLED`.", + "items": { + "$ref": "GoogleIdentityAccesscontextmanagerV1EgressSource" + }, + "type": "array" } }, "type": "object" @@ -932,6 +960,17 @@ }, "type": "object" }, + "GoogleIdentityAccesscontextmanagerV1EgressSource": { + "description": "The source that EgressPolicy authorizes access from inside the ServicePerimeter to somewhere outside the ServicePerimeter boundaries.", + "id": "GoogleIdentityAccesscontextmanagerV1EgressSource", + "properties": { + "accessLevel": { + "description": "An AccessLevel resource name that allows protected resources inside the ServicePerimeters to access outside the ServicePerimeter boundaries. AccessLevels listed must be in the same policy as this ServicePerimeter. Referencing a nonexistent AccessLevel will cause an error. If an AccessLevel name is not specified, only resources within the perimeter can be accessed through Google Cloud calls with request origins within the perimeter. Example: `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL`. If a single `*` is specified for `access_level`, then all EgressSources will be allowed.", + "type": "string" + } + }, + "type": "object" + }, "GoogleIdentityAccesscontextmanagerV1EgressTo": { "description": "Defines the conditions under which an EgressPolicy matches a request. Conditions are based on information about the ApiOperation intended to be performed on the `resources` specified. Note that if the destination of the request is also protected by a ServicePerimeter, then that ServicePerimeter must have an IngressPolicy which allows access in order for this request to succeed. The request must match `operations` AND `resources` fields in order to be allowed egress out of the perimeter.", "id": "GoogleIdentityAccesscontextmanagerV1EgressTo", @@ -965,7 +1004,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" }, @@ -1021,7 +1060,7 @@ "type": "string" }, "resource": { - "description": "A Google Cloud resource that is allowed to ingress the perimeter. Requests from these resources will be allowed to access perimeter data. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`. The project may be in any Google Cloud organization, not just the organization that the perimeter is defined in. `*` is not allowed, the case of allowing all Google Cloud resources only is not supported.", + "description": "A Google Cloud resource that is allowed to ingress the perimeter. Requests from these resources will be allowed to access perimeter data. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC network format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`. The project may be in any Google Cloud organization, not just the organization that the perimeter is defined in. `*` is not allowed, the case of allowing all Google Cloud resources only is not supported.", "type": "string" } }, @@ -1053,11 +1092,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" } }, @@ -1101,7 +1140,7 @@ "type": "object" }, "GoogleIdentityAccesscontextmanagerV1ServicePerimeter": { - "description": "`ServicePerimeter` describes a set of Google Cloud resources which can freely import and export data amongst themselves, but not export outside of the `ServicePerimeter`. If a request with a source within this `ServicePerimeter` has a target outside of the `ServicePerimeter`, the request will be blocked. Otherwise the request is allowed. There are two types of Service Perimeter - Regular and Bridge. Regular Service Perimeters cannot overlap, a single Google Cloud project can only belong to a single regular Service Perimeter. Service Perimeter Bridges can contain only Google Cloud projects as members, a single Google Cloud project may belong to multiple Service Perimeter Bridges.", + "description": "`ServicePerimeter` describes a set of Google Cloud resources which can freely import and export data amongst themselves, but not export outside of the `ServicePerimeter`. If a request with a source within this `ServicePerimeter` has a target outside of the `ServicePerimeter`, the request will be blocked. Otherwise the request is allowed. There are two types of Service Perimeter - Regular and Bridge. Regular Service Perimeters cannot overlap, a single Google Cloud project or VPC network can only belong to a single regular Service Perimeter. Service Perimeter Bridges can contain only Google Cloud projects as members, a single Google Cloud project may belong to multiple Service Perimeter Bridges.", "id": "GoogleIdentityAccesscontextmanagerV1ServicePerimeter", "properties": { "description": { @@ -1113,7 +1152,7 @@ "type": "string" }, "perimeterType": { - "description": "Perimeter type indicator. A single project is allowed to be a member of single regular perimeter, but multiple service perimeter bridges. A project cannot be a included in a perimeter bridge without being included in regular perimeter. For perimeter bridges, the restricted service list as well as access level lists must be empty.", + "description": "Perimeter type indicator. A single project or VPC network is allowed to be a member of single regular perimeter, but multiple service perimeter bridges. A project cannot be a included in a perimeter bridge without being included in regular perimeter. For perimeter bridges, the restricted service list as well as access level lists must be empty.", "enum": [ "PERIMETER_TYPE_REGULAR", "PERIMETER_TYPE_BRIDGE" @@ -1169,7 +1208,7 @@ "type": "array" }, "resources": { - "description": "A list of Google Cloud resources that are inside of the service perimeter. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`.", + "description": "A list of Google Cloud resources that are inside of the service perimeter. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC network format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`.", "items": { "type": "string" }, @@ -1207,6 +1246,35 @@ }, "type": "object" }, + "GoogleIdentityAccesscontextmanagerV1VpcNetworkSource": { + "description": "The originating network source in Google Cloud.", + "id": "GoogleIdentityAccesscontextmanagerV1VpcNetworkSource", + "properties": { + "vpcSubnetwork": { + "$ref": "GoogleIdentityAccesscontextmanagerV1VpcSubNetwork", + "description": "Sub-segment ranges of a VPC network." + } + }, + "type": "object" + }, + "GoogleIdentityAccesscontextmanagerV1VpcSubNetwork": { + "description": "Sub-segment ranges inside of a VPC Network.", + "id": "GoogleIdentityAccesscontextmanagerV1VpcSubNetwork", + "properties": { + "network": { + "description": "Required. Network name. If the network is not part of the organization, the `compute.network.get` permission must be granted to the caller. Format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NETWORK_NAME}` Example: `//compute.googleapis.com/projects/my-project/global/networks/network-1`", + "type": "string" + }, + "vpcIpSubnetworks": { + "description": "CIDR block IP subnetwork specification. The IP address must be an IPv4 address and can be a public or private IP address. Note that for a CIDR IP address block, the specified IP address portion must be properly truncated (i.e. all the host bits must be zero) or the input is considered malformed. For example, \"192.0.2.0/24\" is accepted but \"192.0.2.1/24\" is not. If empty, all IP addresses are allowed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -1236,14 +1304,14 @@ "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" } }, "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/).", + "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": { diff --git a/etc/api/cloudbilling/v1/cloudbilling-api.json b/etc/api/cloudbilling/v1/cloudbilling-api.json index 1a6ae92178..01f2f96231 100644 --- a/etc/api/cloudbilling/v1/cloudbilling-api.json +++ b/etc/api/cloudbilling/v1/cloudbilling-api.json @@ -20,7 +20,7 @@ "canonicalName": "Cloudbilling", "description": "Allows developers to manage billing for their Google Cloud Platform projects programmatically.", "discoveryVersion": "v1", - "documentationLink": "https://cloud.google.com/billing/", + "documentationLink": "https://cloud.google.com/billing/docs/apis", "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -114,12 +114,18 @@ "billingAccounts": { "methods": { "create": { - "description": "This method creates [billing subaccounts](https://cloud.google.com/billing/docs/concepts#subaccounts). Google Cloud resellers should use the Channel Services APIs, [accounts.customers.create](https://cloud.google.com/channel/docs/reference/rest/v1/accounts.customers/create) and [accounts.customers.entitlements.create](https://cloud.google.com/channel/docs/reference/rest/v1/accounts.customers.entitlements/create). When creating a subaccount, the current authenticated user must have the `billing.accounts.update` IAM permission on the parent account, which is typically given to billing account [administrators](https://cloud.google.com/billing/docs/how-to/billing-access). This method will return an error if the parent account has not been provisioned as a reseller account.", + "description": "This method creates [billing subaccounts](https://cloud.google.com/billing/docs/concepts#subaccounts). Google Cloud resellers should use the Channel Services APIs, [accounts.customers.create](https://cloud.google.com/channel/docs/reference/rest/v1/accounts.customers/create) and [accounts.customers.entitlements.create](https://cloud.google.com/channel/docs/reference/rest/v1/accounts.customers.entitlements/create). When creating a subaccount, the current authenticated user must have the `billing.accounts.update` IAM permission on the parent account, which is typically given to billing account [administrators](https://cloud.google.com/billing/docs/how-to/billing-access). This method will return an error if the parent account has not been provisioned for subaccounts.", "flatPath": "v1/billingAccounts", "httpMethod": "POST", "id": "cloudbilling.billingAccounts.create", "parameterOrder": [], - "parameters": {}, + "parameters": { + "parent": { + "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" + } + }, "path": "v1/billingAccounts", "request": { "$ref": "BillingAccount" @@ -200,7 +206,7 @@ "parameterOrder": [], "parameters": { "filter": { - "description": "Options for how to filter the returned billing accounts. Currently this only supports filtering for [subaccounts](https://cloud.google.com/billing/docs/concepts) under a single provided reseller 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" }, @@ -214,6 +220,11 @@ "description": "A token identifying a page of results to return. This should be a `next_page_token` value returned from a previous `ListBillingAccounts` call. If unspecified, the first page of results is returned.", "location": "query", "type": "string" + }, + "parent": { + "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" } }, "path": "v1/billingAccounts", @@ -226,6 +237,35 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "move": { + "description": "Changes which parent organization a billing account belongs to.", + "flatPath": "v1/billingAccounts/{billingAccountsId}:move", + "httpMethod": "POST", + "id": "cloudbilling.billingAccounts.move", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the billing account to move. Must be of the form `billingAccounts/{billing_account_id}`. The specified billing account cannot be a subaccount, since a subaccount always belongs to the same organization as its parent account.", + "location": "path", + "pattern": "^billingAccounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:move", + "request": { + "$ref": "MoveBillingAccountRequest" + }, + "response": { + "$ref": "BillingAccount" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "patch": { "description": "Updates a billing account's fields. Currently the only field that can be edited is `display_name`. The current authenticated user must have the `billing.accounts.update` IAM permission, which is typically given to the [administrator](https://cloud.google.com/billing/docs/how-to/billing-access) of the billing account.", "flatPath": "v1/billingAccounts/{billingAccountsId}", @@ -363,6 +403,196 @@ ] } } + }, + "subAccounts": { + "methods": { + "create": { + "description": "This method creates [billing subaccounts](https://cloud.google.com/billing/docs/concepts#subaccounts). Google Cloud resellers should use the Channel Services APIs, [accounts.customers.create](https://cloud.google.com/channel/docs/reference/rest/v1/accounts.customers/create) and [accounts.customers.entitlements.create](https://cloud.google.com/channel/docs/reference/rest/v1/accounts.customers.entitlements/create). When creating a subaccount, the current authenticated user must have the `billing.accounts.update` IAM permission on the parent account, which is typically given to billing account [administrators](https://cloud.google.com/billing/docs/how-to/billing-access). This method will return an error if the parent account has not been provisioned for subaccounts.", + "flatPath": "v1/billingAccounts/{billingAccountsId}/subAccounts", + "httpMethod": "POST", + "id": "cloudbilling.billingAccounts.subAccounts.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "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, + "type": "string" + } + }, + "path": "v1/{+parent}/subAccounts", + "request": { + "$ref": "BillingAccount" + }, + "response": { + "$ref": "BillingAccount" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists the billing accounts that the current authenticated user has permission to [view](https://cloud.google.com/billing/docs/how-to/billing-access).", + "flatPath": "v1/billingAccounts/{billingAccountsId}/subAccounts", + "httpMethod": "GET", + "id": "cloudbilling.billingAccounts.subAccounts.list", + "parameterOrder": [ + "parent" + ], + "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. (for example, `master_billing_account=billingAccounts/012345-678901-ABCDEF`). Boolean algebra and other fields are not currently supported.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Requested page size. The maximum page size is 100; this is also the default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A token identifying a page of results to return. This should be a `next_page_token` value returned from a previous `ListBillingAccounts` call. If unspecified, the first page of results is returned.", + "location": "query", + "type": "string" + }, + "parent": { + "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, + "type": "string" + } + }, + "path": "v1/{+parent}/subAccounts", + "response": { + "$ref": "ListBillingAccountsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-billing.readonly", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, + "organizations": { + "resources": { + "billingAccounts": { + "methods": { + "create": { + "description": "This method creates [billing subaccounts](https://cloud.google.com/billing/docs/concepts#subaccounts). Google Cloud resellers should use the Channel Services APIs, [accounts.customers.create](https://cloud.google.com/channel/docs/reference/rest/v1/accounts.customers/create) and [accounts.customers.entitlements.create](https://cloud.google.com/channel/docs/reference/rest/v1/accounts.customers.entitlements/create). When creating a subaccount, the current authenticated user must have the `billing.accounts.update` IAM permission on the parent account, which is typically given to billing account [administrators](https://cloud.google.com/billing/docs/how-to/billing-access). This method will return an error if the parent account has not been provisioned for subaccounts.", + "flatPath": "v1/organizations/{organizationsId}/billingAccounts", + "httpMethod": "POST", + "id": "cloudbilling.organizations.billingAccounts.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "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, + "type": "string" + } + }, + "path": "v1/{+parent}/billingAccounts", + "request": { + "$ref": "BillingAccount" + }, + "response": { + "$ref": "BillingAccount" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists the billing accounts that the current authenticated user has permission to [view](https://cloud.google.com/billing/docs/how-to/billing-access).", + "flatPath": "v1/organizations/{organizationsId}/billingAccounts", + "httpMethod": "GET", + "id": "cloudbilling.organizations.billingAccounts.list", + "parameterOrder": [ + "parent" + ], + "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. (for example, `master_billing_account=billingAccounts/012345-678901-ABCDEF`). Boolean algebra and other fields are not currently supported.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Requested page size. The maximum page size is 100; this is also the default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A token identifying a page of results to return. This should be a `next_page_token` value returned from a previous `ListBillingAccounts` call. If unspecified, the first page of results is returned.", + "location": "query", + "type": "string" + }, + "parent": { + "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, + "type": "string" + } + }, + "path": "v1/{+parent}/billingAccounts", + "response": { + "$ref": "ListBillingAccountsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-billing.readonly", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "move": { + "description": "Changes which parent organization a billing account belongs to.", + "flatPath": "v1/organizations/{organizationsId}/billingAccounts/{billingAccountsId}:move", + "httpMethod": "GET", + "id": "cloudbilling.organizations.billingAccounts.move", + "parameterOrder": [ + "destinationParent", + "name" + ], + "parameters": { + "destinationParent": { + "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, + "type": "string" + }, + "name": { + "description": "Required. The resource name of the billing account to move. Must be of the form `billingAccounts/{billing_account_id}`. The specified billing account cannot be a subaccount, since a subaccount always belongs to the same organization as its parent account.", + "location": "path", + "pattern": "^billingAccounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+destinationParent}/{+name}:move", + "response": { + "$ref": "BillingAccount" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } }, @@ -521,7 +751,7 @@ } } }, - "revision": "20221206", + "revision": "20240214", "rootUrl": "https://cloudbilling.googleapis.com/", "schemas": { "AggregationInfo": { @@ -628,9 +858,14 @@ "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`", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -644,14 +879,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -826,8 +1061,19 @@ }, "type": "object" }, + "MoveBillingAccountRequest": { + "description": "Request message for `MoveBillingAccount` RPC.", + "id": "MoveBillingAccountRequest", + "properties": { + "destinationParent": { + "description": "Required. The resource name of the Organization to move the billing account under. Must be of the form `organizations/{organization_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/).", + "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": { @@ -935,15 +1181,18 @@ "type": "string" }, "billingEnabled": { - "description": "True if the project is associated with an open billing account, to which usage on the project is charged. False if the project is associated with a closed billing account, or no billing account at all, and therefore cannot use paid services. This field is read-only.", + "description": "Output only. True if the project is associated with an open billing account, to which usage on the project is charged. False if the project is associated with a closed billing account, or no billing account at all, and therefore cannot use paid services.", + "readOnly": true, "type": "boolean" }, "name": { - "description": "The resource name for the `ProjectBillingInfo`; has the form `projects/{project_id}/billingInfo`. For example, the resource name for the billing information for project `tokyo-rain-123` would be `projects/tokyo-rain-123/billingInfo`. This field is read-only.", + "description": "Output only. The resource name for the `ProjectBillingInfo`; has the form `projects/{project_id}/billingInfo`. For example, the resource name for the billing information for project `tokyo-rain-123` would be `projects/tokyo-rain-123/billingInfo`.", + "readOnly": true, "type": "string" }, "projectId": { - "description": "The ID of the project that this `ProjectBillingInfo` represents, such as `tokyo-rain-123`. This is a convenience field so that you don't need to parse the `name` field to obtain a project ID. This field is read-only.", + "description": "Output only. The ID of the project that this `ProjectBillingInfo` represents, such as `tokyo-rain-123`. This is a convenience field so that you don't need to parse the `name` field to obtain a project ID.", + "readOnly": true, "type": "string" } }, diff --git a/etc/api/cloudbuild/v1/cloudbuild-api.json b/etc/api/cloudbuild/v1/cloudbuild-api.json index cd8b003380..36183b104d 100644 --- a/etc/api/cloudbuild/v1/cloudbuild-api.json +++ b/etc/api/cloudbuild/v1/cloudbuild-api.json @@ -401,7 +401,7 @@ ] }, "retry": { - "description": "Creates a new build based on the specified build. This method creates a new build using the original build request, which may or may not result in an identical build. For triggered builds: * Triggered builds resolve to a precise revision; therefore a retry of a triggered build will result in a build that uses the same revision. For non-triggered builds that specify `RepoSource`: * If the original build built from the tip of a branch, the retried build will build from the tip of that branch, which may not be the same revision as the original build. * If the original build specified a commit sha or revision ID, the retried build will use the identical source. For builds that specify `StorageSource`: * If the original build pulled source from Google Cloud Storage without specifying the generation of the object, the new build will use the current object, which may be different from the original build source. * If the original build pulled source from Cloud Storage and specified the generation of the object, the new build will attempt to use the same object, which may or may not be available depending on the bucket's lifecycle management settings.", + "description": "Creates a new build based on the specified build. This method creates a new build using the original build request, which may or may not result in an identical build. For triggered builds: * Triggered builds resolve to a precise revision; therefore a retry of a triggered build will result in a build that uses the same revision. For non-triggered builds that specify `RepoSource`: * If the original build built from the tip of a branch, the retried build will build from the tip of that branch, which may not be the same revision as the original build. * If the original build specified a commit sha or revision ID, the retried build will use the identical source. For builds that specify `StorageSource`: * If the original build pulled source from Cloud Storage without specifying the generation of the object, the new build will use the current object, which may be different from the original build source. * If the original build pulled source from Cloud Storage and specified the generation of the object, the new build will attempt to use the same object, which may or may not be available depending on the bucket's lifecycle management settings.", "flatPath": "v1/projects/{projectId}/builds/{id}:retry", "httpMethod": "POST", "id": "cloudbuild.projects.builds.retry", @@ -460,6 +460,7 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "ID of the project.", "location": "query", "type": "string" @@ -486,6 +487,7 @@ ], "parameters": { "configId": { + "deprecated": true, "description": "Unique identifier of the `GitHubEnterpriseConfig`", "location": "query", "type": "string" @@ -498,6 +500,7 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "ID of the project", "location": "query", "type": "string" @@ -521,6 +524,7 @@ ], "parameters": { "configId": { + "deprecated": true, "description": "Unique identifier of the `GitHubEnterpriseConfig`", "location": "query", "type": "string" @@ -533,6 +537,7 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "ID of the project", "location": "query", "type": "string" @@ -563,6 +568,7 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "ID of the project", "location": "query", "type": "string" @@ -613,6 +619,33 @@ } }, "locations": { + "methods": { + "getDefaultServiceAccount": { + "description": "Returns the `DefaultServiceAccount` used by the project.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/defaultServiceAccount", + "httpMethod": "GET", + "id": "cloudbuild.projects.locations.getDefaultServiceAccount", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the `DefaultServiceAccount` to retrieve. Format: `projects/{project}/locations/{location}/defaultServiceAccount`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/defaultServiceAccount$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "DefaultServiceAccount" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "bitbucketServerConfigs": { "methods": { @@ -1046,7 +1079,7 @@ ] }, "retry": { - "description": "Creates a new build based on the specified build. This method creates a new build using the original build request, which may or may not result in an identical build. For triggered builds: * Triggered builds resolve to a precise revision; therefore a retry of a triggered build will result in a build that uses the same revision. For non-triggered builds that specify `RepoSource`: * If the original build built from the tip of a branch, the retried build will build from the tip of that branch, which may not be the same revision as the original build. * If the original build specified a commit sha or revision ID, the retried build will use the identical source. For builds that specify `StorageSource`: * If the original build pulled source from Google Cloud Storage without specifying the generation of the object, the new build will use the current object, which may be different from the original build source. * If the original build pulled source from Cloud Storage and specified the generation of the object, the new build will attempt to use the same object, which may or may not be available depending on the bucket's lifecycle management settings.", + "description": "Creates a new build based on the specified build. This method creates a new build using the original build request, which may or may not result in an identical build. For triggered builds: * Triggered builds resolve to a precise revision; therefore a retry of a triggered build will result in a build that uses the same revision. For non-triggered builds that specify `RepoSource`: * If the original build built from the tip of a branch, the retried build will build from the tip of that branch, which may not be the same revision as the original build. * If the original build specified a commit sha or revision ID, the retried build will use the identical source. For builds that specify `StorageSource`: * If the original build pulled source from Cloud Storage without specifying the generation of the object, the new build will use the current object, which may be different from the original build source. * If the original build pulled source from Cloud Storage and specified the generation of the object, the new build will attempt to use the same object, which may or may not be available depending on the bucket's lifecycle management settings.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/builds/{buildsId}:retry", "httpMethod": "POST", "id": "cloudbuild.projects.locations.builds.retry", @@ -1358,6 +1391,7 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "ID of the project.", "location": "query", "type": "string" @@ -1384,6 +1418,7 @@ ], "parameters": { "configId": { + "deprecated": true, "description": "Unique identifier of the `GitHubEnterpriseConfig`", "location": "query", "type": "string" @@ -1396,6 +1431,7 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "ID of the project", "location": "query", "type": "string" @@ -1419,6 +1455,7 @@ ], "parameters": { "configId": { + "deprecated": true, "description": "Unique identifier of the `GitHubEnterpriseConfig`", "location": "query", "type": "string" @@ -1431,6 +1468,7 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "ID of the project", "location": "query", "type": "string" @@ -1461,6 +1499,7 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "ID of the project", "location": "query", "type": "string" @@ -1570,7 +1609,7 @@ "triggers": { "methods": { "create": { - "description": "Creates a new `BuildTrigger`. This API is experimental.", + "description": "Creates a new `BuildTrigger`.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/triggers", "httpMethod": "POST", "id": "cloudbuild.projects.locations.triggers.create", @@ -1603,7 +1642,7 @@ ] }, "delete": { - "description": "Deletes a `BuildTrigger` by its project ID and trigger ID. This API is experimental.", + "description": "Deletes a `BuildTrigger` by its project ID and trigger ID.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/triggers/{triggersId}", "httpMethod": "DELETE", "id": "cloudbuild.projects.locations.triggers.delete", @@ -1638,7 +1677,7 @@ ] }, "get": { - "description": "Returns information about a `BuildTrigger`. This API is experimental.", + "description": "Returns information about a `BuildTrigger`.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/triggers/{triggersId}", "httpMethod": "GET", "id": "cloudbuild.projects.locations.triggers.get", @@ -1673,7 +1712,7 @@ ] }, "list": { - "description": "Lists existing `BuildTrigger`s. This API is experimental.", + "description": "Lists existing `BuildTrigger`s.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/triggers", "httpMethod": "GET", "id": "cloudbuild.projects.locations.triggers.list", @@ -1714,7 +1753,7 @@ ] }, "patch": { - "description": "Updates a `BuildTrigger` by its project ID and trigger ID. This API is experimental.", + "description": "Updates a `BuildTrigger` by its project ID and trigger ID.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/triggers/{triggersId}", "httpMethod": "PATCH", "id": "cloudbuild.projects.locations.triggers.patch", @@ -1738,6 +1777,12 @@ "description": "Required. ID of the `BuildTrigger` to update.", "location": "query", "type": "string" + }, + "updateMask": { + "description": "Update mask for the resource. If this is set, the server will only update the fields specified in the field mask. Otherwise, a full update of the mutable resource fields will be performed.", + "format": "google-fieldmask", + "location": "query", + "type": "string" } }, "path": "v1/{+resourceName}", @@ -2008,7 +2053,7 @@ "triggers": { "methods": { "create": { - "description": "Creates a new `BuildTrigger`. This API is experimental.", + "description": "Creates a new `BuildTrigger`.", "flatPath": "v1/projects/{projectId}/triggers", "httpMethod": "POST", "id": "cloudbuild.projects.triggers.create", @@ -2040,7 +2085,7 @@ ] }, "delete": { - "description": "Deletes a `BuildTrigger` by its project ID and trigger ID. This API is experimental.", + "description": "Deletes a `BuildTrigger` by its project ID and trigger ID.", "flatPath": "v1/projects/{projectId}/triggers/{triggerId}", "httpMethod": "DELETE", "id": "cloudbuild.projects.triggers.delete", @@ -2076,7 +2121,7 @@ ] }, "get": { - "description": "Returns information about a `BuildTrigger`. This API is experimental.", + "description": "Returns information about a `BuildTrigger`.", "flatPath": "v1/projects/{projectId}/triggers/{triggerId}", "httpMethod": "GET", "id": "cloudbuild.projects.triggers.get", @@ -2112,7 +2157,7 @@ ] }, "list": { - "description": "Lists existing `BuildTrigger`s. This API is experimental.", + "description": "Lists existing `BuildTrigger`s.", "flatPath": "v1/projects/{projectId}/triggers", "httpMethod": "GET", "id": "cloudbuild.projects.triggers.list", @@ -2152,7 +2197,7 @@ ] }, "patch": { - "description": "Updates a `BuildTrigger` by its project ID and trigger ID. This API is experimental.", + "description": "Updates a `BuildTrigger` by its project ID and trigger ID.", "flatPath": "v1/projects/{projectId}/triggers/{triggerId}", "httpMethod": "PATCH", "id": "cloudbuild.projects.triggers.patch", @@ -2172,6 +2217,12 @@ "location": "path", "required": true, "type": "string" + }, + "updateMask": { + "description": "Update mask for the resource. If this is set, the server will only update the fields specified in the field mask. Otherwise, a full update of the mutable resource fields will be performed.", + "format": "google-fieldmask", + "location": "query", + "type": "string" } }, "path": "v1/projects/{projectId}/triggers/{triggerId}", @@ -2295,7 +2346,7 @@ } } }, - "revision": "20230120", + "revision": "20240223", "rootUrl": "https://cloudbuild.googleapis.com/", "schemas": { "ApprovalConfig": { @@ -2395,7 +2446,7 @@ "type": "array" }, "location": { - "description": "The path of an artifact in a Google Cloud Storage bucket, with the generation number. For example, `gs://mybucket/path/to/output.jar#generation`.", + "description": "The path of an artifact in a Cloud Storage bucket, with the generation number. For example, `gs://mybucket/path/to/output.jar#generation`.", "type": "string" } }, @@ -2419,6 +2470,13 @@ }, "type": "array" }, + "npmPackages": { + "description": "A list of npm packages to be uploaded to Artifact Registry upon successful completion of all build steps. Npm packages in the specified paths will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any packages fail to be pushed, the build is marked FAILURE.", + "items": { + "$ref": "NpmPackage" + }, + "type": "array" + }, "objects": { "$ref": "ArtifactObjects", "description": "A list of objects to be uploaded to Cloud Storage upon successful completion of all build steps. Files in the workspace matching specified paths globs will be uploaded to the specified Cloud Storage location using the builder service account's credentials. The location and generation of the uploaded objects will be stored in the Build resource's results field. If any objects fail to be pushed, the build is marked FAILURE." @@ -2564,6 +2622,10 @@ "description": "Optional. The network to be used when reaching out to the Bitbucket Server instance. The VPC network must be enabled for private service connection. This should be set if the Bitbucket Server instance is hosted on-premises and not reachable by public internet. If this field is left empty, no network peering will occur and calls to the Bitbucket Server instance will be made over the public internet. Must be in the format `projects/{project}/global/networks/{network}`, where {project} is a project number or id and {network} is the name of a VPC network in the project.", "type": "string" }, + "peeredNetworkIpRange": { + "description": "Immutable. IP range within the peered network. This is specified in CIDR notation with a slash and the subnet prefix size. You can optionally specify an IP address before the subnet prefix value. e.g. `192.168.0.0/29` would specify an IP range starting at 192.168.0.0 with a 29 bit prefix size. `/16` would specify a prefix size of 16 bits, with an automatically determined IP within the peered VPC. If unspecified, a value of `/24` will be used. The field only has an effect if peered_network is set.", + "type": "string" + }, "secrets": { "$ref": "BitbucketServerSecrets", "description": "Required. Secret Manager secrets needed by the config." @@ -2760,7 +2822,7 @@ "type": "string" }, "logsBucket": { - "description": "Google Cloud Storage bucket where logs should be written (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.", + "description": "Cloud Storage bucket where logs should be written (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.", "type": "string" }, "name": { @@ -2943,6 +3005,22 @@ "description": "Optional arguments to enable specific features of builds.", "id": "BuildOptions", "properties": { + "automapSubstitutions": { + "description": "Option to include built-in and custom substitutions as env variables for all build steps.", + "type": "boolean" + }, + "defaultLogsBucketBehavior": { + "description": "Optional. Option to specify how default logs buckets are setup.", + "enum": [ + "DEFAULT_LOGS_BUCKET_BEHAVIOR_UNSPECIFIED", + "REGIONAL_USER_OWNED_BUCKET" + ], + "enumDescriptions": [ + "Unspecified.", + "Bucket is located in user-owned project in the same region as the build. The builder service account must have access to create and write to Cloud Storage buckets in the build project." + ], + "type": "string" + }, "diskSizeGb": { "description": "Requested disk size for the VM that runs the build. Note that this is *NOT* \"disk free\"; some of the space will be used by the operating system and build utilities. Also note that this is the minimum disk size that will be allocated for the build -- the build may run with a larger disk than requested. At present, the maximum disk size is 2000GB; builds that request more than the maximum are rejected with an error.", "format": "int64", @@ -2960,7 +3038,7 @@ "type": "array" }, "logStreamingOption": { - "description": "Option to define build log streaming behavior to Google Cloud Storage.", + "description": "Option to define build log streaming behavior to Cloud Storage.", "enum": [ "STREAM_DEFAULT", "STREAM_ON", @@ -2968,8 +3046,8 @@ ], "enumDescriptions": [ "Service may automatically determine build log streaming behavior.", - "Build logs should be streamed to Google Cloud Storage.", - "Build logs should not be streamed to Google Cloud Storage; they will be written when the build is completed." + "Build logs should be streamed to Cloud Storage.", + "Build logs should not be streamed to Cloud Storage; they will be written when the build is completed." ], "type": "string" }, @@ -2983,6 +3061,14 @@ "CLOUD_LOGGING_ONLY", "NONE" ], + "enumDeprecated": [ + false, + false, + false, + true, + false, + false + ], "enumDescriptions": [ "The service determines the logging mode. The default is `LEGACY`. Do not rely on the default logging behavior as it may change in the future.", "Build logs are stored in Cloud Logging and Cloud Storage.", @@ -3000,14 +3086,16 @@ "N1_HIGHCPU_8", "N1_HIGHCPU_32", "E2_HIGHCPU_8", - "E2_HIGHCPU_32" + "E2_HIGHCPU_32", + "E2_MEDIUM" ], "enumDescriptions": [ "Standard machine type.", "Highcpu machine with 8 CPUs.", "Highcpu machine with 32 CPUs.", "Highcpu e2 machine with 8 CPUs.", - "Highcpu e2 machine with 32 CPUs." + "Highcpu e2 machine with 32 CPUs.", + "E2 machine with 1 CPU." ], "type": "string" }, @@ -3040,12 +3128,14 @@ "enum": [ "NONE", "SHA256", - "MD5" + "MD5", + "SHA512" ], "enumDescriptions": [ "No hash requested.", "Use a sha256 hash.", - "Use a md5 hash." + "Use a md5 hash.", + "Use a sha512 hash." ], "type": "string" }, @@ -3071,6 +3161,7 @@ "type": "array" }, "workerPool": { + "deprecated": true, "description": "This field deprecated; please use `pool.name` instead.", "type": "string" } @@ -3100,6 +3191,10 @@ }, "type": "array" }, + "automapSubstitutions": { + "description": "Option to include built-in and custom substitutions as env variables for this build step. This option will override the global option in BuildOption.", + "type": "boolean" + }, "dir": { "description": "Working directory to use when running this step's container. If this value is a relative path, it is relative to the build's working directory. If this value is absolute, it may be outside the build's working directory, in which case the contents of the path may not be persisted across build step executions, unless a `volume` for that path is specified. If the build specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies an absolute path, the `RepoSource` `dir` is ignored for the step's execution.", "type": "string" @@ -3398,6 +3493,25 @@ "properties": {}, "type": "object" }, + "ConnectedRepository": { + "description": "Location of the source in a 2nd-gen Google Cloud Build repository resource.", + "id": "ConnectedRepository", + "properties": { + "dir": { + "description": "Directory, relative to the source root, in which to run the build.", + "type": "string" + }, + "repository": { + "description": "Required. Name of the Google Cloud Build repository, formatted as `projects/*/locations/*/connections/*/repositories/*`.", + "type": "string" + }, + "revision": { + "description": "The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.", + "type": "string" + } + }, + "type": "object" + }, "CreateBitbucketServerConfigOperationMetadata": { "description": "Metadata for `CreateBitbucketServerConfig` operation.", "id": "CreateBitbucketServerConfigOperationMetadata", @@ -3512,6 +3626,22 @@ }, "type": "object" }, + "DefaultServiceAccount": { + "description": "The default service account used for `Builds`.", + "id": "DefaultServiceAccount", + "properties": { + "name": { + "description": "Identifier. Format: `projects/{project}/locations/{location}/defaultServiceAccount", + "type": "string" + }, + "serviceAccountEmail": { + "description": "Output only. The email address of the service account identity that will be used for a build by default. This is returned in the format `projects/{project}/serviceAccounts/{service_account}` where `{service_account}` could be the legacy Cloud Build SA, in the format [PROJECT_NUMBER]@cloudbuild.gserviceaccount.com or the Compute SA, in the format [PROJECT_NUMBER]-compute@developer.gserviceaccount.com. If no service account will be used by default, this will be empty.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "DeleteBitbucketServerConfigOperationMetadata": { "description": "Metadata for `DeleteBitbucketServerConfig` operation.", "id": "DeleteBitbucketServerConfigOperationMetadata", @@ -3672,17 +3802,23 @@ "CLOUD_SOURCE_REPOSITORIES", "GITHUB", "BITBUCKET_SERVER", - "GITLAB" + "GITLAB", + "BITBUCKET_CLOUD" ], "enumDescriptions": [ - "The default, unknown repo type.", + "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" }, + "repository": { + "description": "The fully qualified resource name of the Repos API repository. Either URI or repository can be specified. If unspecified, the repo from which the trigger invocation originated is assumed to be the repo from which to read the specified path.", + "type": "string" + }, "revision": { "description": "The branch, tag, arbitrary ref, or SHA version of the repo to use when resolving the filename (optional). This field respects the same syntax/resolution as described here: https://git-scm.com/docs/gitrevisions If unspecified, the revision from which the trigger invocation originated is assumed to be the revision from which to read the specified path.", "type": "string" @@ -3745,6 +3881,7 @@ "id": "GitHubEnterpriseSecrets", "properties": { "oauthClientIdName": { + "deprecated": true, "description": "The resource name for the OAuth client ID secret in Secret Manager.", "type": "string" }, @@ -3753,6 +3890,7 @@ "type": "string" }, "oauthSecretName": { + "deprecated": true, "description": "The resource name for the OAuth secret in Secret Manager.", "type": "string" }, @@ -3761,6 +3899,7 @@ "type": "string" }, "privateKeyName": { + "deprecated": true, "description": "The resource name for the private key secret.", "type": "string" }, @@ -3769,6 +3908,7 @@ "type": "string" }, "webhookSecretName": { + "deprecated": true, "description": "The resource name for the webhook secret in Secret Manager.", "type": "string" }, @@ -3788,6 +3928,7 @@ "type": "string" }, "installationId": { + "deprecated": true, "description": "The installationID that emits the GitHub event.", "format": "int64", "type": "string" @@ -4009,19 +4150,44 @@ "CLOUD_SOURCE_REPOSITORIES", "GITHUB", "BITBUCKET_SERVER", - "GITLAB" + "GITLAB", + "BITBUCKET_CLOUD" ], "enumDescriptions": [ - "The default, unknown repo type.", + "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" }, + "repository": { + "description": "The connected repository resource name, in the format `projects/*/locations/*/connections/*/repositories/*`. Either `uri` or `repository` can be specified and is required.", + "type": "string" + }, "uri": { - "description": "The URI of the repo. Either uri or repository can be specified and is required.", + "description": "The URI of the repo (e.g. https://github.com/user/repo.git). Either `uri` or `repository` can be specified and is required.", + "type": "string" + } + }, + "type": "object" + }, + "GitSource": { + "description": "Location of the source in any accessible Git repository.", + "id": "GitSource", + "properties": { + "dir": { + "description": "Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution.", + "type": "string" + }, + "revision": { + "description": "The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref. Cloud Build uses `git fetch` to fetch the revision from the Git repository; therefore make sure that the string you provide for `revision` is parsable by the command. For information on string values accepted by `git fetch`, see https://git-scm.com/docs/gitrevisions#_specifying_revisions. For information on `git fetch`, see https://git-scm.com/docs/git-fetch.", + "type": "string" + }, + "url": { + "description": "Location of the Git repo to build. This will be used as a `git remote`, see https://git-scm.com/docs/git-remote.", "type": "string" } }, @@ -4036,12 +4202,14 @@ "enum": [ "NONE", "SHA256", - "MD5" + "MD5", + "SHA512" ], "enumDescriptions": [ "No hash requested.", "Use a sha256 hash.", - "Use a md5 hash." + "Use a md5 hash.", + "Use a sha512 hash." ], "type": "string" }, @@ -4295,6 +4463,21 @@ }, "type": "object" }, + "NpmPackage": { + "description": "Npm package to upload to Artifact Registry upon successful completion of all build steps.", + "id": "NpmPackage", + "properties": { + "packagePath": { + "description": "Path to the package.json. e.g. workspace/path/to/package", + "type": "string" + }, + "repository": { + "description": "Artifact Registry repository, in the form \"https://$REGION-npm.pkg.dev/$PROJECT/$REPOSITORY\" Npm package in the workspace specified by path will be zipped and uploaded to Artifact Registry with this location as a prefix.", + "type": "string" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -4324,7 +4507,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" } }, @@ -4393,6 +4576,10 @@ "$ref": "NetworkConfig", "description": "Network configuration for the pool." }, + "privateServiceConnect": { + "$ref": "PrivateServiceConnect", + "description": "Immutable. Private Service Connect(PSC) Network configuration for the pool." + }, "workerConfig": { "$ref": "WorkerConfig", "description": "Machine configuration for the workers in the pool." @@ -4400,6 +4587,25 @@ }, "type": "object" }, + "PrivateServiceConnect": { + "description": "Defines the Private Service Connect network configuration for the pool.", + "id": "PrivateServiceConnect", + "properties": { + "networkAttachment": { + "description": "Required. Immutable. The network attachment that the worker network interface is peered to. Must be in the format `projects/{project}/regions/{region}/networkAttachments/{networkAttachment}`. The region of network attachment must be the same as the worker pool. See [Network Attachments](https://cloud.google.com/vpc/docs/about-network-attachments)", + "type": "string" + }, + "publicIpAddressDisabled": { + "description": "Required. Immutable. Disable public IP on the primary network interface. If true, workers are created without any public address, which prevents network egress to public IPs unless a network proxy is configured. If false, workers are created with a public address which allows for public internet egress. The public address only applies to traffic through the primary network interface. If `route_all_traffic` is set to true, all traffic will go through the non-primary network interface, this boolean has no effect.", + "type": "boolean" + }, + "routeAllTraffic": { + "description": "Immutable. Route all traffic through PSC interface. Enable this if you want full control of traffic in the private pool. Configure Cloud NAT for the subnet of network attachment if you need to access public Internet. If false, Only route private IPs, e.g. 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16 through PSC interface.", + "type": "boolean" + } + }, + "type": "object" + }, "ProcessAppManifestCallbackOperationMetadata": { "description": "Metadata for `ProcessAppManifestCallback` operation.", "id": "ProcessAppManifestCallbackOperationMetadata", @@ -4468,16 +4674,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" }, @@ -4617,13 +4823,17 @@ "REPOSITORY_TYPE_UNSPECIFIED", "GITHUB", "GITHUB_ENTERPRISE", - "GITLAB_ENTERPRISE" + "GITLAB_ENTERPRISE", + "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 GITLAB Enterprise.", + "The SCM repo is BITBUCKET Data Center.", + "The SCM repo is BITBUCKET Cloud." ], "readOnly": true, "type": "string" @@ -4651,7 +4861,7 @@ "type": "array" }, "buildStepOutputs": { - "description": "List of build step outputs, produced by builder images, in the order corresponding to build step indices. [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders) can produce this output by writing to `$BUILDER_OUTPUT/output`. Only the first 4KB of data is stored.", + "description": "List of build step outputs, produced by builder images, in the order corresponding to build step indices. [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders) can produce this output by writing to `$BUILDER_OUTPUT/output`. Only the first 50KB of data is stored.", "items": { "format": "byte", "type": "string" @@ -4672,6 +4882,13 @@ }, "type": "array" }, + "npmPackages": { + "description": "Npm packages uploaded to Artifact Registry at the end of the build.", + "items": { + "$ref": "UploadedNpmPackage" + }, + "type": "array" + }, "numArtifacts": { "description": "Number of non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", "format": "int64", @@ -4795,17 +5012,25 @@ "description": "Location of the source in a supported storage service.", "id": "Source", "properties": { + "connectedRepository": { + "$ref": "ConnectedRepository", + "description": "Optional. If provided, get the source from this 2nd-gen Google Cloud Build repository resource." + }, + "gitSource": { + "$ref": "GitSource", + "description": "If provided, get the source from this Git repository." + }, "repoSource": { "$ref": "RepoSource", "description": "If provided, get the source from this location in a Cloud Source Repository." }, "storageSource": { "$ref": "StorageSource", - "description": "If provided, get the source from this location in Google Cloud Storage." + "description": "If provided, get the source from this location in Cloud Storage." }, "storageSourceManifest": { "$ref": "StorageSourceManifest", - "description": "If provided, get the source from this manifest in Google Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher)." + "description": "If provided, get the source from this manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher)." } }, "type": "object" @@ -4822,6 +5047,16 @@ "readOnly": true, "type": "object" }, + "resolvedConnectedRepository": { + "$ref": "ConnectedRepository", + "description": "Output only. A copy of the build's `source.connected_repository`, if exists, with any revisions resolved.", + "readOnly": true + }, + "resolvedGitSource": { + "$ref": "GitSource", + "description": "Output only. A copy of the build's `source.git_source`, if exists, with any revisions resolved.", + "readOnly": true + }, "resolvedRepoSource": { "$ref": "RepoSource", "description": "A copy of the build's `source.repo_source`, if exists, with any revisions resolved." @@ -4865,40 +5100,54 @@ "type": "object" }, "StorageSource": { - "description": "Location of the source in an archive file in Google Cloud Storage.", + "description": "Location of the source in an archive file in Cloud Storage.", "id": "StorageSource", "properties": { "bucket": { - "description": "Google Cloud Storage bucket containing the source (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", + "description": "Cloud Storage bucket containing the source (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", "type": "string" }, "generation": { - "description": "Google Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", + "description": "Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", "format": "int64", "type": "string" }, "object": { - "description": "Google Cloud Storage object containing the source. This object must be a zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.", + "description": "Cloud Storage object containing the source. This object must be a zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.", + "type": "string" + }, + "sourceFetcher": { + "description": "Optional. Option to specify the tool to fetch the source file for the build.", + "enum": [ + "SOURCE_FETCHER_UNSPECIFIED", + "GSUTIL", + "GCS_FETCHER" + ], + "enumDescriptions": [ + "Unspecified defaults to GSUTIL.", + "Use the \"gsutil\" tool to download the source file.", + "Use the Cloud Storage Fetcher tool to download the source file." + ], "type": "string" } }, "type": "object" }, "StorageSourceManifest": { - "description": "Location of the source manifest in Google Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher).", + "description": "Location of the source manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher).", "id": "StorageSourceManifest", "properties": { "bucket": { - "description": "Google Cloud Storage bucket containing the source manifest (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", + "description": "Cloud Storage bucket containing the source manifest (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", "type": "string" }, "generation": { - "description": "Google Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", + "description": "Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", "format": "int64", "type": "string" }, "object": { - "description": "Google Cloud Storage object containing the source manifest. This object must be a JSON file.", + "description": "Cloud Storage object containing the source manifest. This object must be a JSON file.", "type": "string" } }, @@ -5025,6 +5274,26 @@ }, "type": "object" }, + "UploadedNpmPackage": { + "description": "An npm package uploaded to Artifact Registry using the NpmPackage directive.", + "id": "UploadedNpmPackage", + "properties": { + "fileHashes": { + "$ref": "FileHashes", + "description": "Hash types and values of the npm package." + }, + "pushTiming": { + "$ref": "TimeSpan", + "description": "Output only. Stores timing information for pushing the specified artifact.", + "readOnly": true + }, + "uri": { + "description": "URI of the uploaded npm package.", + "type": "string" + } + }, + "type": "object" + }, "UploadedPythonPackage": { "description": "Artifact uploaded using the PythonPackage directive.", "id": "UploadedPythonPackage", diff --git a/etc/api/cloudchannel/v1/cloudchannel-api.json b/etc/api/cloudchannel/v1/cloudchannel-api.json index c19054e78a..fbb2c552e1 100644 --- a/etc/api/cloudchannel/v1/cloudchannel-api.json +++ b/etc/api/cloudchannel/v1/cloudchannel-api.json @@ -175,7 +175,7 @@ ] }, "listTransferableOffers": { - "description": "List TransferableOffers of a customer based on Cloud Identity ID or Customer Name in the request. Use this method when a reseller gets the entitlement information of an unowned customer. The reseller should provide the customer's Cloud Identity ID or Customer Name. Possible error codes: * PERMISSION_DENIED: * The customer doesn't belong to the reseller and has no auth token. * The customer provided incorrect reseller information when generating auth token. * The reseller account making the request is different from the reseller account in the query. * INVALID_ARGUMENT: Required request parameters are missing or invalid. Return value: List of TransferableOffer for the given customer and SKU.", + "description": "List TransferableOffers of a customer based on Cloud Identity ID or Customer Name in the request. Use this method when a reseller gets the entitlement information of an unowned customer. The reseller should provide the customer's Cloud Identity ID or Customer Name. Possible error codes: * PERMISSION_DENIED: * The customer doesn't belong to the reseller and has no auth token. * The customer provided incorrect reseller information when generating auth token. * The reseller account making the request is different from the reseller account in the query. * The reseller is not authorized to transact on this Product. See https://support.google.com/channelservices/answer/9759265 * INVALID_ARGUMENT: Required request parameters are missing or invalid. Return value: List of TransferableOffer for the given customer and SKU.", "flatPath": "v1/accounts/{accountsId}:listTransferableOffers", "httpMethod": "POST", "id": "cloudchannel.accounts.listTransferableOffers", @@ -442,7 +442,7 @@ "channelPartnerRepricingConfigs": { "methods": { "create": { - "description": "Creates a ChannelPartnerRepricingConfig. Call this method to set modifications for a specific ChannelPartner's bill. You can only create configs if the RepricingConfig.effective_invoice_month is a future month. If needed, you can create a config for the current month, with some restrictions. When creating a config for a future month, make sure there are no existing configs for that RepricingConfig.effective_invoice_month. The following restrictions are for creating configs in the current month. * This functionality is reserved for recovering from an erroneous config, and should not be used for regular business cases. * The new config will not modify exports used with other configs. Changes to the config may be immediate, but may take up to 24 hours. * There is a limit of ten configs for any ChannelPartner or RepricingConfig.effective_invoice_month. * The contained ChannelPartnerRepricingConfig.repricing_config vaule must be different from the value used in the current config for a ChannelPartner. Possible Error Codes: * PERMISSION_DENIED: If the account making the request and the account being queried are different. * INVALID_ARGUMENT: Missing or invalid required parameters in the request. Also displays if the updated config is for the current month or past months. * NOT_FOUND: The ChannelPartnerRepricingConfig specified does not exist or is not associated with the given account. * INTERNAL: Any non-user error related to technical issues in the backend. In this case, contact Cloud Channel support. Return Value: If successful, the updated ChannelPartnerRepricingConfig resource, otherwise returns an error.", + "description": "Creates a ChannelPartnerRepricingConfig. Call this method to set modifications for a specific ChannelPartner's bill. You can only create configs if the RepricingConfig.effective_invoice_month is a future month. If needed, you can create a config for the current month, with some restrictions. When creating a config for a future month, make sure there are no existing configs for that RepricingConfig.effective_invoice_month. The following restrictions are for creating configs in the current month. * This functionality is reserved for recovering from an erroneous config, and should not be used for regular business cases. * The new config will not modify exports used with other configs. Changes to the config may be immediate, but may take up to 24 hours. * There is a limit of ten configs for any ChannelPartner or RepricingConfig.EntitlementGranularity.entitlement, for any RepricingConfig.effective_invoice_month. * The contained ChannelPartnerRepricingConfig.repricing_config value must be different from the value used in the current config for a ChannelPartner. Possible Error Codes: * PERMISSION_DENIED: If the account making the request and the account being queried are different. * INVALID_ARGUMENT: Missing or invalid required parameters in the request. Also displays if the updated config is for the current month or past months. * NOT_FOUND: The ChannelPartnerRepricingConfig specified does not exist or is not associated with the given account. * INTERNAL: Any non-user error related to technical issues in the backend. In this case, contact Cloud Channel support. Return Value: If successful, the updated ChannelPartnerRepricingConfig resource, otherwise returns an error.", "flatPath": "v1/accounts/{accountsId}/channelPartnerLinks/{channelPartnerLinksId}/channelPartnerRepricingConfigs", "httpMethod": "POST", "id": "cloudchannel.accounts.channelPartnerLinks.channelPartnerRepricingConfigs.create", @@ -520,7 +520,7 @@ ] }, "list": { - "description": "Lists information about how a Reseller modifies their bill before sending it to a ChannelPartner. Possible Error Codes: * PERMISSION_DENIED: If the account making the request and the account being queried are different. * NOT_FOUND: The ChannelPartnerRepricingConfig specified does not exist or is not associated with the given account. * INTERNAL: Any non-user error related to technical issues in the backend. In this case, contact Cloud Channel support. Return Value: If successful, the ChannelPartnerRepricingConfig resources. The data for each resource is displayed in the ascending order of: * channel partner ID * RepricingConfig.effective_invoice_month * ChannelPartnerRepricingConfig.update_time If unsuccessful, returns an error.", + "description": "Lists information about how a Reseller modifies their bill before sending it to a ChannelPartner. Possible Error Codes: * PERMISSION_DENIED: If the account making the request and the account being queried are different. * NOT_FOUND: The ChannelPartnerRepricingConfig specified does not exist or is not associated with the given account. * INTERNAL: Any non-user error related to technical issues in the backend. In this case, contact Cloud Channel support. Return Value: If successful, the ChannelPartnerRepricingConfig resources. The data for each resource is displayed in the ascending order of: * Channel Partner ID * RepricingConfig.effective_invoice_month * ChannelPartnerRepricingConfig.update_time If unsuccessful, returns an error.", "flatPath": "v1/accounts/{accountsId}/channelPartnerLinks/{channelPartnerLinksId}/channelPartnerRepricingConfigs", "httpMethod": "GET", "id": "cloudchannel.accounts.channelPartnerLinks.channelPartnerRepricingConfigs.list", @@ -593,7 +593,7 @@ "customers": { "methods": { "create": { - "description": "Creates a new Customer resource under the reseller or distributor account. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: * Required request parameters are missing or invalid. * Domain field value doesn't match the primary email domain. Return value: The newly created Customer resource.", + "description": "Creates a new Customer resource under the reseller or distributor account. Possible error codes: * PERMISSION_DENIED: * The reseller account making the request is different from the reseller account in the API request. * You are not authorized to create a customer. See https://support.google.com/channelservices/answer/9759265 * INVALID_ARGUMENT: * Required request parameters are missing or invalid. * Domain field value doesn't match the primary email domain. Return value: The newly created Customer resource.", "flatPath": "v1/accounts/{accountsId}/channelPartnerLinks/{channelPartnerLinksId}/customers", "httpMethod": "POST", "id": "cloudchannel.accounts.channelPartnerLinks.customers.create", @@ -671,7 +671,7 @@ ] }, "import": { - "description": "Imports a Customer from the Cloud Identity associated with the provided Cloud Identity ID or domain before a TransferEntitlements call. If a linked Customer already exists and overwrite_if_exists is true, it will update that Customer's data. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * NOT_FOUND: Cloud Identity doesn't exist or was deleted. * INVALID_ARGUMENT: Required parameters are missing, or the auth_token is expired or invalid. * ALREADY_EXISTS: A customer already exists and has conflicting critical fields. Requires an overwrite. Return value: The Customer.", + "description": "Imports a Customer from the Cloud Identity associated with the provided Cloud Identity ID or domain before a TransferEntitlements call. If a linked Customer already exists and overwrite_if_exists is true, it will update that Customer's data. Possible error codes: * PERMISSION_DENIED: * The reseller account making the request is different from the reseller account in the API request. * You are not authorized to import the customer. See https://support.google.com/channelservices/answer/9759265 * NOT_FOUND: Cloud Identity doesn't exist or was deleted. * INVALID_ARGUMENT: Required parameters are missing, or the auth_token is expired or invalid. * ALREADY_EXISTS: A customer already exists and has conflicting critical fields. Requires an overwrite. Return value: The Customer.", "flatPath": "v1/accounts/{accountsId}/channelPartnerLinks/{channelPartnerLinksId}/customers:import", "httpMethod": "POST", "id": "cloudchannel.accounts.channelPartnerLinks.customers.import", @@ -780,7 +780,7 @@ "customers": { "methods": { "create": { - "description": "Creates a new Customer resource under the reseller or distributor account. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: * Required request parameters are missing or invalid. * Domain field value doesn't match the primary email domain. Return value: The newly created Customer resource.", + "description": "Creates a new Customer resource under the reseller or distributor account. Possible error codes: * PERMISSION_DENIED: * The reseller account making the request is different from the reseller account in the API request. * You are not authorized to create a customer. See https://support.google.com/channelservices/answer/9759265 * INVALID_ARGUMENT: * Required request parameters are missing or invalid. * Domain field value doesn't match the primary email domain. Return value: The newly created Customer resource.", "flatPath": "v1/accounts/{accountsId}/customers", "httpMethod": "POST", "id": "cloudchannel.accounts.customers.create", @@ -858,7 +858,7 @@ ] }, "import": { - "description": "Imports a Customer from the Cloud Identity associated with the provided Cloud Identity ID or domain before a TransferEntitlements call. If a linked Customer already exists and overwrite_if_exists is true, it will update that Customer's data. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * NOT_FOUND: Cloud Identity doesn't exist or was deleted. * INVALID_ARGUMENT: Required parameters are missing, or the auth_token is expired or invalid. * ALREADY_EXISTS: A customer already exists and has conflicting critical fields. Requires an overwrite. Return value: The Customer.", + "description": "Imports a Customer from the Cloud Identity associated with the provided Cloud Identity ID or domain before a TransferEntitlements call. If a linked Customer already exists and overwrite_if_exists is true, it will update that Customer's data. Possible error codes: * PERMISSION_DENIED: * The reseller account making the request is different from the reseller account in the API request. * You are not authorized to import the customer. See https://support.google.com/channelservices/answer/9759265 * NOT_FOUND: Cloud Identity doesn't exist or was deleted. * INVALID_ARGUMENT: Required parameters are missing, or the auth_token is expired or invalid. * ALREADY_EXISTS: A customer already exists and has conflicting critical fields. Requires an overwrite. Return value: The Customer.", "flatPath": "v1/accounts/{accountsId}/customers:import", "httpMethod": "POST", "id": "cloudchannel.accounts.customers.import", @@ -927,7 +927,7 @@ ] }, "listPurchasableOffers": { - "description": "Lists the following: * Offers that you can purchase for a customer. * Offers that you can change for an entitlement. Possible error codes: * PERMISSION_DENIED: The customer doesn't belong to the reseller * INVALID_ARGUMENT: Required request parameters are missing or invalid.", + "description": "Lists the following: * Offers that you can purchase for a customer. * Offers that you can change for an entitlement. Possible error codes: * PERMISSION_DENIED: * The customer doesn't belong to the reseller * The reseller is not authorized to transact on this Product. See https://support.google.com/channelservices/answer/9759265 * INVALID_ARGUMENT: Required request parameters are missing or invalid.", "flatPath": "v1/accounts/{accountsId}/customers/{customersId}:listPurchasableOffers", "httpMethod": "GET", "id": "cloudchannel.accounts.customers.listPurchasableOffers", @@ -935,6 +935,11 @@ "customer" ], "parameters": { + "changeOfferPurchase.billingAccount": { + "description": "Optional. Resource name of the new target Billing Account. Provide this Billing Account when setting up billing for a trial subscription. Format: accounts/{account_id}/billingAccounts/{billing_account_id}. This field is only relevant for multi-currency accounts. It should be left empty for single currency accounts.", + "location": "query", + "type": "string" + }, "changeOfferPurchase.entitlement": { "description": "Required. Resource name of the entitlement. Format: accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}", "location": "query", @@ -945,6 +950,11 @@ "location": "query", "type": "string" }, + "createEntitlementPurchase.billingAccount": { + "description": "Optional. Billing account that the result should be restricted to. Format: accounts/{account_id}/billingAccounts/{billing_account_id}.", + "location": "query", + "type": "string" + }, "createEntitlementPurchase.sku": { "description": "Required. SKU that the result should be restricted to. Format: products/{product_id}/skus/{sku_id}.", "location": "query", @@ -1083,7 +1093,7 @@ ] }, "provisionCloudIdentity": { - "description": "Creates a Cloud Identity for the given customer using the customer's information, or the information provided here. Possible error codes: * PERMISSION_DENIED: The customer doesn't belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The customer was not found. * ALREADY_EXISTS: The customer's primary email already exists. Retry after changing the customer's primary contact email. * 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.", + "description": "Creates a Cloud Identity for the given customer using the customer's information, or the information provided here. Possible error codes: * PERMISSION_DENIED: * The customer doesn't belong to the reseller. * You are not authorized to provision cloud identity id. See https://support.google.com/channelservices/answer/9759265 * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The customer was not found. * ALREADY_EXISTS: The customer's primary email already exists. Retry after changing the customer's primary contact email. * 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.", "flatPath": "v1/accounts/{accountsId}/customers/{customersId}:provisionCloudIdentity", "httpMethod": "POST", "id": "cloudchannel.accounts.customers.provisionCloudIdentity", @@ -1110,8 +1120,39 @@ "https://www.googleapis.com/auth/apps.order" ] }, + "queryEligibleBillingAccounts": { + "description": "Lists the billing accounts that are eligible to purchase particular SKUs for a given customer. Possible error codes: * PERMISSION_DENIED: The customer doesn't belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. Return value: Based on the provided list of SKUs, returns a list of SKU groups that must be purchased using the same billing account and the billing accounts eligible to purchase each SKU group.", + "flatPath": "v1/accounts/{accountsId}/customers/{customersId}:queryEligibleBillingAccounts", + "httpMethod": "GET", + "id": "cloudchannel.accounts.customers.queryEligibleBillingAccounts", + "parameterOrder": [ + "customer" + ], + "parameters": { + "customer": { + "description": "Required. The resource name of the customer to list eligible billing accounts for. Format: accounts/{account_id}/customers/{customer_id}.", + "location": "path", + "pattern": "^accounts/[^/]+/customers/[^/]+$", + "required": true, + "type": "string" + }, + "skus": { + "description": "Required. List of SKUs to list eligible billing accounts for. At least one SKU is required. Format: products/{product_id}/skus/{sku_id}.", + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "v1/{+customer}:queryEligibleBillingAccounts", + "response": { + "$ref": "GoogleCloudChannelV1QueryEligibleBillingAccountsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, "transferEntitlements": { - "description": "Transfers customer entitlements to new reseller. Possible error codes: * PERMISSION_DENIED: The customer doesn't belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The customer or offer resource was not found. * ALREADY_EXISTS: The SKU was already transferred for the customer. * CONDITION_NOT_MET or FAILED_PRECONDITION: * The SKU requires domain verification to transfer, but the domain is not verified. * An Add-On SKU (example, Vault or Drive) is missing the pre-requisite SKU (example, G Suite Basic). * (Developer accounts only) Reseller and resold domain must meet the following naming requirements: * Domain names must start with goog-test. * Domain names must include the reseller domain. * Specify all transferring entitlements. * 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 will contain an instance of OperationMetadata.", + "description": "Transfers customer entitlements to new reseller. Possible error codes: * PERMISSION_DENIED: * The customer doesn't belong to the reseller. * The reseller is not authorized to transact on this Product. See https://support.google.com/channelservices/answer/9759265 * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The customer or offer resource was not found. * ALREADY_EXISTS: The SKU was already transferred for the customer. * CONDITION_NOT_MET or FAILED_PRECONDITION: * The SKU requires domain verification to transfer, but the domain is not verified. * An Add-On SKU (example, Vault or Drive) is missing the pre-requisite SKU (example, G Suite Basic). * (Developer accounts only) Reseller and resold domain must meet the following naming requirements: * Domain names must start with goog-test. * Domain names must include the reseller domain. * Specify all transferring entitlements. * 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 will contain an instance of OperationMetadata.", "flatPath": "v1/accounts/{accountsId}/customers/{customersId}:transferEntitlements", "httpMethod": "POST", "id": "cloudchannel.accounts.customers.transferEntitlements", @@ -1171,7 +1212,7 @@ "customerRepricingConfigs": { "methods": { "create": { - "description": "Creates a CustomerRepricingConfig. Call this method to set modifications for a specific customer's bill. You can only create configs if the RepricingConfig.effective_invoice_month is a future month. If needed, you can create a config for the current month, with some restrictions. When creating a config for a future month, make sure there are no existing configs for that RepricingConfig.effective_invoice_month. The following restrictions are for creating configs in the current month. * This functionality is reserved for recovering from an erroneous config, and should not be used for regular business cases. * The new config will not modify exports used with other configs. Changes to the config may be immediate, but may take up to 24 hours. * There is a limit of ten configs for any RepricingConfig.EntitlementGranularity.entitlement or RepricingConfig.effective_invoice_month. * The contained CustomerRepricingConfig.repricing_config vaule must be different from the value used in the current config for a RepricingConfig.EntitlementGranularity.entitlement. Possible Error Codes: * PERMISSION_DENIED: If the account making the request and the account being queried are different. * INVALID_ARGUMENT: Missing or invalid required parameters in the request. Also displays if the updated config is for the current month or past months. * NOT_FOUND: The CustomerRepricingConfig specified does not exist or is not associated with the given account. * INTERNAL: Any non-user error related to technical issues in the backend. In this case, contact Cloud Channel support. Return Value: If successful, the updated CustomerRepricingConfig resource, otherwise returns an error.", + "description": "Creates a CustomerRepricingConfig. Call this method to set modifications for a specific customer's bill. You can only create configs if the RepricingConfig.effective_invoice_month is a future month. If needed, you can create a config for the current month, with some restrictions. When creating a config for a future month, make sure there are no existing configs for that RepricingConfig.effective_invoice_month. The following restrictions are for creating configs in the current month. * This functionality is reserved for recovering from an erroneous config, and should not be used for regular business cases. * The new config will not modify exports used with other configs. Changes to the config may be immediate, but may take up to 24 hours. * There is a limit of ten configs for any RepricingConfig.EntitlementGranularity.entitlement, for any RepricingConfig.effective_invoice_month. * The contained CustomerRepricingConfig.repricing_config value must be different from the value used in the current config for a RepricingConfig.EntitlementGranularity.entitlement. Possible Error Codes: * PERMISSION_DENIED: If the account making the request and the account being queried are different. * INVALID_ARGUMENT: Missing or invalid required parameters in the request. Also displays if the updated config is for the current month or past months. * NOT_FOUND: The CustomerRepricingConfig specified does not exist or is not associated with the given account. * INTERNAL: Any non-user error related to technical issues in the backend. In this case, contact Cloud Channel support. Return Value: If successful, the updated CustomerRepricingConfig resource, otherwise returns an error.", "flatPath": "v1/accounts/{accountsId}/customers/{customersId}/customerRepricingConfigs", "httpMethod": "POST", "id": "cloudchannel.accounts.customers.customerRepricingConfigs.create", @@ -1249,7 +1290,7 @@ ] }, "list": { - "description": "Lists information about how a Reseller modifies their bill before sending it to a Customer. Possible Error Codes: * PERMISSION_DENIED: If the account making the request and the account being queried are different. * NOT_FOUND: The CustomerRepricingConfig specified does not exist or is not associated with the given account. * INTERNAL: Any non-user error related to technical issues in the backend. In this case, contact Cloud Channel support. Return Value: If successful, the CustomerRepricingConfig resources. The data for each resource is displayed in the ascending order of: * customer ID * RepricingConfig.EntitlementGranularity.entitlement * RepricingConfig.effective_invoice_month * CustomerRepricingConfig.update_time If unsuccessful, returns an error.", + "description": "Lists information about how a Reseller modifies their bill before sending it to a Customer. Possible Error Codes: * PERMISSION_DENIED: If the account making the request and the account being queried are different. * NOT_FOUND: The CustomerRepricingConfig specified does not exist or is not associated with the given account. * INTERNAL: Any non-user error related to technical issues in the backend. In this case, contact Cloud Channel support. Return Value: If successful, the CustomerRepricingConfig resources. The data for each resource is displayed in the ascending order of: * Customer ID * RepricingConfig.EntitlementGranularity.entitlement * RepricingConfig.effective_invoice_month * CustomerRepricingConfig.update_time If unsuccessful, returns an error.", "flatPath": "v1/accounts/{accountsId}/customers/{customersId}/customerRepricingConfigs", "httpMethod": "GET", "id": "cloudchannel.accounts.customers.customerRepricingConfigs.list", @@ -1462,7 +1503,7 @@ ] }, "create": { - "description": "Creates an entitlement for a customer. Possible error codes: * PERMISSION_DENIED: The customer doesn't belong to the reseller. * INVALID_ARGUMENT: * Required request parameters are missing or invalid. * There is already a customer entitlement for a SKU from the same product family. * INVALID_VALUE: Make sure the OfferId is valid. If it is, contact Google Channel support for further troubleshooting. * NOT_FOUND: The customer or offer resource was not found. * ALREADY_EXISTS: * The SKU was already purchased for the customer. * The customer's primary email already exists. Retry after changing the customer's primary contact email. * CONDITION_NOT_MET or FAILED_PRECONDITION: * The domain required for purchasing a SKU has not been verified. * A pre-requisite SKU required to purchase an Add-On SKU is missing. For example, Google Workspace Business Starter is required to purchase Vault or Drive. * (Developer accounts only) Reseller and resold domain must meet the following naming requirements: * Domain names must start with goog-test. * Domain names must include the reseller domain. * 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 will contain an instance of OperationMetadata.", + "description": "Creates an entitlement for a customer. Possible error codes: * PERMISSION_DENIED: * The customer doesn't belong to the reseller. * The reseller is not authorized to transact on this Product. See https://support.google.com/channelservices/answer/9759265 * INVALID_ARGUMENT: * Required request parameters are missing or invalid. * There is already a customer entitlement for a SKU from the same product family. * INVALID_VALUE: Make sure the OfferId is valid. If it is, contact Google Channel support for further troubleshooting. * NOT_FOUND: The customer or offer resource was not found. * ALREADY_EXISTS: * The SKU was already purchased for the customer. * The customer's primary email already exists. Retry after changing the customer's primary contact email. * CONDITION_NOT_MET or FAILED_PRECONDITION: * The domain required for purchasing a SKU has not been verified. * A pre-requisite SKU required to purchase an Add-On SKU is missing. For example, Google Workspace Business Starter is required to purchase Vault or Drive. * (Developer accounts only) Reseller and resold domain must meet the following naming requirements: * Domain names must start with goog-test. * Domain names must include the reseller domain. * 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 will contain an instance of OperationMetadata.", "flatPath": "v1/accounts/{accountsId}/customers/{customersId}/entitlements", "httpMethod": "POST", "id": "cloudchannel.accounts.customers.entitlements.create", @@ -1550,6 +1591,47 @@ "https://www.googleapis.com/auth/apps.order" ] }, + "listEntitlementChanges": { + "description": "List entitlement history. Possible error codes: * PERMISSION_DENIED: The reseller account making the request and the provided reseller account are different. * INVALID_ARGUMENT: Missing or invalid required fields in the request. * NOT_FOUND: The parent resource doesn't exist. Usually the result of an invalid name parameter. * INTERNAL: Any non-user error related to a technical issue in the backend. In this case, contact CloudChannel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. In this case, contact Cloud Channel support. Return value: List of EntitlementChanges.", + "flatPath": "v1/accounts/{accountsId}/customers/{customersId}/entitlements/{entitlementsId}:listEntitlementChanges", + "httpMethod": "GET", + "id": "cloudchannel.accounts.customers.entitlements.listEntitlementChanges", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filters applied to the list results.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of entitlement changes to return. The service may return fewer than this value. If unspecified, returns at most 10 entitlement changes. The maximum value is 50; the server will coerce values above 50.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous CloudChannelService.ListEntitlementChanges call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to CloudChannelService.ListEntitlementChanges must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the entitlement for which to list entitlement changes. The `-` wildcard may be used to match entitlements across a customer. Formats: * accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id} * accounts/{account_id}/customers/{customer_id}/entitlements/-", + "location": "path", + "pattern": "^accounts/[^/]+/customers/[^/]+/entitlements/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}:listEntitlementChanges", + "response": { + "$ref": "GoogleCloudChannelV1ListEntitlementChangesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, "lookupOffer": { "description": "Returns the requested Offer resource. Possible error codes: * PERMISSION_DENIED: The entitlement doesn't belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: Entitlement or offer was not found. Return value: The Offer resource.", "flatPath": "v1/accounts/{accountsId}/customers/{customersId}/entitlements/{entitlementsId}:lookupOffer", @@ -1673,6 +1755,11 @@ "pattern": "^accounts/[^/]+$", "required": true, "type": "string" + }, + "showFutureOffers": { + "description": "Optional. A boolean flag that determines if a response returns future offers 30 days from now. If the show_future_offers is true, the response will only contain offers that are scheduled to be available 30 days from now.", + "location": "query", + "type": "boolean" } }, "path": "v1/{+parent}/offers", @@ -1686,9 +1773,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", @@ -1718,9 +1807,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", @@ -1761,7 +1852,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", @@ -1789,6 +1881,88 @@ ] } } + }, + "skuGroups": { + "methods": { + "list": { + "description": "Lists the Rebilling supported SKU groups the account is authorized to sell. Reference: https://cloud.google.com/skus/sku-groups Possible Error Codes: * PERMISSION_DENIED: If the account making the request and the account being queried are different, or the account doesn't exist. * INTERNAL: Any non-user error related to technical issues in the backend. In this case, contact Cloud Channel support. Return Value: If successful, the SkuGroup resources. The data for each resource is displayed in the alphabetical order of SKU group display name. The data for each resource is displayed in the ascending order of SkuGroup.display_name If unsuccessful, returns an error.", + "flatPath": "v1/accounts/{accountsId}/skuGroups", + "httpMethod": "GET", + "id": "cloudchannel.accounts.skuGroups.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of SKU groups to return. The service may return fewer than this value. If unspecified, returns a maximum of 1000 SKU groups. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results beyond the first page. Obtained through ListSkuGroups.next_page_token of the previous CloudChannelService.ListSkuGroups call.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the account from which to list SKU groups. Parent uses the format: accounts/{account}.", + "location": "path", + "pattern": "^accounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/skuGroups", + "response": { + "$ref": "GoogleCloudChannelV1ListSkuGroupsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + } + }, + "resources": { + "billableSkus": { + "methods": { + "list": { + "description": "Lists the Billable SKUs in a given SKU group. Possible error codes: PERMISSION_DENIED: If the account making the request and the account being queried for are different, or the account doesn't exist. INVALID_ARGUMENT: Missing or invalid required parameters in the request. INTERNAL: Any non-user error related to technical issue in the backend. In this case, contact cloud channel support. Return Value: If successful, the BillableSku resources. The data for each resource is displayed in the ascending order of: * BillableSku.service_display_name * BillableSku.sku_display_name If unsuccessful, returns an error.", + "flatPath": "v1/accounts/{accountsId}/skuGroups/{skuGroupsId}/billableSkus", + "httpMethod": "GET", + "id": "cloudchannel.accounts.skuGroups.billableSkus.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of SKUs to return. The service may return fewer than this value. If unspecified, returns a maximum of 100000 SKUs. The maximum value is 100000; values above 100000 will be coerced to 100000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results beyond the first page. Obtained through ListSkuGroupBillableSkus.next_page_token of the previous CloudChannelService.ListSkuGroupBillableSkus call.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Resource name of the SKU group. Format: accounts/{account}/skuGroups/{sku_group}.", + "location": "path", + "pattern": "^accounts/[^/]+/skuGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/billableSkus", + "response": { + "$ref": "GoogleCloudChannelV1ListSkuGroupBillableSkusResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + } + } + } + } } } }, @@ -1873,7 +2047,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/operations", "httpMethod": "GET", "id": "cloudchannel.operations.list", @@ -2009,7 +2183,7 @@ } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://cloudchannel.googleapis.com/", "schemas": { "GoogleCloudChannelV1ActivateEntitlementRequest": { @@ -2053,6 +2227,72 @@ }, "type": "object" }, + "GoogleCloudChannelV1BillableSku": { + "description": "Represents the Billable SKU information.", + "id": "GoogleCloudChannelV1BillableSku", + "properties": { + "service": { + "description": "Resource name of Service which contains Repricing SKU. Format: services/{service}. Example: \"services/B7D9-FDCB-15D8\".", + "type": "string" + }, + "serviceDisplayName": { + "description": "Unique human readable name for the Service.", + "type": "string" + }, + "sku": { + "description": "Resource name of Billable SKU. Format: billableSkus/{sku}. Example: billableSkus/6E1B-6634-470F\".", + "type": "string" + }, + "skuDisplayName": { + "description": "Unique human readable name for the SKU.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudChannelV1BillingAccount": { + "description": "Represents a billing account.", + "id": "GoogleCloudChannelV1BillingAccount", + "properties": { + "createTime": { + "description": "Output only. The time when this billing account was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "currencyCode": { + "description": "Output only. The 3-letter currency code defined in ISO 4217.", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Display name of the billing account.", + "type": "string" + }, + "name": { + "description": "Output only. Resource name of the billing account. Format: accounts/{account_id}/billingAccounts/{billing_account_id}.", + "readOnly": true, + "type": "string" + }, + "regionCode": { + "description": "Output only. The CLDR region code.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudChannelV1BillingAccountPurchaseInfo": { + "description": "Represents a billing account that can be used to make a purchase.", + "id": "GoogleCloudChannelV1BillingAccountPurchaseInfo", + "properties": { + "billingAccount": { + "$ref": "GoogleCloudChannelV1BillingAccount", + "description": "The billing account resource." + } + }, + "type": "object" + }, "GoogleCloudChannelV1CancelEntitlementRequest": { "description": "Request message for CloudChannelService.CancelEntitlement.", "id": "GoogleCloudChannelV1CancelEntitlementRequest", @@ -2068,6 +2308,10 @@ "description": "Request message for CloudChannelService.ChangeOffer.", "id": "GoogleCloudChannelV1ChangeOfferRequest", "properties": { + "billingAccount": { + "description": "Optional. The billing account resource name that is used to pay for this entitlement when setting up billing on a trial subscription. This field is only relevant for multi-currency accounts. It should be left empty for single currency accounts.", + "type": "string" + }, "offer": { "description": "Required. New Offer. Format: accounts/{account_id}/offers/{offer_id}.", "type": "string" @@ -2215,7 +2459,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" } }, @@ -2311,6 +2555,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": { @@ -2479,6 +2724,10 @@ "description": "Output only. Cloud Identity information for the customer. Populated only if a Cloud Identity account exists for this customer.", "readOnly": true }, + "correlationId": { + "description": "Optional. External CRM ID for the customer. Populated only if a CRM ID exists for this customer.", + "type": "string" + }, "createTime": { "description": "Output only. Time when the customer was created.", "format": "google-datetime", @@ -2504,7 +2753,7 @@ }, "orgPostalAddress": { "$ref": "GoogleTypePostalAddress", - "description": "Required. The organization address for the customer. To enforce US laws and embargoes, we require a region and zip code. You must provide valid addresses for every customer. To set the customer's language, use the Customer-level language code." + "description": "Required. The organization address for the customer. To enforce US laws and embargoes, we require a region, postal code, and address lines. You must provide valid addresses for every customer. To set the customer's language, use the Customer-level language code." }, "primaryContactInfo": { "$ref": "GoogleCloudChannelV1ContactInfo", @@ -2617,16 +2866,17 @@ "type": "object" }, "GoogleCloudChannelV1DateRange": { + "deprecated": true, "description": "A representation of usage or invoice date ranges.", "id": "GoogleCloudChannelV1DateRange", "properties": { "invoiceEndDate": { "$ref": "GoogleTypeDate", - "description": "The latest invoice date (exclusive). If your product uses monthly invoices, and this value is not the beginning of a month, this will adjust the date to the first day of the following month." + "description": "The latest invoice date (inclusive). If this value is not the last day of a month, this will move it forward to the last day of the given month." }, "invoiceStartDate": { "$ref": "GoogleTypeDate", - "description": "The earliest invoice date (inclusive). If your product uses monthly invoices, and this value is not the beginning of a month, this will adjust the date to the first day of the given month." + "description": "The earliest invoice date (inclusive). If this value is not the first day of a month, this will move it back to the first day of the given month." }, "usageEndDateTime": { "$ref": "GoogleTypeDateTime", @@ -2696,6 +2946,10 @@ "$ref": "GoogleCloudChannelV1AssociationInfo", "description": "Association information to other entitlements." }, + "billingAccount": { + "description": "Optional. The billing account resource name that is used to pay for this entitlement.", + "type": "string" + }, "commitmentSettings": { "$ref": "GoogleCloudChannelV1CommitmentSettings", "description": "Commitment settings for a commitment-based Offer. Required for commitment based offers." @@ -2716,7 +2970,7 @@ "type": "string" }, "parameters": { - "description": "Extended entitlement parameters. When creating an entitlement, valid parameter names and values are defined in the Offer.parameter_definitions. For Google Workspace, the following Parameters may be accepted as input: - max_units: The maximum assignable units for a flexible offer OR - num_units: The total commitment for commitment-based offers The response may additionally include the following output-only Parameters: - assigned_units: The number of licenses assigned to users. For GCP billing accounts, the following Parameter may be accepted as input: - display_name: The display name of the billing account.", + "description": "Extended entitlement parameters. When creating an entitlement, valid parameter names and values are defined in the Offer.parameter_definitions. For Google Workspace, the following Parameters may be accepted as input: - max_units: The maximum assignable units for a flexible offer OR - num_units: The total commitment for commitment-based offers The response may additionally include the following output-only Parameters: - assigned_units: The number of licenses assigned to users. For Google Cloud billing subaccounts, the following Parameter may be accepted as input: - display_name: The display name of the billing subaccount.", "items": { "$ref": "GoogleCloudChannelV1Parameter" }, @@ -2784,6 +3038,155 @@ }, "type": "object" }, + "GoogleCloudChannelV1EntitlementChange": { + "description": "Change event entry for Entitlement order history", + "id": "GoogleCloudChannelV1EntitlementChange", + "properties": { + "activationReason": { + "description": "The Entitlement's activation reason", + "enum": [ + "ACTIVATION_REASON_UNSPECIFIED", + "RESELLER_REVOKED_SUSPENSION", + "CUSTOMER_ACCEPTED_PENDING_TOS", + "RENEWAL_SETTINGS_CHANGED", + "OTHER_ACTIVATION_REASON" + ], + "enumDescriptions": [ + "Not used.", + "Reseller reactivated a suspended Entitlement.", + "Customer accepted pending terms of service.", + "Reseller updated the renewal settings on an entitlement that was suspended due to cancellation, and this update reactivated the entitlement.", + "Other reasons (Activated temporarily for cancellation, added a payment plan to a trial entitlement, etc.)" + ], + "type": "string" + }, + "cancellationReason": { + "description": "Cancellation reason for the Entitlement.", + "enum": [ + "CANCELLATION_REASON_UNSPECIFIED", + "SERVICE_TERMINATED", + "RELATIONSHIP_ENDED", + "PARTIAL_TRANSFER" + ], + "enumDescriptions": [ + "Not used.", + "Reseller triggered a cancellation of the service.", + "Relationship between the reseller and customer has ended due to a transfer.", + "Entitlement transferred away from reseller while still keeping other entitlement(s) with the reseller." + ], + "type": "string" + }, + "changeType": { + "description": "The change action type.", + "enum": [ + "CHANGE_TYPE_UNSPECIFIED", + "CREATED", + "PRICE_PLAN_SWITCHED", + "COMMITMENT_CHANGED", + "RENEWED", + "SUSPENDED", + "ACTIVATED", + "CANCELLED", + "SKU_CHANGED", + "RENEWAL_SETTING_CHANGED", + "PAID_SUBSCRIPTION_STARTED", + "LICENSE_CAP_CHANGED", + "SUSPENSION_DETAILS_CHANGED", + "TRIAL_END_DATE_EXTENDED", + "TRIAL_STARTED" + ], + "enumDescriptions": [ + "Not used.", + "New Entitlement was created.", + "Price plan associated with an Entitlement was changed.", + "Number of seats committed for a commitment Entitlement was changed.", + "An annual Entitlement was renewed.", + "Entitlement was suspended.", + "Entitlement was activated.", + "Entitlement was cancelled.", + "Entitlement was upgraded or downgraded for ex. from Google Workspace Business Standard to Google Workspace Business Plus.", + "The settings for renewal of an Entitlement have changed.", + "Use for Google Workspace subscription. Either a trial was converted to a paid subscription or a new subscription with no trial is created.", + "License cap was changed for the entitlement.", + "The suspension details have changed (but it is still suspended).", + "The trial end date was extended.", + "Entitlement started trial." + ], + "type": "string" + }, + "createTime": { + "description": "The submitted time of the change.", + "format": "google-datetime", + "type": "string" + }, + "entitlement": { + "description": "Required. Resource name of an entitlement in the form: accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}", + "type": "string" + }, + "offer": { + "description": "Required. Resource name of the Offer at the time of change. Takes the form: accounts/{account_id}/offers/{offer_id}.", + "type": "string" + }, + "operator": { + "description": "Human-readable identifier that shows what operator made a change. When the operator_type is RESELLER, this is the user's email address. For all other operator types, this is empty.", + "type": "string" + }, + "operatorType": { + "description": "Operator type responsible for the change.", + "enum": [ + "OPERATOR_TYPE_UNSPECIFIED", + "CUSTOMER_SERVICE_REPRESENTATIVE", + "SYSTEM", + "CUSTOMER", + "RESELLER" + ], + "enumDescriptions": [ + "Not used.", + "Customer service representative.", + "System auto job.", + "Customer user.", + "Reseller user." + ], + "type": "string" + }, + "otherChangeReason": { + "description": "e.g. purchase_number change reason, entered by CRS.", + "type": "string" + }, + "parameters": { + "description": "Extended parameters, such as: purchase_order_number, gcp_details; internal_correlation_id, long_running_operation_id, order_id; etc.", + "items": { + "$ref": "GoogleCloudChannelV1Parameter" + }, + "type": "array" + }, + "provisionedService": { + "$ref": "GoogleCloudChannelV1ProvisionedService", + "description": "Service provisioned for an Entitlement." + }, + "suspensionReason": { + "description": "Suspension reason for the Entitlement.", + "enum": [ + "SUSPENSION_REASON_UNSPECIFIED", + "RESELLER_INITIATED", + "TRIAL_ENDED", + "RENEWAL_WITH_TYPE_CANCEL", + "PENDING_TOS_ACCEPTANCE", + "OTHER" + ], + "enumDescriptions": [ + "Not used.", + "Entitlement was manually suspended by the Reseller.", + "Trial ended.", + "Entitlement renewal was canceled.", + "Entitlement was automatically suspended on creation for pending ToS acceptance on customer.", + "Other reasons (internal reasons, abuse, etc.)." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudChannelV1EntitlementEvent": { "description": "Represents Pub/Sub message content describing entitlement update.", "id": "GoogleCloudChannelV1EntitlementEvent", @@ -2830,6 +3233,7 @@ "type": "object" }, "GoogleCloudChannelV1FetchReportResultsRequest": { + "deprecated": true, "description": "Request message for CloudChannelReportsService.FetchReportResults.", "id": "GoogleCloudChannelV1FetchReportResultsRequest", "properties": { @@ -2841,11 +3245,19 @@ "pageToken": { "description": "Optional. A token that specifies a page of results beyond the first page. Obtained through FetchReportResultsResponse.next_page_token of the previous CloudChannelReportsService.FetchReportResults call.", "type": "string" + }, + "partitionKeys": { + "description": "Optional. List of keys specifying which report partitions to return. If empty, returns all partitions.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, "GoogleCloudChannelV1FetchReportResultsResponse": { + "deprecated": true, "description": "Response message for CloudChannelReportsService.FetchReportResults. Contains a tabular representation of the report results.", "id": "GoogleCloudChannelV1FetchReportResultsResponse", "properties": { @@ -2970,6 +3382,24 @@ }, "type": "object" }, + "GoogleCloudChannelV1ListEntitlementChangesResponse": { + "description": "Response message for CloudChannelService.ListEntitlementChanges", + "id": "GoogleCloudChannelV1ListEntitlementChangesResponse", + "properties": { + "entitlementChanges": { + "description": "The list of entitlement changes.", + "items": { + "$ref": "GoogleCloudChannelV1EntitlementChange" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to list the next page of results.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudChannelV1ListEntitlementsResponse": { "description": "Response message for CloudChannelService.ListEntitlements.", "id": "GoogleCloudChannelV1ListEntitlementsResponse", @@ -3061,6 +3491,7 @@ "type": "object" }, "GoogleCloudChannelV1ListReportsResponse": { + "deprecated": true, "description": "Response message for CloudChannelReportsService.ListReports.", "id": "GoogleCloudChannelV1ListReportsResponse", "properties": { @@ -3078,6 +3509,42 @@ }, "type": "object" }, + "GoogleCloudChannelV1ListSkuGroupBillableSkusResponse": { + "description": "Response message for ListSkuGroupBillableSkus.", + "id": "GoogleCloudChannelV1ListSkuGroupBillableSkusResponse", + "properties": { + "billableSkus": { + "description": "The list of billable SKUs in the requested SKU group.", + "items": { + "$ref": "GoogleCloudChannelV1BillableSku" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve the next page of results. Pass to ListSkuGroupBillableSkus.page_token to obtain that page.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudChannelV1ListSkuGroupsResponse": { + "description": "Response message for ListSkuGroups.", + "id": "GoogleCloudChannelV1ListSkuGroupsResponse", + "properties": { + "nextPageToken": { + "description": "A token to retrieve the next page of results. Pass to ListSkuGroups.page_token to obtain that page.", + "type": "string" + }, + "skuGroups": { + "description": "The list of SKU groups requested.", + "items": { + "$ref": "GoogleCloudChannelV1SkuGroup" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudChannelV1ListSkusResponse": { "description": "Response message for ListSkus.", "id": "GoogleCloudChannelV1ListSkusResponse", @@ -3122,6 +3589,10 @@ "description": "Request message for CloudChannelService.ListTransferableOffers", "id": "GoogleCloudChannelV1ListTransferableOffersRequest", "properties": { + "billingAccount": { + "description": "Optional. The Billing Account to look up Offers for. Format: accounts/{account_id}/billingAccounts/{billing_account_id}. This field is only relevant for multi-currency accounts. It should be left empty for single currency accounts.", + "type": "string" + }, "cloudIdentityId": { "description": "Customer's Cloud Identity ID", "type": "string" @@ -3412,13 +3883,15 @@ "PARAMETER_TYPE_UNSPECIFIED", "INT64", "STRING", - "DOUBLE" + "DOUBLE", + "BOOLEAN" ], "enumDescriptions": [ "Not used.", "Int64 type.", "String type.", - "Double type." + "Double type.", + "Boolean type." ], "type": "string" } @@ -3469,7 +3942,7 @@ "id": "GoogleCloudChannelV1Plan", "properties": { "billingAccount": { - "description": "Reseller Billing account to charge after an offer transaction. Only present for Google Cloud Platform offers.", + "description": "Reseller Billing account to charge after an offer transaction. Only present for Google Cloud offers.", "type": "string" }, "paymentCycle": { @@ -3575,8 +4048,8 @@ "GB (used for storage SKUs).", "Active licensed users(for Voice SKUs).", "Voice usage.", - "For IaaS SKUs like Google Cloud Platform, monetization is based on usage accrued on your billing account irrespective of the type of monetizable resource. This enum represents an aggregated resource/container for all usage SKUs on a billing account. Currently, only applicable to Google Cloud Platform.", - "For Google Cloud Platform subscriptions like Anthos or SAP." + "For IaaS SKUs like Google Cloud, monetization is based on usage accrued on your billing account irrespective of the type of monetizable resource. This enum represents an aggregated resource/container for all usage SKUs on a billing account. Currently, only applicable to Google Cloud.", + "For Google Cloud subscriptions like Anthos or SAP." ], "type": "string" } @@ -3692,7 +4165,7 @@ "type": "string" }, "provisioningId": { - "description": "Output only. Provisioning ID of the entitlement. For Google Workspace, this is the underlying Subscription ID. For Google Cloud Platform, this is the Billing Account ID of the billing subaccount.\"", + "description": "Output only. Provisioning ID of the entitlement. For Google Workspace, this is the underlying Subscription ID. For Google Cloud, this is the Billing Account ID of the billing subaccount.", "readOnly": true, "type": "string" }, @@ -3726,6 +4199,20 @@ }, "type": "object" }, + "GoogleCloudChannelV1QueryEligibleBillingAccountsResponse": { + "description": "Response message for QueryEligibleBillingAccounts.", + "id": "GoogleCloudChannelV1QueryEligibleBillingAccountsResponse", + "properties": { + "skuPurchaseGroups": { + "description": "List of SKU purchase groups where each group represents a set of SKUs that must be purchased using the same billing account. Each SKU from [QueryEligibleBillingAccountsRequest.skus] will appear in exactly one SKU group.", + "items": { + "$ref": "GoogleCloudChannelV1SkuPurchaseGroup" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudChannelV1RegisterSubscriberRequest": { "description": "Request Message for RegisterSubscriber.", "id": "GoogleCloudChannelV1RegisterSubscriberRequest", @@ -3788,7 +4275,8 @@ "type": "object" }, "GoogleCloudChannelV1Report": { - "description": "The ID and description of a report that was used to generate report data. For example, \"GCP Daily Spend\", \"Google Workspace License Activity\", etc.", + "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": { "columns": { @@ -3814,6 +4302,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": { @@ -3829,6 +4318,7 @@ "type": "object" }, "GoogleCloudChannelV1ReportResultsMetadata": { + "deprecated": true, "description": "The features describing the data. Returned by CloudChannelReportsService.RunReportJob and CloudChannelReportsService.FetchReportResults.", "id": "GoogleCloudChannelV1ReportResultsMetadata", "properties": { @@ -3853,6 +4343,7 @@ "type": "object" }, "GoogleCloudChannelV1ReportStatus": { + "deprecated": true, "description": "Status of a report generation process.", "id": "GoogleCloudChannelV1ReportStatus", "properties": { @@ -3888,6 +4379,7 @@ "type": "object" }, "GoogleCloudChannelV1ReportValue": { + "deprecated": true, "description": "A single report value.", "id": "GoogleCloudChannelV1ReportValue", "properties": { @@ -3951,7 +4443,8 @@ }, "channelPartnerGranularity": { "$ref": "GoogleCloudChannelV1RepricingConfigChannelPartnerGranularity", - "description": "Applies the repricing configuration at the channel partner level. This is the only supported value for ChannelPartnerRepricingConfig." + "deprecated": true, + "description": "Applies the repricing configuration at the channel partner level. Only ChannelPartnerRepricingConfig supports this value. Deprecated: This is no longer supported. Use RepricingConfig.entitlement_granularity instead." }, "conditionalOverrides": { "description": "The conditional overrides to apply for this configuration. If you list multiple overrides, only the first valid override is used. If you don't list any overrides, the API uses the normal adjustment and rebilling basis.", @@ -3966,7 +4459,7 @@ }, "entitlementGranularity": { "$ref": "GoogleCloudChannelV1RepricingConfigEntitlementGranularity", - "description": "Applies the repricing configuration at the entitlement level. This is the only supported value for CustomerRepricingConfig." + "description": "Applies the repricing configuration at the entitlement level. Note: If a ChannelPartnerRepricingConfig using RepricingConfig.EntitlementGranularity becomes effective, then no existing or future RepricingConfig.ChannelPartnerGranularity will apply to the RepricingConfig.EntitlementGranularity.entitlement. This is the recommended value for both CustomerRepricingConfig and ChannelPartnerRepricingConfig." }, "rebillingBasis": { "description": "Required. The RebillingBasis to use for this bill. Specifies the relative cost based on repricing costs you will apply.", @@ -3986,7 +4479,8 @@ "type": "object" }, "GoogleCloudChannelV1RepricingConfigChannelPartnerGranularity": { - "description": "Applies the repricing configuration at the channel partner level. The channel partner value is derived from the resource name. Takes an empty json object.", + "deprecated": true, + "description": "Applies the repricing configuration at the channel partner level. The channel partner value is derived from the resource name. Takes an empty json object. Deprecated: This is no longer supported. Use RepricingConfig.EntitlementGranularity instead.", "id": "GoogleCloudChannelV1RepricingConfigChannelPartnerGranularity", "properties": {}, "type": "object" @@ -4003,9 +4497,14 @@ "type": "object" }, "GoogleCloudChannelV1Row": { + "deprecated": true, "description": "A row of report values.", "id": "GoogleCloudChannelV1Row", "properties": { + "partitionKey": { + "description": "The key for the partition this row belongs to. This field is empty if the report is not partitioned.", + "type": "string" + }, "values": { "description": "The list of values in the row.", "items": { @@ -4017,6 +4516,7 @@ "type": "object" }, "GoogleCloudChannelV1RunReportJobRequest": { + "deprecated": true, "description": "Request message for CloudChannelReportsService.RunReportJob.", "id": "GoogleCloudChannelV1RunReportJobRequest", "properties": { @@ -4036,6 +4536,7 @@ "type": "object" }, "GoogleCloudChannelV1RunReportJobResponse": { + "deprecated": true, "description": "Response message for CloudChannelReportsService.RunReportJob.", "id": "GoogleCloudChannelV1RunReportJobResponse", "properties": { @@ -4069,6 +4570,21 @@ }, "type": "object" }, + "GoogleCloudChannelV1SkuGroup": { + "description": "Represents the SKU group information.", + "id": "GoogleCloudChannelV1SkuGroup", + "properties": { + "displayName": { + "description": "Unique human readable identifier for the SKU group.", + "type": "string" + }, + "name": { + "description": "Resource name of SKU group. Format: accounts/{account}/skuGroups/{sku_group}. Example: \"accounts/C01234/skuGroups/3d50fd57-3157-4577-a5a9-a219b8490041\".", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudChannelV1SkuGroupCondition": { "description": "A condition that applies the override if a line item SKU is found in the SKU group.", "id": "GoogleCloudChannelV1SkuGroupCondition", @@ -4080,6 +4596,27 @@ }, "type": "object" }, + "GoogleCloudChannelV1SkuPurchaseGroup": { + "description": "Represents a set of SKUs that must be purchased using the same billing account.", + "id": "GoogleCloudChannelV1SkuPurchaseGroup", + "properties": { + "billingAccountPurchaseInfos": { + "description": "List of billing accounts that are eligible to purhcase these SKUs.", + "items": { + "$ref": "GoogleCloudChannelV1BillingAccountPurchaseInfo" + }, + "type": "array" + }, + "skus": { + "description": "Resource names of the SKUs included in this group. Format: products/{product_id}/skus/{sku_id}.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudChannelV1StartPaidServiceRequest": { "description": "Request message for CloudChannelService.StartPaidService.", "id": "GoogleCloudChannelV1StartPaidServiceRequest", @@ -4131,13 +4668,15 @@ "REASON_UNSPECIFIED", "PENDING_TOS_ACCEPTANCE", "SKU_NOT_ELIGIBLE", - "SKU_SUSPENDED" + "SKU_SUSPENDED", + "CHANNEL_PARTNER_NOT_AUTHORIZED_FOR_SKU" ], "enumDescriptions": [ "Not used.", "Reseller needs to accept TOS before transferring the SKU.", "Reseller not eligible to sell the SKU.", - "SKU subscription is suspended" + "SKU subscription is suspended", + "The reseller is not authorized to transact on this Product. See https://support.google.com/channelservices/answer/9759265" ], "type": "string" }, @@ -4356,6 +4895,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": { @@ -4441,16 +4981,17 @@ "type": "object" }, "GoogleCloudChannelV1alpha1DateRange": { + "deprecated": true, "description": "A representation of usage or invoice date ranges.", "id": "GoogleCloudChannelV1alpha1DateRange", "properties": { "invoiceEndDate": { "$ref": "GoogleTypeDate", - "description": "The latest invoice date (exclusive). If your product uses monthly invoices, and this value is not the beginning of a month, this will adjust the date to the first day of the following month." + "description": "The latest invoice date (inclusive). If this value is not the last day of a month, this will move it forward to the last day of the given month." }, "invoiceStartDate": { "$ref": "GoogleTypeDate", - "description": "The earliest invoice date (inclusive). If your product uses monthly invoices, and this value is not the beginning of a month, this will adjust the date to the first day of the given month." + "description": "The earliest invoice date (inclusive). If this value is not the first day of a month, this will move it back to the first day of the given month." }, "usageEndDateTime": { "$ref": "GoogleTypeDateTime", @@ -4468,6 +5009,7 @@ "id": "GoogleCloudChannelV1alpha1Entitlement", "properties": { "assignedUnits": { + "deprecated": true, "description": "The current number of users that are assigned a license for the product defined in provisioned_service.skuId. Read-only. Deprecated: Use `parameters` instead.", "format": "int32", "type": "integer" @@ -4476,7 +5018,12 @@ "$ref": "GoogleCloudChannelV1alpha1AssociationInfo", "description": "Association information to other entitlements." }, + "billingAccount": { + "description": "Optional. The billing account resource name that is used to pay for this entitlement.", + "type": "string" + }, "channelPartnerId": { + "deprecated": true, "description": "Cloud Identity ID of a channel partner who will be the direct reseller for the customer's order. This field is generally used in 2-tier ordering, where the order is placed by a top-level distributor on behalf of their channel partner or reseller. Required for distributors. Deprecated: `channel_partner_id` has been moved to the Customer.", "type": "string" }, @@ -4491,6 +5038,7 @@ "type": "string" }, "maxUnits": { + "deprecated": true, "description": "Maximum number of units for a non commitment-based Offer, such as Flexible, Trial or Free entitlements. For commitment-based entitlements, this is a read-only field, which only the internal support team can update. Deprecated: Use `parameters` instead.", "format": "int32", "type": "integer" @@ -4501,6 +5049,7 @@ "type": "string" }, "numUnits": { + "deprecated": true, "description": "Number of units for a commitment-based Offer. For example, for seat-based Offers, this would be the number of seats; for license-based Offers, this would be the number of licenses. Required for creating commitment-based Offers. Deprecated: Use `parameters` instead.", "format": "int32", "type": "integer" @@ -4510,7 +5059,7 @@ "type": "string" }, "parameters": { - "description": "Extended entitlement parameters. When creating an entitlement, valid parameter names and values are defined in the Offer.parameter_definitions. For Google Workspace, the following Parameters may be accepted as input: - max_units: The maximum assignable units for a flexible offer OR - num_units: The total commitment for commitment-based offers The response may additionally include the following output-only Parameters: - assigned_units: The number of licenses assigned to users. For GCP billing accounts, the following Parameter may be accepted as input: - display_name: The display name of the billing account.", + "description": "Extended entitlement parameters. When creating an entitlement, valid parameter names and values are defined in the Offer.parameter_definitions. For Google Workspace, the following Parameters may be accepted as input: - max_units: The maximum assignable units for a flexible offer OR - num_units: The total commitment for commitment-based offers The response may additionally include the following output-only Parameters: - assigned_units: The number of licenses assigned to users. For Google Cloud billing subaccounts, the following Parameter may be accepted as input: - display_name: The display name of the billing subaccount.", "items": { "$ref": "GoogleCloudChannelV1alpha1Parameter" }, @@ -4531,6 +5080,14 @@ "PENDING", "SUSPENDED" ], + "enumDeprecated": [ + false, + false, + true, + true, + true, + false + ], "enumDescriptions": [ "Not used.", "The entitlement is currently active.", @@ -4732,7 +5289,7 @@ "type": "string" }, "provisioningId": { - "description": "Output only. Provisioning ID of the entitlement. For Google Workspace, this is the underlying Subscription ID. For Google Cloud Platform, this is the Billing Account ID of the billing subaccount.\"", + "description": "Output only. Provisioning ID of the entitlement. For Google Workspace, this is the underlying Subscription ID. For Google Cloud, this is the Billing Account ID of the billing subaccount.", "readOnly": true, "type": "string" }, @@ -4749,6 +5306,7 @@ "id": "GoogleCloudChannelV1alpha1RenewalSettings", "properties": { "disableCommitment": { + "deprecated": true, "description": "If true, disables commitment-based offer on renewal and switches to flexible or pay as you go. Deprecated: Use `payment_plan` instead.", "type": "boolean" }, @@ -4761,6 +5319,7 @@ "description": "Describes how frequently the reseller will be billed, such as once per month." }, "paymentOption": { + "deprecated": true, "description": "Set if enable_renewal=true. Deprecated: Use `payment_cycle` instead.", "enum": [ "PAYMENT_OPTION_UNSPECIFIED", @@ -4797,12 +5356,18 @@ "resizeUnitCount": { "description": "If true and enable_renewal = true, the unit (for example seats or licenses) will be set to the number of active units at renewal time.", "type": "boolean" + }, + "scheduledRenewalOffer": { + "description": "Output only. The offer resource name that the entitlement will renew on at the end date. Takes the form: accounts/{account_id}/offers/{offer_id}.", + "readOnly": true, + "type": "string" } }, "type": "object" }, "GoogleCloudChannelV1alpha1Report": { - "description": "The ID and description of a report that was used to generate report data. For example, \"GCP Daily Spend\", \"Google Workspace License Activity\", etc.", + "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": { "columns": { @@ -4828,6 +5393,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": { @@ -4843,6 +5409,7 @@ "type": "object" }, "GoogleCloudChannelV1alpha1ReportResultsMetadata": { + "deprecated": true, "description": "The features describing the data. Returned by CloudChannelReportsService.RunReportJob and CloudChannelReportsService.FetchReportResults.", "id": "GoogleCloudChannelV1alpha1ReportResultsMetadata", "properties": { @@ -4867,6 +5434,7 @@ "type": "object" }, "GoogleCloudChannelV1alpha1ReportStatus": { + "deprecated": true, "description": "Status of a report generation process.", "id": "GoogleCloudChannelV1alpha1ReportStatus", "properties": { @@ -4902,6 +5470,7 @@ "type": "object" }, "GoogleCloudChannelV1alpha1RunReportJobResponse": { + "deprecated": true, "description": "Response message for CloudChannelReportsService.RunReportJob.", "id": "GoogleCloudChannelV1alpha1RunReportJobResponse", "properties": { @@ -5051,7 +5620,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/etc/api/clouddeploy/v1/clouddeploy-api.json b/etc/api/clouddeploy/v1/clouddeploy-api.json index 4b68d59b40..e717ed2bcb 100644 --- a/etc/api/clouddeploy/v1/clouddeploy-api.json +++ b/etc/api/clouddeploy/v1/clouddeploy-api.json @@ -202,6 +202,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": { @@ -219,14 +490,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" }, @@ -272,14 +543,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" }, @@ -307,7 +578,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, @@ -384,7 +655,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, @@ -414,19 +685,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" @@ -448,6 +719,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "rollbackTarget": { + "description": "Creates a `Rollout` to roll back the specified target.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}:rollbackTarget", + "httpMethod": "POST", + "id": "clouddeploy.projects.locations.deliveryPipelines.rollbackTarget", + "parameterOrder": [ + "name" + ], + "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}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:rollbackTarget", + "request": { + "$ref": "RollbackTargetRequest" + }, + "response": { + "$ref": "RollbackTargetResponse" + }, + "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}/deliveryPipelines/{deliveryPipelinesId}:setIamPolicy", @@ -506,6 +805,321 @@ } }, "resources": { + "automationRuns": { + "methods": { + "cancel": { + "description": "Cancels an AutomationRun. The `state` of the `AutomationRun` after cancelling is `CANCELLED`. `CancelAutomationRun` can be called on AutomationRun in the state `IN_PROGRESS` and `PENDING`; AutomationRun in a different state returns an `FAILED_PRECONDITION` error.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/automationRuns/{automationRunsId}:cancel", + "httpMethod": "POST", + "id": "clouddeploy.projects.locations.deliveryPipelines.automationRuns.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "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, + "type": "string" + } + }, + "path": "v1/{+name}:cancel", + "request": { + "$ref": "CancelAutomationRunRequest" + }, + "response": { + "$ref": "CancelAutomationRunResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single AutomationRun.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/automationRuns/{automationRunsId}", + "httpMethod": "GET", + "id": "clouddeploy.projects.locations.deliveryPipelines.automationRuns.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "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, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "AutomationRun" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists AutomationRuns in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/automationRuns", + "httpMethod": "GET", + "id": "clouddeploy.projects.locations.deliveryPipelines.automationRuns.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Filter automationRuns to be returned. All fields can be used in the filter.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Field to sort by.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of automationRuns to return. The service may return fewer than this value. If unspecified, at most 50 automationRuns will be returned. The maximum value is 1000; values above 1000 will be set to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListAutomationRuns` 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 `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, + "type": "string" + } + }, + "path": "v1/{+parent}/automationRuns", + "response": { + "$ref": "ListAutomationRunsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "automations": { + "methods": { + "create": { + "description": "Creates a new Automation in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/automations", + "httpMethod": "POST", + "id": "clouddeploy.projects.locations.deliveryPipelines.automations.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "automationId": { + "description": "Required. ID of the `Automation`.", + "location": "query", + "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}`.", + "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 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}/automations", + "request": { + "$ref": "Automation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single Automation resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/automations/{automationsId}", + "httpMethod": "DELETE", + "id": "clouddeploy.projects.locations.deliveryPipelines.automations.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "allowMissing": { + "description": "Optional. If set to true, then deleting an already deleted or non-existing `Automation` will succeed.", + "location": "query", + "type": "boolean" + }, + "etag": { + "description": "Optional. The weak etag of the request. 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 `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 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, validate the request and verify whether the resource exists, but do not actually post it.", + "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 Automation.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/automations/{automationsId}", + "httpMethod": "GET", + "id": "clouddeploy.projects.locations.deliveryPipelines.automations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "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, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Automation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Automations in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/automations", + "httpMethod": "GET", + "id": "clouddeploy.projects.locations.deliveryPipelines.automations.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Filter automations to be returned. All fields can be used in the filter.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Field to sort by.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of automations to return. The service may return fewer than this value. If unspecified, at most 50 automations will be returned. The maximum value is 1000; values above 1000 will be set to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListAutomations` 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 `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, + "type": "string" + } + }, + "path": "v1/{+parent}/automations", + "response": { + "$ref": "ListAutomationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single Automation resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/automations/{automationsId}", + "httpMethod": "PATCH", + "id": "clouddeploy.projects.locations.deliveryPipelines.automations.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "allowMissing": { + "description": "Optional. If set to true, updating a `Automation` that does not exist will result in the creation of a new `Automation`.", + "location": "query", + "type": "boolean" + }, + "name": { + "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 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'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": "Automation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "releases": { "methods": { "abandon": { @@ -518,7 +1132,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, @@ -546,7 +1160,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, @@ -558,7 +1172,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" }, @@ -589,7 +1203,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, @@ -654,6 +1268,34 @@ "resources": { "rollouts": { "methods": { + "advance": { + "description": "Advances a Rollout in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/releases/{releasesId}/rollouts/{rolloutsId}:advance", + "httpMethod": "POST", + "id": "clouddeploy.projects.locations.deliveryPipelines.releases.rollouts.advance", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "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, + "type": "string" + } + }, + "path": "v1/{+name}:advance", + "request": { + "$ref": "AdvanceRolloutRequest" + }, + "response": { + "$ref": "AdvanceRolloutResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "approve": { "description": "Approves a Rollout.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/releases/{releasesId}/rollouts/{rolloutsId}:approve", @@ -664,7 +1306,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, @@ -682,6 +1324,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "cancel": { + "description": "Cancels a Rollout in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/releases/{releasesId}/rollouts/{rolloutsId}:cancel", + "httpMethod": "POST", + "id": "clouddeploy.projects.locations.deliveryPipelines.releases.rollouts.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "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, + "type": "string" + } + }, + "path": "v1/{+name}:cancel", + "request": { + "$ref": "CancelRolloutRequest" + }, + "response": { + "$ref": "CancelRolloutResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a new Rollout in a given project and location.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/releases/{releasesId}/rollouts", @@ -692,14 +1362,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" }, @@ -708,6 +1378,11 @@ "location": "query", "type": "string" }, + "startingPhaseId": { + "description": "Optional. The starting phase ID for the `Rollout`. If empty the `Rollout` will start at the first phase.", + "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", @@ -735,7 +1410,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, @@ -750,6 +1425,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "ignoreJob": { + "description": "Ignores the specified Job in a Rollout.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/releases/{releasesId}/rollouts/{rolloutsId}:ignoreJob", + "httpMethod": "POST", + "id": "clouddeploy.projects.locations.deliveryPipelines.releases.rollouts.ignoreJob", + "parameterOrder": [ + "rollout" + ], + "parameters": { + "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, + "type": "string" + } + }, + "path": "v1/{+rollout}:ignoreJob", + "request": { + "$ref": "IgnoreJobRequest" + }, + "response": { + "$ref": "IgnoreJobResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists Rollouts in a given project and location.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/releases/{releasesId}/rollouts", @@ -806,7 +1509,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, @@ -838,7 +1541,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, @@ -898,6 +1601,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "terminate": { + "description": "Terminates a Job Run in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/releases/{releasesId}/rollouts/{rolloutsId}/jobRuns/{jobRunsId}:terminate", + "httpMethod": "POST", + "id": "clouddeploy.projects.locations.deliveryPipelines.releases.rollouts.jobRuns.terminate", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "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, + "type": "string" + } + }, + "path": "v1/{+name}:terminate", + "request": { + "$ref": "TerminateJobRunRequest" + }, + "response": { + "$ref": "TerminateJobRunResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } } @@ -988,7 +1719,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "clouddeploy.projects.locations.operations.list", @@ -1042,14 +1773,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" }, @@ -1085,7 +1816,7 @@ ], "parameters": { "allowMissing": { - "description": "Optional. If set to true, then deleting an already deleted or non-existing DeliveryPipeline will succeed.", + "description": "Optional. If set to true, then deleting an already deleted or non-existing `Target` will succeed.", "location": "query", "type": "boolean" }, @@ -1095,14 +1826,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" }, @@ -1130,7 +1861,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, @@ -1207,7 +1938,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, @@ -1237,19 +1968,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" @@ -1334,7 +2065,7 @@ } } }, - "revision": "20230105", + "revision": "20240221", "rootUrl": "https://clouddeploy.googleapis.com/", "schemas": { "AbandonReleaseRequest": { @@ -1349,6 +2080,102 @@ "properties": {}, "type": "object" }, + "AdvanceChildRolloutJob": { + "description": "An advanceChildRollout Job.", + "id": "AdvanceChildRolloutJob", + "properties": {}, + "type": "object" + }, + "AdvanceChildRolloutJobRun": { + "description": "AdvanceChildRolloutJobRun contains information specific to a advanceChildRollout `JobRun`.", + "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}`.", + "readOnly": true, + "type": "string" + }, + "rolloutPhaseId": { + "description": "Output only. the ID of the ChildRollout's Phase.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "AdvanceRolloutOperation": { + "description": "Contains the information of an automated advance-rollout operation.", + "id": "AdvanceRolloutOperation", + "properties": { + "destinationPhase": { + "description": "Output only. The phase the rollout will be advanced to.", + "readOnly": true, + "type": "string" + }, + "rollout": { + "description": "Output only. The name of the rollout that initiates the `AutomationRun`.", + "readOnly": true, + "type": "string" + }, + "sourcePhase": { + "description": "Output only. The phase of a deployment that initiated the operation.", + "readOnly": true, + "type": "string" + }, + "wait": { + "description": "Output only. How long the operation will be paused.", + "format": "google-duration", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "AdvanceRolloutRequest": { + "description": "The request object used by `AdvanceRollout`.", + "id": "AdvanceRolloutRequest", + "properties": { + "phaseId": { + "description": "Required. The phase ID to advance the `Rollout` to.", + "type": "string" + } + }, + "type": "object" + }, + "AdvanceRolloutResponse": { + "description": "The response object from `AdvanceRollout`.", + "id": "AdvanceRolloutResponse", + "properties": {}, + "type": "object" + }, + "AdvanceRolloutRule": { + "description": "The `AdvanceRollout` automation rule will automatically advance a successful Rollout to the next phase.", + "id": "AdvanceRolloutRule", + "properties": { + "condition": { + "$ref": "AutomationRuleCondition", + "description": "Output only. Information around the state of the Automation rule.", + "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}`.", + "type": "string" + }, + "sourcePhases": { + "description": "Optional. Proceeds only after phase name matched any one in the list. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "wait": { + "description": "Optional. How long to wait after a rollout is finished.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "AnthosCluster": { "description": "Information specifying an Anthos Cluster.", "id": "AnthosCluster", @@ -1425,6 +2252,386 @@ }, "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 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.", + "type": "object" + }, + "createTime": { + "description": "Output only. Time at which the automation was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Description of the `Automation`. Max length is 255 characters.", + "type": "string" + }, + "etag": { + "description": "Optional. The weak etag of the `Automation` resource. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", + "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 <= 63 characters.", + "type": "object" + }, + "name": { + "description": "Output only. Name of the `Automation`. Format is `projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automations/{automation}`.", + "readOnly": true, + "type": "string" + }, + "rules": { + "description": "Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution.", + "items": { + "$ref": "AutomationRule" + }, + "type": "array" + }, + "selector": { + "$ref": "AutomationResourceSelector", + "description": "Required. Selected resources to which the automation will be applied." + }, + "serviceAccount": { + "description": "Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.", + "type": "string" + }, + "suspended": { + "description": "Optional. When Suspended, automation is deactivated from execution.", + "type": "boolean" + }, + "uid": { + "description": "Output only. Unique identifier of the `Automation`.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Time at which the automation was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "AutomationEvent": { + "description": "Payload proto for \"clouddeploy.googleapis.com/automation\" Platform Log event that describes the Automation related events.", + "id": "AutomationEvent", + "properties": { + "automation": { + "description": "The name of the `AutomationRun`.", + "type": "string" + }, + "message": { + "description": "Debug message for when there is an update on the AutomationRun. Provides further details about the resource creation or state change.", + "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": [ + "TYPE_UNSPECIFIED", + "TYPE_PUBSUB_NOTIFICATION_FAILURE", + "TYPE_RESOURCE_STATE_CHANGE", + "TYPE_PROCESS_ABORTED", + "TYPE_RESTRICTION_VIOLATED", + "TYPE_RESOURCE_DELETED", + "TYPE_ROLLOUT_UPDATE", + "TYPE_DEPLOY_POLICY_EVALUATION", + "TYPE_RENDER_STATUES_CHANGE" + ], + "enumDeprecated": [ + false, + 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.", + "Deploy Policy evaluation.", + "Deprecated: This field is never used. Use release_render log type instead." + ], + "type": "string" + } + }, + "type": "object" + }, + "AutomationResourceSelector": { + "description": "AutomationResourceSelector contains the information to select the resources to which an Automation is going to be applied.", + "id": "AutomationResourceSelector", + "properties": { + "targets": { + "description": "Contains attributes about a target.", + "items": { + "$ref": "TargetAttribute" + }, + "type": "array" + } + }, + "type": "object" + }, + "AutomationRolloutMetadata": { + "description": "AutomationRolloutMetadata contains Automation-related actions that were performed on a rollout.", + "id": "AutomationRolloutMetadata", + "properties": { + "advanceAutomationRuns": { + "description": "Output only. The IDs of the AutomationRuns initiated by an advance rollout rule.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "currentRepairAutomationRun": { + "description": "Output only. The current AutomationRun repairing the rollout.", + "readOnly": true, + "type": "string" + }, + "promoteAutomationRun": { + "description": "Output only. The ID of the AutomationRun initiated by a promote release rule.", + "readOnly": true, + "type": "string" + }, + "repairAutomationRuns": { + "description": "Output only. The IDs of the AutomationRuns initiated by a repair rollout rule.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "AutomationRule": { + "description": "`AutomationRule` defines the automation activities.", + "id": "AutomationRule", + "properties": { + "advanceRolloutRule": { + "$ref": "AdvanceRolloutRule", + "description": "Optional. The `AdvanceRolloutRule` will automatically advance a successful Rollout." + }, + "promoteReleaseRule": { + "$ref": "PromoteReleaseRule", + "description": "Optional. `PromoteReleaseRule` will automatically promote a release from the current target to a specified target." + }, + "repairRolloutRule": { + "$ref": "RepairRolloutRule", + "description": "Optional. The `RepairRolloutRule` will automatically repair a failed rollout." + } + }, + "type": "object" + }, + "AutomationRuleCondition": { + "description": "`AutomationRuleCondition` contains conditions relevant to an `Automation` rule.", + "id": "AutomationRuleCondition", + "properties": { + "targetsPresentCondition": { + "$ref": "TargetsPresentCondition", + "description": "Optional. Details around targets enumerated in the rule." + } + }, + "type": "object" + }, + "AutomationRun": { + "description": "An `AutomationRun` resource in the Cloud Deploy API. An `AutomationRun` represents an execution instance of an automation rule.", + "id": "AutomationRun", + "properties": { + "advanceRolloutOperation": { + "$ref": "AdvanceRolloutOperation", + "description": "Output only. Advances a rollout to the next phase.", + "readOnly": true + }, + "automationId": { + "description": "Output only. The ID of the automation that initiated the operation.", + "readOnly": true, + "type": "string" + }, + "automationSnapshot": { + "$ref": "Automation", + "description": "Output only. Snapshot of the Automation taken at AutomationRun creation time.", + "readOnly": true + }, + "createTime": { + "description": "Output only. Time at which the `AutomationRun` was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "etag": { + "description": "Output only. The weak etag of the `AutomationRun` resource. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", + "readOnly": true, + "type": "string" + }, + "expireTime": { + "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}`.", + "readOnly": true, + "type": "string" + }, + "promoteReleaseOperation": { + "$ref": "PromoteReleaseOperation", + "description": "Output only. Promotes a release to a specified 'Target'.", + "readOnly": true + }, + "repairRolloutOperation": { + "$ref": "RepairRolloutOperation", + "description": "Output only. Repairs a failed 'Rollout'.", + "readOnly": true + }, + "ruleId": { + "description": "Output only. The ID of the automation rule that initiated the operation.", + "readOnly": true, + "type": "string" + }, + "serviceAccount": { + "description": "Output only. Email address of the user-managed IAM service account that performs the operations against Cloud Deploy resources.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. Current state of the `AutomationRun`.", + "enum": [ + "STATE_UNSPECIFIED", + "SUCCEEDED", + "CANCELLED", + "FAILED", + "IN_PROGRESS", + "PENDING", + "ABORTED" + ], + "enumDescriptions": [ + "The `AutomationRun` has an unspecified state.", + "The `AutomationRun` has succeeded.", + "The `AutomationRun` was cancelled.", + "The `AutomationRun` has failed.", + "The `AutomationRun` is in progress.", + "The `AutomationRun` is pending.", + "The `AutomationRun` was aborted." + ], + "readOnly": true, + "type": "string" + }, + "stateDescription": { + "description": "Output only. Explains the current state of the `AutomationRun`. Present only when an explanation is needed.", + "readOnly": true, + "type": "string" + }, + "targetId": { + "description": "Output only. The ID of the target that represents the promotion stage that initiates the `AutomationRun`. The value of this field is the last segment of a target name.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Time at which the automationRun was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "waitUntilTime": { + "description": "Output only. Earliest time the `AutomationRun` will attempt to resume. Wait-time is configured by `wait` in automation rule.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "AutomationRunEvent": { + "description": "Payload proto for \"clouddeploy.googleapis.com/automation_run\" Platform Log event that describes the AutomationRun related events.", + "id": "AutomationRunEvent", + "properties": { + "automationId": { + "description": "Identifier of the `Automation`.", + "type": "string" + }, + "automationRun": { + "description": "The name of the `AutomationRun`.", + "type": "string" + }, + "destinationTargetId": { + "description": "ID of the `Target` to which the `AutomationRun` is created.", + "type": "string" + }, + "message": { + "description": "Debug message for when there is an update on the AutomationRun. Provides further details about the resource creation or state change.", + "type": "string" + }, + "pipelineUid": { + "description": "Unique identifier of the `DeliveryPipeline`.", + "type": "string" + }, + "ruleId": { + "description": "Identifier of the `Automation` rule.", + "type": "string" + }, + "type": { + "description": "Type of this notification, e.g. for a Pub/Sub failure.", + "enum": [ + "TYPE_UNSPECIFIED", + "TYPE_PUBSUB_NOTIFICATION_FAILURE", + "TYPE_RESOURCE_STATE_CHANGE", + "TYPE_PROCESS_ABORTED", + "TYPE_RESTRICTION_VIOLATED", + "TYPE_RESOURCE_DELETED", + "TYPE_ROLLOUT_UPDATE", + "TYPE_DEPLOY_POLICY_EVALUATION", + "TYPE_RENDER_STATUES_CHANGE" + ], + "enumDeprecated": [ + false, + 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.", + "Deploy Policy evaluation.", + "Deprecated: This field is never used. Use release_render log type instead." + ], + "type": "string" + } + }, + "type": "object" + }, "Binding": { "description": "Associates `members`, or principals, with a `role`.", "id": "Binding", @@ -1434,14 +2641,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1462,12 +2669,137 @@ }, "type": "object" }, + "Canary": { + "description": "Canary represents the canary deployment strategy.", + "id": "Canary", + "properties": { + "canaryDeployment": { + "$ref": "CanaryDeployment", + "description": "Configures the progressive based deployment for a Target." + }, + "customCanaryDeployment": { + "$ref": "CustomCanaryDeployment", + "description": "Configures the progressive based deployment for a Target, but allows customizing at the phase level where a phase represents each of the percentage deployments." + }, + "runtimeConfig": { + "$ref": "RuntimeConfig", + "description": "Optional. Runtime specific configurations for the deployment strategy. The runtime configuration is used to determine how Cloud Deploy will split traffic to enable a progressive deployment." + } + }, + "type": "object" + }, + "CanaryDeployment": { + "description": "CanaryDeployment represents the canary deployment configuration", + "id": "CanaryDeployment", + "properties": { + "percentages": { + "description": "Required. The percentage based deployments that will occur as a part of a `Rollout`. List is expected in ascending order and each integer n is 0 <= n < 100.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "postdeploy": { + "$ref": "Postdeploy", + "description": "Optional. Configuration for the postdeploy job of the last phase. If this is not configured, there will be no postdeploy job for this phase." + }, + "predeploy": { + "$ref": "Predeploy", + "description": "Optional. Configuration for the predeploy job of the first phase. If this is not configured, there will be no predeploy job for this phase." + }, + "verify": { + "description": "Whether to run verify tests after each percentage deployment.", + "type": "boolean" + } + }, + "type": "object" + }, + "CancelAutomationRunRequest": { + "description": "The request object used by `CancelAutomationRun`.", + "id": "CancelAutomationRunRequest", + "properties": {}, + "type": "object" + }, + "CancelAutomationRunResponse": { + "description": "The response object from `CancelAutomationRun`.", + "id": "CancelAutomationRunResponse", + "properties": {}, + "type": "object" + }, "CancelOperationRequest": { "description": "The request message for Operations.CancelOperation.", "id": "CancelOperationRequest", "properties": {}, "type": "object" }, + "CancelRolloutRequest": { + "description": "The request object used by `CancelRollout`.", + "id": "CancelRolloutRequest", + "properties": {}, + "type": "object" + }, + "CancelRolloutResponse": { + "description": "The response object from `CancelRollout`.", + "id": "CancelRolloutResponse", + "properties": {}, + "type": "object" + }, + "ChildRolloutJobs": { + "description": "ChildRollouts job composition", + "id": "ChildRolloutJobs", + "properties": { + "advanceRolloutJobs": { + "description": "Output only. List of AdvanceChildRolloutJobs", + "items": { + "$ref": "Job" + }, + "readOnly": true, + "type": "array" + }, + "createRolloutJobs": { + "description": "Output only. List of CreateChildRolloutJobs", + "items": { + "$ref": "Job" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "CloudRunConfig": { + "description": "CloudRunConfig contains the Cloud Run runtime configuration.", + "id": "CloudRunConfig", + "properties": { + "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" + }, "CloudRunLocation": { "description": "Information specifying where to deploy a Cloud Run Service.", "id": "CloudRunLocation", @@ -1483,13 +2815,18 @@ "description": "CloudRunMetadata contains information from a Cloud Run deployment.", "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}`.", + "readOnly": true, + "type": "string" + }, "revision": { "description": "Output only. The Cloud Run Revision id associated with a `Rollout`.", "readOnly": true, "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" }, @@ -1504,6 +2841,18 @@ }, "type": "object" }, + "CloudRunRenderMetadata": { + "description": "CloudRunRenderMetadata contains Cloud Run information associated with a `Release` render.", + "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}`.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Config": { "description": "Service-wide configuration.", "id": "Config", @@ -1526,6 +2875,162 @@ }, "type": "object" }, + "CreateChildRolloutJob": { + "description": "A createChildRollout Job.", + "id": "CreateChildRolloutJob", + "properties": {}, + "type": "object" + }, + "CreateChildRolloutJobRun": { + "description": "CreateChildRolloutJobRun contains information specific to a createChildRollout `JobRun`.", + "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}`.", + "readOnly": true, + "type": "string" + }, + "rolloutPhaseId": { + "description": "Output only. The ID of the childRollout Phase initiated by this JobRun.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "CustomCanaryDeployment": { + "description": "CustomCanaryDeployment represents the custom canary deployment configuration.", + "id": "CustomCanaryDeployment", + "properties": { + "phaseConfigs": { + "description": "Required. Configuration for each phase in the canary deployment in the order executed.", + "items": { + "$ref": "PhaseConfig" + }, + "type": "array" + } + }, + "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", @@ -1564,14 +3069,14 @@ "type": "object" }, "DeliveryPipeline": { - "description": "A `DeliveryPipeline` resource in the Google Cloud Deploy API. A `DeliveryPipeline` defines a pipeline through which a Skaffold configuration can progress.", + "description": "A `DeliveryPipeline` resource in the Cloud Deploy API. A `DeliveryPipeline` defines a pipeline through which a Skaffold configuration can progress.", "id": "DeliveryPipeline", "properties": { "annotations": { "additionalProperties": { "type": "string" }, - "description": "User annotations. These attributes can only be set and used by the user, and not by Google Cloud Deploy.", + "description": "User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy.", "type": "object" }, "condition": { @@ -1597,11 +3102,11 @@ "additionalProperties": { "type": "string" }, - "description": "Labels are attributes that can be set and used by both the user and by Google 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.", + "description": "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 `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": { @@ -1638,16 +3143,43 @@ "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": [ "TYPE_UNSPECIFIED", "TYPE_PUBSUB_NOTIFICATION_FAILURE", + "TYPE_RESOURCE_STATE_CHANGE", + "TYPE_PROCESS_ABORTED", + "TYPE_RESTRICTION_VIOLATED", + "TYPE_RESOURCE_DELETED", + "TYPE_ROLLOUT_UPDATE", + "TYPE_DEPLOY_POLICY_EVALUATION", "TYPE_RENDER_STATUES_CHANGE" ], + "enumDeprecated": [ + false, + 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.", + "Deploy Policy evaluation.", "Deprecated: This field is never used. Use release_render log type instead." ], "type": "string" @@ -1655,6 +3187,26 @@ }, "type": "object" }, + "DeployArtifact": { + "description": "The artifacts produced by a deploy operation.", + "id": "DeployArtifact", + "properties": { + "artifactUri": { + "description": "Output only. URI of a directory containing the artifacts. All paths are relative to this location.", + "readOnly": true, + "type": "string" + }, + "manifestPaths": { + "description": "Output only. File paths of the manifests applied during the deploy operation relative to the URI.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "DeployJob": { "description": "A deploy Job.", "id": "DeployJob", @@ -1665,8 +3217,13 @@ "description": "DeployJobRun contains information specific to a deploy `JobRun`.", "id": "DeployJobRun", "properties": { + "artifact": { + "$ref": "DeployArtifact", + "description": "Output only. The artifact of a deploy job run, if available.", + "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" }, @@ -1677,14 +3234,18 @@ "CLOUD_BUILD_UNAVAILABLE", "EXECUTION_FAILED", "DEADLINE_EXCEEDED", - "CLOUD_BUILD_REQUEST_FAILED" + "MISSING_RESOURCES_FOR_CANARY", + "CLOUD_BUILD_REQUEST_FAILED", + "DEPLOY_FEATURE_NOT_SUPPORTED" ], "enumDescriptions": [ "No reason for failure is specified.", - "Cloud Build is not available, either because it is not enabled or because Google Cloud Deploy has insufficient permissions. See [Required permission](/deploy/docs/cloud-deploy-service-account#required_permissions).", + "Cloud Build 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 deploy operation did not complete successfully; check Cloud Build logs.", - "The deploy build did not complete within the alloted time.", - "Cloud Build failed to fulfill Google Cloud Deploy's request. See failure_message for additional details." + "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.", + "The deploy operation had a feature configured that is not supported." ], "readOnly": true, "type": "string" @@ -1710,6 +3271,37 @@ "$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" + }, + "DeployParameters": { + "description": "DeployParameters contains deploy parameters information.", + "id": "DeployParameters", + "properties": { + "matchTargetLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Deploy parameters are applied to targets with match labels. If unspecified, deploy parameters are applied to all targets (including child targets of a multi-target).", + "type": "object" + }, + "values": { + "additionalProperties": { + "type": "string" + }, + "description": "Required. Values are deploy parameters in key-value pairs.", + "type": "object" } }, "type": "object" @@ -1720,7 +3312,17 @@ "properties": { "deployJob": { "$ref": "Job", - "description": "Output only. The deploy Job. This is the first job run in the phase.", + "description": "Output only. The deploy Job. This is the deploy job in the phase.", + "readOnly": true + }, + "postdeployJob": { + "$ref": "Job", + "description": "Output only. The postdeploy Job, which is the last job on the phase.", + "readOnly": true + }, + "predeployJob": { + "$ref": "Job", + "description": "Output only. The predeploy Job, which is the first job on the phase.", "readOnly": true }, "verifyJob": { @@ -1769,13 +3371,17 @@ "EXECUTION_ENVIRONMENT_USAGE_UNSPECIFIED", "RENDER", "DEPLOY", - "VERIFY" + "VERIFY", + "PREDEPLOY", + "POSTDEPLOY" ], "enumDescriptions": [ "Default value. This value is unused.", "Use for rendering.", "Use for deploying and deployment hooks.", - "Use for deployment verification." + "Use for deployment verification.", + "Use for predeploy job execution.", + "Use for postdeploy job execution." ], "type": "string" }, @@ -1811,12 +3417,41 @@ }, "type": "object" }, + "GatewayServiceMesh": { + "description": "Information about the Kubernetes Gateway API service mesh configuration.", + "id": "GatewayServiceMesh", + "properties": { + "deployment": { + "description": "Required. Name of the Kubernetes Deployment whose traffic is managed by the specified HTTPRoute and Service.", + "type": "string" + }, + "httpRoute": { + "description": "Required. Name of the Gateway API HTTPRoute.", + "type": "string" + }, + "routeUpdateWaitTime": { + "description": "Optional. The time to wait for route updates to propagate. The maximum configurable time is 3 hours, in seconds format. If unspecified, there is no wait time.", + "format": "google-duration", + "type": "string" + }, + "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" + }, "GkeCluster": { "description": "Information specifying a GKE Cluster.", "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": { @@ -1826,10 +3461,41 @@ }, "type": "object" }, + "IgnoreJobRequest": { + "description": "The request object used by `IgnoreJob`.", + "id": "IgnoreJobRequest", + "properties": { + "jobId": { + "description": "Required. The job ID for the Job to ignore.", + "type": "string" + }, + "phaseId": { + "description": "Required. The phase ID the Job to ignore belongs to.", + "type": "string" + } + }, + "type": "object" + }, + "IgnoreJobResponse": { + "description": "The response object from `IgnoreJob`.", + "id": "IgnoreJobResponse", + "properties": {}, + "type": "object" + }, "Job": { "description": "Job represents an operation for a `Rollout`.", "id": "Job", "properties": { + "advanceChildRolloutJob": { + "$ref": "AdvanceChildRolloutJob", + "description": "Output only. An advanceChildRollout Job.", + "readOnly": true + }, + "createChildRolloutJob": { + "$ref": "CreateChildRolloutJob", + "description": "Output only. A createChildRollout Job.", + "readOnly": true + }, "deployJob": { "$ref": "DeployJob", "description": "Output only. A deploy Job.", @@ -1845,6 +3511,21 @@ "readOnly": true, "type": "string" }, + "postdeployJob": { + "$ref": "PostdeployJob", + "description": "Output only. A postdeploy Job.", + "readOnly": true + }, + "predeployJob": { + "$ref": "PredeployJob", + "description": "Output only. A predeploy Job.", + "readOnly": true + }, + "skipMessage": { + "description": "Output only. Additional information on why the Job was skipped, if available.", + "readOnly": true, + "type": "string" + }, "state": { "description": "Output only. The current state of the Job.", "enum": [ @@ -1854,7 +3535,9 @@ "IN_PROGRESS", "SUCCEEDED", "FAILED", - "ABORTED" + "ABORTED", + "SKIPPED", + "IGNORED" ], "enumDescriptions": [ "The Job has an unspecified state.", @@ -1863,7 +3546,9 @@ "The Job is in progress.", "The Job succeeded.", "The Job failed.", - "The Job was aborted." + "The Job was aborted.", + "The Job was skipped.", + "The Job was ignored." ], "readOnly": true, "type": "string" @@ -1877,9 +3562,19 @@ "type": "object" }, "JobRun": { - "description": "A `JobRun` resource in the Google Cloud Deploy API. A `JobRun` contains information of a single `Rollout` job evaluation.", + "description": "A `JobRun` resource in the Cloud Deploy API. A `JobRun` contains information of a single `Rollout` job evaluation.", "id": "JobRun", "properties": { + "advanceChildRolloutJobRun": { + "$ref": "AdvanceChildRolloutJobRun", + "description": "Output only. Information specific to an advanceChildRollout `JobRun`", + "readOnly": true + }, + "createChildRolloutJobRun": { + "$ref": "CreateChildRolloutJobRun", + "description": "Output only. Information specific to a createChildRollout `JobRun`.", + "readOnly": true + }, "createTime": { "description": "Output only. Time at which the `JobRun` was created.", "format": "google-datetime", @@ -1908,7 +3603,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": { @@ -1916,6 +3611,16 @@ "readOnly": true, "type": "string" }, + "postdeployJobRun": { + "$ref": "PostdeployJobRun", + "description": "Output only. Information specific to a postdeploy `JobRun`.", + "readOnly": true + }, + "predeployJobRun": { + "$ref": "PredeployJobRun", + "description": "Output only. Information specific to a predeploy `JobRun`.", + "readOnly": true + }, "startTime": { "description": "Output only. Time at which the `JobRun` was started.", "format": "google-datetime", @@ -1928,13 +3633,17 @@ "STATE_UNSPECIFIED", "IN_PROGRESS", "SUCCEEDED", - "FAILED" + "FAILED", + "TERMINATING", + "TERMINATED" ], "enumDescriptions": [ "The `JobRun` has an unspecified state.", "The `JobRun` is in progress.", "The `JobRun` has succeeded.", - "The `JobRun` has failed." + "The `JobRun` has failed.", + "The `JobRun` is terminating.", + "The `JobRun` was terminated." ], "readOnly": true, "type": "string" @@ -1968,10 +3677,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" @@ -1985,11 +3702,34 @@ "enum": [ "TYPE_UNSPECIFIED", "TYPE_PUBSUB_NOTIFICATION_FAILURE", + "TYPE_RESOURCE_STATE_CHANGE", + "TYPE_PROCESS_ABORTED", + "TYPE_RESTRICTION_VIOLATED", + "TYPE_RESOURCE_DELETED", + "TYPE_ROLLOUT_UPDATE", + "TYPE_DEPLOY_POLICY_EVALUATION", "TYPE_RENDER_STATUES_CHANGE" ], + "enumDeprecated": [ + false, + 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.", + "Deploy Policy evaluation.", "Deprecated: This field is never used. Use release_render log type instead." ], "type": "string" @@ -1997,6 +3737,96 @@ }, "type": "object" }, + "KubernetesConfig": { + "description": "KubernetesConfig contains the Kubernetes runtime configuration.", + "id": "KubernetesConfig", + "properties": { + "gatewayServiceMesh": { + "$ref": "GatewayServiceMesh", + "description": "Kubernetes Gateway API service mesh configuration." + }, + "serviceNetworking": { + "$ref": "ServiceNetworking", + "description": "Kubernetes Service networking configuration." + } + }, + "type": "object" + }, + "ListAutomationRunsResponse": { + "description": "The response object from `ListAutomationRuns`.", + "id": "ListAutomationRunsResponse", + "properties": { + "automationRuns": { + "description": "The `AutomationRuns` objects.", + "items": { + "$ref": "AutomationRun" + }, + "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" + }, + "ListAutomationsResponse": { + "description": "The response object from `ListAutomations`.", + "id": "ListAutomationsResponse", + "properties": { + "automations": { + "description": "The `Automation` objects.", + "items": { + "$ref": "Automation" + }, + "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" + }, + "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", @@ -2159,7 +3989,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -2196,10 +4026,34 @@ "description": "Metadata includes information associated with a `Rollout`.", "id": "Metadata", "properties": { + "automation": { + "$ref": "AutomationRolloutMetadata", + "description": "Output only. AutomationRolloutMetadata contains the information about the interactions between Automation service and this rollout.", + "readOnly": true + }, "cloudRun": { "$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" + }, + "MultiTarget": { + "description": "Information specifying a multiTarget.", + "id": "MultiTarget", + "properties": { + "targetIds": { + "description": "Required. The target_ids of this multiTarget.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -2233,7 +4087,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" } }, @@ -2287,6 +4141,11 @@ "description": "Phase represents a collection of jobs that are logically grouped together for a `Rollout`.", "id": "Phase", "properties": { + "childRolloutJobs": { + "$ref": "ChildRolloutJobs", + "description": "Output only. ChildRollout job composition.", + "readOnly": true + }, "deploymentJobs": { "$ref": "DeploymentJobs", "description": "Output only. Deployment job composition.", @@ -2297,6 +4156,11 @@ "readOnly": true, "type": "string" }, + "skipMessage": { + "description": "Output only. Additional information on why the Phase was skipped, if available.", + "readOnly": true, + "type": "string" + }, "state": { "description": "Output only. Current state of the Phase.", "enum": [ @@ -2305,7 +4169,8 @@ "IN_PROGRESS", "SUCCEEDED", "FAILED", - "ABORTED" + "ABORTED", + "SKIPPED" ], "enumDescriptions": [ "The Phase has an unspecified state.", @@ -2313,7 +4178,8 @@ "The Phase is in progress.", "The Phase has succeeded.", "The Phase has failed.", - "The Phase was aborted." + "The Phase was aborted.", + "The Phase was skipped." ], "readOnly": true, "type": "string" @@ -2321,6 +4187,63 @@ }, "type": "object" }, + "PhaseArtifact": { + "description": "Contains the paths to the artifacts, relative to the URI, for a phase.", + "id": "PhaseArtifact", + "properties": { + "jobManifestsPath": { + "description": "Output only. File path of the directory of rendered job manifests relative to the URI. This is only set if it is applicable.", + "readOnly": true, + "type": "string" + }, + "manifestPath": { + "description": "Output only. File path of the rendered manifest relative to the URI.", + "readOnly": true, + "type": "string" + }, + "skaffoldConfigPath": { + "description": "Output only. File path of the resolved Skaffold configuration relative to the URI.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "PhaseConfig": { + "description": "PhaseConfig represents the configuration for a phase in the custom canary deployment.", + "id": "PhaseConfig", + "properties": { + "percentage": { + "description": "Required. Percentage deployment for the phase.", + "format": "int32", + "type": "integer" + }, + "phaseId": { + "description": "Required. The ID to assign to the `Rollout` phase. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`.", + "type": "string" + }, + "postdeploy": { + "$ref": "Postdeploy", + "description": "Optional. Configuration for the postdeploy job of this phase. If this is not configured, there will be no postdeploy job for this phase." + }, + "predeploy": { + "$ref": "Predeploy", + "description": "Optional. Configuration for the predeploy job of this phase. If this is not configured, there will be no predeploy job for this phase." + }, + "profiles": { + "description": "Skaffold profiles to use when rendering the manifest for this phase. These are in addition to the profiles list specified in the `DeliveryPipeline` stage.", + "items": { + "type": "string" + }, + "type": "array" + }, + "verify": { + "description": "Whether to run verify tests after the deployment.", + "type": "boolean" + } + }, + "type": "object" + }, "PipelineCondition": { "description": "PipelineCondition contains all conditions relevant to a Delivery Pipeline.", "id": "PipelineCondition", @@ -2357,7 +4280,7 @@ "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/).", + "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": { @@ -2387,6 +4310,136 @@ }, "type": "object" }, + "Postdeploy": { + "description": "Postdeploy contains the postdeploy job configuration information.", + "id": "Postdeploy", + "properties": { + "actions": { + "description": "Optional. A sequence of Skaffold custom actions to invoke during execution of the postdeploy job.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "PostdeployJob": { + "description": "A postdeploy Job.", + "id": "PostdeployJob", + "properties": { + "actions": { + "description": "Output only. The custom actions that the postdeploy Job executes.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "PostdeployJobRun": { + "description": "PostdeployJobRun contains information specific to a postdeploy `JobRun`.", + "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}`.", + "readOnly": true, + "type": "string" + }, + "failureCause": { + "description": "Output only. The reason the postdeploy failed. This will always be unspecified while the postdeploy is in progress or if it succeeded.", + "enum": [ + "FAILURE_CAUSE_UNSPECIFIED", + "CLOUD_BUILD_UNAVAILABLE", + "EXECUTION_FAILED", + "DEADLINE_EXCEEDED", + "CLOUD_BUILD_REQUEST_FAILED" + ], + "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 postdeploy operation did not complete successfully; check Cloud Build logs.", + "The postdeploy job run did not complete within the alloted time.", + "Cloud Build failed to fulfill Cloud Deploy's request. See failure_message for additional details." + ], + "readOnly": true, + "type": "string" + }, + "failureMessage": { + "description": "Output only. Additional information about the postdeploy failure, if available.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "Predeploy": { + "description": "Predeploy contains the predeploy job configuration information.", + "id": "Predeploy", + "properties": { + "actions": { + "description": "Optional. A sequence of Skaffold custom actions to invoke during execution of the predeploy job.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "PredeployJob": { + "description": "A predeploy Job.", + "id": "PredeployJob", + "properties": { + "actions": { + "description": "Output only. The custom actions that the predeploy Job executes.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "PredeployJobRun": { + "description": "PredeployJobRun contains information specific to a predeploy `JobRun`.", + "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}`.", + "readOnly": true, + "type": "string" + }, + "failureCause": { + "description": "Output only. The reason the predeploy failed. This will always be unspecified while the predeploy is in progress or if it succeeded.", + "enum": [ + "FAILURE_CAUSE_UNSPECIFIED", + "CLOUD_BUILD_UNAVAILABLE", + "EXECUTION_FAILED", + "DEADLINE_EXCEEDED", + "CLOUD_BUILD_REQUEST_FAILED" + ], + "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 predeploy operation did not complete successfully; check Cloud Build logs.", + "The predeploy job run did not complete within the alloted time.", + "Cloud Build failed to fulfill Cloud Deploy's request. See failure_message for additional details." + ], + "readOnly": true, + "type": "string" + }, + "failureMessage": { + "description": "Output only. Additional information about the predeploy failure, if available.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "PrivatePool": { "description": "Execution using a private Cloud Build pool.", "id": "PrivatePool", @@ -2406,8 +4459,65 @@ }, "type": "object" }, + "PromoteReleaseOperation": { + "description": "Contains the information of an automated promote-release operation.", + "id": "PromoteReleaseOperation", + "properties": { + "phase": { + "description": "Output only. The starting phase of the rollout created by this operation.", + "readOnly": true, + "type": "string" + }, + "rollout": { + "description": "Output only. The name of the rollout that initiates the `AutomationRun`.", + "readOnly": true, + "type": "string" + }, + "targetId": { + "description": "Output only. The ID of the target that represents the promotion stage to which the release will be promoted. The value of this field is the last segment of a target name.", + "readOnly": true, + "type": "string" + }, + "wait": { + "description": "Output only. How long the operation will be paused.", + "format": "google-duration", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "PromoteReleaseRule": { + "description": "`PromoteRelease` rule will automatically promote a release from the current target to a specified target.", + "id": "PromoteReleaseRule", + "properties": { + "condition": { + "$ref": "AutomationRuleCondition", + "description": "Output only. Information around the state of the Automation rule.", + "readOnly": true + }, + "destinationPhase": { + "description": "Optional. The starting phase of the rollout created by this operation. Default to the first phase.", + "type": "string" + }, + "destinationTargetId": { + "description": "Optional. The ID of the stage in the pipeline to which this `Release` is deploying. If unspecified, default it to the next stage in the promotion flow. The value of this field could be one of the following: * The last segment of a target name. It only needs the ID to determine if the target is one of the stages in the promotion sequence defined in the pipeline. * \"@next\", the next target in the promotion sequence.", + "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}`.", + "type": "string" + }, + "wait": { + "description": "Optional. How long the release need to be paused until being promoted to the next target.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "Release": { - "description": "A `Release` resource in the Google Cloud Deploy API. A `Release` defines a specific Skaffold configuration instance that can be deployed.", + "description": "A `Release` resource in the Cloud Deploy API. A `Release` defines a specific Skaffold configuration instance that can be deployed.", "id": "Release", "properties": { "abandoned": { @@ -2419,7 +4529,7 @@ "additionalProperties": { "type": "string" }, - "description": "User annotations. These attributes can only be set and used by the user, and not by Google Cloud Deploy. See https://google.aip.dev/128#annotations for more details such as format and size limitations.", + "description": "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" }, "buildArtifacts": { @@ -2429,17 +4539,37 @@ }, "type": "array" }, + "condition": { + "$ref": "ReleaseCondition", + "description": "Output only. Information around the state of the Release.", + "readOnly": true + }, "createTime": { "description": "Output only. Time at which the `Release` was created.", "format": "google-datetime", "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.", "readOnly": true }, + "deployParameters": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. The deploy parameters to use for all targets in this release.", + "type": "object" + }, "description": { "description": "Description of the `Release`. Max length is 255 characters.", "type": "string" @@ -2452,11 +4582,11 @@ "additionalProperties": { "type": "string" }, - "description": "Labels are attributes that can be set and used by both the user and by Google 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.", + "description": "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 `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": { @@ -2497,7 +4627,7 @@ "type": "string" }, "skaffoldVersion": { - "description": "The Skaffold version to use when operating on this release, such as \"1.20.0\". Not all versions are valid; Google Cloud Deploy supports a specific set of versions. If unset, the most recent supported Skaffold version will be used.", + "description": "The Skaffold version to use when operating on this release, such as \"1.20.0\". Not all versions are valid; Cloud Deploy supports a specific set of versions. If unset, the most recent supported Skaffold version will be used.", "type": "string" }, "targetArtifacts": { @@ -2532,6 +4662,21 @@ }, "type": "object" }, + "ReleaseCondition": { + "description": "ReleaseCondition contains all conditions relevant to a Release.", + "id": "ReleaseCondition", + "properties": { + "releaseReadyCondition": { + "$ref": "ReleaseReadyCondition", + "description": "Details around the Releases's overall status." + }, + "skaffoldSupportedCondition": { + "$ref": "SkaffoldSupportedCondition", + "description": "Details around the support state of the release's Skaffold version." + } + }, + "type": "object" + }, "ReleaseNotificationEvent": { "description": "Payload proto for \"clouddeploy.googleapis.com/release_notification\" Platform Log event that describes the failure to send release status change Pub/Sub notification.", "id": "ReleaseNotificationEvent", @@ -2540,20 +4685,51 @@ "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": [ "TYPE_UNSPECIFIED", "TYPE_PUBSUB_NOTIFICATION_FAILURE", + "TYPE_RESOURCE_STATE_CHANGE", + "TYPE_PROCESS_ABORTED", + "TYPE_RESTRICTION_VIOLATED", + "TYPE_RESOURCE_DELETED", + "TYPE_ROLLOUT_UPDATE", + "TYPE_DEPLOY_POLICY_EVALUATION", "TYPE_RENDER_STATUES_CHANGE" ], + "enumDeprecated": [ + false, + 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.", + "Deploy Policy evaluation.", "Deprecated: This field is never used. Use release_render log type instead." ], "type": "string" @@ -2561,6 +4737,17 @@ }, "type": "object" }, + "ReleaseReadyCondition": { + "description": "ReleaseReadyCondition contains information around the status of the Release. If a release is not ready, you cannot create a rollout with the release.", + "id": "ReleaseReadyCondition", + "properties": { + "status": { + "description": "True if the Release is in a valid state. Otherwise at least one condition in `ReleaseCondition` is in an invalid state. Iterate over those conditions and see which condition(s) has status = false to find out what is wrong with the Release.", + "type": "boolean" + } + }, + "type": "object" + }, "ReleaseRenderEvent": { "description": "Payload proto for \"clouddeploy.googleapis.com/release_render\" Platform Log event that describes the render status change.", "id": "ReleaseRenderEvent", @@ -2569,8 +4756,267 @@ "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": { + "description": "The state of the release render.", + "enum": [ + "RENDER_STATE_UNSPECIFIED", + "SUCCEEDED", + "FAILED", + "IN_PROGRESS" + ], + "enumDescriptions": [ + "The render state is unspecified.", + "All rendering operations have completed successfully.", + "All rendering operations have completed, and one or more have failed.", + "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_DEPLOY_POLICY_EVALUATION", + "TYPE_RENDER_STATUES_CHANGE" + ], + "enumDeprecated": [ + false, + 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.", + "Deploy Policy evaluation.", + "Deprecated: This field is never used. Use release_render log type instead." + ], + "type": "string" + } + }, + "type": "object" + }, + "RenderMetadata": { + "description": "RenderMetadata includes information associated with a `Release` render.", + "id": "RenderMetadata", + "properties": { + "cloudRun": { + "$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" + }, + "RepairMode": { + "description": "Configuration of the repair action.", + "id": "RepairMode", + "properties": { + "retry": { + "$ref": "Retry", + "description": "Optional. Retries a failed job." + }, + "rollback": { + "$ref": "Rollback", + "description": "Optional. Rolls back a `Rollout`." + } + }, + "type": "object" + }, + "RepairPhase": { + "description": "RepairPhase tracks the repair attempts that have been made for each `RepairMode` specified in the `Automation` resource.", + "id": "RepairPhase", + "properties": { + "retry": { + "$ref": "RetryPhase", + "description": "Output only. Records of the retry attempts for retry repair mode.", + "readOnly": true + }, + "rollback": { + "$ref": "RollbackAttempt", + "description": "Output only. Rollback attempt for rollback repair mode .", + "readOnly": true + } + }, + "type": "object" + }, + "RepairRolloutOperation": { + "description": "Contains the information for an automated `repair rollout` operation.", + "id": "RepairRolloutOperation", + "properties": { + "currentRepairModeIndex": { + "description": "Output only. The index of the current repair action in the repair sequence.", + "format": "int64", + "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": { + "$ref": "RepairPhase" + }, + "readOnly": true, + "type": "array" + }, + "rollout": { + "description": "Output only. The name of the rollout that initiates the `AutomationRun`.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "RepairRolloutRule": { + "description": "The `RepairRolloutRule` automation rule will automatically repair a failed `Rollout`.", + "id": "RepairRolloutRule", + "properties": { + "condition": { + "$ref": "AutomationRuleCondition", + "description": "Output only. Information around the state of the 'Automation' rule.", + "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}`.", + "type": "string" + }, + "jobs": { + "description": "Optional. Jobs to repair. Proceeds only after job name matched any one in the list, or for all jobs if unspecified or empty. The phase that includes the job must match the phase ID specified in `source_phase`. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "repairModes": { + "description": "Required. Defines the types of automatic repair actions for failed jobs.", + "items": { + "$ref": "RepairMode" + }, + "type": "array" + }, + "sourcePhases": { + "description": "Optional. Phases within which jobs are subject to automatic repair actions on failure. Proceeds only after phase name matched any one in the list, or for all phases if unspecified. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Retry": { + "description": "Retries the failed job.", + "id": "Retry", + "properties": { + "attempts": { + "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" + }, + "backoffMode": { + "description": "Optional. The pattern of how wait time will be increased. Default is linear. Backoff mode will be ignored if `wait` is 0.", + "enum": [ + "BACKOFF_MODE_UNSPECIFIED", + "BACKOFF_MODE_LINEAR", + "BACKOFF_MODE_EXPONENTIAL" + ], + "enumDescriptions": [ + "No WaitMode is specified.", + "Increases the wait time linearly.", + "Increases the wait time exponentially." + ], + "type": "string" + }, + "wait": { + "description": "Optional. How long to wait for the first retry. Default is 0, and the maximum value is 14d.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "RetryAttempt": { + "description": "RetryAttempt represents an action of retrying the failed Cloud Deploy job.", + "id": "RetryAttempt", + "properties": { + "attempt": { + "description": "Output only. The index of this retry attempt.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. Valid state of this retry action.", + "enum": [ + "REPAIR_STATE_UNSPECIFIED", + "REPAIR_STATE_SUCCEEDED", + "REPAIR_STATE_CANCELLED", + "REPAIR_STATE_FAILED", + "REPAIR_STATE_IN_PROGRESS", + "REPAIR_STATE_PENDING", + "REPAIR_STATE_SKIPPED", + "REPAIR_STATE_ABORTED" + ], + "enumDescriptions": [ + "The `repair` has an unspecified state.", + "The `repair` action has succeeded.", + "The `repair` action was cancelled.", + "The `repair` action has failed.", + "The `repair` action is in progress.", + "The `repair` action is pending.", + "The `repair` action was skipped.", + "The `repair` action was aborted." + ], + "readOnly": true, + "type": "string" + }, + "stateDesc": { + "description": "Output only. Description of the state of the Retry.", + "readOnly": true, + "type": "string" + }, + "wait": { + "description": "Output only. How long the operation will be paused.", + "format": "google-duration", + "readOnly": true, "type": "string" } }, @@ -2597,15 +5043,178 @@ "properties": {}, "type": "object" }, + "RetryPhase": { + "description": "RetryPhase contains the retry attempts and the metadata for initiating a new attempt.", + "id": "RetryPhase", + "properties": { + "attempts": { + "description": "Output only. Detail of a retry action.", + "items": { + "$ref": "RetryAttempt" + }, + "readOnly": true, + "type": "array" + }, + "backoffMode": { + "description": "Output only. The pattern of how the wait time of the retry attempt is calculated.", + "enum": [ + "BACKOFF_MODE_UNSPECIFIED", + "BACKOFF_MODE_LINEAR", + "BACKOFF_MODE_EXPONENTIAL" + ], + "enumDescriptions": [ + "No WaitMode is specified.", + "Increases the wait time linearly.", + "Increases the wait time exponentially." + ], + "readOnly": true, + "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" + }, + "totalAttempts": { + "description": "Output only. The number of attempts that have been made.", + "format": "int64", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "Rollback": { + "description": "Rolls back a `Rollout`.", + "id": "Rollback", + "properties": { + "destinationPhase": { + "description": "Optional. The starting phase ID for the `Rollout`. If unspecified, the `Rollout` will start in the stable phase.", + "type": "string" + } + }, + "type": "object" + }, + "RollbackAttempt": { + "description": "RollbackAttempt represents an action of rolling back a Cloud Deploy 'Target'.", + "id": "RollbackAttempt", + "properties": { + "destinationPhase": { + "description": "Output only. The phase to which the rollout will be rolled back to.", + "readOnly": true, + "type": "string" + }, + "rolloutId": { + "description": "Output only. ID of the rollback `Rollout` to create.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. Valid state of this rollback action.", + "enum": [ + "REPAIR_STATE_UNSPECIFIED", + "REPAIR_STATE_SUCCEEDED", + "REPAIR_STATE_CANCELLED", + "REPAIR_STATE_FAILED", + "REPAIR_STATE_IN_PROGRESS", + "REPAIR_STATE_PENDING", + "REPAIR_STATE_SKIPPED", + "REPAIR_STATE_ABORTED" + ], + "enumDescriptions": [ + "The `repair` has an unspecified state.", + "The `repair` action has succeeded.", + "The `repair` action was cancelled.", + "The `repair` action has failed.", + "The `repair` action is in progress.", + "The `repair` action is pending.", + "The `repair` action was skipped.", + "The `repair` action was aborted." + ], + "readOnly": true, + "type": "string" + }, + "stateDesc": { + "description": "Output only. Description of the state of the Rollback.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "RollbackTargetConfig": { + "description": "Configs for the Rollback rollout.", + "id": "RollbackTargetConfig", + "properties": { + "rollout": { + "$ref": "Rollout", + "description": "Optional. The rollback `Rollout` to create." + }, + "startingPhaseId": { + "description": "Optional. The starting phase ID for the `Rollout`. If unspecified, the `Rollout` will start in the stable phase.", + "type": "string" + } + }, + "type": "object" + }, + "RollbackTargetRequest": { + "description": "The request object for `RollbackTarget`.", + "id": "RollbackTargetRequest", + "properties": { + "releaseId": { + "description": "Optional. ID of the `Release` to roll back to. If this isn't specified, the previous successful `Rollout` to the specified target will be used to determine the `Release`.", + "type": "string" + }, + "rollbackConfig": { + "$ref": "RollbackTargetConfig", + "description": "Optional. Configs for the rollback `Rollout`." + }, + "rolloutId": { + "description": "Required. ID of the rollback `Rollout` to create.", + "type": "string" + }, + "rolloutToRollBack": { + "description": "Optional. If provided, this must be the latest `Rollout` that is on the `Target`.", + "type": "string" + }, + "targetId": { + "description": "Required. ID of the `Target` that is being rolled back.", + "type": "string" + }, + "validateOnly": { + "description": "Optional. If set to true, the request is validated and the user is provided with a `RollbackTargetResponse`.", + "type": "boolean" + } + }, + "type": "object" + }, + "RollbackTargetResponse": { + "description": "The response object from `RollbackTarget`.", + "id": "RollbackTargetResponse", + "properties": { + "rollbackConfig": { + "$ref": "RollbackTargetConfig", + "description": "The config of the rollback `Rollout` created or will be created." + } + }, + "type": "object" + }, "Rollout": { - "description": "A `Rollout` resource in the Google Cloud Deploy API. A `Rollout` contains information around a specific deployment to a `Target`.", + "description": "A `Rollout` resource in the Cloud Deploy API. A `Rollout` contains information around a specific deployment to a `Target`.", "id": "Rollout", "properties": { "annotations": { "additionalProperties": { "type": "string" }, - "description": "User annotations. These attributes can only be set and used by the user, and not by Google Cloud Deploy. See https://google.aip.dev/128#annotations for more details such as format and size limitations.", + "description": "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" }, "approvalState": { @@ -2633,6 +5242,11 @@ "readOnly": true, "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}`.", + "readOnly": true, + "type": "string" + }, "createTime": { "description": "Output only. Time at which the `Rollout` was created.", "format": "google-datetime", @@ -2655,17 +5269,19 @@ "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.", - "Cloud Build is not available, either because it is not enabled or because Cloud Deploy has insufficient permissions. See [required permission](/deploy/docs/cloud-deploy-service-account#required_permissions).", + "Cloud Build 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 deploy operation did not complete successfully; check Cloud Build logs.", "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 Google 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" @@ -2704,7 +5320,7 @@ "additionalProperties": { "type": "string" }, - "description": "Labels are attributes that can be set and used by both the user and by Google 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.", + "description": "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" }, "metadata": { @@ -2713,7 +5329,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": { @@ -2724,6 +5340,19 @@ "readOnly": true, "type": "array" }, + "rollbackOfRollout": { + "description": "Output only. Name of the `Rollout` that is rolled back by this `Rollout`. Empty if this `Rollout` wasn't created as a rollback.", + "readOnly": true, + "type": "string" + }, + "rolledBackByRollouts": { + "description": "Output only. Names of `Rollouts` that rolled back this `Rollout`.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "state": { "description": "Output only. Current state of the `Rollout`.", "enum": [ @@ -2734,7 +5363,10 @@ "PENDING_APPROVAL", "APPROVAL_REJECTED", "PENDING", - "PENDING_RELEASE" + "PENDING_RELEASE", + "CANCELLING", + "CANCELLED", + "HALTED" ], "enumDescriptions": [ "The `Rollout` has an unspecified state.", @@ -2744,7 +5376,10 @@ "The `Rollout` needs approval.", "An approver rejected the `Rollout`.", "The `Rollout` is waiting for an earlier Rollout(s) to complete on this `Target`.", - "The `Rollout` is waiting for the `Release` to be fully rendered." + "The `Rollout` is waiting for the `Release` to be fully rendered.", + "The `Rollout` is in the process of being cancelled.", + "The `Rollout` has been cancelled.", + "The `Rollout` is halted." ], "readOnly": true, "type": "string" @@ -2773,6 +5408,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" @@ -2781,6 +5420,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" @@ -2790,11 +5433,34 @@ "enum": [ "TYPE_UNSPECIFIED", "TYPE_PUBSUB_NOTIFICATION_FAILURE", + "TYPE_RESOURCE_STATE_CHANGE", + "TYPE_PROCESS_ABORTED", + "TYPE_RESTRICTION_VIOLATED", + "TYPE_RESOURCE_DELETED", + "TYPE_ROLLOUT_UPDATE", + "TYPE_DEPLOY_POLICY_EVALUATION", "TYPE_RENDER_STATUES_CHANGE" ], + "enumDeprecated": [ + false, + 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.", + "Deploy Policy evaluation.", "Deprecated: This field is never used. Use release_render log type instead." ], "type": "string" @@ -2802,6 +5468,125 @@ }, "type": "object" }, + "RolloutUpdateEvent": { + "description": "Payload proto for \"clouddeploy.googleapis.com/rollout_update\" Platform Log event that describes the rollout update event.", + "id": "RolloutUpdateEvent", + "properties": { + "message": { + "description": "Debug message for when a rollout update event occurs.", + "type": "string" + }, + "pipelineUid": { + "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. 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": { + "description": "The type of the rollout update.", + "enum": [ + "ROLLOUT_UPDATE_TYPE_UNSPECIFIED", + "PENDING", + "PENDING_RELEASE", + "IN_PROGRESS", + "CANCELLING", + "CANCELLED", + "HALTED", + "SUCCEEDED", + "FAILED", + "APPROVAL_REQUIRED", + "APPROVED", + "REJECTED", + "ADVANCE_REQUIRED", + "ADVANCED" + ], + "enumDescriptions": [ + "Rollout update type unspecified.", + "rollout state updated to pending.", + "Rollout state updated to pending release.", + "Rollout state updated to in progress.", + "Rollout state updated to cancelling.", + "Rollout state updated to cancelled.", + "Rollout state updated to halted.", + "Rollout state updated to succeeded.", + "Rollout state updated to failed.", + "Rollout requires approval.", + "Rollout has been approved.", + "Rollout has been rejected.", + "Rollout requires advance to the next phase.", + "Rollout has been advanced." + ], + "type": "string" + }, + "targetId": { + "description": "ID of the target.", + "type": "string" + }, + "type": { + "description": "Type of this notification, e.g. for a rollout update 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_DEPLOY_POLICY_EVALUATION", + "TYPE_RENDER_STATUES_CHANGE" + ], + "enumDeprecated": [ + false, + 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.", + "Deploy Policy evaluation.", + "Deprecated: This field is never used. Use release_render log type instead." + ], + "type": "string" + } + }, + "type": "object" + }, + "RuntimeConfig": { + "description": "RuntimeConfig contains the runtime specific configurations for a deployment strategy.", + "id": "RuntimeConfig", + "properties": { + "cloudRun": { + "$ref": "CloudRunConfig", + "description": "Cloud Run runtime configuration." + }, + "kubernetes": { + "$ref": "KubernetesConfig", + "description": "Kubernetes runtime configuration." + } + }, + "type": "object" + }, "SerialPipeline": { "description": "SerialPipeline defines a sequential set of stages for a `DeliveryPipeline`.", "id": "SerialPipeline", @@ -2816,6 +5601,25 @@ }, "type": "object" }, + "ServiceNetworking": { + "description": "Information about the Kubernetes Service networking configuration.", + "id": "ServiceNetworking", + "properties": { + "deployment": { + "description": "Required. Name of the Kubernetes Deployment whose traffic is managed by the specified Service.", + "type": "string" + }, + "disablePodOverprovisioning": { + "description": "Optional. Whether to disable Pod overprovisioning. If Pod overprovisioning is disabled then Cloud Deploy will limit the number of total Pods used for the deployment strategy to the number of Pods the Deployment has on the cluster.", + "type": "boolean" + }, + "service": { + "description": "Required. Name of the Kubernetes Service.", + "type": "string" + } + }, + "type": "object" + }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", @@ -2832,14 +5636,117 @@ }, "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.", + "id": "SkaffoldSupportedCondition", + "properties": { + "maintenanceModeTime": { + "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.", + "enum": [ + "SKAFFOLD_SUPPORT_STATE_UNSPECIFIED", + "SKAFFOLD_SUPPORT_STATE_SUPPORTED", + "SKAFFOLD_SUPPORT_STATE_MAINTENANCE_MODE", + "SKAFFOLD_SUPPORT_STATE_UNSUPPORTED" + ], + "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." + ], + "type": "string" + }, + "status": { + "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.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "SkaffoldVersion": { "description": "Details of a supported Skaffold version.", "id": "SkaffoldVersion", "properties": { + "maintenanceModeTime": { + "description": "The time at which this version of Skaffold will enter maintenance mode.", + "format": "google-datetime", + "type": "string" + }, "supportEndDate": { "$ref": "Date", "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.", + "format": "google-datetime", + "type": "string" + }, "version": { "description": "Release version number. For example, \"1.20.3\".", "type": "string" @@ -2851,6 +5758,13 @@ "description": "Stage specifies a location to which to deploy.", "id": "Stage", "properties": { + "deployParameters": { + "description": "Optional. The deploy parameters to use for the target in this stage.", + "items": { + "$ref": "DeployParameters" + }, + "type": "array" + }, "profiles": { "description": "Skaffold profiles to use when rendering the manifest for this stage's `Target`.", "items": { @@ -2873,6 +5787,14 @@ "description": "Standard represents the standard deployment strategy.", "id": "Standard", "properties": { + "postdeploy": { + "$ref": "Postdeploy", + "description": "Optional. Configuration for the postdeploy job. If this is not configured, postdeploy job will not be present." + }, + "predeploy": { + "$ref": "Predeploy", + "description": "Optional. Configuration for the predeploy job. If this is not configured, predeploy job will not be present." + }, "verify": { "description": "Whether to verify a deployment.", "type": "boolean" @@ -2911,6 +5833,10 @@ "description": "Strategy contains deployment strategy information.", "id": "Strategy", "properties": { + "canary": { + "$ref": "Canary", + "description": "Canary deployment strategy provides progressive percentage based deployments to a Target." + }, "standard": { "$ref": "Standard", "description": "Standard deployment strategy executes a single deploy and allows verifying the deployment." @@ -2919,19 +5845,19 @@ "type": "object" }, "Target": { - "description": "A `Target` resource in the Google Cloud Deploy API. A `Target` defines a location to which a Skaffold configuration can be deployed.", + "description": "A `Target` resource in the Cloud Deploy API. A `Target` defines a location to which a Skaffold configuration can be deployed.", "id": "Target", "properties": { "annotations": { "additionalProperties": { "type": "string" }, - "description": "Optional. User annotations. These attributes can only be set and used by the user, and not by Google Cloud Deploy. See https://google.aip.dev/128#annotations for more details such as format and size limitations.", + "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" }, "anthosCluster": { "$ref": "AnthosCluster", - "description": "Information specifying an Anthos Cluster." + "description": "Optional. Information specifying an Anthos Cluster." }, "createTime": { "description": "Output only. Time at which the `Target` was created.", @@ -2939,6 +5865,17 @@ "readOnly": true, "type": "string" }, + "customTarget": { + "$ref": "CustomTarget", + "description": "Optional. Information specifying a Custom Target." + }, + "deployParameters": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. The deploy parameters to use for this target.", + "type": "object" + }, "description": { "description": "Optional. Description of the `Target`. Max length is 255 characters.", "type": "string" @@ -2956,17 +5893,21 @@ }, "gke": { "$ref": "GkeCluster", - "description": "Information specifying a GKE Cluster." + "description": "Optional. Information specifying a GKE Cluster." }, "labels": { "additionalProperties": { "type": "string" }, - "description": "Optional. Labels are attributes that can be set and used by both the user and by Google Cloud Deploy. Labels must meet the following constraints: * 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.", + "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" }, + "multiTarget": { + "$ref": "MultiTarget", + "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": { @@ -2975,7 +5916,7 @@ }, "run": { "$ref": "CloudRunLocation", - "description": "Information specifying a Cloud Run deployment target." + "description": "Optional. Information specifying a Cloud Run deployment target." }, "targetId": { "description": "Output only. Resource id of the `Target`.", @@ -3010,6 +5951,14 @@ "readOnly": true, "type": "string" }, + "phaseArtifacts": { + "additionalProperties": { + "$ref": "PhaseArtifact" + }, + "description": "Output only. Map from the phase ID to the phase artifacts for the `Target`.", + "readOnly": true, + "type": "object" + }, "skaffoldConfigPath": { "description": "Output only. File path of the resolved Skaffold configuration relative to the URI.", "readOnly": true, @@ -3018,6 +5967,24 @@ }, "type": "object" }, + "TargetAttribute": { + "description": "Contains criteria for selecting Targets.", + "id": "TargetAttribute", + "properties": { + "id": { + "description": "ID of the `Target`. The value of this field could be one of the following: * The last segment of a target name. It only needs the ID to determine which target is being referred to * \"*\", all targets in a location.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Target labels.", + "type": "object" + } + }, + "type": "object" + }, "TargetNotificationEvent": { "description": "Payload proto for \"clouddeploy.googleapis.com/target_notification\" Platform Log event that describes the failure to send target status change Pub/Sub notification.", "id": "TargetNotificationEvent", @@ -3035,11 +6002,34 @@ "enum": [ "TYPE_UNSPECIFIED", "TYPE_PUBSUB_NOTIFICATION_FAILURE", + "TYPE_RESOURCE_STATE_CHANGE", + "TYPE_PROCESS_ABORTED", + "TYPE_RESTRICTION_VIOLATED", + "TYPE_RESOURCE_DELETED", + "TYPE_ROLLOUT_UPDATE", + "TYPE_DEPLOY_POLICY_EVALUATION", "TYPE_RENDER_STATUES_CHANGE" ], + "enumDeprecated": [ + false, + 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.", + "Deploy Policy evaluation.", "Deprecated: This field is never used. Use release_render log type instead." ], "type": "string" @@ -3057,13 +6047,21 @@ "FAILURE_CAUSE_UNSPECIFIED", "CLOUD_BUILD_UNAVAILABLE", "EXECUTION_FAILED", - "CLOUD_BUILD_REQUEST_FAILED" + "CLOUD_BUILD_REQUEST_FAILED", + "VERIFICATION_CONFIG_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 Google Cloud Deploy has insufficient permissions. See [required permission](/deploy/docs/cloud-deploy-service-account#required_permissions).", + "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 Google 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 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" @@ -3073,6 +6071,11 @@ "readOnly": true, "type": "string" }, + "metadata": { + "$ref": "RenderMetadata", + "description": "Output only. Metadata related to the `Release` render for this Target.", + "readOnly": true + }, "renderingBuild": { "description": "Output only. The resource name of the Cloud Build `Build` object that is used to render the manifest for this target. Format is `projects/{project}/locations/{location}/builds/{build}`.", "readOnly": true, @@ -3099,11 +6102,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" }, @@ -3136,6 +6139,18 @@ }, "type": "object" }, + "TerminateJobRunRequest": { + "description": "The request object used by `TerminateJobRun`.", + "id": "TerminateJobRunRequest", + "properties": {}, + "type": "object" + }, + "TerminateJobRunResponse": { + "description": "The response object from `TerminateJobRun`.", + "id": "TerminateJobRunResponse", + "properties": {}, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", @@ -3180,7 +6195,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" }, @@ -3201,11 +6216,11 @@ ], "enumDescriptions": [ "No reason for failure is specified.", - "Cloud Build is not available, either because it is not enabled or because Google Cloud Deploy has insufficient permissions. See [required permission](/deploy/docs/cloud-deploy-service-account#required_permissions).", + "Cloud Build 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 verify operation did not complete successfully; check Cloud Build logs.", - "The verify build did not complete within the alloted time.", + "The verify job run did not complete within the alloted time.", "No Skaffold verify configuration was found.", - "Cloud Build failed to fulfill Google 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." ], "readOnly": true, "type": "string" @@ -3220,7 +6235,7 @@ } }, "servicePath": "", - "title": "Google Cloud Deploy API", + "title": "Cloud Deploy API", "version": "v1", "version_module": true } \ No newline at end of file diff --git a/etc/api/clouderrorreporting/v1beta1/clouderrorreporting-api.json b/etc/api/clouderrorreporting/v1beta1/clouderrorreporting-api.json index fbeed74275..fd37a53f4b 100644 --- a/etc/api/clouderrorreporting/v1beta1/clouderrorreporting-api.json +++ b/etc/api/clouderrorreporting/v1beta1/clouderrorreporting-api.json @@ -15,6 +15,7 @@ "description": "Groups and counts similar errors from cloud services and applications, reports new errors, and provides access to error groups and their associated errors. ", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/error-reporting/", + "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" @@ -145,7 +146,7 @@ ], "parameters": { "groupId": { - "description": "Required. The group for which events shall be returned.", + "description": "Required. The group for which events shall be returned. The `group_id` is a unique identifier for a particular error group. The identifier is derived from key parts of the error-log content and is treated as Service Data. For information about how Service Data is handled, see [Google Cloud Privacy Notice](https://cloud.google.com/terms/cloud-privacy-notice).", "location": "query", "type": "string" }, @@ -213,7 +214,7 @@ ] }, "report": { - "description": "Report an individual error event and record the event to a log. This endpoint accepts **either** an OAuth token, **or** an [API key](https://support.google.com/cloud/answer/6158862) for authentication. To use an API key, append it to the URL as the value of a `key` parameter. For example: `POST https://clouderrorreporting.googleapis.com/v1beta1/{projectName}/events:report?key=123ABC456` **Note:** [Error Reporting] (https://cloud.google.com/error-reporting) is a global service built on Cloud Logging and doesn't analyze logs stored in regional log buckets or logs routed to other Google Cloud projects. For more information, see [Using Error Reporting with regionalized logs] (https://cloud.google.com/error-reporting/docs/regionalization).", + "description": "Report an individual error event and record the event to a log. This endpoint accepts **either** an OAuth token, **or** an [API key](https://support.google.com/cloud/answer/6158862) for authentication. To use an API key, append it to the URL as the value of a `key` parameter. For example: `POST https://clouderrorreporting.googleapis.com/v1beta1/{projectName}/events:report?key=123ABC456` **Note:** [Error Reporting] (https://cloud.google.com/error-reporting) is a global service built on Cloud Logging and doesn't analyze logs stored in regional log buckets or logs routed to other Google Cloud projects.", "flatPath": "v1beta1/projects/{projectsId}/events:report", "httpMethod": "POST", "id": "clouderrorreporting.projects.events.report", @@ -275,7 +276,7 @@ "type": "string" }, "groupId": { - "description": "Optional. List all ErrorGroupStats with these IDs.", + "description": "Optional. List all ErrorGroupStats with these IDs. The `group_id` is a unique identifier for a particular error group. The identifier is derived from key parts of the error-log content and is treated as Service Data. For information about how Service Data is handled, see [Google Cloud Privacy Notice] (https://cloud.google.com/terms/cloud-privacy-notice).", "location": "query", "repeated": true, "type": "string" @@ -382,7 +383,7 @@ ], "parameters": { "groupName": { - "description": "Required. The group resource name. Written as `projects/{projectID}/groups/{group_name}`. Call groupStats.list to return a list of groups belonging to this project. Example: `projects/my-project-123/groups/my-group`", + "description": "Required. The group resource name. Written as `projects/{projectID}/groups/{group_id}`. Call groupStats.list to return a list of groups belonging to this project. Example: `projects/my-project-123/groups/my-group` In the group resource name, the `group_id` is a unique identifier for a particular error group. The identifier is derived from key parts of the error-log content and is treated as Service Data. For information about how Service Data is handled, see [Google Cloud Privacy Notice](https://cloud.google.com/terms/cloud-privacy-notice).", "location": "path", "pattern": "^projects/[^/]+/groups/[^/]+$", "required": true, @@ -407,7 +408,7 @@ ], "parameters": { "name": { - "description": "The group resource name. Example: projects/my-project-123/groups/CNSgkpnppqKCUw", + "description": "The group resource name. Written as `projects/{projectID}/groups/{group_id}`. Example: `projects/my-project-123/groups/my-group` In the group resource name, the `group_id` is a unique identifier for a particular error group. The identifier is derived from key parts of the error-log content and is treated as Service Data. For information about how Service Data is handled, see [Google Cloud Privacy Notice](https://cloud.google.com/terms/cloud-privacy-notice).", "location": "path", "pattern": "^projects/[^/]+/groups/[^/]+$", "required": true, @@ -430,7 +431,7 @@ } } }, - "revision": "20230112", + "revision": "20240221", "rootUrl": "https://clouderrorreporting.googleapis.com/", "schemas": { "DeleteEventsResponse": { @@ -494,11 +495,11 @@ "id": "ErrorGroup", "properties": { "groupId": { - "description": "Group IDs are unique for a given project. If the same kind of error occurs in different service contexts, it will receive the same group ID.", + "description": "An opaque identifier of the group. This field is assigned by the Error Reporting system and always populated. In the group resource name, the `group_id` is a unique identifier for a particular error group. The identifier is derived from key parts of the error-log content and is treated as Service Data. For information about how Service Data is handled, see [Google Cloud Privacy Notice](https://cloud.google.com/terms/cloud-privacy-notice).", "type": "string" }, "name": { - "description": "The group resource name. Example: projects/my-project-123/groups/CNSgkpnppqKCUw", + "description": "The group resource name. Written as `projects/{projectID}/groups/{group_id}`. Example: `projects/my-project-123/groups/my-group` In the group resource name, the `group_id` is a unique identifier for a particular error group. The identifier is derived from key parts of the error-log content and is treated as Service Data. For information about how Service Data is handled, see [Google Cloud Privacy Notice](https://cloud.google.com/terms/cloud-privacy-notice).", "type": "string" }, "resolutionStatus": { diff --git a/etc/api/cloudfunctions/v1/cloudfunctions-api.json b/etc/api/cloudfunctions/v1/cloudfunctions-api.json index a0050966d9..ea111c4aa1 100644 --- a/etc/api/cloudfunctions/v1/cloudfunctions-api.json +++ b/etc/api/cloudfunctions/v1/cloudfunctions-api.json @@ -133,30 +133,30 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/operations", "httpMethod": "GET", "id": "cloudfunctions.operations.list", "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" } @@ -372,6 +372,12 @@ "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", "required": true, "type": "string" + }, + "versionId": { + "description": "Optional. The optional version of the function whose details should be obtained. The version of a 1st Gen function is an integer that starts from 1 and gets incremented on redeployments. Each deployment creates a config version of the underlying function. GCF may keep historical configs for old versions. This field can be specified to fetch the historical configs. Leave it blank or set to 0 to get the latest version of the function.", + "format": "int64", + "location": "query", + "type": "string" } }, "path": "v1/{+name}", @@ -546,7 +552,7 @@ } } }, - "revision": "20230119", + "revision": "20240229", "rootUrl": "https://cloudfunctions.googleapis.com/", "schemas": { "AuditConfig": { @@ -597,6 +603,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", @@ -606,14 +618,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -653,6 +665,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", @@ -675,6 +690,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" @@ -684,7 +703,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", @@ -702,7 +721,7 @@ "type": "string" }, "entryPoint": { - "description": "The name of the function (as defined in source code) that will be executed. Defaults to the resource name suffix, if not specified. For backward compatibility, if function with given name is not found, then the system will try to use function named \"function\". For Node.js this is name of a function exported by the module specified in `source_location`.", + "description": "The name of the function (as defined in source code) that will be executed. Defaults to the resource name suffix (ID of the function), if not specified.", "type": "string" }, "environmentVariables": { @@ -762,9 +781,13 @@ "type": "string" }, "network": { - "description": "The VPC Network that this cloud function can connect to. It can be either the fully-qualified URI, or the short name of the network resource. If the short network name is used, the network must belong to the same project. Otherwise, it must belong to a project within the same organization. The format of this field is either `projects/{project}/global/networks/{network}` or `{network}`, where `{project}` is a project id where the network is defined, and `{network}` is the short name of the network. This field is mutually exclusive with `vpc_connector` and will be replaced by it. See [the VPC documentation](https://cloud.google.com/compute/docs/vpc) for more information on connecting Cloud projects.", + "deprecated": true, + "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" @@ -947,7 +970,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" } }, @@ -964,6 +987,30 @@ }, "type": "object" }, + "GoogleCloudFunctionsV2LocationMetadata": { + "description": "Extra GCF specific location information.", + "id": "GoogleCloudFunctionsV2LocationMetadata", + "properties": { + "environments": { + "description": "The Cloud Function environments this location supports.", + "items": { + "enum": [ + "ENVIRONMENT_UNSPECIFIED", + "GEN_1", + "GEN_2" + ], + "enumDescriptions": [ + "Unspecified", + "Gen 1", + "Gen 2" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudFunctionsV2OperationMetadata": { "description": "Represents the metadata of the long-running operation.", "id": "GoogleCloudFunctionsV2OperationMetadata", @@ -973,7 +1020,7 @@ "type": "string" }, "cancelRequested": { - "description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", "type": "boolean" }, "createTime": { @@ -986,6 +1033,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.", @@ -994,6 +1067,10 @@ "description": "The original request that started the operation.", "type": "object" }, + "sourceToken": { + "description": "An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments.", + "type": "string" + }, "stages": { "description": "Mechanism for reporting in-progress stages", "items": { @@ -1111,6 +1188,30 @@ }, "type": "object" }, + "GoogleCloudFunctionsV2alphaLocationMetadata": { + "description": "Extra GCF specific location information.", + "id": "GoogleCloudFunctionsV2alphaLocationMetadata", + "properties": { + "environments": { + "description": "The Cloud Function environments this location supports.", + "items": { + "enum": [ + "ENVIRONMENT_UNSPECIFIED", + "GEN_1", + "GEN_2" + ], + "enumDescriptions": [ + "Unspecified", + "Gen 1", + "Gen 2" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudFunctionsV2alphaOperationMetadata": { "description": "Represents the metadata of the long-running operation.", "id": "GoogleCloudFunctionsV2alphaOperationMetadata", @@ -1120,7 +1221,7 @@ "type": "string" }, "cancelRequested": { - "description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", "type": "boolean" }, "createTime": { @@ -1133,6 +1234,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.", @@ -1141,6 +1268,10 @@ "description": "The original request that started the operation.", "type": "object" }, + "sourceToken": { + "description": "An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments.", + "type": "string" + }, "stages": { "description": "Mechanism for reporting in-progress stages", "items": { @@ -1258,6 +1389,30 @@ }, "type": "object" }, + "GoogleCloudFunctionsV2betaLocationMetadata": { + "description": "Extra GCF specific location information.", + "id": "GoogleCloudFunctionsV2betaLocationMetadata", + "properties": { + "environments": { + "description": "The Cloud Function environments this location supports.", + "items": { + "enum": [ + "ENVIRONMENT_UNSPECIFIED", + "GEN_1", + "GEN_2" + ], + "enumDescriptions": [ + "Unspecified", + "Gen 1", + "Gen 2" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudFunctionsV2betaOperationMetadata": { "description": "Represents the metadata of the long-running operation.", "id": "GoogleCloudFunctionsV2betaOperationMetadata", @@ -1267,7 +1422,7 @@ "type": "string" }, "cancelRequested": { - "description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", "type": "boolean" }, "createTime": { @@ -1280,6 +1435,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.", @@ -1288,6 +1469,10 @@ "description": "The original request that started the operation.", "type": "object" }, + "sourceToken": { + "description": "An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments.", + "type": "string" + }, "stages": { "description": "Mechanism for reporting in-progress stages", "items": { @@ -1493,7 +1678,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1526,6 +1711,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", @@ -1555,7 +1752,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" } }, @@ -1619,7 +1816,7 @@ "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/).", + "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": { @@ -1687,7 +1884,7 @@ "type": "string" }, "version": { - "description": "Version of the secret (version number or the string 'latest'). It is preferrable to use `latest` version with secret volumes as secret value changes are reflected immediately.", + "description": "Version of the secret (version number or the string 'latest'). It is preferable to use `latest` version with secret volumes as secret value changes are reflected immediately.", "type": "string" } }, diff --git a/etc/api/cloudfunctions/v2alpha/cloudfunctions-api.json b/etc/api/cloudfunctions/v2alpha/cloudfunctions-api.json index 2aa1325a97..39b2172033 100644 --- a/etc/api/cloudfunctions/v2alpha/cloudfunctions-api.json +++ b/etc/api/cloudfunctions/v2alpha/cloudfunctions-api.json @@ -154,6 +154,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": "v2alpha/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": "v2alpha/{+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": "v2alpha/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": "v2alpha/{+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": "v2alpha/projects/{projectsId}/locations/{locationsId}/functions", @@ -241,7 +297,7 @@ ] }, "generateUploadUrl": { - "description": "Returns a signed URL for uploading a function source code. For more information about the signed URL usage see: https://cloud.google.com/storage/docs/access-control/signed-urls. Once the function source code upload is complete, the used signed URL should be provided in CreateFunction or UpdateFunction request as a reference to the function source code. When uploading source code to the generated signed URL, please follow these restrictions: * Source file type should be a zip file. * No credentials should be attached - the signed URLs provide access to the target bucket using internal service identity; if credentials were attached, the identity from the credentials would be used, but that identity does not have permissions to upload files to the URL. When making a HTTP PUT request, these two headers need to be specified: * `content-type: application/zip` And this header SHOULD NOT be specified: * `Authorization: Bearer YOUR_TOKEN`", + "description": "Returns a signed URL for uploading a function source code. For more information about the signed URL usage see: https://cloud.google.com/storage/docs/access-control/signed-urls. Once the function source code upload is complete, the used signed URL should be provided in CreateFunction or UpdateFunction request as a reference to the function source code. When uploading source code to the generated signed URL, please follow these restrictions: * Source file type should be a zip file. * No credentials should be attached - the signed URLs provide access to the target bucket using internal service identity; if credentials were attached, the identity from the credentials would be used, but that identity does not have permissions to upload files to the URL. When making a HTTP PUT request, specify this header: * `content-type: application/zip` Do not specify this header: * `Authorization: Bearer YOUR_TOKEN`", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/functions:generateUploadUrl", "httpMethod": "POST", "id": "cloudfunctions.projects.locations.functions.generateUploadUrl", @@ -344,7 +400,7 @@ "type": "string" }, "pageSize": { - "description": "Maximum number of functions to return per call.", + "description": "Maximum number of functions to return per call. The largest allowed page_size is 1,000, if the page_size is omitted or specified as greater than 1,000 then it will be replaced as 1,000. The size of the list response can be less than specified when used with filters.", "format": "int32", "location": "query", "type": "integer" @@ -404,6 +460,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": "v2alpha/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": "v2alpha/{+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": "v2alpha/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": "v2alpha/{+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": "v2alpha/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:setIamPolicy", @@ -432,6 +544,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": "v2alpha/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": "v2alpha/{+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": "v2alpha/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:testIamPermissions", @@ -490,7 +630,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "cloudfunctions.projects.locations.operations.list", @@ -499,25 +639,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" } @@ -571,9 +711,15 @@ } } }, - "revision": "20230119", + "revision": "20240222", "rootUrl": "https://cloudfunctions.googleapis.com/", "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", @@ -622,6 +768,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", @@ -631,14 +783,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -648,17 +800,16 @@ "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, "type": "string" }, - "buildpackStack": { - "description": "Specifies one of the Google provided buildpack stacks.", - "type": "string" - }, "dockerRegistry": { - "description": "Optional. Docker Registry to use for this deployment. This configuration is only applicable to 1st Gen functions, 2nd Gen functions can only use Artifact Registry. If `docker_repository` field is specified, this field will be automatically set as `ARTIFACT_REGISTRY`. If unspecified, it currently defaults to `CONTAINER_REGISTRY`. This field may be overridden by the backend for eligible deployments.", + "description": "Docker Registry to use for this deployment. This configuration is only applicable to 1st Gen functions, 2nd Gen functions can only use Artifact Registry. If `docker_repository` field is specified, this field will be automatically set as `ARTIFACT_REGISTRY`. If unspecified, it currently defaults to `CONTAINER_REGISTRY`. This field may be overridden by the backend for eligible deployments.", "enum": [ "DOCKER_REGISTRY_UNSPECIFIED", "CONTAINER_REGISTRY", @@ -672,7 +823,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": { @@ -686,10 +837,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." @@ -699,6 +857,10 @@ "description": "Output only. A permanent fixed identifier for source.", "readOnly": true }, + "sourceToken": { + "description": "An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments.", + "type": "string" + }, "workerPool": { "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" @@ -706,6 +868,34 @@ }, "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", + "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" + }, "EventFilter": { "description": "Filters events based on exact matches on the CloudEvents attributes.", "id": "EventFilter", @@ -762,6 +952,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" @@ -809,6 +1003,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" @@ -831,6 +1031,10 @@ "$ref": "EventTrigger", "description": "An Eventarc trigger managed by Google Cloud Functions that fires events in response to a condition in another service." }, + "kmsKeyName": { + "description": "[Preview] Resource name of a KMS crypto key (managed by the user) used to encrypt/decrypt function resources. It must match the pattern `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.", + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -842,6 +1046,11 @@ "description": "A user-defined name of the function. Function names must be unique globally and match pattern `projects/*/locations/*/functions/*`", "type": "string" }, + "satisfiesPzs": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "serviceConfig": { "$ref": "ServiceConfig", "description": "Describes the Service being deployed. Currently deploys services to Cloud Run (fully managed)." @@ -880,6 +1089,16 @@ "format": "google-datetime", "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, + "type": "string" } }, "type": "object" @@ -904,7 +1123,26 @@ "GenerateUploadUrlRequest": { "description": "Request of `GenerateSourceUploadUrl` method.", "id": "GenerateUploadUrlRequest", - "properties": {}, + "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" + } + }, "type": "object" }, "GenerateUploadUrlResponse": { @@ -922,6 +1160,30 @@ }, "type": "object" }, + "GoogleCloudFunctionsV2LocationMetadata": { + "description": "Extra GCF specific location information.", + "id": "GoogleCloudFunctionsV2LocationMetadata", + "properties": { + "environments": { + "description": "The Cloud Function environments this location supports.", + "items": { + "enum": [ + "ENVIRONMENT_UNSPECIFIED", + "GEN_1", + "GEN_2" + ], + "enumDescriptions": [ + "Unspecified", + "Gen 1", + "Gen 2" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudFunctionsV2OperationMetadata": { "description": "Represents the metadata of the long-running operation.", "id": "GoogleCloudFunctionsV2OperationMetadata", @@ -931,7 +1193,7 @@ "type": "string" }, "cancelRequested": { - "description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", "type": "boolean" }, "createTime": { @@ -944,6 +1206,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.", @@ -952,6 +1240,10 @@ "description": "The original request that started the operation.", "type": "object" }, + "sourceToken": { + "description": "An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments.", + "type": "string" + }, "stages": { "description": "Mechanism for reporting in-progress stages", "items": { @@ -1069,6 +1361,30 @@ }, "type": "object" }, + "GoogleCloudFunctionsV2alphaLocationMetadata": { + "description": "Extra GCF specific location information.", + "id": "GoogleCloudFunctionsV2alphaLocationMetadata", + "properties": { + "environments": { + "description": "The Cloud Function environments this location supports.", + "items": { + "enum": [ + "ENVIRONMENT_UNSPECIFIED", + "GEN_1", + "GEN_2" + ], + "enumDescriptions": [ + "Unspecified", + "Gen 1", + "Gen 2" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudFunctionsV2alphaOperationMetadata": { "description": "Represents the metadata of the long-running operation.", "id": "GoogleCloudFunctionsV2alphaOperationMetadata", @@ -1078,7 +1394,7 @@ "type": "string" }, "cancelRequested": { - "description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", "type": "boolean" }, "createTime": { @@ -1091,6 +1407,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.", @@ -1099,6 +1441,10 @@ "description": "The original request that started the operation.", "type": "object" }, + "sourceToken": { + "description": "An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments.", + "type": "string" + }, "stages": { "description": "Mechanism for reporting in-progress stages", "items": { @@ -1216,6 +1562,30 @@ }, "type": "object" }, + "GoogleCloudFunctionsV2betaLocationMetadata": { + "description": "Extra GCF specific location information.", + "id": "GoogleCloudFunctionsV2betaLocationMetadata", + "properties": { + "environments": { + "description": "The Cloud Function environments this location supports.", + "items": { + "enum": [ + "ENVIRONMENT_UNSPECIFIED", + "GEN_1", + "GEN_2" + ], + "enumDescriptions": [ + "Unspecified", + "Gen 1", + "Gen 2" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudFunctionsV2betaOperationMetadata": { "description": "Represents the metadata of the long-running operation.", "id": "GoogleCloudFunctionsV2betaOperationMetadata", @@ -1225,7 +1595,7 @@ "type": "string" }, "cancelRequested": { - "description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", "type": "boolean" }, "createTime": { @@ -1238,6 +1608,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.", @@ -1246,6 +1642,10 @@ "description": "The original request that started the operation.", "type": "object" }, + "sourceToken": { + "description": "An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments.", + "type": "string" + }, "stages": { "description": "Mechanism for reporting in-progress stages", "items": { @@ -1439,7 +1839,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1472,6 +1872,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", @@ -1501,7 +1913,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" } }, @@ -1565,7 +1977,7 @@ "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/).", + "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": { @@ -1595,6 +2007,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", @@ -1611,10 +2029,6 @@ "description": "Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution. eg. helloworld (no leading slash allowed)", "type": "string" }, - "invertRegex": { - "description": "Only trigger a build if the revision regex does NOT match the revision regex.", - "type": "boolean" - }, "projectId": { "description": "ID of the project that owns the Cloud Source Repository. If omitted, the project ID requesting the build is assumed.", "type": "string" @@ -1630,10 +2044,24 @@ }, "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", "properties": { + "decommissionDate": { + "$ref": "Date", + "description": "Decommission date for the runtime." + }, + "deprecationDate": { + "$ref": "Date", + "description": "Deprecation date for the runtime." + }, "displayName": { "description": "The user facing name, eg 'Go 1.13', 'Node.js 12', etc.", "type": "string" @@ -1753,7 +2181,7 @@ "type": "object" }, "ServiceConfig": { - "description": "Describes the Service being deployed. Currently Supported : Cloud Run (fully managed). Next tag: 23", + "description": "Describes the Service being deployed. Currently Supported : Cloud Run (fully managed).", "id": "ServiceConfig", "properties": { "allTrafficOnLatestRevision": { @@ -1895,10 +2323,20 @@ }, "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", "properties": { + "gitUri": { + "description": "If provided, get the source from GitHub repository. This option is valid only for GCF 1st Gen function. Example: https://github.com///blob//", + "type": "string" + }, "repoSource": { "$ref": "RepoSource", "description": "If provided, get the source from this location in a Cloud Source Repository." @@ -1914,6 +2352,10 @@ "description": "Provenance of the source. Ways to find the original source, or verify that some source was used for this build.", "id": "SourceProvenance", "properties": { + "gitUri": { + "description": "A copy of the build's `source.git_uri`, if exists, with any commits resolved.", + "type": "string" + }, "resolvedRepoSource": { "$ref": "RepoSource", "description": "A copy of the build's `source.repo_source`, if exists, with any revisions resolved." @@ -1999,6 +2441,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" } }, "servicePath": "", diff --git a/etc/api/cloudfunctions/v2beta/cloudfunctions-api.json b/etc/api/cloudfunctions/v2beta/cloudfunctions-api.json index 3a0e454bca..b60b615539 100644 --- a/etc/api/cloudfunctions/v2beta/cloudfunctions-api.json +++ b/etc/api/cloudfunctions/v2beta/cloudfunctions-api.json @@ -154,6 +154,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": "v2beta/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": "v2beta/{+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": "v2beta/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": "v2beta/{+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": "v2beta/projects/{projectsId}/locations/{locationsId}/functions", @@ -241,7 +297,7 @@ ] }, "generateUploadUrl": { - "description": "Returns a signed URL for uploading a function source code. For more information about the signed URL usage see: https://cloud.google.com/storage/docs/access-control/signed-urls. Once the function source code upload is complete, the used signed URL should be provided in CreateFunction or UpdateFunction request as a reference to the function source code. When uploading source code to the generated signed URL, please follow these restrictions: * Source file type should be a zip file. * No credentials should be attached - the signed URLs provide access to the target bucket using internal service identity; if credentials were attached, the identity from the credentials would be used, but that identity does not have permissions to upload files to the URL. When making a HTTP PUT request, these two headers need to be specified: * `content-type: application/zip` And this header SHOULD NOT be specified: * `Authorization: Bearer YOUR_TOKEN`", + "description": "Returns a signed URL for uploading a function source code. For more information about the signed URL usage see: https://cloud.google.com/storage/docs/access-control/signed-urls. Once the function source code upload is complete, the used signed URL should be provided in CreateFunction or UpdateFunction request as a reference to the function source code. When uploading source code to the generated signed URL, please follow these restrictions: * Source file type should be a zip file. * No credentials should be attached - the signed URLs provide access to the target bucket using internal service identity; if credentials were attached, the identity from the credentials would be used, but that identity does not have permissions to upload files to the URL. When making a HTTP PUT request, specify this header: * `content-type: application/zip` Do not specify this header: * `Authorization: Bearer YOUR_TOKEN`", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/functions:generateUploadUrl", "httpMethod": "POST", "id": "cloudfunctions.projects.locations.functions.generateUploadUrl", @@ -344,7 +400,7 @@ "type": "string" }, "pageSize": { - "description": "Maximum number of functions to return per call.", + "description": "Maximum number of functions to return per call. The largest allowed page_size is 1,000, if the page_size is omitted or specified as greater than 1,000 then it will be replaced as 1,000. The size of the list response can be less than specified when used with filters.", "format": "int32", "location": "query", "type": "integer" @@ -404,6 +460,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": "v2beta/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": "v2beta/{+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": "v2beta/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": "v2beta/{+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": "v2beta/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:setIamPolicy", @@ -432,6 +544,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": "v2beta/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": "v2beta/{+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": "v2beta/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:testIamPermissions", @@ -490,7 +630,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "cloudfunctions.projects.locations.operations.list", @@ -499,25 +639,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" } @@ -571,9 +711,15 @@ } } }, - "revision": "20230119", + "revision": "20240222", "rootUrl": "https://cloudfunctions.googleapis.com/", "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", @@ -622,6 +768,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", @@ -631,14 +783,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -648,17 +800,16 @@ "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, "type": "string" }, - "buildpackStack": { - "description": "Specifies one of the Google provided buildpack stacks.", - "type": "string" - }, "dockerRegistry": { - "description": "Optional. Docker Registry to use for this deployment. This configuration is only applicable to 1st Gen functions, 2nd Gen functions can only use Artifact Registry. If `docker_repository` field is specified, this field will be automatically set as `ARTIFACT_REGISTRY`. If unspecified, it currently defaults to `CONTAINER_REGISTRY`. This field may be overridden by the backend for eligible deployments.", + "description": "Docker Registry to use for this deployment. This configuration is only applicable to 1st Gen functions, 2nd Gen functions can only use Artifact Registry. If `docker_repository` field is specified, this field will be automatically set as `ARTIFACT_REGISTRY`. If unspecified, it currently defaults to `CONTAINER_REGISTRY`. This field may be overridden by the backend for eligible deployments.", "enum": [ "DOCKER_REGISTRY_UNSPECIFIED", "CONTAINER_REGISTRY", @@ -672,7 +823,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": { @@ -686,10 +837,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." @@ -699,6 +857,10 @@ "description": "Output only. A permanent fixed identifier for source.", "readOnly": true }, + "sourceToken": { + "description": "An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments.", + "type": "string" + }, "workerPool": { "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" @@ -706,6 +868,34 @@ }, "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", + "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" + }, "EventFilter": { "description": "Filters events based on exact matches on the CloudEvents attributes.", "id": "EventFilter", @@ -762,6 +952,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" @@ -809,6 +1003,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" @@ -831,6 +1031,10 @@ "$ref": "EventTrigger", "description": "An Eventarc trigger managed by Google Cloud Functions that fires events in response to a condition in another service." }, + "kmsKeyName": { + "description": "[Preview] Resource name of a KMS crypto key (managed by the user) used to encrypt/decrypt function resources. It must match the pattern `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.", + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -842,6 +1046,11 @@ "description": "A user-defined name of the function. Function names must be unique globally and match pattern `projects/*/locations/*/functions/*`", "type": "string" }, + "satisfiesPzs": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "serviceConfig": { "$ref": "ServiceConfig", "description": "Describes the Service being deployed. Currently deploys services to Cloud Run (fully managed)." @@ -880,6 +1089,16 @@ "format": "google-datetime", "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, + "type": "string" } }, "type": "object" @@ -904,7 +1123,26 @@ "GenerateUploadUrlRequest": { "description": "Request of `GenerateSourceUploadUrl` method.", "id": "GenerateUploadUrlRequest", - "properties": {}, + "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" + } + }, "type": "object" }, "GenerateUploadUrlResponse": { @@ -922,6 +1160,30 @@ }, "type": "object" }, + "GoogleCloudFunctionsV2LocationMetadata": { + "description": "Extra GCF specific location information.", + "id": "GoogleCloudFunctionsV2LocationMetadata", + "properties": { + "environments": { + "description": "The Cloud Function environments this location supports.", + "items": { + "enum": [ + "ENVIRONMENT_UNSPECIFIED", + "GEN_1", + "GEN_2" + ], + "enumDescriptions": [ + "Unspecified", + "Gen 1", + "Gen 2" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudFunctionsV2OperationMetadata": { "description": "Represents the metadata of the long-running operation.", "id": "GoogleCloudFunctionsV2OperationMetadata", @@ -931,7 +1193,7 @@ "type": "string" }, "cancelRequested": { - "description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", "type": "boolean" }, "createTime": { @@ -944,6 +1206,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.", @@ -952,6 +1240,10 @@ "description": "The original request that started the operation.", "type": "object" }, + "sourceToken": { + "description": "An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments.", + "type": "string" + }, "stages": { "description": "Mechanism for reporting in-progress stages", "items": { @@ -1069,6 +1361,30 @@ }, "type": "object" }, + "GoogleCloudFunctionsV2alphaLocationMetadata": { + "description": "Extra GCF specific location information.", + "id": "GoogleCloudFunctionsV2alphaLocationMetadata", + "properties": { + "environments": { + "description": "The Cloud Function environments this location supports.", + "items": { + "enum": [ + "ENVIRONMENT_UNSPECIFIED", + "GEN_1", + "GEN_2" + ], + "enumDescriptions": [ + "Unspecified", + "Gen 1", + "Gen 2" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudFunctionsV2alphaOperationMetadata": { "description": "Represents the metadata of the long-running operation.", "id": "GoogleCloudFunctionsV2alphaOperationMetadata", @@ -1078,7 +1394,7 @@ "type": "string" }, "cancelRequested": { - "description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", "type": "boolean" }, "createTime": { @@ -1091,6 +1407,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.", @@ -1099,6 +1441,10 @@ "description": "The original request that started the operation.", "type": "object" }, + "sourceToken": { + "description": "An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments.", + "type": "string" + }, "stages": { "description": "Mechanism for reporting in-progress stages", "items": { @@ -1216,6 +1562,30 @@ }, "type": "object" }, + "GoogleCloudFunctionsV2betaLocationMetadata": { + "description": "Extra GCF specific location information.", + "id": "GoogleCloudFunctionsV2betaLocationMetadata", + "properties": { + "environments": { + "description": "The Cloud Function environments this location supports.", + "items": { + "enum": [ + "ENVIRONMENT_UNSPECIFIED", + "GEN_1", + "GEN_2" + ], + "enumDescriptions": [ + "Unspecified", + "Gen 1", + "Gen 2" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudFunctionsV2betaOperationMetadata": { "description": "Represents the metadata of the long-running operation.", "id": "GoogleCloudFunctionsV2betaOperationMetadata", @@ -1225,7 +1595,7 @@ "type": "string" }, "cancelRequested": { - "description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", "type": "boolean" }, "createTime": { @@ -1238,6 +1608,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.", @@ -1246,6 +1642,10 @@ "description": "The original request that started the operation.", "type": "object" }, + "sourceToken": { + "description": "An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments.", + "type": "string" + }, "stages": { "description": "Mechanism for reporting in-progress stages", "items": { @@ -1439,7 +1839,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1472,6 +1872,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", @@ -1501,7 +1913,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" } }, @@ -1565,7 +1977,7 @@ "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/).", + "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": { @@ -1595,6 +2007,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", @@ -1611,10 +2029,6 @@ "description": "Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution. eg. helloworld (no leading slash allowed)", "type": "string" }, - "invertRegex": { - "description": "Only trigger a build if the revision regex does NOT match the revision regex.", - "type": "boolean" - }, "projectId": { "description": "ID of the project that owns the Cloud Source Repository. If omitted, the project ID requesting the build is assumed.", "type": "string" @@ -1630,10 +2044,24 @@ }, "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", "properties": { + "decommissionDate": { + "$ref": "Date", + "description": "Decommission date for the runtime." + }, + "deprecationDate": { + "$ref": "Date", + "description": "Deprecation date for the runtime." + }, "displayName": { "description": "The user facing name, eg 'Go 1.13', 'Node.js 12', etc.", "type": "string" @@ -1753,7 +2181,7 @@ "type": "object" }, "ServiceConfig": { - "description": "Describes the Service being deployed. Currently Supported : Cloud Run (fully managed). Next tag: 23", + "description": "Describes the Service being deployed. Currently Supported : Cloud Run (fully managed).", "id": "ServiceConfig", "properties": { "allTrafficOnLatestRevision": { @@ -1895,10 +2323,20 @@ }, "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", "properties": { + "gitUri": { + "description": "If provided, get the source from GitHub repository. This option is valid only for GCF 1st Gen function. Example: https://github.com///blob//", + "type": "string" + }, "repoSource": { "$ref": "RepoSource", "description": "If provided, get the source from this location in a Cloud Source Repository." @@ -1914,6 +2352,10 @@ "description": "Provenance of the source. Ways to find the original source, or verify that some source was used for this build.", "id": "SourceProvenance", "properties": { + "gitUri": { + "description": "A copy of the build's `source.git_uri`, if exists, with any commits resolved.", + "type": "string" + }, "resolvedRepoSource": { "$ref": "RepoSource", "description": "A copy of the build's `source.repo_source`, if exists, with any revisions resolved." @@ -1999,6 +2441,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" } }, "servicePath": "", diff --git a/etc/api/cloudidentity/v1/cloudidentity-api.json b/etc/api/cloudidentity/v1/cloudidentity-api.json index 323e12eb16..8a091a4caf 100644 --- a/etc/api/cloudidentity/v1/cloudidentity-api.json +++ b/etc/api/cloudidentity/v1/cloudidentity-api.json @@ -700,7 +700,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" }, @@ -1052,7 +1052,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" }, @@ -1126,7 +1126,7 @@ "type": "string" }, "query": { - "description": "Required. The search query. Must be specified in [Common Expression Language](https://opensource.google/projects/cel). May only contain equality operators on the parent and inclusion operators on labels (e.g., `parent == 'customers/{customer_id}' && 'cloudidentity.googleapis.com/groups.discussion_forum' in labels`). The `customer_id` must begin with \"C\" (for example, 'C046psxkn'). [Find your customer ID.] (https://support.google.com/cloudidentity/answer/10070793)", + "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" }, @@ -1404,7 +1404,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" }, @@ -1460,6 +1460,54 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "searchDirectGroups": { + "description": "Searches direct groups of a member.", + "flatPath": "v1/groups/{groupsId}/memberships:searchDirectGroups", + "httpMethod": "GET", + "id": "cloudidentity.groups.memberships.searchDirectGroups", + "parameterOrder": [ + "parent" + ], + "parameters": { + "orderBy": { + "description": "The ordering of membership relation for the display name or email in the response. The syntax for this field can be found at https://cloud.google.com/apis/design/design_patterns#sorting_order. Example: Sort by the ascending display name: order_by=\"group_name\" or order_by=\"group_name asc\". Sort by the descending display name: order_by=\"group_name desc\". Sort by the ascending group key: order_by=\"group_key\" or order_by=\"group_key asc\". Sort by the descending group key: order_by=\"group_key desc\".", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The default page size is 200 (max 1000).", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The next_page_token value returned from a previous list request, if any", + "location": "query", + "type": "string" + }, + "parent": { + "description": "[Resource name](https://cloud.google.com/apis/design/resource_names) of the group to search transitive memberships in. Format: groups/{group_id}, where group_id is always '-' as this API will search across all groups for a given member.", + "location": "path", + "pattern": "^groups/[^/]+$", + "required": true, + "type": "string" + }, + "query": { + "description": "Required. A CEL expression that MUST include member specification AND label(s). Users can search on label attributes of groups. CONTAINS match ('in') is supported on labels. Identity-mapped groups are uniquely identified by both a `member_key_id` and a `member_key_namespace`, which requires an additional query input: `member_key_namespace`. Example query: `member_key_id == 'member_key_id_value' && 'label_value' in labels`", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/memberships:searchDirectGroups", + "response": { + "$ref": "SearchDirectGroupsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-identity.groups", + "https://www.googleapis.com/auth/cloud-identity.groups.readonly", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "searchTransitiveGroups": { "description": "Search transitive groups of a member. **Note:** This feature is only available to Google Workspace Enterprise Standard, Enterprise Plus, and Enterprise for Education; and Cloud Identity Premium accounts. If the account of the member is not one of these, a 403 (PERMISSION_DENIED) HTTP status code will be returned. A transitive group is any group that has a direct or indirect membership to the member. Actor must have view permissions all transitive groups.", "flatPath": "v1/groups/{groupsId}/memberships:searchTransitiveGroups", @@ -1488,7 +1536,7 @@ "type": "string" }, "query": { - "description": "Required. A CEL expression that MUST include member specification AND label(s). This is a `required` field. Users can search on label attributes of groups. CONTAINS match ('in') is supported on labels. Identity-mapped groups are uniquely identified by both a `member_key_id` and a `member_key_namespace`, which requires an additional query input: `member_key_namespace`. Example query: `member_key_id == 'member_key_id_value' && in labels`", + "description": "Required. A CEL expression that MUST include member specification AND label(s). This is a `required` field. Users can search on label attributes of groups. CONTAINS match ('in') is supported on labels. Identity-mapped groups are uniquely identified by both a `member_key_id` and a `member_key_namespace`, which requires an additional query input: `member_key_namespace`. Example query: `member_key_id == 'member_key_id_value' && in labels` Query may optionally contain equality operators on the parent of the group restricting the search within a particular customer, e.g. `parent == 'customers/{customer_id}'`. The `customer_id` must begin with \"C\" (for example, 'C046psxkn'). This filtering is only supported for Admins with groups read permissons on the input customer. Example query: `member_key_id == 'member_key_id_value' && in labels && parent == 'customers/C046psxkn'`", "location": "query", "type": "string" } @@ -1623,7 +1671,7 @@ "parameterOrder": [], "parameters": { "filter": { - "description": "A [Common Expression Language](https://github.com/google/cel-spec) expression to filter the results. The only currently-supported filter is filtering by customer. For example: `customer==\"customers/C0123abc\"`. Omitting the filter or specifying a filter of `customer==\"customers/my_customer\"` will return the profiles for the customer that the caller (authenticated user) belongs to.", + "description": "A [Common Expression Language](https://github.com/google/cel-spec) expression to filter the results. The only supported filter is filtering by customer. For example: `customer==\"customers/C0123abc\"`. Omitting the filter or specifying a filter of `customer==\"customers/my_customer\"` will return the profiles for the customer that the caller (authenticated user) belongs to.", "location": "query", "type": "string" }, @@ -1881,7 +1929,7 @@ "parameterOrder": [], "parameters": { "filter": { - "description": "A CEL expression to filter the results. The only currently-supported filter is filtering by customer. For example: `customer==customers/C0123abc`. Omitting the filter or specifying a filter of `customer==customers/my_customer` will return the assignments for the customer that the caller (authenticated user) belongs to.", + "description": "A CEL expression to filter the results. The only supported filter is filtering by customer. For example: `customer==customers/C0123abc`. Omitting the filter or specifying a filter of `customer==customers/my_customer` will return the assignments for the customer that the caller (authenticated user) belongs to.", "location": "query", "type": "string" }, @@ -1942,7 +1990,7 @@ } } }, - "revision": "20230117", + "revision": "20240227", "rootUrl": "https://cloudidentity.googleapis.com/", "schemas": { "AddIdpCredentialOperationMetadata": { @@ -2050,7 +2098,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" }, @@ -2120,7 +2168,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": { @@ -2173,10 +2221,18 @@ "description": "Resource representing the Android specific attributes of a Device.", "id": "GoogleAppsCloudidentityDevicesV1AndroidAttributes", "properties": { + "ctsProfileMatch": { + "description": "Whether the device passes Android CTS compliance.", + "type": "boolean" + }, "enabledUnknownSources": { "description": "Whether applications from unknown sources can be installed on device.", "type": "boolean" }, + "hasPotentiallyHarmfulApps": { + "description": "Whether any potentially harmful apps were detected on the device.", + "type": "boolean" + }, "ownerProfileAccount": { "description": "Whether this account is on an owner/primary profile. For phones, only true for owner profiles. Android 4+ devices can have secondary or restricted user profiles.", "type": "boolean" @@ -2200,6 +2256,14 @@ "supportsWorkProfile": { "description": "Whether device supports Android work profiles. If false, this service will not block access to corp data even if an administrator turns on the \"Enforce Work Profile\" policy.", "type": "boolean" + }, + "verifiedBoot": { + "description": "Whether Android verified boot status is GREEN.", + "type": "boolean" + }, + "verifyAppsEnabled": { + "description": "Whether Google Play Protect Verify Apps is enabled.", + "type": "boolean" } }, "type": "object" @@ -2577,6 +2641,10 @@ "readOnly": true, "type": "string" }, + "hostname": { + "description": "Host name of the device.", + "type": "string" + }, "imei": { "description": "Output only. IMEI number of device if GSM device; empty otherwise.", "readOnly": true, @@ -2951,6 +3019,14 @@ "description": "A group within the Cloud Identity Groups API. A `Group` is a collection of entities, where each entity is either a user, another group, or a service account.", "id": "Group", "properties": { + "additionalGroupKeys": { + "description": "Output only. Additional group keys associated with the Group.", + "items": { + "$ref": "EntityKey" + }, + "readOnly": true, + "type": "array" + }, "createTime": { "description": "Output only. The time when the `Group` was created.", "format": "google-datetime", @@ -3363,6 +3439,27 @@ "readOnly": true, "type": "string" }, + "deliverySetting": { + "description": "Output only. Delivery setting associated with the membership.", + "enum": [ + "DELIVERY_SETTING_UNSPECIFIED", + "ALL_MAIL", + "DIGEST", + "DAILY", + "NONE", + "DISABLED" + ], + "enumDescriptions": [ + "Default. Should not be used.", + "Represents each mail should be delivered", + "Represents 1 email for every 25 messages.", + "Represents daily summary of messages.", + "Represents no delivery.", + "Represents disabled state." + ], + "readOnly": true, + "type": "string" + }, "name": { "description": "Output only. The [resource name](https://cloud.google.com/apis/design/resource_names) of the `Membership`. Shall be of the form `groups/{group}/memberships/{membership}`.", "readOnly": true, @@ -3427,6 +3524,47 @@ }, "type": "object" }, + "MembershipRelation": { + "description": "Message containing membership relation.", + "id": "MembershipRelation", + "properties": { + "description": { + "description": "An extended description to help users determine the purpose of a `Group`.", + "type": "string" + }, + "displayName": { + "description": "The display name of the `Group`.", + "type": "string" + }, + "group": { + "description": "The [resource name](https://cloud.google.com/apis/design/resource_names) of the `Group`. Shall be of the form `groups/{group_id}`.", + "type": "string" + }, + "groupKey": { + "$ref": "EntityKey", + "description": "The `EntityKey` of the `Group`." + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "One or more label entries that apply to the Group. Currently supported labels contain a key with an empty value.", + "type": "object" + }, + "membership": { + "description": "The [resource name](https://cloud.google.com/apis/design/resource_names) of the `Membership`. Shall be of the form `groups/{group_id}/memberships/{membership_id}`.", + "type": "string" + }, + "roles": { + "description": "The `MembershipRole`s that apply to the `Membership`.", + "items": { + "$ref": "MembershipRole" + }, + "type": "array" + } + }, + "type": "object" + }, "MembershipRole": { "description": "A membership role within the Cloud Identity Groups API. A `MembershipRole` defines the privileges granted to a `Membership`.", "id": "MembershipRole", @@ -3540,7 +3678,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" } }, @@ -3608,11 +3746,11 @@ "type": "string" }, "logoutRedirectUri": { - "description": "The **Logout Redirect URL** (sign-out page URL) of the identity provider. When a user clicks the sign-out link on a Google page, they will be redirected to this URL. This is a pure redirect with no attached SAML `LogoutRequest` i.e. SAML single logout is currently not supported. Must use `HTTPS`.", + "description": "The **Logout Redirect URL** (sign-out page URL) of the identity provider. When a user clicks the sign-out link on a Google page, they will be redirected to this URL. This is a pure redirect with no attached SAML `LogoutRequest` i.e. SAML single logout is not supported. Must use `HTTPS`.", "type": "string" }, "singleSignOnServiceUri": { - "description": "Required. The `SingleSignOnService` endpoint location (sign-in page URL) of the identity provider. This is the URL where the `AuthnRequest` will be sent. Must use `HTTPS`. Currently assumed to accept the `HTTP-Redirect` binding.", + "description": "Required. The `SingleSignOnService` endpoint location (sign-in page URL) of the identity provider. This is the URL where the `AuthnRequest` will be sent. Must use `HTTPS`. Assumed to accept the `HTTP-Redirect` binding.", "type": "string" } }, @@ -3623,7 +3761,7 @@ "id": "SamlSpConfig", "properties": { "assertionConsumerServiceUri": { - "description": "Output only. The SAML **Assertion Consumer Service (ACS) URL** to be used for the IDP-initiated login. Currently assumed to accept response messages via the `HTTP-POST` binding.", + "description": "Output only. The SAML **Assertion Consumer Service (ACS) URL** to be used for the IDP-initiated login. Assumed to accept response messages via the `HTTP-POST` binding.", "readOnly": true, "type": "string" }, @@ -3646,6 +3784,24 @@ }, "type": "object" }, + "SearchDirectGroupsResponse": { + "description": "The response message for MembershipsService.SearchDirectGroups.", + "id": "SearchDirectGroupsResponse", + "properties": { + "memberships": { + "description": "List of direct groups satisfying the query.", + "items": { + "$ref": "MembershipRelation" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Token to retrieve the next page of results, or empty if there are no more results available for listing.", + "type": "string" + } + }, + "type": "object" + }, "SearchGroupsResponse": { "description": "The response message for GroupsService.SearchGroups.", "id": "SearchGroupsResponse", diff --git a/etc/api/cloudidentity/v1beta1/cloudidentity-api.json b/etc/api/cloudidentity/v1beta1/cloudidentity-api.json index 7da1b6e438..99da603a42 100644 --- a/etc/api/cloudidentity/v1beta1/cloudidentity-api.json +++ b/etc/api/cloudidentity/v1beta1/cloudidentity-api.json @@ -1079,7 +1079,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` or `startsWith/contains/equality` operator on `group_key`, e.g. `domain_name == 'abc.com'`, `group_key.startsWith('dev')`, `group_key.contains('dev'), group_key == 'dev@abc.com'` * Can contain an optional `startsWith/contains/equality` operator 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" }, @@ -1409,6 +1409,54 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "searchDirectGroups": { + "description": "Searches direct groups of a member.", + "flatPath": "v1beta1/groups/{groupsId}/memberships:searchDirectGroups", + "httpMethod": "GET", + "id": "cloudidentity.groups.memberships.searchDirectGroups", + "parameterOrder": [ + "parent" + ], + "parameters": { + "orderBy": { + "description": "The ordering of membership relation for the display name or email in the response. The syntax for this field can be found at https://cloud.google.com/apis/design/design_patterns#sorting_order. Example: Sort by the ascending display name: order_by=\"group_name\" or order_by=\"group_name asc\". Sort by the descending display name: order_by=\"group_name desc\". Sort by the ascending group key: order_by=\"group_key\" or order_by=\"group_key asc\". Sort by the descending group key: order_by=\"group_key desc\".", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The default page size is 200 (max 1000).", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The next_page_token value returned from a previous list request, if any", + "location": "query", + "type": "string" + }, + "parent": { + "description": "[Resource name](https://cloud.google.com/apis/design/resource_names) of the group to search transitive memberships in. Format: groups/{group_id}, where group_id is always '-' as this API will search across all groups for a given member.", + "location": "path", + "pattern": "^groups/[^/]+$", + "required": true, + "type": "string" + }, + "query": { + "description": "Required. A CEL expression that MUST include member specification AND label(s). Users can search on label attributes of groups. CONTAINS match ('in') is supported on labels. Identity-mapped groups are uniquely identified by both a `member_key_id` and a `member_key_namespace`, which requires an additional query input: `member_key_namespace`. Example query: `member_key_id == 'member_key_id_value' && 'label_value' in labels`", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+parent}/memberships:searchDirectGroups", + "response": { + "$ref": "SearchDirectGroupsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-identity.groups", + "https://www.googleapis.com/auth/cloud-identity.groups.readonly", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "searchTransitiveGroups": { "description": "Search transitive groups of a member. **Note:** This feature is only available to Google Workspace Enterprise Standard, Enterprise Plus, and Enterprise for Education; and Cloud Identity Premium accounts. A transitive group is any group that has a direct or indirect membership to the member. Actor must have view permissions all transitive groups.", "flatPath": "v1beta1/groups/{groupsId}/memberships:searchTransitiveGroups", @@ -1437,7 +1485,7 @@ "type": "string" }, "query": { - "description": "Required. A CEL expression that MUST include member specification AND label(s). This is a `required` field. Users can search on label attributes of groups. CONTAINS match ('in') is supported on labels. Identity-mapped groups are uniquely identified by both a `member_key_id` and a `member_key_namespace`, which requires an additional query input: `member_key_namespace`. Example query: `member_key_id == 'member_key_id_value' && in labels`", + "description": "Required. A CEL expression that MUST include member specification AND label(s). This is a `required` field. Users can search on label attributes of groups. CONTAINS match ('in') is supported on labels. Identity-mapped groups are uniquely identified by both a `member_key_id` and a `member_key_namespace`, which requires an additional query input: `member_key_namespace`. Example query: `member_key_id == 'member_key_id_value' && in labels` Query may optionally contain equality operators on the parent of the group restricting the search within a particular customer, e.g. `parent == 'customers/{customer_id}'`. The `customer_id` must begin with \"C\" (for example, 'C046psxkn'). This filtering is only supported for Admins with groups read permissons on the input customer. Example query: `member_key_id == 'member_key_id_value' && in labels && parent == 'customers/C046psxkn'`", "location": "query", "type": "string" } @@ -1572,7 +1620,7 @@ "parameterOrder": [], "parameters": { "filter": { - "description": "A [Common Expression Language](https://github.com/google/cel-spec) expression to filter the results. The only currently-supported filter is filtering by customer. For example: `customer==\"customers/C0123abc\"`. Omitting the filter or specifying a filter of `customer==\"customers/my_customer\"` will return the profiles for the customer that the caller (authenticated user) belongs to.", + "description": "A [Common Expression Language](https://github.com/google/cel-spec) expression to filter the results. The only supported filter is filtering by customer. For example: `customer==\"customers/C0123abc\"`. Omitting the filter or specifying a filter of `customer==\"customers/my_customer\"` will return the profiles for the customer that the caller (authenticated user) belongs to.", "location": "query", "type": "string" }, @@ -1830,7 +1878,7 @@ "parameterOrder": [], "parameters": { "filter": { - "description": "A CEL expression to filter the results. The only currently-supported filter is filtering by customer. For example: `customer==customers/C0123abc`. Omitting the filter or specifying a filter of `customer==customers/my_customer` will return the assignments for the customer that the caller (authenticated user) belongs to.", + "description": "A CEL expression to filter the results. The only supported filter is filtering by customer. For example: `customer==customers/C0123abc`. Omitting the filter or specifying a filter of `customer==customers/my_customer` will return the assignments for the customer that the caller (authenticated user) belongs to.", "location": "query", "type": "string" }, @@ -1967,7 +2015,7 @@ } } }, - "revision": "20230117", + "revision": "20240227", "rootUrl": "https://cloudidentity.googleapis.com/", "schemas": { "AddIdpCredentialOperationMetadata": { @@ -1991,10 +2039,18 @@ "description": "Resource representing the Android specific attributes of a Device.", "id": "AndroidAttributes", "properties": { + "ctsProfileMatch": { + "description": "Whether the device passes Android CTS compliance.", + "type": "boolean" + }, "enabledUnknownSources": { "description": "Whether applications from unknown sources can be installed on device.", "type": "boolean" }, + "hasPotentiallyHarmfulApps": { + "description": "Whether any potentially harmful apps were detected on the device.", + "type": "boolean" + }, "ownerProfileAccount": { "description": "Whether this account is on an owner/primary profile. For phones, only true for owner profiles. Android 4+ devices can have secondary or restricted user profiles.", "type": "boolean" @@ -2018,6 +2074,14 @@ "supportsWorkProfile": { "description": "Whether device supports Android work profiles. If false, this service will not block access to corp data even if an administrator turns on the \"Enforce Work Profile\" policy.", "type": "boolean" + }, + "verifiedBoot": { + "description": "Whether Android verified boot status is GREEN.", + "type": "boolean" + }, + "verifyAppsEnabled": { + "description": "Whether Google Play Protect Verify Apps is enabled.", + "type": "boolean" } }, "type": "object" @@ -2066,6 +2130,128 @@ }, "type": "object" }, + "BrowserAttributes": { + "description": "Contains information about browser profiles reported by the Endpoint Verification extension.", + "id": "BrowserAttributes", + "properties": { + "chromeBrowserInfo": { + "$ref": "BrowserInfo", + "description": "Represents the current state of the [Chrome browser attributes](https://cloud.google.com/access-context-manager/docs/browser-attributes) sent by the Endpoint Verification extension." + }, + "chromeProfileId": { + "description": "Chrome profile ID that is exposed by the Chrome API. It is unique for each device.", + "type": "string" + }, + "lastProfileSyncTime": { + "description": "Timestamp in milliseconds since Epoch when the profile/gcm id was last synced.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "BrowserInfo": { + "description": "Browser-specific fields reported by the Endpoint Verification extension. LINT.IfChange", + "id": "BrowserInfo", + "properties": { + "browserManagementState": { + "description": "Output only. Browser's management state.", + "enum": [ + "UNSPECIFIED", + "UNMANAGED", + "MANAGED_BY_OTHER_DOMAIN", + "PROFILE_MANAGED", + "BROWSER_MANAGED" + ], + "enumDescriptions": [ + "Management state is not specified.", + "Browser/Profile is not managed by any customer.", + "Browser/Profile is managed, but by some other customer.", + "Profile is managed by customer.", + "Browser is managed by customer." + ], + "readOnly": true, + "type": "string" + }, + "browserVersion": { + "description": "Version of the request initiating browser.", + "type": "string" + }, + "isBuiltInDnsClientEnabled": { + "description": "Current state of [built-in DNS client](https://chromeenterprise.google/policies/#BuiltInDnsClientEnabled).", + "type": "boolean" + }, + "isBulkDataEntryAnalysisEnabled": { + "description": "Current state of [bulk data analysis](https://chromeenterprise.google/policies/#OnBulkDataEntryEnterpriseConnector). Set to true if provider list from Chrome is non-empty.", + "type": "boolean" + }, + "isChromeCleanupEnabled": { + "description": "Current state of [Chrome Cleanup](https://chromeenterprise.google/policies/#ChromeCleanupEnabled).", + "type": "boolean" + }, + "isChromeRemoteDesktopAppBlocked": { + "description": "Current state of [Chrome Remote Desktop app](https://chromeenterprise.google/policies/#URLBlocklist).", + "type": "boolean" + }, + "isFileDownloadAnalysisEnabled": { + "description": "Current state of [file download analysis](https://chromeenterprise.google/policies/#OnFileDownloadedEnterpriseConnector). Set to true if provider list from Chrome is non-empty.", + "type": "boolean" + }, + "isFileUploadAnalysisEnabled": { + "description": "Current state of [file upload analysis](https://chromeenterprise.google/policies/#OnFileAttachedEnterpriseConnector). Set to true if provider list from Chrome is non-empty.", + "type": "boolean" + }, + "isRealtimeUrlCheckEnabled": { + "description": "Current state of [real-time URL check](https://chromeenterprise.google/policies/#EnterpriseRealTimeUrlCheckMode). Set to true if provider list from Chrome is non-empty.", + "type": "boolean" + }, + "isSecurityEventAnalysisEnabled": { + "description": "Current state of [security event analysis](https://chromeenterprise.google/policies/#OnSecurityEventEnterpriseConnector). Set to true if provider list from Chrome is non-empty.", + "type": "boolean" + }, + "isSiteIsolationEnabled": { + "description": "Current state of [site isolation](https://chromeenterprise.google/policies/?policy=IsolateOrigins).", + "type": "boolean" + }, + "isThirdPartyBlockingEnabled": { + "description": "Current state of [third-party blocking](https://chromeenterprise.google/policies/#ThirdPartyBlockingEnabled).", + "type": "boolean" + }, + "passwordProtectionWarningTrigger": { + "description": "Current state of [password protection trigger](https://chromeenterprise.google/policies/#PasswordProtectionWarningTrigger).", + "enum": [ + "PASSWORD_PROTECTION_TRIGGER_UNSPECIFIED", + "PROTECTION_OFF", + "PASSWORD_REUSE", + "PHISHING_REUSE" + ], + "enumDescriptions": [ + "Password protection is not specified.", + "Password reuse is never detected.", + "Warning is shown when the user reuses their protected password on a non-allowed site.", + "Warning is shown when the user reuses their protected password on a phishing site." + ], + "type": "string" + }, + "safeBrowsingProtectionLevel": { + "description": "Current state of [Safe Browsing protection level](https://chromeenterprise.google/policies/#SafeBrowsingProtectionLevel).", + "enum": [ + "SAFE_BROWSING_LEVEL_UNSPECIFIED", + "DISABLED", + "STANDARD", + "ENHANCED" + ], + "enumDescriptions": [ + "Browser protection level is not specified.", + "No protection against dangerous websites, downloads, and extensions.", + "Standard protection against websites, downloads, and extensions that are known to be dangerous.", + "Faster, proactive protection against dangerous websites, downloads, and extensions." + ], + "type": "string" + } + }, + "type": "object" + }, "CancelUserInvitationRequest": { "description": "Request to cancel sent invitation for target email in UserInvitation.", "id": "CancelUserInvitationRequest", @@ -2516,7 +2702,7 @@ }, "endpointVerificationSpecificAttributes": { "$ref": "EndpointVerificationSpecificAttributes", - "description": "Output only. Attributes specific to Endpoint Verification devices.", + "description": "Output only. Attributes specific to [Endpoint Verification](https://cloud.google.com/endpoint-verification/docs/overview) devices.", "readOnly": true }, "hostname": { @@ -2750,7 +2936,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" }, @@ -2815,9 +3001,24 @@ "type": "object" }, "EndpointVerificationSpecificAttributes": { - "description": "Resource representing the Endpoint Verification-specific attributes of a Device. https://cloud.google.com/endpoint-verification/docs/overview", + "description": "Resource representing the [Endpoint Verification-specific attributes](https://cloud.google.com/endpoint-verification/docs/device-information) of a device.", "id": "EndpointVerificationSpecificAttributes", "properties": { + "additionalSignals": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Additional signals reported by Endpoint Verification. It includes the following attributes: 1. Non-configurable attributes: hotfixes, av_installed, av_enabled, windows_domain_name, is_os_native_firewall_enabled, and is_secure_boot_enabled. 2. Configurable attributes: file_config, registry_config, and plist_config.", + "type": "object" + }, + "browserAttributes": { + "description": "Details of browser profiles reported by Endpoint Verification.", + "items": { + "$ref": "BrowserAttributes" + }, + "type": "array" + }, "certificateAttributes": { "description": "Details of certificates.", "items": { @@ -2880,10 +3081,18 @@ "description": "Resource representing the Android specific attributes of a Device.", "id": "GoogleAppsCloudidentityDevicesV1AndroidAttributes", "properties": { + "ctsProfileMatch": { + "description": "Whether the device passes Android CTS compliance.", + "type": "boolean" + }, "enabledUnknownSources": { "description": "Whether applications from unknown sources can be installed on device.", "type": "boolean" }, + "hasPotentiallyHarmfulApps": { + "description": "Whether any potentially harmful apps were detected on the device.", + "type": "boolean" + }, "ownerProfileAccount": { "description": "Whether this account is on an owner/primary profile. For phones, only true for owner profiles. Android 4+ devices can have secondary or restricted user profiles.", "type": "boolean" @@ -2907,6 +3116,14 @@ "supportsWorkProfile": { "description": "Whether device supports Android work profiles. If false, this service will not block access to corp data even if an administrator turns on the \"Enforce Work Profile\" policy.", "type": "boolean" + }, + "verifiedBoot": { + "description": "Whether Android verified boot status is GREEN.", + "type": "boolean" + }, + "verifyAppsEnabled": { + "description": "Whether Google Play Protect Verify Apps is enabled.", + "type": "boolean" } }, "type": "object" @@ -3240,6 +3457,10 @@ "readOnly": true, "type": "string" }, + "hostname": { + "description": "Host name of the device.", + "type": "string" + }, "imei": { "description": "Output only. IMEI number of device if GSM device; empty otherwise.", "readOnly": true, @@ -3512,6 +3733,14 @@ "description": "A group within the Cloud Identity Groups API. A `Group` is a collection of entities, where each entity is either a user, another group, or a service account.", "id": "Group", "properties": { + "additionalGroupKeys": { + "description": "Output only. Additional group keys associated with the Group.", + "items": { + "$ref": "EntityKey" + }, + "readOnly": true, + "type": "array" + }, "createTime": { "description": "Output only. The time when the `Group` was created.", "format": "google-datetime", @@ -4026,6 +4255,27 @@ "readOnly": true, "type": "string" }, + "deliverySetting": { + "description": "Output only. Delivery setting associated with the membership.", + "enum": [ + "DELIVERY_SETTING_UNSPECIFIED", + "ALL_MAIL", + "DIGEST", + "DAILY", + "NONE", + "DISABLED" + ], + "enumDescriptions": [ + "Default. Should not be used.", + "Represents each mail should be delivered", + "Represents 1 email for every 25 messages.", + "Represents daily summary of messages.", + "Represents no delivery.", + "Represents disabled state." + ], + "readOnly": true, + "type": "string" + }, "memberKey": { "$ref": "EntityKey", "description": "Immutable. The `EntityKey` of the member. Either `member_key` or `preferred_member_key` must be set when calling MembershipsService.CreateMembership but not both; both shall be set when returned." @@ -4094,6 +4344,47 @@ }, "type": "object" }, + "MembershipRelation": { + "description": "Message containing membership relation.", + "id": "MembershipRelation", + "properties": { + "description": { + "description": "An extended description to help users determine the purpose of a `Group`.", + "type": "string" + }, + "displayName": { + "description": "The display name of the `Group`.", + "type": "string" + }, + "group": { + "description": "The [resource name](https://cloud.google.com/apis/design/resource_names) of the `Group`. Shall be of the form `groups/{group_id}`.", + "type": "string" + }, + "groupKey": { + "$ref": "EntityKey", + "description": "The `EntityKey` of the `Group`." + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "One or more label entries that apply to the Group. Currently supported labels contain a key with an empty value.", + "type": "object" + }, + "membership": { + "description": "The [resource name](https://cloud.google.com/apis/design/resource_names) of the `Membership`. Shall be of the form `groups/{group_id}/memberships/{membership_id}`.", + "type": "string" + }, + "roles": { + "description": "The `MembershipRole`s that apply to the `Membership`.", + "items": { + "$ref": "MembershipRole" + }, + "type": "array" + } + }, + "type": "object" + }, "MembershipRole": { "description": "A membership role within the Cloud Identity Groups API. A `MembershipRole` defines the privileges granted to a `Membership`.", "id": "MembershipRole", @@ -4222,7 +4513,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" } }, @@ -4341,11 +4632,11 @@ "type": "string" }, "logoutRedirectUri": { - "description": "The **Logout Redirect URL** (sign-out page URL) of the identity provider. When a user clicks the sign-out link on a Google page, they will be redirected to this URL. This is a pure redirect with no attached SAML `LogoutRequest` i.e. SAML single logout is currently not supported. Must use `HTTPS`.", + "description": "The **Logout Redirect URL** (sign-out page URL) of the identity provider. When a user clicks the sign-out link on a Google page, they will be redirected to this URL. This is a pure redirect with no attached SAML `LogoutRequest` i.e. SAML single logout is not supported. Must use `HTTPS`.", "type": "string" }, "singleSignOnServiceUri": { - "description": "Required. The `SingleSignOnService` endpoint location (sign-in page URL) of the identity provider. This is the URL where the `AuthnRequest` will be sent. Must use `HTTPS`. Currently assumed to accept the `HTTP-Redirect` binding.", + "description": "Required. The `SingleSignOnService` endpoint location (sign-in page URL) of the identity provider. This is the URL where the `AuthnRequest` will be sent. Must use `HTTPS`. Assumed to accept the `HTTP-Redirect` binding.", "type": "string" } }, @@ -4356,7 +4647,7 @@ "id": "SamlSpConfig", "properties": { "assertionConsumerServiceUri": { - "description": "Output only. The SAML **Assertion Consumer Service (ACS) URL** to be used for the IDP-initiated login. Currently assumed to accept response messages via the `HTTP-POST` binding.", + "description": "Output only. The SAML **Assertion Consumer Service (ACS) URL** to be used for the IDP-initiated login. Assumed to accept response messages via the `HTTP-POST` binding.", "readOnly": true, "type": "string" }, @@ -4379,6 +4670,24 @@ }, "type": "object" }, + "SearchDirectGroupsResponse": { + "description": "The response message for MembershipsService.SearchDirectGroups.", + "id": "SearchDirectGroupsResponse", + "properties": { + "memberships": { + "description": "List of direct groups satisfying the query.", + "items": { + "$ref": "MembershipRelation" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Token to retrieve the next page of results, or empty if there are no more results available for listing.", + "type": "string" + } + }, + "type": "object" + }, "SearchGroupsResponse": { "description": "The response message for GroupsService.SearchGroups.", "id": "SearchGroupsResponse", diff --git a/etc/api/cloudiot/v1/cloudiot-api.json b/etc/api/cloudiot/v1/cloudiot-api.json index 3cc573e9a4..32eaf7e449 100644 --- a/etc/api/cloudiot/v1/cloudiot-api.json +++ b/etc/api/cloudiot/v1/cloudiot-api.json @@ -938,7 +938,7 @@ } } }, - "revision": "20230102", + "revision": "0", "rootUrl": "https://cloudiot.googleapis.com/", "schemas": { "BindDeviceToGatewayRequest": { @@ -971,14 +971,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1442,7 +1442,7 @@ "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/).", + "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": { "bindings": { diff --git a/etc/api/cloudkms/v1/cloudkms-api.json b/etc/api/cloudkms/v1/cloudkms-api.json index b3bb018958..8dd63588be 100644 --- a/etc/api/cloudkms/v1/cloudkms-api.json +++ b/etc/api/cloudkms/v1/cloudkms-api.json @@ -18,6 +18,23 @@ "description": "Manages keys and performs cryptographic operations in a central cloud service, for direct use by other cloud resources and applications. ", "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/", + "location": "me-central2" + } + ], "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -167,6 +184,32 @@ "https://www.googleapis.com/auth/cloudkms" ] }, + "getEkmConfig": { + "description": "Returns the EkmConfig singleton resource for a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/ekmConfig", + "httpMethod": "GET", + "id": "cloudkms.projects.locations.getEkmConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the EkmConfig to get.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/ekmConfig$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "EkmConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudkms" + ] + }, "list": { "description": "Lists information about the supported locations for this service.", "flatPath": "v1/projects/{projectsId}/locations", @@ -208,6 +251,41 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloudkms" ] + }, + "updateEkmConfig": { + "description": "Updates the EkmConfig singleton resource for a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/ekmConfig", + "httpMethod": "PATCH", + "id": "cloudkms.projects.locations.updateEkmConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The resource name for the EkmConfig in the format `projects/*/locations/*/ekmConfig`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/ekmConfig$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. List of fields to be updated in this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "EkmConfig" + }, + "response": { + "$ref": "EkmConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudkms" + ] } }, "resources": { @@ -538,6 +616,32 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloudkms" ] + }, + "verifyConnectivity": { + "description": "Verifies that Cloud KMS can successfully connect to the external key manager specified by an EkmConnection. If there is an error connecting to the EKM, this method returns a FAILED_PRECONDITION status containing structured information as described at https://cloud.google.com/kms/docs/reference/ekm_errors.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/ekmConnections/{ekmConnectionsId}:verifyConnectivity", + "httpMethod": "GET", + "id": "cloudkms.projects.locations.ekmConnections.verifyConnectivity", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the EkmConnection to verify.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/ekmConnections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:verifyConnectivity", + "response": { + "$ref": "VerifyConnectivityResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudkms" + ] } } }, @@ -1435,6 +1539,64 @@ "https://www.googleapis.com/auth/cloudkms" ] }, + "rawDecrypt": { + "description": "Decrypts data that was originally encrypted using a raw cryptographic mechanism. The CryptoKey.purpose must be RAW_ENCRYPT_DECRYPT.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}/cryptoKeyVersions/{cryptoKeyVersionsId}:rawDecrypt", + "httpMethod": "POST", + "id": "cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.rawDecrypt", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the CryptoKeyVersion to use for decryption.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+/cryptoKeyVersions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:rawDecrypt", + "request": { + "$ref": "RawDecryptRequest" + }, + "response": { + "$ref": "RawDecryptResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudkms" + ] + }, + "rawEncrypt": { + "description": "Encrypts data using portable cryptographic primitives. Most users should choose Encrypt and Decrypt rather than their raw counterparts. The CryptoKey.purpose must be RAW_ENCRYPT_DECRYPT.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}/cryptoKeyVersions/{cryptoKeyVersionsId}:rawEncrypt", + "httpMethod": "POST", + "id": "cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.rawEncrypt", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the CryptoKeyVersion to use for encryption.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+/cryptoKeyVersions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:rawEncrypt", + "request": { + "$ref": "RawEncryptRequest" + }, + "response": { + "$ref": "RawEncryptResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudkms" + ] + }, "restore": { "description": "Restore a CryptoKeyVersion in the DESTROY_SCHEDULED state. Upon restoration of the CryptoKeyVersion, state will be set to DISABLED, and destroy_time will be cleared.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}/cryptoKeyVersions/{cryptoKeyVersionsId}:restore", @@ -1676,7 +1838,7 @@ } } }, - "revision": "20230106", + "revision": "20240219", "rootUrl": "https://cloudkms.googleapis.com/", "schemas": { "AsymmetricDecryptRequest": { @@ -1865,14 +2027,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -2015,6 +2177,7 @@ "ENCRYPT_DECRYPT", "ASYMMETRIC_SIGN", "ASYMMETRIC_DECRYPT", + "RAW_ENCRYPT_DECRYPT", "MAC" ], "enumDescriptions": [ @@ -2022,6 +2185,7 @@ "CryptoKeys with this purpose may be used with Encrypt and Decrypt.", "CryptoKeys with this purpose may be used with AsymmetricSign and GetPublicKey.", "CryptoKeys with this purpose may be used with AsymmetricDecrypt and GetPublicKey.", + "CryptoKeys with this purpose may be used with RawEncrypt and RawDecrypt. This purpose is meant to be used for interoperable symmetric encryption and does not support automatic CryptoKey rotation.", "CryptoKeys with this purpose may be used with MacSign." ], "type": "string" @@ -2047,6 +2211,12 @@ "enum": [ "CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED", "GOOGLE_SYMMETRIC_ENCRYPTION", + "AES_128_GCM", + "AES_256_GCM", + "AES_128_CBC", + "AES_256_CBC", + "AES_128_CTR", + "AES_256_CTR", "RSA_SIGN_PSS_2048_SHA256", "RSA_SIGN_PSS_3072_SHA256", "RSA_SIGN_PSS_4096_SHA256", @@ -2078,6 +2248,12 @@ "enumDescriptions": [ "Not specified.", "Creates symmetric encryption keys.", + "AES-GCM (Galois Counter Mode) using 128-bit keys.", + "AES-GCM (Galois Counter Mode) using 256-bit keys.", + "AES-CBC (Cipher Block Chaining Mode) using 128-bit keys.", + "AES-CBC (Cipher Block Chaining Mode) using 256-bit keys.", + "AES-CTR (Counter Mode) using 128-bit keys.", + "AES-CTR (Counter Mode) using 256-bit keys.", "RSASSA-PSS 2048 bit key with a SHA256 digest.", "RSASSA-PSS 3072 bit key with a SHA256 digest.", "RSASSA-PSS 4096 bit key with a SHA256 digest.", @@ -2096,9 +2272,9 @@ "RSAES-OAEP 2048 bit key with a SHA1 digest.", "RSAES-OAEP 3072 bit key with a SHA1 digest.", "RSAES-OAEP 4096 bit key with a SHA1 digest.", - "ECDSA on the NIST P-256 curve with a SHA256 digest.", - "ECDSA on the NIST P-384 curve with a SHA384 digest.", - "ECDSA on the non-NIST secp256k1 curve. This curve is only supported for HSM protection level.", + "ECDSA on the NIST P-256 curve with a SHA256 digest. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", + "ECDSA on the NIST P-384 curve with a SHA384 digest. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", + "ECDSA on the non-NIST secp256k1 curve. This curve is only supported for HSM protection level. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", "HMAC-SHA256 signing with a 256 bit key.", "HMAC-SHA1 signing with a 160 bit key.", "HMAC-SHA384 signing with a 384 bit key.", @@ -2132,6 +2308,11 @@ "readOnly": true, "type": "string" }, + "externalDestructionFailureReason": { + "description": "Output only. The root cause of the most recent external destruction failure. Only present if state is EXTERNAL_DESTRUCTION_FAILED.", + "readOnly": true, + "type": "string" + }, "externalProtectionLevelOptions": { "$ref": "ExternalProtectionLevelOptions", "description": "ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels." @@ -2142,6 +2323,11 @@ "readOnly": true, "type": "string" }, + "generationFailureReason": { + "description": "Output only. The root cause of the most recent generation failure. Only present if state is GENERATION_FAILED.", + "readOnly": true, + "type": "string" + }, "importFailureReason": { "description": "Output only. The root cause of the most recent import failure. Only present if state is IMPORT_FAILED.", "readOnly": true, @@ -2197,7 +2383,10 @@ "DESTROYED", "DESTROY_SCHEDULED", "PENDING_IMPORT", - "IMPORT_FAILED" + "IMPORT_FAILED", + "GENERATION_FAILED", + "PENDING_EXTERNAL_DESTRUCTION", + "EXTERNAL_DESTRUCTION_FAILED" ], "enumDescriptions": [ "Not specified.", @@ -2207,7 +2396,10 @@ "This version is destroyed, and the key material is no longer stored. This version may only become ENABLED again if this version is reimport_eligible and the original key material is reimported with a call to KeyManagementService.ImportCryptoKeyVersion.", "This version is scheduled for destruction, and will be destroyed soon. Call RestoreCryptoKeyVersion to put it back into the DISABLED state.", "This version is still being imported. It may not be used, enabled, disabled, or destroyed yet. Cloud KMS will automatically mark this version ENABLED as soon as the version is ready.", - "This version was not imported successfully. It may not be used, enabled, disabled, or destroyed. The submitted key material has been discarded. Additional details can be found in CryptoKeyVersion.import_failure_reason." + "This version was not imported successfully. It may not be used, enabled, disabled, or destroyed. The submitted key material has been discarded. Additional details can be found in CryptoKeyVersion.import_failure_reason.", + "This version was not generated successfully. It may not be used, enabled, disabled, or destroyed. Additional details can be found in CryptoKeyVersion.generation_failure_reason.", + "This version was destroyed, and it may not be used or enabled again. Cloud KMS is waiting for the corresponding key material residing in an external key manager to be destroyed.", + "This version was destroyed, and it may not be used or enabled again. However, Cloud KMS could not confirm that the corresponding key material residing in an external key manager was destroyed. Additional details can be found in CryptoKeyVersion.external_destruction_failure_reason." ], "type": "string" } @@ -2223,6 +2415,12 @@ "enum": [ "CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED", "GOOGLE_SYMMETRIC_ENCRYPTION", + "AES_128_GCM", + "AES_256_GCM", + "AES_128_CBC", + "AES_256_CBC", + "AES_128_CTR", + "AES_256_CTR", "RSA_SIGN_PSS_2048_SHA256", "RSA_SIGN_PSS_3072_SHA256", "RSA_SIGN_PSS_4096_SHA256", @@ -2254,6 +2452,12 @@ "enumDescriptions": [ "Not specified.", "Creates symmetric encryption keys.", + "AES-GCM (Galois Counter Mode) using 128-bit keys.", + "AES-GCM (Galois Counter Mode) using 256-bit keys.", + "AES-CBC (Cipher Block Chaining Mode) using 128-bit keys.", + "AES-CBC (Cipher Block Chaining Mode) using 256-bit keys.", + "AES-CTR (Counter Mode) using 128-bit keys.", + "AES-CTR (Counter Mode) using 256-bit keys.", "RSASSA-PSS 2048 bit key with a SHA256 digest.", "RSASSA-PSS 3072 bit key with a SHA256 digest.", "RSASSA-PSS 4096 bit key with a SHA256 digest.", @@ -2272,9 +2476,9 @@ "RSAES-OAEP 2048 bit key with a SHA1 digest.", "RSAES-OAEP 3072 bit key with a SHA1 digest.", "RSAES-OAEP 4096 bit key with a SHA1 digest.", - "ECDSA on the NIST P-256 curve with a SHA256 digest.", - "ECDSA on the NIST P-384 curve with a SHA384 digest.", - "ECDSA on the non-NIST secp256k1 curve. This curve is only supported for HSM protection level.", + "ECDSA on the NIST P-256 curve with a SHA256 digest. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", + "ECDSA on the NIST P-384 curve with a SHA384 digest. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", + "ECDSA on the non-NIST secp256k1 curve. This curve is only supported for HSM protection level. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", "HMAC-SHA256 signing with a 256 bit key.", "HMAC-SHA1 signing with a 160 bit key.", "HMAC-SHA384 signing with a 384 bit key.", @@ -2399,6 +2603,22 @@ }, "type": "object" }, + "EkmConfig": { + "description": "An EkmConfig is a singleton resource that represents configuration parameters that apply to all CryptoKeys and CryptoKeyVersions with a ProtectionLevel of EXTERNAL_VPC in a given project and location.", + "id": "EkmConfig", + "properties": { + "defaultEkmConnection": { + "description": "Optional. Resource name of the default EkmConnection. Setting this field to the empty string removes the default.", + "type": "string" + }, + "name": { + "description": "Output only. The resource name for the EkmConfig in the format `projects/*/locations/*/ekmConfig`.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "EkmConnection": { "description": "An EkmConnection represents an individual EKM connection. It can be used for creating CryptoKeys and CryptoKeyVersions with a ProtectionLevel of EXTERNAL_VPC, as well as performing cryptographic operations using keys created within the EkmConnection.", "id": "EkmConnection", @@ -2409,10 +2629,28 @@ "readOnly": true, "type": "string" }, + "cryptoSpacePath": { + "description": "Optional. Identifies the EKM Crypto Space that this EkmConnection maps to. Note: This field is required if KeyManagementMode is CLOUD_KMS.", + "type": "string" + }, "etag": { "description": "Optional. Etag of the currently stored EkmConnection.", "type": "string" }, + "keyManagementMode": { + "description": "Optional. Describes who can perform control plane operations on the EKM. If unset, this defaults to MANUAL.", + "enum": [ + "KEY_MANAGEMENT_MODE_UNSPECIFIED", + "MANUAL", + "CLOUD_KMS" + ], + "enumDescriptions": [ + "Not specified.", + "EKM-side key management operations on CryptoKeys created with this EkmConnection must be initiated from the EKM directly and cannot be performed from Cloud KMS. This means that: * When creating a CryptoKeyVersion associated with this EkmConnection, the caller must supply the key path of pre-existing external key material that will be linked to the CryptoKeyVersion. * Destruction of external key material cannot be requested via the Cloud KMS API and must be performed directly in the EKM. * Automatic rotation of key material is not supported.", + "All CryptoKeys created with this EkmConnection use EKM-side key management operations initiated from Cloud KMS. This means that: * When a CryptoKeyVersion associated with this EkmConnection is created, the EKM automatically generates new key material and a new key path. The caller cannot supply the key path of pre-existing external key material. * Destruction of external key material associated with this EkmConnection can be requested by calling DestroyCryptoKeyVersion. * Automatic rotation of key material is supported." + ], + "type": "string" + }, "name": { "description": "Output only. The resource name for the EkmConnection in the format `projects/*/locations/*/ekmConnections/*`.", "readOnly": true, @@ -2596,6 +2834,12 @@ "enum": [ "CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED", "GOOGLE_SYMMETRIC_ENCRYPTION", + "AES_128_GCM", + "AES_256_GCM", + "AES_128_CBC", + "AES_256_CBC", + "AES_128_CTR", + "AES_256_CTR", "RSA_SIGN_PSS_2048_SHA256", "RSA_SIGN_PSS_3072_SHA256", "RSA_SIGN_PSS_4096_SHA256", @@ -2627,6 +2871,12 @@ "enumDescriptions": [ "Not specified.", "Creates symmetric encryption keys.", + "AES-GCM (Galois Counter Mode) using 128-bit keys.", + "AES-GCM (Galois Counter Mode) using 256-bit keys.", + "AES-CBC (Cipher Block Chaining Mode) using 128-bit keys.", + "AES-CBC (Cipher Block Chaining Mode) using 256-bit keys.", + "AES-CTR (Counter Mode) using 128-bit keys.", + "AES-CTR (Counter Mode) using 256-bit keys.", "RSASSA-PSS 2048 bit key with a SHA256 digest.", "RSASSA-PSS 3072 bit key with a SHA256 digest.", "RSASSA-PSS 4096 bit key with a SHA256 digest.", @@ -2645,9 +2895,9 @@ "RSAES-OAEP 2048 bit key with a SHA1 digest.", "RSAES-OAEP 3072 bit key with a SHA1 digest.", "RSAES-OAEP 4096 bit key with a SHA1 digest.", - "ECDSA on the NIST P-256 curve with a SHA256 digest.", - "ECDSA on the NIST P-384 curve with a SHA384 digest.", - "ECDSA on the non-NIST secp256k1 curve. This curve is only supported for HSM protection level.", + "ECDSA on the NIST P-256 curve with a SHA256 digest. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", + "ECDSA on the NIST P-384 curve with a SHA384 digest. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", + "ECDSA on the non-NIST secp256k1 curve. This curve is only supported for HSM protection level. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", "HMAC-SHA256 signing with a 256 bit key.", "HMAC-SHA1 signing with a 160 bit key.", "HMAC-SHA384 signing with a 384 bit key.", @@ -2966,7 +3216,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -3147,7 +3397,7 @@ "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/).", + "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": { @@ -3178,7 +3428,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": { @@ -3186,6 +3436,12 @@ "enum": [ "CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED", "GOOGLE_SYMMETRIC_ENCRYPTION", + "AES_128_GCM", + "AES_256_GCM", + "AES_128_CBC", + "AES_256_CBC", + "AES_128_CTR", + "AES_256_CTR", "RSA_SIGN_PSS_2048_SHA256", "RSA_SIGN_PSS_3072_SHA256", "RSA_SIGN_PSS_4096_SHA256", @@ -3217,6 +3473,12 @@ "enumDescriptions": [ "Not specified.", "Creates symmetric encryption keys.", + "AES-GCM (Galois Counter Mode) using 128-bit keys.", + "AES-GCM (Galois Counter Mode) using 256-bit keys.", + "AES-CBC (Cipher Block Chaining Mode) using 128-bit keys.", + "AES-CBC (Cipher Block Chaining Mode) using 256-bit keys.", + "AES-CTR (Counter Mode) using 128-bit keys.", + "AES-CTR (Counter Mode) using 256-bit keys.", "RSASSA-PSS 2048 bit key with a SHA256 digest.", "RSASSA-PSS 3072 bit key with a SHA256 digest.", "RSASSA-PSS 4096 bit key with a SHA256 digest.", @@ -3235,9 +3497,9 @@ "RSAES-OAEP 2048 bit key with a SHA1 digest.", "RSAES-OAEP 3072 bit key with a SHA1 digest.", "RSAES-OAEP 4096 bit key with a SHA1 digest.", - "ECDSA on the NIST P-256 curve with a SHA256 digest.", - "ECDSA on the NIST P-384 curve with a SHA384 digest.", - "ECDSA on the non-NIST secp256k1 curve. This curve is only supported for HSM protection level.", + "ECDSA on the NIST P-256 curve with a SHA256 digest. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", + "ECDSA on the NIST P-384 curve with a SHA384 digest. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", + "ECDSA on the non-NIST secp256k1 curve. This curve is only supported for HSM protection level. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms", "HMAC-SHA256 signing with a 256 bit key.", "HMAC-SHA1 signing with a 160 bit key.", "HMAC-SHA384 signing with a 384 bit key.", @@ -3252,11 +3514,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" }, @@ -3281,6 +3543,198 @@ }, "type": "object" }, + "RawDecryptRequest": { + "description": "Request message for KeyManagementService.RawDecrypt.", + "id": "RawDecryptRequest", + "properties": { + "additionalAuthenticatedData": { + "description": "Optional. Optional data that must match the data originally supplied in RawEncryptRequest.additional_authenticated_data.", + "format": "byte", + "type": "string" + }, + "additionalAuthenticatedDataCrc32c": { + "description": "Optional. An optional CRC32C checksum of the RawDecryptRequest.additional_authenticated_data. If specified, KeyManagementService will verify the integrity of the received additional_authenticated_data using this checksum. KeyManagementService will report an error if the checksum verification fails. If you receive a checksum error, your client should verify that CRC32C(additional_authenticated_data) is equal to additional_authenticated_data_crc32c, and if so, perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type.", + "format": "int64", + "type": "string" + }, + "ciphertext": { + "description": "Required. The encrypted data originally returned in RawEncryptResponse.ciphertext.", + "format": "byte", + "type": "string" + }, + "ciphertextCrc32c": { + "description": "Optional. An optional CRC32C checksum of the RawDecryptRequest.ciphertext. If specified, KeyManagementService will verify the integrity of the received ciphertext using this checksum. KeyManagementService will report an error if the checksum verification fails. If you receive a checksum error, your client should verify that CRC32C(ciphertext) is equal to ciphertext_crc32c, and if so, perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type.", + "format": "int64", + "type": "string" + }, + "initializationVector": { + "description": "Required. The initialization vector (IV) used during encryption, which must match the data originally provided in RawEncryptResponse.initialization_vector.", + "format": "byte", + "type": "string" + }, + "initializationVectorCrc32c": { + "description": "Optional. An optional CRC32C checksum of the RawDecryptRequest.initialization_vector. If specified, KeyManagementService will verify the integrity of the received initialization_vector using this checksum. KeyManagementService will report an error if the checksum verification fails. If you receive a checksum error, your client should verify that CRC32C(initialization_vector) is equal to initialization_vector_crc32c, and if so, perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type.", + "format": "int64", + "type": "string" + }, + "tagLength": { + "description": "The length of the authentication tag that is appended to the end of the ciphertext. If unspecified (0), the default value for the key's algorithm will be used (for AES-GCM, the default value is 16).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "RawDecryptResponse": { + "description": "Response message for KeyManagementService.RawDecrypt.", + "id": "RawDecryptResponse", + "properties": { + "plaintext": { + "description": "The decrypted data.", + "format": "byte", + "type": "string" + }, + "plaintextCrc32c": { + "description": "Integrity verification field. A CRC32C checksum of the returned RawDecryptResponse.plaintext. An integrity check of plaintext can be performed by computing the CRC32C checksum of plaintext and comparing your results to this field. Discard the response in case of non-matching checksum values, and perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: receiving this response message indicates that KeyManagementService is able to successfully decrypt the ciphertext. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type.", + "format": "int64", + "type": "string" + }, + "protectionLevel": { + "description": "The ProtectionLevel of the CryptoKeyVersion used in decryption.", + "enum": [ + "PROTECTION_LEVEL_UNSPECIFIED", + "SOFTWARE", + "HSM", + "EXTERNAL", + "EXTERNAL_VPC" + ], + "enumDescriptions": [ + "Not specified.", + "Crypto operations are performed in software.", + "Crypto operations are performed in a Hardware Security Module.", + "Crypto operations are performed by an external key manager.", + "Crypto operations are performed in an EKM-over-VPC backend." + ], + "type": "string" + }, + "verifiedAdditionalAuthenticatedDataCrc32c": { + "description": "Integrity verification field. A flag indicating whether RawDecryptRequest.additional_authenticated_data_crc32c was received by KeyManagementService and used for the integrity verification of additional_authenticated_data. A false value of this field indicates either that // RawDecryptRequest.additional_authenticated_data_crc32c was left unset or that it was not delivered to KeyManagementService. If you've set RawDecryptRequest.additional_authenticated_data_crc32c but this field is still false, discard the response and perform a limited number of retries.", + "type": "boolean" + }, + "verifiedCiphertextCrc32c": { + "description": "Integrity verification field. A flag indicating whether RawDecryptRequest.ciphertext_crc32c was received by KeyManagementService and used for the integrity verification of the ciphertext. A false value of this field indicates either that RawDecryptRequest.ciphertext_crc32c was left unset or that it was not delivered to KeyManagementService. If you've set RawDecryptRequest.ciphertext_crc32c but this field is still false, discard the response and perform a limited number of retries.", + "type": "boolean" + }, + "verifiedInitializationVectorCrc32c": { + "description": "Integrity verification field. A flag indicating whether RawDecryptRequest.initialization_vector_crc32c was received by KeyManagementService and used for the integrity verification of initialization_vector. A false value of this field indicates either that RawDecryptRequest.initialization_vector_crc32c was left unset or that it was not delivered to KeyManagementService. If you've set RawDecryptRequest.initialization_vector_crc32c but this field is still false, discard the response and perform a limited number of retries.", + "type": "boolean" + } + }, + "type": "object" + }, + "RawEncryptRequest": { + "description": "Request message for KeyManagementService.RawEncrypt.", + "id": "RawEncryptRequest", + "properties": { + "additionalAuthenticatedData": { + "description": "Optional. Optional data that, if specified, must also be provided during decryption through RawDecryptRequest.additional_authenticated_data. This field may only be used in conjunction with an algorithm that accepts additional authenticated data (for example, AES-GCM). The maximum size depends on the key version's protection_level. For SOFTWARE keys, the plaintext must be no larger than 64KiB. For HSM keys, the combined length of the plaintext and additional_authenticated_data fields must be no larger than 8KiB.", + "format": "byte", + "type": "string" + }, + "additionalAuthenticatedDataCrc32c": { + "description": "Optional. An optional CRC32C checksum of the RawEncryptRequest.additional_authenticated_data. If specified, KeyManagementService will verify the integrity of the received additional_authenticated_data using this checksum. KeyManagementService will report an error if the checksum verification fails. If you receive a checksum error, your client should verify that CRC32C(additional_authenticated_data) is equal to additional_authenticated_data_crc32c, and if so, perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type.", + "format": "int64", + "type": "string" + }, + "initializationVector": { + "description": "Optional. A customer-supplied initialization vector that will be used for encryption. If it is not provided for AES-CBC and AES-CTR, one will be generated. It will be returned in RawEncryptResponse.initialization_vector.", + "format": "byte", + "type": "string" + }, + "initializationVectorCrc32c": { + "description": "Optional. An optional CRC32C checksum of the RawEncryptRequest.initialization_vector. If specified, KeyManagementService will verify the integrity of the received initialization_vector using this checksum. KeyManagementService will report an error if the checksum verification fails. If you receive a checksum error, your client should verify that CRC32C(initialization_vector) is equal to initialization_vector_crc32c, and if so, perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type.", + "format": "int64", + "type": "string" + }, + "plaintext": { + "description": "Required. The data to encrypt. Must be no larger than 64KiB. The maximum size depends on the key version's protection_level. For SOFTWARE keys, the plaintext must be no larger than 64KiB. For HSM keys, the combined length of the plaintext and additional_authenticated_data fields must be no larger than 8KiB.", + "format": "byte", + "type": "string" + }, + "plaintextCrc32c": { + "description": "Optional. An optional CRC32C checksum of the RawEncryptRequest.plaintext. If specified, KeyManagementService will verify the integrity of the received plaintext using this checksum. KeyManagementService will report an error if the checksum verification fails. If you receive a checksum error, your client should verify that CRC32C(plaintext) is equal to plaintext_crc32c, and if so, perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "RawEncryptResponse": { + "description": "Response message for KeyManagementService.RawEncrypt.", + "id": "RawEncryptResponse", + "properties": { + "ciphertext": { + "description": "The encrypted data. In the case of AES-GCM, the authentication tag is the tag_length bytes at the end of this field.", + "format": "byte", + "type": "string" + }, + "ciphertextCrc32c": { + "description": "Integrity verification field. A CRC32C checksum of the returned RawEncryptResponse.ciphertext. An integrity check of ciphertext can be performed by computing the CRC32C checksum of ciphertext and comparing your results to this field. Discard the response in case of non-matching checksum values, and perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type.", + "format": "int64", + "type": "string" + }, + "initializationVector": { + "description": "The initialization vector (IV) generated by the service during encryption. This value must be stored and provided in RawDecryptRequest.initialization_vector at decryption time.", + "format": "byte", + "type": "string" + }, + "initializationVectorCrc32c": { + "description": "Integrity verification field. A CRC32C checksum of the returned RawEncryptResponse.initialization_vector. An integrity check of initialization_vector can be performed by computing the CRC32C checksum of initialization_vector 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.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "The resource name of the CryptoKeyVersion used in encryption. Check this field to verify that the intended resource was used for encryption.", + "type": "string" + }, + "protectionLevel": { + "description": "The ProtectionLevel of the CryptoKeyVersion used in encryption.", + "enum": [ + "PROTECTION_LEVEL_UNSPECIFIED", + "SOFTWARE", + "HSM", + "EXTERNAL", + "EXTERNAL_VPC" + ], + "enumDescriptions": [ + "Not specified.", + "Crypto operations are performed in software.", + "Crypto operations are performed in a Hardware Security Module.", + "Crypto operations are performed by an external key manager.", + "Crypto operations are performed in an EKM-over-VPC backend." + ], + "type": "string" + }, + "tagLength": { + "description": "The length of the authentication tag that is appended to the end of the ciphertext.", + "format": "int32", + "type": "integer" + }, + "verifiedAdditionalAuthenticatedDataCrc32c": { + "description": "Integrity verification field. A flag indicating whether RawEncryptRequest.additional_authenticated_data_crc32c was received by KeyManagementService and used for the integrity verification of additional_authenticated_data. A false value of this field indicates either that // RawEncryptRequest.additional_authenticated_data_crc32c was left unset or that it was not delivered to KeyManagementService. If you've set RawEncryptRequest.additional_authenticated_data_crc32c but this field is still false, discard the response and perform a limited number of retries.", + "type": "boolean" + }, + "verifiedInitializationVectorCrc32c": { + "description": "Integrity verification field. A flag indicating whether RawEncryptRequest.initialization_vector_crc32c was received by KeyManagementService and used for the integrity verification of initialization_vector. A false value of this field indicates either that RawEncryptRequest.initialization_vector_crc32c was left unset or that it was not delivered to KeyManagementService. If you've set RawEncryptRequest.initialization_vector_crc32c but this field is still false, discard the response and perform a limited number of retries.", + "type": "boolean" + }, + "verifiedPlaintextCrc32c": { + "description": "Integrity verification field. A flag indicating whether RawEncryptRequest.plaintext_crc32c was received by KeyManagementService and used for the integrity verification of the plaintext. A false value of this field indicates either that RawEncryptRequest.plaintext_crc32c was left unset or that it was not delivered to KeyManagementService. If you've set RawEncryptRequest.plaintext_crc32c but this field is still false, discard the response and perform a limited number of retries.", + "type": "boolean" + } + }, + "type": "object" + }, "RestoreCryptoKeyVersionRequest": { "description": "Request message for KeyManagementService.RestoreCryptoKeyVersion.", "id": "RestoreCryptoKeyVersionRequest", @@ -3368,6 +3822,12 @@ }, "type": "object" }, + "VerifyConnectivityResponse": { + "description": "Response message for EkmService.VerifyConnectivity.", + "id": "VerifyConnectivityResponse", + "properties": {}, + "type": "object" + }, "WrappingPublicKey": { "description": "The public key component of the wrapping key. For details of the type of key this public key corresponds to, see the ImportMethod.", "id": "WrappingPublicKey", diff --git a/etc/api/cloudprofiler/v2/cloudprofiler-api.json b/etc/api/cloudprofiler/v2/cloudprofiler-api.json index 1bf39b59d2..0e64258da7 100644 --- a/etc/api/cloudprofiler/v2/cloudprofiler-api.json +++ b/etc/api/cloudprofiler/v2/cloudprofiler-api.json @@ -116,7 +116,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", @@ -146,7 +146,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", @@ -175,8 +175,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", @@ -216,7 +254,7 @@ } } }, - "revision": "20230123", + "revision": "20240219", "rootUrl": "https://cloudprofiler.googleapis.com/", "schemas": { "CreateProfileRequest": { @@ -225,10 +263,10 @@ "properties": { "deployment": { "$ref": "Deployment", - "description": "Required. Deployment details." + "description": "Deployment details." }, "profileType": { - "description": "Required. One or more profile types that the agent is capable of providing.", + "description": "One or more profile types that the agent is capable of providing.", "items": { "enum": [ "PROFILE_TYPE_UNSPECIFIED", @@ -279,6 +317,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", @@ -332,13 +393,19 @@ "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" } }, "servicePath": "", - "title": "Stackdriver Profiler API", + "title": "Cloud Profiler API", "version": "v2", "version_module": true } \ No newline at end of file diff --git a/etc/api/cloudresourcemanager/v1/cloudresourcemanager-api.json b/etc/api/cloudresourcemanager/v1/cloudresourcemanager-api.json index fe4c2c2a4b..aadfc48a5e 100644 --- a/etc/api/cloudresourcemanager/v1/cloudresourcemanager-api.json +++ b/etc/api/cloudresourcemanager/v1/cloudresourcemanager-api.json @@ -624,7 +624,7 @@ ] }, "search": { - "description": "Searches Organization resources that are visible to the user and satisfy the specified filter. This method returns Organizations in an unspecified order. New Organizations do not necessarily appear at the end of the results. Search will only return organizations on which the user has the permission `resourcemanager.organizations.get`", + "description": "Searches Organization resources that are visible to the user and satisfy the specified filter. This method returns Organizations in an unspecified order. New Organizations do not necessarily appear at the end of the results. Search will only return organizations on which the user has the permission `resourcemanager.organizations.get` or has super admin privileges.", "flatPath": "v1/organizations:search", "httpMethod": "POST", "id": "cloudresourcemanager.organizations.search", @@ -1032,7 +1032,7 @@ ] }, "setIamPolicy": { - "description": "Sets the IAM access control policy for the specified Project. CAUTION: This method will replace the existing policy, and cannot be used to append additional IAM settings. NOTE: Removing service accounts from policies or changing their roles can render services completely inoperable. It is important to understand how the service account is being used before removing or updating its roles. For additional information about `resource` (e.g. my-project-id) structure and identification, see [Resource Names](https://cloud.google.com/apis/design/resource_names). The following constraints apply when using `setIamPolicy()`: + Project does not support `allUsers` and `allAuthenticatedUsers` as `members` in a `Binding` of a `Policy`. + The owner role can be granted to a `user`, `serviceAccount`, or a group that is part of an organization. For example, group@myownpersonaldomain.com could be added as an owner to a project in the myownpersonaldomain.com organization, but not the examplepetstore.com organization. + Service accounts can be made owners of a project directly without any restrictions. However, to be added as an owner, a user must be invited via Cloud Platform console and must accept the invitation. + A user cannot be granted the owner role using `setIamPolicy()`. The user must be granted the owner role using the Cloud Platform Console and must explicitly accept the invitation. + You can only grant ownership of a project to a member by using the GCP Console. Inviting a member will deliver an invitation email that they must accept. An invitation email is not generated if you are granting a role other than owner, or if both the member you are inviting and the project are part of your organization. + If the project is not part of an organization, there must be at least one owner who has accepted the Terms of Service (ToS) agreement in the policy. Calling `setIamPolicy()` to remove the last ToS-accepted owner from the policy will fail. This restriction also applies to legacy projects that no longer have owners who have accepted the ToS. Edits to IAM policies will be rejected until the lack of a ToS-accepting owner is rectified. If the project is part of an organization, you can remove all owners, potentially making the organization inaccessible. Authorization requires the Google IAM permission `resourcemanager.projects.setIamPolicy` on the project", + "description": "Sets the IAM access control policy for the specified Project. CAUTION: This method will replace the existing policy, and cannot be used to append additional IAM settings. NOTE: Removing service accounts from policies or changing their roles can render services completely inoperable. It is important to understand how the service account is being used before removing or updating its roles. For additional information about `resource` (e.g. my-project-id) structure and identification, see [Resource Names](https://cloud.google.com/apis/design/resource_names). The following constraints apply when using `setIamPolicy()`: + Project does not support `allUsers` and `allAuthenticatedUsers` as `members` in a `Binding` of a `Policy`. + The owner role can be granted to a `user`, `serviceAccount`, or a group that is part of an organization. For example, group@myownpersonaldomain.com could be added as an owner to a project in the myownpersonaldomain.com organization, but not the examplepetstore.com organization. + Service accounts can be made owners of a project directly without any restrictions. However, to be added as an owner, a user must be invited via Cloud Platform console and must accept the invitation. + A user cannot be granted the owner role using `setIamPolicy()`. The user must be granted the owner role using the Cloud Platform Console and must explicitly accept the invitation. + You can only grant ownership of a project to a member by using the Google Cloud console. Inviting a member will deliver an invitation email that they must accept. An invitation email is not generated if you are granting a role other than owner, or if both the member you are inviting and the project are part of your organization. + If the project is not part of an organization, there must be at least one owner who has accepted the Terms of Service (ToS) agreement in the policy. Calling `setIamPolicy()` to remove the last ToS-accepted owner from the policy will fail. This restriction also applies to legacy projects that no longer have owners who have accepted the ToS. Edits to IAM policies will be rejected until the lack of a ToS-accepting owner is rectified. If the project is part of an organization, you can remove all owners, potentially making the organization inaccessible. Authorization requires the Google IAM permission `resourcemanager.projects.setIamPolicy` on the project", "flatPath": "v1/projects/{resource}:setIamPolicy", "httpMethod": "POST", "id": "cloudresourcemanager.projects.setIamPolicy", @@ -1171,7 +1171,7 @@ } } }, - "revision": "20230115", + "revision": "20240303", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "Ancestor": { @@ -1242,14 +1242,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1902,7 +1902,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" } }, @@ -1956,7 +1956,7 @@ "type": "string" }, "displayName": { - "description": "A human-readable string that refers to the Organization in the GCP Console UI. This string is set by the server and cannot be changed. The string will be set to the primary domain (for example, \"google.com\") of the G Suite customer that owns the organization.", + "description": "A human-readable string that refers to the Organization in the Google Cloud console. This string is set by the server and cannot be changed. The string will be set to the primary domain (for example, \"google.com\") of the G Suite customer that owns the organization.", "type": "string" }, "lifecycleState": { @@ -1996,7 +1996,7 @@ "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/).", + "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": { @@ -2074,6 +2074,13 @@ "description": "The number uniquely identifying the project. Example: `415104041262` Read-only.", "format": "int64", "type": "string" + }, + "tags": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Input only. Immutable. Tag keys/values directly bound to this project. Each item in the map must be expressed as \" : \". For example: \"123/environment\" : \"production\", \"123/costCenter\" : \"marketing\"", + "type": "object" } }, "type": "object" diff --git a/etc/api/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json b/etc/api/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json index 875023915c..33f690f24f 100644 --- a/etc/api/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json +++ b/etc/api/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json @@ -127,6 +127,7 @@ "type": "string" }, "organizationId": { + "deprecated": true, "description": "The id of the Organization resource to fetch. This field is deprecated and will be removed in v1. Use name instead.", "location": "query", "type": "string" @@ -261,6 +262,7 @@ ] }, "update": { + "deprecated": true, "description": "Updates an Organization resource identified by the specified resource name.", "flatPath": "v1beta1/organizations/{organizationsId}", "httpMethod": "PUT", @@ -566,7 +568,7 @@ } } }, - "revision": "20230115", + "revision": "20240303", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "Ancestor": { @@ -637,14 +639,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1016,7 +1018,7 @@ "type": "string" }, "displayName": { - "description": "A human-readable string that refers to the Organization in the GCP Console UI. This string is set by the server and cannot be changed. The string will be set to the primary domain (for example, \"google.com\") of the G Suite customer that owns the organization.", + "description": "A human-readable string that refers to the Organization in the Google Cloud console. This string is set by the server and cannot be changed. The string will be set to the primary domain (for example, \"google.com\") of the G Suite customer that owns the organization.", "type": "string" }, "lifecycleState": { @@ -1038,6 +1040,7 @@ "type": "string" }, "organizationId": { + "deprecated": true, "description": "An immutable id for the Organization that is assigned on creation. This should be omitted when creating a new Organization. This field is read-only.", "type": "string" }, @@ -1060,7 +1063,7 @@ "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/).", + "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": { diff --git a/etc/api/cloudresourcemanager/v2/cloudresourcemanager-api.json b/etc/api/cloudresourcemanager/v2/cloudresourcemanager-api.json index bb303ca512..9ad9682010 100644 --- a/etc/api/cloudresourcemanager/v2/cloudresourcemanager-api.json +++ b/etc/api/cloudresourcemanager/v2/cloudresourcemanager-api.json @@ -450,7 +450,7 @@ } } }, - "revision": "20230115", + "revision": "20240303", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "AuditConfig": { @@ -510,14 +510,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -738,6 +738,13 @@ "parent": { "description": "Required. The Folder's parent's resource name. Updates to the folder's parent must be performed via MoveFolder.", "type": "string" + }, + "tags": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Input only. Immutable. Tag keys/values directly bound to this folder. Each item in the map must be expressed as \" : \". For example: \"123/environment\" : \"production\", \"123/costCenter\" : \"marketing\"", + "type": "object" } }, "type": "object" @@ -916,14 +923,14 @@ "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" } }, "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/).", + "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": { diff --git a/etc/api/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json b/etc/api/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json index 0bfd1c67f5..b7b6f52465 100644 --- a/etc/api/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json +++ b/etc/api/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json @@ -450,7 +450,7 @@ } } }, - "revision": "20230115", + "revision": "20240303", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "AuditConfig": { @@ -510,14 +510,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -738,6 +738,13 @@ "parent": { "description": "Required. The Folder's parent's resource name. Updates to the folder's parent must be performed via MoveFolder.", "type": "string" + }, + "tags": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Input only. Immutable. Tag keys/values directly bound to this folder. Each item in the map must be expressed as \" : \". For example: \"123/environment\" : \"production\", \"123/costCenter\" : \"marketing\"", + "type": "object" } }, "type": "object" @@ -916,14 +923,14 @@ "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" } }, "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/).", + "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": { diff --git a/etc/api/cloudresourcemanager/v3/cloudresourcemanager-api.json b/etc/api/cloudresourcemanager/v3/cloudresourcemanager-api.json index b1ed54a3b4..02fe722297 100644 --- a/etc/api/cloudresourcemanager/v3/cloudresourcemanager-api.json +++ b/etc/api/cloudresourcemanager/v3/cloudresourcemanager-api.json @@ -660,7 +660,7 @@ ] }, "search": { - "description": "Searches organization resources that are visible to the user and satisfy the specified filter. This method returns organizations in an unspecified order. New organizations do not necessarily appear at the end of the results, and may take a small amount of time to appear. Search will only return organizations on which the user has the permission `resourcemanager.organizations.get`", + "description": "Searches organization resources that are visible to the user and satisfy the specified filter. This method returns organizations in an unspecified order. New organizations do not necessarily appear at the end of the results, and may take a small amount of time to appear. Search will only return organizations on which the user has the permission `resourcemanager.organizations.get` or has super admin privileges.", "flatPath": "v3/organizations:search", "httpMethod": "GET", "id": "cloudresourcemanager.organizations.search", @@ -952,7 +952,7 @@ ] }, "search": { - "description": "Search for projects that the caller has both `resourcemanager.projects.get` permission on, and also satisfy the specified query. This method returns projects in an unspecified order. This method is eventually consistent with project mutations; this means that a newly created project may not appear in the results or recent updates to an existing project may not be reflected in the results. To retrieve the latest state of a project, use the GetProject method.", + "description": "Search for projects that the caller has the `resourcemanager.projects.get` permission on, and also satisfy the specified query. This method returns projects in an unspecified order. This method is eventually consistent with project mutations; this means that a newly created project may not appear in the results or recent updates to an existing project may not be reflected in the results. To retrieve the latest state of a project, use the GetProject method.", "flatPath": "v3/projects:search", "httpMethod": "GET", "id": "cloudresourcemanager.projects.search", @@ -1273,6 +1273,28 @@ "https://www.googleapis.com/auth/cloud-platform.read-only" ] }, + "getNamespaced": { + "description": "Retrieves a TagKey by its namespaced name. This method will return `PERMISSION_DENIED` if the key does not exist or the user does not have permission to view it.", + "flatPath": "v3/tagKeys/namespaced", + "httpMethod": "GET", + "id": "cloudresourcemanager.tagKeys.getNamespaced", + "parameterOrder": [], + "parameters": { + "name": { + "description": "Required. A namespaced tag key name in the format `{parentId}/{tagKeyShort}`, such as `42/foo` for a key with short name \"foo\" under the organization with ID 42 or `r2-d2/bar` for a key with short name \"bar\" under the project `r2-d2`.", + "location": "query", + "type": "string" + } + }, + "path": "v3/tagKeys/namespaced", + "response": { + "$ref": "TagKey" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + }, "list": { "description": "Lists all TagKeys for a parent resource.", "flatPath": "v3/tagKeys", @@ -1292,7 +1314,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the new TagKey's parent. Must be of the form `folders/{folder_id}` or `organizations/{org_id}`.", + "description": "Required. The resource name of the TagKey's parent. Must be of the form `organizations/{org_id}` or `projects/{project_id}` or `projects/{project_number}`", "location": "query", "type": "string" } @@ -1519,6 +1541,28 @@ "https://www.googleapis.com/auth/cloud-platform.read-only" ] }, + "getNamespaced": { + "description": "Retrieves a TagValue by its namespaced name. This method will return `PERMISSION_DENIED` if the value does not exist or the user does not have permission to view it.", + "flatPath": "v3/tagValues/namespaced", + "httpMethod": "GET", + "id": "cloudresourcemanager.tagValues.getNamespaced", + "parameterOrder": [], + "parameters": { + "name": { + "description": "Required. A namespaced tag value name in the following format: `{parentId}/{tagKeyShort}/{tagValueShort}` Examples: - `42/foo/abc` for a value with short name \"abc\" under the key with short name \"foo\" under the organization with ID 42 - `r2-d2/bar/xyz` for a value with short name \"xyz\" under the key with short name \"bar\" under the project with ID \"r2-d2\"", + "location": "query", + "type": "string" + } + }, + "path": "v3/tagValues/namespaced", + "response": { + "$ref": "TagValue" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + }, "list": { "description": "Lists all TagValues for a specific TagKey.", "flatPath": "v3/tagValues", @@ -1538,7 +1582,7 @@ "type": "string" }, "parent": { - "description": "Required.", + "description": "Required. Resource name for the parent of the TagValues to be listed, in the format `tagKeys/123` or `tagValues/123`.", "location": "query", "type": "string" } @@ -1761,7 +1805,7 @@ } } }, - "revision": "20230115", + "revision": "20240303", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "AuditConfig": { @@ -1821,14 +1865,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1998,17 +2042,21 @@ "type": "boolean" }, "namespacedTagKey": { - "description": "The namespaced_name of the TagKey. Now only supported in the format of `{organization_id}/{tag_key_short_name}`. Other formats will be supported when we add non-org parented tags.", + "description": "The namespaced name of the TagKey. Can be in the form `{organization_id}/{tag_key_short_name}` or `{project_id}/{tag_key_short_name}` or `{project_number}/{tag_key_short_name}`.", "type": "string" }, "namespacedTagValue": { - "description": "Namespaced name of the TagValue. Now only supported in the format `{organization_id}/{tag_key_short_name}/{tag_value_short_name}`. Other formats will be supported when we add non-org parented tags.", + "description": "The namespaced name of the TagValue. Can be in the form `{organization_id}/{tag_key_short_name}/{tag_value_short_name}` or `{project_id}/{tag_key_short_name}/{tag_value_short_name}` or `{project_number}/{tag_key_short_name}/{tag_value_short_name}`.", "type": "string" }, "tagKey": { "description": "The name of the TagKey, in the format `tagKeys/{id}`, such as `tagKeys/123`.", "type": "string" }, + "tagKeyParentName": { + "description": "The parent name of the tag key. Must be in the format `organizations/{organization_id}` or `projects/{project_number}`", + "type": "string" + }, "tagValue": { "description": "Resource name for TagValue in the format `tagValues/456`.", "type": "string" @@ -2094,6 +2142,13 @@ "readOnly": true, "type": "string" }, + "tags": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Input only. Immutable. Tag keys/values directly bound to this folder. Each item in the map must be expressed as \" : \". For example: \"123/environment\" : \"production\", \"123/costCenter\" : \"marketing\"", + "type": "object" + }, "updateTime": { "description": "Output only. Timestamp when the folder was last modified.", "format": "google-datetime", @@ -2449,7 +2504,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" } }, @@ -2515,7 +2570,7 @@ "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/).", + "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": { @@ -2605,6 +2660,13 @@ "readOnly": true, "type": "string" }, + "tags": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Input only. Immutable. Tag keys/values directly bound to this project. Each item in the map must be expressed as \" : \". For example: \"123/environment\" : \"production\", \"123/costCenter\" : \"marketing\"", + "type": "object" + }, "updateTime": { "description": "Output only. The most recent time this resource was modified.", "format": "google-datetime", @@ -2747,6 +2809,10 @@ "tagValue": { "description": "The TagValue of the TagBinding. Must be of the form `tagValues/456`.", "type": "string" + }, + "tagValueNamespacedName": { + "description": "The namespaced name for the TagValue of the TagBinding. Must be in the format `{parent_id}/{tag_key_short_name}/{short_name}`. For methods that support TagValue namespaced name, only one of tag_value_namespaced_name or tag_value may be filled. Requests with both fields will be rejected.", + "type": "string" } }, "type": "object" @@ -2809,18 +2875,20 @@ "type": "string" }, "parent": { - "description": "Immutable. The resource name of the new TagKey's parent. Must be of the form `organizations/{org_id}`.", + "description": "Immutable. The resource name of the TagKey's parent. A TagKey can be parented by an Organization or a Project. For a TagKey parented by an Organization, its parent must be in the form `organizations/{org_id}`. For a TagKey parented by a Project, its parent can be in the form `projects/{project_id}` or `projects/{project_number}`.", "type": "string" }, "purpose": { "description": "Optional. A purpose denotes that this Tag is intended for use in policies of a specific policy engine, and will involve that policy engine in management operations involving this Tag. A purpose does not grant a policy engine exclusive rights to the Tag, and it may be referenced by other policy engines. A purpose cannot be changed once set.", "enum": [ "PURPOSE_UNSPECIFIED", - "GCE_FIREWALL" + "GCE_FIREWALL", + "DATA_GOVERNANCE" ], "enumDescriptions": [ "Unspecified purpose.", - "Purpose for Compute Engine firewalls. A corresponding purpose_data should be set for the network the tag is intended for. The key should be 'network' and the value should be in either of these two formats: -https://www.googleapis.com/compute/{compute_version}/projects/{project_id}/global/networks/{network_id} -{project_id}/{network_name} Examples: -https://www.googleapis.com/compute/staging_v1/projects/fail-closed-load-testing/global/networks/6992953698831725600 -fail-closed-load-testing/load-testing-network" + "Purpose for Compute Engine firewalls. A corresponding `purpose_data` should be set for the network the tag is intended for. The key should be `network` and the value should be in ## either of these two formats: `https://www.googleapis.com/compute/{compute_version}/projects/{project_id}/global/networks/{network_id}` - `{project_id}/{network_name}` ## Examples: `https://www.googleapis.com/compute/staging_v1/projects/fail-closed-load-testing/global/networks/6992953698831725600` - `fail-closed-load-testing/load-testing-network`", + "Purpose for data governance. Tag Values created under a key with this purpose may have Tag Value children. No `purpose_data` should be set." ], "type": "string" }, @@ -2867,7 +2935,7 @@ "type": "string" }, "namespacedName": { - "description": "Output only. Namespaced name of the TagValue. Now only supported in the format `{organization_id}/{tag_key_short_name}/{short_name}`. Other formats will be supported when we add non-org parented tags.", + "description": "Output only. The namespaced name of the TagValue. Can be in the form `{organization_id}/{tag_key_short_name}/{tag_value_short_name}` or `{project_id}/{tag_key_short_name}/{tag_value_short_name}` or `{project_number}/{tag_key_short_name}/{tag_value_short_name}`.", "readOnly": true, "type": "string" }, diff --git a/etc/api/cloudscheduler/v1/cloudscheduler-api.json b/etc/api/cloudscheduler/v1/cloudscheduler-api.json index 13d32a8ad6..d99e994144 100644 --- a/etc/api/cloudscheduler/v1/cloudscheduler-api.json +++ b/etc/api/cloudscheduler/v1/cloudscheduler-api.json @@ -418,7 +418,7 @@ } } }, - "revision": "20230106", + "revision": "20240226", "rootUrl": "https://cloudscheduler.googleapis.com/", "schemas": { "AppEngineHttpTarget": { @@ -438,7 +438,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 an body, Cloud Scheduler sets the following headers: * `Content-Type`: By default, the `Content-Type` header is set to `\"application/octet-stream\"`. The default can be overridden by explictly setting `Content-Type` to a particular media type when the job is created. For example, `Content-Type` can be set to `\"application/json\"`. * `Content-Length`: This is computed by Cloud Scheduler. This value is output only. It cannot be changed. The headers below are output only. They cannot be set or overridden: * `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": { @@ -514,7 +514,7 @@ "additionalProperties": { "type": "string" }, - "description": "The user can specify HTTP request headers to send with the job's HTTP request. This map contains the header field names and values. Repeated headers are not supported, but a header value can contain commas. These headers represent a subset of the headers that will accompany the job's HTTP request. Some HTTP request headers will be ignored or replaced. A partial list of headers that will be 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. 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": { @@ -580,6 +580,7 @@ "lastAttemptTime": { "description": "Output only. The time the last job attempt started.", "format": "google-datetime", + "readOnly": true, "type": "string" }, "name": { @@ -595,12 +596,13 @@ "description": "Settings that determine the retry behavior." }, "schedule": { - "description": "Required, except when used with UpdateJob. Describes the schedule on which the job will be executed. The schedule can be either of the following types: * [Crontab](https://en.wikipedia.org/wiki/Cron#Overview) * English-like [schedule](https://cloud.google.com/scheduler/docs/configuring/cron-job-schedules) As a general rule, execution `n + 1` of a job will not begin until execution `n` has finished. Cloud Scheduler will never allow two simultaneously outstanding executions. For example, this implies that if the `n+1`th execution is scheduled to run at 16:00 but the `n`th execution takes until 16:15, the `n+1`th execution will not start until `16:15`. A scheduled start time will be delayed if the previous execution has not ended when its scheduled time occurs. If retry_count > 0 and a job attempt fails, the job will be tried a total of retry_count times, with exponential backoff, until the next scheduled start time.", + "description": "Required, except when used with UpdateJob. Describes the schedule on which the job will be executed. The schedule can be either of the following types: * [Crontab](https://en.wikipedia.org/wiki/Cron#Overview) * English-like [schedule](https://cloud.google.com/scheduler/docs/configuring/cron-job-schedules) As a general rule, execution `n + 1` of a job will not begin until execution `n` has finished. Cloud Scheduler will never allow two simultaneously outstanding executions. For example, this implies that if the `n+1`th execution is scheduled to run at 16:00 but the `n`th execution takes until 16:15, the `n+1`th execution will not start until `16:15`. A scheduled start time will be delayed if the previous execution has not ended when its scheduled time occurs. If retry_count > 0 and a job attempt fails, the job will be tried a total of retry_count times, with exponential backoff, until the next scheduled start time. If retry_count is 0, a job attempt will not be retried if it fails. Instead the Cloud Scheduler system will wait for the next scheduled execution time. Setting retry_count to 0 does not prevent failed jobs from running according to schedule after the failure.", "type": "string" }, "scheduleTime": { "description": "Output only. The next time the job is scheduled. Note that this may be a retry of a previously failed attempt or the next execution time according to the schedule.", "format": "google-datetime", + "readOnly": true, "type": "string" }, "state": { @@ -619,11 +621,13 @@ "The job is disabled by the system due to error. The user cannot directly set a job to be disabled.", "The job state resulting from a failed CloudScheduler.UpdateJob operation. To recover a job from this state, retry CloudScheduler.UpdateJob until a successful response is received." ], + "readOnly": true, "type": "string" }, "status": { "$ref": "Status", - "description": "Output only. The response from the target for the last attempted execution." + "description": "Output only. The response from the target for the last attempted execution.", + "readOnly": true }, "timeZone": { "description": "Specifies the time zone to be used in interpreting schedule. The value of this field must be a time zone name from the [tz database](http://en.wikipedia.org/wiki/Tz_database). Note that some time zones include a provision for daylight savings time. The rules for daylight saving time are determined by the chosen tz. For UTC use the string \"utc\". If a time zone is not specified, the default will be in UTC (also known as GMT).", @@ -632,6 +636,7 @@ "userUpdateTime": { "description": "Output only. The creation time of the job.", "format": "google-datetime", + "readOnly": true, "type": "string" } }, @@ -674,7 +679,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -751,11 +756,11 @@ "additionalProperties": { "type": "string" }, - "description": "Attributes for this message. If this field is empty, the message must contain non-empty data. This can be used to filter messages on the subscription.", + "description": "Optional. Attributes for this message. If this field is empty, the message must contain non-empty data. This can be used to filter messages on the subscription.", "type": "object" }, "data": { - "description": "The message data field. If this field is empty, the message must contain at least one attribute.", + "description": "Optional. The message data field. If this field is empty, the message must contain at least one attribute.", "format": "byte", "type": "string" }, @@ -764,7 +769,7 @@ "type": "string" }, "orderingKey": { - "description": "If non-empty, identifies related messages for which publish order should be respected. If a `Subscription` has `enable_message_ordering` set to `true`, messages published with the same non-empty `ordering_key` value will be delivered to subscribers in the order in which they are received by the Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest` must specify the same `ordering_key` value. For more information, see [ordering messages](https://cloud.google.com/pubsub/docs/ordering).", + "description": "Optional. If non-empty, identifies related messages for which publish order should be respected. If a `Subscription` has `enable_message_ordering` set to `true`, messages published with the same non-empty `ordering_key` value will be delivered to subscribers in the order in which they are received by the Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest` must specify the same `ordering_key` value. For more information, see [ordering messages](https://cloud.google.com/pubsub/docs/ordering).", "type": "string" }, "publishTime": { @@ -814,7 +819,7 @@ "type": "string" }, "maxDoublings": { - "description": "The time between retries will double `max_doublings` times. A job's retry interval starts at min_backoff_duration, then doubles `max_doublings` times, then increases linearly, and finally retries at intervals of max_backoff_duration up to retry_count times. For example, if min_backoff_duration is 10s, max_backoff_duration is 300s, and `max_doublings` is 3, then the a job will first be retried in 10s. The retry interval will double three times, and then increase linearly by 2^3 * 10s. Finally, the job will retry at intervals of max_backoff_duration until the job has been attempted retry_count times. Thus, the requests will retry at 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s, .... The default value of this field is 5.", + "description": "The time between retries will double `max_doublings` times. A job's retry interval starts at min_backoff_duration, then doubles `max_doublings` times, then increases linearly, and finally retries at intervals of max_backoff_duration up to retry_count times. For example, if min_backoff_duration is 10s, max_backoff_duration is 300s, and `max_doublings` is 3, then the job will first be retried in 10s. The retry interval will double three times, and then increase linearly by 2^3 * 10s. Finally, the job will retry at intervals of max_backoff_duration until the job has been attempted retry_count times. Thus, the requests will retry at 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s, .... The default value of this field is 5.", "format": "int32", "type": "integer" }, @@ -829,7 +834,7 @@ "type": "string" }, "retryCount": { - "description": "The number of attempts that the system will make to run a job using the exponential backoff procedure described by max_doublings. The default value of retry_count is zero. If retry_count is zero, a job attempt will *not* be retried if it fails. Instead the Cloud Scheduler system will wait for the next scheduled execution time. If retry_count is set to a non-zero number then Cloud Scheduler will retry failed attempts, using exponential backoff, retry_count times, or until the next scheduled execution time, whichever comes first. Values greater than 5 and negative values are not allowed.", + "description": "The number of attempts that the system will make to run a job using the exponential backoff procedure described by max_doublings. The default value of retry_count is zero. If retry_count is 0, a job attempt will not be retried if it fails. Instead the Cloud Scheduler system will wait for the next scheduled execution time. Setting retry_count to 0 does not prevent failed jobs from running according to schedule after the failure. If retry_count is set to a non-zero number then Cloud Scheduler will retry failed attempts, using exponential backoff, retry_count times, or until the next scheduled execution time, whichever comes first. Values greater than 5 and negative values are not allowed.", "format": "int32", "type": "integer" } diff --git a/etc/api/cloudscheduler/v1beta1/cloudscheduler-api.json b/etc/api/cloudscheduler/v1beta1/cloudscheduler-api.json index 4265652f4b..b0cf691cce 100644 --- a/etc/api/cloudscheduler/v1beta1/cloudscheduler-api.json +++ b/etc/api/cloudscheduler/v1beta1/cloudscheduler-api.json @@ -433,7 +433,7 @@ } } }, - "revision": "20230106", + "revision": "20240226", "rootUrl": "https://cloudscheduler.googleapis.com/", "schemas": { "AppEngineHttpTarget": { @@ -453,7 +453,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 an body, Cloud Scheduler sets the following headers: * `Content-Type`: By default, the `Content-Type` header is set to `\"application/octet-stream\"`. The default can be overridden by explictly setting `Content-Type` to a particular media type when the job is created. For example, `Content-Type` can be set to `\"application/json\"`. * `Content-Length`: This is computed by Cloud Scheduler. This value is output only. It cannot be changed. The headers below are output only. They cannot be set or overridden: * `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": { @@ -529,7 +529,7 @@ "additionalProperties": { "type": "string" }, - "description": "The user can specify HTTP request headers to send with the job's HTTP request. This map contains the header field names and values. Repeated headers are not supported, but a header value can contain commas. These headers represent a subset of the headers that will accompany the job's HTTP request. Some HTTP request headers will be ignored or replaced. A partial list of headers that will be 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. 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": { @@ -595,6 +595,7 @@ "lastAttemptTime": { "description": "Output only. The time the last job attempt started.", "format": "google-datetime", + "readOnly": true, "type": "string" }, "legacyAppEngineCron": { @@ -614,12 +615,13 @@ "description": "Settings that determine the retry behavior." }, "schedule": { - "description": "Required, except when used with UpdateJob. Describes the schedule on which the job will be executed. The schedule can be either of the following types: * [Crontab](https://en.wikipedia.org/wiki/Cron#Overview) * English-like [schedule](https://cloud.google.com/scheduler/docs/configuring/cron-job-schedules) As a general rule, execution `n + 1` of a job will not begin until execution `n` has finished. Cloud Scheduler will never allow two simultaneously outstanding executions. For example, this implies that if the `n+1`th execution is scheduled to run at 16:00 but the `n`th execution takes until 16:15, the `n+1`th execution will not start until `16:15`. A scheduled start time will be delayed if the previous execution has not ended when its scheduled time occurs. If retry_count > 0 and a job attempt fails, the job will be tried a total of retry_count times, with exponential backoff, until the next scheduled start time.", + "description": "Required, except when used with UpdateJob. Describes the schedule on which the job will be executed. The schedule can be either of the following types: * [Crontab](https://en.wikipedia.org/wiki/Cron#Overview) * English-like [schedule](https://cloud.google.com/scheduler/docs/configuring/cron-job-schedules) As a general rule, execution `n + 1` of a job will not begin until execution `n` has finished. Cloud Scheduler will never allow two simultaneously outstanding executions. For example, this implies that if the `n+1`th execution is scheduled to run at 16:00 but the `n`th execution takes until 16:15, the `n+1`th execution will not start until `16:15`. A scheduled start time will be delayed if the previous execution has not ended when its scheduled time occurs. If retry_count > 0 and a job attempt fails, the job will be tried a total of retry_count times, with exponential backoff, until the next scheduled start time. If retry_count is 0, a job attempt will not be retried if it fails. Instead the Cloud Scheduler system will wait for the next scheduled execution time. Setting retry_count to 0 does not prevent failed jobs from running according to schedule after the failure.", "type": "string" }, "scheduleTime": { "description": "Output only. The next time the job is scheduled. Note that this may be a retry of a previously failed attempt or the next execution time according to the schedule.", "format": "google-datetime", + "readOnly": true, "type": "string" }, "state": { @@ -638,11 +640,13 @@ "The job is disabled by the system due to error. The user cannot directly set a job to be disabled.", "The job state resulting from a failed CloudScheduler.UpdateJob operation. To recover a job from this state, retry CloudScheduler.UpdateJob until a successful response is received." ], + "readOnly": true, "type": "string" }, "status": { "$ref": "Status", - "description": "Output only. The response from the target for the last attempted execution." + "description": "Output only. The response from the target for the last attempted execution.", + "readOnly": true }, "timeZone": { "description": "Specifies the time zone to be used in interpreting schedule. The value of this field must be a time zone name from the [tz database](http://en.wikipedia.org/wiki/Tz_database). Note that some time zones include a provision for daylight savings time. The rules for daylight saving time are determined by the chosen tz. For UTC use the string \"utc\". If a time zone is not specified, the default will be in UTC (also known as GMT).", @@ -651,6 +655,7 @@ "userUpdateTime": { "description": "Output only. The creation time of the job.", "format": "google-datetime", + "readOnly": true, "type": "string" } }, @@ -693,7 +698,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -770,11 +775,11 @@ "additionalProperties": { "type": "string" }, - "description": "Attributes for this message. If this field is empty, the message must contain non-empty data. This can be used to filter messages on the subscription.", + "description": "Optional. Attributes for this message. If this field is empty, the message must contain non-empty data. This can be used to filter messages on the subscription.", "type": "object" }, "data": { - "description": "The message data field. If this field is empty, the message must contain at least one attribute.", + "description": "Optional. The message data field. If this field is empty, the message must contain at least one attribute.", "format": "byte", "type": "string" }, @@ -783,7 +788,7 @@ "type": "string" }, "orderingKey": { - "description": "If non-empty, identifies related messages for which publish order should be respected. If a `Subscription` has `enable_message_ordering` set to `true`, messages published with the same non-empty `ordering_key` value will be delivered to subscribers in the order in which they are received by the Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest` must specify the same `ordering_key` value. For more information, see [ordering messages](https://cloud.google.com/pubsub/docs/ordering).", + "description": "Optional. If non-empty, identifies related messages for which publish order should be respected. If a `Subscription` has `enable_message_ordering` set to `true`, messages published with the same non-empty `ordering_key` value will be delivered to subscribers in the order in which they are received by the Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest` must specify the same `ordering_key` value. For more information, see [ordering messages](https://cloud.google.com/pubsub/docs/ordering).", "type": "string" }, "publishTime": { @@ -833,7 +838,7 @@ "type": "string" }, "maxDoublings": { - "description": "The time between retries will double `max_doublings` times. A job's retry interval starts at min_backoff_duration, then doubles `max_doublings` times, then increases linearly, and finally retries at intervals of max_backoff_duration up to retry_count times. For example, if min_backoff_duration is 10s, max_backoff_duration is 300s, and `max_doublings` is 3, then the a job will first be retried in 10s. The retry interval will double three times, and then increase linearly by 2^3 * 10s. Finally, the job will retry at intervals of max_backoff_duration until the job has been attempted retry_count times. Thus, the requests will retry at 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s, .... The default value of this field is 5.", + "description": "The time between retries will double `max_doublings` times. A job's retry interval starts at min_backoff_duration, then doubles `max_doublings` times, then increases linearly, and finally retries at intervals of max_backoff_duration up to retry_count times. For example, if min_backoff_duration is 10s, max_backoff_duration is 300s, and `max_doublings` is 3, then the job will first be retried in 10s. The retry interval will double three times, and then increase linearly by 2^3 * 10s. Finally, the job will retry at intervals of max_backoff_duration until the job has been attempted retry_count times. Thus, the requests will retry at 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s, .... The default value of this field is 5.", "format": "int32", "type": "integer" }, @@ -848,7 +853,7 @@ "type": "string" }, "retryCount": { - "description": "The number of attempts that the system will make to run a job using the exponential backoff procedure described by max_doublings. The default value of retry_count is zero. If retry_count is zero, a job attempt will *not* be retried if it fails. Instead the Cloud Scheduler system will wait for the next scheduled execution time. If retry_count is set to a non-zero number then Cloud Scheduler will retry failed attempts, using exponential backoff, retry_count times, or until the next scheduled execution time, whichever comes first. Values greater than 5 and negative values are not allowed.", + "description": "The number of attempts that the system will make to run a job using the exponential backoff procedure described by max_doublings. The default value of retry_count is zero. If retry_count is 0, a job attempt will not be retried if it fails. Instead the Cloud Scheduler system will wait for the next scheduled execution time. Setting retry_count to 0 does not prevent failed jobs from running according to schedule after the failure. If retry_count is set to a non-zero number then Cloud Scheduler will retry failed attempts, using exponential backoff, retry_count times, or until the next scheduled execution time, whichever comes first. Values greater than 5 and negative values are not allowed.", "format": "int32", "type": "integer" } diff --git a/etc/api/cloudsearch/v1/cloudsearch-api.json b/etc/api/cloudsearch/v1/cloudsearch-api.json index dee2222095..555a1fd85d 100644 --- a/etc/api/cloudsearch/v1/cloudsearch-api.json +++ b/etc/api/cloudsearch/v1/cloudsearch-api.json @@ -886,7 +886,7 @@ "lro": { "methods": { "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/operations/{operationsId}/lro", "httpMethod": "GET", "id": "cloudsearch.operations.lro.list", @@ -937,6 +937,25 @@ }, "query": { "methods": { + "removeActivity": { + "description": "Provides functionality to remove logged activity for a user. Currently to be used only for Chat 1p clients **Note:** This API requires a standard end user account to execute. A service account can't perform Remove Activity requests directly; to use a service account to perform queries, set up [Google Workspace domain-wide delegation of authority](https://developers.google.com/cloud-search/docs/guides/delegation/).", + "flatPath": "v1/query:removeActivity", + "httpMethod": "POST", + "id": "cloudsearch.query.removeActivity", + "parameterOrder": [], + "parameters": {}, + "path": "v1/query:removeActivity", + "request": { + "$ref": "RemoveActivityRequest" + }, + "response": { + "$ref": "RemoveActivityResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud_search", + "https://www.googleapis.com/auth/cloud_search.query" + ] + }, "search": { "description": "The Cloud Search Query API provides the search method, which returns the most relevant results from a user query. The results can come from Google Workspace apps, such as Gmail or Google Drive, or they can come from data that you have indexed from a third party. **Note:** This API requires a standard end user account to execute. A service account can't perform Query API requests directly; to use a service account to perform queries, set up [Google Workspace domain-wide delegation of authority](https://developers.google.com/cloud-search/docs/guides/delegation/).", "flatPath": "v1/query/search", @@ -997,7 +1016,7 @@ "type": "boolean" }, "requestOptions.languageCode": { - "description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. For translations. Set this field using the language set in browser or for the page. In the event that the user's language preference is known, set this field to the known user language. When specified, the documents in search results are biased towards the specified language. From Suggest API perspective, for 3p suggest this is used as a hint while making predictions to add language boosting.", + "description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. For translations. Set this field using the language set in browser or for the page. In the event that the user's language preference is known, set this field to the known user language. When specified, the documents in search results are biased towards the specified language. The Suggest API uses this field as a hint to make better third-party autocomplete predictions.", "location": "query", "type": "string" }, @@ -2077,3344 +2096,23 @@ } } }, - "revision": "20230117", + "revision": "20240103", "rootUrl": "https://cloudsearch.googleapis.com/", "schemas": { - "AbuseReportingConfig": { - "description": "Abuse reporting configuration outlining what is supported in this conference.", - "id": "AbuseReportingConfig", + "Action": { + "id": "Action", "properties": { - "recordingAllowed": { - "description": "Whether the current call may include video recordings in its abuse reports.", - "type": "boolean" - }, - "writtenUgcAllowed": { - "description": "Whether the current call may include user generated content (chat, polls, Q&A...) in its abuse reports.", - "type": "boolean" - } - }, - "type": "object" - }, - "AckInfo": { - "description": "Information about how devices in a meeting have acked for a session/operation.", - "id": "AckInfo", - "properties": { - "unackedDeviceCount": { - "description": "Output only. Number of meeting devices that have not acked yet.", - "format": "int32", - "readOnly": true, - "type": "integer" - }, - "unackedDeviceIds": { - "description": "Output only. IDs of meeting devices (at most ten are provided) that have not acked yet.", - "items": { - "type": "string" - }, - "readOnly": true, - "type": "array" - } - }, - "type": "object" - }, - "AclFixRequest": { - "description": "The request set by clients to instruct Backend how the user intend to fix the ACL. Technically it's not a request to ACL Fixer, because Backend uses /DriveService.Share to modify Drive ACLs.", - "id": "AclFixRequest", - "properties": { - "recipientEmails": { - "description": "For Spaces messages: This field is ignored. For DMs messages: The list of email addresses that should be added to the Drive item's ACL. In general, the list should not be empty when the boolean \"should_fix\" field is set; otherwise, the list should be empty. During transition - when clients do not specify this field but the \"should_fix\" is true, we follow the legacy behavior: share to all users in the DM regardless of emails. This behavior is being phased out.", - "items": { - "type": "string" - }, - "type": "array" - }, - "role": { - "enum": [ - "UNKNOWN", - "READER", - "COMMENTER", - "WRITER" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "shouldFix": { - "description": "Whether to attempt to fix the ACL by adding the room or DM members to the Drive file's ACL.", - "type": "boolean" - } - }, - "type": "object" - }, - "AclFixStatus": { - "description": "The message reconstructed based on information in the response of /PermissionFixOptionsService.Query (or the Apiary API that wraps it). Indicates the ability of the requester to change the access to the Drive file for the room roster or the DM members. Used in GetMessagePreviewMetadataResponse only.", - "id": "AclFixStatus", - "properties": { - "fixability": { - "enum": [ - "UNKNOWN", - "ALREADY_ACCESSIBLE", - "CAN_FIX", - "CANNOT_FIX", - "ACL_FIXER_ERROR" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "fixableEmailAddress": { - "description": "List of recipient email addresses for which access can be granted. This field contains the same email addresses from the GetMessagePreviewMetadata request if all recipients can be successfully added to the ACL as determined by Drive ACL Fixer. For now, the field is non-empty if and only if the \"fixability\" value is \"CAN_FIX\".", - "items": { - "type": "string" - }, - "type": "array" - }, - "outOfDomainWarningEmailAddress": { - "description": "List of recipient email addresses for which an out-of-domain-sharing warning must be shown, stating that these email addresses are not in the Google Apps organization that the requested item belong to. Empty if all recipients are in the same Google Apps organization.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AclInfo": { - "description": "Next tag: 4", - "id": "AclInfo", - "properties": { - "groupsCount": { - "description": "Number of groups which have at least read access to the document.", - "format": "int32", - "type": "integer" - }, - "scope": { - "description": "The scope to which the content was shared.", - "enum": [ - "LIMITED", - "DASHER_DOMAIN_WITH_LINK", - "DASHER_DOMAIN", - "PUBLIC_WITH_LINK", - "PUBLIC", - "TEAM_DRIVE" - ], - "enumDescriptions": [ - "Explicit set of people and groups.", - "Anybody at the same domain with the link.", - "Now it works only for google.com. Anybody at the same domain. Now it works only", - "for google.com. Anybody with the link.", - "Anybody.", - "Special tag to indicate TeamDrive scope." - ], - "type": "string" - }, - "usersCount": { - "description": "Number of users which have at least read access to the document.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "ActionParameter": { - "description": "List of string parameters that developers can specify when the above action method (in apps script) is invoked. An example use case is for 3 snooze buttons: snooze now, snooze 1 day, snooze next week. Developers can have action method = snooze() and pass the snooze type and snooze time in list of string parameters.", - "id": "ActionParameter", - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "AddonComposeUiActionMarkup": { - "id": "AddonComposeUiActionMarkup", - "properties": { - "type": { - "enum": [ - "UNSPECIFIED", - "DISMISS" - ], - "enumDescriptions": [ - "Default. When unspecified, no action is taken.", - "Dismisses the add-on compose UI." - ], - "type": "string" - } - }, - "type": "object" - }, - "AffectedMembership": { - "description": "Earlier we used to populate just the affected_members list and inferred the new membership state (roles didn't exist back then) from the Type. go/dynamite-finra required backend to know the previous membership state to reconstruct membership history. The proper solution involved cleaning up up Type enum, but it was used in many, many places. This was added as a stop-gap solution to unblock FINRA without breaking everything. Later role update and target audience update started relying on this to communicate information to clients about what transition happened. So this is now required to be populated and should be in sync with affected_members for new messages.", - "id": "AffectedMembership", - "properties": { - "affectedMember": { - "$ref": "MemberId" - }, - "priorMembershipRole": { - "enum": [ - "ROLE_UNKNOWN", - "ROLE_NONE", - "ROLE_INVITEE", - "ROLE_MEMBER", - "ROLE_OWNER" - ], - "enumDescriptions": [ - "", - "This role is used when a user is forcibly removed from a room by another user. They will no longer be able to search for the room, but their history will be retained.", - "This role is used for two purposes. 1. A group is invited to a room, making it discoverable for its members. 2. A user was part of a room, but willingly left the room.", - "--- Following roles are for joined members of a roster. --- Default role for any joined user. Has basic capabilities within a room.", - "Role assigned to room creators and explicitly promoted members. Has broad powers to manage the room." - ], - "type": "string" - }, - "priorMembershipState": { - "enum": [ - "MEMBER_UNKNOWN", - "MEMBER_INVITED", - "MEMBER_JOINED", - "MEMBER_NOT_A_MEMBER", - "MEMBER_FAILED" - ], - "enumDescriptions": [ - "Default state, do not use", - "An invitation to the space has been sent", - "User has joined the space", - "User is not a member", - "This state should never be stored in Spanner. It is a state for responses to the clients to indicate that membership mutations have failed and the member is in its previous state." - ], - "type": "string" - }, - "targetMembershipRole": { - "enum": [ - "ROLE_UNKNOWN", - "ROLE_NONE", - "ROLE_INVITEE", - "ROLE_MEMBER", - "ROLE_OWNER" - ], - "enumDescriptions": [ - "", - "This role is used when a user is forcibly removed from a room by another user. They will no longer be able to search for the room, but their history will be retained.", - "This role is used for two purposes. 1. A group is invited to a room, making it discoverable for its members. 2. A user was part of a room, but willingly left the room.", - "--- Following roles are for joined members of a roster. --- Default role for any joined user. Has basic capabilities within a room.", - "Role assigned to room creators and explicitly promoted members. Has broad powers to manage the room." - ], - "type": "string" - } - }, - "type": "object" - }, - "AllAuthenticatedUsersProto": { - "description": "Represents a principal who has authenticated as any kind of user which the application understands. This is typically used for \"wiki-like\" security, where anyone is allowed access so long as they can be held accountable for that access. Since the purpose is knowing whom to blame, it is up to the application to decide what kinds of users it knows how to blame. For example, an application might choose to include GAIA users in \"all authenticated users\", but not include MDB users. Nothing here.", - "id": "AllAuthenticatedUsersProto", - "properties": {}, - "type": "object" - }, - "Annotation": { - "description": "NOTE WHEN ADDING NEW PROTO FIELDS: Be sure to add datapol annotations to new fields with potential PII, so they get scrubbed when logging protos for errors. NEXT TAG: 29", - "id": "Annotation", - "properties": { - "babelPlaceholderMetadata": { - "$ref": "BabelPlaceholderMetadata" - }, - "cardCapabilityMetadata": { - "$ref": "CardCapabilityMetadata", - "description": "LINT.ThenChange(//depot/google3/java/com/google/apps/dynamite/v1/backend/action/common/SystemMessageHelper.java)" - }, - "chipRenderType": { - "description": "Whether the annotation should be rendered as a chip. If this is missing or unspecified, fallback to should_not_render on the metadata.", - "enum": [ - "CHIP_RENDER_TYPE_UNSPECIFIED", - "RENDER", - "RENDER_IF_POSSIBLE", - "DO_NOT_RENDER" - ], - "enumDescriptions": [ - "", - "Clients must render the annotation as a chip, and if they cannot render this many Annotations, show a fallback card.", - "Client can render the annotation if it has room to render it.", - "Client should not render the annotation as a chip." - ], - "type": "string" - }, - "consentedAppUnfurlMetadata": { - "$ref": "ConsentedAppUnfurlMetadata" - }, - "customEmojiMetadata": { - "$ref": "CustomEmojiMetadata" - }, - "dataLossPreventionMetadata": { - "$ref": "DataLossPreventionMetadata" - }, - "driveMetadata": { - "$ref": "DriveMetadata", - "description": "Chip annotations" - }, - "formatMetadata": { - "$ref": "FormatMetadata" - }, - "groupRetentionSettingsUpdated": { - "$ref": "GroupRetentionSettingsUpdatedMetaData" - }, - "gsuiteIntegrationMetadata": { - "$ref": "GsuiteIntegrationMetadata", - "description": "Metadata for 1P integrations like tasks, calendar. These are supported only through integration server as 1P integrations use the integration API (which in turn uses backend API with special permissions) to post messages. Clients should never set this. LINT.IfChange" - }, - "incomingWebhookChangedMetadata": { - "$ref": "IncomingWebhookChangedMetadata" - }, - "integrationConfigUpdated": { - "$ref": "IntegrationConfigUpdatedMetadata", - "description": "LINT.ThenChange(//depot/google3/java/com/google/apps/dynamite/v1/backend/action/common/SystemMessageHelper.java)" - }, - "length": { - "description": "Length of the text_body substring beginning from start_index the Annotation corresponds to.", - "format": "int32", - "type": "integer" - }, - "localId": { - "description": "A unique client-assigned ID for this annotation. This is helpful in matching the back-filled annotations to the original annotations on client side, without having to re-parse the message.", - "type": "string" - }, - "membershipChanged": { - "$ref": "MembershipChangedMetadata", - "description": "Metadata for system messages. Clients should never set this. LINT.IfChange" - }, - "readReceiptsSettingsMetadata": { - "$ref": "ReadReceiptsSettingsUpdatedMetadata" - }, - "requiredMessageFeaturesMetadata": { - "$ref": "RequiredMessageFeaturesMetadata", - "description": "Metadata that defines all of the required features that must be rendered in the message. Clients can use this to see whether they support the entire message, or show a fallback chip otherwise. See go/message-quoting-client-to-server for details. LINT.ThenChange( //depot/google3/java/com/google/apps/dynamite/v1/allshared/parser/AnnotationSanitizer.java, //depot/google3/java/com/google/apps/dynamite/v1/backend/action/common/SystemMessageHelper.java, //depot/google3/java/com/google/caribou/eli/mediation/chat/AnnotationTranslator.java )" - }, - "roomUpdated": { - "$ref": "RoomUpdatedMetadata" - }, - "serverInvalidated": { - "description": "Whether or not the annotation is invalidated by the server. Example of situations for invalidation include: when the URL is malformed, or when Drive item ID is rejected by Drive Service.", - "type": "boolean" - }, - "slashCommandMetadata": { - "$ref": "SlashCommandMetadata" - }, - "startIndex": { - "description": "Start index (0-indexed) of the Message text the Annotation corresponds to, inclusive.", - "format": "int32", - "type": "integer" - }, - "type": { - "description": "Type of the Annotation.", - "enum": [ - "TYPE_UNSPECIFIED", - "URL", - "DRIVE_FILE", - "DRIVE_DOC", - "DRIVE_SHEET", - "DRIVE_SLIDE", - "DRIVE_FORM", - "USER_MENTION", - "SLASH_COMMAND", - "CONSENTED_APP_UNFURL", - "VIDEO", - "FORMAT_DATA", - "IMAGE", - "PDF", - "VIDEO_CALL", - "UPLOAD_METADATA", - "GSUITE_INTEGRATION", - "CUSTOM_EMOJI", - "CARD_CAPABILITY", - "DATA_LOSS_PREVENTION", - "REQUIRED_MESSAGE_FEATURES_METADATA", - "MEMBERSHIP_CHANGED", - "ROOM_UPDATED", - "GROUP_RETENTION_SETTINGS_UPDATED", - "BABEL_PLACEHOLDER", - "READ_RECEIPTS_SETTINGS_UPDATED", - "INCOMING_WEBHOOK_CHANGED", - "INTEGRATION_CONFIG_UPDATED", - "INVITATION" - ], - "enumDescriptions": [ - "Default value for the enum. DO NOT USE.", - "These can have overlaps, i.e. same message can have multiple of these. For example a Drive link to a PDF can have URL, DRIVE_FILE and PDF all set Links", - "Any drive file", - "", - "", - "", - "", - "", - "", - "", - "Any video, not just youtube, the url decides how to play", - "UI should not be concerned with FORMAT_DATA", - "", - "", - "For Thor integration", - "Blobstore uploads", - "Generic annotation for gsuite integrations", - "", - "Card capability for in-stream widgets.", - "", - "Clients can use this to see whether they support the entire message, or show a fallback chip otherwise.", - "Annotation types for system messages. Clients should never set this.", - "", - "", - "", - "", - "", - "", - "Message-level annotations. First message of an invite. Should not be set by clients." - ], - "type": "string" - }, - "uniqueId": { - "description": "A unique server-assigned ID for this annotation. This is helpful in matching annotation objects when fetched from service.", - "type": "string" - }, - "uploadMetadata": { - "$ref": "UploadMetadata" - }, - "urlMetadata": { - "$ref": "UrlMetadata" - }, - "userMentionMetadata": { - "$ref": "UserMentionMetadata", - "description": "Metadata that clients can set for annotations. LINT.IfChange In-text annotations" - }, - "videoCallMetadata": { - "$ref": "VideoCallMetadata" - }, - "youtubeMetadata": { - "$ref": "YoutubeMetadata" - } - }, - "type": "object" - }, - "AppId": { - "description": "Identifier of an App.", - "id": "AppId", - "properties": { - "appType": { - "description": "Enum indicating the type of App this is.", - "enum": [ - "APP_TYPE_UNSPECIFIED", - "APP", - "GSUITE_APP", - "INCOMING_WEBHOOK" - ], - "enumDescriptions": [ - "", - "3P APP eg. external Bots(Asana Bot), 1P Bots(Drive Bot).", - "1P APP eg. Tasks, Meet, Docs, Calendar..", - "Asynchronous messages via an incoming webhook." - ], - "type": "string" - }, - "gsuiteAppType": { - "description": "Enum indicating which 1P App this is when app_type is GSUITE_APP. Determined & set by the 1P API as a convenience for all users of this identifier(Eg. clients, chime, backend etc.) to map to 1P properties.", - "enum": [ - "GSUITE_APP_TYPE_UNSPECIFIED", - "TASKS_APP", - "CALENDAR_APP", - "DOCS_APP", - "SHEETS_APP", - "SLIDES_APP", - "MEET_APP", - "ASSISTIVE_SUGGESTION_APP", - "CONTACTS_APP", - "ACTIVITY_FEED_APP", - "DRIVE_APP", - "CHAT_IN_MEET_APP" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "Powered by Bullseye", - "", - "", - "", - "" - ], - "type": "string" - }, - "id": { - "description": "Numeric identifier of the App. Set to Project number for 1/3P Apps. For Webhook, this is WebhookId. Determined & set by the 1P API from App credentials on the side channel.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedActivityFeedAnnotationData": { - "description": "Next Id: 7", - "id": "AppsDynamiteSharedActivityFeedAnnotationData", - "properties": { - "activityFeedMessageCreateTime": { - "description": "Timestamp of when the Activity Feed message that contains this annotation was created. This is roughly when the activity happened, such as when a reaction happened, but will have at least some small delay, since the Activity Feed message is created asynchronously after. This timestamp should only be used for display when the activity create time is not available in the Chat UI, like the time of a reaction.", - "format": "google-datetime", - "type": "string" - }, - "activityFeedMessageId": { - "$ref": "MessageId", - "description": "Unique id of the Activity Feed message used by clients to implement click-to-source. This is the same messageId as the top-level id field for the Activity Feed item." - }, - "chatItem": { - "$ref": "AppsDynamiteSharedChatItem" - }, - "sharedUserInfo": { - "$ref": "UserInfo", - "description": "Only populated on read path and should not be persisted in storage." - }, - "userInfo": { - "$ref": "AppsDynamiteSharedActivityFeedAnnotationDataUserInfo", - "description": "Use shared_user_info instead." - } - }, - "type": "object" - }, - "AppsDynamiteSharedActivityFeedAnnotationDataUserInfo": { - "description": "UserId of the AF item updater to show and the updater count to show.", - "id": "AppsDynamiteSharedActivityFeedAnnotationDataUserInfo", - "properties": { - "updaterCountDisplayType": { - "description": "Describes how updater_count_to_show should be used.", - "enum": [ - "UPDATER_COUNT_DISPLAY_TYPE_UNSPECIFIED", - "EXACT_COUNT", - "NONZERO_COUNT" - ], - "enumDescriptions": [ - "", - "A precise updater count is known and the value set in updater_count_to_show should be used.", - "A precise updater count could not be calculated, but there is at least one. Any value set in updater_count_to_show should NOT be used." - ], - "type": "string" - }, - "updaterCountToShow": { - "description": "The number of updaters for clients to show, currently set to the total number of updaters minus the one set in updater_to_show.", - "format": "int32", - "type": "integer" - }, - "updaterToShow": { - "$ref": "UserId", - "description": "The updater for clients to show." - } - }, - "type": "object" - }, - "AppsDynamiteSharedAppProfile": { - "description": "Optional field for apps overriding display info", - "id": "AppsDynamiteSharedAppProfile", - "properties": { - "avatarEmoji": { - "description": "Displayed user avatar emoji.", - "type": "string" - }, - "avatarUrl": { - "description": "Displayed user avatar url.", - "type": "string" - }, - "name": { - "description": "Displayed user name.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedAssistantAnnotationData": { - "description": "This is the internal version of the API proto at google3/google/chat/v1/gsuite_message_integration.proto Data used to render Assistant suggestions. See go/bullseye-rendering.", - "id": "AppsDynamiteSharedAssistantAnnotationData", - "properties": { - "suggestion": { - "$ref": "AppsDynamiteSharedAssistantSuggestion", - "description": "The suggestion to render in the card." - }, - "unfulfillable": { - "$ref": "AppsDynamiteSharedAssistantUnfulfillableRequest", - "description": "Set when the initial query was unfulfillable. Only an on-demand unfulfillable query will result in a response (not a proactive query). 1. On-demand: user explicitly invokes the bot 2. Proactive: bot makes proactive suggestion (when available) by listening to all user messages." - } - }, - "type": "object" - }, - "AppsDynamiteSharedAssistantDebugContext": { - "description": "Represents info regarding suggestion debug information.", - "id": "AppsDynamiteSharedAssistantDebugContext", - "properties": { - "query": { - "description": "The query that triggered the resulting suggestion.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedAssistantFeedbackContext": { - "description": "Data needed to render feedback on the Assistant card", - "id": "AppsDynamiteSharedAssistantFeedbackContext", - "properties": { - "feedbackChips": { - "description": "Specifies a list of feedback chips to show", - "items": { - "$ref": "AppsDynamiteSharedAssistantFeedbackContextFeedbackChip" - }, - "type": "array" - }, - "thumbsFeedback": { - "description": "Whether the thumbs feedback is provided", - "enum": [ - "THUMBS_FEEDBACK_UNSPECIFIED", - "NONE_SELECTED", - "UP", - "DOWN" - ], - "enumDescriptions": [ - "Unspecified thumbs state", - "Thumbs are not selected", - "Thumbs up selected", - "Thumbs down selected" - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedAssistantFeedbackContextFeedbackChip": { - "description": "Suggestion chips for users to indicate positive or negative feedback", - "id": "AppsDynamiteSharedAssistantFeedbackContextFeedbackChip", - "properties": { - "feedbackChipType": { - "description": "What type of chip to display", - "enum": [ - "FEEDBACK_CHIP_TYPE_UNSPECIFIED", - "WRONG_TRIGGER", - "WRONG_FILE", - "CORRECT_TRIGGER", - "CORRECT_FILE", - "DISRUPTIVE", - "OTHER" - ], - "enumDescriptions": [ - "Unspecified type of feedback chip", - "Bad/noisy triggering", - "Incorrect files were presented", - "The Assistant card triggered appropriately", - "The correct files were presented", - "The feature is disruptive", - "Other reason" - ], - "type": "string" - }, - "state": { - "description": "Whether the chip has been selected", - "enum": [ - "FEEDBACK_CHIP_STATE_UNSPECIFIED", - "SELECTED", - "UNSELECTED" - ], - "enumDescriptions": [ - "Unspecified selection state", - "Chip is selected", - "Chip is not selected" - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedAssistantSessionContext": { - "description": "Session context specific for Assistant suggestions.", - "id": "AppsDynamiteSharedAssistantSessionContext", - "properties": { - "contextualSessionId": { - "description": "Unique identifier populated by the contextual request handler for each vertical (Ex: File Suggestions, Smart Scheduling, etc.) that can be used to track sessions end-to-end. May span multiple users (sender-specific).", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedAssistantSuggestion": { - "description": "Data for an Assistant suggestion.", - "id": "AppsDynamiteSharedAssistantSuggestion", - "properties": { - "debugContext": { - "$ref": "AppsDynamiteSharedAssistantDebugContext", - "description": "Info regarding suggestion debug information." - }, - "feedbackContext": { - "$ref": "AppsDynamiteSharedAssistantFeedbackContext", - "description": "Data for rendering feedback." - }, - "findDocumentSuggestion": { - "$ref": "AppsDynamiteSharedFindDocumentSuggestion", - "description": "Suggestion type that suggests documents (docs, slides, sheets)." - }, - "serializedSuggestions": { - "description": "String representation of the suggestions provided.", - "type": "string" - }, - "sessionContext": { - "$ref": "AppsDynamiteSharedAssistantSessionContext", - "description": "Session context specific to the Assistant suggestion." - } - }, - "type": "object" - }, - "AppsDynamiteSharedAssistantUnfulfillableRequest": { - "description": "Data for a response to an unfulfillable request.", - "id": "AppsDynamiteSharedAssistantUnfulfillableRequest", - "properties": {}, - "type": "object" - }, - "AppsDynamiteSharedAvatarInfo": { - "id": "AppsDynamiteSharedAvatarInfo", - "properties": { - "emoji": { - "$ref": "AppsDynamiteSharedEmoji" - } - }, - "type": "object" - }, - "AppsDynamiteSharedBackendUploadMetadata": { - "description": "Metadata used only in Dynamite backend for uploaded attachments.", - "id": "AppsDynamiteSharedBackendUploadMetadata", - "properties": { - "blobPath": { - "description": "Blobstore path for the uploaded attachment", - "type": "string" - }, - "contentName": { - "description": "The original file name for the content, not the full path.", - "type": "string" - }, - "contentSize": { - "description": "Scotty reported content size by default. http://google3/uploader/agent/scotty_agent.proto?l=101&rcl=140889785", - "format": "int64", - "type": "string" - }, - "contentType": { - "description": "Type is from Scotty's best_guess by default: http://google3/uploader/agent/scotty_agent.proto?l=51&rcl=140889785", - "type": "string" - }, - "dlpScanOutcome": { - "description": "The results of the Data Loss Prevention (DLP) scan of the attachment. DEPRECATED: use dlp_scan_summary instead.", - "enum": [ - "SCAN_UNKNOWN_OUTCOME", - "SCAN_SUCCEEDED_NO_VIOLATION", - "SCAN_SUCCEEDED_BLOCK", - "SCAN_SUCCEEDED_WARN", - "SCAN_SUCCEEDED_AUDIT_ONLY", - "SCAN_FAILURE_EXCEPTION", - "SCAN_FAILURE_RULE_FETCH_FAILED", - "SCAN_FAILURE_TIMEOUT", - "SCAN_FAILURE_ALL_RULES_FAILED", - "SCAN_FAILURE_ILLEGAL_STATE_FOR_ATTACHMENTS", - "SCAN_SKIPPED_EXPERIMENT_DISABLED", - "SCAN_SKIPPED_CONSUMER", - "SCAN_SKIPPED_NON_HUMAN_USER", - "SCAN_SKIPPED_NO_MESSAGE", - "SCAN_SKIPPED_USER_ACKNOWLEDGED_WARNING", - "SCAN_SKIPPED_MESSAGE_FROM_UNSUPPORTED_ORIGIN", - "SCAN_RULE_EVALUATION_SKIPPED_NO_RULES_FOUND", - "SCAN_RULE_EVALUATION_SKIPPED_NO_APPLICABLE_RULES_FOR_ACTION_PARAMS", - "SCAN_RULE_EVALUATION_SKIPPED_NO_APPLICABLE_RULES_FOR_TRIGGER", - "SCAN_RULE_EVALUATION_SKIPPED_CHANGELING_PERMANENT_ERROR", - "SCAN_RULE_EVALUATION_SKIPPED_CHANGELING_EMPTY_RESPONSE", - "SCAN_RULE_EVALUATION_SKIPPED_UNSUPPORTED_FILE_TYPE", - "SCAN_SUCCEEDED_WITH_FAILURES_NO_VIOLATION", - "SCAN_SUCCEEDED_WITH_FAILURES_BLOCK", - "SCAN_SUCCEEDED_WITH_FAILURES_WARN", - "SCAN_SUCCEEDED_WITH_FAILURES_AUDIT_ONLY" - ], - "enumDescriptions": [ - "", - "This means no violation is detected on the given message/attachment.", - "Violation is detected. The message/attachment will be blocked (or deleted if this happens in failure recovery), the user will be warned, and the violation will be logged to BIP.", - "Violation is detected. The user will be warned, and the violation will be logged to BIP.", - "Violation is detected and will be logged to BIP (no user-facing action performed).", - "Rule fetch and evaluation were attempted but an exception occurred.", - "Rule fetch was attempted but failed, so rule evaluation could not be performed.", - "Rule fetch and evaluation were attempted but the scanning timed out.", - "Rule fetch completed and evaluation were attempted, but all of the rules failed to be evaluated.", - "An IllegalStateException is thrown when executing DLP on attachments. This could happen if the space row is missing.", - "Rule fetch and evaluation is skipped because DLP is not enabled for the user.", - "Rule fetch and evaluation are skipped because the user sending message is consumer.", - "Rule fetch and evaluation are skipped because the user sending message is a non-human user (i.e. a bot).", - "Rule fetch and evaluation are skipped because there is no message to scan. Deprecated: this should not happen since there must be message or attachment for DLP scan.", - "Rule fetch and evaluation are skipped because the user has acknowledged the warning on the message that triggered the Warn violation and sent the message anyway.", - "Scanning was skipped because the message originated from Interop or Babel.", - "Rule fetch happened, but rule evaluation is skipped because no rules were found.", - "Rule fetch happened, but rule evaluation is skipped because none of the rules are applicable to the given action params.", - "Rule fetch happened, but rule evaluation is skipped because none of the rules are applicable to the given trigger.", - "Rule fetch happened, but rule evaluation is skipped because Changeling returned permanent failure while converting the attachment to text.", - "Rule fetch happened, but rule evaluation is skipped because Changeling returned an empty response while converting the attachment to text.", - "Rule fetch happened, but rule evaluation is skipped because file type is unsupported.", - "Rules were fetched but some evaluations failed. No violation was found in the rules that were successfully evaluated.", - "Rules were fetched but some evaluations failed. A blocking violation was found in the rules that were successfully evaluated. The message/attachment will be blocked, the user will be notified, and the violation will be logged to BIP. A blocking violation takes precedence over all other violation types.", - "Rules were fetched but some evaluations failed. A warn violation was found in the rules that were successfully evaluated. The user will be warned, and the violation will be logged to BIP.", - "Rules were fetched but some evaluations failed. An audit-only violation was found in the rules that were successfully evaluated. The violation will be logged to BIP (no user-facing action performed)." - ], - "type": "string" - }, - "dlpScanSummary": { - "$ref": "DlpScanSummary", - "description": "Summary of a Data Loss Prevention (DLP) scan of the attachment. Attachments are evaluated in the backend when they are uploaded." - }, - "groupId": { - "$ref": "GroupId", - "description": "GroupId to which this attachment is uploaded." - }, - "isClientSideTranscodedVideo": { - "description": "If the uploaded file is a video that has been transcoded on the client side Next tag: 18", - "type": "boolean" - }, - "originalDimension": { - "$ref": "AppsDynamiteSharedDimension", - "description": "Original dimension of the content. Only set for image attachments." - }, - "quoteReplyMessageId": { - "$ref": "MessageId", - "description": "The message id of a quote reply referencing this attachment. When present, this attachment has been quoted in a reply message. Normally, the attachment is fetched through the message id in the blob_path, but in the case of a quote reply, the blob_path would contain the quoted message id. Thus this message id field is needed to fetch the quote reply message instead. This field is conditionally populated at read time for quotes and never persisted in storage. See go/message-quoting-attachments for more context." - }, - "sha256": { - "description": "The SHA256 hash of the attachment bytes.", - "format": "byte", - "type": "string" - }, - "uploadIp": { - "description": "User IP address at upload time. Ex. \"123.1.2.3\". Used by Ares abuse scanning.", - "type": "string" - }, - "uploadTimestampUsec": { - "description": "Timestamp of when user finished uploading the content.", - "format": "int64", - "type": "string" - }, - "videoId": { - "description": "VideoID of the video attachments. This ID shall meets the Youtube ID format of 16 hex characters. For example, '4c14b8825af6059b' is a valid ID.", - "type": "string" - }, - "videoThumbnailBlobId": { - "description": "Full Blobstore ID for the video thumbnail.", - "type": "string" - }, - "virusScanResult": { - "description": "Result for a virus scan.", - "enum": [ - "UNKNOWN_VIRUS_SCAN_RESULT", - "CLEAN", - "INFECTED", - "ERROR", - "POLICY_VIOLATION" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "The document violates Google's policy for executables and archives." - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedCalendarEventAnnotationData": { - "id": "AppsDynamiteSharedCalendarEventAnnotationData", - "properties": { - "calendarEvent": { - "$ref": "AppsDynamiteSharedCalendarEventAnnotationDataCalendarEvent" - }, - "eventCreation": { - "$ref": "AppsDynamiteSharedCalendarEventAnnotationDataEventCreation", - "description": "Notification about the creation of an event." - } - }, - "type": "object" - }, - "AppsDynamiteSharedCalendarEventAnnotationDataCalendarEvent": { - "id": "AppsDynamiteSharedCalendarEventAnnotationDataCalendarEvent", - "properties": { - "endTime": { - "$ref": "AppsDynamiteSharedCalendarEventAnnotationDataCalendarEventTime", - "description": "The end time of the event." - }, - "eventId": { - "description": "ID of the event.", - "type": "string" - }, - "startTime": { - "$ref": "AppsDynamiteSharedCalendarEventAnnotationDataCalendarEventTime", - "description": "The start time of the event." - }, "title": { - "description": "Title of the event (at the time the message was generated).", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedCalendarEventAnnotationDataCalendarEventTime": { - "id": "AppsDynamiteSharedCalendarEventAnnotationDataCalendarEventTime", - "properties": { - "allDay": { - "$ref": "Date", - "description": "All day event." - }, - "timed": { - "description": "Non all day event.", - "format": "google-datetime", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedCalendarEventAnnotationDataEventCreation": { - "description": "Creation of an event (no extra data for now).", - "id": "AppsDynamiteSharedCalendarEventAnnotationDataEventCreation", - "properties": {}, - "type": "object" - }, - "AppsDynamiteSharedCallAnnotationData": { - "description": "Data used to render Meet or Google Voice chips in Chat. See go/dynamite-calling-artifacts-in-chat.", - "id": "AppsDynamiteSharedCallAnnotationData", - "properties": { - "callEndedTimestamp": { - "description": "Timestamp when the call ended. Used to render the call ended system message.", - "format": "google-datetime", - "type": "string" - }, - "callMetadata": { - "$ref": "AppsDynamiteSharedCallMetadata", - "description": "Required. Call metadata required to create the call artifacts. For now, the metadata contains only the call id to identify the call. This field allows additional data (e.g. voice call type) to be added if needed in the future." - }, - "callStatus": { - "description": "Required. Indicates the call status for the space. Used to determine the chip's state.", - "enum": [ - "CALL_STATUS_UNSPECIFIED", - "CALL_STARTED", - "CALL_MISSED", - "CALL_ENDED" - ], - "enumDescriptions": [ - "Default value for the enum. DO NOT USE.", - "Indicates that the call has started.", - "Indicates that the call is missed.", - "Indicates that the call has ended." - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedCallMetadata": { - "description": "Metadata required to generate call artifacts. This can either be the metadata for a Meet or, in the future, Google Voice call.", - "id": "AppsDynamiteSharedCallMetadata", - "properties": { - "meetMetadata": { - "$ref": "AppsDynamiteSharedMeetMetadata", - "description": "Metadata specific for the Meet call." - } - }, - "type": "object" - }, - "AppsDynamiteSharedCardClickSuggestion": { - "description": "Card click which identifies one suggestion provided by the app/bot.", - "id": "AppsDynamiteSharedCardClickSuggestion", - "properties": { - "actionId": { - "description": "Identify the button/action that created the suggestion. A simple example would be a card button within the stream, or the id which can identify a specific suggestion.", - "type": "string" - }, - "suggestionMessageId": { - "$ref": "MessageId", - "description": "The message_id for the message that was posted by the app/bot." - } - }, - "type": "object" - }, - "AppsDynamiteSharedChatItem": { - "description": "Next Id: 5", - "id": "AppsDynamiteSharedChatItem", - "properties": { - "activityInfo": { - "description": "Information needed to render the specific type of feed item.", - "items": { - "$ref": "AppsDynamiteSharedChatItemActivityInfo" - }, - "type": "array" - }, - "groupInfo": { - "$ref": "AppsDynamiteSharedChatItemGroupInfo", - "description": "Only populated on read path and should not be persisted in storage." - }, - "messageInfo": { - "$ref": "AppsDynamiteSharedMessageInfo", - "description": "Additional information about the original chat message that isn't captured in the top-level message proto." - } - }, - "type": "object" - }, - "AppsDynamiteSharedChatItemActivityInfo": { - "id": "AppsDynamiteSharedChatItemActivityInfo", - "properties": { - "feedItemNudge": { - "$ref": "AppsDynamiteSharedChatItemActivityInfoFeedItemNudge" - }, - "feedItemReactions": { - "$ref": "AppsDynamiteSharedChatItemActivityInfoFeedItemReactions" - }, - "feedItemThreadReply": { - "$ref": "AppsDynamiteSharedChatItemActivityInfoFeedItemThreadReply" - }, - "feedItemUserMention": { - "$ref": "AppsDynamiteSharedChatItemActivityInfoFeedItemUserMention" - } - }, - "type": "object" - }, - "AppsDynamiteSharedChatItemActivityInfoFeedItemNudge": { - "description": "Existence of this attribute indicates that the AF item is for a message nudge item.", - "id": "AppsDynamiteSharedChatItemActivityInfoFeedItemNudge", - "properties": { - "nudgeType": { - "description": "Nudge type of the nudge feed item.", - "enum": [ - "UNDEFINED", - "REPLY", - "FOLLOW_UP" - ], - "enumDescriptions": [ - "", - "The message receiver is nudged since the message may require a reply.", - "The message creator is nudged since the message may require a follow-up." - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedChatItemActivityInfoFeedItemReactions": { - "description": "Existence of this attribute indicates that the AF item is for message reactions, but it is intentionally left empty since the list of reactions can be found in the top-level Message.Reactions.", - "id": "AppsDynamiteSharedChatItemActivityInfoFeedItemReactions", - "properties": {}, - "type": "object" - }, - "AppsDynamiteSharedChatItemActivityInfoFeedItemThreadReply": { - "description": "Existence of this attribute indicates that the AF item is for thread reply.", - "id": "AppsDynamiteSharedChatItemActivityInfoFeedItemThreadReply", - "properties": { - "replyType": { - "description": "Reply type of the thread reply feed item. The field is not persisted in storage. It's populated when constructing Activity Feed payload.", - "enum": [ - "UNSPECIFIED", - "ROOT", - "FOLLOWER" - ], - "enumDescriptions": [ - "", - "The thread reply feed item is for the root message poster.", - "The thread reply feed item is for a thread follower who's not the root message poster." - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedChatItemActivityInfoFeedItemUserMention": { - "description": "Existence of this attribute indicates that the AF item is for a user mention item.", - "id": "AppsDynamiteSharedChatItemActivityInfoFeedItemUserMention", - "properties": { - "type": { - "description": "User mention type", - "enum": [ - "TYPE_UNSPECIFIED", - "DIRECT", - "ALL" - ], - "enumDescriptions": [ - "Mention type not specified.", - "Mentioned directly by name.", - "Mentioned by @all." - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedChatItemGroupInfo": { - "description": "Information about the space that the item originated from. This will be used to display Activity Feed items from rooms, and only contain the necessary information, such as the space name and group attributes. NEXT TAG: 6", - "id": "AppsDynamiteSharedChatItemGroupInfo", - "properties": { - "attributeCheckerGroupType": { - "description": "This is needed to determine what type of group the source message came from to support click-to-source.", - "enum": [ - "ATTRIBUTE_CHECKER_GROUP_TYPE_UNSPECIFIED", - "ONE_TO_ONE_HUMAN_DM", - "ONE_TO_ONE_BOT_DM", - "IMMUTABLE_MEMBERSHIP_GROUP_DM", - "FLAT_ROOM", - "THREADED_ROOM", - "IMMUTABLE_MEMBERSHIP_HUMAN_DM", - "POST_ROOM", - "ACTIVITY_FEED" - ], - "enumDescriptions": [ - "LINT.IfChange", - "A 1:1 DM that has two human users. Deprecated. Use IMMUTABLE_MEMBERSHIP_HUMAN_DM instead.", - "A 1:1 DM between a human user and a bot.", - "A group DM that has multiple human users with immutable group membership. Deprecated. Use IMMUTABLE_MEMBERSHIP_HUMAN_DM instead.", - "A flat room that contains a single thread.", - "A threaded room. Topics in this room are threaded, and users can reply to any topic.", - "A DM with immutable group membership. It can be a 1:1 DM or a group DM with multiple human users.", - "A post room. Topics in this room are organized in a post/reply style. See the design doc for more details: go/PostRoomsInDynamite. Deprecated. Post rooms are no longer supported.", - "Represents an Activity Feed space. These groups are modeled like flat rooms and contain items for users to catch up on important things. Each user should only have one group of this type. See go/activity-feed. Deprecated: The go/activity-feed project is cancelled and this should no longer be used. LINT.ThenChange(//depot/google3/logs/proto/apps_dynamite/dynamite_visual_element_entry.proto:LoggingGroupType,//depot/google3/java/com/google/apps/dynamite/v1/web/ui/group/groups.js:LoggingGroupType)" - ], - "type": "string" - }, - "groupName": { - "type": "string" - }, - "groupReadTimeUsec": { - "description": "Timestamp of when the group containing the message has been read by the user.", - "format": "int64", - "type": "string" - }, - "inlineThreadingEnabled": { - "description": "Indicates whether the group has inline replies enabled. If enabled, clients will render the space with inline replies.", - "type": "boolean" - } - }, - "type": "object" - }, - "AppsDynamiteSharedContentReportType": { - "description": "Denotes a type of content report a user can send.", - "id": "AppsDynamiteSharedContentReportType", - "properties": { - "systemViolation": { - "description": "Required. Google-defined system violation, covering the most common violations.", - "enum": [ - "VIOLATION_UNSPECIFIED", - "HARASSMENT", - "DISCRIMINATION", - "EXPLICIT_CONTENT", - "SPAM", - "CONFIDENTIAL_INFORMATION", - "SENSITIVE_INFORMATION", - "FRAUD", - "MALWARE", - "ILLEGAL_ACTIVITIES", - "OTHER" - ], - "enumDescriptions": [ - "Default value if unset. Do not use directly. This value should not appear as a selectable violation during content reporting.", - "\"Harassment, offensive, or rude behavior\"", - "\"Discrimination or harmful stereotypes against anyone, including protected groups\"", - "\"Explicit content that's graphic, violent, or otherwise inappropriate\"", - "\"Spam\"", - "\"Confidential information\"", - "\"Sensitive information\"", - "Phishing, impersonation/misrepresentation, or deceiving other users into sharing information under false pretenses.", - "Malware, viruses, Trojan horses, corrupted files, destructive code, etc.", - "Promoting, organizing, or engaging in illegal activities.", - "\"Something else\"" - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedCustomEmoji": { - "description": "Proto representation of a custom emoji. May be used in both APIs and in Spanner, but certain fields should be restricted to one or the other. See the per-field documentation for details. NEXT_TAG: 14", - "id": "AppsDynamiteSharedCustomEmoji", - "properties": { - "blobId": { - "description": "ID for the underlying image data in Blobstore. This field should *only* be present in Spanner or within the server, but should not be exposed in public APIs.", - "type": "string" - }, - "contentType": { - "description": "Content type of the file used to upload the emoji. Used for takeout. Written to Spanner when the emoji is created.", - "type": "string" - }, - "createTimeMicros": { - "description": "Time when the Emoji was created, in microseconds. This field may be present in Spanner, within the server, or in public APIs.", - "format": "int64", - "type": "string" - }, - "creatorUserId": { - "$ref": "UserId", - "description": "This field should *never* be persisted to Spanner." - }, - "deleteTimeMicros": { - "description": "Time when the emoji was deleted, in microseconds. This field may be present in Spanner, within the server, or in public APIs. Only present if the emoji has been deleted.", - "format": "int64", - "type": "string" - }, - "ephemeralUrl": { - "description": "Output only. A short-lived URL clients can use for directly accessing a custom emoji image. This field is intended for API consumption, and should *never* be persisted to Spanner.", - "readOnly": true, - "type": "string" - }, - "ownerCustomerId": { - "$ref": "CustomerId", - "description": "This field should *never* be persisted to Spanner." - }, - "readToken": { - "description": "Opaque token that clients use to construct the URL for accessing the custom emoji\u2019s image data. This field is intended for API consumption, and should *never* be persisted to Spanner.", - "type": "string" - }, - "shortcode": { - "description": "User-provided, human-readable ID for the custom emoji. Users are expected to observe this field in the UI instead of the UUID. This shortcode should be unique within an organization, but has no global uniqueness guarantees, unlike the UUID. This field should *never* be persisted to Spanner.", - "type": "string" - }, - "state": { - "description": "Snapshot of the current state of the emoji, which may differ from the source-of-truth in the CustomEmojis table. This field should *never* be persisted to Spanner.", - "enum": [ - "EMOJI_STATE_UNSPECIFIED", - "EMOJI_ENABLED", - "EMOJI_SYSTEM_DISABLED", - "EMOJI_HIDDEN", - "EMOJI_DELETED" - ], - "enumDescriptions": [ - "", - "Emoji is visible and available to be used, subject to access control requirements.", - "Emoji can no longer be used (e.g. due to a shortcode conflict), but is not removed from existing embeddings.", - "Emoji is hidden from pickers, so new usages are not allowed, but is not removed from existing embeddings.", - "Emoji is removed everywhere and is not available to end-users." - ], - "type": "string" - }, - "updateTimeMicros": { - "format": "int64", - "type": "string" - }, - "uuid": { - "description": "Unique key for a custom emoji resource. Required. This field is *always* populated.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedDimension": { - "description": "Dimension for the uploaded attachments.", - "id": "AppsDynamiteSharedDimension", - "properties": { - "height": { - "format": "int32", - "type": "integer" - }, - "width": { - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "AppsDynamiteSharedDlpMetricsMetadata": { - "description": "LINT.IfChange", - "id": "AppsDynamiteSharedDlpMetricsMetadata", - "properties": { - "dlpStatus": { - "description": "[required] Describes the DLP status of message send and attachment upload events.", - "enum": [ - "DLP_STATUS_UNKNOWN", - "DLP_DISABLED", - "DLP_ENABLED_NO_RULE_FETCH", - "DLP_ENABLED_RULES_FETCHED_NO_RULES", - "DLP_ENABLED_RULES_FETCHED_NO_APPLICABLE_RULES", - "DLP_ENABLED_RULES_FETCHED_AND_EVALUATED", - "DLP_ENABLED_SCAN_TIMEOUT", - "DLP_ENABLED_SCAN_FAILED" - ], - "enumDescriptions": [ - "", - "Rule fetch and evaluation are skipped because DLP experiment is not enabled.", - "Rule fetch and evaluation are skipped because there is no rule to be fetched (e.g. message is sent from a consumer, or there is no message.)", - "Rule fetch happened, but rule evalution is skipped because the fetch returned no rules.", - "Rule fetch happened, but rule evaluation is skipped because none of the rules are applicable.", - "Rule fetch and evaluation were performed and completed successfully.", - "DLP scan was attempted but timed out.", - "Generic DLP failure. This case covers any other errors/exceptions in the Chat backend that caused the DLP scan to fail." - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedDocument": { - "description": "Data for rendering a document.", - "id": "AppsDynamiteSharedDocument", - "properties": { - "fileId": { - "description": "Unique file ID.", - "type": "string" - }, - "justification": { - "$ref": "AppsDynamiteSharedJustification", - "description": "Justification to explain why this document is being suggested." - }, - "lastModifiedTime": { - "description": "Time the document was last modified.", - "format": "google-datetime", - "type": "string" - }, - "mimeType": { - "description": "Used to determine which icon to render (e.g. docs, slides, sheets)", - "type": "string" - }, - "title": { - "description": "Title of the document.", + "description": "[Required] Title of the action.", "type": "string" }, "url": { - "description": "URL of the document.", + "description": "[Optional] Url of the action.", "type": "string" } }, "type": "object" }, - "AppsDynamiteSharedEmoji": { - "id": "AppsDynamiteSharedEmoji", - "properties": { - "customEmoji": { - "$ref": "AppsDynamiteSharedCustomEmoji", - "description": "A custom emoji." - }, - "unicode": { - "description": "A basic emoji represented by a unicode string.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedFindDocumentSuggestion": { - "description": "Data for a FindDocument suggestion type.", - "id": "AppsDynamiteSharedFindDocumentSuggestion", - "properties": { - "documentSuggestions": { - "description": "List of documents to render as suggestions.", - "items": { - "$ref": "AppsDynamiteSharedDocument" - }, - "type": "array" - }, - "showActionButtons": { - "description": "Whether to show the action buttons in the card for the suggestions.", - "type": "boolean" - } - }, - "type": "object" - }, - "AppsDynamiteSharedGroupDetails": { - "description": "NEXT TAG: 3 A GroupDetails proto will store the information pertaining to single Group.", - "id": "AppsDynamiteSharedGroupDetails", - "properties": { - "description": { - "description": "A simple text that describes the purpose of a single Group, the general theme of the topics to be posted and/or the denominator of the Group participants.", - "type": "string" - }, - "guidelines": { - "description": "A simple text describing the rules and expectations from members when participating in conversation.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedGroupVisibility": { - "id": "AppsDynamiteSharedGroupVisibility", - "properties": { - "state": { - "enum": [ - "UNKNOWN", - "PRIVATE", - "PUBLIC" - ], - "enumDescriptions": [ - "Do not use.", - "Explicitly invited users may join the room.", - "Anyone in the domain may join the room." - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedJustification": { - "description": "Data for rendering a justification for a document.", - "id": "AppsDynamiteSharedJustification", - "properties": { - "actionTime": { - "description": "Time the action took place.", - "format": "google-datetime", - "type": "string" - }, - "actionType": { - "description": "Type of action performed on the document.", - "enum": [ - "ACTION_TYPE_UNSPECIFIED", - "COMMENTED", - "CREATED", - "EDITED", - "PRESENTED", - "SHARED", - "VIEWED", - "COMMENT_RESOLVED", - "SENT" - ], - "enumDescriptions": [ - "Unspecified action.", - "Commented on document.", - "Created document.", - "Edited document.", - "Presented document.", - "Shared document.", - "Viewed document.", - "Resolved comment on document.", - "Sent document over chat/email." - ], - "type": "string" - }, - "documentOwner": { - "$ref": "AppsDynamiteSharedJustificationPerson", - "description": "Owner of the document." - }, - "topics": { - "description": "Words or phrases from the user's query that describes the document content. (Ex: Users query is \"Can you share the document about Bullseye?\" the extracted topic would be \"Bullseye\").", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AppsDynamiteSharedJustificationPerson": { - "description": "Data for rendering a person associated with a document.", - "id": "AppsDynamiteSharedJustificationPerson", - "properties": { - "isRecipient": { - "description": "Whether the person is the recipient of the suggestions.", - "type": "boolean" - }, - "user": { - "$ref": "UserId", - "description": "Obfuscated user ID." - } - }, - "type": "object" - }, - "AppsDynamiteSharedMeetMetadata": { - "description": "Metadata specific for a Meet call that are required to generate call artifacts.", - "id": "AppsDynamiteSharedMeetMetadata", - "properties": { - "meetingCode": { - "description": "Required. A globally unique code (e.g. \"cxv-zbgj-wzw\") that points to a meeting space. Note: Meeting codes may be regenerated, which will cause old meeting codes to become invalid.", - "type": "string" - }, - "meetingUrl": { - "description": "Required. A URL, in the format \"https://meet.google.com/*\" (e.g. https://meet.google.com/cxv-zbgj-wzw), to identify and access the meeting space.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedMessageInfo": { - "description": "Information that references a Dynamite chat message. This is only used for Activity Feed messages.", - "id": "AppsDynamiteSharedMessageInfo", - "properties": { - "messageId": { - "$ref": "MessageId", - "description": "Id of the source chat message. This is kept here because the top-level message ID to refers the AF message ID." - }, - "messageType": { - "description": "The type of the source chat message.", - "enum": [ - "MESSAGE_TYPE_UNSPECIFIED", - "INLINE_REPLY" - ], - "enumDescriptions": [ - "Default value where type is not specified.", - "The source chat message is a threaded reply to another message." - ], - "type": "string" - }, - "topicReadTimeUsec": { - "description": "Timestamp of when the topic containing the message has been read by the user. This is populated if the message references an inline reply, in which case the space may be marked as read but the topic still has unread messages.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedMessageIntegrationPayload": { - "description": "The payload(restricted to 1P applications) to be stored with a specific message.", - "id": "AppsDynamiteSharedMessageIntegrationPayload", - "properties": { - "projectNumber": { - "description": "Pantheon project number used to identify the calling app.", - "format": "int64", - "type": "string" - }, - "tasksMessageIntegrationPayload": { - "$ref": "AppsDynamiteSharedTasksMessageIntegrationPayload" - }, - "type": { - "description": "An enum indicating which 1P application's payload this is. This field is required to add 1P payload.", - "enum": [ - "PAYLOAD_TYPE_UNSPECIFIED", - "TASKS" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedOrganizationInfo": { - "description": "Contains info about the entity that something is, or is owned by.", - "id": "AppsDynamiteSharedOrganizationInfo", - "properties": { - "consumerInfo": { - "$ref": "AppsDynamiteSharedOrganizationInfoConsumerInfo" - }, - "customerInfo": { - "$ref": "AppsDynamiteSharedOrganizationInfoCustomerInfo" - } - }, - "type": "object" - }, - "AppsDynamiteSharedOrganizationInfoConsumerInfo": { - "description": "Intentionally empty. Used to disambiguate consumer and customer use cases in oneof below.", - "id": "AppsDynamiteSharedOrganizationInfoConsumerInfo", - "properties": {}, - "type": "object" - }, - "AppsDynamiteSharedOrganizationInfoCustomerInfo": { - "id": "AppsDynamiteSharedOrganizationInfoCustomerInfo", - "properties": { - "customerId": { - "$ref": "CustomerId" - } - }, - "type": "object" - }, - "AppsDynamiteSharedOriginAppSuggestion": { - "description": "Stores the suggestion provided by apps/bots.", - "id": "AppsDynamiteSharedOriginAppSuggestion", - "properties": { - "appId": { - "$ref": "AppId" - }, - "cardClickSuggestion": { - "$ref": "AppsDynamiteSharedCardClickSuggestion" - } - }, - "type": "object" - }, - "AppsDynamiteSharedPhoneNumber": { - "id": "AppsDynamiteSharedPhoneNumber", - "properties": { - "type": { - "description": "The phone number type, e.g., work, mobile, etc.", - "type": "string" - }, - "value": { - "description": "The actual phone number.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedReaction": { - "id": "AppsDynamiteSharedReaction", - "properties": { - "count": { - "description": "The total number of users who have reacted.", - "format": "int32", - "type": "integer" - }, - "createTimestamp": { - "description": "When the first emoji of this type was added.", - "format": "int64", - "type": "string" - }, - "currentUserParticipated": { - "description": "Whether the current user reacted using this emoji. Note: Unlike most properties of messages, this is different per-user.", - "type": "boolean" - }, - "emoji": { - "$ref": "AppsDynamiteSharedEmoji" - } - }, - "type": "object" - }, - "AppsDynamiteSharedRetentionSettings": { - "description": "The settings of retention period of a message or topic.", - "id": "AppsDynamiteSharedRetentionSettings", - "properties": { - "expiryTimestamp": { - "description": "The timestamp after which the message/topic should be removed, in microseconds since the epoch, when state == EPHEMERAL_ONE_DAY. The value should not be set in other cases.", - "format": "int64", - "type": "string" - }, - "state": { - "description": "The retention state.", - "enum": [ - "UNKNOWN_RETENTION_STATE", - "PERMANENT", - "EPHEMERAL_ONE_DAY" - ], - "enumDescriptions": [ - "", - "The message/topic should be kept permanently.", - "The message/topic should be kept with a 24-hour TTL." - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedSegmentedMembershipCount": { - "description": "Contains info on membership count for member types: HUMAN_USER, APP_USER & ROSTER_MEMBER different states: INVITED, JOINED", - "id": "AppsDynamiteSharedSegmentedMembershipCount", - "properties": { - "memberType": { - "enum": [ - "MEMBER_TYPE_UNSPECIFIED", - "HUMAN_USER", - "ROSTER_MEMBER" - ], - "enumDescriptions": [ - "default value", - "member is a human user", - "member is a roster" - ], - "type": "string" - }, - "membershipCount": { - "description": "count of members with given type and state", - "format": "int32", - "type": "integer" - }, - "membershipState": { - "enum": [ - "MEMBER_UNKNOWN", - "MEMBER_INVITED", - "MEMBER_JOINED", - "MEMBER_NOT_A_MEMBER", - "MEMBER_FAILED" - ], - "enumDescriptions": [ - "Default state, do not use", - "An invitation to the space has been sent", - "User has joined the space", - "User is not a member", - "This state should never be stored in Spanner. It is a state for responses to the clients to indicate that membership mutations have failed and the member is in its previous state." - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedSegmentedMembershipCounts": { - "id": "AppsDynamiteSharedSegmentedMembershipCounts", - "properties": { - "value": { - "items": { - "$ref": "AppsDynamiteSharedSegmentedMembershipCount" - }, - "type": "array" - } - }, - "type": "object" - }, - "AppsDynamiteSharedSpaceInfo": { - "description": "Defines the representation of a single matching space.", - "id": "AppsDynamiteSharedSpaceInfo", - "properties": { - "avatarInfo": { - "$ref": "AppsDynamiteSharedAvatarInfo" - }, - "avatarUrl": { - "type": "string" - }, - "description": { - "type": "string" - }, - "groupId": { - "$ref": "GroupId" - }, - "inviterEmail": { - "description": "The email address of the user that invited the calling user to the room, if available. This field will only be populated for direct invites, it will be empty if the user was indirectly invited to the group.", - "type": "string" - }, - "isExternal": { - "description": "Whether this is a space that enables guest access", - "type": "boolean" - }, - "name": { - "type": "string" - }, - "numMembers": { - "format": "int32", - "type": "integer" - }, - "userMembershipState": { - "description": "searching user's membership state in this space", - "enum": [ - "MEMBER_UNKNOWN", - "MEMBER_INVITED", - "MEMBER_JOINED", - "MEMBER_NOT_A_MEMBER", - "MEMBER_FAILED" - ], - "enumDescriptions": [ - "Default state, do not use", - "An invitation to the space has been sent", - "User has joined the space", - "User is not a member", - "This state should never be stored in Spanner. It is a state for responses to the clients to indicate that membership mutations have failed and the member is in its previous state." - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedTasksAnnotationData": { - "description": "This is the internal version of the API proto at google3/google/chat/v1/gsuite_message_integration.proto", - "id": "AppsDynamiteSharedTasksAnnotationData", - "properties": { - "assigneeChange": { - "$ref": "AppsDynamiteSharedTasksAnnotationDataAssigneeChange" - }, - "completionChange": { - "$ref": "AppsDynamiteSharedTasksAnnotationDataCompletionChange" - }, - "creation": { - "$ref": "AppsDynamiteSharedTasksAnnotationDataCreation" - }, - "deletionChange": { - "$ref": "AppsDynamiteSharedTasksAnnotationDataDeletionChange" - }, - "taskId": { - "description": "ID of task. Will be used to create deep links to Tasks.", - "type": "string" - }, - "taskProperties": { - "$ref": "AppsDynamiteSharedTasksAnnotationDataTaskProperties", - "description": "Task properties after the update has been applied." - }, - "userDefinedMessage": { - "$ref": "AppsDynamiteSharedTasksAnnotationDataUserDefinedMessage" - } - }, - "type": "object" - }, - "AppsDynamiteSharedTasksAnnotationDataAssigneeChange": { - "id": "AppsDynamiteSharedTasksAnnotationDataAssigneeChange", - "properties": { - "oldAssignee": { - "$ref": "UserId", - "description": "Obfuscated user ID of previous assignee. Not set if the task was originally not assigned." - } - }, - "type": "object" - }, - "AppsDynamiteSharedTasksAnnotationDataCompletionChange": { - "id": "AppsDynamiteSharedTasksAnnotationDataCompletionChange", - "properties": {}, - "type": "object" - }, - "AppsDynamiteSharedTasksAnnotationDataCreation": { - "id": "AppsDynamiteSharedTasksAnnotationDataCreation", - "properties": {}, - "type": "object" - }, - "AppsDynamiteSharedTasksAnnotationDataDeletionChange": { - "id": "AppsDynamiteSharedTasksAnnotationDataDeletionChange", - "properties": {}, - "type": "object" - }, - "AppsDynamiteSharedTasksAnnotationDataTaskProperties": { - "description": "All relevant task properties for a Chat message.", - "id": "AppsDynamiteSharedTasksAnnotationDataTaskProperties", - "properties": { - "assignee": { - "$ref": "UserId", - "description": "Obfuscated user ID of new assignee. Not set if the task doesn't have an assignee." - }, - "completed": { - "description": "Whether the task is marked as completed.", - "type": "boolean" - }, - "deleted": { - "description": "Whether the task is marked as deleted.", - "type": "boolean" - }, - "description": { - "description": "The description of the task. If Task original description's length is greater than 1024, then Task BE sends the truncated description to Dynamite Integration Server.", - "type": "string" - }, - "startDate": { - "$ref": "Date", - "description": "Set if the task has a date but no time. Source of truth in Tasks BE: http://shortn/_wyT7eB4Ixv" - }, - "startTime": { - "description": "Set if the task has both a date and a time. Source of truth in Tasks BE: http://shortn/_u6cr0F5ttE", - "format": "google-datetime", - "type": "string" - }, - "title": { - "description": "The title of the task.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteSharedTasksAnnotationDataUserDefinedMessage": { - "description": "Used for task card attachments on custom user messages that should be kept as is without generating an i18n event message, e.g. the user starts a conversation from an existing task. IMPORTANT: please don't populate this field yet as it could break existing flows until it's implemented. See code at http://shortn/_CM74CdENMx used by http://shortn/_5o85POJY8Q.", - "id": "AppsDynamiteSharedTasksAnnotationDataUserDefinedMessage", - "properties": {}, - "type": "object" - }, - "AppsDynamiteSharedTasksMessageIntegrationPayload": { - "description": "A payload containing Tasks metadata for rendering a live card. Currently not used by the Tasks integration.", - "id": "AppsDynamiteSharedTasksMessageIntegrationPayload", - "properties": {}, - "type": "object" - }, - "AppsDynamiteSharedUserBlockRelationship": { - "description": "User-block relationship", - "id": "AppsDynamiteSharedUserBlockRelationship", - "properties": { - "hasBlockedRequester": { - "type": "boolean" - }, - "isBlockedByRequester": { - "type": "boolean" - } - }, - "type": "object" - }, - "AppsDynamiteSharedVideoReference": { - "description": "Reference to a transcoded video attachment.", - "id": "AppsDynamiteSharedVideoReference", - "properties": { - "format": { - "description": "Available transcode format. Value is defined in video/storage/proto/content_header.proto", - "items": { - "format": "int32", - "type": "integer" - }, - "type": "array" - }, - "status": { - "description": "Transcode status", - "enum": [ - "UNKNOWN_STATUS", - "SUCCESS", - "ERROR", - "NOT_APPLICABLE", - "THUMBNAIL_SUCCESS", - "GO_LIVE_SUCCESS" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageAction": { - "description": "An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form.", - "id": "AppsDynamiteStorageAction", - "properties": { - "function": { - "description": "Apps Script function to invoke when the containing element is clicked/activated.", - "type": "string" - }, - "interaction": { - "enum": [ - "INTERACTION_UNSPECIFIED", - "OPEN_DIALOG" - ], - "enumDescriptions": [ - "Default value if interaction is not specified.", - "A dialog opens by clicking the button." - ], - "type": "string" - }, - "loadIndicator": { - "enum": [ - "SPINNER", - "NONE" - ], - "enumDescriptions": [ - "Displays a spinner to indicate that content is loading.", - "Nothing is displayed." - ], - "type": "string" - }, - "parameters": { - "description": "List of action parameters.", - "items": { - "$ref": "AppsDynamiteStorageActionActionParameter" - }, - "type": "array" - } - }, - "type": "object" - }, - "AppsDynamiteStorageActionActionParameter": { - "description": "List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.", - "id": "AppsDynamiteStorageActionActionParameter", - "properties": { - "key": { - "description": "The name of the parameter for the action script.", - "type": "string" - }, - "value": { - "description": "The value of the parameter.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageBorderStyle": { - "description": "Represents the complete border style applied to widgets.", - "id": "AppsDynamiteStorageBorderStyle", - "properties": { - "cornerRadius": { - "description": "The corner radius for the border.", - "format": "int32", - "type": "integer" - }, - "strokeColor": { - "$ref": "Color", - "description": "The colors to use when the type is `BORDER_TYPE_STROKE`." - }, - "type": { - "description": "The border type.", - "enum": [ - "BORDER_TYPE_UNSPECIFIED", - "NO_BORDER", - "STROKE" - ], - "enumDescriptions": [ - "No value specified.", - "No border.", - "Outline." - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageButton": { - "description": "A button. Can be a text button or an image button.", - "id": "AppsDynamiteStorageButton", - "properties": { - "altText": { - "description": "The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead.", - "type": "string" - }, - "color": { - "$ref": "Color", - "description": "If set, the button is filled with a solid background." - }, - "disabled": { - "description": "If true, the button is displayed in a disabled state and doesn't respond to user actions.", - "type": "boolean" - }, - "icon": { - "$ref": "AppsDynamiteStorageIcon", - "description": "The icon image." - }, - "onClick": { - "$ref": "AppsDynamiteStorageOnClick", - "description": "The action to perform when the button is clicked." - }, - "text": { - "description": "The text of the button.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageButtonList": { - "description": "A list of buttons layed out horizontally.", - "id": "AppsDynamiteStorageButtonList", - "properties": { - "buttons": { - "items": { - "$ref": "AppsDynamiteStorageButton" - }, - "type": "array" - } - }, - "type": "object" - }, - "AppsDynamiteStorageCard": { - "description": "A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { \"header\": { \"title\": \"Heba Salam\", \"subtitle\": \"Software Engineer\", \"imageStyle\": \"ImageStyle.AVATAR\", \"imageUrl\": \"https://example.com/heba_salam.png\", \"imageAltText\": \"Avatar for Heba Salam\" }, \"sections\" : [ { \"header\": \"Contact Info\", \"widgets\": [ { \"decorated_text\": { \"icon\": { \"knownIcon\": \"EMAIL\" }, \"content\": \"heba.salam@example.com\" } }, { \"decoratedText\": { \"icon\": { \"knownIcon\": \"PERSON\" }, \"content\": \"Online\" } }, { \"decoratedText\": { \"icon\": { \"knownIcon\": \"PHONE\" }, \"content\": \"+1 (555) 555-1234\" } }, { \"buttons\": [ { \"textButton\": { \"text\": \"Share\", }, \"onClick\": { \"openLink\": { \"url\": \"https://example.com/share\" } } }, { \"textButton\": { \"text\": \"Edit\", }, \"onClick\": { \"action\": { \"function\": \"goToView\", \"parameters\": [ { \"key\": \"viewType\", \"value\": \"EDIT\" } ], \"loadIndicator\": \"LoadIndicator.SPINNER\" } } } ] } ], \"collapsible\": true, \"uncollapsibleWidgetsCount\": 3 } ], \"cardActions\": [ { \"actionLabel\": \"Send Feedback\", \"onClick\": { \"openLink\": { \"url\": \"https://example.com/feedback\" } } } ], \"name\": \"contact-card-K3wB6arF2H9L\" } ```", - "id": "AppsDynamiteStorageCard", - "properties": { - "cardActions": { - "description": "The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` \"card_actions\": [ { \"actionLabel\": \"Setting\", \"onClick\": { \"action\": { \"functionName\": \"goToView\", \"parameters\": [ { \"key\": \"viewType\", \"value\": \"SETTING\" } ], \"loadIndicator\": \"LoadIndicator.SPINNER\" } } }, { \"actionLabel\": \"Send Feedback\", \"onClick\": { \"openLink\": { \"url\": \"https://example.com/feedback\" } } } ] ```", - "items": { - "$ref": "AppsDynamiteStorageCardCardAction" - }, - "type": "array" - }, - "header": { - "$ref": "AppsDynamiteStorageCardCardHeader", - "description": "The header of the card. A header usually contains a title and an image." - }, - "name": { - "description": "Name of the card, which is used as a identifier for the card in card navigation.", - "type": "string" - }, - "sections": { - "description": "Sections are separated by a line divider.", - "items": { - "$ref": "AppsDynamiteStorageCardSection" - }, - "type": "array" - } - }, - "type": "object" - }, - "AppsDynamiteStorageCardCardAction": { - "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.", - "id": "AppsDynamiteStorageCardCardAction", - "properties": { - "actionLabel": { - "description": "The label that displays as the action menu item.", - "type": "string" - }, - "onClick": { - "$ref": "AppsDynamiteStorageOnClick", - "description": "The onclick action for this action item." - } - }, - "type": "object" - }, - "AppsDynamiteStorageCardCardHeader": { - "id": "AppsDynamiteStorageCardCardHeader", - "properties": { - "imageAltText": { - "description": "The alternative text of this image which is used for accessibility.", - "type": "string" - }, - "imageType": { - "description": "The image's type.", - "enum": [ - "SQUARE", - "CIRCLE" - ], - "enumDescriptions": [ - "Applies no cropping to the image.", - "Applies a circular mask to the image." - ], - "type": "string" - }, - "imageUrl": { - "description": "The URL of the image in the card header.", - "type": "string" - }, - "subtitle": { - "description": "The subtitle of the card header.", - "type": "string" - }, - "title": { - "description": "The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageCardSection": { - "description": "A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float.", - "id": "AppsDynamiteStorageCardSection", - "properties": { - "collapsible": { - "description": "Indicates whether this section is collapsible. If a section is collapsible, the description must be given.", - "type": "boolean" - }, - "header": { - "description": "The header of the section. Formatted text is supported.", - "type": "string" - }, - "uncollapsibleWidgetsCount": { - "description": "The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`.", - "format": "int32", - "type": "integer" - }, - "widgets": { - "description": "A section must contain at least 1 widget.", - "items": { - "$ref": "AppsDynamiteStorageWidget" - }, - "type": "array" - } - }, - "type": "object" - }, - "AppsDynamiteStorageColumns": { - "description": "Represents a Columns widget that displays a single row of columns.", - "id": "AppsDynamiteStorageColumns", - "properties": { - "columnItems": { - "description": "Each card supports up to 2 columns.", - "items": { - "$ref": "AppsDynamiteStorageColumnsColumn" - }, - "type": "array" - }, - "wrapStyle": { - "description": "Controls how the column resizes based on screen width.", - "enum": [ - "WRAP_STYLE_UNSPECIFIED", - "NOWRAP", - "WRAP" - ], - "enumDescriptions": [ - "Unspecified.", - "Column widgets don't wrap.", - "Column Widgets wrap." - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageColumnsColumn": { - "description": "Represents a Column that consists of widgets stacked vertically.", - "id": "AppsDynamiteStorageColumnsColumn", - "properties": { - "horizontalAlignment": { - "description": "The horizontal alignment of the column.", - "enum": [ - "HORIZONTAL_ALIGNMENT_UNSPECIFIED", - "START", - "CENTER", - "END" - ], - "enumDescriptions": [ - "Unspecified alignment.", - "Alignment to the start position.", - "Alignment to the center position.", - "Alignment to the end position." - ], - "type": "string" - }, - "horizontalSizeStyle": { - "description": "Specifies how the column content is sized horizontally.", - "enum": [ - "HORIZONTAL_SIZE_STYLE_UNSPECIFIED", - "FILL_AVAILABLE_SPACE", - "FILL_MINIMUM_SPACE" - ], - "enumDescriptions": [ - "Unspecified.", - "Fills up the available horizontal width. Default value if unspecified.", - "Fills up the minimum horizontal width." - ], - "type": "string" - }, - "verticalAlignment": { - "description": "The vertical alignment of the column.", - "enum": [ - "VERTICAL_ALIGNMENT_UNSPECIFIED", - "CENTER", - "TOP", - "BOTTOM" - ], - "enumDescriptions": [ - "Unspecified.", - "Aligns the widget in the center of the column. Default value if unspecified.", - "Aligns the widget at the top of the column.", - "Aligns the widget at the bottom of the column." - ], - "type": "string" - }, - "widgets": { - "description": "LINT.ThenChange(//depot/google3/google/apps/card/v1/card.proto) Array of widgets included in the column.", - "items": { - "$ref": "AppsDynamiteStorageColumnsColumnWidgets" - }, - "type": "array" - } - }, - "type": "object" - }, - "AppsDynamiteStorageColumnsColumnWidgets": { - "description": "LINT.IfChange The `column` widget can contain these widgets.", - "id": "AppsDynamiteStorageColumnsColumnWidgets", - "properties": { - "buttonList": { - "$ref": "AppsDynamiteStorageButtonList", - "description": "ButtonList widget." - }, - "dateTimePicker": { - "$ref": "AppsDynamiteStorageDateTimePicker", - "description": "DateTimePicker widget." - }, - "decoratedText": { - "$ref": "AppsDynamiteStorageDecoratedText", - "description": "DecoratedText widget." - }, - "image": { - "$ref": "AppsDynamiteStorageImage", - "description": "Image widget." - }, - "selectionInput": { - "$ref": "AppsDynamiteStorageSelectionInput", - "description": "SelectionInput widget." - }, - "textInput": { - "$ref": "AppsDynamiteStorageTextInput", - "description": "TextInput widget." - }, - "textParagraph": { - "$ref": "AppsDynamiteStorageTextParagraph", - "description": "Text paragraph widget." - } - }, - "type": "object" - }, - "AppsDynamiteStorageDateTimePicker": { - "description": "The widget that lets users to specify a date and time.", - "id": "AppsDynamiteStorageDateTimePicker", - "properties": { - "label": { - "description": "The label for the field that displays to the user.", - "type": "string" - }, - "name": { - "description": "The name of the text input that's used in formInput, and uniquely identifies this input.", - "type": "string" - }, - "onChangeAction": { - "$ref": "AppsDynamiteStorageAction", - "description": "Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation." - }, - "timezoneOffsetDate": { - "description": "The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side.", - "format": "int32", - "type": "integer" - }, - "type": { - "description": "The type of the date/time picker.", - "enum": [ - "DATE_AND_TIME", - "DATE_ONLY", - "TIME_ONLY" - ], - "enumDescriptions": [ - "The user can select a date and time.", - "The user can only select a date.", - "The user can only select a time." - ], - "type": "string" - }, - "valueMsEpoch": { - "description": "The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageDecoratedText": { - "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.", - "id": "AppsDynamiteStorageDecoratedText", - "properties": { - "bottomLabel": { - "description": "The formatted text label that shows below the main text.", - "type": "string" - }, - "button": { - "$ref": "AppsDynamiteStorageButton", - "description": "A button that can be clicked to trigger an action." - }, - "endIcon": { - "$ref": "AppsDynamiteStorageIcon", - "description": "An icon displayed after the text." - }, - "icon": { - "$ref": "AppsDynamiteStorageIcon", - "description": "Deprecated in favor of start_icon." - }, - "onClick": { - "$ref": "AppsDynamiteStorageOnClick", - "description": "Only the top and bottom label and content region are clickable." - }, - "startIcon": { - "$ref": "AppsDynamiteStorageIcon", - "description": "The icon displayed in front of the text." - }, - "switchControl": { - "$ref": "AppsDynamiteStorageDecoratedTextSwitchControl", - "description": "A switch widget can be clicked to change its state or trigger an action." - }, - "text": { - "description": "Required. The main widget formatted text. See Text formatting for details.", - "type": "string" - }, - "topLabel": { - "description": "The formatted text label that shows above the main text.", - "type": "string" - }, - "wrapText": { - "description": "The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated.", - "type": "boolean" - } - }, - "type": "object" - }, - "AppsDynamiteStorageDecoratedTextSwitchControl": { - "id": "AppsDynamiteStorageDecoratedTextSwitchControl", - "properties": { - "controlType": { - "description": "The control type, either switch or checkbox.", - "enum": [ - "SWITCH", - "CHECKBOX", - "CHECK_BOX" - ], - "enumDescriptions": [ - "", - "Deprecated in favor of `CHECK_BOX`.", - "" - ], - "type": "string" - }, - "name": { - "description": "The name of the switch widget that's used in formInput.", - "type": "string" - }, - "onChangeAction": { - "$ref": "AppsDynamiteStorageAction", - "description": "The action when the switch state is changed." - }, - "selected": { - "description": "If the switch is selected.", - "type": "boolean" - }, - "value": { - "description": "The value is what is passed back in the callback.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageDivider": { - "description": "A divider that appears in between widgets.", - "id": "AppsDynamiteStorageDivider", - "properties": {}, - "type": "object" - }, - "AppsDynamiteStorageGrid": { - "description": "Represents a Grid widget that displays items in a configurable grid layout.", - "id": "AppsDynamiteStorageGrid", - "properties": { - "borderStyle": { - "$ref": "AppsDynamiteStorageBorderStyle", - "description": "The border style to apply to each grid item." - }, - "columnCount": { - "description": "The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion).", - "format": "int32", - "type": "integer" - }, - "items": { - "description": "The items to display in the grid.", - "items": { - "$ref": "AppsDynamiteStorageGridGridItem" - }, - "type": "array" - }, - "onClick": { - "$ref": "AppsDynamiteStorageOnClick", - "description": "This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters." - }, - "title": { - "description": "The text that displays in the grid header.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageGridGridItem": { - "description": "Represents a single item in the grid layout.", - "id": "AppsDynamiteStorageGridGridItem", - "properties": { - "id": { - "description": "A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters.", - "type": "string" - }, - "image": { - "$ref": "AppsDynamiteStorageImageComponent", - "description": "The image that displays in the grid item." - }, - "layout": { - "description": "The layout to use for the grid item.", - "enum": [ - "GRID_ITEM_LAYOUT_UNSPECIFIED", - "TEXT_BELOW", - "TEXT_ABOVE" - ], - "enumDescriptions": [ - "No layout specified.", - "The title and subtitle are shown below the grid item's image.", - "The title and subtitle are shown above the grid item's image." - ], - "type": "string" - }, - "subtitle": { - "description": "The grid item's subtitle.", - "type": "string" - }, - "textAlignment": { - "description": "The horizontal alignment of the grid item's text.", - "enum": [ - "HORIZONTAL_ALIGNMENT_UNSPECIFIED", - "START", - "CENTER", - "END" - ], - "enumDescriptions": [ - "Unspecified alignment.", - "Alignment to the start position.", - "Alignment to the center position.", - "Alignment to the end position." - ], - "type": "string" - }, - "title": { - "description": "The grid item's title.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageIcon": { - "id": "AppsDynamiteStorageIcon", - "properties": { - "altText": { - "description": "The description of the icon, used for accessibility. The default value is provided if you don't specify one.", - "type": "string" - }, - "iconUrl": { - "description": "The icon specified by a URL.", - "type": "string" - }, - "imageType": { - "description": "The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.", - "enum": [ - "SQUARE", - "CIRCLE" - ], - "enumDescriptions": [ - "Applies no cropping to the image.", - "Applies a circular mask to the image." - ], - "type": "string" - }, - "knownIcon": { - "description": "The icon specified by the string name of a list of known icons", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageImage": { - "description": "An image that is specified by a URL and can have an onClick action.", - "id": "AppsDynamiteStorageImage", - "properties": { - "altText": { - "description": "The alternative text of this image, used for accessibility.", - "type": "string" - }, - "imageUrl": { - "description": "An image URL.", - "type": "string" - }, - "onClick": { - "$ref": "AppsDynamiteStorageOnClick" - } - }, - "type": "object" - }, - "AppsDynamiteStorageImageComponent": { - "id": "AppsDynamiteStorageImageComponent", - "properties": { - "altText": { - "description": "The accessibility label for the image.", - "type": "string" - }, - "borderStyle": { - "$ref": "AppsDynamiteStorageBorderStyle", - "description": "The border style to apply to the image." - }, - "cropStyle": { - "$ref": "AppsDynamiteStorageImageCropStyle", - "description": "The crop style to apply to the image." - }, - "imageUri": { - "description": "The image URL.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageImageCropStyle": { - "description": "Represents the crop style applied to an image.", - "id": "AppsDynamiteStorageImageCropStyle", - "properties": { - "aspectRatio": { - "description": "The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`.", - "format": "double", - "type": "number" - }, - "type": { - "description": "The crop type.", - "enum": [ - "IMAGE_CROP_TYPE_UNSPECIFIED", - "SQUARE", - "CIRCLE", - "RECTANGLE_CUSTOM", - "RECTANGLE_4_3" - ], - "enumDescriptions": [ - "No value specified.", - "Applies a square crop.", - "Applies a circular crop.", - "Applies a rectangular crop with a custom aspect ratio.", - "Applies a rectangular crop with a 4:3 aspect ratio." - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageOnClick": { - "id": "AppsDynamiteStorageOnClick", - "properties": { - "action": { - "$ref": "AppsDynamiteStorageAction", - "description": "If specified, an action is triggered by this onClick." - }, - "hostAppAction": { - "$ref": "HostAppActionMarkup", - "description": "Triggers host app action on click directly without invoking form actions. This is currently not available to end-users and is used internal only." - }, - "openDynamicLinkAction": { - "$ref": "AppsDynamiteStorageAction", - "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." - }, - "openLink": { - "$ref": "AppsDynamiteStorageOpenLink", - "description": "If specified, this onClick triggers an open link action." - } - }, - "type": "object" - }, - "AppsDynamiteStorageOpenLink": { - "id": "AppsDynamiteStorageOpenLink", - "properties": { - "appUri": { - "$ref": "AppsDynamiteStorageOpenLinkAppUri", - "description": "Represents the platform specific uri/intent to open on each client. For example: A companion_url will open in a companion window on the web. An iOS URL and android intent will open in the corresponding hosting apps. If these platform specific URLs can't be handled correctly, i.e. if the companion isn't supported on web and the hosting apps aren't available on the mobile platforms then the `uri` will open in a new browser window on all the platforms." - }, - "onClose": { - "enum": [ - "NOTHING", - "RELOAD" - ], - "enumDescriptions": [ - "Doesn\u2019t reload the card after the child window closes. Reloads the card after the child window closes. If used in conjunction with [OpenAs.OVERLAY](/workspace/add-ons/reference/rpc/google.apps.card.v1#openas), the child window acts as a modal dialog and the main card is blocked until the child window closes.", - "" - ], - "type": "string" - }, - "openAs": { - "enum": [ - "FULL_SIZE", - "OVERLAY" - ], - "enumDescriptions": [ - "The link opens as a full size window (if that's the frame used by the client.", - "The link opens as an overlay, such as a pop-up." - ], - "type": "string" - }, - "url": { - "description": "The URL to open.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageOpenLinkAppUri": { - "description": "Represents the platform specific uri/intent to open for each client.", - "id": "AppsDynamiteStorageOpenLinkAppUri", - "properties": { - "androidIntent": { - "$ref": "AppsDynamiteStorageOpenLinkAppUriIntent", - "description": "An intent object to be opened in the corresponding android hosting app." - }, - "companionUri": { - "description": "A companion uri string to be opened in the chat companion window. on the web.", - "type": "string" - }, - "iosUri": { - "description": "A uri string to be opened in the corresponding iOS hosting app.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageOpenLinkAppUriIntent": { - "description": "Android intent.", - "id": "AppsDynamiteStorageOpenLinkAppUriIntent", - "properties": { - "extraData": { - "description": "A list of extra data for the android intent. For example, for a calendar event edit intent, the event title information can be passed as extra data.", - "items": { - "$ref": "AppsDynamiteStorageOpenLinkAppUriIntentExtraData" - }, - "type": "array" - }, - "intentAction": { - "description": "An android intent action string for the {@link android.content.Intent} object. For example: for the view intent action type, a valid value will be android.content.Intent.ACTION_VIEW.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageOpenLinkAppUriIntentExtraData": { - "description": "Extra data for an android intent. Valid keys are defined in the hosting app contract.", - "id": "AppsDynamiteStorageOpenLinkAppUriIntentExtraData", - "properties": { - "key": { - "description": "A key for the intent extra data.", - "type": "string" - }, - "value": { - "description": "Value for the given extra data key.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageSelectionInput": { - "description": "A widget that creates a UI item (for example, a drop-down list) with options for users to select.", - "id": "AppsDynamiteStorageSelectionInput", - "properties": { - "items": { - "items": { - "$ref": "AppsDynamiteStorageSelectionInputSelectionItem" - }, - "type": "array" - }, - "label": { - "description": "The label displayed ahead of the switch control.", - "type": "string" - }, - "name": { - "description": "The name of the text input which is used in formInput.", - "type": "string" - }, - "onChangeAction": { - "$ref": "AppsDynamiteStorageAction", - "description": "If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button." - }, - "type": { - "enum": [ - "CHECK_BOX", - "RADIO_BUTTON", - "SWITCH", - "DROPDOWN" - ], - "enumDescriptions": [ - "The selection type is a checkbox.", - "The selection type is a radio button.", - "The selection type is a switch.", - "The selection type is a dropdown." - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageSelectionInputSelectionItem": { - "description": "The item in the switch control. A radio button, at most one of the items is selected.", - "id": "AppsDynamiteStorageSelectionInputSelectionItem", - "properties": { - "selected": { - "description": "If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored.", - "type": "boolean" - }, - "text": { - "description": "The text to be displayed.", - "type": "string" - }, - "value": { - "description": "The value associated with this item. The client should use this as a form input value.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageSuggestions": { - "description": "A container wrapping elements necessary for showing suggestion items used in text input autocomplete.", - "id": "AppsDynamiteStorageSuggestions", - "properties": { - "items": { - "description": "A list of suggestions items which will be used in are used in autocomplete.", - "items": { - "$ref": "AppsDynamiteStorageSuggestionsSuggestionItem" - }, - "type": "array" - } - }, - "type": "object" - }, - "AppsDynamiteStorageSuggestionsSuggestionItem": { - "description": "A suggestion item. Only supports text for now.", - "id": "AppsDynamiteStorageSuggestionsSuggestionItem", - "properties": { - "text": { - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageTextInput": { - "description": "A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions.", - "id": "AppsDynamiteStorageTextInput", - "properties": { - "autoCompleteAction": { - "$ref": "AppsDynamiteStorageAction", - "description": "The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items." - }, - "hintText": { - "description": "The hint text.", - "type": "string" - }, - "initialSuggestions": { - "$ref": "AppsDynamiteStorageSuggestions", - "description": "The initial suggestions made before any user input." - }, - "label": { - "description": "At least one of label and hintText must be specified.", - "type": "string" - }, - "name": { - "description": "The name of the text input which is used in formInput.", - "type": "string" - }, - "onChangeAction": { - "$ref": "AppsDynamiteStorageAction", - "description": "The onChange action, for example, invoke a function." - }, - "type": { - "description": "The style of the text, for example, a single line or multiple lines.", - "enum": [ - "SINGLE_LINE", - "MULTIPLE_LINE" - ], - "enumDescriptions": [ - "The text is put into a single line.", - "The text is put into multiple lines." - ], - "type": "string" - }, - "value": { - "description": "The default value when there is no input from the user.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageTextParagraph": { - "description": "A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting\") for details.", - "id": "AppsDynamiteStorageTextParagraph", - "properties": { - "text": { - "description": "The text that's shown in the widget.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteStorageWidget": { - "description": "A widget is a UI element that presents texts, images, etc.", - "id": "AppsDynamiteStorageWidget", - "properties": { - "buttonList": { - "$ref": "AppsDynamiteStorageButtonList", - "description": "A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` \"buttonList\": { \"buttons\": [ \"button\": { \"text\": \"Edit\", \"Color\": { \"Red\": 255 \"Green\": 255 \"Blue\": 255 } \"disabled\": true }, \"button\": { \"icon\": { \"knownIcon\": \"INVITE\" \"altText\": \"check calendar\" }, \"onClick\": { \"openLink\": { \"url\": \"https://example.com/calendar\" } } }, ] } ```" - }, - "columns": { - "$ref": "AppsDynamiteStorageColumns", - "description": "Displays a single row of columns with widgets stacked vertically in each column. For example, the following JSON creates a 2 column widget each containing a single item. ``` \"columns\": { \"wrapStyle\": \"WRAP\", \"columnItems\": [ { \"horizontalSizeStyle\": \"FILL_AVAILABLE_SPACE\", \"horizontalAlignment\": \"CENTER\", \"verticalAlignment\" : \"CENTER\", \"widgets\": [ { \"textParagraph\": { \"text\": \"First column text paragraph\", } } ] }, { \"horizontalSizeStyle\": \"FILL_AVAILABLE_SPACE\", \"horizontalAlignment\": \"CENTER\", \"verticalAlignment\" : \"CENTER\", \"widgets\": [ { \"textParagraph\": { \"text\": \"Second column text paragraph\", } } ] }, ] } } ```" - }, - "dateTimePicker": { - "$ref": "AppsDynamiteStorageDateTimePicker", - "description": "Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` \"date_time_picker\": { \"name\": \"appointment_time\", \"label\": \"Book your appointment at:\", \"type\": \"DateTimePickerType.DATE_AND_TIME\", \"valueMsEpoch\": \"796435200000\" } ```" - }, - "decoratedText": { - "$ref": "AppsDynamiteStorageDecoratedText", - "description": "Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` \"decoratedText\": { \"icon\": { \"knownIcon\": \"EMAIL\" }, \"topLabel\": \"Email Address\", \"content\": \"heba.salam@example.com\", \"bottomLabel\": \"This is a new Email address!\", \"switchWidget\": { \"name\": \"has_send_welcome_email_to_heba_salam\", \"selected\": false, \"controlType\": \"ControlType.CHECKBOX\" } } ```" - }, - "divider": { - "$ref": "AppsDynamiteStorageDivider", - "description": "Displays a divider. For example, the following JSON creates a divider: ``` \"divider\": { } ```" - }, - "grid": { - "$ref": "AppsDynamiteStorageGrid", - "description": "Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` \"grid\": { \"title\": \"A fine collection of items\", \"numColumns\": 2, \"borderStyle\": { \"type\": \"STROKE\", \"cornerRadius\": 4.0 }, \"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": "The horizontal alignment of this widget.", - "enum": [ - "HORIZONTAL_ALIGNMENT_UNSPECIFIED", - "START", - "CENTER", - "END" - ], - "enumDescriptions": [ - "Unspecified alignment.", - "Alignment to the start position.", - "Alignment to the center position.", - "Alignment to the end position." - ], - "type": "string" - }, - "image": { - "$ref": "AppsDynamiteStorageImage", - "description": "Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` \"image\": { \"imageUrl\": \"https://example.com/heba_salam.png\" \"altText\": \"Avatar for Heba Salam\" } ```" - }, - "selectionInput": { - "$ref": "AppsDynamiteStorageSelectionInput", - "description": "Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` \"switchControl\": { \"name\": \"size\", \"label\": \"Size\" \"type\": \"SelectionType.DROPDOWN\", \"items\": [ { \"text\": \"S\", \"value\": \"small\", \"selected\": false }, { \"text\": \"M\", \"value\": \"medium\", \"selected\": true }, { \"text\": \"L\", \"value\": \"large\", \"selected\": false }, { \"text\": \"XL\", \"value\": \"extra_large\", \"selected\": false } ] } ```" - }, - "textInput": { - "$ref": "AppsDynamiteStorageTextInput", - "description": "Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` \"textInput\": { \"name\": \"mailing_address\", \"label\": \"Mailing Address\" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` \"textInput\": { \"name\": \"preferred_programing_language\", \"label\": \"Preferred Language\", \"initialSuggestions\": { \"items\": [ { \"text\": \"C++\" }, { \"text\": \"Java\" }, { \"text\": \"JavaScript\" }, { \"text\": \"Python\" } ] } } ```" - }, - "textParagraph": { - "$ref": "AppsDynamiteStorageTextParagraph", - "description": "Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` \"textParagraph\": { \"text\": \" *bold text*\" } ```" - } - }, - "type": "object" - }, - "AppsDynamiteV1ApiCompatV1Action": { - "description": "Interactive objects inside a message. Documentation: - https://api.slack.com/docs/message-buttons", - "id": "AppsDynamiteV1ApiCompatV1Action", - "properties": { - "confirm": { - "$ref": "AppsDynamiteV1ApiCompatV1ActionConfirm", - "description": "Confirmation dialog config." - }, - "name": { - "description": "Unique identifier for this action.", - "type": "string" - }, - "style": { - "description": "Button style (\"default\", \"primary\", or \"danger\").", - "type": "string" - }, - "text": { - "description": "User-facing label for the action.", - "type": "string" - }, - "type": { - "description": "Action type - currently only \"button\".", - "type": "string" - }, - "value": { - "description": "Payload for this action. Will be sent to the action handler along with name.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteV1ApiCompatV1ActionConfirm": { - "description": "Confirmation dialog config.", - "id": "AppsDynamiteV1ApiCompatV1ActionConfirm", - "properties": { - "dismiss_text": { - "description": "\"Cancel\" button label.", - "type": "string" - }, - "ok_text": { - "description": "\"OK\" button label.", - "type": "string" - }, - "text": { - "description": "Confirmation dialog body text.", - "type": "string" - }, - "title": { - "description": "Confirmation dialog title.", - "type": "string" - } - }, - "type": "object" - }, - "AppsDynamiteV1ApiCompatV1Attachment": { - "description": "Richly formatted attachments. Documentation: - https://api.slack.com/docs/message-attachments", - "id": "AppsDynamiteV1ApiCompatV1Attachment", - "properties": { - "actions": { - "description": "Array of actions (currently only buttons).", - "items": { - "$ref": "AppsDynamiteV1ApiCompatV1Action" - }, - "type": "array" - }, - "attachment_type": { - "description": "Undocumented - used in interactive button examples. The only valid value appears to be \"default\".", - "type": "string" - }, - "author_icon": { - "description": "Avatar URL for the user.", - "type": "string" - }, - "author_link": { - "description": "URL that the user name should link to.", - "type": "string" - }, - "author_name": { - "description": "User name to display as the author of the message.", - "type": "string" - }, - "callback_id": { - "description": "Unique identifier for the collection of buttons within this attachment. Will be sent back to the action handler URL when a button is clicked.", - "type": "string" - }, - "color": { - "description": "A color \"bar\" to display to the left of the attachment.", - "type": "string" - }, - "fallback": { - "description": "Fallback plain-text string for clients that don't support attachments.", - "type": "string" - }, - "fields": { - "description": "Columns of text inside the attachment body.", - "items": { - "$ref": "AppsDynamiteV1ApiCompatV1Field" - }, - "type": "array" - }, - "footer": { - "description": "A string displayed at the bottom of the attachment.", - "type": "string" - }, - "footer_icon": { - "description": "Avatar URL displayed to the left of the footer.", - "type": "string" - }, - "image_url": { - "description": "URL of an image to display in an image chip.", - "type": "string" - }, - "mrkdwn_in": { - "description": "List of fields to apply formatting to.", - "items": { - "type": "string" - }, - "type": "array" - }, - "pretext": { - "description": "A string to show above the attachment.", - "type": "string" - }, - "text": { - "description": "Main text.", - "type": "string" - }, - "thumb_url": { - "description": "URL of a thumbnail image to display to the right of the attachment body.", - "type": "string" - }, - "title": { - "description": "Title string of this attachment.", - "type": "string" - }, - "title_link": { - "description": "URL that the title string should link to.", - "type": "string" - }, - "ts": { - "description": "UNIX timestamp of the attachment.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "AppsDynamiteV1ApiCompatV1Field": { - "description": "A column of text in an attachment. Documentation: - https://api.slack.com/docs/message-attachments", - "id": "AppsDynamiteV1ApiCompatV1Field", - "properties": { - "short": { - "description": "Whether the field can be shown side-by-side with another field.", - "type": "boolean" - }, - "title": { - "description": "The heading text, shown in bold.", - "type": "string" - }, - "value": { - "description": "The text value of the field.", - "type": "string" - } - }, - "type": "object" - }, - "AppsExtensionsMarkupCalendarClientActionMarkupAddAttachmentsActionMarkup": { - "id": "AppsExtensionsMarkupCalendarClientActionMarkupAddAttachmentsActionMarkup", - "properties": { - "addonAttachments": { - "items": { - "$ref": "AppsExtensionsMarkupCalendarClientActionMarkupAddAttachmentsActionMarkupAddonAttachment" - }, - "type": "array" - } - }, - "type": "object" - }, - "AppsExtensionsMarkupCalendarClientActionMarkupAddAttachmentsActionMarkupAddonAttachment": { - "id": "AppsExtensionsMarkupCalendarClientActionMarkupAddAttachmentsActionMarkupAddonAttachment", - "properties": { - "iconUrl": { - "description": "Link to the resource's icon.", - "type": "string" - }, - "mimeType": { - "description": "MIME type of the content in resource_url.", - "type": "string" - }, - "resourceUrl": { - "type": "string" - }, - "title": { - "description": "Title of the attachment.", - "type": "string" - } - }, - "type": "object" - }, - "AppsExtensionsMarkupCalendarClientActionMarkupConferenceDataMarkup": { - "description": "Markup that defines conference data associated to a Google Calendar event.", - "id": "AppsExtensionsMarkupCalendarClientActionMarkupConferenceDataMarkup", - "properties": { - "conferenceId": { - "description": "Unique identifier for this conference data. Maximum 512 characters long.", - "type": "string" - }, - "conferenceSolutionId": { - "description": "An identifier of the conferencing solution. Must match a value from the deployment's `calendar.conferenceSolution.id` field.", - "type": "string" - }, - "entryPoints": { - "description": "Entry points to the conference. Maximum 300 entry points are allowed.", - "items": { - "$ref": "AppsExtensionsMarkupCalendarClientActionMarkupConferenceDataMarkupEntryPointMarkup" - }, - "type": "array" - }, - "error": { - "$ref": "AppsExtensionsMarkupCalendarClientActionMarkupConferenceDataMarkupError", - "description": "If set, it means an error occurred during conference creation." - }, - "note": { - "description": "Additional notes (such as instructions from the administrator, legal notices) to display to the user. Can contain HTML. Max length 2048 characters.", - "type": "string" - }, - "parameters": { - "description": "Additional add-on parameters. Maximum 300 parameters are allowed.", - "items": { - "$ref": "AppsExtensionsMarkupCalendarClientActionMarkupConferenceDataMarkupParameter" - }, - "type": "array" - } - }, - "type": "object" - }, - "AppsExtensionsMarkupCalendarClientActionMarkupConferenceDataMarkupEntryPointMarkup": { - "description": "A way to join the conference.", - "id": "AppsExtensionsMarkupCalendarClientActionMarkupConferenceDataMarkupEntryPointMarkup", - "properties": { - "accessCode": { - "description": "An access code for accessing the conference. Maximum 128 characters long.", - "type": "string" - }, - "features": { - "description": "Features of the entry point, such as being toll or toll-free. One entry point can have multiple features.", - "items": { - "enum": [ - "UNKNOWN_FEATURE", - "TOLL", - "TOLL_FREE" - ], - "enumDescriptions": [ - "Unknown feature.", - "Applies to `PHONE` entry point. A call to a toll number is charged to the calling party. A number can't be toll and toll-free at the same time.", - "Applies to `PHONE` entry point. For the calling party, a call to a toll-free number is free of charge. A number can't be toll and toll-free at the same time." - ], - "type": "string" - }, - "type": "array" - }, - "label": { - "description": "The label of the entry point to display to the user. Maximum 512 characters long.", - "type": "string" - }, - "meetingCode": { - "description": "A meeting code for accessing the conference. Maximum 128 characters long.", - "type": "string" - }, - "passcode": { - "description": "A passcode for accessing the conference. Maximum 128 characters long.", - "type": "string" - }, - "password": { - "description": "A password for accessing the conference. Maximum 128 characters long.", - "type": "string" - }, - "pin": { - "description": "A PIN for accessing the conference. Maximum 128 characters long.", - "type": "string" - }, - "regionCode": { - "description": "The CLDR/ISO 3166 region code for the country associated with this entry point. Applicable only to `Type.PHONE`.", - "type": "string" - }, - "type": { - "description": "The type of the entry point. Required.", - "enum": [ - "UNKNOWN", - "VIDEO", - "PHONE", - "MORE", - "SIP" - ], - "enumDescriptions": [ - "Unknown conference type.", - "A video conference.", - "A phone conference.", - "Used to provide a link to further conference joining information.", - "A conference using [Session Initiation Protocol](https://en.wikipedia.org/wiki/Session_Initiation_Protocol)" - ], - "type": "string" - }, - "uri": { - "description": "A URI for joining the conference. Supports tel: and http(s): and should be at most 1300 characters long. Required.", - "type": "string" - } - }, - "type": "object" - }, - "AppsExtensionsMarkupCalendarClientActionMarkupConferenceDataMarkupError": { - "description": "Represents an error that occurred during conference creation.", - "id": "AppsExtensionsMarkupCalendarClientActionMarkupConferenceDataMarkupError", - "properties": { - "authenticationUrl": { - "description": "If the error type is `AUTHENTICATION`, the add-on can provide a URL allowing users to log in. Maximum 1300 characters long.", - "type": "string" - }, - "type": { - "description": "The type of error. Required.", - "enum": [ - "UNKNOWN", - "AUTHENTICATION", - "TEMPORARY", - "PERMANENT", - "PERMISSION_DENIED", - "CONFERENCE_SOLUTION_FORBIDDEN" - ], - "enumDescriptions": [ - "Unknown error.", - "An authentication error.", - "A temporary error.", - "A permanent error.", - "The user isn't allowed to perform some action in the third-party conferencing system.", - "The user isn't allowed to use the selected conference solution (but might be allowed to use other solutions offered by the add-on)." - ], - "type": "string" - } - }, - "type": "object" - }, - "AppsExtensionsMarkupCalendarClientActionMarkupConferenceDataMarkupParameter": { - "description": "Solution-specific parameters that are persisted with the event data and, if an update or delete is needed, are passed to the add-on. For example: `[{key: 'sessionKey', value: '123'}, {key: 'meetingId', value: '456'}]`", - "id": "AppsExtensionsMarkupCalendarClientActionMarkupConferenceDataMarkupParameter", - "properties": { - "key": { - "description": "The key of the parameter. Maximum 50 characters long. Required.", - "type": "string" - }, - "value": { - "description": "The value of the parameter. Maximum 1024 characters long. Required.", - "type": "string" - } - }, - "type": "object" - }, - "AppsExtensionsMarkupCalendarClientActionMarkupEditAttendeesActionMarkup": { - "id": "AppsExtensionsMarkupCalendarClientActionMarkupEditAttendeesActionMarkup", - "properties": { - "addAttendeeEmails": { - "description": "A list of attendees to add to the Google Calendar event.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AppsExtensionsMarkupCalendarClientActionMarkupEditConferenceDataActionMarkup": { - "id": "AppsExtensionsMarkupCalendarClientActionMarkupEditConferenceDataActionMarkup", - "properties": { - "conferenceData": { - "$ref": "AppsExtensionsMarkupCalendarClientActionMarkupConferenceDataMarkup", - "description": "The conference data to add to the Google Calendar event." - } - }, - "type": "object" - }, - "Attachment": { - "description": "Attachments that follow the message text.", - "id": "Attachment", - "properties": { - "addOnData": { - "$ref": "GoogleChatV1ContextualAddOnMarkup", - "description": "Revised version of Gmail AddOn attachment approved by API design review." - }, - "appId": { - "$ref": "UserId", - "description": "The userId for the bot/app that created this data, to be used for attribution of attachments when the attachment was not created by the message sender." - }, - "attachmentId": { - "description": "To identify an attachment within repeated in a message", - "type": "string" - }, - "cardAddOnData": { - "$ref": "AppsDynamiteStorageCard", - "description": "Card AddOn attachment with the possibility for specifying editable widgets." - }, - "deprecatedAddOnData": { - "$ref": "ContextualAddOnMarkup", - "description": "Deprecated version of Gmail AddOn attachment." - }, - "slackData": { - "$ref": "AppsDynamiteV1ApiCompatV1Attachment", - "description": "Slack attachment." - }, - "slackDataImageUrlHeight": { - "description": "The height of image url as fetched by fife. This field is asynchronously filled.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "Attribute": { - "description": "An Attribute is a piece of data attached an Item. Attributes are opaque to the Starbox and have no effect on, nor are they effected by, message storage, indexing, or search. ", - "id": "Attribute", - "properties": { - "name": { - "description": "The name of the attribute. Required - If a write is attempted with an empty string, the server will return an error.", - "type": "string" - }, - "value": { - "$ref": "CaribouAttributeValue" - } - }, - "type": "object" - }, - "AttributeRemoved": { - "description": "An attribute was deleted from some (subset of the) messages in this thread.", - "id": "AttributeRemoved", - "properties": { - "attributeId": { - "type": "string" - }, - "messageKeys": { - "items": { - "$ref": "MultiKey" - }, - "type": "array" - } - }, - "type": "object" - }, - "AttributeSet": { - "description": "An attribute was added to some (subset of the) messages in this thread.", - "id": "AttributeSet", - "properties": { - "attributeId": { - "type": "string" - }, - "attributeValue": { - "description": "The serialized attribute_value as persisted in the storage layer. The application is responsible for deserializing it to an Attribute.Value if appropriate.", - "format": "byte", - "type": "string" - }, - "messageKeys": { - "items": { - "$ref": "MultiKey" - }, - "type": "array" - } - }, - "type": "object" - }, - "Attributes": { - "id": "Attributes", - "properties": { - "attribute": { - "items": { - "$ref": "Attribute" - }, - "type": "array" - } - }, - "type": "object" - }, "AuditLoggingSettings": { "description": "Represents the settings for Cloud audit logging", "id": "AuditLoggingSettings", @@ -5438,90 +2136,38 @@ }, "type": "object" }, - "AuthorizedItemId": { - "description": "A combination of an identifier for a Drive resource (e.g. file, folder, or drive) and any secrets needed to access it. The secrets should never be logged, and this proto annotates those secret fields to ensure that they are not. Clients are encouraged to use this proto rather than defining their own, to ensure that secrets are correctly annotated.", - "id": "AuthorizedItemId", + "BackgroundColoredText": { + "id": "BackgroundColoredText", "properties": { - "id": { - "description": "Serialized ID of the Drive resource", + "backgroundColor": { + "description": "[Optional] Color of the background. The text color can change depending on the selected background color, and the client does not have control over this. If missing, the background will be WHITE.", + "enum": [ + "UNKNOWN_COLOR", + "WHITE", + "YELLOW", + "ORANGE", + "GREEN", + "BLUE", + "GREY" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" + ], "type": "string" }, - "resourceKey": { - "description": "Resource key of the Drive item. This field should be unset if, depending on the context, the item does not have a resource key, or if none was specified. This must never be logged.", - "type": "string" - } - }, - "type": "object" - }, - "AutoComplete": { - "id": "AutoComplete", - "properties": { - "items": { - "items": { - "$ref": "AutoCompleteItem" - }, - "type": "array" - } - }, - "type": "object" - }, - "AutoCompleteItem": { - "id": "AutoCompleteItem", - "properties": { "text": { + "description": "[Required] The text to display.", "type": "string" } }, "type": "object" }, - "BabelMessageProps": { - "description": "Container for Babel (Hangouts Classic) only message properties. The properties here will not be consumed by Dynamite clients. They are relevant only for Hangouts Classic.", - "id": "BabelMessageProps", - "properties": { - "clientGeneratedId": { - "description": "Babel clients locally generate this ID to dedupe against the async fanout.", - "format": "int64", - "type": "string" - }, - "contentExtension": { - "$ref": "ChatContentExtension", - "description": "Stores additional Babel-specific properties (such as event metadata)." - }, - "deliveryMedium": { - "$ref": "DeliveryMedium", - "description": "Stores the delivery source of messages (such as phone number for SMS)." - }, - "eventId": { - "description": "Primary identifier used by Hangouts Classic for its events (messages).", - "type": "string" - }, - "messageContent": { - "$ref": "ChatConserverMessageContent", - "description": "Stores message segments (text content) and attachments (media URLs)." - }, - "wasUpdatedByBackfill": { - "description": "Whether or not these message properties were backfilled by go/dinnertrain.", - "type": "boolean" - } - }, - "type": "object" - }, - "BabelPlaceholderMetadata": { - "description": "Annotation metadata for Babel-only items that signals which type of placeholder message should be displayed in Babel clients.", - "id": "BabelPlaceholderMetadata", - "properties": { - "deleteMetadata": { - "$ref": "DeleteMetadata" - }, - "editMetadata": { - "$ref": "EditMetadata" - }, - "hangoutVideoMetadata": { - "$ref": "HangoutVideoEventMetadata" - } - }, - "type": "object" - }, "BooleanOperatorOptions": { "description": "Used to provide a search operator for boolean properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.", "id": "BooleanOperatorOptions", @@ -5544,788 +2190,6 @@ }, "type": "object" }, - "BorderStyle": { - "description": "Represents a complete border style that can be applied to widgets.", - "id": "BorderStyle", - "properties": { - "cornerRadius": { - "description": "The corner radius for the border.", - "format": "int32", - "type": "integer" - }, - "strokeColor": { - "description": "The colors to use when the type is STROKE.", - "type": "string" - }, - "type": { - "description": "The border type.", - "enum": [ - "BORDER_TYPE_NOT_SET", - "NO_BORDER", - "STROKE" - ], - "enumDescriptions": [ - "No value specified.", - "No border.", - "Outline." - ], - "type": "string" - } - }, - "type": "object" - }, - "BotInfo": { - "description": "Bot-specific profile information.", - "id": "BotInfo", - "properties": { - "appAllowlistStatus": { - "enum": [ - "UNSPECIFIED_STATUS", - "ALLOWED", - "ALL_APPS_DISABLED_BY_ADMIN", - "APP_NOT_ALLOWLISTED_BY_ADMIN" - ], - "enumDescriptions": [ - "", - "", - "For both ALL_APPS_DISABLED_BY_ADMIN and APP_NOT_ALLOWLISTED_BY_ADMIN, the app should still be visible in the catalog, but usage of the app will be disabled. Indicates that all apps have been disabled by the dasher admin.", - "Indicates that the customer is using allowlisting, but that the bot is not allowlisted." - ], - "type": "string" - }, - "appId": { - "$ref": "AppId", - "description": "Identifier of the application associated with the bot." - }, - "botAvatarUrl": { - "description": "URL for the avatar picture of the User in dynamite. This field should be populated if the request is FetchBotCategories/ListBotCatalogEntries", - "type": "string" - }, - "botName": { - "description": "Non-unique, user-defined display name of the Bot. This field should be populated if the request is FetchBotCategories/ListBotCatalogEntries.", - "type": "string" - }, - "description": { - "description": "Short description for the bot.", - "type": "string" - }, - "developerName": { - "description": "Name of bot developer.", - "type": "string" - }, - "marketPlaceBannerUrl": { - "description": "URL for the banner image in GSuite Market Place. The banner will be 220x140.", - "type": "string" - }, - "status": { - "description": "Indicates whether bot is enabled/disabled.", - "enum": [ - "UNKNOWN_STATUS", - "ENABLED", - "DISABLED_BY_DEVELOPER" - ], - "enumDescriptions": [ - "", - "", - "Bot has been disabled by the bot developer. No one can @mention or interact with the bot." - ], - "type": "string" - }, - "supportHomeScreen": { - "description": "If the app supports a home screen.", - "type": "boolean" - }, - "supportUrls": { - "$ref": "SupportUrls", - "description": "Urls with additional information related to the bot. This field should always be set even if all the fields within it are empty, so that it is convenient for clients to work with this field in javascript." - }, - "supportedUses": { - "description": "The supported uses are limited according to the user that made the request. If the user does not have permission to use the bot, the list will be empty. This could occur for non whitelisted bots in the catalog.", - "items": { - "enum": [ - "UNKNOWN", - "CAN_ADD_TO_DM", - "CAN_ADD_TO_ROOM", - "CAN_ADD_TO_HUMAN_DM" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "BotResponse": { - "description": "Information about a bot response, branched from shared/bot_response.proto without frontend User proto as we never store it.", - "id": "BotResponse", - "properties": { - "botId": { - "$ref": "UserId" - }, - "requiredAction": { - "enum": [ - "UNKNOWN_SETUP_TYPE", - "CONFIGURATION", - "AUTHENTICATION" - ], - "enumDescriptions": [ - "", - "Bot requires configuration.", - "Bot requires authentication." - ], - "type": "string" - }, - "responseType": { - "enum": [ - "UNKNOWN_RESPONSE_TYPE", - "ERROR", - "SETUP_REQUIRED", - "DISABLED_BY_ADMIN", - "DISABLED_BY_DEVELOPER", - "PRIVATE", - "APP_SUGGESTION" - ], - "enumDescriptions": [ - "", - "Bot fails to respond because of deadline_exceeded or failing to parse bot message.", - "Bot requires auth or config", - "Bot fails to respond because it is disabled by domain admin", - "Bot fails to respond because it is disabled by the bot's developer", - "Message to bot should be permanently private.", - "A suggestion to promote an app." - ], - "type": "string" - }, - "setupUrl": { - "description": "URL for setting up bot.", - "type": "string" - } - }, - "type": "object" - }, - "BroadcastAccess": { - "description": "Broadcast access information of a meeting space.", - "id": "BroadcastAccess", - "properties": { - "accessPolicy": { - "description": "The policy that controls the broadcast's viewer access.", - "enum": [ - "BROADCASTING_ACCESS_POLICY_UNSPECIFIED", - "ORGANIZATION", - "PUBLIC" - ], - "enumDescriptions": [ - "Used only when broadcast is not enabled, or an unknown enum value is used.", - "Only authenticated Google accounts belonging to the same organization as the meeting organizer can access the broadcast.", - "Anyone with the broadcast view URL can access the broadcast." - ], - "type": "string" - }, - "viewUrl": { - "description": "A URL that can be used to access the broadcast of the meeting. This field will be empty if broadcast is not enabled. It will be populated by the backend. Clients cannot modify the value.", - "type": "string" - } - }, - "type": "object" - }, - "BroadcastSessionInfo": { - "description": "Information about a broadcast session.", - "id": "BroadcastSessionInfo", - "properties": { - "broadcastSessionId": { - "description": "A unique server-generated ID for the broadcast session.", - "type": "string" - }, - "broadcastStats": { - "$ref": "BroadcastStats", - "description": "Output only. Current broadcast session's statistics.", - "readOnly": true - }, - "ingestionId": { - "description": "Input only. Deprecated field, should not be used.", - "type": "string" - }, - "sessionStateInfo": { - "$ref": "SessionStateInfo", - "description": "Broadcast session's state information." - } - }, - "type": "object" - }, - "BroadcastStats": { - "description": "Statistics of the broadcast session.", - "id": "BroadcastStats", - "properties": { - "estimatedViewerCount": { - "description": "Estimated concurrent viewer count.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "Button": { - "id": "Button", - "properties": { - "imageButton": { - "$ref": "ImageButton" - }, - "textButton": { - "$ref": "TextButton" - } - }, - "type": "object" - }, - "CalendarClientActionMarkup": { - "id": "CalendarClientActionMarkup", - "properties": { - "addAttachmentsActionMarkup": { - "$ref": "AppsExtensionsMarkupCalendarClientActionMarkupAddAttachmentsActionMarkup", - "description": "An action that adds attachments to the Google Calendar event." - }, - "editAttendeesActionMarkup": { - "$ref": "AppsExtensionsMarkupCalendarClientActionMarkupEditAttendeesActionMarkup", - "description": "An action that adds attendees to the Google Calendar event." - }, - "editConferenceDataActionMarkup": { - "$ref": "AppsExtensionsMarkupCalendarClientActionMarkupEditConferenceDataActionMarkup", - "description": "An action that adds conference data to the Google Calendar event." - } - }, - "type": "object" - }, - "CallInfo": { - "description": "Contains information regarding an ongoing conference (aka call) for a meeting space.", - "id": "CallInfo", - "properties": { - "abuseReportingConfig": { - "$ref": "AbuseReportingConfig", - "description": "Abuse reporting configuration for the ongoing conference." - }, - "artifactOwner": { - "$ref": "UserDisplayInfo", - "description": "Output only. Display name of the owner of artifacts generated in this conference. The expected use of this in clients is to present info like \"This recording will be sent to John Doe's Drive\". This field can be empty if preferred display name determination fails for any reason.", - "readOnly": true - }, - "attachedDocuments": { - "description": "Output only. Documents attached to an ongoing conference.", - "items": { - "$ref": "DocumentInfo" - }, - "readOnly": true, - "type": "array" - }, - "availableAccessTypes": { - "description": "List of available access types of the conference.", - "items": { - "enum": [ - "ACCESS_TYPE_UNSPECIFIED", - "ACCESS_TYPE_OPEN", - "ACCESS_TYPE_TRUSTED", - "ACCESS_TYPE_RESTRICTED" - ], - "enumDescriptions": [ - "Default value. This value is unused.", - "Anyone with meeting join information (url, phone access...) can join, no knocking required. (Subject to organization policies)", - "Members of the Host's organization, invited external users, and dial-in users can join without knocking, everyone else must knock. (Subject to organization policies)", - "Only participants invited by a host can automatically join, everyone else must knock and be admitted. (Subject to organization policies) Participants cannot dial out from the meeting. And only hosts can accept knocks." - ], - "type": "string" - }, - "type": "array" - }, - "availableReactions": { - "description": "Output only. The set of reactions that clients are allowed to send and can expect to receive. Note that a device in the conference should have the MAY_SEND_REACTIONS privilege to be able to send reactions.", - "items": { - "$ref": "ReactionInfo" - }, - "readOnly": true, - "type": "array" - }, - "broadcastSessionInfo": { - "$ref": "BroadcastSessionInfo", - "description": "Information about active broadcast session in the ongoing conference." - }, - "calendarEventId": { - "description": "Output only. The calendar event ID of a Google Calendar event that the meeting space is associated with. If the meeting space is not associated with an event in Google Calendar, this field is empty. For recurring events, it refers to the recurring instance associated with the current call, as determined by the server.", - "readOnly": true, - "type": "string" - }, - "coActivity": { - "$ref": "CoActivity", - "description": "The current co-activity session, or unset if there is none in progress. A co-activity session can be initiated by devices in JOINED state . Initiator of the co-activity is expected to populate this field to start the session. Once clients detect that the co-activity has finished, any JOINED device can clear this field to end the co-activity session. In the case of switching activities, the initiator of the new activity merely needs to override this with the new co-activity data, and all connected clients are expected to handle the transition gracefully." - }, - "collaboration": { - "$ref": "Collaboration", - "description": "The current collaboration session, or unset if no collaboration is in progress." - }, - "cseInfo": { - "$ref": "CseInfo", - "description": "CSE information for the ongoing conference." - }, - "maxJoinedDevices": { - "description": "Output only. The maximum number of devices that may be in the joined state simultaneously in this conference. This can be used by clients to guess whether it will be possible to join, but the only way to know is to try to join. It can also be used to inform users about the limit that is in effect. This limit is normally set when the conference is created and not changed during the lifetime of the conference. But there are some cases where it may change, so clients should be aware that the information may be stale.", - "format": "int32", - "readOnly": true, - "type": "integer" - }, - "organizationName": { - "description": "Output only. The name or description of the organization or domain that the organizer belongs to. The expected use of this in clients is to present messages like \"John Doe (outside of Google.com) is trying to join this call\", where \"Google.com\" is the organization name. The field will be empty if the organization name could not be determined, possibly because of a backend error.", - "readOnly": true, - "type": "string" - }, - "paygateInfo": { - "$ref": "PaygateInfo", - "description": "Paygate information to clients." - }, - "presenter": { - "$ref": "Presenter", - "description": "The current presenter in the call, or unset if there is no current presenter. Clients can set this to change the presenter." - }, - "recordingInfo": { - "$ref": "RecordingInfo", - "description": "Deprecated, use RecordingSessionInfo instead. Info about recording for this conference. This will always be set in server responses, with a valid recording status. This is superseded by streaming_sessions field, which contains the same information about this recording as well as additional information about other application type at the same time. This will be deprecated and removed at some point." - }, - "recordingSessionInfo": { - "$ref": "RecordingSessionInfo", - "description": "Information about active recording session in the ongoing conference." - }, - "settings": { - "$ref": "CallSettings", - "description": "Settings of the ongoing conference." - }, - "streamingSessions": { - "description": "Output only. Info about streaming sessions (recording or broadcast) for this conference. This should contain all active sessions. Currently, it's guaranteed to have at most one recording and at most one broadcast (at most two sessions in total). For each application type (recording or broadcast), latest inactive session is included if there's no active one.", - "items": { - "$ref": "StreamingSessionInfo" - }, - "readOnly": true, - "type": "array" - }, - "transcriptionSessionInfo": { - "$ref": "TranscriptionSessionInfo", - "description": "Information about active transcription session in the ongoing conference." - }, - "viewerCount": { - "description": "The number of devices viewing the conference - MeetingDevices that are in VIEWER role and JOINED state in the conference.", - "format": "int32", - "type": "integer" - }, - "youTubeBroadcastSessionInfos": { - "description": "Information about active YouTube broadcast sessions in the ongoing conference.", - "items": { - "$ref": "YouTubeBroadcastSessionInfo" - }, - "type": "array" - } - }, - "type": "object" - }, - "CallSettings": { - "description": "Effective settings of the ongoing conference.", - "id": "CallSettings", - "properties": { - "accessLock": { - "description": "Indicates whether the access lock is currently on or off.", - "type": "boolean" - }, - "accessType": { - "description": "The current access type of the conference.", - "enum": [ - "ACCESS_TYPE_UNSPECIFIED", - "ACCESS_TYPE_OPEN", - "ACCESS_TYPE_TRUSTED", - "ACCESS_TYPE_RESTRICTED" - ], - "enumDescriptions": [ - "Default value. This value is unused.", - "Anyone with meeting join information (url, phone access...) can join, no knocking required. (Subject to organization policies)", - "Members of the Host's organization, invited external users, and dial-in users can join without knocking, everyone else must knock. (Subject to organization policies)", - "Only participants invited by a host can automatically join, everyone else must knock and be admitted. (Subject to organization policies) Participants cannot dial out from the meeting. And only hosts can accept knocks." - ], - "type": "string" - }, - "allowJoiningBeforeHost": { - "description": "Whether users can join this conference before a host (Host or Cohost).", - "type": "boolean" - }, - "attendanceReportEnabled": { - "description": "Indicates whether the attendance report is currently enabled or disabled.", - "type": "boolean" - }, - "audioLock": { - "description": "Indicates whether the audio lock is currently on or off.", - "type": "boolean" - }, - "chatLock": { - "description": "Indicates whether the chat lock is currently on or off.", - "type": "boolean" - }, - "cseEnabled": { - "description": "Whether Client-side Encryption is enabled for this conference.", - "type": "boolean" - }, - "moderationEnabled": { - "description": "Indicates whether moderation is currently on or off.", - "type": "boolean" - }, - "presentLock": { - "description": "Indicates whether the present lock is currently on or off.", - "type": "boolean" - }, - "reactionsLock": { - "description": "Indicates whether the reactions lock is currently on or off.", - "type": "boolean" - }, - "videoLock": { - "description": "Indicates whether the video lock is currently on or off.", - "type": "boolean" - } - }, - "type": "object" - }, - "CapTokenHolderProto": { - "description": "Represents a principal which possesses a particular secret string whose cryptographic hash is specified here. CapTokens (\"Capability Tokens\") are used in ACLProto. It's expected that ACLs with CapTokenHolders will strongly enforce them by Keystore-wrapping crypto keys for the corresponding CapTokens.", - "id": "CapTokenHolderProto", - "properties": { - "tokenHmacSha1Prefix": { - "description": "The hash of the corresponding capability token. The value is defined to be identical to the one in acl.proto's CapTokenMetadata: 10-byte prefix of HMAC-SHA1 of the token. The HMAC key is the following fixed (non-secret) 512-bit value: 79b1c8f4 82baf523 b8a9ab4a e960f438 c45be041 11f1f222 e8a3f64d aeb05e3d c3576acc ec649194 aede422c 4e48e0d1 ff21234a a6ed6b49 a7fa592e efd7bba3", - "format": "byte", - "type": "string" - } - }, - "type": "object" - }, - "Card": { - "id": "Card", - "properties": { - "cardActions": { - "items": { - "$ref": "CardAction" - }, - "type": "array" - }, - "displayStyle": { - "enum": [ - "DISPLAY_STYLE_UNSPECIFIED", - "PEEK", - "REPLACE" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "fixedFooter": { - "$ref": "FixedFooter" - }, - "header": { - "$ref": "CardHeader" - }, - "name": { - "description": "Name of the card used in CardNavigation.pop_to_card_name.", - "type": "string" - }, - "peekCardHeader": { - "$ref": "CardHeader", - "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." - }, - "sections": { - "items": { - "$ref": "Section" - }, - "type": "array" - } - }, - "type": "object" - }, - "CardAction": { - "description": "When an AddOn Card is shown in detailed view, a card action is the action associated with the card. For an invoice card, a typical action would be: delete invoice, email invoice or open the invoice in browser.", - "id": "CardAction", - "properties": { - "actionLabel": { - "description": "The label used to be displayed in the action menu item.", - "type": "string" - }, - "onClick": { - "$ref": "OnClick" - } - }, - "type": "object" - }, - "CardCapabilityMetadata": { - "id": "CardCapabilityMetadata", - "properties": { - "requiredCapabilities": { - "description": "NEXT TAG : 2", - "items": { - "enum": [ - "UNKNOWN", - "SUPPORTS_BASE_CARDS" - ], - "enumDescriptions": [ - "", - "NEXT TAG : 2" - ], - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "CardHeader": { - "id": "CardHeader", - "properties": { - "imageAltText": { - "description": "The alternative text of this image which will be used for accessibility.", - "type": "string" - }, - "imageStyle": { - "enum": [ - "CROP_TYPE_NOT_SET", - "SQUARE", - "CIRCLE", - "RECTANGLE_CUSTOM", - "RECTANGLE_4_3" - ], - "enumDescriptions": [ - "No value specified.", - "Applies a square crop.", - "Applies a circular crop.", - "Applies a rectangular crop with a custom aspect ratio.", - "Applies a rectangular crop with a 4:3 aspect ratio." - ], - "type": "string" - }, - "imageUrl": { - "type": "string" - }, - "subtitle": { - "type": "string" - }, - "title": { - "description": "The title must be specified. The header has a fixed height: if both a title and subtitle is specified, each will take up 1 line. If only the title is specified, it will take up both lines. The header is rendered in collapsed and detailed view.", - "type": "string" - } - }, - "type": "object" - }, - "CaribouAttributeValue": { - "id": "CaribouAttributeValue", - "properties": { - "booleanValue": { - "description": "Tags 1 through 15 are reserved for the most commonly used fields.", - "type": "boolean" - }, - "intValue": { - "format": "int32", - "type": "integer" - }, - "longValue": { - "format": "int64", - "type": "string" - }, - "rawByteValue": { - "description": "Generally, applications should avoid storing raw bytes and instead store structured data as protocol buffer extensions. This both reduces the amount of ad-hoc attribute parsing code as well as eliminates an intermediate copy of the data when deserializing the value. The rawByteValue field is mainly provided for compatibility with attributes stored before the introduction of the Attribute.Value.", - "format": "byte", - "type": "string" - }, - "stringValue": { - "type": "string" - } - }, - "type": "object" - }, - "ChatClientActionMarkup": { - "description": "Actions handled by Chat Clients.", - "id": "ChatClientActionMarkup", - "properties": {}, - "type": "object" - }, - "ChatConserverDynamitePlaceholderMetadata": { - "description": "Metadata used as inputs to the localization that is performed on Dynamite-originated messages that are incompatible with Hangouts clients. See go/localization-of-system-messages for more details.", - "id": "ChatConserverDynamitePlaceholderMetadata", - "properties": { - "attachmentMetadata": { - "$ref": "ChatConserverDynamitePlaceholderMetadataAttachmentMetadata" - }, - "botMessageMetadata": { - "$ref": "ChatConserverDynamitePlaceholderMetadataBotMessageMetadata" - }, - "calendarEventMetadata": { - "$ref": "ChatConserverDynamitePlaceholderMetadataCalendarEventMetadata" - }, - "deleteMetadata": { - "$ref": "ChatConserverDynamitePlaceholderMetadataDeleteMetadata" - }, - "editMetadata": { - "$ref": "ChatConserverDynamitePlaceholderMetadataEditMetadata" - }, - "spaceUrl": { - "description": "The space URL embedded in the localized string.", - "type": "string" - }, - "tasksMetadata": { - "$ref": "ChatConserverDynamitePlaceholderMetadataTasksMetadata" - }, - "videoCallMetadata": { - "$ref": "ChatConserverDynamitePlaceholderMetadataVideoCallMetadata" - } - }, - "type": "object" - }, - "ChatConserverDynamitePlaceholderMetadataAttachmentMetadata": { - "description": "An attachment uploaded in Dynamite and its filename.", - "id": "ChatConserverDynamitePlaceholderMetadataAttachmentMetadata", - "properties": { - "filename": { - "type": "string" - } - }, - "type": "object" - }, - "ChatConserverDynamitePlaceholderMetadataBotMessageMetadata": { - "description": "A bot sent a message in Dynamite.", - "id": "ChatConserverDynamitePlaceholderMetadataBotMessageMetadata", - "properties": {}, - "type": "object" - }, - "ChatConserverDynamitePlaceholderMetadataCalendarEventMetadata": { - "description": "A Calendar event message in Dynamite.", - "id": "ChatConserverDynamitePlaceholderMetadataCalendarEventMetadata", - "properties": {}, - "type": "object" - }, - "ChatConserverDynamitePlaceholderMetadataDeleteMetadata": { - "description": "A message was deleted in Dynamite.", - "id": "ChatConserverDynamitePlaceholderMetadataDeleteMetadata", - "properties": {}, - "type": "object" - }, - "ChatConserverDynamitePlaceholderMetadataEditMetadata": { - "description": "An edit was made in Dynamite.", - "id": "ChatConserverDynamitePlaceholderMetadataEditMetadata", - "properties": {}, - "type": "object" - }, - "ChatConserverDynamitePlaceholderMetadataTasksMetadata": { - "description": "A Tasks message in Dynamite.", - "id": "ChatConserverDynamitePlaceholderMetadataTasksMetadata", - "properties": {}, - "type": "object" - }, - "ChatConserverDynamitePlaceholderMetadataVideoCallMetadata": { - "description": "A Meet initiated in Dynamite and its URL.", - "id": "ChatConserverDynamitePlaceholderMetadataVideoCallMetadata", - "properties": { - "meetingUrl": { - "type": "string" - } - }, - "type": "object" - }, - "ChatConserverMessageContent": { - "description": "The content of a chat message, which includes 0 or more segments along with 0 or more embeds, which represent various attachment types (like photos).", - "id": "ChatConserverMessageContent", - "properties": { - "attachment": { - "description": "Items attached to this message, such as photos. This should *NOT* be set by clients. It will be automatically set from media uploaded along with this request and using the information provided in existing_media.", - "items": { - "$ref": "SocialCommonAttachmentAttachment" - }, - "type": "array" - }, - "segment": { - "description": "The text part of the message content. Segments are concatenated together to yield the full message. A message can have zero or more segments.", - "items": { - "$ref": "Segment" - }, - "type": "array" - } - }, - "type": "object" - }, - "ChatContentExtension": { - "description": "NEXT ID: 12", - "id": "ChatContentExtension", - "properties": { - "annotation": { - "description": "Annotations to decorate this event.", - "items": { - "$ref": "EventAnnotation" - }, - "type": "array" - }, - "dynamitePlaceholderMetadata": { - "$ref": "ChatConserverDynamitePlaceholderMetadata", - "description": "This metadata informs how the placeholder string will be localized dynamically in Hangouts. See go/localization-of-system-messages. This is only used as part of REGULAR_CHAT_MESSAGE events." - }, - "eventOtrStatus": { - "description": "Is this event OnTR or OffTR? Since some events can be ON_THE_RECORD and have an expiration_timestamp (for example enterprise retention users) we need to store the otr status.", - "enum": [ - "OFF_THE_RECORD", - "ON_THE_RECORD" - ], - "enumDescriptions": [ - "The conversation is completely off the record.", - "The conversation is completely on the record." - ], - "type": "string" - }, - "groupLinkSharingModificationEvent": { - "$ref": "GroupLinkSharingModificationEvent", - "description": "Group-link sharing toggle event." - }, - "hangoutEvent": { - "$ref": "HangoutEvent", - "description": "Audio/video Hangout event." - }, - "inviteAcceptedEvent": { - "$ref": "InviteAcceptedEvent", - "description": "Invite accepted events. Note: this is only used ephemerally to sync to Gmail. No actual cent is stored in Papyrus." - }, - "membershipChangeEvent": { - "$ref": "MembershipChangeEvent", - "description": "Join/leave events." - }, - "otrChatMessageEvent": { - "$ref": "OtrChatMessageEvent", - "description": "Metadata for off-the-record message." - }, - "otrModificationEvent": { - "$ref": "OtrModificationEvent" - }, - "renameEvent": { - "$ref": "RenameEvent" - } - }, - "type": "object" - }, - "ChatProto": { - "description": "Represents the invitees or other users associated with a Babel Chat (see http://goto/babel). Corresponds to GroupType CHAT in //social/graph/storage/proto/data.proto.", - "id": "ChatProto", - "properties": { - "chatId": { - "description": "Chat IDs consist of alphanumeric characters and colons. Currently required.", - "type": "string" - }, - "memberType": { - "description": "The type of Chat members to consider, e.g. \"all members\" vs. \"invitee\" These are defined by legacy_relation_id values in social.graph.storage.EdgeTypeEnum.EdgeType enum options in social/graph/storage/proto/id.proto. See chat.pb (defined in production/config/cdd/socialgraph/mixer_config/prod/node_type_config) for all valid edge types associated with chat. Currently required.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, "CheckAccessResponse": { "id": "CheckAccessResponse", "properties": { @@ -6336,179 +2200,6 @@ }, "type": "object" }, - "CircleProto": { - "description": "Represents a Google+ Circle. Currently (12/2011), a Circle is identical to the ContactGroup with matching parameters, but Circle must only be used for true Circles and not other Focus groups, and should be preferred over ContactGroup where applicable. Soon it may become more efficient to check membership in a Circle than in a ContactGroup (see http://go/superglue). Support for this principal type is currently (12/2011) incomplete -- e.g., Keystore does not support it yet (see b/5703421).", - "id": "CircleProto", - "properties": { - "circleId": { - "description": "Circle ID is unique only relative to the owner's Gaia ID. Currently required.", - "format": "int64", - "type": "string" - }, - "ownerGaiaId": { - "description": "The owner of the circle. Currently required.", - "format": "int64", - "type": "string" - }, - "requiredConsistencyTimestampUsec": { - "description": "If present, then tests for membership in this circle must use data known to be at least as fresh as the given (FBS-assigned) timestamp. See http://go/fbs-consistent-read-after-important-write Before using this, be sure that any service checking authorization against this circle supports checking consistency timestamps. For example, as of 12/2011, Keystore only supports this for the Moonshine configuration, and in others authorization checks will fail if the timestamp is present.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "ClientContext": { - "description": "Represents the context of the client on behalf of which a HistoryRecord is produced. The ClientContext message can be used to hold context about the service client (e.g. the internal server making fusebox requests) or the user client (e.g. the IP address of the end user).", - "id": "ClientContext", - "properties": { - "clientOperationId": { - "description": "The client operation to which this history record belongs. The notion of a client operation is provided to keep track of client operations which might span multiple transactions in the lower level.", - "type": "string" - }, - "clientType": { - "description": "E.g. \"pinto\", \"imap\", \"bigtop\", \"upload\"", - "type": "string" - }, - "sessionContext": { - "$ref": "SessionContext", - "description": "Contains information about the session which created this history record. This will be empty if the history record was generated by an internal request." - }, - "userIp": { - "description": "Textual representation of the user's IP address, if available.", - "type": "string" - } - }, - "type": "object" - }, - "CloudPrincipalProto": { - "description": "Principal associated with a Cloud Principal representing third party user.", - "id": "CloudPrincipalProto", - "properties": { - "id": { - "description": "Format: \"{identity-pool}:{subject}#\" Details: go/cloud-principal-identifiers", - "type": "string" - } - }, - "type": "object" - }, - "ClusterInfo": { - "description": "ClusterInfo contains clustering related information for a particular thread that would be sent as part of the conversation view. Today, this information would be used by iOS notification server to identify whether the thread belongs to a cluster. If the thread belongs to a grouped cluster, it would identify whether the cluster is throttled.", - "id": "ClusterInfo", - "properties": { - "clusterId": { - "description": "IDs of the highest priority clusters to which the thread belongs to. If this field is not present, the thread does not belong to any cluster and would be shown in the inbox, unclustered.", - "items": { - "type": "string" - }, - "type": "array" - }, - "throttled": { - "description": "If the thread belongs to a grouped cluster and all of those clusters are throttled, then this field is set to true.", - "type": "boolean" - } - }, - "type": "object" - }, - "CoActivity": { - "description": "Metadata about a co-activity session.", - "id": "CoActivity", - "properties": { - "activityTitle": { - "description": "The title of the activity in this co-activity session. For example, this might be the title of the video being co-watched, or the name of the round of a game being co-played.", - "type": "string" - }, - "coActivityApp": { - "description": "Identifies the app handling this co-activity.", - "enum": [ - "CO_ACTIVITY_APP_UNSPECIFIED", - "CO_ACTIVITY_APP_YOU_TUBE_MAIN", - "CO_ACTIVITY_APP_SPOTIFY", - "CO_ACTIVITY_APP_UNO", - "CO_ACTIVITY_APP_HEADSUP", - "CO_ACTIVITY_APP_KAHOOT", - "CO_ACTIVITY_APP_GQUEUES", - "CO_ACTIVITY_APP_YOU_TUBE_MUSIC", - "CO_ACTIVITY_APP_SAMSUNG_NOTES" - ], - "enumDescriptions": [ - "Should never be used.", - "Main YouTube app, for watching videos.", - "Spotify music.", - "Uno game.", - "HeadsUp game.", - "Kahoot! educational software.", - "GQueues task manager.", - "YouTube Music", - "Samsung Notes" - ], - "type": "string" - } - }, - "type": "object" - }, - "Collaboration": { - "description": "Information about a collaboration session.", - "id": "Collaboration", - "properties": { - "attachmentId": { - "description": "The attachment being collaborated on.", - "type": "string" - }, - "initiator": { - "$ref": "UserDisplayInfo", - "description": "Display info of the user who initiated the collaboration session." - }, - "uri": { - "description": "The uri of the artifact being collaborated on.", - "type": "string" - } - }, - "type": "object" - }, - "Color": { - "description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/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 carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). 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" - }, - "CommunalLabelTag": { - "description": "An individual instance (or \"tag\") of a label configured as a communal type that's associated with a message.", - "id": "CommunalLabelTag", - "properties": { - "creatorUserId": { - "description": "Gaia ID of the user who added the tag, if any. Not present for any tags automatically created by server-side processing.", - "format": "int64", - "type": "string" - }, - "labelId": { - "description": "A string ID representing the label. Possible ID values are documented at go/chat-labels-howto:ids. Example: \"^*t_p\" for \"Pinned\".", - "type": "string" - } - }, - "type": "object" - }, "CompositeFilter": { "id": "CompositeFilter", "properties": { @@ -6536,89 +2227,141 @@ }, "type": "object" }, - "ConsentedAppUnfurlMetadata": { - "description": "Annotation metadata app unfurl consent.", - "id": "ConsentedAppUnfurlMetadata", + "Content": { + "id": "Content", "properties": { - "clientSpecifiedAppId": { - "$ref": "UserId", - "description": "Client specified AppId, which will not be sanitized and is untrusted." + "actions": { + "description": "[Optional] Actions for this card.", + "items": { + "$ref": "Action" + }, + "type": "array" + }, + "description": { + "$ref": "SafeHtmlProto", + "description": "[Optional] Description of the card." + }, + "subtitle": { + "$ref": "BackgroundColoredText", + "description": "[Optional] Subtitle of the card." + }, + "title": { + "$ref": "BackgroundColoredText", + "description": "[Optional] Title of the card." } }, "type": "object" }, - "ContactGroupProto": { - "description": "A group of contacts for a given user, as described in http://cs/p#google3/focus/backend/proto/backend.proto Historically (and in still-existing ACLs), this was used to represent Google+ circles as well as contact groups, but this use is now deprecated. New code should use the CIRCLE principal type to represent Google+ circles.", - "id": "ContactGroupProto", + "Context": { + "id": "Context", "properties": { - "groupId": { - "description": "Group ID is unique only relative to the owner's Gaia ID.", + "app": { + "description": "[Optional] App where the card should be shown. If missing, the card will be shown in TOPAZ.", + "items": { + "enum": [ + "UNKNOWN_APP", + "TOPAZ", + "MOMA" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "type": "array" + }, + "dayOfWeek": { + "description": "[Optional] Day of week when the card should be shown, where 0 is Monday.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "endDateSec": { + "description": "[Optional] Date (in seconds since epoch) when the card should stop being shown. If missing, end_date_sec will be set to Jan 1st, 2100.", "format": "int64", "type": "string" }, - "ownerGaiaId": { + "endDayOffsetSec": { + "description": "[Optional] End time in seconds, within a day, when the card should stop being shown if it's within [start_date_sec, end_date_sec]. If missing, this is set to 86400 (24 hours x 3600 sec/hour), i.e., midnight next day.", "format": "int64", "type": "string" }, - "requiredConsistencyTimestampUsec": { - "description": "If present, then tests for membership in this ContactGroup must use data known to be at least as fresh as the given (FBS-assigned) timestamp. See http://go/fbs-consistent-read-after-important-write Before using this, be sure that any service checking authorization against this group supports checking consistency timestamps. For example, as of 12/2011, Keystore only supports this for the Moonshine configuration, and in others authorization checks will fail if the timestamp is present.", + "locale": { + "description": "[Optional] The locales for which the card should be triggered (e.g., en_US and en_CA). If missing, the card is going to show to clients regardless of their locale.", + "items": { + "type": "string" + }, + "type": "array" + }, + "location": { + "description": "[Optional] Text-free locations where the card should be shown. This is expected to match the user's location in focus. If no location is specified, the card will be shown for any location.", + "items": { + "type": "string" + }, + "type": "array" + }, + "query": { + "description": "[Required only for Answer and RHS cards - will be ignored for Homepage] cards. It's the exact case-insensitive queries that will trigger the Answer or RHS card.", + "items": { + "type": "string" + }, + "type": "array" + }, + "startDateSec": { + "description": "[Optional] Date (in seconds since epoch) when the card should start being shown. If missing, start_date_sec will be Jan 1st, 1970 UTC.", "format": "int64", "type": "string" - } - }, - "type": "object" - }, - "ContentReport": { - "id": "ContentReport", - "properties": { - "reportCreateTimestamp": { - "description": "The time at which the report is generated. Always populated when it is in a response.", - "format": "google-datetime", + }, + "startDayOffsetSec": { + "description": "[Optional] Start time in seconds, within a day, when the card should be shown if it's within [start_date_sec, end_date_sec]. If 0, the card will be shown from 12:00am on.", + "format": "int64", "type": "string" }, - "reportJustification": { - "$ref": "ContentReportJustification", - "description": "Additional user-provided justification on the report. Optional." + "surface": { + "description": "[Optional] Surface where the card should be shown in. If missing, the card will be shown in any surface.", + "items": { + "enum": [ + "UNKNOWN_SURFACE", + "DESKTOP", + "ANDROID", + "IOS", + "MOBILE", + "ANY" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "Any mobile device.", + "" + ], + "type": "string" + }, + "type": "array" }, - "reportType": { - "$ref": "AppsDynamiteSharedContentReportType", - "description": "Type of the report. Always populated when it is in a response." - }, - "reporterUserId": { - "$ref": "UserId", - "description": "User ID of the reporter. Always populated when it is in a response." - }, - "revisionCreateTimestamp": { - "description": "Create timestamp of the revisions of the message when it's reported. Always populated when it is in a response.", - "format": "google-datetime", - "type": "string" - } - }, - "type": "object" - }, - "ContentReportJustification": { - "id": "ContentReportJustification", - "properties": { - "userJustification": { - "description": "Optional. User-generated free-text justification for the content report.", - "type": "string" - } - }, - "type": "object" - }, - "ContentReportSummary": { - "description": "Summarized info of content reports. Usually less expensive to fetch than to fetch all detailed reports. Set only when the request asks for it.", - "id": "ContentReportSummary", - "properties": { - "numberReports": { - "description": "Total number of reports attached to this (revision of) message.", - "format": "int32", - "type": "integer" - }, - "numberReportsAllRevisions": { - "description": "Totoal number of reports attached to all revisions of this message (i.e. since creation). Set only when the request asks for it.", - "format": "int32", - "type": "integer" + "type": { + "description": "[Required] Type of the card (homepage, Answer or RHS).", + "items": { + "enum": [ + "UNKNOWN_CARD_TYPE", + "HOMEPAGE_CARD", + "ANSWER_CARD", + "RHS_CARD" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -6641,74 +2384,6 @@ }, "type": "object" }, - "ContextualAddOnMarkup": { - "description": "The markup for developers to specify the contents of a contextual AddOn. A contextual AddOn is triggered in context of an email. For that email, there can be N items that are associated with the email (e.g. contacts, sales lead, meeting information). Each item is represented as a \"card\". A card has two views, collapsed and detailed. If there are more than 1 card, the cards are show as a list of collapsed views. The end user can expand into the detailed view for each of those cards. In the detailed view, developers have the freedom to use a variety of \"widgets\" to construct it. The model here is to restrict (make consistent for end users) the navigation of the N cards but providing developers the freedom to build the detailed view that can best represent their use case/content. Go http://go/aoig-widgets1 to see the mocks. Post v1, we plan to support new AddOn use cases that will require different and separate 'templates'. For example, a compose triggered AddOn which will support a new set of use cases with different user interaction patterns. As a result, we will likely need a very different template than this one.", - "id": "ContextualAddOnMarkup", - "properties": { - "cards": { - "description": "A card must contain a header and at least 1 section.", - "items": { - "$ref": "Card" - }, - "type": "array" - }, - "toolbar": { - "$ref": "Toolbar", - "description": "Deprecated." - } - }, - "type": "object" - }, - "CseInfo": { - "description": "Information needed for Client-side Encryption.", - "id": "CseInfo", - "properties": { - "cseDomain": { - "description": "CSE domain name claimed by the meeting owner's company. This field is expected to be used for display purposes only, i.e., \"Extra encryption added by $cse_domain\". It can differ from the `cse_domain` as defined elsewhere on the User, in the case of cross-domain meetings.", - "type": "string" - }, - "wrappedKey": { - "description": "The wrapped CSE key used by this conference.", - "format": "byte", - "type": "string" - } - }, - "type": "object" - }, - "CustomEmojiMetadata": { - "id": "CustomEmojiMetadata", - "properties": { - "customEmoji": { - "$ref": "AppsDynamiteSharedCustomEmoji" - } - }, - "type": "object" - }, - "CustomFunctionReturnValueMarkup": { - "description": "The result of a user running a custom function.", - "id": "CustomFunctionReturnValueMarkup", - "properties": { - "errorMessage": { - "description": "The error message to show to the user if something went wrong.", - "type": "string" - }, - "value": { - "description": "The value that resulted from running the custom function.", - "type": "any" - } - }, - "type": "object" - }, - "CustomerId": { - "description": "Represents a GSuite customer ID. Obfuscated with CustomerIdObfuscator.", - "id": "CustomerId", - "properties": { - "customerId": { - "type": "string" - } - }, - "type": "object" - }, "CustomerIndexStats": { "description": "Aggregation of items by status code as of the specified date.", "id": "CustomerIndexStats", @@ -6814,23 +2489,8 @@ }, "type": "object" }, - "DataLossPreventionMetadata": { - "description": "Annotation metadata for Data Loss Prevention that pertains to DLP violation on message send or edit events. It is used for client -> BE communication and other downstream process in BE (e.g. storage and audit logging), and it should never be returned to the client.", - "id": "DataLossPreventionMetadata", - "properties": { - "dlpScanSummary": { - "$ref": "DlpScanSummary", - "description": "The DLP scan summary that should only be set after the message is scanned in the Chat backend." - }, - "warnAcknowledged": { - "description": "Flag set by client on message resend to bypass WARN violation.", - "type": "boolean" - } - }, - "type": "object" - }, "DataSource": { - "description": "Datasource is a logical namespace for items to be indexed. All items must belong to a datasource. This is the prerequisite before items can be indexed into Cloud Search.", + "description": "Datasource is a logical namespace for items to be indexed. All items must belong to a datasource. This is the prerequisite before items can be indexed into Cloud Search. ", "id": "DataSource", "properties": { "disableModifications": { @@ -6969,50 +2629,6 @@ }, "type": "object" }, - "DateTimePicker": { - "id": "DateTimePicker", - "properties": { - "label": { - "description": "The label for the field, which is displayed to the user.", - "type": "string" - }, - "name": { - "description": "The name of the text field which is used in FormInput, and uniquely identifies this input.", - "type": "string" - }, - "onChange": { - "$ref": "FormAction", - "description": "Triggered when the user clicks on the Save, or Clear button from the date / time picker dialog. Will only be triggered if the value changed as a result of the Save / Clear operation." - }, - "timezoneOffsetDate": { - "description": "The number representing the time-zone offset from UTC, in minutes. If set, the value_ms_epoch will be displayed in the specified time zone. If not set, it will use the user's timezone setting in client side.", - "format": "int32", - "type": "integer" - }, - "type": { - "description": "The type of the DateTimePicker.", - "enum": [ - "UNSPECIFIED_TYPE", - "DATE_AND_TIME", - "DATE_ONLY", - "TIME_ONLY" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "valueMsEpoch": { - "description": "The value to display which can be the default value before user input or previous user input. It is represented in milliseconds (Epoch time). - For DATE_AND_TIME type, the full epoch value is used. - For DATE_ONLY type, only date of the epoch time is used. - For TIME_ONLY type, only time of the epoch time is used. For example, you can set epoch time to 3 * 60 * 60 * 1000 to represent 3am.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, "DateValues": { "description": "List of date values.", "id": "DateValues", @@ -7037,39 +2653,6 @@ }, "type": "object" }, - "DeepLinkData": { - "description": "Deep-linking data is used to construct a deep-link URI for an activity or frame's embed, such that on click, the user is taken to the right place in a mobile app. If the app is not installed, the user is taken to the app store. If not on mobile, an analogous web uri is used.", - "id": "DeepLinkData", - "properties": { - "appId": { - "description": "Application ID (or project ID) from Google API Console.", - "format": "int64", - "type": "string" - }, - "client": { - "description": "The data for a Google API Console client is entered by a developer during client registration and is stored in PackagingService.", - "items": { - "$ref": "PackagingServiceClient" - }, - "type": "array" - }, - "deepLinkId": { - "description": "The ID for non-URL content. Embeds may either have no analogous web presence or prefer a native mobile experience if supported. In the case of no web presence, instead of setting the \"url\" field of an embed, such developers will set this field and other content fields, e.g. thumbnail, title, description. If set, this field is used to construct the deep-link URI. Note that the native experience is preferred over the web link and the web link is used as a fallback.", - "type": "string" - }, - "url": { - "description": "Analogous web presence. Used as desktop fallback or when no native link data is present.", - "type": "string" - } - }, - "type": "object" - }, - "DeleteMetadata": { - "description": "A message delete in Dynamite inserts a Babel-only item containing this field. This is only inserted for messages before the source-of-truth flip. See go/hsc-message-deletions for more details.", - "id": "DeleteMetadata", - "properties": {}, - "type": "object" - }, "DeleteQueueItemsRequest": { "id": "DeleteQueueItemsRequest", "properties": { @@ -7088,32 +2671,6 @@ }, "type": "object" }, - "DeliveryMedium": { - "id": "DeliveryMedium", - "properties": { - "mediumType": { - "description": "Describes the medium the cent was sent/received. For example, if I receive an SMS via GV, the medium_type will be GV.", - "enum": [ - "UNKNOWN_MEDIUM", - "BABEL_MEDIUM", - "GOOGLE_VOICE_MEDIUM", - "LOCAL_SMS_MEDIUM" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "selfPhone": { - "$ref": "VoicePhoneNumber", - "description": "In the case of multiple GV/native numbers, this defines the exact number to send from. It is used to differentiate mediums that have the same type, but different addresses (e.g. two android phones)." - } - }, - "type": "object" - }, "DisplayedProperty": { "description": "A reference to a top-level property within the object that should be displayed in search results. The values of the chosen properties is displayed in the search results along with the display label for that property if one is specified. If a display label is not specified, only the values is shown.", "id": "DisplayedProperty", @@ -7125,107 +2682,6 @@ }, "type": "object" }, - "Divider": { - "id": "Divider", - "properties": {}, - "type": "object" - }, - "DlpScanSummary": { - "description": "A summary of a DLP scan event. This is a summary and should contain the minimum amount of data required to identify and process DLP scans. It is written to Starcast and encoded & returned to the client on attachment upload.", - "id": "DlpScanSummary", - "properties": { - "scanId": { - "description": "The scan ID of the corresponding {@link DlpViolationScanRecord} in the {@link EphemeralDlpScans} Spanner table. This can be used to fetch additional details about the scan, e.g. for audit logging.", - "type": "string" - }, - "scanNotApplicableForContext": { - "description": "Indicates that was no attempt to scan a message or attachment because it was not applicable in the given context (e.g. atomic mutuate). If this is true, scan_outcome should not be set. This flag is used to identify messages that DLP did not attempt to scan for monitoring scan coverage. Contents that DLP attempted to scan but skipped can be identified by DlpScanOutcome.SCAN_SKIPPED_* reasons.", - "type": "boolean" - }, - "scanOutcome": { - "description": "The outcome of a DLP Scan. If this is set, scan_not_applicable_for_context should not be true.", - "enum": [ - "SCAN_UNKNOWN_OUTCOME", - "SCAN_SUCCEEDED_NO_VIOLATION", - "SCAN_SUCCEEDED_BLOCK", - "SCAN_SUCCEEDED_WARN", - "SCAN_SUCCEEDED_AUDIT_ONLY", - "SCAN_FAILURE_EXCEPTION", - "SCAN_FAILURE_RULE_FETCH_FAILED", - "SCAN_FAILURE_TIMEOUT", - "SCAN_FAILURE_ALL_RULES_FAILED", - "SCAN_FAILURE_ILLEGAL_STATE_FOR_ATTACHMENTS", - "SCAN_SKIPPED_EXPERIMENT_DISABLED", - "SCAN_SKIPPED_CONSUMER", - "SCAN_SKIPPED_NON_HUMAN_USER", - "SCAN_SKIPPED_NO_MESSAGE", - "SCAN_SKIPPED_USER_ACKNOWLEDGED_WARNING", - "SCAN_SKIPPED_MESSAGE_FROM_UNSUPPORTED_ORIGIN", - "SCAN_RULE_EVALUATION_SKIPPED_NO_RULES_FOUND", - "SCAN_RULE_EVALUATION_SKIPPED_NO_APPLICABLE_RULES_FOR_ACTION_PARAMS", - "SCAN_RULE_EVALUATION_SKIPPED_NO_APPLICABLE_RULES_FOR_TRIGGER", - "SCAN_RULE_EVALUATION_SKIPPED_CHANGELING_PERMANENT_ERROR", - "SCAN_RULE_EVALUATION_SKIPPED_CHANGELING_EMPTY_RESPONSE", - "SCAN_RULE_EVALUATION_SKIPPED_UNSUPPORTED_FILE_TYPE", - "SCAN_SUCCEEDED_WITH_FAILURES_NO_VIOLATION", - "SCAN_SUCCEEDED_WITH_FAILURES_BLOCK", - "SCAN_SUCCEEDED_WITH_FAILURES_WARN", - "SCAN_SUCCEEDED_WITH_FAILURES_AUDIT_ONLY" - ], - "enumDescriptions": [ - "", - "This means no violation is detected on the given message/attachment.", - "Violation is detected. The message/attachment will be blocked (or deleted if this happens in failure recovery), the user will be warned, and the violation will be logged to BIP.", - "Violation is detected. The user will be warned, and the violation will be logged to BIP.", - "Violation is detected and will be logged to BIP (no user-facing action performed).", - "Rule fetch and evaluation were attempted but an exception occurred.", - "Rule fetch was attempted but failed, so rule evaluation could not be performed.", - "Rule fetch and evaluation were attempted but the scanning timed out.", - "Rule fetch completed and evaluation were attempted, but all of the rules failed to be evaluated.", - "An IllegalStateException is thrown when executing DLP on attachments. This could happen if the space row is missing.", - "Rule fetch and evaluation is skipped because DLP is not enabled for the user.", - "Rule fetch and evaluation are skipped because the user sending message is consumer.", - "Rule fetch and evaluation are skipped because the user sending message is a non-human user (i.e. a bot).", - "Rule fetch and evaluation are skipped because there is no message to scan. Deprecated: this should not happen since there must be message or attachment for DLP scan.", - "Rule fetch and evaluation are skipped because the user has acknowledged the warning on the message that triggered the Warn violation and sent the message anyway.", - "Scanning was skipped because the message originated from Interop or Babel.", - "Rule fetch happened, but rule evaluation is skipped because no rules were found.", - "Rule fetch happened, but rule evaluation is skipped because none of the rules are applicable to the given action params.", - "Rule fetch happened, but rule evaluation is skipped because none of the rules are applicable to the given trigger.", - "Rule fetch happened, but rule evaluation is skipped because Changeling returned permanent failure while converting the attachment to text.", - "Rule fetch happened, but rule evaluation is skipped because Changeling returned an empty response while converting the attachment to text.", - "Rule fetch happened, but rule evaluation is skipped because file type is unsupported.", - "Rules were fetched but some evaluations failed. No violation was found in the rules that were successfully evaluated.", - "Rules were fetched but some evaluations failed. A blocking violation was found in the rules that were successfully evaluated. The message/attachment will be blocked, the user will be notified, and the violation will be logged to BIP. A blocking violation takes precedence over all other violation types.", - "Rules were fetched but some evaluations failed. A warn violation was found in the rules that were successfully evaluated. The user will be warned, and the violation will be logged to BIP.", - "Rules were fetched but some evaluations failed. An audit-only violation was found in the rules that were successfully evaluated. The violation will be logged to BIP (no user-facing action performed)." - ], - "type": "string" - } - }, - "type": "object" - }, - "DmId": { - "id": "DmId", - "properties": { - "dmId": { - "description": "Unique server assigned Id, per Direct Message Space.", - "type": "string" - } - }, - "type": "object" - }, - "DocumentInfo": { - "description": "Information on a document attached to an active conference.", - "id": "DocumentInfo", - "properties": { - "whiteboardInfo": { - "$ref": "WhiteboardInfo", - "description": "A whiteboard document." - } - }, - "type": "object" - }, "DoubleOperatorOptions": { "description": "Used to provide a search operator for double properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.", "id": "DoubleOperatorOptions", @@ -7262,15 +2718,6 @@ }, "type": "object" }, - "DriveClientActionMarkup": { - "id": "DriveClientActionMarkup", - "properties": { - "requestFileScope": { - "$ref": "RequestFileScope" - } - }, - "type": "object" - }, "DriveFollowUpRestrict": { "description": "Drive follow-up search restricts (e.g. \"followup:suggestions\").", "id": "DriveFollowUpRestrict", @@ -7311,141 +2758,6 @@ }, "type": "object" }, - "DriveMetadata": { - "description": "Annotation metadata for Drive artifacts.", - "id": "DriveMetadata", - "properties": { - "aclFixRequest": { - "$ref": "AclFixRequest" - }, - "aclFixStatus": { - "$ref": "AclFixStatus" - }, - "canEdit": { - "description": "Can the current user edit this resource", - "type": "boolean" - }, - "canShare": { - "description": "Can the current user share this resource", - "type": "boolean" - }, - "canView": { - "description": "Can the current user view this resource", - "type": "boolean" - }, - "driveAction": { - "description": "DriveAction for organizing this file in Drive. If the user does not have access to the Drive file, the value will be DriveAction.DRIVE_ACTION_UNSPECIFIED. This field is only set when part of a FileResult in a ListFilesResponse.", - "enum": [ - "DRIVE_ACTION_UNSPECIFIED", - "ADD_TO_DRIVE", - "ORGANIZE", - "ADD_SHORTCUT", - "ADD_ANOTHER_SHORTCUT" - ], - "enumDescriptions": [ - "No organize action should be shown.", - "Show \"Add to Drive\" button, for adding file that doesn't exist in Drive to Drive. Note that deleted Drive files that still exist (i.e. in your Trash) will still be ORGANIZE (this is consistent with Gmail Drive attachments).", - "Show \"Move\" button, for organizing a Drive file the user has permission to move.", - "Show \"Add shortcut\" button, for adding a shortcut to a Drive file the user does not have permission to move.", - "Show \"Add another shortcut\" button, for Drive files the user has already created a shortcut to." - ], - "type": "string" - }, - "driveState": { - "enum": [ - "DRIVE_STATE_UNSPECIFIED", - "IN_MY_DRIVE", - "IN_TEAM_DRIVE", - "SHARED_IN_DRIVE", - "NOT_IN_DRIVE" - ], - "enumDescriptions": [ - "Default value", - "File in My Drive", - "File in Team Drive", - "File in someone else's Drive, but is shared with the current user", - "File not in drive" - ], - "type": "string" - }, - "embedUrl": { - "$ref": "TrustedResourceUrlProto", - "description": "Output only. Trusted Resource URL for drive file embedding.", - "readOnly": true - }, - "encryptedDocId": { - "description": "Indicates whether the Drive link contains an encrypted doc ID. If true, Dynamite should not attempt to query the doc ID in Drive Service. See go/docid-encryption for details.", - "type": "boolean" - }, - "encryptedResourceKey": { - "description": "This is deprecated and unneeded. TODO (b/182479059): Remove this.", - "type": "string" - }, - "externalMimetype": { - "description": "External mimetype of the Drive Resource (Useful for creating Drive URL) See: http://b/35219462", - "type": "string" - }, - "id": { - "description": "Drive resource ID of the artifact.", - "type": "string" - }, - "isDownloadRestricted": { - "description": "Deprecated. Whether the setting to restrict downloads is enabled for this file. This was previously used to determine whether to hide the download and print buttons in the UI, but is no longer used by clients, because Projector now independently queries Drive to ensure that we have the most up-to-date value.", - "type": "boolean" - }, - "isOwner": { - "description": "If the current user is the Drive file's owner. The field is currently only set for Annotations for the ListFiles action (as opposed to fetching Topics/Messages with Drive annotations).", - "type": "boolean" - }, - "legacyUploadMetadata": { - "$ref": "LegacyUploadMetadata", - "description": "Only present if this DriveMetadata is converted from an UploadMetadata." - }, - "mimetype": { - "description": "Mimetype of the Drive Resource", - "type": "string" - }, - "organizationDisplayName": { - "description": "The display name of the organization owning the Drive item.", - "type": "string" - }, - "shortcutAuthorizedItemId": { - "$ref": "AuthorizedItemId", - "description": "Shortcut ID of this drive file in the shared drive, which is associated with a named room this file was shared in. Shortcuts will not be created for DMs or unnamed rooms. This is populated after the DriveMetadata is migrated to shared drive. go/chat-shared-drive-uploads." - }, - "shouldNotRender": { - "description": "If this field is set to true, server should still contact external backends to get metadata for search but clients should not render this chip.", - "type": "boolean" - }, - "thumbnailHeight": { - "description": "Thumbnail image of the Drive Resource", - "format": "int32", - "type": "integer" - }, - "thumbnailUrl": { - "description": "Thumbnail image of the Drive Resource", - "type": "string" - }, - "thumbnailWidth": { - "description": "Thumbnail image of the Drive Resource", - "format": "int32", - "type": "integer" - }, - "title": { - "description": "Title of the Drive Resource", - "type": "string" - }, - "urlFragment": { - "description": "Url string fragment that generally indicates the specific location in the linked file. Example: #header=h.123abc456. If the fragment is not present this will not be present and therefore default to an empty string. The \"#\" will not be included.", - "type": "string" - }, - "wrappedResourceKey": { - "$ref": "WrappedResourceKey", - "description": "This is considered SPII and should not be logged." - } - }, - "type": "object" - }, "DriveMimeTypeRestrict": { "description": "Drive mime-type search restricts (e.g. \"type:pdf\").", "id": "DriveMimeTypeRestrict", @@ -7516,127 +2828,6 @@ }, "type": "object" }, - "DynamiteMessagesScoringInfo": { - "description": "This is the proto for holding message level scoring information. This data is used for logging in query-api server and for testing purposes.", - "id": "DynamiteMessagesScoringInfo", - "properties": { - "finalScore": { - "format": "double", - "type": "number" - }, - "freshnessScore": { - "format": "double", - "type": "number" - }, - "joinedSpaceAffinityScore": { - "format": "double", - "type": "number" - }, - "messageAgeInDays": { - "format": "double", - "type": "number" - }, - "messageSenderAffinityScore": { - "format": "double", - "type": "number" - }, - "topicalityScore": { - "format": "double", - "type": "number" - }, - "unjoinedSpaceAffinityScore": { - "format": "double", - "type": "number" - } - }, - "type": "object" - }, - "DynamiteSpacesScoringInfo": { - "description": "This is the proto for holding space level scoring information. This data is used for logging in query-api server and for testing purposes.", - "id": "DynamiteSpacesScoringInfo", - "properties": { - "affinityScore": { - "format": "double", - "type": "number" - }, - "commonContactCountAffinityScore": { - "format": "double", - "type": "number" - }, - "contactsIntersectionCount": { - "format": "double", - "type": "number" - }, - "finalScore": { - "format": "double", - "type": "number" - }, - "freshnessScore": { - "format": "double", - "type": "number" - }, - "joinedSpacesAffinityScore": { - "format": "double", - "type": "number" - }, - "lastMessagePostedTimestampSecs": { - "format": "int64", - "type": "string" - }, - "lastReadTimestampSecs": { - "format": "int64", - "type": "string" - }, - "memberMetadataCount": { - "format": "double", - "type": "number" - }, - "messageScore": { - "format": "double", - "type": "number" - }, - "numAucContacts": { - "format": "int64", - "type": "string" - }, - "smallContactListAffinityScore": { - "format": "double", - "type": "number" - }, - "smallUnjoinedSpacesAffinityScore": { - "format": "double", - "type": "number" - }, - "spaceAgeInDays": { - "format": "double", - "type": "number" - }, - "spaceCreationTimestampSecs": { - "format": "int64", - "type": "string" - }, - "topicalityScore": { - "format": "double", - "type": "number" - } - }, - "type": "object" - }, - "EditMetadata": { - "description": "A message edit in Dynamite inserts a Babel-only item containing this field.", - "id": "EditMetadata", - "properties": {}, - "type": "object" - }, - "EditorClientActionMarkup": { - "id": "EditorClientActionMarkup", - "properties": { - "requestFileScopeForActiveDocument": { - "$ref": "RequestFileScopeForActiveDocument" - } - }, - "type": "object" - }, "EmailAddress": { "description": "A person's email address.", "id": "EmailAddress", @@ -7664,916 +2855,1813 @@ }, "type": "object" }, - "EmailOwnerProto": { - "description": "Represents a verified owner of the given email address. Note that a single address may have many owners, and a single user may own many addresses. (All lower-case, in display form -- see com.google.gaia.client.GaiaEmail)", - "id": "EmailOwnerProto", + "EnterpriseTopazFrontendTeamsLink": { + "id": "EnterpriseTopazFrontendTeamsLink", "properties": { - "email": { + "type": { + "description": "The identifying link type", + "type": "string" + }, + "url": { + "$ref": "SafeUrlProto" + } + }, + "type": "object" + }, + "EnterpriseTopazFrontendTeamsPersonCorePhoneNumber": { + "id": "EnterpriseTopazFrontendTeamsPersonCorePhoneNumber", + "properties": { + "phoneNumber": { + "description": "Phone number in no particular format (as comes from the Focus profile).", + "type": "string" + }, + "phoneUrl": { + "$ref": "SafeUrlProto", + "description": "Phone number URL" + }, + "type": { + "enum": [ + "UNKNOWN", + "MOBILE", + "OFFICE", + "OTHER" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], "type": "string" } }, "type": "object" }, - "EmbedClientItem": { - "description": "Represents an embedded object in an update. This is a wrapper class that can contain a single specific item proto in an extension field. Think of it as a base class like `Message` in Java. Each item proto must declare that it extends this proto: message ExampleObject { option (item_type) = EXAMPLE_OBJECT; extend EmbedClientItem { optional ExampleObject example_object = ; } } See go/es-embeds for details.", - "id": "EmbedClientItem", + "EnterpriseTopazSidekickAgendaEntry": { + "description": "An AgendaEntry, e.g., a Calendar Event.", + "id": "EnterpriseTopazSidekickAgendaEntry", "properties": { - "canonicalId": { - "description": "The canonical ID of the embed. If absent, the canonical ID is equal to the ID; if present, then the canonical ID represents an \"equivalence class\" of embeds which really refer to the same object. (For example, the URLs http://www.foo.com/ and http://foo.com/ refer to the same object) This field may be updated periodically by background processes.", + "agendaItemUrl": { + "description": "URL of the agenda item.", "type": "string" }, - "deepLinkData": { - "$ref": "DeepLinkData", - "description": "Deep-linking data to take the user to the right place in a mobile app. This is only used for preview and attribution. Links that are specific to a given embed type should live on that specific embed's proto by using Link. See http://goto.google.com/mariana-design." + "chronology": { + "description": "The chronology from the present.", + "enum": [ + "STALE", + "ALL_DAY", + "PAST", + "RECENTLY_PAST", + "PRESENT", + "NEAR_FUTURE", + "FUTURE" + ], + "enumDescriptions": [ + "Stale.", + "All day.", + "Past.", + "Recently past.", + "Present.", + "Near future.", + "Future." + ], + "type": "string" }, - "id": { - "description": "The ID of the embed. This corresponds to the schema.org ID, as represented in the ItemScope.id field.", + "creator": { + "$ref": "EnterpriseTopazSidekickPerson", + "description": "Person who created the event." + }, + "currentUserAttendingStatus": { + "description": "Attendance status for the current user making the request. This is a convenience data member in order to avoid figuring out the same by iterating the invitee list above on the caller side.", + "enum": [ + "AWAITING", + "YES", + "NO", + "MAYBE" + ], + "enumDescriptions": [ + "Awaiting for the user to set the status.", + "Attending.", + "Not attending.", + "Tentatively attending." + ], + "type": "string" + }, + "description": { + "description": "Description of the agenda item (i.e., typically, summary in calendar event).", + "type": "string" + }, + "document": { + "description": "Items related to the current AgendaEntry. E.g., related drive/mail/groups documents.", + "items": { + "$ref": "EnterpriseTopazSidekickCommonDocument" + }, + "type": "array" + }, + "endDate": { + "description": "End date \"Friday, August 26\" in the user's timezone.", + "type": "string" + }, + "endTime": { + "description": "End time (HH:mm) in the user's timezone.", + "type": "string" + }, + "endTimeMs": { + "description": "End time in milliseconds", + "format": "int64", + "type": "string" + }, + "eventId": { + "description": "Event id provided by Calendar API.", + "type": "string" + }, + "guestsCanInviteOthers": { + "description": "Whether the guests can invite other guests.", + "type": "boolean" + }, + "guestsCanModify": { + "description": "Whether the guests can modify the event.", + "type": "boolean" + }, + "guestsCanSeeGuests": { + "description": "Whether the guests of the event can be seen. If false, the user is going to be reported as the only attendee to the meeting, even though there may be more attendees.", + "type": "boolean" + }, + "hangoutId": { + "description": "Hangout meeting identifier.", + "type": "string" + }, + "hangoutUrl": { + "description": "Absolute URL for the Hangout meeting.", + "type": "string" + }, + "invitee": { + "description": "People attending the meeting.", + "items": { + "$ref": "EnterpriseTopazSidekickPerson" + }, + "type": "array" + }, + "isAllDay": { + "description": "Whether the entry lasts all day.", + "type": "boolean" + }, + "lastModificationTimeMs": { + "description": "Last time the event was modified.", + "format": "int64", + "type": "string" + }, + "location": { + "description": "Agenda item location.", + "type": "string" + }, + "notifyToUser": { + "description": "Whether this should be notified to the user.", + "type": "boolean" + }, + "otherAttendeesExcluded": { + "description": "Whether guest list is not returned because number of attendees is too large.", + "type": "boolean" + }, + "requesterIsOwner": { + "description": "Whether the requester is the owner of the agenda entry.", + "type": "boolean" + }, + "showFullEventDetailsToUse": { + "description": "Whether the details of this entry should be displayed to the user.", + "type": "boolean" + }, + "startDate": { + "description": "Start date \"Friday, August 26\" in the user's timezone.", + "type": "string" + }, + "startTime": { + "description": "Start time (HH:mm) in the user's timezone.", + "type": "string" + }, + "startTimeMs": { + "description": "Start time in milliseconds.", + "format": "int64", + "type": "string" + }, + "timeZone": { + "description": "User's calendar timezone;", + "type": "string" + }, + "title": { + "description": "Title of the agenda item.", + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickAgendaGroupCardProto": { + "id": "EnterpriseTopazSidekickAgendaGroupCardProto", + "properties": { + "agendaItem": { + "items": { + "$ref": "EnterpriseTopazSidekickAgendaItem" + }, + "type": "array" + }, + "context": { + "$ref": "EnterpriseTopazSidekickAgendaGroupCardProtoContext" + }, + "currentAgendaItem": { + "$ref": "EnterpriseTopazSidekickAgendaItem" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickAgendaGroupCardProtoContext": { + "description": "The context that resulted in the generation of the card.", + "id": "EnterpriseTopazSidekickAgendaGroupCardProtoContext", + "properties": { + "context": { + "description": "User friendly free text that describes the context of the card (e.g. \"Next meeting with Bob\"). This is largely only applicable when the card is generated from a query.", + "type": "string" + }, + "date": { + "description": "Localized free text that describes the dates represented by the card. Currently, the card will only represent a single day.", + "type": "string" + }, + "eventsRestrict": { + "description": "Represents restrictions applied to the events requested in the user's query.", + "enum": [ + "NONE", + "NEXT_MEETING" + ], + "enumDescriptions": [ + "No specific event was requested.", + "The next meeting was requested." + ], + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickAgendaItem": { + "id": "EnterpriseTopazSidekickAgendaItem", + "properties": { + "conflictedGroup": { + "$ref": "EnterpriseTopazSidekickConflictingEventsCardProto" + }, + "gapBefore": { + "$ref": "EnterpriseTopazSidekickGap" + }, + "meeting": { + "$ref": "EnterpriseTopazSidekickAgendaEntry" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickAnswerAnswerList": { + "description": "A list of answers represented as free text.", + "id": "EnterpriseTopazSidekickAnswerAnswerList", + "properties": { + "labeledAnswer": { + "description": "Answers that have a corresponding label.", + "items": { + "$ref": "EnterpriseTopazSidekickAnswerAnswerListLabeledAnswer" + }, + "type": "array" + }, + "type": { + "description": "Answer type.", + "enum": [ + "UNKNOWN", + "PERSON_ADDRESS", + "PERSON_BIRTHDAY", + "PERSON_DEPARTMENT", + "PERSON_DESK_LOCATION", + "PERSON_EMAIL", + "PERSON_JOB_TITLE", + "PERSON_PHONE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickAnswerAnswerListLabeledAnswer": { + "description": "An answer with a corresponding label.", + "id": "EnterpriseTopazSidekickAnswerAnswerListLabeledAnswer", + "properties": { + "answer": { + "description": "The free text answer.", + "type": "string" + }, + "label": { + "description": "A localized label for the answer (e.g. \"Cell phone\" vs \"Desk phone\").", + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickAnswerSuggestedQueryAnswerCard": { + "description": "Contains a list of suggested queries. Allows the user to determine what natural language queries they can ask Cloud Search (e.g. \"what can I search for?\").", + "id": "EnterpriseTopazSidekickAnswerSuggestedQueryAnswerCard", + "properties": { + "suggestedQueryCategory": { + "description": "A list of queries to suggest.", + "items": { + "$ref": "EnterpriseTopazSidekickAnswerSuggestedQueryCategory" + }, + "type": "array" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickAnswerSuggestedQueryCategory": { + "description": "Contains a list of suggested queries for a single category.", + "id": "EnterpriseTopazSidekickAnswerSuggestedQueryCategory", + "properties": { + "category": { + "description": "The query list category.", + "enum": [ + "UNKNOWN", + "CALENDAR", + "DOCUMENT", + "PEOPLE" + ], + "enumDescriptions": [ + "Unknown.", + "Calendar based queries (e.g. \"my agenda for tomorrow\").", + "Document based queries (e.g. \"files shared with me\").", + "People based queries (e.g. \"what is x's email address?\")." + ], + "type": "string" + }, + "isEnabled": { + "description": "Whether this category is enabled.", + "type": "boolean" + }, + "query": { + "description": "List of suggested queries to show the user.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickAssistCardProto": { + "description": "Wrapper proto for the Assist cards.", + "id": "EnterpriseTopazSidekickAssistCardProto", + "properties": { + "agendaGroupCardProto": { + "$ref": "EnterpriseTopazSidekickAgendaGroupCardProto", + "description": "Agenda group card." + }, + "cardMetadata": { + "$ref": "EnterpriseTopazSidekickCardMetadata", + "description": "Card metadata such as chronology and render mode of the card." + }, + "cardType": { + "description": "Card type.", + "enum": [ + "UNKNOWN_TYPE", + "AGENDA", + "CHANGELISTS", + "CONFLICTING_MEETINGS", + "CREATE_NOTES_FOR_MEETING", + "CREATE_NOTES_FOR_MEETING_REQUEST", + "CUSTOMER_NEWS", + "FIND_MEETING_TIME", + "NEXT_MEETING", + "PERSONALIZED_DOCS", + "TRENDING_DOCS", + "UPCOMING_TRIP", + "SUMMARY", + "MEETINGS", + "HOMEPAGE", + "SHARE_MEETING_DOCS", + "DISCOVER_PEOPLE", + "HOMEPAGE_V3", + "AGENDA_GROUP", + "WORK_IN_PROGRESS", + "GET_AND_KEEP_AHEAD", + "GENERIC_ANSWER_CARD", + "THIRD_PARTY_ANSWER_CARD", + "DOMAIN_TRENDING_DOCS", + "TEAM_TRENDING_DOCS", + "DOCUMENT_LIST_ANSWER_CARD", + "SUGGESTED_QUERY_ANSWER_CARD", + "PERSON_ANSWER_CARD", + "RELATED_PEOPLE_ANSWER_CARD", + "PERSON_KNOWLEDGE_CARD", + "PEOPLE_SEARCH_PROMOTION_CARD" + ], + "enumDeprecated": [ + false, + true, + true, + true, + true, + true, + true, + false, + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + false, + false, + false, + false, + false, + true, + true, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "The default type, an unknown card type.", + "The user's agenda for the day.", + "Changelists.", + "Any group of meetings for the day that are overlapping.", + "Create notes for a meeting specified in the request.", + "Create notes for meeting query.", + "News about your SFDC customers.", + "Find a time for two people to meet.", + "The user's next non-declined meeting.", + "Important documents for you since you have viewed them in the last month and there's some action going on.", + "Documents that are trending in your company. A TRENDING_DOCS card can be of two types: TRENDING_IN_COLLABORATORS (i.e., Stay in the Loop) and TRENDING_IN_DOMAIN (i.e., Popular Content). Use DOMAIN_TRENDING_DOCS/TEAM_TRENDING_DOCS instead.", + "An upcoming trip with all trip information along with calendar events in the destination timezone.", + "The Morning/Evening Summary Card for the next working day.", + "A meeting. When requesting meetings, the service will return a MEETING card for each meeting the user has in his agenda.", + "All cards related to the homepage (agenda, conflicting-meetings, summary, etc...). This type should no longer be used. Use HOMEPAGE_V3 instead.", + "A card to with specifics to share meeting documents with all attendees.", + "Represents a set of users that the requesting user has low affinity with.", + "All cards related to the homepage-v3 (agenda-group, WIP, etc...)", + "A group of agenda-events (meeting, conflicts)", + "The documents that you were recently working on.", + "(v3) The \"get and keep ahead\" card for today and tomorrow", + "Generic answer card.", + "Third party answer card.", + "Documents that are trending in your company/domain (i.e., Popular Content).", + "Documents that are trending in your team (i.e., Stay in the Loop).", + "Documents that match the user's query (e.g. sheets shared with me).", + "A help card that provides examples of queries the user can ask.", + "Answer card for a single person (e.g. what is x's phone number).", + "Answer card for a list of people related to the person that is the subject of the query (e.g. who reports to x).", + "Knowledge card for a single person and their related people.", + "People Search promotion card." + ], + "type": "string" + }, + "conflictingMeetingsCard": { + "$ref": "EnterpriseTopazSidekickConflictingEventsCardProto", + "deprecated": true, + "description": "Conflicting events card." + }, + "documentListCard": { + "$ref": "EnterpriseTopazSidekickDocumentPerCategoryList", + "description": "Answer card for documents that are applicable to the current query." + }, + "documentsWithMentions": { + "$ref": "EnterpriseTopazSidekickDocumentPerCategoryList", + "deprecated": true, + "description": "Documents with mentions." + }, + "findMeetingTimeCard": { + "$ref": "EnterpriseTopazSidekickFindMeetingTimeCardProto", + "description": "Find meeting time card." + }, + "genericAnswerCard": { + "$ref": "EnterpriseTopazSidekickGenericAnswerCard", + "description": "Generic answer card." + }, + "getAndKeepAheadCard": { + "$ref": "EnterpriseTopazSidekickGetAndKeepAheadCardProto", + "description": "Get and keep ahead card." + }, + "meeting": { + "$ref": "EnterpriseTopazSidekickAgendaEntry", + "deprecated": true, + "description": "Meeting card." + }, + "meetingNotesCard": { + "$ref": "EnterpriseTopazSidekickMeetingNotesCardProto", + "description": "Meeting notes card." + }, + "meetingNotesCardRequest": { + "$ref": "EnterpriseTopazSidekickMeetingNotesCardRequest", + "description": "Request for meeting notes card." + }, + "peopleDisambiguationCard": { + "$ref": "EnterpriseTopazSidekickPeopleDisambiguationCard", + "description": "The people disambiguation card." + }, + "peoplePromotionCard": { + "$ref": "PeoplePromotionCard", + "description": "People Search promotion card." + }, + "personAnswerCard": { + "$ref": "EnterpriseTopazSidekickPeopleAnswerPersonAnswerCard", + "description": "Answer card that represents a single person." + }, + "personProfileCard": { + "$ref": "EnterpriseTopazSidekickPersonProfileCard", + "description": "Full profile card." + }, + "personalizedDocsCard": { + "$ref": "EnterpriseTopazSidekickPersonalizedDocsCardProto", + "deprecated": true, + "description": "Card with recommended documents for the user." + }, + "relatedPeopleAnswerCard": { + "$ref": "EnterpriseTopazSidekickPeopleAnswerRelatedPeopleAnswerCard", + "description": "Answer card that represents a list of people related to a person." + }, + "shareMeetingDocsCard": { + "$ref": "EnterpriseTopazSidekickShareMeetingDocsCardProto", + "deprecated": true, + "description": "Sahre meeting docs card." + }, + "sharedDocuments": { + "$ref": "EnterpriseTopazSidekickDocumentPerCategoryList", + "deprecated": true, + "description": "Shared documents." + }, + "suggestedQueryAnswerCard": { + "$ref": "EnterpriseTopazSidekickAnswerSuggestedQueryAnswerCard", + "description": "Answer card for what natural language queries the user can ask." + }, + "thirdPartyAnswerCard": { + "$ref": "ThirdPartyGenericCard", + "description": "Third party answer cards." + }, + "workInProgressCardProto": { + "$ref": "EnterpriseTopazSidekickRecentDocumentsCardProto", + "description": "Work In Progress card." + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickCardMetadata": { + "description": "Card metadata.", + "id": "EnterpriseTopazSidekickCardMetadata", + "properties": { + "cardCategory": { + "description": "Declares a preference for how this card should be packed in MSCR. All cards in a response must correspond to a single category. As a result, cards may be dropped from the response if this field is set. Any card that does not match the category of the card with the highest priority in the response will be dropped.", + "enum": [ + "DEFAULT", + "ANSWER", + "KNOWLEDGE", + "HOMEPAGE" + ], + "enumDescriptions": [ + "Let MSCR decide how this card should be packed. Most cards should choose this type. This type should largely be considered equivalent to ANSWER. However, this is not guaranteed to be the case as the request to MSCR may override the static configuration.", + "This card should be rendered as an answer card.", + "This card should be rendered as a knowledge card (a non-organic result).", + "This card should be rendered in the Homepage." + ], + "type": "string" + }, + "cardId": { + "description": "An ID to identify the card and match actions to it. Be thoughtful of new card IDs since actions will be associated to that ID. E.g., if two card IDs collide, the system will think that the actions have been applied to the same card. Similarly, if EAS can return multiple cards of the same type (e.g., Meetings), ensure that the card_id identifies a given instance of the card so that, e.g., dismissals only affect the dismissed card as opposed to affecting all meeting cards.", + "type": "string" + }, + "chronology": { + "description": "Chronology.", + "enum": [ + "UNKNOWN", + "PAST", + "RECENTLY_PAST", + "PRESENT", + "NEAR_FUTURE", + "FUTURE" + ], + "enumDescriptions": [ + "Unknown chronology (default).", + "Past.", + "Recently past.", + "Present.", + "Near future.", + "Future." + ], + "type": "string" + }, + "debugInfo": { + "description": "Debug info (only reported if request's debug_level > 0).", + "type": "string" + }, + "nlpMetadata": { + "$ref": "EnterpriseTopazSidekickNlpMetadata", + "description": "Information about the NLP done to get the card." + }, + "rankingParams": { + "$ref": "EnterpriseTopazSidekickRankingParams", + "description": "Ranking params." + }, + "renderMode": { + "description": "Render mode.", + "enum": [ + "UNKNOWN_RENDER", + "COLLAPSED", + "EXPANDED" + ], + "enumDescriptions": [ + "Unknown mode (default).", + "Collapsed.", + "Expanded." + ], + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickCommonDebugInfo": { + "description": "Container of debugging information in all object levels. Extend as needed.", + "id": "EnterpriseTopazSidekickCommonDebugInfo", + "properties": { + "message": { + "description": "Debug message.", + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickCommonDocument": { + "description": "Representation of a document. NEXT_TAG: 15", + "id": "EnterpriseTopazSidekickCommonDocument", + "properties": { + "accessType": { + "description": "Access type, i.e., whether the user has access to the document or not.", + "enum": [ + "UNKNOWN_ACCESS", + "ALLOWED", + "NOT_ALLOWED" + ], + "enumDescriptions": [ + "Unknown access type.", + "Access allowed.", + "Access not allowed." + ], + "type": "string" + }, + "debugInfo": { + "$ref": "EnterpriseTopazSidekickCommonDebugInfo", + "description": "Information for debugging." + }, + "documentId": { + "description": "Document id.", + "type": "string" + }, + "driveDocumentMetadata": { + "$ref": "EnterpriseTopazSidekickCommonDocumentDriveDocumentMetadata", + "description": "Drive document metadata." + }, + "genericUrl": { + "description": "Generic Drive-based url in the format of drive.google.com/open to be used for deeplink", + "type": "string" + }, + "justification": { + "$ref": "EnterpriseTopazSidekickCommonDocumentJustification", + "description": "Justification on why the document is selected." + }, + "mimeType": { + "description": "MIME type", "type": "string" }, "provenance": { - "$ref": "Provenance", - "description": "The provenance of the embed, populated when the embed originated from a web fetch. The provenance captures information about the web page the embed had originated, like the URL that was retrieved and the retrieved URL's canonical form. This is useful in the case where the URL shared by the URL redirects (e.g., in the case of a shortened URL)." - }, - "renderId": { - "description": "The ID used to identify the embed during rendering. This field will match ID, if set, otherwise it will be the ID of the parent activity. This field is only populated on the server for client use and is not persisted to storage.", + "deprecated": true, + "description": "Document provenance.", + "enum": [ + "UNKNOWN_PROVENANCE", + "CALENDAR_DESCRIPTION", + "CALENDAR_ATTACHMENT", + "MINED", + "CALENDAR_ASSIST_ATTACHMENT" + ], + "enumDescriptions": [ + "Unknown provenance.", + "Calendar event description.", + "Calendar event attachment.", + "Mined (extracted by some offline/online analysis).", + "Attachment created by enterprise assist." + ], "type": "string" }, - "signature": { - "description": "Signature of the embed, used for verification.", + "reason": { + "deprecated": true, + "description": "Justification of why this document is being returned.", + "enum": [ + "UNKNOWN", + "TRENDING_IN_COLLABORATORS", + "TRENDING_IN_DOMAIN", + "FREQUENTLY_VIEWED", + "FREQUENTLY_EDITED", + "NEW_UPDATES", + "NEW_COMMENTS", + "EVENT_DESCRIPTION", + "EVENT_ATTACHMENT", + "EVENT_METADATA_ATTACHMENT", + "MINED_DOCUMENT", + "NEW_MENTIONS", + "NEW_SHARES" + ], + "enumDescriptions": [ + "Unknown justification.", + "Popular documents within collaborators.", + "Popular documents within the domain.", + "Documents being reviewed frequently by the current user .", + "Documents being edited frequently by the current user .", + "Documents updated since user's last visit.", + "Documents that receive comments since user's last visit.", + "Documents in the calendar event description.", + "Documents in the calendar event attachments section.", + "Documents attached in calendar event metadata instead of the attachment section. Event metadata is not visible to the final user. Enterprise assist uses this metadata to store auto-generated documents such as meeting notes.", + "Documents mined, and so, probably related to the request context. For example, this category includes documents related to a meeting.", + "Documents that contains mentions of the user.", + "Documents that are shared with the user." + ], "type": "string" }, - "transientData": { - "$ref": "TransientData", - "description": "Transient generic data that will not be saved on the server." + "snippet": { + "description": "A sampling of the text from the document.", + "type": "string" + }, + "thumbnailUrl": { + "description": "Thumbnail URL.", + "type": "string" + }, + "title": { + "description": "Title of the document.", + "type": "string" }, "type": { - "description": "The first value in `type` determines which extension field will be set. When creating an EmbedClientItem, you only need to set the first (primary) type in this field. When the server receives the item, it will populate the full type list using the parent annotations in the ItemType enum.", + "description": "Type of the document.", + "enum": [ + "UNKNOWN", + "DOCUMENT", + "PRESENTATION", + "SPREADSHEET", + "PDF", + "IMAGE", + "BINARY_BLOB", + "FUSION_TABLE", + "FOLDER", + "DRAWING", + "VIDEO", + "FORM", + "LINK_URL", + "LINK_GO", + "LINK_GOO_GL", + "LINK_BIT_LY", + "LINK_GMAIL", + "LINK_MAILTO", + "VIDEO_YOUTUBE", + "VIDEO_LIVE", + "GROUPS", + "NEWS", + "SITES", + "HANGOUT", + "AUDIO", + "MS_WORD", + "MS_POWERPOINT", + "MS_EXCEL", + "MS_OUTLOOK" + ], + "enumDescriptions": [ + "If the type is unknown or not represented in this enum.", + "Drive document types Writely, Word, etc.", + "Presently, PowerPoint, etc.", + "Trix, Excel, etc.", + "File types for Gdrive objects are below. PDF.", + "Image.", + "Fall-back for unknown Gdrive types.", + "Fusion table.", + "Folder.", + "Drawing.", + "Video.", + "Form.", + "Link formats uncategorized URL links", + "meaningful links that should be renderred specifically", + "Link to goo.gl.", + "Link to bit_ly.", + "Link to Gmail.", + "Mailto link.", + "Videos Youtube videos.", + "Live streams (e.g., liveplayer.googleplex.com)", + "Other types. Google Groups.", + "Google News.", + "Google Sites.", + "Google Hangout.", + "Audio files.", + "Microsoft-specific file types.", + "", + "", + "" + ], + "type": "string" + }, + "url": { + "description": "Absolute URL of the document.", + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickCommonDocumentDriveDocumentMetadata": { + "description": "Meta data for drive documents.", + "id": "EnterpriseTopazSidekickCommonDocumentDriveDocumentMetadata", + "properties": { + "documentId": { + "deprecated": true, + "description": "The drive document cosmo id. Client could use the id to build a URL to open a document. Please use Document.document_id.", + "type": "string" + }, + "isPrivate": { + "description": "Additional field to identify whether a document is private since scope set to LIMITED can mean both that the doc is private or that it's shared with others. is_private indicates whether the doc is not shared with anyone except for the owner.", + "type": "boolean" + }, + "lastCommentTimeMs": { + "description": "Timestamp of the most recent comment added to the document in milliseconds since epoch.", + "format": "uint64", + "type": "string" + }, + "lastEditTimeMs": { + "description": "Timestamp of the most recent edit from the current user in milliseconds since epoch.", + "format": "uint64", + "type": "string" + }, + "lastModificationTimeMillis": { + "description": "Last modification time of the document (independent of the user that modified it).", + "format": "int64", + "type": "string" + }, + "lastUpdatedTimeMs": { + "description": "Timestamp of the last updated time of the document in milliseconds since epoch.", + "format": "uint64", + "type": "string" + }, + "lastViewTimeMs": { + "description": "Timestamp of the most recent view from the current user in milliseconds since epoch.", + "format": "uint64", + "type": "string" + }, + "owner": { + "$ref": "EnterpriseTopazSidekickCommonPerson", + "description": "The owner of the document." + }, + "scope": { + "description": "ACL scope of the document which identifies the sharing status of the doc (e.g., limited, shared with link, team drive, ...).", + "enum": [ + "UNKNOWN_DOCUMENT_SCOPE", + "LIMITED", + "DASHER_DOMAIN_WITH_LINK", + "DASHER_DOMAIN", + "PUBLIC_WITH_LINK", + "PUBLIC", + "TEAM_DRIVE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickCommonDocumentJustification": { + "description": "Justification of why we are reporting the document.", + "id": "EnterpriseTopazSidekickCommonDocumentJustification", + "properties": { + "justification": { + "description": "A locale aware message that explains why this document was selected.", + "type": "string" + }, + "reason": { + "description": "Reason on why the document is selected. Populate for trending documents.", + "enum": [ + "UNKNOWN", + "TRENDING_IN_COLLABORATORS", + "TRENDING_IN_DOMAIN", + "FREQUENTLY_VIEWED", + "FREQUENTLY_EDITED", + "NEW_UPDATES", + "NEW_COMMENTS", + "EVENT_DESCRIPTION", + "EVENT_ATTACHMENT", + "EVENT_METADATA_ATTACHMENT", + "MINED_DOCUMENT", + "NEW_MENTIONS", + "NEW_SHARES" + ], + "enumDescriptions": [ + "Unknown justification.", + "Popular documents within collaborators.", + "Popular documents within the domain.", + "Documents being reviewed frequently by the current user .", + "Documents being edited frequently by the current user .", + "Documents updated since user's last visit.", + "Documents that receive comments since user's last visit.", + "Documents in the calendar event description.", + "Documents in the calendar event attachments section.", + "Documents attached in calendar event metadata instead of the attachment section. Event metadata is not visible to the final user. Enterprise assist uses this metadata to store auto-generated documents such as meeting notes.", + "Documents mined, and so, probably related to the request context. For example, this category includes documents related to a meeting.", + "Documents that contains mentions of the user.", + "Documents that are shared with the user." + ], + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickCommonPerson": { + "description": "Common representation of a person.", + "id": "EnterpriseTopazSidekickCommonPerson", + "properties": { + "birthday": { + "$ref": "EnterpriseTopazSidekickCommonPersonBirthday", + "description": "The birthday." + }, + "cellPhone": { + "description": "Cell phone number.", + "type": "string" + }, + "department": { + "description": "The department the person works in (e.g. Engineering).", + "type": "string" + }, + "deskLocation": { + "description": "Desk location (e.g. US-MTV-PR55-5-5B1I).", + "type": "string" + }, + "deskPhone": { + "description": "Work desk phone number.", + "type": "string" + }, + "displayName": { + "description": "The full name.", + "type": "string" + }, + "email": { + "description": "Email.", + "type": "string" + }, + "familyName": { + "description": "The last name.", + "type": "string" + }, + "fullAddress": { + "description": "The fully formatted address (e.g. 1255 Pear Avenue, Mountain View 94043, United States).", + "type": "string" + }, + "gaiaId": { + "deprecated": true, + "description": "This field is deprecated. The obfuscated_id should be used instead.", + "format": "int64", + "type": "string" + }, + "givenName": { + "description": "The first name.", + "type": "string" + }, + "jobTitle": { + "description": "The person's job title (e.g. Software Engineer).", + "type": "string" + }, + "manager": { + "$ref": "EnterpriseTopazSidekickCommonPerson", + "description": "The manager." + }, + "obfuscatedId": { + "description": "The obfuscated GAIA ID.", + "type": "string" + }, + "photoUrl": { + "description": "The URL for the Focus profile picture.", + "type": "string" + }, + "streetAddress": { + "description": "The street address (e.g. 1255 Pear Avenue).", + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickCommonPersonBirthday": { + "id": "EnterpriseTopazSidekickCommonPersonBirthday", + "properties": { + "value": { + "description": "Unstructured birthday.", + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickConflictingEventsCardProto": { + "description": "Conflicting meetings card proto.", + "id": "EnterpriseTopazSidekickConflictingEventsCardProto", + "properties": { + "conflictingEvent": { + "description": "All the events that conflict with main_event.", + "items": { + "$ref": "EnterpriseTopazSidekickAgendaEntry" + }, + "type": "array" + }, + "mainEvent": { + "$ref": "EnterpriseTopazSidekickAgendaEntry", + "description": "The event identified as being the most important." + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickDocumentGroup": { + "description": "Represents a mapping between a document type and its corresponding documents. Use for Work in Progress card in v1 homepage.", + "id": "EnterpriseTopazSidekickDocumentGroup", + "properties": { + "groupType": { + "deprecated": true, + "description": "Document group type", + "enum": [ + "UNKNOWN_TYPE", + "ALL" + ], + "enumDescriptions": [ + "Unknown type.", + "A mix of all the document types." + ], + "type": "string" + }, + "personalizedDocument": { + "description": "The list of corresponding documents.", + "items": { + "$ref": "EnterpriseTopazSidekickCommonDocument" + }, + "type": "array" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickDocumentPerCategoryList": { + "id": "EnterpriseTopazSidekickDocumentPerCategoryList", + "properties": { + "documents": { + "items": { + "$ref": "EnterpriseTopazSidekickDocumentPerCategoryListDocumentPerCategoryListEntry" + }, + "type": "array" + }, + "helpMessage": { + "description": "Localized message explaining how the documents were derived (e.g. from the last 30 days activity). This field is optional.", + "type": "string" + }, + "listType": { + "enum": [ + "UNKNOWN_LIST_TYPE", + "MENTIONS", + "SHARES", + "NEEDS_ATTENTION", + "VIEWS", + "EDITS" + ], + "enumDescriptions": [ + "", + "All documents in the list correspond to one of the mention categories.", + "All documents in the list correspond to one of the share categories.", + "A mixture of document categories that correspond to documents that need the users attention (e.g. documents that have been explicitly shared with the user but have not been viewed and documents where the user was mentioned but has not replied).", + "All documents in the list correspond to one of the view categories.", + "All documents in the list correspond to one of the edit categories." + ], + "type": "string" + }, + "listTypeDescription": { + "description": "Description of the types of documents present in the list.", + "type": "string" + }, + "responseMessage": { + "description": "Response message in case no documents are present in the card.", + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickDocumentPerCategoryListDocumentPerCategoryListEntry": { + "id": "EnterpriseTopazSidekickDocumentPerCategoryListDocumentPerCategoryListEntry", + "properties": { + "category": { + "enum": [ + "UNKNOWN_DOCUMENT", + "ACTIONABLE", + "VIEWED", + "REPLIED", + "MENTION_VIEWED", + "MENTION_REPLIED", + "MENTION_NOT_VIEWED", + "SHARED_AND_VIEWED", + "SHARED_NOT_VIEWED", + "EDITED" + ], + "enumDeprecated": [ + false, + true, + false, + true, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "", + "", + "", + "", + "Mention categories. The mention has been viewed by the user, but the user has not replied.", + "The user has replied to the mention.", + "The mention has not been viewed by the user.", + "Share categories. Consists of documents that have been explicitly shared with the user. Document has been viewed.", + "Document has not been viewed.", + "Document has been edited." + ], + "type": "string" + }, + "document": { + "$ref": "EnterpriseTopazSidekickCommonDocument" + }, + "rationale": { + "description": "Reason this document was selected.", + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickFindMeetingTimeCardProto": { + "description": "Response to find meeting time among a set of people.", + "id": "EnterpriseTopazSidekickFindMeetingTimeCardProto", + "properties": { + "commonAvailableTimeSlots": { + "description": "Slots when all attendees have availability.", + "items": { + "$ref": "EnterpriseTopazSidekickTimeSlot" + }, + "type": "array" + }, + "invitees": { + "description": "Invitees to the event.", + "items": { + "$ref": "EnterpriseTopazSidekickPerson" + }, + "type": "array" + }, + "requester": { + "$ref": "EnterpriseTopazSidekickPerson", + "description": "Requester." + }, + "scheduledMeeting": { + "$ref": "EnterpriseTopazSidekickScheduledMeeting", + "description": "Details about the scheduled meeting, if one exists." + }, + "skippedInvitees": { + "description": "Invitees that have been skipped in the computation, most likely because they are groups.", + "items": { + "$ref": "EnterpriseTopazSidekickPerson" + }, + "type": "array" + }, + "timeBoundaries": { + "$ref": "EnterpriseTopazSidekickTimeSlot", + "description": "Min and max timestamp used to find a common available timeslot." + }, + "timezoneId": { + "description": "Timezone ID.", + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickGap": { + "id": "EnterpriseTopazSidekickGap", + "properties": { + "displayRemainingTime": { + "description": "Localized time string in the format: 1 hour 15 minutes", + "type": "string" + }, + "endTime": { + "description": "Localized time string in the format:(Locale CZ) 8:30 odp.", + "type": "string" + }, + "endTimeMs": { + "format": "uint64", + "type": "string" + }, + "remainingTime": { + "format": "google-duration", + "type": "string" + }, + "startTime": { + "description": "Localized time string in the format:(Locale CZ) 8:30 odp.", + "type": "string" + }, + "startTimeMs": { + "format": "uint64", + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickGenericAnswerCard": { + "id": "EnterpriseTopazSidekickGenericAnswerCard", + "properties": { + "answer": { + "description": "The answer.", + "type": "string" + }, + "title": { + "description": "Title or header of the card.", + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickGetAndKeepAheadCardProto": { + "description": "Get and keep ahead card", + "id": "EnterpriseTopazSidekickGetAndKeepAheadCardProto", + "properties": { + "declinedEvents": { + "$ref": "EnterpriseTopazSidekickGetAndKeepAheadCardProtoDeclinedEvents" + }, + "mentionedDocuments": { + "$ref": "EnterpriseTopazSidekickDocumentPerCategoryList" + }, + "sharedDocuments": { + "$ref": "EnterpriseTopazSidekickDocumentPerCategoryList" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickGetAndKeepAheadCardProtoDeclinedEvents": { + "description": "A list of events where all guests declined.", + "id": "EnterpriseTopazSidekickGetAndKeepAheadCardProtoDeclinedEvents", + "properties": { + "events": { + "items": { + "$ref": "EnterpriseTopazSidekickAgendaEntry" + }, + "type": "array" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickMeetingNotesCardError": { + "description": "Errors in the creation of meeting notes.", + "id": "EnterpriseTopazSidekickMeetingNotesCardError", + "properties": { + "description": { + "description": "The description of the reason why create-meeting-notes failed.", + "type": "string" + }, + "event": { + "$ref": "EnterpriseTopazSidekickAgendaEntry", + "description": "The event to request meeting notes creation" + }, + "reason": { + "description": "The reason why create-meeting-notes failed.", + "enum": [ + "NONE", + "NOT_OWNER", + "UNKNOWN" + ], + "enumDescriptions": [ + "No reason (default value).", + "The user is not an owner.", + "Unknown reason." + ], + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickMeetingNotesCardProto": { + "description": "Information about the meeting notes created.", + "id": "EnterpriseTopazSidekickMeetingNotesCardProto", + "properties": { + "event": { + "$ref": "EnterpriseTopazSidekickAgendaEntry", + "description": "The event to request meeting notes creation." + }, + "fileId": { + "description": "Google Drive ID (a.k.a. resource ID) of the file.", + "type": "string" + }, + "title": { + "description": "Title we want to show for meeting notes in the answer card", + "type": "string" + }, + "url": { + "description": "New URL.", + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickMeetingNotesCardRequest": { + "description": "Meeting notes card request.", + "id": "EnterpriseTopazSidekickMeetingNotesCardRequest", + "properties": { + "canCreateFor": { + "description": "Who are the meeting notes created for.", "items": { "enum": [ "UNKNOWN", - "ACTION_V2", - "ADD_ACTION_V2", - "AGGREGATE_RATING_V2", - "ARTICLE_V2", - "ASSESS_ACTION_V2", - "AUDIO_OBJECT_V2", - "BASIC_INTERACTION_V2", - "BLOG_POSTING_V2", - "BLOG_V2", - "BOOK_V2", - "BUY_ACTION_V2", - "CHECK_IN_ACTION_V2", - "CHECKIN_V2", - "COLLEXION_V2", - "COMMENT_ACTION_V2", - "COMMENT_V2", - "COMMUNICATE_ACTION_V2", - "CONSUME_ACTION_V2", - "CREATE_ACTION_V2", - "CREATIVE_WORK_V2", - "DISCOVER_ACTION_V2", - "DOCUMENT_OBJECT_V2", - "DRAWING_OBJECT_V2", - "DRIVE_OBJECT_V2", - "EMOTISHARE_V2", - "ENTRY_POINT_V2", - "EVENT_TIME_V2", - "EVENT_V2", - "FILE_OBJECT_V2", - "FIND_ACTION_V2", - "FINANCIAL_QUOTE_V2", - "FORM_OBJECT_V2", - "GEO_COORDINATES_V2", - "GOOGLE_OFFER_V2", - "HANGOUT_CHAT_MESSAGE", - "HANGOUT_QUOTE", - "HANGOUT_V2", - "HOA_PLUS_EVENT_V2", - "IMAGE_OBJECT_V2", - "INTERACT_ACTION_V2", - "INTERACTION_V2", - "LISTEN_ACTION_V2", - "LOCAL_BUSINESS_V2", - "LOCAL_PLUS_PHOTO_ALBUM_V2", - "MAGAZINE_V2", - "MEDIA_OBJECT_V2", - "MOBILE_APPLICATION_V2", - "MOVIE_V2", - "MUSIC_ALBUM_V2", - "MUSIC_GROUP_V2", - "MUSIC_PLAYLIST_V2", - "MUSIC_RECORDING_V2", - "NEWS_ARTICLE_V2", - "OFFER_V2", - "ORGANIZATION_V2", - "ORGANIZE_ACTION_V2", - "PERSON_V2", - "PLACE_REVIEW_V2", - "PLACE_V2", - "PLAN_ACTION_V2", - "PLAY_MUSIC_ALBUM_V2", - "PLAY_MUSIC_TRACK_V2", - "PLAY_OBJECT_V2", - "PLUS_AUDIO_V2", - "PLUS_EVENT_V2", - "PLUS_MEDIA_COLLECTION_V2", - "PLUS_MEDIA_OBJECT_V2", - "PLUS_PAGE_V2", - "PLUS_PHOTOS_ADDED_TO_COLLECTION_V2", - "PLUS_PHOTO_ALBUM_V2", - "PLUS_PHOTO_COLLECTION_V2", - "PLUS_PHOTO_V2", - "PLUS_POST_V2", - "PLUS_RESHARE_V2", - "PLUS_SOFTWARE_APPLICATION_V2", - "POLL_OPTION_V2", - "POLL_V2", - "POSTAL_ADDRESS_V2", - "PRESENTATION_OBJECT_V2", - "PRODUCT_REVIEW_V2", - "RATING_V2", - "REACT_ACTION_V2", - "RESERVATION_V2", - "RESERVE_ACTION_V2", - "REVIEW_V2", - "REVIEW_ACTION_V2", - "SOFTWARE_APPLICATION_V2", - "SPREADSHEET_OBJECT_V2", - "SQUARE_INVITE_V2", - "SQUARE_V2", - "STICKER_V2", - "STORY_V2", - "THING_V2", - "TRADE_ACTION_V2", - "DEPRECATED_TOUR_OBJECT_V2", - "TV_EPISODE_V2", - "TV_SERIES_V2", - "UPDATE_ACTION_V2", - "VIEW_ACTION_V2", - "VIDEO_OBJECT_V2", - "VIDEO_GALLERY_V2", - "WANT_ACTION_V2", - "WEB_PAGE_V2", - "WRITE_ACTION_V2", - "YOUTUBE_CHANNEL_V2", - "GOOGLE_USER_PHOTO_V2", - "GOOGLE_USER_PHOTO_ALBUM", - "GOOGLE_PHOTO_RECIPE", - "THING", - "CREATIVE_WORK", - "EVENT", - "INTANGIBLE", - "ORGANIZATION", - "PERSON", - "PLACE", - "PRODUCT", - "ARTICLE", - "BLOG_POSTING", - "NEWS_ARTICLE", - "SCHOLARLY_ARTICLE", - "BLOG", - "BOOK", - "COMMENT", - "ITEM_LIST", - "MAP", - "MEDIA_OBJECT", - "AUDIO_OBJECT", - "IMAGE_OBJECT", - "MUSIC_VIDEO_OBJECT", - "VIDEO_OBJECT", - "MOVIE", - "MUSIC_PLAYLIST", - "MUSIC_ALBUM", - "MUSIC_RECORDING", - "PAINTING", - "PHOTOGRAPH", - "RECIPE", - "REVIEW", - "SCULPTURE", - "SOFTWARE_APPLICATION", - "MOBILE_APPLICATION", - "WEB_APPLICATION", - "TV_EPISODE", - "TV_SEASON", - "TV_SERIES", - "WEB_PAGE", - "ABOUT_PAGE", - "CHECKOUT_PAGE", - "COLLECTION_PAGE", - "IMAGE_GALLERY", - "VIDEO_GALLERY", - "CONTACT_PAGE", - "ITEM_PAGE", - "PROFILE_PAGE", - "SEARCH_RESULTS_PAGE", - "WEB_PAGE_ELEMENT", - "SITE_NAVIGATION_ELEMENT", - "TABLE", - "WP_AD_BLOCK", - "WP_FOOTER", - "WP_HEADER", - "WP_SIDEBAR", - "APP_INVITE", - "EMOTISHARE", - "BUSINESS_EVENT", - "CHILDRENS_EVENT", - "COMEDY_EVENT", - "DANCE_EVENT", - "EDUCATION_EVENT", - "FESTIVAL", - "FOOD_EVENT", - "LITERARY_EVENT", - "MUSIC_EVENT", - "SALE_EVENT", - "SOCIAL_EVENT", - "SPORTS_EVENT", - "THEATER_EVENT", - "VISUAL_ARTS_EVENT", - "RESERVATION", - "TRAVEL_EVENT", - "CORPORATION", - "EDUCATIONAL_ORGANIZATION", - "COLLEGE_OR_UNIVERSITY", - "ELEMENTARY_SCHOOL", - "HIGH_SCHOOL", - "MIDDLE_SCHOOL", - "PRESCHOOL", - "SCHOOL", - "GOVERNMENT_ORGANIZATION", - "LOCAL_BUSINESS", - "ANIMAL_SHELTER", - "AUTOMOTIVE_BUSINESS", - "AUTO_BODY_SHOP", - "AUTO_DEALER", - "AUTO_PARTS_STORE", - "AUTO_RENTAL", - "AUTO_REPAIR", - "AUTO_WASH", - "GAS_STATION", - "MOTORCYCLE_DEALER", - "MOTORCYCLE_REPAIR", - "CHILD_CARE", - "DRY_CLEANING_OR_LAUNDRY", - "EMERGENCY_SERVICE", - "FIRE_STATION", - "HOSPITAL", - "POLICE_STATION", - "EMPLOYMENT_AGENGY", - "ENTERTAINMENT_BUSINESS", - "ADULT_ENTERTAINMENT", - "AMUSEMENT_PARK", - "ART_GALLERY", - "CASINO", - "COMEDY_CLUB", - "MOVIE_THEATER", - "NIGHT_CLUB", - "FINANCIAL_SERVICE", - "ACCOUNTING_SERVICE", - "AUTOMATED_TELLER", - "BANK_OR_CREDIT_UNION", - "INSURANCE_AGENCY", - "FOOD_ESTABLISHMENT", - "BAKERY", - "BAR_OR_PUB", - "BREWERY", - "CAFE_OR_COFFEE_SHOP", - "FAST_FOOD_RESTAURANT", - "ICE_CREAM_SHOP", - "RESTAURANT", - "WINERY", - "GOVERNMENT_OFFICE", - "POST_OFFICE", - "HEALTH_AND_BEAUTY_BUSINESS", - "BEAUTY_SALON", - "DAY_SPA", - "HAIR_SALON", - "HEALTH_CLUB", - "NAIL_SALON", - "TATTOO_PARLOR", - "HOME_AND_CONSTRUCTION_BUSINESS", - "ELECTRICIAN", - "GENERAL_CONTRACTOR", - "HVAC_BUSINESS", - "HOUSE_PAINTER", - "LOCKSMITH", - "MOVING_COMPANY", - "PLUMBER", - "ROOFING_CONTRACTOR", - "INTERNET_CAFE", - "LIBRARY", - "LODGING_BUSINESS", - "BED_AND_BREAKFAST", - "HOSTEL", - "HOTEL", - "MOTEL", - "MEDICAL_ORGANIZATION", - "DENTIST", - "MEDICAL_CLINIC", - "OPTICIAN", - "PHARMACY", - "PHYSICIAN", - "VETERINARY_CARE", - "PROFESSIONAL_SERVICE", - "ATTORNEY", - "NOTARY", - "RADIO_STATION", - "REAL_ESTATE_AGENT", - "RECYCLING_CENTER", - "SELF_STORAGE", - "SHOPPING_CENTER", - "SPORTS_ACTIVITY_LOCATION", - "BOWLING_ALLEY", - "EXERCISE_GYM", - "GOLF_COURSE", - "PUBLIC_SWIMMING_POOL", - "SKI_RESORT", - "SPORTS_CLUB", - "STADIUM_OR_ARENA", - "TENNIS_COMPLEX", - "STORE", - "BIKE_STORE", - "BOOK_STORE", - "CLOTHING_STORE", - "COMPUTER_STORE", - "CONVENIENCE_STORE", - "DEPARTMENT_STORE", - "ELECTRONICS_STORE", - "FLORIST", - "FURNITURE_STORE", - "GARDEN_STORE", - "GROCERY_STORE", - "HARDWARE_STORE", - "HOBBY_SHOP", - "HOME_GOODS_STORE", - "JEWELRY_STORE", - "LIQUOR_STORE", - "MENS_CLOTHING_STORE", - "MOBILE_PHONE_STORE", - "MOVIE_RENTAL_STORE", - "MUSIC_STORE", - "OFFICE_EQUIPMENT_STORE", - "OUTLET_STORE", - "PAWN_SHOP", - "PET_STORE", - "SHOE_STORE", - "SPORTING_GOODS_STORE", - "TIRE_SHOP", - "TOY_STORE", - "WHOLESALE_STORE", - "TELEVISION_STATION", - "TOURIST_INFORMATION_CENTER", - "TRAVEL_AGENCY", - "PERFORMING_GROUP", - "MUSIC_GROUP", - "ADMINISTRATIVE_AREA", - "CITY", - "COUNTRY", - "STATE", - "CIVIC_STRUCTURE", - "AIRPORT", - "AQUARIUM", - "BEACH", - "BUS_STATION", - "BUS_STOP", - "CAMPGROUND", - "CEMETERY", - "CREMATORIUM", - "EVENT_VENUE", - "GOVERNMENT_BUILDING", - "CITY_HALL", - "COURTHOUSE", - "DEFENCE_ESTABLISHMENT", - "EMBASSY", - "LEGISLATIVE_BUILDING", - "MUSEUM", - "MUSIC_VENUE", - "PARK", - "PARKING_FACILITY", - "PERFORMING_ARTS_THEATER", - "PLACE_OF_WORSHIP", - "BUDDHIST_TEMPLE", - "CATHOLIC_CHURCH", - "CHURCH", - "HINDU_TEMPLE", - "MOSQUE", - "SYNAGOGUE", - "PLAYGROUND", - "R_V_PARK", - "RESIDENCE", - "APARTMENT_COMPLEX", - "GATED_RESIDENCE_COMMUNITY", - "SINGLE_FAMILY_RESIDENCE", - "TOURIST_ATTRACTION", - "SUBWAY_STATION", - "TAXI_STAND", - "TRAIN_STATION", - "ZOO", - "LANDFORM", - "BODY_OF_WATER", - "CANAL", - "LAKE_BODY_OF_WATER", - "OCEAN_BODY_OF_WATER", - "POND", - "RESERVOIR", - "RIVER_BODY_OF_WATER", - "SEA_BODY_OF_WATER", - "WATERFALL", - "CONTINENT", - "MOUNTAIN", - "VOLCANO", - "LANDMARKS_OR_HISTORICAL_BUILDINGS", - "USER_INTERACTION", - "USER_PLUS_ONES", - "ENUMERATION", - "BOOK_FORMAT_TYPE", - "ITEM_AVAILABILITY", - "OFFER_ITEM_CONDITION", - "JOB_POSTING", - "LANGUAGE", - "OFFER", - "QUANTITY", - "DISTANCE", - "DURATION", - "ENERGY", - "MASS", - "RATING", - "AGGREGATE_RATING", - "STRUCTURED_VALUE", - "CONTACT_POINT", - "POSTAL_ADDRESS", - "GEO_COORDINATES", - "GEO_SHAPE", - "NUTRITION_INFORMATION", - "PRESENTATION_OBJECT", - "DOCUMENT_OBJECT", - "SPREADSHEET_OBJECT", - "FORM_OBJECT", - "DRAWING_OBJECT", - "PLACE_REVIEW", - "FILE_OBJECT", - "PLAY_MUSIC_TRACK", - "PLAY_MUSIC_ALBUM", - "MAGAZINE", - "CAROUSEL_FRAME", - "PLUS_EVENT", - "HANGOUT", - "HANGOUT_BROADCAST", - "HANGOUT_CONSUMER", - "CHECKIN", - "EXAMPLE_OBJECT", - "SQUARE", - "SQUARE_INVITE", - "PLUS_PHOTO", - "PLUS_PHOTO_ALBUM", - "LOCAL_PLUS_PHOTO_ALBUM", - "PRODUCT_REVIEW", - "FINANCIAL_QUOTE", - "DEPRECATED_TOUR_OBJECT", - "PLUS_PAGE", - "GOOGLE_CHART", - "PLUS_PHOTOS_ADDED_TO_COLLECTION", - "RECOMMENDED_PEOPLE", - "PLUS_POST", - "DATE", - "DRIVE_OBJECT_COLLECTION", - "NEWS_MEDIA_ORGANIZATION", - "DYNAMITE_ATTACHMENT_METADATA", - "DYNAMITE_MESSAGE_METADATA" + "MYSELF", + "ALL_ATTENDEES" ], "enumDescriptions": [ - "Largely deprecated, effectively an error condition and should not be in storage.", - "Embeds V2 types", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "The action of checking in, as opposed to a \"check-in\".", - "", - "", - "The act of commenting, which might result in a comment.", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "Boswell story (see goto/boswell)", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "A photo stored in photo service owned by a Google account user. This is distinct from PlusPhoto as it isn't tied to GPlus, but is instead intended to be a more general photo tied to a google user.", - "A photo album in photo service owned by a Google account user. This is distinct from PlusPhotoAlbum as it isn't tied to GPlus, but is instead intended to be a general photo album tied to a google user.", - "An embed used to create a single photo in photo service. This type is never stored but is used to create a GOOGLE_USER_PHOTO_V2 or PLUS_PHOTO_V2 embed.", - "Embeds V1 types", - "", - "", - "", - "", - "", - "", - "", - "CREATIVE_WORK subtypes", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "EVENT subtypes", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "ORGANIZATION subtypes", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "PLACE subtypes", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "NOTE(jpanzer): This is a badly designed hierarchy and we should avoid depending on Event properties inside UserInteractions as much as possible IMHO.", - "", - "Intangibles, primarily used as sub-objects of other types", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "CREATIVE_WORK extensions", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "Single frame for http://goto/carousel.", - "EVENT extensions", - "No declared proto. Used only as a base type for now.", - "", - "", - "", - "", - "NOTE(melchang): These correspond to http://schema.org/WebPage/Community and http://schema.org/WebPage/CommunityInvite. See b/7653610 for why these are \"SQUARE\" and not \"COMMUNITY\".", - "", - "", - "", - "", - "", - "", - "", - "", - "Data visualizations. See http://code.google.com/apis/chart/index.html", - "", - "A collection of people that have been recommended to a user.", - "A Google+ post.", - "An http://schema.org/Date unstructured ISO-8859 timestamp string.", - "Embed representing a collection of multiple Drive objects.", - "https://schema.org/NewsMediaOrganization", - "Deprecated in favor of DYNAMITE_MESSAGE_METADATA", - "Used for Dynamite message metadata in Hangouts" + "Unknown (default).", + "For the requester.", + "For all the meeting attendees." ], "type": "string" }, "type": "array" + }, + "error": { + "$ref": "EnterpriseTopazSidekickMeetingNotesCardError", + "description": "The error and reason if known error occured." + }, + "event": { + "$ref": "EnterpriseTopazSidekickAgendaEntry", + "description": "The event to request meeting notes creation" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickNlpMetadata": { + "description": "Metadata about the NLP interpretation of the query.", + "id": "EnterpriseTopazSidekickNlpMetadata", + "properties": { + "confidence": { + "description": "Confidence of the interpretation that generated this card.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickPeopleAnswerDisambiguationInfo": { + "description": "Metadata for disambiguation.", + "id": "EnterpriseTopazSidekickPeopleAnswerDisambiguationInfo", + "properties": { + "disambiguation": { + "description": "A list of people that also matched the query. This list is not complete.", + "items": { + "$ref": "EnterpriseTopazSidekickPeopleAnswerDisambiguationInfoDisambiguationPerson" + }, + "type": "array" + }, + "name": { + "description": "The name that was extracted from the query. This may be in the form of the given name, last name, full name, LDAP, or email address. This name can be considered suitable for displaying to the user and can largely be considered to be normalized (e.g. \"Bob's\" -> \"Bob\").", + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickPeopleAnswerDisambiguationInfoDisambiguationPerson": { + "description": "A person that also matches the query, but was not selected due to a lower affinity with the requesting user.", + "id": "EnterpriseTopazSidekickPeopleAnswerDisambiguationInfoDisambiguationPerson", + "properties": { + "person": { + "$ref": "EnterpriseTopazSidekickCommonPerson", + "description": "The profile of this person." + }, + "query": { + "description": "The query that can be used to produce an answer card with the same attribute, but for this person.", + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickPeopleAnswerPeopleAnswerCardHeader": { + "description": "Recommended header to display for the card.", + "id": "EnterpriseTopazSidekickPeopleAnswerPeopleAnswerCardHeader", + "properties": { + "title": { + "description": "The suggested title to display. This defaults to the user's query.", + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickPeopleAnswerPersonAnswerCard": { + "description": "An answer card for a single person.", + "id": "EnterpriseTopazSidekickPeopleAnswerPersonAnswerCard", + "properties": { + "answer": { + "deprecated": true, + "description": "List of answers.", + "items": { + "$ref": "SafeHtmlProto" + }, + "type": "array" + }, + "answerText": { + "$ref": "EnterpriseTopazSidekickAnswerAnswerList", + "description": "List of answers." + }, + "disambiguationInfo": { + "$ref": "EnterpriseTopazSidekickPeopleAnswerDisambiguationInfo", + "description": "Disambiguation information." + }, + "header": { + "$ref": "EnterpriseTopazSidekickPeopleAnswerPeopleAnswerCardHeader", + "description": "The header to display for the card." + }, + "responseStatus": { + "description": "The response status.", + "enum": [ + "UNKNOWN", + "SUCCESS", + "MISSING_PERSON", + "MISSING_DATA" + ], + "enumDescriptions": [ + "Unknown.", + "Success.", + "No such person was found in the user's domain.", + "A person was found to match the query, but an answer could not be obtained." + ], + "type": "string" + }, + "statusMessage": { + "description": "Localized user friendly message to display to the user in the case of missing data or an error.", + "type": "string" + }, + "subject": { + "$ref": "EnterpriseTopazSidekickCommonPerson", + "description": "The profile of the person that was the subject of the query." + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickPeopleAnswerRelatedPeopleAnswerCard": { + "description": "An answer card for a list of people that are related to the subject of the query.", + "id": "EnterpriseTopazSidekickPeopleAnswerRelatedPeopleAnswerCard", + "properties": { + "disambiguationInfo": { + "$ref": "EnterpriseTopazSidekickPeopleAnswerDisambiguationInfo", + "description": "Disambiguation information." + }, + "header": { + "$ref": "EnterpriseTopazSidekickPeopleAnswerPeopleAnswerCardHeader", + "description": "The header to display for the card." + }, + "relatedPeople": { + "description": "A list of people that are related to the query subject.", + "items": { + "$ref": "EnterpriseTopazSidekickCommonPerson" + }, + "type": "array" + }, + "relationType": { + "description": "Defines the type of relation the list of people have with the subject of the card.", + "enum": [ + "UNKNOWN", + "DIRECT_REPORTS", + "MANAGER", + "PEERS" + ], + "enumDescriptions": [ + "Unknown.", + "Direct reports.", + "The manager.", + "The teammates/peers of the subject." + ], + "type": "string" + }, + "responseStatus": { + "description": "The response status.", + "enum": [ + "UNKNOWN", + "SUCCESS", + "MISSING_PERSON", + "MISSING_DATA" + ], + "enumDescriptions": [ + "Unknown.", + "Success.", + "No such person was found in the user's domain.", + "A person was found to match the query, but an answer could not be obtained." + ], + "type": "string" + }, + "statusMessage": { + "description": "Localized user friendly message to display to the user in the case of missing data or an error.", + "type": "string" + }, + "subject": { + "$ref": "EnterpriseTopazSidekickCommonPerson", + "description": "The profile of the person that was the subject of the query." + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickPeopleDisambiguationCard": { + "id": "EnterpriseTopazSidekickPeopleDisambiguationCard", + "properties": { + "person": { + "description": "Candidate persons for the query.", + "items": { + "$ref": "EnterpriseTopazSidekickCommonPerson" + }, + "type": "array" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickPerson": { + "description": "Person.", + "id": "EnterpriseTopazSidekickPerson", + "properties": { + "affinityLevel": { + "description": "The level of affinity this person has with the requesting user.", + "enum": [ + "UNKNOWN", + "LOW", + "MEDIUM", + "HIGH" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "attendingStatus": { + "description": "Attendance status of the person when included in a meeting event.", + "enum": [ + "AWAITING", + "YES", + "NO", + "MAYBE" + ], + "enumDescriptions": [ + "Awaiting for the user to set the status.", + "Attending.", + "Not attending.", + "Tentatively attending." + ], + "type": "string" + }, + "email": { + "description": "Email.", + "type": "string" + }, + "gaiaId": { + "deprecated": true, + "description": "Gaia id.", + "format": "int64", + "type": "string" + }, + "isGroup": { + "description": "Whether the invitee is a group.", + "type": "boolean" + }, + "name": { + "description": "Name.", + "type": "string" + }, + "obfuscatedGaiaId": { + "description": "Obfuscated Gaia id.", + "type": "string" + }, + "photoUrl": { + "description": "Absolute URL to the profile photo of the person.", + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickPersonProfileCard": { + "id": "EnterpriseTopazSidekickPersonProfileCard", + "properties": { + "relatedPeople": { + "items": { + "$ref": "EnterpriseTopazSidekickPersonProfileCardRelatedPeople" + }, + "type": "array" + }, + "subject": { + "$ref": "EnterpriseTopazSidekickCommonPerson", + "description": "The subject of the card." + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickPersonProfileCardRelatedPeople": { + "id": "EnterpriseTopazSidekickPersonProfileCardRelatedPeople", + "properties": { + "relatedPerson": { + "description": "Related people.", + "items": { + "$ref": "EnterpriseTopazSidekickCommonPerson" + }, + "type": "array" + }, + "relation": { + "description": "Relation type.", + "enum": [ + "UNKNOWN", + "MANAGER", + "DIRECT_REPORT" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickPersonalizedDocsCardProto": { + "description": "Personalized docs card proto.", + "id": "EnterpriseTopazSidekickPersonalizedDocsCardProto", + "properties": { + "documentGroup": { + "description": "Document group.", + "items": { + "$ref": "EnterpriseTopazSidekickDocumentGroup" + }, + "type": "array" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickRankingParams": { + "description": "Ranking params.", + "id": "EnterpriseTopazSidekickRankingParams", + "properties": { + "endTimeMs": { + "description": "The end-time that this object will expect to occur. If the type is marked as FIXED, then this end-time will persist after bidding. If the type is marked as FLEXIBLE, this field is NOT expected to be filled and will be filled in after it has won a bid. Expected to be set when type is set to FIXED.", + "format": "uint64", + "type": "string" + }, + "priority": { + "description": "The priority to determine between objects that have the same start_time_ms The lower-value of priority == ranked higher. Max-priority = 0. Expected to be set for all types.", + "enum": [ + "UNKNOWN", + "CRITICAL", + "IMPORTANT", + "HIGH", + "NORMAL", + "BEST_EFFORT" + ], + "enumDescriptions": [ + "Unknown (default).", + "Critical.", + "Important.", + "High.", + "Normal.", + "Best effort." + ], + "type": "string" + }, + "score": { + "description": "The score of the card to be used to break priority-ties", + "format": "float", + "type": "number" + }, + "spanMs": { + "description": "The span that this card will take in the stream Expected to be set when type is set to FLEXIBLE.", + "format": "uint64", + "type": "string" + }, + "startTimeMs": { + "description": "The start-time that this object will bid-for If the type is marked as FIXED, then this start-time will persist after bidding. If the type is marked as FLEXIBLE, then it will occur at the given time or sometime after the requested time. Expected to be set for all types.", + "format": "uint64", + "type": "string" + }, + "type": { + "description": "The packing type of this object.", + "enum": [ + "FIXED", + "FLEXIBLE" + ], + "enumDescriptions": [ + "Fixed, i.e., the card is time sensitive.", + "Flexible, i.e., the card is not time sensitive." + ], + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickRecentDocumentsCardProto": { + "id": "EnterpriseTopazSidekickRecentDocumentsCardProto", + "properties": { + "document": { + "items": { + "$ref": "EnterpriseTopazSidekickCommonDocument" + }, + "type": "array" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickScheduledMeeting": { + "description": "Details about scheduled meetings.", + "id": "EnterpriseTopazSidekickScheduledMeeting", + "properties": { + "meetingLocation": { + "description": "The meeting location.", + "type": "string" + }, + "meetingTime": { + "$ref": "EnterpriseTopazSidekickTimeSlot", + "description": "The meeting time slot." + }, + "meetingTitle": { + "description": "The meeting title.", + "type": "string" + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickShareMeetingDocsCardProto": { + "description": "Share meeting docs card proto.", + "id": "EnterpriseTopazSidekickShareMeetingDocsCardProto", + "properties": { + "document": { + "description": "Documents to share for the given meeting.", + "items": { + "$ref": "EnterpriseTopazSidekickCommonDocument" + }, + "type": "array" + }, + "event": { + "$ref": "EnterpriseTopazSidekickAgendaEntry", + "description": "Event." + } + }, + "type": "object" + }, + "EnterpriseTopazSidekickTimeSlot": { + "description": "Slot of time.", + "id": "EnterpriseTopazSidekickTimeSlot", + "properties": { + "endTimeDay": { + "description": "Day end time at the user's timezone.", + "type": "string" + }, + "endTimeHourAndMinute": { + "description": "Hour and minute of the end time at the user's timezone.", + "type": "string" + }, + "endTimeInMillis": { + "description": "End time in milliseconds.", + "format": "int64", + "type": "string" + }, + "startTimeDay": { + "description": "Day start time at user's timezone.", + "type": "string" + }, + "startTimeHourAndMinute": { + "description": "Hour and minute of the start time at the user's timezone.", + "type": "string" + }, + "startTimeInMillis": { + "description": "Start time in milliseconds.", + "format": "int64", + "type": "string" } }, "type": "object" @@ -8677,35 +4765,6 @@ }, "type": "object" }, - "EventAnnotation": { - "id": "EventAnnotation", - "properties": { - "type": { - "format": "int32", - "type": "integer" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "EventProto": { - "description": "Represents the invitees or other users associated with a Google+ Event (see http://goto/events-backend-design).", - "id": "EventProto", - "properties": { - "eventId": { - "description": "Event IDs consist of alphanumeric characters and colons. Currently required.", - "type": "string" - }, - "memberType": { - "description": "The type of Event members to consider, e.g. \"all members\" vs. \"owners\" vs. \"admins\". These are defined by legacy_relation_id values in social.graph.storage.EdgeTypeEnum.EdgeType enum options in social/graph/storage/proto/id.proto. See event.pb (defined in production/config/cdd/socialgraph/mixer_config/prod/node_type_config) for all valid edge types associated with event. Currently required.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, "FacetBucket": { "description": "A bucket in a facet is the basic unit of operation. A bucket can comprise either a single value OR a contiguous range of values, depending on the type of the field bucketed. FacetBucket is currently used only for returning the response object.", "id": "FacetBucket", @@ -8811,18 +4870,6 @@ }, "type": "object" }, - "FilterCreated": { - "description": "A filter was created.", - "id": "FilterCreated", - "properties": {}, - "type": "object" - }, - "FilterDeleted": { - "description": "A filter was deleted.", - "id": "FilterDeleted", - "properties": {}, - "type": "object" - }, "FilterOptions": { "description": "Filter options to be applied on query.", "id": "FilterOptions", @@ -8838,191 +4885,6 @@ }, "type": "object" }, - "FilterUpdate": { - "description": "HistoryRecord for changes associated with a filter, namely: FILTER_CREATED FILTER_DELETED", - "id": "FilterUpdate", - "properties": { - "filterCreated": { - "$ref": "FilterCreated" - }, - "filterDeleted": { - "$ref": "FilterDeleted" - }, - "filterId": { - "type": "string" - } - }, - "type": "object" - }, - "FixedFooter": { - "description": "A persistent (sticky) footer that is added to the bottom of the card.", - "id": "FixedFooter", - "properties": { - "buttons": { - "items": { - "$ref": "Button" - }, - "type": "array" - }, - "primaryButton": { - "$ref": "TextButton" - }, - "secondaryButton": { - "$ref": "TextButton" - } - }, - "type": "object" - }, - "Folder": { - "id": "Folder", - "properties": { - "id": { - "description": "Folder mapping id.", - "format": "uint64", - "type": "string" - }, - "message": { - "description": "One for each copy of the message in the IMAP folder.", - "items": { - "$ref": "ImapsyncFolderAttributeFolderMessage" - }, - "type": "array" - } - }, - "type": "object" - }, - "FolderAttribute": { - "description": "This is the content of //imapsync/folder attribute.", - "id": "FolderAttribute", - "properties": { - "folder": { - "description": "List of all IMAP folders where the message presents.", - "items": { - "$ref": "Folder" - }, - "type": "array" - } - }, - "type": "object" - }, - "FormAction": { - "id": "FormAction", - "properties": { - "actionMethodName": { - "description": "Apps script function that should be invoked in the developer's apps script when the containing element is clicked/activated.", - "type": "string" - }, - "loadIndicator": { - "enum": [ - "SPINNER", - "NONE" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "parameters": { - "items": { - "$ref": "ActionParameter" - }, - "type": "array" - }, - "persistValues": { - "description": "Indicates whether form values persist after the action. When false, the Apps Script is responsible for persisting values, by setting any form field values using the formInputs in the event. Disabling this behavior can be used if the add-on needs the ability to clear form fields, for example, as with persistent values, there is no means for clearing existing values. When disabling persistent values, it is strongly recommended that the add-on use LoadIndicator.SPINNER for all events, as this locks the UI to ensure no changes are made by the user while the action is being processed. When using LoadIndicator.NONE for any of the actions, persistent values are recommended, as it ensures that any changes made by the user after form / on change actions are sent to the server are not overwritten by the response. Persistent values disabled by default. While we recommend persistent values be used in the typical use case, we do not enable by default, as doing so would change the current behavior of existing add-ons in prod.", - "type": "boolean" - } - }, - "type": "object" - }, - "FormatMetadata": { - "description": "Annotation metadata for markup formatting", - "id": "FormatMetadata", - "properties": { - "fontColor": { - "description": "Font color is set if and only if format_type is FONT_COLOR. The components are stored as (alpha << 24) | (red << 16) | (green << 8) | blue. Clients should always set the alpha component to 0xFF. NEXT TAG: 3", - "format": "uint32", - "type": "integer" - }, - "formatType": { - "description": "LINT.ThenChange(//depot/google3/apps/dynamite/v1/web/datakeys/annotated_span.proto)", - "enum": [ - "TYPE_UNSPECIFIED", - "BOLD", - "ITALIC", - "STRIKE", - "SOURCE_CODE", - "MONOSPACE", - "HIDDEN", - "MONOSPACE_BLOCK", - "UNDERLINE", - "FONT_COLOR", - "BULLETED_LIST", - "BULLETED_LIST_ITEM", - "CLIENT_HIDDEN" - ], - "enumDescriptions": [ - "Default value for the enum.", - "", - "", - "", - "", - "Inline monospace.", - "", - "Multi-line monospace block.", - "", - "", - "Encloses BULLETED_LIST_ITEM annotations.", - "Must cover the whole line including the newline", - "character at the end. Not used anymore." - ], - "type": "string" - } - }, - "type": "object" - }, - "Formatting": { - "description": "Formatting information for a segment.", - "id": "Formatting", - "properties": { - "bold": { - "type": "boolean" - }, - "highlight": { - "description": "This indicates that the segment should be rendered as highlighted or visually emphasized.", - "type": "boolean" - }, - "italics": { - "type": "boolean" - }, - "strikethrough": { - "type": "boolean" - }, - "style": { - "description": "If set, this indicates that the segment should be rendered with the specified style. The absence of an explicit style represents \"no style\", i.e. the segment can be rendered with the default style chosen by the application.", - "enum": [ - "UNKNOWN_STYLE", - "HEADING_1", - "HEADING_2", - "HEADING_3", - "HEADING_4" - ], - "enumDescriptions": [ - "This represents a style that is unknown (e.g. a new style was introduced but not supported by older mobile app versions) and should generally not be used as a value in a proto. If the segment does not need to be rendered with a special style, the 'style' field should simply be left unset. A reasonable fallback for an unknown style is to render the segment in the default style.", - "The most important heading to the least important heading.", - "", - "", - "" - ], - "type": "string" - }, - "underline": { - "type": "boolean" - } - }, - "type": "object" - }, "FreshnessOptions": { "description": "Indicates which freshness property to use when adjusting search ranking for an item. Fresher, more recent dates indicate higher quality. Use the freshness option property that best works with your data. For fileshare documents, last modified time is most relevant. For calendar event data, the time when the event occurs is a more relevant freshness indicator. In this way, calendar events that occur closer to the time of the search query are considered higher quality and ranked accordingly.", "id": "FreshnessOptions", @@ -9039,118 +4901,6 @@ }, "type": "object" }, - "FuseboxItem": { - "description": "The Item message is the read interface for user data (traditionally referred to as a \"message\", such as a mail message or a chat message, but generalized to encompass other types such as tasks) and stored in Tingle. Each Item is associated with a single Thread. An Item contains three classes of data. (1): Item \"fields\" are common to items of all message types (e.g. mail, chat, task, etc.) and are identified by the ItemFieldSpec.FetchType enum when fetching Items. (2): Item \"attributes\" represent data associated with an Item that is stored on behalf of the client but to which the fusebox and storage layers are otherwise agnostic. (3): Item \"parts\" are application-defined protocol buffers that affect how the Item is indexed. Item parts are referenced as extensions to the ItemParts message. By default the application specifies the index terms associated with an Item part. For performance sensitive applications, the storage layer can be modified to understand and index data types natively.", - "id": "FuseboxItem", - "properties": { - "attributes": { - "$ref": "Attributes" - }, - "creationTimeMicroseconds": { - "description": "The creation time of the Item in micro seconds.", - "format": "uint64", - "type": "string" - }, - "history": { - "$ref": "History" - }, - "itemKey": { - "$ref": "MultiKey", - "description": "The key is used to refer to an item. Note that every field of the MultiKey is unique to the Item, and thus the Item can be looked up by any of the fields." - }, - "labels": { - "$ref": "Labels" - }, - "lastModificationTimeUs": { - "description": "The modification time of the Item in micro seconds. Modifications to the message include label addition, deletion, etc.", - "format": "uint64", - "type": "string" - }, - "lockerReferences": { - "$ref": "References", - "description": "go/lockpicker Locker counterpart of references." - }, - "matchInfo": { - "$ref": "MatchInfo" - }, - "parts": { - "$ref": "ItemParts", - "description": "Type-specific data are represented as extensions to the ItemParts message." - }, - "readTs": { - "description": "The read timestamp at which this item was read. This is a temporary field used to check if two items streamed during dual reading were read at the same timestamp. This will be populated by Fusebox RPCs. \"DO NOT USE UNLESS YOU TALK TO FUSEBOX TEAM (gmail-fusebox@)\".", - "format": "int64", - "type": "string" - }, - "references": { - "$ref": "References", - "description": "References to attachments, video attachments in Youtube and Hangout messages." - }, - "snippet": { - "description": "The snippet is a brief bit of text describing this item.", - "type": "string" - }, - "threadKey": { - "$ref": "MultiKey", - "description": "The key of the Thread with which this Item is associated." - }, - "threadLocator": { - "description": "A base64 encoded and encrypted string generated from the Gaia Id and the thread id. Used to generate the permalink for this thread, exposed from Gmail API.", - "type": "string" - }, - "triggers": { - "$ref": "Triggers" - }, - "version": { - "description": "The latest history operation id that resulted in a mutation of the item.", - "format": "uint64", - "type": "string" - } - }, - "type": "object" - }, - "FuseboxItemThreadMatchInfo": { - "description": "In the context of a search, the MatchInfo contains information about which Items matched the query.", - "id": "FuseboxItemThreadMatchInfo", - "properties": { - "clusterId": { - "description": "If SearchQuery.Options.Clustering is present, the query will be treated as a cluster query, and this field may be populated with the cluster ID of the cluster to which this thread belongs, if any. The cluster ID will be a label on the message.", - "type": "string" - }, - "lastMatchingItemId": { - "description": "The server id of the last item that matched the query. This is always set, regardless of the compute_matching_items_per_thread option. This is the value by which search results are sorted, in descending (i.e. newest first) order.", - "format": "uint64", - "type": "string" - }, - "lastMatchingItemKey": { - "$ref": "MultiKey", - "description": "The MultiKey of the last item that matched the query. This is always set, regardless of the compute_matching_items_per_thread option. This is the value by which search results are sorted, in descending (i.e. newest first) order." - }, - "matchingItemKey": { - "description": "If SearchQuery.Options.compute_matching_items_per_thread, this field will contain the keys of all items that matched the query, in ascending order. Note that this option requires extra computation.", - "items": { - "$ref": "MultiKey" - }, - "type": "array" - }, - "rank": { - "$ref": "Rank", - "description": "The rank of this ItemThread in the result set of the query. This rank may be used to sort ItemThreads in proper order. Ranks are specific to a query, and stable for a given query at a specific time." - } - }, - "type": "object" - }, - "FuseboxPrefUpdatePreState": { - "description": "If the Value field is not set this means the pref did not exist.", - "id": "FuseboxPrefUpdatePreState", - "properties": { - "value": { - "format": "byte", - "type": "string" - } - }, - "type": "object" - }, "GSuitePrincipal": { "id": "GSuitePrincipal", "properties": { @@ -9169,53 +4919,6 @@ }, "type": "object" }, - "GaiaGroupProto": { - "id": "GaiaGroupProto", - "properties": { - "groupId": { - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "GaiaUserProto": { - "description": "A Gaia account, which may represent a user, device, service account, etc. For prod (@prod.google.com) accounts, use MdbUserProto instead.", - "id": "GaiaUserProto", - "properties": { - "userId": { - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "GatewayAccess": { - "description": "Details on the third-party interoperability settings for the meeting space.", - "id": "GatewayAccess", - "properties": { - "enabled": { - "description": "Whether third-party gateway accesses are enabled for this meeting space. If enabled, the actual access code can be retrieved by calling the GetGatewayAccess RPC method.", - "type": "boolean" - } - }, - "type": "object" - }, - "GatewaySipAccess": { - "description": "Details how to join the conference via a SIP gateway.", - "id": "GatewaySipAccess", - "properties": { - "sipAccessCode": { - "description": "Permanent numeric code for manual entry on specially configured devices, currently the same as the PSTN \"Universal pin\".", - "type": "string" - }, - "uri": { - "description": "The SIP URI the conference can be reached through. The string is on one of the formats: \"sip:@\" \"sips:@\" where currently is the 13-digit universal pin (with the future option to support using a Meet meeting code as well), and is a valid address to be resolved using a DNS SRV lookup, or a dotted quad.", - "type": "string" - } - }, - "type": "object" - }, "GetCustomerIndexStatsResponse": { "id": "GetCustomerIndexStatsResponse", "properties": { @@ -9355,993 +5058,6 @@ }, "type": "object" }, - "GmailClientActionMarkup": { - "id": "GmailClientActionMarkup", - "properties": { - "addonComposeUiActionMarkup": { - "$ref": "AddonComposeUiActionMarkup" - }, - "openCreatedDraftActionMarkup": { - "$ref": "OpenCreatedDraftActionMarkup" - }, - "taskAction": { - "$ref": "TaskActionMarkup" - }, - "updateDraftActionMarkup": { - "$ref": "UpdateDraftActionMarkup" - } - }, - "type": "object" - }, - "GoogleChatV1ContextualAddOnMarkup": { - "description": "The markup for developers to specify the contents of a contextual AddOn.", - "id": "GoogleChatV1ContextualAddOnMarkup", - "properties": { - "cards": { - "description": "A list of cards. A card must contain a header and at least 1 section.", - "items": { - "$ref": "GoogleChatV1ContextualAddOnMarkupCard" - }, - "type": "array" - } - }, - "type": "object" - }, - "GoogleChatV1ContextualAddOnMarkupCard": { - "description": "A card is a UI element that can contain UI widgets such as texts, images.", - "id": "GoogleChatV1ContextualAddOnMarkupCard", - "properties": { - "cardActions": { - "description": "The actions of this card.", - "items": { - "$ref": "GoogleChatV1ContextualAddOnMarkupCardCardAction" - }, - "type": "array" - }, - "header": { - "$ref": "GoogleChatV1ContextualAddOnMarkupCardCardHeader", - "description": "The header of the card. A header usually contains a title and an image." - }, - "name": { - "description": "Name of the card.", - "type": "string" - }, - "sections": { - "description": "Sections are separated by a line divider.", - "items": { - "$ref": "GoogleChatV1ContextualAddOnMarkupCardSection" - }, - "type": "array" - } - }, - "type": "object" - }, - "GoogleChatV1ContextualAddOnMarkupCardCardAction": { - "description": "A card action is the action associated with the card. For an invoice card, a typical action would be: delete invoice, email invoice or open the invoice in browser. Not supported by Google Chat apps.", - "id": "GoogleChatV1ContextualAddOnMarkupCardCardAction", - "properties": { - "actionLabel": { - "description": "The label used to be displayed in the action menu item.", - "type": "string" - }, - "onClick": { - "$ref": "GoogleChatV1WidgetMarkupOnClick", - "description": "The onclick action for this action item." - } - }, - "type": "object" - }, - "GoogleChatV1ContextualAddOnMarkupCardCardHeader": { - "id": "GoogleChatV1ContextualAddOnMarkupCardCardHeader", - "properties": { - "imageStyle": { - "description": "The image's type (e.g. square border or circular border).", - "enum": [ - "IMAGE_STYLE_UNSPECIFIED", - "IMAGE", - "AVATAR" - ], - "enumDescriptions": [ - "", - "Square border.", - "Circular border." - ], - "type": "string" - }, - "imageUrl": { - "description": "The URL of the image in the card header.", - "type": "string" - }, - "subtitle": { - "description": "The subtitle of the card header.", - "type": "string" - }, - "title": { - "description": "The title must be specified. The header has a fixed height: if both a title and subtitle is specified, each will take up 1 line. If only the title is specified, it will take up both lines.", - "type": "string" - } - }, - "type": "object" - }, - "GoogleChatV1ContextualAddOnMarkupCardSection": { - "description": "A section contains a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties (e.g. float).", - "id": "GoogleChatV1ContextualAddOnMarkupCardSection", - "properties": { - "header": { - "description": "The header of the section, text formatted supported.", - "type": "string" - }, - "widgets": { - "description": "A section must contain at least 1 widget.", - "items": { - "$ref": "GoogleChatV1WidgetMarkup" - }, - "type": "array" - } - }, - "type": "object" - }, - "GoogleChatV1WidgetMarkup": { - "description": "A widget is a UI element that presents texts, images, etc.", - "id": "GoogleChatV1WidgetMarkup", - "properties": { - "buttons": { - "description": "A list of buttons. Buttons is also oneof data and only one of these fields should be set.", - "items": { - "$ref": "GoogleChatV1WidgetMarkupButton" - }, - "type": "array" - }, - "image": { - "$ref": "GoogleChatV1WidgetMarkupImage", - "description": "Display an image in this widget." - }, - "keyValue": { - "$ref": "GoogleChatV1WidgetMarkupKeyValue", - "description": "Display a key value item in this widget." - }, - "textParagraph": { - "$ref": "GoogleChatV1WidgetMarkupTextParagraph", - "description": "Display a text paragraph in this widget." - } - }, - "type": "object" - }, - "GoogleChatV1WidgetMarkupButton": { - "description": "A button. Can be a text button or an image button.", - "id": "GoogleChatV1WidgetMarkupButton", - "properties": { - "imageButton": { - "$ref": "GoogleChatV1WidgetMarkupImageButton", - "description": "A button with image and onclick action." - }, - "textButton": { - "$ref": "GoogleChatV1WidgetMarkupTextButton", - "description": "A button with text and onclick action." - } - }, - "type": "object" - }, - "GoogleChatV1WidgetMarkupFormAction": { - "description": "A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form.", - "id": "GoogleChatV1WidgetMarkupFormAction", - "properties": { - "actionMethodName": { - "description": "The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the Chat app as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.", - "type": "string" - }, - "parameters": { - "description": "List of action parameters.", - "items": { - "$ref": "GoogleChatV1WidgetMarkupFormActionActionParameter" - }, - "type": "array" - } - }, - "type": "object" - }, - "GoogleChatV1WidgetMarkupFormActionActionParameter": { - "description": "List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.", - "id": "GoogleChatV1WidgetMarkupFormActionActionParameter", - "properties": { - "key": { - "description": "The name of the parameter for the action script.", - "type": "string" - }, - "value": { - "description": "The value of the parameter.", - "type": "string" - } - }, - "type": "object" - }, - "GoogleChatV1WidgetMarkupImage": { - "description": "An image that is specified by a URL and can have an onclick action.", - "id": "GoogleChatV1WidgetMarkupImage", - "properties": { - "aspectRatio": { - "description": "The aspect ratio of this image (width/height). This field allows clients to reserve the right height for the image while waiting for it to load. It's not meant to override the native aspect ratio of the image. If unset, the server fills it by prefetching the image.", - "format": "double", - "type": "number" - }, - "imageUrl": { - "description": "The URL of the image.", - "type": "string" - }, - "onClick": { - "$ref": "GoogleChatV1WidgetMarkupOnClick", - "description": "The onclick action." - } - }, - "type": "object" - }, - "GoogleChatV1WidgetMarkupImageButton": { - "description": "An image button with an onclick action.", - "id": "GoogleChatV1WidgetMarkupImageButton", - "properties": { - "icon": { - "description": "The icon specified by an enum that indices to an icon provided by Chat API.", - "enum": [ - "ICON_UNSPECIFIED", - "AIRPLANE", - "BOOKMARK", - "BUS", - "CAR", - "CLOCK", - "CONFIRMATION_NUMBER_ICON", - "DOLLAR", - "DESCRIPTION", - "EMAIL", - "EVENT_PERFORMER", - "EVENT_SEAT", - "FLIGHT_ARRIVAL", - "FLIGHT_DEPARTURE", - "HOTEL", - "HOTEL_ROOM_TYPE", - "INVITE", - "MAP_PIN", - "MEMBERSHIP", - "MULTIPLE_PEOPLE", - "OFFER", - "PERSON", - "PHONE", - "RESTAURANT_ICON", - "SHOPPING_CART", - "STAR", - "STORE", - "TICKET", - "TRAIN", - "VIDEO_CAMERA", - "VIDEO_PLAY" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "iconUrl": { - "description": "The icon specified by a URL.", - "type": "string" - }, - "name": { - "description": "The name of this image_button which will be used for accessibility. Default value will be provided if developers don't specify.", - "type": "string" - }, - "onClick": { - "$ref": "GoogleChatV1WidgetMarkupOnClick", - "description": "The onclick action." - } - }, - "type": "object" - }, - "GoogleChatV1WidgetMarkupKeyValue": { - "description": "A UI element contains a key (label) and a value (content). And this element may also contain some actions such as onclick button.", - "id": "GoogleChatV1WidgetMarkupKeyValue", - "properties": { - "bottomLabel": { - "description": "The text of the bottom label. Formatted text supported.", - "type": "string" - }, - "button": { - "$ref": "GoogleChatV1WidgetMarkupButton", - "description": "A button that can be clicked to trigger an action." - }, - "content": { - "description": "The text of the content. Formatted text supported and always required.", - "type": "string" - }, - "contentMultiline": { - "description": "If the content should be multiline.", - "type": "boolean" - }, - "icon": { - "description": "An enum value that will be replaced by the Chat API with the corresponding icon image.", - "enum": [ - "ICON_UNSPECIFIED", - "AIRPLANE", - "BOOKMARK", - "BUS", - "CAR", - "CLOCK", - "CONFIRMATION_NUMBER_ICON", - "DOLLAR", - "DESCRIPTION", - "EMAIL", - "EVENT_PERFORMER", - "EVENT_SEAT", - "FLIGHT_ARRIVAL", - "FLIGHT_DEPARTURE", - "HOTEL", - "HOTEL_ROOM_TYPE", - "INVITE", - "MAP_PIN", - "MEMBERSHIP", - "MULTIPLE_PEOPLE", - "OFFER", - "PERSON", - "PHONE", - "RESTAURANT_ICON", - "SHOPPING_CART", - "STAR", - "STORE", - "TICKET", - "TRAIN", - "VIDEO_CAMERA", - "VIDEO_PLAY" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "iconUrl": { - "description": "The icon specified by a URL.", - "type": "string" - }, - "onClick": { - "$ref": "GoogleChatV1WidgetMarkupOnClick", - "description": "The onclick action. Only the top label, bottom label and content region are clickable." - }, - "topLabel": { - "description": "The text of the top label. Formatted text supported.", - "type": "string" - } - }, - "type": "object" - }, - "GoogleChatV1WidgetMarkupOnClick": { - "description": "An onclick action (e.g. open a link).", - "id": "GoogleChatV1WidgetMarkupOnClick", - "properties": { - "action": { - "$ref": "GoogleChatV1WidgetMarkupFormAction", - "description": "A form action will be triggered by this onclick if specified." - }, - "openLink": { - "$ref": "GoogleChatV1WidgetMarkupOpenLink", - "description": "This onclick triggers an open link action if specified." - } - }, - "type": "object" - }, - "GoogleChatV1WidgetMarkupOpenLink": { - "description": "A link that opens a new window.", - "id": "GoogleChatV1WidgetMarkupOpenLink", - "properties": { - "url": { - "description": "The URL to open.", - "type": "string" - } - }, - "type": "object" - }, - "GoogleChatV1WidgetMarkupTextButton": { - "description": "A button with text and onclick action.", - "id": "GoogleChatV1WidgetMarkupTextButton", - "properties": { - "onClick": { - "$ref": "GoogleChatV1WidgetMarkupOnClick", - "description": "The onclick action of the button." - }, - "text": { - "description": "The text of the button.", - "type": "string" - } - }, - "type": "object" - }, - "GoogleChatV1WidgetMarkupTextParagraph": { - "description": "A paragraph of text. Formatted text supported.", - "id": "GoogleChatV1WidgetMarkupTextParagraph", - "properties": { - "text": { - "type": "string" - } - }, - "type": "object" - }, - "GoogleDocsMetadata": { - "description": "The corpus specific metadata for office-type documents, from Google Docs and other sources. This message is passed to the scorer and beyond. Next tag: 9", - "id": "GoogleDocsMetadata", - "properties": { - "aclInfo": { - "$ref": "AclInfo", - "description": "Contains number of users and groups which can access the document." - }, - "documentType": { - "description": "The conceptual type (presentation, document, etc.) of this document.", - "enum": [ - "UNKNOWN", - "DOCUMENT", - "PRESENTATION", - "SPREADSHEET", - "PDF", - "IMAGE", - "BINARY_BLOB", - "FUSION_TABLE", - "FOLDER", - "DRAWING", - "VIDEO", - "FORM", - "DRAFT_SITE", - "DRAFT_SITE_PAGE", - "JAM", - "SHORTCUT", - "SCRIPT" - ], - "enumDescriptions": [ - "If the type is unknown or not represented in this enum.", - "Writely, Word, etc.", - "Presently, PowerPoint, etc.", - "Trix, Excel, etc.", - "File types for Gdrive objects are below.", - "", - "Fall-back for unknown Gdrive types.", - "", - "", - "", - "", - "", - "For Atari page and site drafts", - "", - "Jamboard Jams (go/jam)", - "Drive Shortcuts (go/shortcuts)", - "" - ], - "type": "string" - }, - "fileExtension": { - "description": "The file extension of the document. NOTE: As of October 2018 this field is not backfilled for old documents.", - "type": "string" - }, - "lastContentModifiedTimestamp": { - "description": "The last time this document was modified, in seconds since epoch. Only counts content modifications.", - "format": "int64", - "type": "string" - }, - "numSubscribers": { - "description": "Contains number of subscribers for the document.", - "format": "int32", - "type": "integer" - }, - "numViewers": { - "description": "Size of untruncated viewers list.", - "format": "int32", - "type": "integer" - }, - "resultInfo": { - "$ref": "GoogleDocsResultInfo", - "description": "Additional per-result information, akin to Gmail's SingleThreadResponse. Note: GWS no longer seems to use this field, but there's still one reference to it for Scribe, so we can't remove it." - }, - "typeInfo": { - "$ref": "TypeInfo", - "description": "Contains additional information about the document depending on its type." - } - }, - "type": "object" - }, - "GoogleDocsResultInfo": { - "description": "A message containing information about a specific result. This information is passed to the scorer and beyond; in particular, GWS relies on it to format the result in the UI. Split from GoogleDocsMetadata in case we later want to reuse the message.", - "id": "GoogleDocsResultInfo", - "properties": { - "attachmentSha1": { - "description": "The SHA1 hash of the object in Drive, if any.", - "type": "string" - }, - "cosmoId": { - "$ref": "Id", - "description": "The storage identifier for the object in Cosmo. This field is intended to used by Stratus/Moonshine integration only. It should not be exposed externally (please refer to encrypted_id for that purpose)." - }, - "cosmoNameSpace": { - "description": "For Cosmo objects, the Cosmo namespace the object was in. This allows downstream clients to identify whether a document was created in Writely or Kix, Presently or Punch, or whether it was uploaded from GDrive. See storage_cosmo.Id.NAME_SPACE for a list of all Cosmo name spaces.", - "format": "int32", - "type": "integer" - }, - "encryptedId": { - "description": "The encrypted (user-visible) id of this object. Knowing the id is sufficient to create a canonical URL for this document.", - "type": "string" - }, - "mimeType": { - "description": "The mimetype of the document.", - "type": "string" - }, - "shareScope": { - "$ref": "ShareScope", - "description": "The visibility indicator in the UI will be based upon this." - } - }, - "type": "object" - }, - "Grid": { - "id": "Grid", - "properties": { - "borderStyle": { - "$ref": "BorderStyle", - "description": "The border style to apply to each grid item." - }, - "items": { - "description": "The items to display in the grid.", - "items": { - "$ref": "GridItem" - }, - "type": "array" - }, - "numColumns": { - "description": "The number of columns to display in the grid. Note that a default value will be used if this field is not specified, and that default value will be different depending on where the grid is shown (dialog vs companion).", - "format": "int32", - "type": "integer" - }, - "onClick": { - "$ref": "OnClick", - "description": "This callback will be reused by each individual GridItem, but with the item's identifier and index in the items list added to the callback's parameters." - }, - "title": { - "description": "The text to display in the grid header.", - "type": "string" - } - }, - "type": "object" - }, - "GridItem": { - "id": "GridItem", - "properties": { - "identifier": { - "description": "A user-specified identifier for this grid item. This identifier will be returned in the parent Grid's on_click callback's parameters.", - "type": "string" - }, - "image": { - "$ref": "ImageComponent" - }, - "layout": { - "enum": [ - "NOT_SET", - "TEXT_BELOW", - "TEXT_ABOVE" - ], - "enumDescriptions": [ - "", - "The title and subtitle are shown below the grid item's image.", - "The title and subtitle are shown above the grid item's image." - ], - "type": "string" - }, - "subtitle": { - "type": "string" - }, - "textAlignment": { - "enum": [ - "HORIZONTAL_ALIGNMENT_UNSPECIFIED", - "START", - "CENTER", - "END" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "title": { - "description": "Text properties.", - "type": "string" - } - }, - "type": "object" - }, - "GroupDetailsUpdatedMetadata": { - "id": "GroupDetailsUpdatedMetadata", - "properties": { - "newGroupDetails": { - "$ref": "AppsDynamiteSharedGroupDetails" - }, - "prevGroupDetails": { - "$ref": "AppsDynamiteSharedGroupDetails" - } - }, - "type": "object" - }, - "GroupId": { - "description": "Id representing a group that could be a space, a chat, or a direct message space. Which ID is set here will determine which group", - "id": "GroupId", - "properties": { - "dmId": { - "$ref": "DmId", - "description": "Unique, immutable ID of the Direct Message Space" - }, - "spaceId": { - "$ref": "SpaceId", - "description": "Unique, immutable ID of the Space" - } - }, - "type": "object" - }, - "GroupLinkSharingModificationEvent": { - "id": "GroupLinkSharingModificationEvent", - "properties": { - "newStatus": { - "enum": [ - "UNKNOWN_LINK_SHARING_STATUS", - "LINK_SHARING_ON", - "LINK_SHARING_OFF", - "NOT_AVAILABLE" - ], - "enumDescriptions": [ - "", - "Link sharing is turned on.", - "Link sharing is turned off.", - "Link sharing is not available for the conversation." - ], - "type": "string" - } - }, - "type": "object" - }, - "GroupRetentionSettingsUpdatedMetaData": { - "id": "GroupRetentionSettingsUpdatedMetaData", - "properties": { - "initiator": { - "$ref": "UserId", - "description": "The user who triggered the retention settings update" - }, - "retentionSettings": { - "$ref": "AppsDynamiteSharedRetentionSettings", - "description": "The updated space retention settings" - } - }, - "type": "object" - }, - "GsuiteIntegrationMetadata": { - "description": "Annotation metadata for an GsuiteIntegration artifact.", - "id": "GsuiteIntegrationMetadata", - "properties": { - "activityFeedData": { - "$ref": "AppsDynamiteSharedActivityFeedAnnotationData" - }, - "assistantData": { - "$ref": "AppsDynamiteSharedAssistantAnnotationData" - }, - "calendarEventData": { - "$ref": "AppsDynamiteSharedCalendarEventAnnotationData" - }, - "callData": { - "$ref": "AppsDynamiteSharedCallAnnotationData", - "description": "Data used to render call artifacts." - }, - "clientType": { - "enum": [ - "UNKNOWN_CLIENT_TYPE", - "MEET", - "TASKS", - "CALENDAR_EVENT", - "ASSISTANT", - "ACTIVITY_FEED_SERVICE" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "indexableTexts": { - "description": "A list of all strings that are to be indexed for this 1P chip. Each string in this list would be the contents of a single string field in the 1P chip. Eg. For Tasks[title = \u201chello world\u201d, description = \u201cgood bye\u201d]. If we want to index only the title, this would be set to [\u201chello world\u201d]. If both title and description, then this would be [\u201chello world\u201d, \u201cgood bye\u201d]. Please make sure that the contents of this field is a subset of strings that are rendered as part of the 1P Chip.", - "items": { - "type": "string" - }, - "type": "array" - }, - "tasksData": { - "$ref": "AppsDynamiteSharedTasksAnnotationData" - } - }, - "type": "object" - }, - "HangoutEvent": { - "id": "HangoutEvent", - "properties": { - "hangoutDurationSecs": { - "format": "int64", - "type": "string" - }, - "mediaType": { - "enum": [ - "AUDIO_VIDEO", - "AUDIO_ONLY", - "PUSH_TO_TALK" - ], - "enumDescriptions": [ - "", - "", - "A user has started a PTT broadcast. When receiving a notification with this HangoutMediaType, other users in the conversation will take different actions depending on their active clients: a) If there is a recent \"reasonable\" active client, the user will join hangout and play audio. b) If there is no \"reasonable\" active client an invite will be displayed on all clients." - ], - "type": "string" - }, - "participantId": { - "items": { - "$ref": "StoredParticipantId" - }, - "type": "array" - }, - "type": { - "enum": [ - "START_HANGOUT", - "JOIN_HANGOUT", - "LEAVE_HANGOUT", - "END_HANGOUT", - "HANGOUT_COMING_SOON", - "ONGOING_HANGOUT" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "HangoutVideoEventMetadata": { - "description": "A message representing the Hangout video start/end events in Babel", - "id": "HangoutVideoEventMetadata", - "properties": { - "hangoutVideoType": { - "enum": [ - "UNKNOWN_HANGOUT_VIDEO_EVENT_TYPE", - "VIDEO_START", - "VIDEO_END" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "HashtagData": { - "description": "Hashtag metadata, for HASHTAG segments. For a hashtag, the \"text\" field should contain the display text, and the search_text field should represent the topic being referenced, without the hash symbol; for example, we might have: text = \"#Google\" hashtag_data.search_text = \"Google\" Another example: text = \"#pikachu\" hashtag_data.search_text = \"Pokemon\" Both strings should be considered part of the searchable text. In go/sbe, both are indexed and searchable.", - "id": "HashtagData", - "properties": { - "searchText": { - "type": "string" - } - }, - "type": "object" - }, - "History": { - "description": "The most recent history records associated with the item.", - "id": "History", - "properties": { - "record": { - "items": { - "$ref": "HistoryRecord" - }, - "type": "array" - } - }, - "type": "object" - }, - "HistoryRecord": { - "id": "HistoryRecord", - "properties": { - "clientContext": { - "$ref": "ClientContext", - "description": "This will almost always be set, but there are corner cases in which the information is not available, and thus applications must handle its absence appropriately." - }, - "filterUpdate": { - "$ref": "FilterUpdate" - }, - "imapUpdate": { - "$ref": "ImapUpdate" - }, - "labelUpdate": { - "$ref": "LabelUpdate" - }, - "prefUpdate": { - "$ref": "PrefUpdate" - }, - "recordId": { - "description": "Each HistoryRecord has a unique id. Ids are monotonically increasing, and not necessarily contiguous.", - "format": "uint64", - "type": "string" - }, - "threadUpdate": { - "$ref": "ThreadUpdate" - }, - "transactionContext": { - "$ref": "TransactionContext", - "description": "This will almost always be set, but there are corner cases in which the information is not available, and thus applications must handle its absence appropriately." - }, - "txnDebugInfo": { - "$ref": "TransactionDebugInfo" - }, - "type": { - "enum": [ - "UNKNOWN", - "INTERNAL", - "MESSAGE_ADDED", - "MESSAGE_DELETED", - "LABEL_ADDED", - "LABEL_REMOVED", - "ATTRIBUTE_SET", - "ATTRIBUTE_REMOVED", - "THREAD_KEY_SET", - "LABEL_CREATED", - "LABEL_DELETED", - "LABEL_RENAMED", - "LABEL_UPDATED", - "PREF_WRITTEN", - "PREF_DELETED", - "FILTER_CREATED", - "FILTER_DELETED", - "IMAP_UIDS_REASSIGN", - "TOPIC_STATE_UPDATED", - "TXN_DEBUG_INFO" - ], - "enumDescriptions": [ - "Represents a type that is deprecated or not known by the executing code. Even if Fusebox sends a HistoryRecord with Type not UNKNOWN, it may send Type values that are not yet defined on the client-side, in which case they will be appear as Type.UNKNOWN on the client.", - "Represents a change internal to the Fusebox. HistoryRecords for Fusebox internal changes contribute to the user's version, which is defined as the latest HistoryRecord's record_id. INTERNAL HistoryRecords exist to allow a client to update its notion of the latest record_id it has processed, but do not necessarily contain any other information.", - "ThreadUpdate:", - "", - "", - "", - "", - "", - "", - "LabelUpdate:", - "", - "", - "", - "PrefUpdate:", - "", - "FilterUpdate:", - "", - "IMAP", - "EAI", - "TXN_DEBUG_INFO" - ], - "type": "string" - } - }, - "type": "object" - }, - "HostAppActionMarkup": { - "description": "Actions handled by individual host apps.", - "id": "HostAppActionMarkup", - "properties": { - "calendarAction": { - "$ref": "CalendarClientActionMarkup", - "description": "Actions handled by Calendar." - }, - "chatAction": { - "$ref": "ChatClientActionMarkup", - "description": "Actions handled by Chat." - }, - "driveAction": { - "$ref": "DriveClientActionMarkup", - "description": "Actions handled by Drive." - }, - "editorAction": { - "$ref": "EditorClientActionMarkup", - "description": "Actions handled by Docs, Sheets, or Slides." - }, - "gmailAction": { - "$ref": "GmailClientActionMarkup", - "description": "Actions handled by Gmail." - }, - "sheetsAction": { - "$ref": "SheetsClientActionMarkup", - "description": "Actions handled by Sheets." - } - }, - "type": "object" - }, - "HostProto": { - "description": "Represents a single host. Optionally, the MDB owner of the host can be specified.", - "id": "HostProto", - "properties": { - "hostName": { - "description": "Lower-case, fully qualified hostname.", - "type": "string" - }, - "hostOwner": { - "description": "If present, then any checks that compare this Principal to LOAS peer info must confirm the peer's machine owner is equal to 'host_owner'. If absent, then any peer machine owner is acceptable.", - "type": "string" - } - }, - "type": "object" - }, "HtmlOperatorOptions": { "description": "Used to provide a search operator for html properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.", "id": "HtmlOperatorOptions", @@ -10382,805 +5098,6 @@ }, "type": "object" }, - "IconImage": { - "id": "IconImage", - "properties": { - "altText": { - "description": "The alternative text of this icon_url which will be used for accessibility.", - "type": "string" - }, - "icon": { - "enum": [ - "NONE", - "AIRPLANE", - "BOOKMARK", - "BUS", - "CAR", - "CLOCK", - "CONFIRMATION_NUMBER_ICON", - "DOLLAR", - "DESCRIPTION", - "EDIT", - "EDIT_NOTE", - "EMAIL", - "EVENT_PERFORMER", - "EVENT_SEAT", - "FLIGHT_ARRIVAL", - "FLIGHT_DEPARTURE", - "HOTEL", - "HOTEL_ROOM_TYPE", - "INVITE", - "MAP_PIN", - "MEMBERSHIP", - "MULTIPLE_PEOPLE", - "OFFER", - "OPEN_IN_NEW", - "PERSON", - "PHONE", - "RESTAURANT_ICON", - "SHOPPING_CART", - "STAR", - "STORE", - "TICKET", - "TRAIN", - "VIDEO_CAMERA", - "VIDEO_PLAY" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "Add new items in alphabetical order. Next Available ID: 34" - ], - "type": "string" - }, - "iconUrl": { - "type": "string" - }, - "imageStyle": { - "description": "The image cropping style. Note that icons with a CIRCLE style are rendered larger than the default icon size.", - "enum": [ - "CROP_TYPE_NOT_SET", - "SQUARE", - "CIRCLE", - "RECTANGLE_CUSTOM", - "RECTANGLE_4_3" - ], - "enumDescriptions": [ - "No value specified.", - "Applies a square crop.", - "Applies a circular crop.", - "Applies a rectangular crop with a custom aspect ratio.", - "Applies a rectangular crop with a 4:3 aspect ratio." - ], - "type": "string" - } - }, - "type": "object" - }, - "Id": { - "description": "Identifies a particular object, including both Users and DirEntries. This Id is unique across the entire server instance, such as the production or qa instance.", - "id": "Id", - "properties": { - "creatorUserId": { - "description": "The User account in which the DirEntry was originally created. If name_space==GAIA, then it's the gaia_id of the user this id is referring to.", - "format": "uint64", - "type": "string" - }, - "localId": { - "description": "The local identifier for the DirEntry (local to the creator's account). local_id + app_name is guaranteed to be unique within the creator account, but not across all User accounts. The string is case sensitive. Ignore if name_space==GAIA. NB For name_space==COSMO, all local_id's should be defined in google3/java/com/google/storage/cosmo/server/api/SpecialObjectIds.java as they have a special predefined meaning. See cosmo.client.CosmoIdFactory.createObjectId(long,String) for IMPORTANT recommendations when generating IDs.", - "type": "string" - }, - "nameSpace": { - "description": "The name space in which this id is unique (typically the application that created it). Values should be drawn from the above enum, but for experimentation, use values greater than 1000.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "Image": { - "id": "Image", - "properties": { - "altText": { - "description": "The alternative text of this image which will be used for accessibility.", - "type": "string" - }, - "aspectRatio": { - "description": "The aspect ratio of this image (width/height).", - "format": "double", - "type": "number" - }, - "imageUrl": { - "description": "Image url specified by developers. Server side, we will wrap with FIFE so client apps can configure size/cropping/etc.", - "type": "string" - }, - "onClick": { - "$ref": "OnClick" - } - }, - "type": "object" - }, - "ImageButton": { - "id": "ImageButton", - "properties": { - "icon": { - "enum": [ - "NONE", - "AIRPLANE", - "BOOKMARK", - "BUS", - "CAR", - "CLOCK", - "CONFIRMATION_NUMBER_ICON", - "DOLLAR", - "DESCRIPTION", - "EDIT", - "EDIT_NOTE", - "EMAIL", - "EVENT_PERFORMER", - "EVENT_SEAT", - "FLIGHT_ARRIVAL", - "FLIGHT_DEPARTURE", - "HOTEL", - "HOTEL_ROOM_TYPE", - "INVITE", - "MAP_PIN", - "MEMBERSHIP", - "MULTIPLE_PEOPLE", - "OFFER", - "OPEN_IN_NEW", - "PERSON", - "PHONE", - "RESTAURANT_ICON", - "SHOPPING_CART", - "STAR", - "STORE", - "TICKET", - "TRAIN", - "VIDEO_CAMERA", - "VIDEO_PLAY" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "Add new items in alphabetical order. Next Available ID: 34" - ], - "type": "string" - }, - "iconUrl": { - "type": "string" - }, - "name": { - "type": "string" - }, - "onClick": { - "$ref": "OnClick" - } - }, - "type": "object" - }, - "ImageComponent": { - "description": "NOTE: Through future refactoring work, this image component will eventually be used in the Image widget, and will likely replace the Icon proto as well.", - "id": "ImageComponent", - "properties": { - "altText": { - "type": "string" - }, - "borderStyle": { - "$ref": "BorderStyle" - }, - "cropStyle": { - "$ref": "ImageCropStyle" - }, - "imageUrl": { - "type": "string" - } - }, - "type": "object" - }, - "ImageCropStyle": { - "description": "Represents a crop style that can be applied to an image.", - "id": "ImageCropStyle", - "properties": { - "aspectRatio": { - "description": "The aspect ratio to use if the crop type is RECTANGLE_CUSTOM.", - "format": "double", - "type": "number" - }, - "type": { - "description": "The crop type.", - "enum": [ - "CROP_TYPE_NOT_SET", - "SQUARE", - "CIRCLE", - "RECTANGLE_CUSTOM", - "RECTANGLE_4_3" - ], - "enumDescriptions": [ - "No value specified.", - "Applies a square crop.", - "Applies a circular crop.", - "Applies a rectangular crop with a custom aspect ratio.", - "Applies a rectangular crop with a 4:3 aspect ratio." - ], - "type": "string" - } - }, - "type": "object" - }, - "ImageKeyValue": { - "description": "This is deprecated and please use KeyValue.", - "id": "ImageKeyValue", - "properties": { - "icon": { - "enum": [ - "NONE", - "AIRPLANE", - "BOOKMARK", - "BUS", - "CAR", - "CLOCK", - "CONFIRMATION_NUMBER_ICON", - "DOLLAR", - "DESCRIPTION", - "EDIT", - "EDIT_NOTE", - "EMAIL", - "EVENT_PERFORMER", - "EVENT_SEAT", - "FLIGHT_ARRIVAL", - "FLIGHT_DEPARTURE", - "HOTEL", - "HOTEL_ROOM_TYPE", - "INVITE", - "MAP_PIN", - "MEMBERSHIP", - "MULTIPLE_PEOPLE", - "OFFER", - "OPEN_IN_NEW", - "PERSON", - "PHONE", - "RESTAURANT_ICON", - "SHOPPING_CART", - "STAR", - "STORE", - "TICKET", - "TRAIN", - "VIDEO_CAMERA", - "VIDEO_PLAY" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "Add new items in alphabetical order. Next Available ID: 34" - ], - "type": "string" - }, - "iconUrl": { - "type": "string" - }, - "onClick": { - "$ref": "OnClick" - }, - "text": { - "type": "string" - } - }, - "type": "object" - }, - "ImapSessionContext": { - "id": "ImapSessionContext", - "properties": { - "app": { - "enum": [ - "OTHER_APP", - "CHROME", - "FIREFOX", - "MSIE", - "SAFARI", - "OPERA", - "EDGE", - "MSIE_COMPATIBILITY", - "OTHER_BROWSER", - "SAMSUNG_BROWSER", - "UC_BROWSER", - "ANDROID_BROWSER", - "YANDEX_BROWSER", - "SILK_BROWSER", - "COC_COC_BROWSER", - "MAX_BROWSER_APP_VALUE", - "GMAIL_APP", - "GMAIL_INBOX_APP", - "ANDROID_EMAIL_APP", - "SAMSUNG_MAIL_APP", - "MOTO_EMAIL_APP", - "BOXER_APP", - "LIMILABS_MAIL_DLL", - "BIS_APP", - "OUTLOOK_MAIL_APP", - "APPLE_NATIVE_APP", - "CHROME_WEBVIEW_APP", - "SAFARI_WEBVIEW_APP", - "CHROME_SYNC_APP", - "GSA_APP", - "GMM_APP", - "CALENDAR_APP", - "PLUS_APP", - "HANGOUTS_APP", - "HANGOUTS_MEET_APP", - "JAMBOARD_APP", - "VOICE_APP", - "PHOTOS_APP", - "DRIVE_SYNC_APP", - "DRIVE_APP", - "DOCS_APP", - "SHEETS_APP", - "SLIDES_APP", - "KEEP_APP", - "WHATS_APP_IN_DRIVE_APP", - "TRANSLATE_APP", - "YOUTUBE_APP", - "YOUTUBE_MUSIC_APP", - "YOUTUBE_GAMING_APP", - "YOUTUBE_KIDS_APP", - "YOUTUBE_CAPTURE_APP", - "YOUTUBE_CREATOR_APP", - "YOUTUBE_GO_APP", - "YOUTUBE_TV_APP", - "YOUTUBE_VR_APP", - "PLAY_APP", - "PLAY_MUSIC_APP", - "PLAY_BOOKS_APP", - "PLAY_MOVIES_APP", - "PLAY_NEWSSTAND_APP", - "PLAY_GAMES_APP", - "POKEMON_GO_APP", - "ALLO_APP", - "DUO_APP", - "CLASSROOM_APP", - "TRIPS_APP", - "GOOGLE_PAY_APP", - "WAZE_APP", - "ASSISTANT_APP", - "GBOARD_APP", - "NEWS_APP", - "HOME_APP", - "EARTH_APP", - "STREET_VIEW_APP", - "TEZ_APP", - "GOOGLE_ANALYTICS_APP", - "ADSENSE_APP", - "ADWORDS_APP", - "EXPRESS_APP", - "WEAR_APP", - "GOOGLE_MY_BUSINESS_APP", - "FAMILY_LINK_APP", - "OPINION_REWARDS_APP", - "WALLET_APP", - "ARTS_AND_CULTURE_APP", - "ANDROID_DEVICE_MANAGER_APP", - "GOOGLE_GO_APP", - "FILES_GO_APP", - "DATALLY_APP", - "WIFI_APP", - "STADIA_APP", - "BATTLESTAR_APP", - "SMART_LOCK_APP", - "LOGDOG_APP", - "DEPRECATED_MAC_OSX_MAIL_APP", - "DEPRECATED_IOS_MAIL_APP" - ], - "enumDescriptions": [ - "Unknown", - "Browsers Google Chrome", - "Mozilla Firefox", - "Microsoft Internet Explorer", - "Apple Safari", - "Opera", - "Tag #7 used to be CHROME_WEBVIEW, which was deprecated and replaced by CHROME_WEBVIEW_APP. When adding a new browser, skip #7 for safety. Microsoft Edge", - "MSIE in Compatibility View. See b/22467241.", - "Browser not otherwise specified", - "Samsung browser on Android", - "UC Browser", - "Android's legacy default AOSP browser (distinct", - "from customized OEM flavours). Yandex Browser", - "Amazon Silk browser", - "Popoular browser in Vietnam", - "Tag for the maximum enum value that represents a browser. Enum values (strictly) between OTHER_APP and this value represent browsers. This should never appear in real data.", - "Email apps Gmail", - "Inbox by Gmail", - "Native Android email app", - "(replaced by Gmail in Lollipop) Samsung mail", - "Motorola email app", - "Boxer", - "Mail.dll by Limilabs", - "BlackBerry Internet Service", - "Microsoft Outlook", - "Apple apps (mail, contacts & calendar)", - "Chrome Webview", - "Safari Webview", - "Chrome Sync", - "Includes both Now and Search on GSA.", - "Maps", - "Calendar", - "Google+", - "Hangouts Classic", - "Hangouts Meet", - "Jamboard app (go/jamboard)", - "Google Voice", - "Photos", - "Drive Sync", - "Drive", - "Docs", - "Sheets", - "Slides", - "Keep", - "WhatsApp in Drive", - "Translate", - "YouTube", - "YouTube Music", - "YouTube Gaming", - "YouTube Kids", - "YouTube Capture", - "YouTube Creator Studio", - "YouTube Go", - "YouTube TV", - "YouTube VR", - "Google Play", - "Google Play Music", - "Google Play Books", - "Google Play Movies & TV", - "Google Play Newsstand", - "Google Play Games", - "Pokemon GO (uses Google to sign in)", - "Allo", - "Duo", - "Google Classroom", - "Google Trips", - "Google Pay (formerly Android Pay)", - "Waze", - "Google Assistant standalone app. iOS only,", - "since on Android OPA is integrated in GSA. Gboard - the Google Keyboard", - "Google News & Weather", - "Google Home app (rebranded from Chromecast app)", - "Google Earth", - "Google Street View", - "Tez payment app for India (go/paisa)", - "Google Analytics", - "AdSense", - "AdWords", - "Google Express (formerly Shopping Express)", - "Android Wear companion app", - "Google My Business", - "Google Family Link", - "Google Opinion Rewards", - "Google Wallet", - "Google Arts & Culture", - "Android Device Manager", - "Google Go", - "Files Go", - "Datally", - "Google Wifi (incl. OnHub)", - "Stadia (go/stadia)", - "Battlestar (go/battlestar)", - "SmartLock", - "Non-browser, non-mail, non-first-party apps LogDog (https://getlogdog.com/)", - "Do not remove this fields - remvoing them caused issues in the past (see cl/180425348 for reference).", - "" - ], - "type": "string" - }, - "deviceType": { - "description": "User agent information", - "enum": [ - "UNKNOWN", - "PC", - "MOBILE", - "TABLET", - "PORTABLE_MEDIA_PLAYER", - "TV", - "GAME_CONSOLE", - "MEDIA_PLAYER", - "SMART_SPEAKER", - "SMART_DISPLAY", - "CONNECTED_HOME_OTHER", - "WEARABLE", - "GLASS", - "CAR", - "VR_HEADSET" - ], - "enumDescriptions": [ - "Unknown device type.", - "PCs (incl. Macs). Desktops, laptops and various niche form factors that typically run desktop-class OSes (all-in-ones, HTPCs etc.).", - "Primarily used for phones, but also set as default for OSes that are predominantly for phones (Android, iOS etc.) when we can't determine otherwise.", - "Tablets.", - "Mobile devices which are not phones, but are capable of storing and playing digital media such as audio, images, and video files. Example: iPod.", - "Smart TVs which interact with Google products without an external additional device. Includes TV sets which run Android TV directly. Refers to actual TV screens, rather than connected boxes or dongles.", - "Devices whose primary purpose is playing games. Examples: Xbox, Playstation.", - "Add-on devices (i.e. devices which require connecting to another device, such as screens/TVs/speakers) whose primary purpose is media consumption (excludes physical TV screens). Examples: Chromecast, Roku, Apple TV, Nexus Player.", - "Examples: Google Home, Amazon Echo.", - "Examples: Google Home Display (Quartz/Manhattan/Jasper/Dragonglass), Amazon Echo Spot, Amazon Echo Show.", - "Other connected home devices which do not fit in any of the above categories; that is, neither media- or gaming-focused, nor primarily a voice-enabled speaker.", - "Wearable devices such as smartwatches.", - "Google Glass.", - "Examples: Android Auto (Embedded mode, not mirrored from phone).", - "Standalone VR headsets, such as the Lenovo Mirage Solo. Does not include phone-based VR (such as Daydream View or Gear VR) or PC/Console-based such as Oculus Rift, HTC Vive and PSVR; in such cases, the form factor may be PHONE, PC or GAME_CONSOLE as applicable." - ], - "type": "string" - }, - "guidFingerprint": { - "description": "As agreed with Bond team, this holds the fingerprint of any \"aguid\" or \"guid\" provided by the ID command. The fingerprint should be calculated by fingerprint2011. Note that not all clients will provide aguid or guid through ID command.", - "format": "uint64", - "type": "string" - }, - "os": { - "enum": [ - "UNKNOWN_OS", - "ANDROID_OS", - "IOS_OS", - "BLACKBERRY_OS", - "WIN_PHONE_OS", - "FIRE_OS", - "MAX_MOBILE_OS_VALUE", - "WINDOWS_OS", - "LINUX_OS", - "MAC_OS", - "CHROME_OS", - "PLAYSTATION_OS", - "XBOX_OS", - "TIZEN_OS", - "APPLE_TV_OS", - "KAI_OS", - "ANDROID_THINGS_OS", - "CAST_OS", - "STADIA_OS" - ], - "enumDescriptions": [ - "", - "Mobile operating systems (1-99).", - "", - "", - "", - "Amazon Fire OS (for Kindle Fire devices or Fire TV).", - "Tag for the maximum enum value that represents a mobile OS. Enum values (strictly) between UNKNOWN_OS and this value represent mobile OSes. This should never appear in real data.", - "PC operating systems.", - "", - "", - "", - "The OS powering Playstation consoles. Ignores OS changes across console generations.", - "The Windows-derived OS used on Xbox consoles.", - "Tizen OS, popular in Samsung TVs, watches and more.", - "Apple tvOS (powering the Apple TV).", - "KaiOS, a fork from Firefox OS that is between a full smartphone and a feature phone. Notably, it supports the Google Assistant. go/kaiosama", - "Android optimized for IoT devices. go/things", - "Cast family devices, including Chromecast, Google Home, and third-party speaker with integrated Assistant.", - "Stadia on Cast devices. This is not truly an OS, but it's a temporary setting since Stadia uses a different sign-in flow (and is revoked differently) from Cast. See http://go/stadia-in-google-account. Do not use without discussing with id-devices-eng@." - ], - "type": "string" - }, - "osVersion": { - "$ref": "OsVersion" - }, - "possiblyTrimmedModel": { - "$ref": "PossiblyTrimmedModel" - } - }, - "type": "object" - }, - "ImapSyncDelete": { - "description": "Message delete history record extension that exports //imapsync/folder attribute of deleted messages which have ^is label.", - "id": "ImapSyncDelete", - "properties": { - "mappings": { - "$ref": "FolderAttribute", - "description": "Contains the value of //imapsync/folder attribute of deleted message." - }, - "msgId": { - "format": "uint64", - "type": "string" - } - }, - "type": "object" - }, - "ImapUidsReassign": { - "id": "ImapUidsReassign", - "properties": { - "labelId": { - "description": "Label", - "type": "string" - }, - "messageId": { - "description": "The message Ids", - "items": { - "format": "uint64", - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "ImapUpdate": { - "description": "HistoryRecord for changes associated with IMAP, namely: IMAP_UIDS_REASSIGN", - "id": "ImapUpdate", - "properties": { - "imapUidsReassign": { - "$ref": "ImapUidsReassign" - } - }, - "type": "object" - }, - "ImapsyncFolderAttributeFolderMessage": { - "id": "ImapsyncFolderAttributeFolderMessage", - "properties": { - "flags": { - "$ref": "ImapsyncFolderAttributeFolderMessageFlags", - "description": "Flags of the message. Represents unseen and flagged state." - }, - "uid": { - "description": "UID of the message.", - "format": "uint64", - "type": "string" - } - }, - "type": "object" - }, - "ImapsyncFolderAttributeFolderMessageFlags": { - "id": "ImapsyncFolderAttributeFolderMessageFlags", - "properties": { - "flagged": { - "description": "Flagged state of the message.", - "type": "boolean" - }, - "seen": { - "description": "Seen state of the message.", - "type": "boolean" - } - }, - "type": "object" - }, - "IncomingWebhookChangedMetadata": { - "description": "Annotation metadata to display system messages for incoming webhook events. Next Tag: 7", - "id": "IncomingWebhookChangedMetadata", - "properties": { - "incomingWebhookName": { - "description": "The webhook name at the time of the change. Used in Spanner storage, BE API responses and FE API responses.", - "type": "string" - }, - "initiatorId": { - "$ref": "UserId", - "description": "The user id of the user whose action triggered this system message. Used in Spanner storage, BE API responses and FE API responses." - }, - "initiatorProfile": { - "$ref": "User", - "description": "Complete profile when ListTopicsRequest FetchOptions.USER is set. Otherwise, only the id will be filled in. Used in FE API responses." - }, - "obfuscatedIncomingWebhookId": { - "description": "The webhook id of the incoming webhook in question. This field should not be used to load webhook information dynamically and is only present for debugging purposes. Used in Spanner storage, BE API responses and FE API responses.", - "type": "string" - }, - "oldIncomingWebhookName": { - "description": "Only populated for UPDATED_NAME and UPDATED_NAME_AND_AVATAR events, where the webhook name was changed. Used in Spanner storage, BE API responses and FE API responses.", - "type": "string" - }, - "type": { - "description": "Used in Spanner storage, BE API responses and FE API responses.", - "enum": [ - "UNSPECIFIED", - "ADDED", - "UPDATED", - "REMOVED", - "UPDATED_NAME", - "UPDATED_AVATAR", - "UPDATED_NAME_AND_AVATAR" - ], - "enumDescriptions": [ - "", - "", - "TODO (b/154857280): remove UPDATED field.", - "", - "", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, "IndexItemOptions": { "id": "IndexItemOptions", "properties": { @@ -11232,45 +5149,6 @@ "properties": {}, "type": "object" }, - "InsertContent": { - "id": "InsertContent", - "properties": { - "content": { - "description": "The content to be inserted.", - "type": "string" - }, - "contentType": { - "description": "The type of inserted content.", - "enum": [ - "UNSPECIFIED_CONTENT_TYPE", - "TEXT", - "MUTABLE_HTML", - "IMMUTABLE_HTML" - ], - "enumDescriptions": [ - "Default value when nothing is set for ContentType.", - "Specifies that the content is in plain text.", - "Specifies that the content is in HTML and is mutable (can be edited).", - "Specifies that the content is in HTML and is immutable (cannot be edited)." - ], - "type": "string" - }, - "mimeType": { - "enum": [ - "UNSPECIFIED_EMAIL_MIME_TYPE", - "PLAIN_TEXT", - "HTML" - ], - "enumDescriptions": [ - "Default value when nothing is set for EmailMimeType.", - "Specifies that the inserted content is in plain text.", - "Specifies that the inserted content is in HTML." - ], - "type": "string" - } - }, - "type": "object" - }, "IntegerFacetingOptions": { "description": "Used to specify integer faceting options.", "id": "IntegerFacetingOptions", @@ -11358,46 +5236,6 @@ }, "type": "object" }, - "IntegrationConfigMutation": { - "id": "IntegrationConfigMutation", - "properties": { - "addApp": { - "$ref": "AppId", - "description": "Add an app using its identifier." - }, - "addPinnedItem": { - "$ref": "PinnedItemId", - "description": "Add a pinned tab using its identifier." - }, - "removeApp": { - "$ref": "AppId", - "description": "Remove an active app using its identifier." - }, - "removePinnedItem": { - "$ref": "PinnedItemId", - "description": "Remove an active pinned tab using its identifier." - } - }, - "type": "object" - }, - "IntegrationConfigUpdatedMetadata": { - "description": "Annotation metadata to display system message for integration config updated event. This metadata is stored in spanner, and can be dispatched to clients without any field modification or transformation.", - "id": "IntegrationConfigUpdatedMetadata", - "properties": { - "initiatorId": { - "$ref": "UserId", - "description": "The user whose action triggered this system message." - }, - "mutations": { - "description": "A list of updates applied on the integration config.", - "items": { - "$ref": "IntegrationConfigMutation" - }, - "type": "array" - } - }, - "type": "object" - }, "Interaction": { "description": "Represents an interaction between a user and an item.", "id": "Interaction", @@ -11427,33 +5265,6 @@ }, "type": "object" }, - "InviteAcceptedEvent": { - "id": "InviteAcceptedEvent", - "properties": { - "participantId": { - "items": { - "$ref": "StoredParticipantId" - }, - "type": "array" - } - }, - "type": "object" - }, - "InviteeInfo": { - "description": "Invitee information from a Dynamite invitation. See go/dynamite-invitee-mgmt.", - "id": "InviteeInfo", - "properties": { - "email": { - "description": "Email as typed by the user when invited to Room or DM. This value will be canonicalized and hashed before retained in storage.", - "type": "string" - }, - "userId": { - "$ref": "UserId", - "description": "Unique, immutable ID of the User." - } - }, - "type": "object" - }, "Item": { "description": "Represents a single object that is an item in the search index, such as a file, folder, or a database record.", "id": "Item", @@ -11702,12 +5513,6 @@ }, "type": "object" }, - "ItemParts": { - "description": "Container for type-specific extensions of an Item. This protobuf is defined in a separate file to allow types to reference/extend the message without depending on other fusebox protobufs. See items.proto.", - "id": "ItemParts", - "properties": {}, - "type": "object" - }, "ItemStatus": { "description": "This contains item's status and any errors.", "id": "ItemStatus", @@ -11762,423 +5567,6 @@ }, "type": "object" }, - "ItemThread": { - "description": "An ItemThread is an ordered list of Items. An ItemThread corresponds to a \"conversation\" in the context of mail. An Item belongs to exactly one ItemThread.", - "id": "ItemThread", - "properties": { - "clusterInfo": { - "$ref": "ClusterInfo" - }, - "item": { - "description": "The Items in the ItemThread. In the context of a search, the list of Items may be a subset of those that logically belong to the ItemThread. The details of which items are included are available in the ItemThreadView returned in the overall rpc response.", - "items": { - "$ref": "FuseboxItem" - }, - "type": "array" - }, - "lastItemId": { - "description": "The server id of the last item returned in the ItemThread. This can be deduced from the [item] list but is provided for convenience. When manually constructing an ItemThreadViewSpec to perform operations on the ItemThread, this value can be used as the [high_item_id_watermark].", - "format": "uint64", - "type": "string" - }, - "matchInfo": { - "$ref": "FuseboxItemThreadMatchInfo" - }, - "snippet": { - "description": "A snippet summarizing the thread. This field is only populated for searches.", - "type": "string" - }, - "threadKey": { - "$ref": "MultiKey", - "description": "The MultiKey that identifies this thread. This value never changes, i.e. remains constant across modifications to the thread, including addition, relabeling, or deletion of contained Items. As such, the thread key may not necessarily correspond to the key of an contained Item. Legacy note: The \"server_id\" of the thread key is equivalent to the notion of the \"original thread id\" in the CSS API." - }, - "threadLocator": { - "description": "A base64 encoded and encrypted string generated from the Gaia Id and the thread id. Used to generate the permalink for this thread, exposed from Gmail API.", - "type": "string" - }, - "topicState": { - "$ref": "TopicState", - "description": "Next available id : 10" - }, - "version": { - "description": "The latest history operation id that resulted in a mutation of any item in the thread.", - "format": "uint64", - "type": "string" - } - }, - "type": "object" - }, - "JobsettedServerSpec": { - "description": "Identifies a jobsetted server as a target for Trigger dispatch.", - "id": "JobsettedServerSpec", - "properties": { - "portName": { - "description": "E.g. \"gateway\", \"stubby\" etc. Leave unset to use the default unnamed port.", - "type": "string" - }, - "serverName": { - "description": "E.g. \"satellite-server\", \"bigtop-sync\", etc.", - "type": "string" - } - }, - "type": "object" - }, - "KeyValue": { - "id": "KeyValue", - "properties": { - "bottomLabel": { - "description": "Formatted text supported.", - "type": "string" - }, - "button": { - "$ref": "Button" - }, - "content": { - "description": "Formatted text supported and always required.", - "type": "string" - }, - "contentMultiline": { - "type": "boolean" - }, - "endIcon": { - "$ref": "IconImage" - }, - "icon": { - "enum": [ - "NONE", - "AIRPLANE", - "BOOKMARK", - "BUS", - "CAR", - "CLOCK", - "CONFIRMATION_NUMBER_ICON", - "DOLLAR", - "DESCRIPTION", - "EDIT", - "EDIT_NOTE", - "EMAIL", - "EVENT_PERFORMER", - "EVENT_SEAT", - "FLIGHT_ARRIVAL", - "FLIGHT_DEPARTURE", - "HOTEL", - "HOTEL_ROOM_TYPE", - "INVITE", - "MAP_PIN", - "MEMBERSHIP", - "MULTIPLE_PEOPLE", - "OFFER", - "OPEN_IN_NEW", - "PERSON", - "PHONE", - "RESTAURANT_ICON", - "SHOPPING_CART", - "STAR", - "STORE", - "TICKET", - "TRAIN", - "VIDEO_CAMERA", - "VIDEO_PLAY" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "Add new items in alphabetical order. Next Available ID: 34" - ], - "type": "string" - }, - "iconAltText": { - "description": "The alternative text of this icon_url which will be used for accessibility.", - "type": "string" - }, - "iconUrl": { - "type": "string" - }, - "imageStyle": { - "enum": [ - "CROP_TYPE_NOT_SET", - "SQUARE", - "CIRCLE", - "RECTANGLE_CUSTOM", - "RECTANGLE_4_3" - ], - "enumDescriptions": [ - "No value specified.", - "Applies a square crop.", - "Applies a circular crop.", - "Applies a rectangular crop with a custom aspect ratio.", - "Applies a rectangular crop with a 4:3 aspect ratio." - ], - "type": "string" - }, - "onClick": { - "$ref": "OnClick", - "description": "Only the top/bottom label + content region is clickable." - }, - "startIcon": { - "$ref": "IconImage", - "description": "The optional icon to display before the text content." - }, - "switchWidget": { - "$ref": "SwitchWidget" - }, - "topLabel": { - "description": "Formatted text supported.", - "type": "string" - } - }, - "type": "object" - }, - "LabelAdded": { - "description": "A label was added to some (subset of the) messages in this thread.", - "id": "LabelAdded", - "properties": { - "labelId": { - "type": "string" - }, - "labelName": { - "type": "string" - }, - "messageKeys": { - "items": { - "$ref": "MultiKey" - }, - "type": "array" - }, - "syncId": { - "format": "uint32", - "type": "integer" - } - }, - "type": "object" - }, - "LabelCreated": { - "description": "A label was created.", - "id": "LabelCreated", - "properties": {}, - "type": "object" - }, - "LabelDeleted": { - "description": "A label was deleted.", - "id": "LabelDeleted", - "properties": {}, - "type": "object" - }, - "LabelRemoved": { - "description": "A label was removed from some (subset of the) messages in this thread.", - "id": "LabelRemoved", - "properties": { - "labelId": { - "type": "string" - }, - "labelName": { - "type": "string" - }, - "messageKeys": { - "items": { - "$ref": "MultiKey" - }, - "type": "array" - }, - "syncId": { - "format": "uint32", - "type": "integer" - } - }, - "type": "object" - }, - "LabelRenamed": { - "description": "A label was renamed.", - "id": "LabelRenamed", - "properties": { - "oldCanonicalName": { - "type": "string" - } - }, - "type": "object" - }, - "LabelUpdate": { - "description": "HistoryRecord for changes associated with a label, namely: LABEL_CREATED LABEL_DELETED LABEL_RENAMED LABEL_UPDATED", - "id": "LabelUpdate", - "properties": { - "canonicalName": { - "type": "string" - }, - "labelCreated": { - "$ref": "LabelCreated" - }, - "labelDeleted": { - "$ref": "LabelDeleted" - }, - "labelId": { - "type": "string" - }, - "labelRenamed": { - "$ref": "LabelRenamed" - }, - "labelUpdated": { - "$ref": "LabelUpdated" - }, - "syncId": { - "format": "uint32", - "type": "integer" - } - }, - "type": "object" - }, - "LabelUpdated": { - "description": "A label pref was updated outside of a rename, create, or delete.", - "id": "LabelUpdated", - "properties": {}, - "type": "object" - }, - "Labels": { - "id": "Labels", - "properties": { - "displayName": { - "description": "The display name of the labels. This is populated (instead of the id) when the request fetch_spec has LABEL_DISPLAY_NAMES.", - "items": { - "type": "string" - }, - "type": "array" - }, - "id": { - "description": "The ids of the labels attached to the Item, e.g. \"^i\", \"^x_1\"", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "LanguageConfig": { - "description": "The language configuration for the session.", - "id": "LanguageConfig", - "properties": { - "spokenLanguages": { - "description": "The spoken language(s) in BCP47 language code.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "LdapGroupProto": { - "id": "LdapGroupProto", - "properties": { - "groupName": { - "type": "string" - } - }, - "type": "object" - }, - "LdapUserProto": { - "id": "LdapUserProto", - "properties": { - "userName": { - "type": "string" - } - }, - "type": "object" - }, - "LegacyUploadMetadata": { - "description": "The original UploadMetadata that this DriveMetadata was converted from.", - "id": "LegacyUploadMetadata", - "properties": { - "legacyUniqueId": { - "description": "A unique ID generated from legacy UploadMetadata. This is used for interopping URLs after uploading blob to shared drive. Links in Classic might break without this. go/drive-file-attachment-interop-from-dynamite.", - "type": "string" - }, - "uploadMetadata": { - "$ref": "UploadMetadata", - "description": "The blob in this UploadMetadata has been uploaded to shared drive. This UploadMetadata is no longer attached to a message. go/shared-drive-data-migration." - } - }, - "type": "object" - }, - "LinkData": { - "description": "Link metadata, for LINK segments. Anchor text should be stored in the \"text\" field of the Segment, which can also serve as a fallback.", - "id": "LinkData", - "properties": { - "attachment": { - "$ref": "SocialCommonAttachmentAttachment", - "description": "An Attachment represents the structured entity to which we are linking. It contains an Embed (apps/tacotown/proto/embeds/embed_client.proto) with fields specific to the appropriate type of linked entity. For example, if we are linking to a photo album, the Embed may include the album ID and gaia ID of the creator. Clients that understand the Embed type within the Attachment may construct and/or decorate their link appropriately e.g. to make use of type-specific functionality or first-party integrations. The link_target and (if appropriate) display_url fields must still be set even when an Attachment is present, so that clients who do not know how to interpret the Attachment can fall back to those fields, and render the Segment as an ordinary web link. N.B. Even when an Attachment is present, the intention of a \"LINK\" Segment is for the Segment to be presented inline with the rest of the text of a post or comment, with a clickable link or other UI suitable for inlining (though the client may modify the UI based on Attachment data, e.g. to add appropriate hovers, icons, etc.). When an entity is intended to be rendered separately from the main body of the post/comment, a separate Attachment proto can be added outside the set of Segments. N.B. Within the Attachment, fields of EmbedClientItem have their own visibility annotations, which should be enforced separately from Segment visibility annotations. See: apps/tacotown/proto/embeds/embed_annotations.proto" - }, - "attachmentRenderHint": { - "description": "The hint to use when rendering the associated attachment. Ignored if there is no associated attachment.", - "enum": [ - "ATTACHMENT_RENDER_HINT_UNKNOWN", - "ATTACHMENT_RENDER_HINT_AFTER", - "ATTACHMENT_RENDER_HINT_INTERLEAVED" - ], - "enumDescriptions": [ - "No rendering hint; should not be used (equivalent to having no hint)", - "Render any associated attachment at the end of the block, after all sibling Segments. Leave the link in place in the text and render it normally as well.", - "Render any associated attachment inline in the text in place of the link text, forcing a line break before and after the attachment so the text and the attachment are \"interleaved\". If this is not possible, render as if AFTER." - ], - "type": "string" - }, - "displayUrl": { - "description": "If we wish to show the user a different (e.g. shortened) version of the URL for display purposes, then that version should be set here. If this field isn't set, link_target will be used for both purposes.", - "type": "string" - }, - "linkTarget": { - "description": "link_target is the URL to navigate to when clicked. This could be the original URL, or a URL signed by the GWS URL signing service.", - "type": "string" - }, - "linkType": { - "description": "LinkType is an optional field that provides additional information regarding link target. For example, link type can be identified as the SELF_LINK when the request was executed from the same link as the link target.", - "enum": [ - "UNKNOWN_LINK_TYPE", - "SELF_LINK" - ], - "enumDescriptions": [ - "No link type specified.", - "This indicates that the link target points to the same object related to this segment. Example: A YouTube link with text=\"0.07\" and link_target: \"https://www.youtube.com/watch?v=leHVmSqd4_w&t=0m07s\" points to the same YouTube video where this segment appears. See http://go/ignore-badwords-filtering-for-selflink for adding link_type design document." - ], - "type": "string" - }, - "title": { - "description": "Title is an optional field that provides a short string that describes the link or its destination. User interfaces often use title as a tooltip or for accessibility purposes. However, they are of course free to present this data in any form. This field is plain text.", - "type": "string" - } - }, - "type": "object" - }, "ListDataSourceResponse": { "id": "ListDataSourceResponse", "properties": { @@ -12293,15 +5681,56 @@ }, "type": "object" }, - "MatchInfo": { - "id": "MatchInfo", + "MapInfo": { + "description": "Geo information used for rendering a map that shows the user's work location.", + "id": "MapInfo", "properties": { - "matchingImageReferenceKey": { - "description": "Reference keys for image attachments that matches search query.", + "lat": { + "description": "Latitude in degrees", + "format": "double", + "type": "number" + }, + "locationUrl": { + "$ref": "SafeUrlProto", + "description": "URL to a view of a map centered on the user's work location in Campus Maps (for google.com) or Google Maps (external)." + }, + "long": { + "description": "Longitude in degrees", + "format": "double", + "type": "number" + }, + "mapTile": { + "description": "MapTiles for the area around a user's work location", "items": { - "type": "string" + "$ref": "MapTile" }, "type": "array" + }, + "zoom": { + "description": "The zoom level of the map. A constant zoom value of 18 is used for now to match the zoom of the map shown on a Moma Teams Profile page", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "MapTile": { + "description": "Information used to render a map tile image in the proper location on a map.", + "id": "MapTile", + "properties": { + "imageUrl": { + "$ref": "SafeUrlProto", + "description": "URL to an image file containing an office layout of the user's location for their organization, if one is available. For google.com, this image is from Corp Campus Maps." + }, + "tileX": { + "description": "Map tile x coordinate", + "format": "double", + "type": "number" + }, + "tileY": { + "description": "Map tile y coordinate", + "format": "double", + "type": "number" } }, "type": "object" @@ -12323,31 +5752,6 @@ }, "type": "object" }, - "MdbGroupProto": { - "description": "An entity from the MDB namespace that is to be interpreted as a group. If using this for authorization, you should do an exact match of the peer role against group_name or any of the names in the Chubby expansion of the MDB group named group_name.", - "id": "MdbGroupProto", - "properties": { - "groupName": { - "type": "string" - } - }, - "type": "object" - }, - "MdbUserProto": { - "description": "An entity from the MDB namespace that is to be interpreted as a user. If using this for authorization, you should only do an exact match on the peer role against user_name.", - "id": "MdbUserProto", - "properties": { - "gaiaId": { - "description": "Do not set this field. Contact credentials-eng@ if you believe you absolutely need to use it. This is the @prod.google.com Gaia ID that corresponds to the MDB user, see go/authn-merge for details. This field may always be safely ignored when performing an authorization check.", - "format": "int64", - "type": "string" - }, - "userName": { - "type": "string" - } - }, - "type": "object" - }, "Media": { "description": "Media resource.", "id": "Media", @@ -12359,749 +5763,6 @@ }, "type": "object" }, - "MeetingSpace": { - "description": " A meeting space is a persistent object that is the context for one or more calls. The meeting space is what makes users find each other when they want to meet and to find shared resources. With two exceptions, all the fields in the meeting space resource are visible publicly to any client, even anonymous users. The exceptions are that * The call_info field is only visible to clients that have a device (as indicated by the meeting token) in the JOINED or HIDDEN state. * The meeting_alias field will only be set for users who are in the same domain as the meeting space. The meeting space resource (outside call_info) should only contain information necessary to join a call in the meeting space, and not any other metadata about the meeting space, such as what organization it belongs to or things related to ongoing calls.", - "id": "MeetingSpace", - "properties": { - "acceptedNumberClass": { - "description": "Which number classes are accepted by this meeting at the moment? When there is no ongoing conference, this field may change independent of the version number of the MeetingSpace. When a conference starts, this field will be locked to the value at that time, and then will be unlocked again at the end of the conference.", - "items": { - "enum": [ - "NUMBER_CLASS_UNSPECIFIED", - "LOW_COST", - "HIGH_COST", - "LEGACY" - ], - "enumDescriptions": [ - "No number class has been specified.", - "The number has a low cost to receive calls on.", - "The number has a high cost to receive calls on.", - "Class for legacy numbers." - ], - "type": "string" - }, - "type": "array" - }, - "broadcastAccess": { - "$ref": "BroadcastAccess", - "description": "Broadcast access information for this meeting space." - }, - "callInfo": { - "$ref": "CallInfo", - "description": "Information relevant to an ongoing conference. This field will be set in responses if the client requesting the meeting space has a device in one of the JOINED, HIDDEN, or MISSING_PREREQUISITES states. The field will also be set without a created device if the client requesting the meeting space is eligible to directly create a device in the JOINED state without knocking, eg a same-domain joiner. Can also only be updated by clients with a device in the JOINED state." - }, - "gatewayAccess": { - "$ref": "GatewayAccess", - "description": "The interop gateway access information for the meeting space. A gateway access can be used when joining conferences from non-Google equipment through an interop gateway." - }, - "gatewaySipAccess": { - "description": "The SIP based access methods that can be used to join the conference.", - "items": { - "$ref": "GatewaySipAccess" - }, - "type": "array" - }, - "meetingAlias": { - "description": "An optional alias for the meeting space. The alias can in some cases be resolved to the meeting space, similar to the meeting code. The limitation is that the user needs to be in the same meeting domain as the meeting space.", - "type": "string" - }, - "meetingCode": { - "description": "A meeting code is a globally unique code which points to a meeting space. Note: Meeting codes may be regenerated, which will cause old meeting codes to become invalid.", - "type": "string" - }, - "meetingSpaceId": { - "description": "A unique server-generated ID for the meeting space. This is the resource name of the meeting space resource and has the form `spaces/`, where is a sequence of characters in the [base64url set](https://tools.ietf.org/html/rfc4648#section-5), without any `=` characters.", - "type": "string" - }, - "meetingUrl": { - "description": "A URL to identify and access the meeting space. Output only.", - "type": "string" - }, - "moreJoinUrl": { - "description": "Output only. A URL that clients (e.g. Calendar) can use to show the web page with all join methods available for this meeting space. This link is also used in iOS universal links and Android intents, used for opening the \"More ways to join\" view in the Meet mobile apps. Example: https://tel.meet/mee-ting-cod?pin=1234567891011 Here, \"pin\" is the universal phone PIN. We include it explicitly to better support the offline case on the mobile. This is set when the meeting space has either a universal PIN or an interop PIN and clients who can show a \"more ways to join\" button should show it whenever this field is set.", - "readOnly": true, - "type": "string" - }, - "phoneAccess": { - "description": "All regional phone access methods for this meeting space. Can be empty.", - "items": { - "$ref": "PhoneAccess" - }, - "type": "array" - }, - "settings": { - "$ref": "Settings", - "description": "Settings of the meeting space." - }, - "universalPhoneAccess": { - "$ref": "UniversalPhoneAccess", - "description": "A universal phone access method for this meeting space. Can be unset." - } - }, - "type": "object" - }, - "Member": { - "id": "Member", - "properties": { - "roster": { - "$ref": "Roster" - }, - "user": { - "$ref": "User" - } - }, - "type": "object" - }, - "MemberId": { - "description": "Eventually this can be updated to a oneOf User, Space (for nested spaces), Bots or Service, as and when these use cases come up.", - "id": "MemberId", - "properties": { - "rosterId": { - "$ref": "RosterId", - "description": "Unique, immutable ID of the Roster." - }, - "userId": { - "$ref": "UserId", - "description": "Unique, immutable ID of the User." - } - }, - "type": "object" - }, - "MembershipChangeEvent": { - "id": "MembershipChangeEvent", - "properties": { - "leaveReason": { - "description": "This should only be set when MembershipChange type is LEAVE.", - "enum": [ - "LEAVE_REASON_UNKNOWN", - "FORCE_HISTORY_POLICY_CHANGE", - "USER_INITIATED" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "participantId": { - "items": { - "$ref": "StoredParticipantId" - }, - "type": "array" - }, - "type": { - "enum": [ - "JOIN", - "LEAVE" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "MembershipChangedMetadata": { - "description": "Annotation metadata to display system messages for membership changes. Next Tag: 8", - "id": "MembershipChangedMetadata", - "properties": { - "affectedMemberProfiles": { - "items": { - "$ref": "Member" - }, - "type": "array" - }, - "affectedMembers": { - "description": "List of users and rosters whose membership status changed.", - "items": { - "$ref": "MemberId" - }, - "type": "array" - }, - "affectedMemberships": { - "items": { - "$ref": "AffectedMembership" - }, - "type": "array" - }, - "initiator": { - "$ref": "UserId", - "description": "The user whose action triggered this system message." - }, - "initiatorProfile": { - "$ref": "User", - "description": "Complete member profiles, when ListTopicsRequest FetchOptions.USER is set. Otherwise, only the id will be filled in." - }, - "initiatorType": { - "description": "The type of the user who initiated this membership change.", - "enum": [ - "INITIATOR_TYPE_UNSPECIFIED", - "INITIATOR_TYPE_END_USER", - "INITIATOR_TYPE_ADMIN" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "type": { - "enum": [ - "TYPE_UNSPECIFIED", - "INVITED", - "JOINED", - "ADDED", - "REMOVED", - "LEFT", - "BOT_ADDED", - "BOT_REMOVED", - "KICKED_DUE_TO_OTR_CONFLICT", - "ROLE_UPDATED", - "ROLE_TARGET_AUDIENCE_UPDATED" - ], - "enumDescriptions": [ - "Default value for the enum. DO NOT USE.", - "Non-member -> Can join. Multiple groups and users.", - "Can join -> Member. One user.", - "Non-member -> Member. Multiple users.", - "Can join -> Non-member. One group or user.", - "Member -> Can join. One user.", - "Bot added to the room.", - "Bot removed from the room.", - "This signifies the user is kicked because the user's OTR policy is conflicted with the room history settings. Joined -> Non-member. One user.", - "MembershipRole changed. Multiple users.", - "The room is now joinable by an" - ], - "type": "string" - } - }, - "type": "object" - }, - "Menu": { - "description": "This is deprecated and please use SelectionControl by setting type to DROPDOWN.", - "id": "Menu", - "properties": { - "items": { - "items": { - "$ref": "MenuItem" - }, - "type": "array" - }, - "label": { - "description": "Label used to be displayed ahead of the menu. It is optional.", - "type": "string" - }, - "name": { - "description": "The name of the text field which is will be used in FormInput.", - "type": "string" - }, - "onChange": { - "$ref": "FormAction", - "description": "If specified, form is submitted when selection changed. If not specified, developer will need to specify a separate button." - } - }, - "type": "object" - }, - "MenuItem": { - "id": "MenuItem", - "properties": { - "selected": { - "type": "boolean" - }, - "text": { - "description": "The text to be displayed.", - "type": "string" - }, - "value": { - "description": "The value associated with this item which will be sent back to app scripts. Client should use as a form input value.", - "type": "string" - } - }, - "type": "object" - }, - "Message": { - "description": "Message posted to a Space.", - "id": "Message", - "properties": { - "annotations": { - "description": "Annotations parsed and extracted from the text body.", - "items": { - "$ref": "Annotation" - }, - "type": "array" - }, - "appProfile": { - "$ref": "AppsDynamiteSharedAppProfile", - "description": "Custom display profile info for apps. Leave the field empty for real users." - }, - "attachments": { - "description": "Attachments parsed from incoming webhooks", - "items": { - "$ref": "Attachment" - }, - "type": "array" - }, - "attributes": { - "$ref": "MessageAttributes", - "description": "Lightweight message attributes which values are calculated and set in the servers." - }, - "botResponses": { - "description": "Responses from bots indicating if extra auth/config is needed.", - "items": { - "$ref": "BotResponse" - }, - "type": "array" - }, - "communalLabels": { - "description": "Communal labels associated with a message. These exist on the message itself regardless of which user fetches them. Order of entries is arbitrary and will not list duplicates of the same label_id. See go/chat-labels-design for details.", - "items": { - "$ref": "CommunalLabelTag" - }, - "type": "array" - }, - "contentReportSummary": { - "$ref": "ContentReportSummary", - "readOnly": true - }, - "createTime": { - "description": "Time when the Message was posted in microseconds.", - "format": "int64", - "type": "string" - }, - "creatorId": { - "$ref": "UserId", - "description": "ID of the User who posted the Message. This includes information to identify if this was posted by an App on behalf of a user." - }, - "deletableBy": { - "description": "Indicates who can delete the message. This field is set on the read path (e.g. ListTopics) but doesn\u2019t have any effect on the write path (e.g. CreateMessageRequest).", - "enum": [ - "PERMISSION_UNSPECIFIED", - "PERMISSION_NO_ONE", - "PERMISSION_CREATOR", - "PERMISSION_MEMBER" - ], - "enumDescriptions": [ - "Default case, should never be used. If this data is encountered in the DB any request should throw an exception.", - "No one except for the message creator/origin pair can mutate. This permission checks both gaia id and the request origin. Request origin can be Chat API or Chat UI. Mutation is allowed iff both attributes of the request match the original message creation. Use case: this allows historical 1P apps lock down message edit permission i.e. In Chat UI, humans cannot edit their messages created via these 1P apps. Do not use this for additional use cases.", - "The message creator can mutate regardless of request origin. Use case: for messages created by human via Chat UI or Chat API. These messages can be mutated by the same human user via Chat UI or via any app on Chat API.", - "Every human member of a space or the creator can mutate the entity. This excludes app acting on behalf of human via Chat API. Use case: This is to enable humans to delete messages created by apps." - ], - "type": "string" - }, - "deleteTime": { - "description": "Time when the Message was deleted in microseconds. This field is set to nonzero value only for Messages deleted globally.", - "format": "int64", - "type": "string" - }, - "deleteTimeForRequester": { - "description": "Time when the Message was per-user deleted by the message requester in microseconds. This field is set to nonzero value only for Message per-user deleted by the requester.", - "format": "int64", - "type": "string" - }, - "deletedByVault": { - "description": "Was this message deleted by Vault (Only used for Vault support) This is false if message is live or message was deleted by user.", - "type": "boolean" - }, - "dlpScanOutcome": { - "description": "Data Loss Prevention scan information for this message. Messages are evaluated in the backend on create message/topic and edit message actions. DEPRECATED: use dlp_scan_summary instead.", - "enum": [ - "SCAN_UNKNOWN_OUTCOME", - "SCAN_SUCCEEDED_NO_VIOLATION", - "SCAN_SUCCEEDED_BLOCK", - "SCAN_SUCCEEDED_WARN", - "SCAN_SUCCEEDED_AUDIT_ONLY", - "SCAN_FAILURE_EXCEPTION", - "SCAN_FAILURE_RULE_FETCH_FAILED", - "SCAN_FAILURE_TIMEOUT", - "SCAN_FAILURE_ALL_RULES_FAILED", - "SCAN_FAILURE_ILLEGAL_STATE_FOR_ATTACHMENTS", - "SCAN_SKIPPED_EXPERIMENT_DISABLED", - "SCAN_SKIPPED_CONSUMER", - "SCAN_SKIPPED_NON_HUMAN_USER", - "SCAN_SKIPPED_NO_MESSAGE", - "SCAN_SKIPPED_USER_ACKNOWLEDGED_WARNING", - "SCAN_SKIPPED_MESSAGE_FROM_UNSUPPORTED_ORIGIN", - "SCAN_RULE_EVALUATION_SKIPPED_NO_RULES_FOUND", - "SCAN_RULE_EVALUATION_SKIPPED_NO_APPLICABLE_RULES_FOR_ACTION_PARAMS", - "SCAN_RULE_EVALUATION_SKIPPED_NO_APPLICABLE_RULES_FOR_TRIGGER", - "SCAN_RULE_EVALUATION_SKIPPED_CHANGELING_PERMANENT_ERROR", - "SCAN_RULE_EVALUATION_SKIPPED_CHANGELING_EMPTY_RESPONSE", - "SCAN_RULE_EVALUATION_SKIPPED_UNSUPPORTED_FILE_TYPE", - "SCAN_SUCCEEDED_WITH_FAILURES_NO_VIOLATION", - "SCAN_SUCCEEDED_WITH_FAILURES_BLOCK", - "SCAN_SUCCEEDED_WITH_FAILURES_WARN", - "SCAN_SUCCEEDED_WITH_FAILURES_AUDIT_ONLY" - ], - "enumDescriptions": [ - "", - "This means no violation is detected on the given message/attachment.", - "Violation is detected. The message/attachment will be blocked (or deleted if this happens in failure recovery), the user will be warned, and the violation will be logged to BIP.", - "Violation is detected. The user will be warned, and the violation will be logged to BIP.", - "Violation is detected and will be logged to BIP (no user-facing action performed).", - "Rule fetch and evaluation were attempted but an exception occurred.", - "Rule fetch was attempted but failed, so rule evaluation could not be performed.", - "Rule fetch and evaluation were attempted but the scanning timed out.", - "Rule fetch completed and evaluation were attempted, but all of the rules failed to be evaluated.", - "An IllegalStateException is thrown when executing DLP on attachments. This could happen if the space row is missing.", - "Rule fetch and evaluation is skipped because DLP is not enabled for the user.", - "Rule fetch and evaluation are skipped because the user sending message is consumer.", - "Rule fetch and evaluation are skipped because the user sending message is a non-human user (i.e. a bot).", - "Rule fetch and evaluation are skipped because there is no message to scan. Deprecated: this should not happen since there must be message or attachment for DLP scan.", - "Rule fetch and evaluation are skipped because the user has acknowledged the warning on the message that triggered the Warn violation and sent the message anyway.", - "Scanning was skipped because the message originated from Interop or Babel.", - "Rule fetch happened, but rule evaluation is skipped because no rules were found.", - "Rule fetch happened, but rule evaluation is skipped because none of the rules are applicable to the given action params.", - "Rule fetch happened, but rule evaluation is skipped because none of the rules are applicable to the given trigger.", - "Rule fetch happened, but rule evaluation is skipped because Changeling returned permanent failure while converting the attachment to text.", - "Rule fetch happened, but rule evaluation is skipped because Changeling returned an empty response while converting the attachment to text.", - "Rule fetch happened, but rule evaluation is skipped because file type is unsupported.", - "Rules were fetched but some evaluations failed. No violation was found in the rules that were successfully evaluated.", - "Rules were fetched but some evaluations failed. A blocking violation was found in the rules that were successfully evaluated. The message/attachment will be blocked, the user will be notified, and the violation will be logged to BIP. A blocking violation takes precedence over all other violation types.", - "Rules were fetched but some evaluations failed. A warn violation was found in the rules that were successfully evaluated. The user will be warned, and the violation will be logged to BIP.", - "Rules were fetched but some evaluations failed. An audit-only violation was found in the rules that were successfully evaluated. The violation will be logged to BIP (no user-facing action performed)." - ], - "type": "string" - }, - "dlpScanSummary": { - "$ref": "DlpScanSummary", - "description": "Data Loss Prevention scan information for this message. Messages are evaluated in the backend on create message/topic and edit message actions." - }, - "editableBy": { - "description": "Indicates who can edit the message. This field is set on the read path (e.g. ListTopics) but doesn\u2019t have any effect on the write path (e.g. CreateMessageRequest).", - "enum": [ - "PERMISSION_UNSPECIFIED", - "PERMISSION_NO_ONE", - "PERMISSION_CREATOR", - "PERMISSION_MEMBER" - ], - "enumDescriptions": [ - "Default case, should never be used. If this data is encountered in the DB any request should throw an exception.", - "No one except for the message creator/origin pair can mutate. This permission checks both gaia id and the request origin. Request origin can be Chat API or Chat UI. Mutation is allowed iff both attributes of the request match the original message creation. Use case: this allows historical 1P apps lock down message edit permission i.e. In Chat UI, humans cannot edit their messages created via these 1P apps. Do not use this for additional use cases.", - "The message creator can mutate regardless of request origin. Use case: for messages created by human via Chat UI or Chat API. These messages can be mutated by the same human user via Chat UI or via any app on Chat API.", - "Every human member of a space or the creator can mutate the entity. This excludes app acting on behalf of human via Chat API. Use case: This is to enable humans to delete messages created by apps." - ], - "type": "string" - }, - "fallbackText": { - "description": "A plain-text description of the attachment, used when clients cannot display formatted attachment (e.g. mobile push notifications).", - "type": "string" - }, - "id": { - "$ref": "MessageId", - "description": "ID of the resource." - }, - "isContentPurged": { - "description": "Whether the message is content purged. Content purged messages contain only data required for tombstone (see go/chat-infinite-tombstone). This field is only used by Vault to display tombstone and should only be set to true if the message is a tombstone.", - "type": "boolean" - }, - "isInlineReply": { - "description": "Output only. Indicates if the message is an inline reply. Set to true only if the message's ParentPath is non-NULL. Currently, only inline replies have non-NULL ParentPath. See go/chat-be-inline-reply-indicator.", - "readOnly": true, - "type": "boolean" - }, - "lastEditTime": { - "description": "If the message was edited by a user, timestamp of the last edit, in microseconds.", - "format": "int64", - "type": "string" - }, - "lastUpdateTime": { - "description": "Time when the Message text was last updated in microseconds.", - "format": "int64", - "type": "string" - }, - "localId": { - "description": "A unique id specified on the client side.", - "type": "string" - }, - "messageIntegrationPayload": { - "$ref": "AppsDynamiteSharedMessageIntegrationPayload", - "description": "An optional payload (restricted to 1P applications) that will be stored with this message. This can only be set by the 1P API and should be used to deliver additional data such a 1P sync version, 1P entity ID to the client for more advanced functionality [Eg. inform Group Tasks tab of new version while linking, fetch & render a live Task/Meet call tile]." - }, - "messageOrigin": { - "description": "Where the message was posted from", - "enum": [ - "ORIGIN_NOT_SET", - "ORIGIN_DYNAMITE", - "ORIGIN_BABEL_INTEROP_LIVE", - "ORIGIN_BABEL_INTEROP_RETRY", - "ORIGIN_BABEL", - "ORIGIN_BABEL_DUAL_WRITE", - "ORIGIN_BABEL_DUAL_WRITE_RETRY", - "ORIGIN_BACKFILL_FROM_PAPYRUS", - "ORIGIN_BACKFILL_FROM_GMAIL_ARCHIVE" - ], - "enumDescriptions": [ - "", - "", - "The message is from Babel (Hangouts Classic) interop.", - "The message is from Babel interop retries from Manifold queue.", - "The message came directly from Babel as source-of-truth", - "The message came directly from Babel during dual-write", - "The message came directly from Babel Manifold queue during dual write", - "The message was backfilled by go/dinnertrain as part of go/storage-consolidation. The backfill origin corresponds to the BackfillState in which the message was created.", - "" - ], - "type": "string" - }, - "messageState": { - "description": "State of the message, indicating whether the message is visible to all members in the group or is only visible to the sender only, or the private_message_viewer if it is set.", - "enum": [ - "PUBLIC", - "PRIVATE" - ], - "enumDescriptions": [ - "Default - visible to the room / DM.", - "Private state - only visible to the message creator, and the private_message_viewer if set." - ], - "type": "string" - }, - "originAppSuggestions": { - "description": "Indicates if this message contains any suggestions that were provided by any Apps.", - "items": { - "$ref": "AppsDynamiteSharedOriginAppSuggestion" - }, - "type": "array" - }, - "personalLabels": { - "description": "Personal labels associated with a message for the viewing user. Order of entries is arbitrary and will not list duplicates of the same label_id. See go/chat-labels-design for details. NOTE: This will be unpopulated in the case of SpaceChangelog events.", - "items": { - "$ref": "PersonalLabelTag" - }, - "type": "array" - }, - "privateMessageInfos": { - "description": "A list of per-user private information. This is deprecated, because we no longer plan to support partially private messages or private messages for multiple users. The message_state and private_message_viewer fields should be sufficient for this infrastructure.", - "items": { - "$ref": "PrivateMessageInfo" - }, - "type": "array" - }, - "privateMessageViewer": { - "$ref": "UserId", - "description": "Should only be set if the Message State is PRIVATE. If set, the message content is only visible to this user (and any apps associated with the message), as well as the message creator. If unset, a private message is visible to the message creator only." - }, - "props": { - "$ref": "MessageProps", - "description": "Contains additional (currently Hangouts Classic only) properties applicable to this message." - }, - "quotedByState": { - "description": "Output only. Whether this message has been quoted by another message or not. Used by clients to handle message edit flows for messages that have been quoted.", - "enum": [ - "QUOTED_BY_STATE_UNSPECIFIED", - "QUOTED_BY_STATE_HAS_BEEN_QUOTED", - "QUOTED_BY_STATE_HAS_NOT_BEEN_QUOTED" - ], - "enumDescriptions": [ - "Unspecified state for QuotedByState.", - "State to indicate that this message is quoted by another message (excluding purged message).", - "State to indicate that this message are not quoted by another message." - ], - "readOnly": true, - "type": "string" - }, - "quotedMessageMetadata": { - "$ref": "QuotedMessageMetadata", - "description": "Output only. Metadata for a message that is quoted by this message.", - "readOnly": true - }, - "reactions": { - "description": "A list of user reactions to this message. Ordered by the timestamp of the first reaction, ascending (oldest to newest).", - "items": { - "$ref": "AppsDynamiteSharedReaction" - }, - "type": "array" - }, - "reports": { - "description": "Output only. Details of content reports. Set only when the request asks for it.", - "items": { - "$ref": "ContentReport" - }, - "readOnly": true, - "type": "array" - }, - "retentionSettings": { - "$ref": "AppsDynamiteSharedRetentionSettings", - "description": "The retention settings of the message." - }, - "richTextFormattingType": { - "description": "Used by clients to correctly log format type for message creation due to complexity with client side optimistic update (see go/content-metric-post-send-logging for details). Currently, only set by server in the message or topic creation path.", - "enum": [ - "NONE", - "MARKDOWN", - "FORMAT_ANNOTATIONS", - "FORMAT_ANNOTATIONS_IGNORED", - "FORMAT_ANNOTATIONS_IGNORED_WITH_MARKDOWN" - ], - "enumDescriptions": [ - "", - "The formatting was specified as *markdown characters* in message text.", - "The formatting was specified as {@link com.google.apps.dynamite.v1.shared.FormatMetadata} annotations.", - "The client sent the format annotations, but didn't set the accept_format_annotations field to true. This shouldn't happen, but there might be some old clients that end up here.", - "A combination of MARKDOWN and FORMAT_ANNOTATIONS_IGNORED." - ], - "type": "string" - }, - "secondaryMessageKey": { - "description": "A client-specified string that can be used to uniquely identify a message in a space, in lieu of `id.message_id`.", - "type": "string" - }, - "textBody": { - "description": "Plaintext body of the Message.", - "type": "string" - }, - "tombstoneMetadata": { - "$ref": "TombstoneMetadata", - "description": "Information for the stoning of a Message." - }, - "updaterId": { - "$ref": "UserId", - "description": "ID of the User who last updated (created/edited/deleted) the Message. This includes information to identify if this was updated by an App on behalf of a user." - }, - "uploadMetadata": { - "description": "UploadMetadata b/36864213 is an ongoing effort to move UploadMetadata out of annotations field and save it to upload_metadata field only. After the migration, UploadMetadata will only be saved in this field.", - "items": { - "$ref": "UploadMetadata" - }, - "type": "array" - } - }, - "type": "object" - }, - "MessageAdded": { - "description": "A message was added. Specifying id and initial labels.", - "id": "MessageAdded", - "properties": { - "attributeIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "labelIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "messageKey": { - "$ref": "MultiKey" - }, - "syncIds": { - "description": "Note that there can be fewer sync ids than label ids.", - "items": { - "format": "uint32", - "type": "integer" - }, - "type": "array" - } - }, - "type": "object" - }, - "MessageAttributes": { - "description": "Stores tombstone message attributes: go/tombstone-message-attributes-overview", - "id": "MessageAttributes", - "properties": { - "isTombstone": { - "description": "If true: message is a tombstone in the client. Default false.", - "type": "boolean" - } - }, - "type": "object" - }, - "MessageDeleted": { - "description": "Some (subset of the) messages in this thread were deleted.", - "id": "MessageDeleted", - "properties": { - "imapSyncMappings": { - "description": "Value of coproc's message delete history record extension that exports /imapsync/folder attribute of deleted messages which have ^is label.", - "items": { - "$ref": "ImapSyncDelete" - }, - "type": "array" - }, - "messageKeys": { - "items": { - "$ref": "MultiKey" - }, - "type": "array" - } - }, - "type": "object" - }, - "MessageId": { - "description": "Primary key for Message resource.", - "id": "MessageId", - "properties": { - "messageId": { - "description": "Opaque, server-assigned ID of the Message. While this ID is guaranteed to be unique within the Space, it's not guaranteed to be globally unique.", - "type": "string" - }, - "parentId": { - "$ref": "MessageParentId", - "description": "ID of the Message's immediate parent." - } - }, - "type": "object" - }, - "MessageInfo": { - "id": "MessageInfo", - "properties": { - "message": { - "$ref": "Message", - "description": "The content of a matching message." - }, - "searcherMembershipState": { - "description": "Searcher's membership state in the space where the message is posted.", - "enum": [ - "MEMBER_UNKNOWN", - "MEMBER_INVITED", - "MEMBER_JOINED", - "MEMBER_NOT_A_MEMBER", - "MEMBER_FAILED" - ], - "enumDescriptions": [ - "Default state, do not use", - "An invitation to the space has been sent", - "User has joined the space", - "User is not a member", - "This state should never be stored in Spanner. It is a state for responses to the clients to indicate that membership mutations have failed and the member is in its previous state." - ], - "type": "string" - } - }, - "type": "object" - }, - "MessageParentId": { - "description": "Primary key identifying Message resource's immediate parent. For top-level Messages, either topic_id or chat_id is populated. For replies, message_id is populated with the topic Message's ID.", - "id": "MessageParentId", - "properties": { - "topicId": { - "$ref": "TopicId", - "description": "ID of the Topic this Message is posted to. NEXT TAG : 5" - } - }, - "type": "object" - }, - "MessageProps": { - "description": "Container for storing properties applicable to messages. For now (until storage consolidation is complete), it will only be used for babel props. In the future it could be used to house Dynamite properties for experimenting/rapid prototyping.", - "id": "MessageProps", - "properties": { - "babelProps": { - "$ref": "BabelMessageProps" - } - }, - "type": "object" - }, - "MessageSet": { - "description": "This is proto2's version of MessageSet.", - "id": "MessageSet", - "properties": {}, - "type": "object" - }, "Metadata": { "description": "Metadata of a matched search result.", "id": "Metadata", @@ -13164,22 +5825,6 @@ }, "type": "object" }, - "MultiKey": { - "description": "A union-like type for identifiying an object in storage. MultiKeys contain multiple key fields, each in a separate key space. At least one key field must be set. More than one key field may be set as long as all key values refer to the same object. All objects in storage have unique server_id keys. All MultiKeys returned from storage to storage clients will always have the server_id field set. When creating an object, if a MultiKey without a server_id is supplied to storage, the storage system will auto-assign a server ID to the new object. For all other storage requests (i.e. those not creating new objects), clients may omit server_id (as long as they supply another key). Instead of server ids, clients can specify string based client_assigned_perm_id keys. Mail message drafts are a prime example of these kinds of objects. Each time a user saves a new version of a draft, the storage system needs to create a new object with the updated draft content and needs to delete the object containing the old content. The new object gets a new SERVER_ID but should get the same CLIENT_ASSIGNED_PERM_ID as the now-deleted object containing the old content. Carrying forward the perm ID allows it to be used to consistently refer to the same logical object across revisions. These perm IDs save sync clients from having to deal with changing object IDs. For example, assume there's a mail message in storage with SERVER_ID = 123 and CLIENT_ASSIGNED_PERM_ID = \"foo\". The following are all valid ways of addressing the object using MultiKeys: 1) MultiKey { server_id = 123 } 2) MultiKey { server_id = 123, client_assigned_perm_id = \"foo\" } 3) MultiKey { client_assigned_perm_id = \"foo\" } Multikeys are never serialized in the storage. The individual keys are extracted and processed separately. Both the integer ids as well as string ids are indexed for efficient retrieval using the same fields in the backend. See go/tingle-multikeys for more information on background and motivation.", - "id": "MultiKey", - "properties": { - "clientAssignedPermId": { - "description": "A client-assigned string based key.", - "type": "string" - }, - "serverId": { - "description": "A server-assigned ID. This ID must be used only by Gmail and is constructed using millesecond ts << 20 + randomness. The ID affects the sort order of the index.", - "format": "uint64", - "type": "string" - } - }, - "type": "object" - }, "Name": { "description": "A person's name.", "id": "Name", @@ -13229,16 +5874,6 @@ }, "type": "object" }, - "OAuthConsumerProto": { - "description": "Represents an OAuth consumer, a/k/a AuthSub target. These principals are identified by domain name (e.g., example.com). Historically, Dasher domain GAIA group IDs have been used instead, but that doesn't work: http://go/tricky-gaia-ids", - "id": "OAuthConsumerProto", - "properties": { - "domain": { - "type": "string" - } - }, - "type": "object" - }, "ObjectDefinition": { "description": "The definition for an object within a data source.", "id": "ObjectDefinition", @@ -13328,91 +5963,6 @@ }, "type": "object" }, - "OnClick": { - "id": "OnClick", - "properties": { - "action": { - "$ref": "FormAction" - }, - "link": { - "description": "This can be used as a short form for OpenLink with the default OpenAs and OnClose. It may be undeprecated if this proves to be handy for developers.", - "type": "string" - }, - "openLink": { - "$ref": "OpenLink" - }, - "openLinkAction": { - "$ref": "FormAction", - "description": "An add-on triggers this action when the form 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." - } - }, - "type": "object" - }, - "OpenCreatedDraftActionMarkup": { - "id": "OpenCreatedDraftActionMarkup", - "properties": { - "draftId": { - "description": "The ID of the newly created draft in the form \"r123\".", - "type": "string" - }, - "draftStorageId": { - "description": "The server storage ID in hex format, for example,\"15e9fa622ce1029d\".", - "type": "string" - }, - "draftThreadId": { - "description": "The ID of the thread containing the newly created draft, for example, \"15e9fa622ce1029d\".", - "type": "string" - }, - "draftThreadServerPermId": { - "description": "The server permanent ID for the draft's thread. This field isn't set anywhere, and it's ignored when processing OpenCreatedDraftActionMarkup. Supply and use draftThreadStorageId instead.", - "type": "string" - } - }, - "type": "object" - }, - "OpenLink": { - "id": "OpenLink", - "properties": { - "loadIndicator": { - "description": "Next available ID: 5", - "enum": [ - "NONE", - "SPINNER" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "onClose": { - "enum": [ - "NOTHING", - "RELOAD_ADD_ON" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "openAs": { - "enum": [ - "FULL_SIZE", - "OVERLAY" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "url": { - "type": "string" - } - }, - "type": "object" - }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -13442,155 +5992,20 @@ "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" } }, "type": "object" }, - "OsVersion": { - "id": "OsVersion", + "PeoplePromotionCard": { + "id": "PeoplePromotionCard", "properties": { - "majorVersion": { - "format": "int32", - "type": "integer" - }, - "minorVersion": { - "format": "int32", - "type": "integer" - }, - "tertiaryVersion": { - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "OtrChatMessageEvent": { - "id": "OtrChatMessageEvent", - "properties": { - "expirationTimestampUsec": { - "format": "int64", - "type": "string" - }, - "kansasRowId": { - "type": "string" - }, - "kansasVersionInfo": { - "type": "string" - }, - "messageOtrStatus": { - "enum": [ - "OFF_THE_RECORD", - "ON_THE_RECORD" - ], - "enumDescriptions": [ - "The conversation is completely off the record.", - "The conversation is completely on the record." - ], - "type": "string" - } - }, - "type": "object" - }, - "OtrModificationEvent": { - "id": "OtrModificationEvent", - "properties": { - "newOtrStatus": { - "enum": [ - "OFF_THE_RECORD", - "ON_THE_RECORD" - ], - "enumDescriptions": [ - "The conversation is completely off the record.", - "The conversation is completely on the record." - ], - "type": "string" - }, - "newOtrToggle": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "enumDescriptions": [ - "The conversation can be toggled", - "The conversation cannot be toggled" - ], - "type": "string" - }, - "oldOtrStatus": { - "enum": [ - "OFF_THE_RECORD", - "ON_THE_RECORD" - ], - "enumDescriptions": [ - "The conversation is completely off the record.", - "The conversation is completely on the record." - ], - "type": "string" - }, - "oldOtrToggle": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "enumDescriptions": [ - "The conversation can be toggled", - "The conversation cannot be toggled" - ], - "type": "string" - } - }, - "type": "object" - }, - "PackagingServiceClient": { - "description": "Developers register a client in Google API Console to get the deep-linking feature on Google+ posts or frames about their apps. The client data is stored in this proto.", - "id": "PackagingServiceClient", - "properties": { - "androidPackageName": { - "description": "Android app's package name to generate the deep-link URI.", - "type": "string" - }, - "iosAppStoreId": { - "description": "iOS app's App Store ID to generate the App Store URL when app is not installed on device.", - "type": "string" - }, - "iosBundleId": { - "description": "iOS app's bundle ID to generate the deep-link URI.", - "type": "string" - }, - "type": { - "description": "Type of Google API Console client.", - "enum": [ - "ANDROID", - "IOS" - ], - "enumDescriptions": [ - "Client for Android app.", - "Client for iOS app." - ], - "type": "string" - } - }, - "type": "object" - }, - "PaygateInfo": { - "description": "Information provided to clients so that they can show upgrade promos and warnings on call ending early (for non-paying users).", - "id": "PaygateInfo", - "properties": { - "callEndingSoonWarningTime": { - "description": "Time when client should show message that the call is ending soon.", - "format": "google-datetime", - "type": "string" - }, - "callEndingTime": { - "description": "Time when the call will end if the user does not upgrade (after in-call upgrade support check has been implemented).", - "format": "google-datetime", - "type": "string" - }, - "showUpgradePromos": { - "description": "This boolean is used by clients to decide whether the user should be shown promos to upgrade.", - "type": "boolean" + "people": { + "items": { + "$ref": "PersonCore" + }, + "type": "array" } }, "type": "object" @@ -13649,39 +6064,197 @@ }, "type": "object" }, - "PersonalLabelTag": { - "description": "An individual instance (or \"tag\") of a label configured as a personal type that's associated with a message.", - "id": "PersonalLabelTag", + "PersonCore": { + "description": "Information for rendering a person. NEXT ID: 37", + "id": "PersonCore", "properties": { - "labelId": { - "description": "A string ID representing the label. Possible ID values are documented at go/chat-labels-howto:ids. Examples: \"^t\" for \"Starred\", \"^nu\" for \"Nudged\".", - "type": "string" - } - }, - "type": "object" - }, - "PhoneAccess": { - "description": "Phone access contains information required to dial into a conference using a regional phone number and a PIN that is specific to that phone number.", - "id": "PhoneAccess", - "properties": { - "formattedPhoneNumber": { - "description": "The phone number to dial for this meeting space in INTERNATIONAL format. Full phone number with a leading '+' character and whitespace separations.", + "addressMeAs": { + "description": "Instructions for how to address this person (e.g. custom pronouns). For google.com this is a set of pronouns from a defined list of options.", "type": "string" }, - "languageCode": { - "description": "The BCP 47/LDML language code for the language associated with this phone access. To be parsed by the i18n LanguageCode utility. Examples: \"es-419\" for Latin American Spanish, \"fr-CA\" for Canadian French.", + "adminTo": { + "description": "People the profile owner is an admin to. Note that not all fields of these PersonCores will be set, in particular, relationships will be empty.", + "items": { + "$ref": "PersonCore" + }, + "type": "array" + }, + "admins": { + "description": "The profile owner's admins in no particular order. Note that not all fields of these PersonCores will be set, in particular, relationships will be empty.", + "items": { + "$ref": "PersonCore" + }, + "type": "array" + }, + "availabilityStatus": { + "enum": [ + "UNKNOWN", + "OUT_OF_OFFICE", + "OUTSIDE_WORKING_HOURS", + "AVAILABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], "type": "string" }, - "phoneNumber": { - "description": "The phone number to dial for this meeting space in E.164 format. Full phone number with a leading '+' character.", + "birthday": { + "$ref": "Date", + "description": "Person birthday." + }, + "calendarUrl": { + "$ref": "SafeUrlProto", + "description": "The URL to open the profile owner's primary calendar." + }, + "chatUrl": { + "$ref": "SafeUrlProto", + "description": "The URL to start a chat conversation with the profile owner. For google.com this is a Hangouts URL." + }, + "costCenter": { + "description": "Person's cost center as a string, e.g. \"926: Googler Apps\".", "type": "string" }, - "pin": { - "description": "The PIN that users must enter after dialing the given number. The PIN consists of only decimal digits and the length may vary.", + "department": { + "description": "The person's Organization department, e.g. \"People Operations\". For google.com this is usually called \"area\".", "type": "string" }, - "regionCode": { - "description": "The CLDR/ISO 3166 region code for the country associated with this phone access. To be parsed by the i18n RegionCode utility. Example: \"SE\" for Sweden.", + "directReports": { + "description": "A subset of the profile owner's direct reports. The number of entities here may be less than total_direct_reports_count, because typically ProfileResponse does not include all the person's reports, if there are too many to retrieve efficiently. Note that not all fields of these PersonCores will be set, in particular, relationships will be empty.", + "items": { + "$ref": "PersonCore" + }, + "type": "array" + }, + "dottedLineManagers": { + "description": "The profile owner's direct dotted line managers in no particular order. Note that not all fields of these PersonCores will be set, in particular, relationships will be empty.", + "items": { + "$ref": "PersonCore" + }, + "type": "array" + }, + "dottedLineReports": { + "description": "A subset of the profile owner's dotted-line reports. The number of entities here may be less than total_dlr_count. Note that not all fields of these PersonCores will be set, in particular, relationships will be empty.", + "items": { + "$ref": "PersonCore" + }, + "type": "array" + }, + "emails": { + "description": "E-mail addresses of the person. The primary or preferred email should be first.", + "items": { + "type": "string" + }, + "type": "array" + }, + "employeeId": { + "description": "Person's employee number (external ID of type \"organization\") For google.com this is the badge number (e.g. 2 for Larry Page).", + "type": "string" + }, + "fingerprint": { + "description": "A fingerprint used by PAPI to reliably determine if a resource has changed Externally it is used as part of the etag.", + "type": "string" + }, + "ftePermille": { + "description": "Full-time equivalent (in \u2030) (e.g. 800 for a person who's working 80%).", + "format": "int64", + "type": "string" + }, + "geoLocation": { + "$ref": "MapInfo" + }, + "gmailUrl": { + "type": "string" + }, + "jobTitle": { + "description": "Profile owner's job title (e.g. \"Software Engineer\"). For google.com this is the Workday preferred job title.", + "type": "string" + }, + "keywordTypes": { + "description": "List of keys to use from the map 'keywords'.", + "items": { + "type": "string" + }, + "type": "array" + }, + "keywords": { + "additionalProperties": { + "type": "string" + }, + "description": "Custom keywords the domain admin has added.", + "type": "object" + }, + "links": { + "description": "Custom links the profile owner has added.", + "items": { + "$ref": "EnterpriseTopazFrontendTeamsLink" + }, + "type": "array" + }, + "location": { + "description": "Detailed desk location within the company. For google.com this is the desk location code (e.g. \"DE-MUC-ARP-6T2-6T2C0C\") if the person has a desk.", + "type": "string" + }, + "managers": { + "description": "The profile owner's management chain from top to bottom, where managers[0] is the CEO, manager[N-2] is the person's manager's manager and managers[N-1] is the person's direct manager. Note that not all fields of these PersonCores will be set, in particular, relationships will be empty.", + "items": { + "$ref": "PersonCore" + }, + "type": "array" + }, + "mission": { + "description": "Custom mission statement the profile owner has added.", + "type": "string" + }, + "name": { + "description": "Human-readable Unicode display name.", + "type": "string" + }, + "officeLocation": { + "description": "Office/building identifier within the company. For google.com this is the office code (e.g. \"DE-MUC-ARP\").", + "type": "string" + }, + "personId": { + "description": "The person's obfuscated Gaia ID.", + "type": "string" + }, + "phoneNumbers": { + "items": { + "$ref": "EnterpriseTopazFrontendTeamsPersonCorePhoneNumber" + }, + "type": "array" + }, + "photoUrl": { + "$ref": "SafeUrlProto", + "description": "Person photo." + }, + "postalAddress": { + "description": "Postal address of office/building.", + "type": "string" + }, + "totalDirectReportsCount": { + "description": "Total count of the profile owner's direct reports.", + "format": "int32", + "type": "integer" + }, + "totalDlrCount": { + "description": "Total count of the profile owner's dotted-line reports.", + "format": "int32", + "type": "integer" + }, + "totalFteCount": { + "description": "The sum of all profile owner's reports and their own full-time-equivalents in \u2030 (e.g. 1800 if one report is working 80% and profile owner 100%).", + "format": "int64", + "type": "string" + }, + "username": { + "description": "External ID of type \"login_id\" for the profile. For google.com this is the username/LDAP.", + "type": "string" + }, + "waldoComeBackTime": { + "format": "google-datetime", "type": "string" } }, @@ -13722,16 +6295,6 @@ }, "type": "object" }, - "PinnedItemId": { - "id": "PinnedItemId", - "properties": { - "driveId": { - "description": "Identifier for a Drive file (e.g. Docs, Sheets, Slides).", - "type": "string" - } - }, - "type": "object" - }, "PollItemsRequest": { "id": "PollItemsRequest", "properties": { @@ -13789,116 +6352,6 @@ }, "type": "object" }, - "PossiblyTrimmedModel": { - "description": "This message contains either the device model, or a prefix of the device model (AKA a trimmed device model). The \"is_trimmed\" field indicates which one it is.", - "id": "PossiblyTrimmedModel", - "properties": { - "isTrimmed": { - "type": "boolean" - }, - "model": { - "type": "string" - } - }, - "type": "object" - }, - "PostiniUserProto": { - "description": "See http://s/?fileprint=//depot/google3/security/authentication/postini/auth_token.proto", - "id": "PostiniUserProto", - "properties": { - "postiniUserId": { - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "PreState": { - "description": "State of the thread previous to the update. This really just describes the label state of all messages before the update.", - "id": "PreState", - "properties": { - "labelIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "messageKey": { - "$ref": "MultiKey" - }, - "syncIds": { - "description": "Note that there can be fewer sync ids than label ids.", - "items": { - "format": "uint32", - "type": "integer" - }, - "type": "array" - }, - "threadKey": { - "$ref": "MultiKey" - } - }, - "type": "object" - }, - "PrefDeleted": { - "description": "PREF_DELETED", - "id": "PrefDeleted", - "properties": {}, - "type": "object" - }, - "PrefUpdate": { - "description": "HistoryRecord for changes associated with prefs, namely: PREF_WRITTEN PREF_DELETED", - "id": "PrefUpdate", - "properties": { - "name": { - "description": "Name of the affected preference.", - "type": "string" - }, - "preState": { - "$ref": "FuseboxPrefUpdatePreState" - }, - "prefDeleted": { - "$ref": "PrefDeleted" - }, - "prefWritten": { - "$ref": "PrefWritten" - } - }, - "type": "object" - }, - "PrefWritten": { - "description": "PREF_WRITTEN", - "id": "PrefWritten", - "properties": { - "value": { - "format": "byte", - "type": "string" - } - }, - "type": "object" - }, - "Presenter": { - "description": "Presenter contains information about which device is currently presenting as well as which device requested the presenter to be set.", - "id": "Presenter", - "properties": { - "byDeviceId": { - "description": "The device resource name of the device which requested the current presenter to be set. This field can not be modified by clients.", - "type": "string" - }, - "copresenterDeviceIds": { - "description": "The device resource names of other devices which can control the current presentation.", - "items": { - "type": "string" - }, - "type": "array" - }, - "presenterDeviceId": { - "description": "The device resource name of the currently presenting device.", - "type": "string" - } - }, - "type": "object" - }, "Principal": { "description": "Reference to a user, group, or domain.", "id": "Principal", @@ -13918,222 +6371,6 @@ }, "type": "object" }, - "PrincipalProto": { - "description": "A Principal represents something to which permissions are assigned, often but not always a user or group of some kind. It is most appropriate for use in ACLs and authorization checks. Callers should prefer to use the wrapper classes in google3/security/credentials/public/principal.h google3/java/com/google/security/credentials/Principal.java google3/security/credentials/go/principal.go unless direct proto access is essential. If you update this protocol buffer, please update the wrapper classes as well. LINT.IfChange", - "id": "PrincipalProto", - "properties": { - "allAuthenticatedUsers": { - "$ref": "AllAuthenticatedUsersProto", - "description": "scope = ALL_AUTHENTICATED_USERS" - }, - "capTokenHolder": { - "$ref": "CapTokenHolderProto", - "description": "scope = CAP_TOKEN_HOLDER" - }, - "chat": { - "$ref": "ChatProto", - "description": "scope = CHAT" - }, - "circle": { - "$ref": "CircleProto", - "description": "scope = CIRCLE" - }, - "cloudPrincipal": { - "$ref": "CloudPrincipalProto", - "description": "scope = CLOUD_PRINCIPAL" - }, - "contactGroup": { - "$ref": "ContactGroupProto", - "description": "scope = CONTACT_GROUP" - }, - "emailOwner": { - "$ref": "EmailOwnerProto", - "description": "scope = EMAIL_OWNER" - }, - "event": { - "$ref": "EventProto", - "description": "scope = EVENT" - }, - "gaiaGroup": { - "$ref": "GaiaGroupProto", - "description": "scope = GAIA_GROUP" - }, - "gaiaUser": { - "$ref": "GaiaUserProto", - "description": "scope = GAIA_USER" - }, - "host": { - "$ref": "HostProto", - "description": "scope = HOST" - }, - "ldapGroup": { - "$ref": "LdapGroupProto", - "description": "scope = LDAP_GROUP" - }, - "ldapUser": { - "$ref": "LdapUserProto", - "description": "scope = LDAP_USER" - }, - "mdbGroup": { - "$ref": "MdbGroupProto", - "description": "scope = MDB_GROUP" - }, - "mdbUser": { - "$ref": "MdbUserProto", - "description": "scope = MDB_USER" - }, - "oauthConsumer": { - "$ref": "OAuthConsumerProto", - "description": "scope = OAUTH_CONSUMER;" - }, - "postiniUser": { - "$ref": "PostiniUserProto", - "description": "scope = POSTINI_USER" - }, - "rbacRole": { - "$ref": "RbacRoleProto", - "description": "scope = RBAC_ROLE" - }, - "rbacSubject": { - "$ref": "RbacSubjectProto", - "description": "scope = RBAC_SUBJECT" - }, - "resourceRole": { - "$ref": "ResourceRoleProto", - "description": "scope = RESOURCE_ROLE" - }, - "scope": { - "description": "This is only optional because required enums cannot be extended. Currently required.", - "enum": [ - "INVALID", - "GAIA_USER", - "GAIA_GROUP", - "LDAP_USER", - "LDAP_GROUP", - "MDB_USER", - "MDB_GROUP", - "POSTINI_USER", - "CONTACT_GROUP", - "SIMPLE_SECRET_HOLDER", - "SIGNING_KEY_POSSESSOR", - "ALL_AUTHENTICATED_USERS", - "OAUTH_CONSUMER", - "HOST", - "SOCIAL_GRAPH_NODE", - "EMAIL_OWNER", - "CAP_TOKEN_HOLDER", - "CIRCLE", - "SQUARE", - "EVENT", - "RESOURCE_ROLE", - "CHAT", - "YOUTUBE_USER", - "UNUSED_ZWIEBACK_SESSION", - "ZWIEBACK_SESSION", - "RBAC_ROLE", - "RBAC_SUBJECT", - "CLOUD_PRINCIPAL" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "next tag: 29" - ], - "type": "string" - }, - "signingKeyPossessor": { - "$ref": "SigningKeyPossessorProto", - "description": "scope = SIGNING_KEY_POSSESSOR" - }, - "simpleSecretHolder": { - "$ref": "SimpleSecretHolderProto", - "description": "scope = SIMPLE_SECRET_HOLDER" - }, - "socialGraphNode": { - "$ref": "SocialGraphNodeProto", - "description": "scope = SOCIAL_GRAPH_NODE" - }, - "square": { - "$ref": "SquareProto", - "description": "scope = SQUARE" - }, - "youtubeUser": { - "$ref": "YoutubeUserProto", - "description": "scope = YOUTUBE_USER" - }, - "zwiebackSession": { - "$ref": "ZwiebackSessionProto", - "description": "scope = ZWIEBACK_SESSION" - } - }, - "type": "object" - }, - "PrivateMessageInfo": { - "description": "Private message information specific to a given user. DEPRECATED: Use the privateMessageViewer field in CreateMessageInfo instead.", - "id": "PrivateMessageInfo", - "properties": { - "annotations": { - "description": "Annotations private to {@code userId}.", - "items": { - "$ref": "Annotation" - }, - "type": "array" - }, - "attachments": { - "description": "Attachments private to {@code userId}.", - "items": { - "$ref": "Attachment" - }, - "type": "array" - }, - "contextualAddOnMarkup": { - "items": { - "$ref": "GoogleChatV1ContextualAddOnMarkup" - }, - "type": "array" - }, - "gsuiteIntegrationMetadata": { - "items": { - "$ref": "GsuiteIntegrationMetadata" - }, - "type": "array" - }, - "text": { - "description": "Text private to {@code user_id}. Initial restriction: Only one of public text or private text is rendered on the client. So if public text is set, private text is ignored.", - "type": "string" - }, - "userId": { - "$ref": "UserId", - "description": "Required. The elements in this struct are visible to this user." - } - }, - "type": "object" - }, "ProcessingError": { "id": "ProcessingError", "properties": { @@ -14246,42 +6483,6 @@ }, "type": "object" }, - "Provenance": { - "description": "This field records where the ItemScope was retrieved, if it was created via a web fetch.", - "id": "Provenance", - "properties": { - "annotationBlob": { - "description": "Annotation blob from Annotation Service.", - "format": "byte", - "type": "string" - }, - "canonicalUrl": { - "description": "Canonical url of the retrieved_url, if one was resolved during retrieval, for example, if a rel=\"canonical\" link tag was provided in the retrieved web page.", - "type": "string" - }, - "inputUrl": { - "description": "The url originally passed in the PRS request, which should be used to re-discover the content. Note that this URL may be a forwarding service or link shortener (bit.ly), so it should not be assumed to be canonical, but should be used for navigation back to the original source of the itemscope.", - "type": "string" - }, - "itemtype": { - "description": "Contains exact types as parsed, whether or not we recognized that type at parse time. If an itemscope is created by merging SchemaOrg markup and open graph markup then the first itemtype would be schemaorg type, the second would be open graph and so on. example: http://schema.org/VideoObject, og:video.movie Plain text; usually a URL", - "items": { - "type": "string" - }, - "type": "array" - }, - "retrievedTimestampMsec": { - "description": "The server retrieved timestamp (in msec).", - "format": "uint64", - "type": "string" - }, - "retrievedUrl": { - "description": "The final URL that was the actual source of the itemscope, after any redirects.", - "type": "string" - } - }, - "type": "object" - }, "PushItem": { "description": "Represents an item to be pushed to the indexing queue.", "id": "PushItem", @@ -14350,6 +6551,17 @@ }, "type": "object" }, + "QueryActivity": { + "description": "Details about a user's query activity.", + "id": "QueryActivity", + "properties": { + "query": { + "description": "User input query to be logged/removed.", + "type": "string" + } + }, + "type": "object" + }, "QueryCountByStatus": { "id": "QueryCountByStatus", "properties": { @@ -14559,351 +6771,25 @@ "properties": {}, "type": "object" }, - "QuotedMessageMetadata": { - "description": "Quote metadata: go/message-quoting-be-dd-v2. This proto is only used on the read path. For the request proto, refer to `QuotedMessagePayload`. Fields are either derived from storage directly from the Item this metadata belongs to, or is hydrated at read time from another Item read. Note: QuotedMessageMetadata proto is similar to Message proto with less field. Reasons to differtiate QuotedMessageMetadata from Message are: 1. Not all fields for original message is applicable for quoted message. (E.g. reactions, is_inline_reply, etc.), thus separting out for confusion. 2. We don't support nested message quoting. For more detailed discussion, please see http://shortn/_VsSXQb2C7P. For future reference: if your new feature/field will be supported in message quoting feature (go/chat-quoting-prd), you will need to add that field within QuotedMessageMetadata", - "id": "QuotedMessageMetadata", + "RemoveActivityRequest": { + "description": "Remove Logged Activity Request.", + "id": "RemoveActivityRequest", "properties": { - "annotations": { - "description": "Output only. Snapshot of the annotations of the quoted message.", - "items": { - "$ref": "Annotation" - }, - "readOnly": true, - "type": "array" + "requestOptions": { + "$ref": "RequestOptions", + "description": "Request options, such as the search application and clientId." }, - "appProfile": { - "$ref": "AppsDynamiteSharedAppProfile", - "description": "Output only. Custom display profile info for apps. Will be empty for real users.", - "readOnly": true - }, - "botAttachmentState": { - "description": "Output only. The bot attachment state of the quoted message. Used by clients to display a bot attachment indicator in the UI.", - "enum": [ - "BOT_ATTACHMENT_STATE_UNSPECIFIED", - "BOT_ATTACHMENT_STATE_HAS_BOT_ATTACHMENT", - "BOT_ATTACHMENT_STATE_NO_BOT_ATTACHMENT" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "readOnly": true, - "type": "string" - }, - "createTimeMicros": { - "description": "Output only. Time when the quoted message was posted in microseconds.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "creatorId": { - "$ref": "UserId", - "description": "Output only. ID of the User who posted the quoted message. This includes information to identify if the quoted message was posted by an App on behalf of a user.", - "readOnly": true - }, - "lastEditTimeMicros": { - "description": "Output only. Time when the quoted message was last edited by a user at the time when quoting action happens. Time is in microseconds.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "lastUpdateTimeWhenQuotedMicros": { - "description": "The `last_update_time` of the original message when the client initiated the quote creation. This is derived from the request payload passed from clients. Used to fetch the quoted message contents at a specific time on the read path. This field is populated from storage directly.", - "format": "int64", - "type": "string" - }, - "messageId": { - "$ref": "MessageId", - "description": "MessageId of the original message that is being quoted. This is derived from the request payload passed from clients. This field is populated from storage directly." - }, - "messageState": { - "description": "Output only. The state of the quoted message. Used by clients to display tombstones for quotes that reference a deleted message.", - "enum": [ - "MESSAGE_STATE_UNSPECIFIED", - "MESSAGE_STATE_ACTIVE", - "MESSAGE_STATE_DELETED", - "MESSAGE_STATE_OTR_EDITED" - ], - "enumDescriptions": [ - "", - "The original message is present in storage and not deleted; the message contents can be hydrated.", - "The original message has been deleted; the message contents cannot be hydrated.", - "The OTR original message was edited and therefore no longer retrievable from storage; the message contents cannot be hydrated. See go/message-quoting-otr-edits for more context." - ], - "readOnly": true, - "type": "string" - }, - "retentionSettings": { - "$ref": "AppsDynamiteSharedRetentionSettings", - "description": "Output only. The retention (OTR) settings of the quoted message.", - "readOnly": true - }, - "textBody": { - "description": "Output only. Snapshot of the text body of the quoted message.", - "readOnly": true, - "type": "string" - }, - "updaterId": { - "$ref": "UserId", - "description": "Output only. ID of the User who last updated (created/edited/deleted) the quoted message at the time when quoting action happens. This includes information to identify if the quoted message was posted by an App on behalf of a user.", - "readOnly": true - }, - "uploadMetadata": { - "description": "Output only. Upload metadata of the quoted message.", - "items": { - "$ref": "UploadMetadata" - }, - "readOnly": true, - "type": "array" + "userActivity": { + "$ref": "UserActivity", + "description": "User Activity containing the data to be deleted." } }, "type": "object" }, - "Rank": { - "description": "The rank contains a tuple of numbers which may be used as a general sort order. The rank should be treated as an ordered set of numbers, where the ordering is done in descending order of the most significant rank member. For example, given the following ranks described as (primary, secondary): (1,1), (1,2), (2,2) (2,1) The descending rank-order is: (2,2) > (2,1) > (1,2) > (1,1)", - "id": "Rank", - "properties": { - "primary": { - "description": "The primary rank is the most significant rank member. This rank element should always be present. Items with higher primary rank are always considered of higher rank than those of lower primary rank.", - "format": "int64", - "type": "string" - }, - "secondary": { - "description": "The secondary rank may be used to rank items of identical primary rank. This rank element should always be present.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "RbacRoleProto": { - "description": "Principal associated with a given RBAC role. This principal is used by Sphinx Provisioning Service for RBAC provisionable (go/sphinx-rbacz).", - "id": "RbacRoleProto", - "properties": { - "name": { - "type": "string" - }, - "objectId": { - "type": "string" - }, - "rbacNamespace": { - "description": "DEPRECATED as of 01.11.2019", - "type": "string" - }, - "rbacRoleName": { - "description": "Format: \"role/z?\" - \"role\" is the Sphinx globally unique name of the Sphinx role that provisions the RBAC role. - \"/z?\" suffix indicates which Zanzibar environment stores the role membership data (\"/zd\": dev, \"/zs\": staging, \"/zp\": prod, \"/zt\": local test instance). Example: \"mysystem_myrole/zp\"", - "type": "string" - } - }, - "type": "object" - }, - "RbacSubjectProto": { - "description": "Principal associated with a given RBAC subject. This principal is used by Sphinx Provisioning Service for RBAC provisionable (go/sphinx-rbacz).", - "id": "RbacSubjectProto", - "properties": { - "username": { - "description": "Format \"username\" without \"@domain\", e.g., \"bogdand\".", - "type": "string" - } - }, - "type": "object" - }, - "ReactionInfo": { - "description": "Contains information about an emoji reaction.", - "id": "ReactionInfo", - "properties": { - "emoji": { - "description": "Unicode string representing a single emoji.", - "type": "string" - } - }, - "type": "object" - }, - "ReadReceiptsSettingsUpdatedMetadata": { - "id": "ReadReceiptsSettingsUpdatedMetadata", - "properties": { - "readReceiptsEnabled": { - "description": "The new read receipts state.", - "type": "boolean" - } - }, - "type": "object" - }, - "Recipient": { - "id": "Recipient", - "properties": { - "email": { - "type": "string" - } - }, - "type": "object" - }, - "RecordingEvent": { - "description": "A recording event is something that happens to the recording in a conference.", - "id": "RecordingEvent", - "properties": { - "deviceId": { - "description": "The initiator of the latest event of the recording. It will be set for all user events (`type` is 100-199) and unset for all server events (`type` is 200-299).", - "type": "string" - }, - "type": { - "description": "The type of event.", - "enum": [ - "RECORDING_EVENT_UNSPECIFIED", - "USER_ACTION", - "STARTED_BY_USER", - "STOPPED_BY_USER", - "CANCELLED_BY_USER", - "CANCELLED_INITIALIZATION_FAILED", - "CANCELLED_INITIATOR_LEFT", - "ACTIVE_ABOUT_TO_STOP_TOO_LONG", - "STOPPED_TOO_LONG", - "STOPPED_ALL_DEVICES_LEFT", - "STOPPED_INTERNAL_FAILURES" - ], - "enumDescriptions": [ - "This is never used.", - "Deprecated, use detailed user actions instead.", - "Recording was started or is being started by a user.", - "Recording was stopped by a user.", - "Recording was cancelled by a user.", - "Recording was cancelled by the server because of a failure during recording initialization.", - "Recording was cancelled by the server because the recording initiator left the conference during initialization. When the initiator leaves after the recording is started, no event is triggered.", - "Recording is about to be stopped by the server because the recording is about to reach the maximum duration.", - "Recording was stopped because the recording reached the maximum duration.", - "Recording was stopped because there were no devices left in the conference.", - "Recording was stopped because of an internal error." - ], - "type": "string" - } - }, - "type": "object" - }, - "RecordingInfo": { - "description": "This message is deprecated, please use RecordingSessionInfo instead. Information about recording in the current conference.", - "id": "RecordingInfo", - "properties": { - "latestRecordingEvent": { - "$ref": "RecordingEvent", - "description": "The latest recording event. This can be used by clients to help explain what is going on, why recording stopped, etc. This will always be set if there is or was an active recording, which means there can be latest event when recording is INACTIVE." - }, - "ownerDisplayName": { - "description": "The display name of the owner of the recording output. Email notifications about uploaded recordings will also be sent to this owner.", - "type": "string" - }, - "producerDeviceId": { - "description": "The device resource name of the producer device for the currently active recording. Note that, after the producer drops/leaves the conference, this field will be cleaned up by the server after a delay.", - "type": "string" - }, - "recordingApplicationType": { - "description": "The application type of the current active recording. `RECORDING_APPLICATION_TYPE_UNSPECIFIED` if `recording_status` is inactive.", - "enum": [ - "RECORDING_APPLICATION_TYPE_UNSPECIFIED", - "RECORDING", - "GLIVE_STREAM", - "BROADCAST" - ], - "enumDescriptions": [ - "This is never used.", - "A meeting recording saved to a video file in Google Drive.", - "A *Google Live* managed stream.", - "A meeting broadcast." - ], - "type": "string" - }, - "recordingId": { - "description": "An identifier for the current recording, if any. This is returned whenever recording_status is either `RECORDING_STARTING` or `RECORDING_STARTED`.", - "type": "string" - }, - "recordingStatus": { - "description": "The current status of the recording. This can be used by clients to show a recording dot or similar to indicated to the user that a recording is taking place.", - "enum": [ - "RECORDING_UNSPECIFIED", - "RECORDING_INACTIVE", - "RECORDING_STARTING", - "RECORDING_STARTED" - ], - "enumDescriptions": [ - "This value is never used.", - "The conference is not being recorded. This can mean either that no recording has been started, or that a previous recording has stopped.", - "Recording is about to begin. The status will be updated to RECORDING_STARTED when the recording actually starts, which happens when all the backend plumbing is set up.", - "The recording is started. Any media sent to the conference may be included in the resulting recording." - ], - "type": "string" - } - }, - "type": "object" - }, - "RecordingSessionInfo": { - "description": "Information about a recording session.", - "id": "RecordingSessionInfo", - "properties": { - "ownerEmail": { - "description": "Input only. Deprecated field, should not be used.", - "type": "string" - }, - "recordingSessionId": { - "description": "A unique server-generated ID for the recording session.", - "type": "string" - }, - "sessionStateInfo": { - "$ref": "SessionStateInfo", - "description": "Recording session's state information." - } - }, - "type": "object" - }, - "Reference": { - "description": "All fields in this proto are now columns in spanner see google3/storage/slice/production/gmail/user_data_tables.pi for documentation.", - "id": "Reference", - "properties": { - "blobId": { - "type": "string" - }, - "contentType": { - "type": "string" - }, - "hash": { - "type": "string" - }, - "key": { - "description": "LINT.IfChange", - "type": "string" - }, - "name": { - "description": "LINT.ThenChange(//depot/google3/storage/slice/production/gmail/ user_data_tables.pi)", - "type": "string" - }, - "size": { - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "References": { - "id": "References", - "properties": { - "references": { - "items": { - "$ref": "Reference" - }, - "type": "array" - } - }, - "type": "object" - }, - "RenameEvent": { - "id": "RenameEvent", - "properties": { - "newName": { - "type": "string" - }, - "originalName": { - "type": "string" - } - }, + "RemoveActivityResponse": { + "description": "Remove Logged Activity Response. will return an empty response for now. Will be revisited in later phases.", + "id": "RemoveActivityResponse", + "properties": {}, "type": "object" }, "RepositoryError": { @@ -14950,20 +6836,6 @@ }, "type": "object" }, - "RequestFileScope": { - "id": "RequestFileScope", - "properties": { - "itemId": { - "type": "string" - } - }, - "type": "object" - }, - "RequestFileScopeForActiveDocument": { - "id": "RequestFileScopeForActiveDocument", - "properties": {}, - "type": "object" - }, "RequestOptions": { "description": "Shared request options for all RPC methods.", "id": "RequestOptions", @@ -14973,7 +6845,7 @@ "description": "Debug options of the request" }, "languageCode": { - "description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. For translations. Set this field using the language set in browser or for the page. In the event that the user's language preference is known, set this field to the known user language. When specified, the documents in search results are biased towards the specified language. From Suggest API perspective, for 3p suggest this is used as a hint while making predictions to add language boosting.", + "description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. For translations. Set this field using the language set in browser or for the page. In the event that the user's language preference is known, set this field to the known user language. When specified, the documents in search results are biased towards the specified language. The Suggest API uses this field as a hint to make better third-party autocomplete predictions.", "type": "string" }, "searchApplicationId": { @@ -14987,31 +6859,6 @@ }, "type": "object" }, - "RequiredMessageFeaturesMetadata": { - "description": "A list of capabilities that are used in this message.", - "id": "RequiredMessageFeaturesMetadata", - "properties": { - "requiredFeatures": { - "items": { - "enum": [ - "REQUIRED_FEATURE_UNSPECIFIED", - "REQUIRED_FEATURE_MESSAGE_QUOTING", - "REQUIRED_FEATURE_TOMBSTONES_IN_DMS_AND_UFRS", - "REQUIRED_FEATURE_CUSTOM_HYPERLINK" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, "ResetSearchApplicationRequest": { "id": "ResetSearchApplicationRequest", "properties": { @@ -15022,26 +6869,6 @@ }, "type": "object" }, - "ResourceRoleProto": { - "description": "A type of sharing target that points to some resource's ACL. Used to refer to the set of Principals that have the given privilege ('role_id') for the given resource ('application_id', 'object_id', 'object_part'). The meaning of 'role_id' is interpreted only by implementations of AclRpcService and is usually dependent on 'application_id' All fields except object_part are required. If present, object_part must be non-empty.", - "id": "ResourceRoleProto", - "properties": { - "applicationId": { - "type": "string" - }, - "objectId": { - "type": "string" - }, - "objectPart": { - "type": "string" - }, - "roleId": { - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, "ResponseDebugInfo": { "description": "Debugging information about the response.", "id": "ResponseDebugInfo", @@ -15175,124 +7002,13 @@ }, "type": "object" }, - "RoomRenameMetadata": { - "id": "RoomRenameMetadata", + "SafeHtmlProto": { + "description": "IMPORTANT: It is unsafe to accept this message from an untrusted source, since it's trivial for an attacker to forge serialized messages that don't fulfill the type's safety contract -- for example, it could contain attacker controlled script. A system which receives a SafeHtmlProto implicitly trusts the producer of the SafeHtmlProto. So, it's generally safe to return this message in RPC responses, but generally unsafe to accept it in RPC requests.", + "id": "SafeHtmlProto", "properties": { - "newName": { + "privateDoNotAccessOrElseSafeHtmlWrappedValue": { + "description": "IMPORTANT: Never set or read this field, even from tests, it is private. See documentation at the top of .proto file for programming language packages with which to create or read this message.", "type": "string" - }, - "prevName": { - "description": "NEXT_TAG: 3", - "type": "string" - } - }, - "type": "object" - }, - "RoomUpdatedMetadata": { - "id": "RoomUpdatedMetadata", - "properties": { - "groupDetailsMetadata": { - "$ref": "GroupDetailsUpdatedMetadata" - }, - "groupLinkSharingEnabled": { - "type": "boolean" - }, - "initiator": { - "$ref": "User", - "description": "The user who initiated this room update. Complete member profiles, when ListTopicsRequest FetchOptions.USER is set. Otherwise, only the id will be filled in." - }, - "initiatorType": { - "description": "The type of the user who initiated this room update.", - "enum": [ - "INITIATOR_TYPE_UNSPECIFIED", - "INITIATOR_TYPE_END_USER", - "INITIATOR_TYPE_ADMIN" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "name": { - "description": "What was updated in the room.", - "type": "string" - }, - "renameMetadata": { - "$ref": "RoomRenameMetadata" - }, - "visibility": { - "$ref": "AppsDynamiteSharedGroupVisibility", - "description": "DEPRECATED: See GroupVisibility proto definition." - } - }, - "type": "object" - }, - "Roster": { - "description": "Roster profile information.", - "id": "Roster", - "properties": { - "avatarUrl": { - "type": "string" - }, - "id": { - "$ref": "RosterId" - }, - "isMembershipVisibleToCaller": { - "description": "Whether caller has visibility into members of the roster.", - "type": "boolean" - }, - "membershipCount": { - "format": "int32", - "type": "integer" - }, - "name": { - "type": "string" - }, - "rosterGaiaKey": { - "description": "Roster gaia key, usually an email address. Set in looking up rosters response.", - "type": "string" - }, - "rosterState": { - "description": "Roster deletion state - considered active unless set to deleted", - "enum": [ - "ROSTER_STATE_UNKNOWN", - "ROSTER_ACTIVE", - "ROSTER_DELETED" - ], - "enumDescriptions": [ - "", - "Roster is active", - "Roster deleted" - ], - "type": "string" - }, - "segmentedMembershipCounts": { - "$ref": "AppsDynamiteSharedSegmentedMembershipCounts", - "description": "Roster membership count. May contain counts based on member type and membership state." - } - }, - "type": "object" - }, - "RosterId": { - "description": "Primary key for Roster resource.", - "id": "RosterId", - "properties": { - "id": { - "description": "Opaque, server-assigned ID of the Roster.", - "type": "string" - } - }, - "type": "object" - }, - "RpcOptions": { - "description": "Options for Triggers dispatched via RPC.", - "id": "RpcOptions", - "properties": { - "requestExtensions": { - "$ref": "MessageSet", - "description": "The RPC's request extensions (i.e. RPC::request_extensions(), a.k.a. the Stubby side channel) will be merged with the specified [request_extensions]. When Triggers are batched, the RPC's request extensions will be merged with all of the [request_extensions] of the Triggers in the batch. Note that merging of request extensions follows standard protocol buffer semantics; values of singular fields override previous values, and values of repeated fields are appended (In the case of Triggers, Triggers with later fire times will be merged after Triggers with earlier fire times in the same batch). It is not advised to specify extensions with repeated fields on batchable Triggers." } }, "type": "object" @@ -15663,496 +7379,6 @@ }, "type": "object" }, - "Section": { - "description": "Sections are separated by a line divider. They contain a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, AddOns have a narrow fixed width, so there is currently no need for layout properties (e.g. float).", - "id": "Section", - "properties": { - "collapsable": { - "description": "Indicating whether this section is collapsable. If a section is collapsable, the description must be given.", - "type": "boolean" - }, - "description": { - "description": "The header of the section, text formatted supported.", - "type": "string" - }, - "numUncollapsableWidgets": { - "description": "The number of uncollapsable widgets. For example, when a section contains 5 widgets and the num_uncollapsable_widget are set to be 2, The first 2 widgets will always shown and the last 3 is collapsed as default. Only when collapsable is set to be true, the num_uncollapsable_widget will be taken into account.", - "format": "int32", - "type": "integer" - }, - "widgets": { - "description": "A section must contain at least 1 widget.", - "items": { - "$ref": "WidgetMarkup" - }, - "type": "array" - } - }, - "type": "object" - }, - "Segment": { - "id": "Segment", - "properties": { - "formatting": { - "$ref": "Formatting", - "description": "Formatting to be applied when rendering the Segment. For all segment types, this is the standard way of representing that the Segment should be rendered in bold, italics, etc." - }, - "hashtagData": { - "$ref": "HashtagData", - "description": "For HASHTAG type:" - }, - "linkData": { - "$ref": "LinkData", - "description": "Type-specific metadata. At most one of these should be populated, and the one that is populated should correspond to the type of the Segment. For LINK type:" - }, - "text": { - "description": "Text content of the Segment. As a general rule, this field should contain the actual text that should be rendered in the UI. Thus, for a hashtag, it should be \"#Foo\", and for a link, it should be the display text. Clients that do not understand a particular segment type may use this text, along with the Formatting info below, as a fallback for display. The field is not required -- if all relevant information is carried in other metadata fields and there is no need for a fallback, or it is not practical for a fallback to be provided for any other reason, the field may be left blank. A standard example would be a user reference being transmitted between server layers, where a gaia-ID representation may be sufficient and there is no need for a textual fallback. In such a case, it would be valid and useful - though not required - for servers to compute and populate a fallback on the serving path.", - "type": "string" - }, - "type": { - "description": "Type of Segment.", - "enum": [ - "TEXT", - "LINE_BREAK", - "LINK", - "USER_MENTION", - "ALL_USER_MENTION", - "HASHTAG" - ], - "enumDescriptions": [ - "A TEXT segment represents plain-text subject to particular formatting constraints (as represented in the \"formatting\" field of the Segment).", - "A LINE_BREAK segment is simply a placeholder to represent a line break between other segments. The \"text\" variable may be set to a newline as a fallback, but clients that understand this segment type should simply insert a line break without needing to reference any fields.", - "A LINK segment represents a link to a web entity. The \"text\" field should be used for anchor text. Additional link data should be put in the link_data protobuf.", - "A USER_MENTION segment represents a reference to a (possibly non-Gaia, possibly off-network) user. The \"text\" field may be populated as a fallback, but information identifying the user should be contained in the user_mention_data protobuf. (The set of fields that are populated in user_mention_data may differ depending on the context in which the segment is viewed, but the interpretation of the fields is uniform. See comments over UserMentionData).", - "An ALL_USER_MENTION segment represents a reference to all users in the context, that is, the conversation, discussion, or other context containing the segment. For example, an ALL_USER_MENTION segment (\"@all\") can be useful to ping all participants in a conversation if the notification setting of the conversation is not set to ping on normal messages. An ALL_USER_MENTION should be treated as a USER_MENTION for all users who receives the segment.", - "A HASHTAG segment represents a structured reference to a topic. The \"text\" field should represent display text (e.g. \"#Google\"), and additional metadata should be put in the Segment's hashtag_data field." - ], - "type": "string" - }, - "userMentionData": { - "$ref": "UserMentionData", - "description": "For USER_MENTION type:" - } - }, - "type": "object" - }, - "SelectionControl": { - "id": "SelectionControl", - "properties": { - "items": { - "description": "For radio button, at most one of the items will be selected.", - "items": { - "$ref": "SelectionItem" - }, - "type": "array" - }, - "label": { - "description": "Label used to be displayed ahead of the selection control. It is optional.", - "type": "string" - }, - "name": { - "description": "The name of the text field which is will be used in FormInput.", - "type": "string" - }, - "onChange": { - "$ref": "FormAction", - "description": "If specified, form is submitted when selection changed. If not specified, developer will need to specify a separate button." - }, - "type": { - "enum": [ - "CHECK_BOX", - "RADIO_BUTTON", - "SWITCH", - "DROPDOWN" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "SelectionItem": { - "id": "SelectionItem", - "properties": { - "selected": { - "description": "If more than one items are selected for RADIO_BUTTON and DROPDOWN, the first selected item is treated as sElected and the after ones are all ignored.", - "type": "boolean" - }, - "text": { - "description": "The text to be displayed.", - "type": "string" - }, - "value": { - "description": "The value associated with this item which will be sent back to app scripts. Client should use as a form input value.", - "type": "string" - } - }, - "type": "object" - }, - "SessionContext": { - "id": "SessionContext", - "properties": { - "authTime": { - "description": "Time at which this activity's session was authenticated, in seconds since the epoch.", - "format": "int64", - "type": "string" - }, - "delegateUserId": { - "description": "Gaia ID of the authenticated user when delegate access is active. In such sessions the main gaia ID is that of the delegator, i.e. the account being accessed.", - "format": "int64", - "type": "string" - }, - "dusi": { - "description": "Device User Session ID, see go/dusi.", - "type": "string" - }, - "imapSessionContext": { - "$ref": "ImapSessionContext", - "description": "Imap session context for Bond/Gmail integration" - }, - "oauthLoginId": { - "description": "OAuth login ID.", - "format": "int32", - "type": "integer" - }, - "oauthProjectId": { - "description": "The devconsole project ID of the developer who authenticated with OAuth.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "SessionEvent": { - "description": "A session event is something that happens to the streaming session in a conference.", - "id": "SessionEvent", - "properties": { - "deviceId": { - "description": "The initiator of the latest event of the streaming session. It will be set for all user events (`type` is 100-199) and unset for all server events(`type` is 200-299).", - "type": "string" - }, - "type": { - "description": "The type of event.", - "enum": [ - "EVENT_UNSPECIFIED", - "STARTED_BY_USER", - "STOPPED_BY_USER", - "CANCELLED_BY_USER", - "CANCELLED_INITIALIZATION_FAILED", - "CANCELLED_INITIATOR_LEFT", - "ACTIVE_ABOUT_TO_STOP_TOO_LONG", - "STOPPED_TOO_LONG", - "STOPPED_ALL_DEVICES_LEFT", - "STOPPED_INTERNAL_FAILURES" - ], - "enumDescriptions": [ - "This is never used.", - "Streaming session was started or is being started by a user.", - "Streaming session was stopped by a user.", - "Streaming session was cancelled by a user.", - "Streaming session was cancelled by the server because of a failure during session initialization.", - "Streaming session was cancelled by the server because the session initiator left the conference during initialization. When the initiator leaves after the session is started, no event is triggered.", - "Streaming session is about to be stopped by the server because the session is about to reach the maximum duration.", - "Streaming session was stopped because the session reached the maximum duration.", - "Streaming session was stopped because there were no devices left in the conference.", - "Streaming session was stopped because of an internal error." - ], - "type": "string" - } - }, - "type": "object" - }, - "SessionStateInfo": { - "description": "Information about the state of a (recording, broadcast, transcription...) session in a conference.", - "id": "SessionStateInfo", - "properties": { - "ackInfo": { - "$ref": "AckInfo", - "description": "Output only. The ack info of the session.", - "readOnly": true - }, - "languageConfig": { - "$ref": "LanguageConfig", - "description": "Immutable. The language configuration used by this session. When empty, captions will be disabled. It's a required field for transcription sessions." - }, - "lastActorDeviceId": { - "description": "Output only. The device id of the actor is set if the current state is a result of a user action, is empty otherwise.", - "readOnly": true, - "type": "string" - }, - "maxEndTime": { - "description": "Output only. The max end time of the session, at this time the session will be force stopped/terminated. Clients are expected to use this timestamp to warn users about the force stop.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "sessionState": { - "description": "State of the session.", - "enum": [ - "SESSION_STATE_UNSPECIFIED", - "STARTING", - "ACTIVE", - "STOPPED" - ], - "enumDescriptions": [ - "Unspecified session state.", - "The session is starting.", - "The session is active/ongoing.", - "The session has stopped." - ], - "type": "string" - }, - "sessionStopReason": { - "description": "Output only. The reason the session was transitioned to STOPPED state.", - "enum": [ - "SESSION_STOP_REASON_UNSPECIFIED", - "USER_ACTION", - "STOPPED_INITIALIZATION_FAILED", - "STOPPED_TOO_LONG", - "STOPPED_ALL_DEVICES_LEFT", - "STOPPED_INTERNAL_FAILURES", - "STOPPED_YOU_TUBE_LIVE_EVENT_ENDED" - ], - "enumDescriptions": [ - "Session stop reason unspecified.", - "Stopped by user action.", - "Stopped by the server because of an initialization failure.", - "Stopped because the session reached the maximum duration.", - "Stopped because there were no devices left in the conference.", - "Stopped because of an internal error.", - "Stopped because the broadcast event ended on YouTube." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "Settings": { - "description": "Settings of a meeting space that can be edited by users with corresponding manage privilege. These settings are always populated in responses.", - "id": "Settings", - "properties": { - "accessLock": { - "description": "The access lock of the meeting space that lets hosts control who can join the meeting.", - "type": "boolean" - }, - "accessType": { - "description": "The access type of the meeting space.", - "enum": [ - "ACCESS_TYPE_UNSPECIFIED", - "ACCESS_TYPE_OPEN", - "ACCESS_TYPE_TRUSTED", - "ACCESS_TYPE_RESTRICTED" - ], - "enumDescriptions": [ - "Default value. This value is unused.", - "Anyone with meeting join information (url, phone access...) can join, no knocking required. (Subject to organization policies)", - "Members of the Host's organization, invited external users, and dial-in users can join without knocking, everyone else must knock. (Subject to organization policies)", - "Only participants invited by a host can automatically join, everyone else must knock and be admitted. (Subject to organization policies) Participants cannot dial out from the meeting. And only hosts can accept knocks." - ], - "type": "string" - }, - "allowJoiningBeforeHost": { - "description": "Whether users can join before host in the conferences of this meeting space.", - "type": "boolean" - }, - "attendanceReportEnabled": { - "description": "Whether attendance report is enabled for the meeting space.", - "type": "boolean" - }, - "chatLock": { - "description": "The chat lock of the meeting space that lets owner control whether the participants can send chat messages.", - "type": "boolean" - }, - "cohostArtifactSharingEnabled": { - "description": "Whether meeting artifacts will be shared with cohosts.", - "type": "boolean" - }, - "cseEnabled": { - "description": "Whether Client-side Encryption is enabled for the meeting space.", - "type": "boolean" - }, - "defaultAsViewer": { - "description": "Whether the default role is viewer or not.", - "type": "boolean" - }, - "moderationEnabled": { - "description": "Indicates whether the meeting space is moderated.", - "type": "boolean" - }, - "presentLock": { - "description": "The present lock of the meeting space that lets owner control whether the participants can present their screen.", - "type": "boolean" - }, - "reactionsLock": { - "description": "The reactions lock of the meeting space that lets owner control whether the participants can send reactions.", - "type": "boolean" - } - }, - "type": "object" - }, - "ShareScope": { - "id": "ShareScope", - "properties": { - "domain": { - "description": "If scope is DOMAIN, this field contains the dasher domain, for example \"google.com\".", - "type": "string" - }, - "scope": { - "description": "The scope to which the content was shared.", - "enum": [ - "UNKNOWN", - "PRIVATE", - "LIMITED", - "EXTENDED", - "DASHER_DOMAIN", - "PUBLIC" - ], - "enumDescriptions": [ - "", - "Only the author can view the post.", - "Viewable only by a set of people.", - "Viewable by extended circles.", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "SheetsClientActionMarkup": { - "id": "SheetsClientActionMarkup", - "properties": { - "customFunctionReturnValueMarkup": { - "$ref": "CustomFunctionReturnValueMarkup" - } - }, - "type": "object" - }, - "SigningKeyPossessorProto": { - "description": "Represents a principal who possesses a signing key corresponding to the verification key or keyset described here.", - "id": "SigningKeyPossessorProto", - "properties": { - "keymasterKeyType": { - "description": "This value must be from the KeyMetadata.Type enum in keymaster.proto.", - "format": "int32", - "type": "integer" - }, - "serializedVerificationKey": { - "description": "The actual verification key bytes corresponding to the above type.", - "format": "byte", - "type": "string" - }, - "serializedVerificationKeyset": { - "description": "The binary serialized Keymaster SerializedReader of a public keyset. The keyset must contain exactly one key. N.B.: If this field is populated, serialized_verification_key should be set to the empty string and keymaster_key_type should be set to zero.", - "format": "byte", - "type": "string" - } - }, - "type": "object" - }, - "SimpleSecretHolderProto": { - "description": "Represents a principal which possesses a particular, presumably secret, string. Useful for things like \"auth keys,\" used for anonymous sharing. Since representing this principal with the actual secret included reveals the secret, it's best if the requisite condition is enforced in some other way, for example via Keystore wrapping attributes (Keystore will unwrap only if the specified secret, aka \"attribute\", is presented). All that's stored here is an identifying label.", - "id": "SimpleSecretHolderProto", - "properties": { - "label": { - "$ref": "SimpleSecretLabelProto", - "description": "A descriptive label to help identify a relevant ACL entry or otherwise disambiguate this instance." - } - }, - "type": "object" - }, - "SimpleSecretLabelProto": { - "description": "SimpleSecretProto (in authenticator.proto) and SimpleSecretHolderProto (below) share the notion of a \"label\", which identifies a particular secret without (hopefully) revealing the secret. Note that a SimpleSecretLabel only disambiguates between secrets used to get access to some particular object. Two different secrets that apply to two different objects could have the same label. For example, in the common sharing model, each object has no more than one \"auth key\". Therefore, the label for an auth key simply has type = AUTH_KEY with no additional information. In theory, we could add some sort of resource ID to SimpleSecretLabel to make it more explicit. However, in practice, this is never really needed. A SimpleSecret for one object is never used to authorize a request on some other object, so there is no ambiguity. Also, since SimpleSecrets must obviously be unguessable, there is no risk that a SimpleSecret intended for one object will accidentally grant access to another.", - "id": "SimpleSecretLabelProto", - "properties": { - "capabilityId": { - "description": "***DEPRECATED (3-Oct-2011) *** This field should be deleted when code stops using CAP_TOKEN labels. Used when type = CAP_TOKEN. When a CAP_TOKEN label appears in a SimpleSecretHolder Principal, |capability_id| must be filled in to identify one of the capabilities on the ACL. When a CAP_TOKEN label appears in a SimpleSecret Authenticator, it is NOT necessary to fill in |capability_id| -- ACL Service will find the ID by searching all capabilities on the ACL for one associated with the token given by the SimpleSecret's secret data. If |capability_id| is specified, though, then the Authenticator will only be accepted if it actually matches that particular token ID.", - "format": "int32", - "type": "integer" - }, - "genericLabel": { - "description": "Used when type = GENERIC_SECRET", - "format": "byte", - "type": "string" - }, - "inviteId": { - "description": "Used when type == INVITE.", - "format": "int64", - "type": "string" - }, - "type": { - "description": "This is optional because required enums cannot be extended.", - "enum": [ - "INVALID", - "AUTH_KEY", - "INVITE", - "GENERIC_SECRET", - "CAP_TOKEN", - "REKE" - ], - "enumDescriptions": [ - "Used as a default value.", - "The singleton auth key for a common-sharing ACL. No other fields of SimpleSecretLabelProto need to be filled in, since there is only one of these per ACL. The corresponding secret is the auth key encoded in 64-bit big-endian.", - "A common-sharing invite token. |invite_id| (below) must be set to identify the invite. The corresponding secret is the SecretMaterial, as defined by InviteToken.SecretMaterial in acl.proto, encoded in 64-bit big-endian. If there is no SecretMaterial, the secret should be omitted; in this case the invite ID itself is the secret, which is less secure.", - "A generic secret value. Do not use this if any more specific type is appropriate.", - "***DEPRECATED (3-Oct-2011)*** Use the new CapTokenProto and CapTokenHolderProto instead. A capability token. The corresponding secret is an arbitrary-length random byte string (recommended: 128 bits). |capability_id| may be filled in (see below). See CapTokenMetadata in acl.proto.", - "Identifies a principal that can perform a successful REKE handshake. The holder is not authenticated by presenting a SimpleSecretProto, but rather by knowing either the REKE resumption ticket secret or the private key corresponding to a public key specified outside the PrincipalProto. For more information, see: http://goto.google.com/loas2cert" - ], - "type": "string" - } - }, - "type": "object" - }, - "SlashCommandMetadata": { - "description": "Annotation metadata for slash commands (/).", - "id": "SlashCommandMetadata", - "properties": { - "argumentsHint": { - "description": "Hint string for the arguments expected by the slash command.", - "type": "string" - }, - "commandId": { - "description": "Unique id for the slash command.", - "format": "int64", - "type": "string" - }, - "commandName": { - "description": "Name of the slash command.", - "type": "string" - }, - "id": { - "$ref": "UserId", - "description": "ID of the bot which owns the slash command." - }, - "triggersDialog": { - "description": "Whether or not this slash command should trigger a dialog.", - "type": "boolean" - }, - "type": { - "enum": [ - "TYPE_UNSPECIFIED", - "ADD", - "INVOKE", - "FAILED_TO_ADD" - ], - "enumDescriptions": [ - "Default value for the enum. DO NOT USE.", - "If a bot is added by a Slash Command, it means the bot was invoked by the user but hasn't yet been added to the group. Attaching an ADD annotation both add and invoke the bot.", - "", - "Server-generated slash command metadata, for clients to strikethrough." - ], - "type": "string" - } - }, - "type": "object" - }, "Snippet": { "description": "Snippet of the search result, which summarizes the content of the resulting page.", "id": "Snippet", @@ -16165,36 +7391,7 @@ "type": "array" }, "snippet": { - "description": "The snippet of the document. The snippet of the document. May contain escaped HTML character that should be unescaped prior to rendering.", - "type": "string" - } - }, - "type": "object" - }, - "SocialCommonAttachmentAttachment": { - "description": "An Attachment represents a linked entity associated with a piece of social content. This may be a 1st-party or 3rd-party entity. In the Papyrus context, an Attachment is part of a Cent, and sits alongside the main content of the cent, which is represented as a sequence of Segments. Right now an Attachment is just a wrapper around an Embed, but we provide the extra layer of abstraction since, as Embeds move to separate storage in Briefcase, we may want to add additional fields that are not part of the Embed proper, but that (for example) relate to the usage of the linked content within the particular post/cent.", - "id": "SocialCommonAttachmentAttachment", - "properties": { - "embedItem": { - "$ref": "EmbedClientItem", - "description": "An embed represents an external entity. See go/es-embeds." - }, - "id": { - "description": "An id to uniquely identify an attachment when several attachments are in a collection.", - "type": "string" - } - }, - "type": "object" - }, - "SocialGraphNodeProto": { - "description": "Represents a user pseudonym. Pseudonyms are linked accounts on Google and third-party services (e.g. YouTube or Twitter) and are described by a Social Graph Node.", - "id": "SocialGraphNodeProto", - "properties": { - "sgnDomain": { - "description": "The fields from ccc/socialgraph/socialgraphnode.proto:SgnNode that uniquely identify a social graph node. The 'ident' field is not included here because its value can be changed.", - "type": "string" - }, - "sgnPk": { + "description": "The snippet of the document. May contain escaped HTML character that should be unescaped prior to rendering.", "type": "string" } }, @@ -16341,39 +7538,29 @@ }, "type": "object" }, - "SpaceId": { - "description": "Primary key for Space resource.", - "id": "SpaceId", - "properties": { - "spaceId": { - "description": "Unique, immutable ID of the Space", - "type": "string" - } - }, - "type": "object" - }, "SpellResult": { "id": "SpellResult", "properties": { "suggestedQuery": { "description": "The suggested spelling of the query.", "type": "string" - } - }, - "type": "object" - }, - "SquareProto": { - "description": "Represents the set of members (of a given type) in a Google+ Square (see http://go/squares). A Square with default member_type is currently (1/2012) identical to the GaiaGroup with the same ID, but that is expected to change soon (see http://go/superglue). Support for this principal type is currently (1/2012) incomplete -- e.g., Keystore does not support it yet (see b/5703421).", - "id": "SquareProto", - "properties": { - "memberType": { - "description": "The type of Square members to consider, e.g. \"all members\" vs. \"owners\" vs. \"admins\". These are defined by legacy_relation_id values in social.graph.storage.EdgeTypeEnum.EdgeType enum options in social/graph/storage/proto/id.proto. See square.pb (defined in production/config/cdd/socialgraph/mixer_config/prod/node_type_config) for all valid edge types associated with square. Currently required.", - "format": "int32", - "type": "integer" }, - "squareId": { - "description": "Currently required.", - "format": "int64", + "suggestedQueryHtml": { + "$ref": "SafeHtmlProto", + "description": "The sanitized HTML representing the spell corrected query that can be used in the UI. This usually has language-specific tags to mark up parts of the query that are spell checked." + }, + "suggestionType": { + "description": "Suggestion triggered for the current query.", + "enum": [ + "SUGGESTION_TYPE_UNSPECIFIED", + "NON_EMPTY_RESULTS_SPELL_SUGGESTION", + "ZERO_RESULTS_FULL_PAGE_REPLACEMENT" + ], + "enumDescriptions": [ + "Default spell check type", + "Spell suggestion without any results changed. The results are still shown for the original query (which has non zero / results) with a suggestion for spelling that would have results.", + "Spell suggestion triggered when original query has no results. When the original query has no results, and spell suggestion has results we trigger results for the spell corrected query." + ], "type": "string" } }, @@ -16421,101 +7608,6 @@ }, "type": "object" }, - "StoredParticipantId": { - "id": "StoredParticipantId", - "properties": { - "gaiaId": { - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "StreamViewerStats": { - "description": "Information about viewers of the stream.", - "id": "StreamViewerStats", - "properties": { - "estimatedViewerCount": { - "description": "The estimate of the current viewer count.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "StreamingSessionInfo": { - "description": "Information about a streaming session in conference.", - "id": "StreamingSessionInfo", - "properties": { - "applicationType": { - "description": "The application type of the current streaming session.", - "enum": [ - "RECORDING_APPLICATION_TYPE_UNSPECIFIED", - "RECORDING", - "GLIVE_STREAM", - "BROADCAST" - ], - "enumDescriptions": [ - "This is never used.", - "A meeting recording saved to a video file in Google Drive.", - "A *Google Live* managed stream.", - "A meeting broadcast." - ], - "type": "string" - }, - "latestSessionEvent": { - "$ref": "SessionEvent", - "description": "The latest streaming session event. This can be used by clients to help explain what is going on, why recording stopped, etc. This will always be set to a valid event and consistent with the status. It can be set when current session is inactive to indicate latest event that makes current session to become inactive." - }, - "ownerDisplayName": { - "description": "The display name of the owner of the recording output. It's only set when there will be uploaded recordings. Currently, it's only set when application type is RECORDING or GLIVE_STREAM.", - "type": "string" - }, - "sessionId": { - "description": "This is the REST name and unique identifier of this streaming session and has the form `spaces//recordings/` This is returned whenever status is either `STARTING` or `STARTED`.", - "type": "string" - }, - "status": { - "description": "The current status of this streaming session. This can be used by clients to show session status indicator and/or notification.", - "enum": [ - "STATUS_UNSPECIFIED", - "INACTIVE", - "STARTING", - "LIVE" - ], - "enumDescriptions": [ - "This value is never used.", - "The streaming session is inactive. This means either it's not started yet or it's already stopped.", - "The streaming session is about to begin. The status will be updated to LIVE when the streaming session actually starts, which happens when all the backend plumbing is set up.", - "The streaming session is live. Any media sent to the conference may be included in the resulting recording/broadcast." - ], - "type": "string" - }, - "trainingEnabled": { - "description": "When true, this recording may be used for training new transcription models.", - "type": "boolean" - }, - "viewerAccessPolicy": { - "description": "The policy that controls who can view the broadcast. This setting applies for broadcast session.", - "enum": [ - "BROADCASTING_ACCESS_POLICY_UNSPECIFIED", - "ORGANIZATION", - "PUBLIC" - ], - "enumDescriptions": [ - "Used only when broadcast is not enabled, or an unknown enum value is used.", - "Only authenticated Google accounts belonging to the same organization as the meeting organizer can access the broadcast.", - "Anyone with the broadcast view URL can access the broadcast." - ], - "type": "string" - }, - "viewerStats": { - "$ref": "StreamViewerStats", - "description": "Contains information about viewers of the livestream. It is only set when application type is BROADCAST." - } - }, - "type": "object" - }, "StructuredDataObject": { "description": "A structured data object consisting of named properties.", "id": "StructuredDataObject", @@ -16600,187 +7692,6 @@ }, "type": "object" }, - "SupportUrls": { - "description": "Urls with additional bot related information.", - "id": "SupportUrls", - "properties": { - "adminConfigUrl": { - "description": "Link to the admin configuration webpage for the bot. Configured by Pantheon, may be empty.", - "type": "string" - }, - "deletionPolicyUrl": { - "description": "Link to the deletion policy webpage for the bot. Configured by Pantheon, may be empty.", - "type": "string" - }, - "gwmUrl": { - "description": "Link to GWM page of the app. May be empty.", - "type": "string" - }, - "privacyPolicyUrl": { - "description": "Link to the privacy policy webpage for the bot. May be empty.", - "type": "string" - }, - "setupUrl": { - "description": "Link to the setup webpage for the bot. Configured by Pantheon, may be empty.", - "type": "string" - }, - "supportUrl": { - "description": "Link to the support webpage for the developer of the bot. May be empty.", - "type": "string" - }, - "tosUrl": { - "description": "Link to the terms of service webpage for the bot. May be empty.", - "type": "string" - } - }, - "type": "object" - }, - "SwitchWidget": { - "id": "SwitchWidget", - "properties": { - "controlType": { - "enum": [ - "UNSPECIFIED", - "SWITCH", - "CHECKBOX" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "name": { - "description": "The name of the switch widget which is will be used in FormInput.", - "type": "string" - }, - "onChange": { - "$ref": "FormAction" - }, - "selected": { - "type": "boolean" - }, - "value": { - "description": "The value is what is passed back in apps script callback.", - "type": "string" - } - }, - "type": "object" - }, - "TaskActionMarkup": { - "id": "TaskActionMarkup", - "properties": { - "reloadTasks": { - "type": "boolean" - } - }, - "type": "object" - }, - "TextButton": { - "id": "TextButton", - "properties": { - "altText": { - "description": "The alternative text used for accessibility Next field number: 7.", - "type": "string" - }, - "backgroundColor": { - "description": "Optional color of the button's background in RAISE mode. The default is the secondary color from addon's manifest.", - "type": "string" - }, - "disabled": { - "type": "boolean" - }, - "onClick": { - "$ref": "OnClick" - }, - "style": { - "enum": [ - "UNSPECIFIED", - "TEXT", - "FILLED" - ], - "enumDescriptions": [ - "", - "Simple text button with ripple touch feedback.", - "Button with solid background." - ], - "type": "string" - }, - "text": { - "description": "Text color can be set via HTML markup.", - "type": "string" - } - }, - "type": "object" - }, - "TextField": { - "id": "TextField", - "properties": { - "autoComplete": { - "$ref": "AutoComplete", - "description": "The initial set of auto complete items without any user input." - }, - "autoCompleteCallback": { - "$ref": "FormAction", - "description": "The refresh function which returns AutoComplete based on the user's input text. If the callback is not specified, auto complete will be purely done in client side based on the auto_complete items." - }, - "autoCompleteMultipleSelections": { - "description": "When set to true, a user can input multiple auto-complet items.", - "type": "boolean" - }, - "hintText": { - "type": "string" - }, - "label": { - "description": "One of label or hint_text is required to be specified by the developers.", - "type": "string" - }, - "maxLines": { - "format": "int32", - "type": "integer" - }, - "name": { - "description": "The name of the text field which is will be used in FormInput.", - "type": "string" - }, - "onChange": { - "$ref": "FormAction" - }, - "type": { - "enum": [ - "SINGLE_LINE", - "MULTIPLE_LINE" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "value": { - "description": "The default value when no input from user.", - "type": "string" - } - }, - "type": "object" - }, - "TextKeyValue": { - "description": "This is deprecated and please use KeyValue.", - "id": "TextKeyValue", - "properties": { - "key": { - "type": "string" - }, - "onClick": { - "$ref": "OnClick" - }, - "text": { - "type": "string" - } - }, - "type": "object" - }, "TextOperatorOptions": { "description": "Used to provide a search operator for text properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.", "id": "TextOperatorOptions", @@ -16796,15 +7707,6 @@ }, "type": "object" }, - "TextParagraph": { - "id": "TextParagraph", - "properties": { - "text": { - "type": "string" - } - }, - "type": "object" - }, "TextPropertyOptions": { "description": "The options for text properties.", "id": "TextPropertyOptions", @@ -16834,75 +7736,33 @@ }, "type": "object" }, - "ThreadKeySet": { - "description": "The ThreadKey was set on some (subset of the) messages in this thread.", - "id": "ThreadKeySet", + "ThirdPartyGenericCard": { + "id": "ThirdPartyGenericCard", "properties": { - "messageKeys": { - "description": "Messages on which the thread_key was changed.", - "items": { - "$ref": "MultiKey" - }, - "type": "array" - }, - "newThreadKey": { - "$ref": "MultiKey", - "description": "The new thread_key for this thread" - } - }, - "type": "object" - }, - "ThreadUpdate": { - "description": "HistoryRecord for changes associated with a thread, namely: MESSAGE_ADDED MESSAGE_DELETED LABEL_ADDED LABEL_REMOVED ATTRIBUTE_SET ATTRIBUTE_REMOVED THREAD_KEY_SET All label_ids refer to the (unchanging) value as defined by the Label.id field in labels.proto. In particular, it is *not* the canonical_name.", - "id": "ThreadUpdate", - "properties": { - "attributeRemoved": { - "$ref": "AttributeRemoved" - }, - "attributeSet": { - "$ref": "AttributeSet" - }, - "labelAdded": { - "$ref": "LabelAdded" - }, - "labelRemoved": { - "$ref": "LabelRemoved" - }, - "lastHistoryRecordId": { - "description": "Indicates the record id of the last operation that modified this thread.", - "format": "uint64", + "cardId": { + "description": "Unique identifier for the card.", "type": "string" }, - "messageAdded": { - "$ref": "MessageAdded" - }, - "messageDeleted": { - "$ref": "MessageDeleted" - }, - "originalThreadKey": { - "$ref": "MultiKey", - "description": "The first non-empty thread-key on any message in the thread (including deleted messages). This field has been introduced to maintain backward compatibility for clients that are not subthread aware." - }, - "preState": { - "description": "The PreStates of all messages before the transaction. These are suppressed if the client requested that prestates not be included in the output of the GetHistoryRequest.", - "items": { - "$ref": "PreState" - }, - "type": "array" - }, - "threadKey": { - "$ref": "MultiKey", - "description": "Affected thread" - }, - "threadKeySet": { - "$ref": "ThreadKeySet" - }, - "threadLocator": { - "description": "Thread PLID", + "category": { + "description": "Category that the card belongs to.", "type": "string" }, - "topicStateUpdate": { - "$ref": "TopicStateUpdate" + "content": { + "$ref": "Content", + "description": "[Required] Card content." + }, + "context": { + "$ref": "Context", + "description": "[Required] Context where the card should be triggered." + }, + "isDismissible": { + "description": "Whether the card can be dismissed.", + "type": "boolean" + }, + "priority": { + "description": "Priority of the card, where 0 is the highest priority.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -16951,375 +7811,6 @@ }, "type": "object" }, - "TombstoneMetadata": { - "description": "Tombstoning is the act of leaving a contextual trace when deleting a message. See more: go/tombstone-prd, go/hub-dynamite-tombstones-server-design-v2.", - "id": "TombstoneMetadata", - "properties": { - "tombstoneType": { - "description": "Indicates the type of Tombstone.", - "enum": [ - "TOMBSTONE_UNSPECIFIED", - "CREATOR", - "ROOM_OWNER", - "ADMIN", - "APP_MESSAGE_EXPIRY", - "CREATOR_VIA_APP", - "ROOM_OWNER_VIA_APP" - ], - "enumDescriptions": [ - "This should not be used.", - "User deleted their own message.", - "The space owner deleted a message in their space.", - "The customer admin deleted a message in a space or DM owned by the customer. (go/chat-customer-owned-data)", - "App scheduled deletion of their own message. See go/bme-dd.", - "User deleted their own message via an app. See go/chat-api-delete-message.", - "The space owner deleted a message in their space via an app. See go/chat-api-delete-message." - ], - "type": "string" - } - }, - "type": "object" - }, - "Toolbar": { - "description": "The Toolbar markup has been deprecated. The information is now specified in the manifest.", - "id": "Toolbar", - "properties": { - "color": { - "description": "Background color of the toolbar in RBG hex representation.", - "type": "string" - }, - "iconUrl": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "TopicId": { - "id": "TopicId", - "properties": { - "groupId": { - "$ref": "GroupId", - "description": "The Space or DM that the topic belongs to." - }, - "topicId": { - "description": "Opaque, server-assigned ID of the Topic. While this ID is guaranteed to be unique within the Space, it's not guaranteed to be globally unique. Internal usage: this field can be empty in the following cases: 1. To create the first message in a topic. 2. To list last N messages of a Space (regardless of topic).", - "type": "string" - } - }, - "type": "object" - }, - "TopicState": { - "description": "State of an topic thread as maintained within Tingle.", - "id": "TopicState", - "properties": { - "labelIdMessageCount": { - "additionalProperties": { - "format": "int32", - "type": "integer" - }, - "description": "Map of label => count of topic constituent messages with label These only contain counts of labels that are relevant for topic normalization/denormalization. Eg. If a topic thread has 5 constituents, 4 of which are in inbox, this will contain ^i => 4. Some labels of interest are archive, inbox, trash, spam, etc.", - "type": "object" - }, - "numConstituents": { - "description": "Number of constituents for this entity.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "TopicStateUpdate": { - "id": "TopicStateUpdate", - "properties": { - "topicState": { - "$ref": "TopicState" - } - }, - "type": "object" - }, - "TransactionContext": { - "description": "Storage information pertaining to the transaction with which a HistoryRecord is associated.", - "id": "TransactionContext", - "properties": { - "endingRecordId": { - "description": "The last HistoryRecord of the transaction. Note that this may correspond to a record that is filtered by Tingle (and thus not returned to the client). See http://b/9513464.", - "format": "uint64", - "type": "string" - }, - "startingRecordId": { - "description": "The first HistoryRecord of the transaction. Note that this may be a record of type INTERNAL.", - "format": "uint64", - "type": "string" - }, - "writeTimestampUs": { - "description": "The microsecond timestamp of the transaction.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "TransactionDebugInfo": { - "description": "HistoryRecord for debug info associated with the transaction, namely: TXN_DEBUG_INFO TODO(b/143845917) This is a short-term workaround for unblocking fusebox writes migration. Clean up the code or land a long-term solution after the rollout. go/diff-to-historyrecord", - "id": "TransactionDebugInfo", - "properties": {}, - "type": "object" - }, - "TranscriptionSessionInfo": { - "description": "Information about a transcription session.", - "id": "TranscriptionSessionInfo", - "properties": { - "sessionStateInfo": { - "$ref": "SessionStateInfo", - "description": "Transcription session's state information." - }, - "transcriptionSessionId": { - "description": "A unique server-generated ID for the transcription session.", - "type": "string" - } - }, - "type": "object" - }, - "TransientData": { - "description": "Transient generic data that will not be saved on the server.", - "id": "TransientData", - "properties": {}, - "type": "object" - }, - "Trigger": { - "id": "Trigger", - "properties": { - "actionType": { - "description": "Each dispatcher should use an enum to for the actions that it supports. If a dispatcher has only one action, this does not need to be set. (It can be expanded later, defining the default behaviour as type 0.) For purposes such as batching, the type of a trigger is (dispatcher, action_type).", - "format": "uint32", - "type": "integer" - }, - "batchTimeUs": { - "description": "Maximum possible delay in micros that can be tolerated so triggers can be batched, which makes processing more efficient compared to firing triggers individually. Note that the actual fire time will be somewhere in the timerange interval [fire_time_us, fire_time_us + batch_time_us).", - "format": "int64", - "type": "string" - }, - "dispatchId": { - "description": "Must be set for DISPATCHER_STUBBY_DISPATCHER.", - "format": "uint32", - "type": "integer" - }, - "dispatcher": { - "description": "Which server should interpret action_type.", - "enum": [ - "DISPATCHER_COPROC", - "DISPATCHER_JOBSETTED_PRIMARY", - "DISPATCHER_STRATUS", - "DISPATCHER_TASKS_SERVER", - "DISPATCHER_STUBBY_DISPATCHER", - "DISPATCHER_CS" - ], - "enumDescriptions": [ - "Replace ACTION_INVOKE_X; the CS and Stratus are no longer limited to a single type of action. Each additional remote client should be defined here.", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "fireTimeUs": { - "description": "Earliest time to fire at in microseconds. The actual time that the trigger will fire will be in the timerange: [fire_time_us, fire_time_us + batch_time_us).", - "format": "int64", - "type": "string" - }, - "jobsettedServerSpec": { - "$ref": "JobsettedServerSpec", - "description": "Must be set for DISPATCHER_JOBSETTED_PRIMARY." - }, - "key": { - "description": "The trigger key, if applicable.", - "type": "string" - }, - "rpcOptions": { - "$ref": "RpcOptions" - }, - "sliceFireTimeUs": { - "description": "The slice_fire_time_us is automatically computed and stored as part of the trigger write. It represents the exact fire time at which the trigger will be queued to fire and will satisfy fire_time_us < slice_fire_time_us <= fire_time_us + batch_time_us Triggers have an index row in the slice trigger index with the row prefix matching this time. Note that this field is internal to gmail_cp and is ignored if set by external clients when adding / updating triggers.", - "format": "int64", - "type": "string" - }, - "triggerAction": { - "$ref": "TriggerAction", - "description": "Trigger action to perform. This should always be set." - }, - "triggerKey": { - "$ref": "TriggerKey", - "description": "The TriggerKey will uniquely determine a trigger within a given context. A context is a single message for message triggers or a single account for account triggers." - } - }, - "type": "object" - }, - "TriggerAction": { - "id": "TriggerAction", - "properties": { - "action": { - "enum": [ - "ACTION_NONE", - "ACTION_DELETE", - "ACTION_CREATE_NEW_TRIGGER", - "ACTION_MESSAGE_EXPUNGE", - "ACTION_RETENTION_POLICY_UPDATE", - "ACTION_UPDATE_ICEBOX_MODEL", - "ACTION_INVOKE_CS", - "ACTION_INVOKE_STRATUS", - "ACTION_PDH_EXPUNGE", - "ACTION_QUERY_RETENTION", - "ACTION_INVOKE_JOBSETTED_PRIMARY", - "ACTION_INVOKE_TASKS_SERVER", - "ACTION_INVOKE_PUBLISHER", - "ACTION_INVOKE_OBSERVER", - "ACTION_PUSH_HISTORY_TO_PDH", - "ACTION_INVOKE_STUBBY_DISPATCHER", - "ACTION_PDH_BACKFILL", - "ACTION_MESSAGE_UNDELETE", - "ACTION_VAULT_END_USER_ACCESS", - "ACTION_INVOKE_GROUPS", - "ACTION_ACCOUNT_INITIALIZATION", - "ACTION_INVOKE_OBSERVER_WIPEOUT", - "ACTION_SERVICE_REMOVED_MESSAGE_EXPUNGE", - "ACTION_EVERCLEAR_EXPUNGE", - "ACTION_INVOKE_SMIME_CERTIFICATE_ISSUER", - "ACTION_GROUPS_QUERY_RETENTION", - "ACTION_INVOKE_SATELLITE_BACKUP", - "ACTION_INVOKE_DEBUG_LOG", - "ACTION_PREFERENCE_CLEANUP", - "ACTION_CARIBOU_DATA_RETENTION", - "ACTION_HISTORY_CLEANUP", - "ACTION_ITEM_BULK_RELABEL", - "ACTION_INVOKE_SATELLITE_IMAGE_PROCESSING", - "ACTION_CARIBOU_DATA_RETENTION_DIFF", - "ACTION_RELEVANCY_SCORE_BACKFILL", - "ACTION_PDH_PUSH_NOTIFICATION_BACKFILL", - "ACTION_AUTO_SAVE_DRAFT_EXPUNGE" - ], - "enumDescriptions": [ - "", - "No-op", - "No-op", - "This action begins the message expunge process. It will trigger a purge attempt for all messages that have this trigger.", - "When this trigger fires, the current retention policy will be loaded from the policy management system and stored into the preference cache (if necessary). This will also create new expunge triggers if necessary.", - "When this trigger fires, the message should be used to update the user's importance model. See http://go/io-tingle for more details.", - "Sends the trigger to the master Caribou server via the Stubby TriggerHandlerService interface (defined in caribou/coproc/proto/trigger_handler.proto). The trigger is handled at fire time in the account's primary replica, and only in non-primary replicas after a delay.", - "Similar to ACTION_INVOKE_CS, but instead of sending the trigger to the master Caribou server, sends it to a Stratus server that also implements the TriggerHandlerService. This Stratus server is specified via FLAGS_triggers_stratus_server_address. The trigger is handled at fire time in the account's primary replica, and only in non-primary replicas after a delay.", - "This action begins the message's PDH expunge. It will trigger a expunge (from pdh) attempt for all messages that have this trigger.", - "When this trigger fires, based on the latest retention policy: 1. messages that need to be deleted will be deleted through the CS trigger handler 2. ^deleted messages that need to be expunged will be expunged", - "Similar to ACTION_INVOKE_CS, but instead of sending the trigger to the master Caribou server, sends it to a jobsetted server in the user's master jobset using the consistent-hash homing algorithm. The jobsetted_server_spec must be specified when using this TriggerAction.", - "Send the trigger to a Tasks server that implements the TriggerHandlerService. Dispatched via GSLB target specified by FLAGS_triggers_tasks_server_address.", - "Send the trigger to a SmartMail Publisher server that implements the TriggerHandlerService. Dispatched via GSLB target specified by FLAGS_triggers_publisher_server_address.", - "Send the trigger to an Observer server that implements the TriggerHandlerService. Dispatched via GSLB target specified by FLAGS_triggers_observer_server_address.", - "Push a set of history records to PDH.", - "Send the trigger to the stubby dispatcher, which routes the RPC using the value of Trigger.dispatch_id as the RoutingInfo.extension_tag field. Dispatched via the GSLB target specified by FLAGS_triggers_stubby_dispatcher_address.", - "Backfills a set of records from an account and pushes them to PDH.", - "Move messages from ^deleted to ^all. This trigger will only undelete messages that were deleted before the fire time of the trigger. Also, messages whose blobs are already deleted will not be undeleted. This is an account trigger.", - "This trigger will undelete messages that were ^deleted arbitrarily long in the past and a trash label will be applied to these undeleted messages. This is an account trigger that will be written when the Vault admin enables end user access for the Vault customer. This trigger shares its implementation with the ACTION_MESSAGE_UNDELETE trigger.", - "Send the trigger to a groups server that implements the TriggerHandlerService. Dispatched via GSLB target specified by FLAGS_triggers_groups_server_address.", - "This trigger will be executed once per newly created account. It will be created as part of the first transaction written to the account. The trigger can also be written as part of an SVF in case we want to re-initialize every account.", - "Send the trigger to an Observer server that implements the TriggerHandlerService for wipeout purpose. Dispatched via GSLB target specified by FLAGS_triggers_observer_server_address. It behaves differently from the invoke observer trigger (ACTION_INVOKE_OBSERVER) and should be batched separately. Tingle always fires this kind of action trigger for ^deleted messages.", - "Begins the message expunge similar to ACTION_MESSAGE_EXPUNGE but doesn't check if the message was deleted at least 30 days back. To be used ONLY for service removal. See go/gmail-service-removal for more details.", - "Sends RPC to everclear for the message expunge.", - "Send the trigger to the S/MIME certificate issuer server. Dispatched via the GSLB target specified by FLAGS_triggers_smime_certificate_issuer_server_address.", - "The retention trigger that will be written to implement Groups retention.", - "Dispatches the permanent backup trigger to Satellite through Stubby dispatcher.", - "Process the debug log trigger by adding message body before dispatching to the Caribou Server through Stubby Dispatcher.", - "This trigger deletes expired temporary preferences. See go/tingle-temp-prefs for more details.", - "Similar to ACTION_QUERY_RETENTION but uses the MessageRetention policies to trash/delete the messages: cs/caribou/base/lib/proto/data_retention.proto .", - "This trigger deletes expired HistoryRecords. See go/history-record-cleanup for more details.", - "This trigger relabels messages asynchronously. See go/fusebox-bulk-api for more details.", - "Dispatches the image processing trigger to Satellite through Stubby dispatcher. See go/gmail-photo-sharing for details.", - "Trigger for executing comparison logic between the output of ApplyDataRetention idle task and CaribouDataRetention trigger.", - "Trigger for backfill relevancy score. see go/gmail-relevancy-scoring-write for detail.", - "Trigger to backfill gaps left by pdh pushed via push notification. see go/tingle-moonshine-push-v2", - "Begins the message expunge similar to ACTION_MESSAGE_EXPUNGE but fires within one day. To be used ONLY for auto save drafts. See go/faster-auto-save-draft-deletion for more details." - ], - "type": "string" - }, - "data": { - "description": "Clients should use extensions on the Trigger message instead.", - "format": "byte", - "type": "string" - }, - "dataInt": { - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "TriggerKey": { - "description": "A TriggerKey (type + instance_id) uniquely identifies a trigger within a message for a message-trigger and within an account for an account-trigger.", - "id": "TriggerKey", - "properties": { - "instanceId": { - "description": "Identifier to distinguish multiple Triggers of the same type (per message or per account).", - "type": "string" - }, - "type": { - "description": "A non-empty string that identifies the type of Trigger. Triggers of the same type may be batched together. The universe of values for the type field should be finite as it is used as a stats key.", - "type": "string" - } - }, - "type": "object" - }, - "Triggers": { - "id": "Triggers", - "properties": { - "triggers": { - "description": "A list of triggers.", - "items": { - "$ref": "Trigger" - }, - "type": "array" - } - }, - "type": "object" - }, - "TrustedResourceUrlProto": { - "description": "Message containing a string that is safe to use in all URL contexts in DOM APIs and HTML documents; even where the referred-to resource is interpreted as code, e.g., as the src of a script element.", - "id": "TrustedResourceUrlProto", - "properties": { - "privateDoNotAccessOrElseTrustedResourceUrlWrappedValue": { - "description": "IMPORTANT: Never set or read this field, even from tests, it is private. See documentation at the top of .proto file for programming language packages with which to create or read this message.", - "type": "string" - } - }, - "type": "object" - }, - "TypeInfo": { - "description": "Next tag: 2", - "id": "TypeInfo", - "properties": { - "videoInfo": { - "$ref": "VideoInfo", - "description": "Contains additional video information only if document_type is VIDEO." - } - }, - "type": "object" - }, - "UniversalPhoneAccess": { - "description": "Universal phone access contains information required to dial into a conference using one of a static list of phone numbers and a universal PIN. The phone number list is distributed separately.", - "id": "UniversalPhoneAccess", - "properties": { - "pin": { - "description": "The PIN that users must enter after dialing a universal number. The pin consists of only decimal digits and the length may vary, though it generally is longer than a PhoneAccess.pin.", - "type": "string" - }, - "pstnInfoUrl": { - "description": "This field has the same contents as the MeetingSpace.more_join_url field, and is included for compatibility reasons. Clients should use the other field instead. This field is deprecated and will be removed.", - "type": "string" - } - }, - "type": "object" - }, "UnmappedIdentity": { "id": "UnmappedIdentity", "properties": { @@ -17368,60 +7859,6 @@ }, "type": "object" }, - "UpdateBccRecipients": { - "id": "UpdateBccRecipients", - "properties": { - "bccRecipients": { - "items": { - "$ref": "Recipient" - }, - "type": "array" - } - }, - "type": "object" - }, - "UpdateBody": { - "id": "UpdateBody", - "properties": { - "insertContents": { - "description": "A repeated field that contains a series of content to insert into the draft that the user is currently editing. The content can contain HTML content or plain text content.", - "items": { - "$ref": "InsertContent" - }, - "type": "array" - }, - "type": { - "enum": [ - "UNSPECIFIED_ACTION_TYPE", - "IN_PLACE_INSERT", - "INSERT_AT_START", - "INSERT_AT_END", - "REPLACE" - ], - "enumDescriptions": [ - "Default value when nothing is set for Type.", - "Indicates this action is to perform an in-place insertion. By default the content is inserted at the current cursor position, if there is selected content, it replaces the selected content.", - "Indicates this action is to perform insert at the start of the message body.", - "Indicates this action is to perform insert at the end of the message body.", - "Indicates this action is to replace the message body." - ], - "type": "string" - } - }, - "type": "object" - }, - "UpdateCcRecipients": { - "id": "UpdateCcRecipients", - "properties": { - "ccRecipients": { - "items": { - "$ref": "Recipient" - }, - "type": "array" - } - }, - "type": "object" - }, "UpdateDataSourceRequest": { "id": "UpdateDataSourceRequest", "properties": { @@ -17440,32 +7877,6 @@ }, "type": "object" }, - "UpdateDraftActionMarkup": { - "id": "UpdateDraftActionMarkup", - "properties": { - "updateBccRecipients": { - "$ref": "UpdateBccRecipients", - "description": "If set, replaces the existing Bcc recipients of the draft the user is currently editing." - }, - "updateBody": { - "$ref": "UpdateBody", - "description": "A field that contains a series of update actions to perform on the draft body that the user is currently editing." - }, - "updateCcRecipients": { - "$ref": "UpdateCcRecipients", - "description": "If set, replaces the existing Cc recipients of the draft the user is currently editing." - }, - "updateSubject": { - "$ref": "UpdateSubject", - "description": "If set, replaces the existing subject of the draft the user is currently editing." - }, - "updateToRecipients": { - "$ref": "UpdateToRecipients", - "description": "If set, replaces the existing To recipients of the draft the user is currently editing." - } - }, - "type": "object" - }, "UpdateSchemaRequest": { "id": "UpdateSchemaRequest", "properties": { @@ -17484,27 +7895,6 @@ }, "type": "object" }, - "UpdateSubject": { - "id": "UpdateSubject", - "properties": { - "subject": { - "type": "string" - } - }, - "type": "object" - }, - "UpdateToRecipients": { - "id": "UpdateToRecipients", - "properties": { - "toRecipients": { - "items": { - "$ref": "Recipient" - }, - "type": "array" - } - }, - "type": "object" - }, "UploadItemRef": { "description": "Represents an upload session reference. This reference is created via upload method. This reference is valid for 30 days after its creation. Updating of item content may refer to this uploaded content via contentDataRef.", "id": "UploadItemRef", @@ -17516,433 +7906,13 @@ }, "type": "object" }, - "UploadMetadata": { - "description": "Annotation metadata for user Upload artifacts.", - "id": "UploadMetadata", + "UserActivity": { + "description": "User's single or bulk query activity. This can be a logging query or deletion query.", + "id": "UserActivity", "properties": { - "attachmentToken": { - "description": "Opaque token. Clients shall simply pass it back to the Backend. This field will NOT be saved into storage.", - "type": "string" - }, - "backendUploadMetadata": { - "$ref": "AppsDynamiteSharedBackendUploadMetadata", - "description": "Information about the uploaded attachment that is only used in Backend. This field will NOT be sent out of Google." - }, - "clonedAuthorizedItemId": { - "$ref": "AuthorizedItemId", - "description": "The \"new\" secure identifier for Drive files. Should be used instead of the deprecated string drive_id field above. This should only be set if the upload file has been added to Drive. Note that older Drive files that do not have a ResourceKey should still use this field, with the resource_key field unset." - }, - "clonedDriveAction": { - "description": "DriveAction for organizing the cloned version of this upload in Drive, if the file has been added to Drive. This field is not set if the file has not been added to Drive. Additionally, this field is only set when part of a FileResult in a ListFilesResponse.", - "enum": [ - "DRIVE_ACTION_UNSPECIFIED", - "ADD_TO_DRIVE", - "ORGANIZE", - "ADD_SHORTCUT", - "ADD_ANOTHER_SHORTCUT" - ], - "enumDescriptions": [ - "No organize action should be shown.", - "Show \"Add to Drive\" button, for adding file that doesn't exist in Drive to Drive. Note that deleted Drive files that still exist (i.e. in your Trash) will still be ORGANIZE (this is consistent with Gmail Drive attachments).", - "Show \"Move\" button, for organizing a Drive file the user has permission to move.", - "Show \"Add shortcut\" button, for adding a shortcut to a Drive file the user does not have permission to move.", - "Show \"Add another shortcut\" button, for Drive files the user has already created a shortcut to." - ], - "type": "string" - }, - "clonedDriveId": { - "description": "Reference to a Drive ID, if this upload file has been previously cloned to Drive. Note: this is deprecated in favor of the AuthorizedItemId below.", - "type": "string" - }, - "contentName": { - "description": "The original file name for the content, not the full path.", - "type": "string" - }, - "contentType": { - "description": "Type is from Scotty's best_guess by default: http://google3/uploader/agent/scotty_agent.proto?l=51&rcl=140889785", - "type": "string" - }, - "dlpMetricsMetadata": { - "$ref": "AppsDynamiteSharedDlpMetricsMetadata", - "description": "The metrics metadata of the Data Loss Prevention attachment scan." - }, - "latestVirusScanTimestamp": { - "description": "The timestamp of the most recent virus scan completed (in microseconds).", - "format": "int64", - "type": "string" - }, - "localId": { - "description": "A copy of the LocalId in Annotation. This field is supposed to be filled by server only.", - "type": "string" - }, - "originalDimension": { - "$ref": "AppsDynamiteSharedDimension", - "description": "Original dimension of the content. Only set for image attachments." - }, - "videoReference": { - "$ref": "AppsDynamiteSharedVideoReference", - "description": "Reference to a transcoded video attachment. Only set for video attachments." - }, - "virusScanResult": { - "description": "Result for a virus scan. It's duplicated in the above field apps.dynamite.shared.BackendUploadMetadata", - "enum": [ - "UNKNOWN_VIRUS_SCAN_RESULT", - "CLEAN", - "INFECTED", - "ERROR", - "POLICY_VIOLATION" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "The document violates Google's policy for executables and archives." - ], - "type": "string" - } - }, - "type": "object" - }, - "UrlMetadata": { - "description": "Annotation metadata for a Weblink. In case of pasted link it can qualify to be other types in addition to being a URL - like DRIVE_DOC/DRIVE_SHEET and so on. The URL metadata will also be present and it's up to the client to decide which metadata to render it with. These fields are filled in using page render service.", - "id": "UrlMetadata", - "properties": { - "domain": { - "description": "Domain for this url. If it's an IP address the address is returned.", - "type": "string" - }, - "gwsUrl": { - "$ref": "SafeUrlProto", - "description": "The signed GWS URL." - }, - "gwsUrlExpirationTimestamp": { - "description": "The expiration timestamp for GWS URL, only set when gws_url is set.", - "format": "int64", - "type": "string" - }, - "imageHeight": { - "description": "Dimensions of the image: height. This field is string to match with page render service response. Deprecated. Use int_image_height instead.", - "type": "string" - }, - "imageUrl": { - "description": "Representative image of the website.", - "type": "string" - }, - "imageWidth": { - "description": "Dimensions of the image: width. This field is string to match with page render service response. Deprecated. Use int_image_height instead.", - "type": "string" - }, - "intImageHeight": { - "description": "Dimensions of the image: height.", - "format": "int32", - "type": "integer" - }, - "intImageWidth": { - "description": "Dimensions of the image: width.", - "format": "int32", - "type": "integer" - }, - "mimeType": { - "description": "Mime type of the content (Currently mapped from Page Render Service ItemType) Note that this is not necessarily the mime type of the http resource. For example a text/html from youtube or vimeo may actually be classified as a video type. Then we shall mark it as video/* since we don't know exactly what type of video it is.", - "type": "string" - }, - "redirectUrl": { - "$ref": "SafeUrlProto", - "description": "The stable redirect URL pointing to frontend server." - }, - "shouldNotRender": { - "description": "If the UrlMetadata is missing data for rendering a chip. Deprecated. Use Annotation.ChipRenderType instead.", - "type": "boolean" - }, - "snippet": { - "description": "Snippet/small description of the weblink.", - "type": "string" - }, - "title": { - "description": "Title of the Weblink.", - "type": "string" - }, - "url": { - "$ref": "SafeUrlProto", - "description": "The original URL." - }, - "urlSource": { - "enum": [ - "URL_SOURCE_UNKNOWN", - "SERVER_SUPPLIED_POLICY_VIOLATION", - "AUTO_DETECTED_PLAIN_TEXT", - "RICH_TEXT" - ], - "enumDescriptions": [ - "", - "", - "Set by the server, when it detects a URL in the message text", - "Set by the client, when the user adds a link as a custom hyperlink. Validated by the server and persisted in storage." - ], - "type": "string" - } - }, - "type": "object" - }, - "User": { - "description": "User profile information. This user is not necessarily member of a space.", - "id": "User", - "properties": { - "avatarUrl": { - "description": "URL for the avatar picture of the User in dynamite", - "type": "string" - }, - "blockRelationship": { - "$ref": "AppsDynamiteSharedUserBlockRelationship", - "description": "Information about whether the user is blocked by requester and/or has blocked requester." - }, - "botInfo": { - "$ref": "BotInfo", - "description": "Bot-specific profile information. Leave it empty for human users." - }, - "deleted": { - "description": "Deleted flag, if true, means User has been soft-deleted/purged Deprecated. Use user_account_state field instead.", - "type": "boolean" - }, - "email": { - "description": "Email ID of the user", - "type": "string" - }, - "firstName": { - "description": "First or given name of the user", - "type": "string" - }, - "gender": { - "description": "Gender of the user", - "type": "string" - }, - "id": { - "$ref": "UserId", - "description": "UserId" - }, - "isAnonymous": { - "description": "Set to true if none of the depending services (Gaia, PeopleApi) returns any info for this user.", - "type": "boolean" - }, - "lastName": { - "description": "Last or family name of the user", - "type": "string" - }, - "name": { - "description": "Non-unique, user-defined display name of the User", - "type": "string" - }, - "organizationInfo": { - "$ref": "AppsDynamiteSharedOrganizationInfo", - "description": "Information about whether the user is a consumer user, or the GSuite customer that they belong to." - }, - "phoneNumber": { - "description": "Phone number(s) of the user", - "items": { - "$ref": "AppsDynamiteSharedPhoneNumber" - }, - "type": "array" - }, - "userAccountState": { - "description": "State of user's Gaia Account", - "enum": [ - "UNKNOWN_USER_ACCOUNT_STATE", - "ENABLED", - "DISABLED", - "DELETED", - "TEMPORARY_UNAVAILABLE" - ], - "enumDescriptions": [ - "", - "User has Dynamite enabled.", - "User doesn't have Dynamite enabled. This includes service disabled by admin, or user's account is suspended", - "User account is deleted", - "Failed to retrieve user's info. Will use user's email address as name and first_name." - ], - "type": "string" - }, - "userProfileVisibility": { - "description": "Visibility of user's Profile", - "enum": [ - "UNKNOWN_USER_PROFILE_VISIBILITY", - "FULL_PROFILE", - "PRIMARY_MAIL", - "INVITEE_EMAIL", - "DELETED_USER", - "UNKNOWN_USER", - "FAILURE" - ], - "enumDescriptions": [ - "", - "Caller has full visibility.", - "Caller can only see target user's primary email from Gaia", - "Caller can only see the email used to invite the target user", - "Caller can only see the target user as a deleted user. Email is empty. Names are redacted as \"Deleted User\".", - "Caller has no visibility to the target user at all. Email is empty. Names are redacted as \"Unknown User\".", - "Stubby failed. Clients should always retry ASAP" - ], - "type": "string" - } - }, - "type": "object" - }, - "UserDisplayInfo": { - "description": "Resource for displaying user info", - "id": "UserDisplayInfo", - "properties": { - "avatarUrl": { - "description": "The avatar to show for this user", - "type": "string" - }, - "displayName": { - "description": "The name to show for this user", - "type": "string" - } - }, - "type": "object" - }, - "UserId": { - "description": "Primary key for User resource.", - "id": "UserId", - "properties": { - "actingUserId": { - "description": "Optional. Opaque, server-assigned ID of the user profile associated with App/user acting on behalf of the human user. This is currently only set when a 3P application is acting on the user's behalf.", - "type": "string" - }, - "id": { - "description": "Opaque, server-assigned ID of the User.", - "type": "string" - }, - "originAppId": { - "$ref": "AppId", - "description": "Optional. Identifier of the App involved (directly or on behalf of a human creator) in creating this message. This is not set if the user posted a message directly, but is used in the case of, for example, a message being generated by a 1P integration based on a user action (creating an event, creating a task etc). This should only be used on the BE. For clients, please use the field in the FE message proto instead (google3/apps/dynamite/v1/frontend/api/message.proto?q=origin_app_id)." - }, - "type": { - "description": "Clients do not need to send UserType to Backend, but Backend will always send this field to clients per the following rule: 1. For HUMAN Ids, the field is empty but by default .getType() will return HUMAN. 2. For BOT Ids, the field is ALWAYS set to BOT.", - "enum": [ - "HUMAN", - "BOT" - ], - "enumDescriptions": [ - "Notes on HUMAN type: 1) Leaving UserId.UserType field empty will return HUMAN as default value. This is expected because all the existing UserIds are without explicitly setting UserType, most of which are HUMAN Ids. For Bot Ids we will always set BOT in UserType field. 2) DO NOT explicitly set HUMAN as type. This is a proto2 issue, that a UserId with explicitly set default value HUMAN as type is NOT equal to an id without setting the field. aka. UserId id1 = UserId.newBuilder() .setId(\"dummy\").setType(UserType.HUMAN).build(); UserId id2 = UserId.newBuilder().setId(\"dummy\").build(); AssertThat(id1).isNotEqual(id2); AssertThat(id2.getType()).isEqualTo(UserType.HUMAN);", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "UserInfo": { - "description": "Contains info regarding the updater of an Activity Feed item. Next Id: 8", - "id": "UserInfo", - "properties": { - "driveNotificationAvatarUrl": { - "description": "Avatar url of the user who triggered the Drive Notification email. This field will be populated if we can extract such information from the Drive Notification email. This should only be used to fetch user avatars when updater_to_show_email is not populated. This field is not set for non-Drive Notification items.", - "type": "string" - }, - "updaterCountDisplayType": { - "description": "Describes how updater_count_to_show should be used.", - "enum": [ - "UPDATER_COUNT_DISPLAY_TYPE_UNSPECIFIED", - "NO_DISPLAY_COUNT", - "EXACT_COUNT", - "NONZERO_COUNT" - ], - "enumDescriptions": [ - "", - "No additional updaters where involved. Shows up in clients as \"$USERNAME replied\".", - "A precise updater count is known and the value set in updater_count_to_show should be used. If set, updater_count_to_show is set to the total number of updaters minus the one set in updater_to_show. Shows up in clients as \"$USERNAME and $NUM others replied\".", - "A precise updater count could not be calculated, but there is at least one. Any value set in updater_count_to_show should NOT be used. Shows up in clients as \"$USERNAME and others replied\"." - ], - "type": "string" - }, - "updaterCountToShow": { - "description": "The number of updaters for clients to show depending on UpdaterCountDisplayType.", - "format": "int32", - "type": "integer" - }, - "updaterToShowEmail": { - "description": "The email of the updater for clients to show used for Gmail items. For Drive Notifications, this is the email of the user who triggered the Drive Notification email. This field will be populated if we can extract such information from the Drive Notification email. This is not the actual sender of the email, as the sender is always comments-noreply@docs.google.com.", - "type": "string" - }, - "updaterToShowGaiaId": { - "description": "The gaia id of the updater for clients to show used for Gmail items. If the updater is an external user, the email field below should be populated.", - "format": "int64", - "type": "string" - }, - "updaterToShowName": { - "description": "The display name of the updater for clients to show used for Gmail items. For non-Drive Notification items, this field will always be populated. If the display name cannot be found for the user, the fallback string will be the email address. For Drive Notification items, this is the name of the user who triggered the Drive notification email. This field will be populated if we can extract such information from the Drive Notification email. If the name cannot be extracted, then the email will be the fallback string, which is used as the display name text in the UI when needed. This is not the actual sender of the email, as the sender is always comments-noreply@docs.google.com.", - "type": "string" - }, - "updaterToShowUserId": { - "$ref": "UserId", - "description": "The updater for clients to show used for Dynamite Chat items." - } - }, - "type": "object" - }, - "UserMentionData": { - "description": "Person metadata, for USER_MENTION segments. Should always contain at least one of user_gaia_id, user_id, email or user. The exact set of populated fields may differ depending on the context and the level in the serving stack; for example, emails will be elided on the viewing path. But as a general rule, a proto having any one of the four is valid, subject to the standard constraints of the applied annotations -- that is, communication between servers and clients will ignore jspb.ignore fields, and communication between servers and other servers (or between servers and storage) will ignore client_only fields. For more on the annotations, see the comments in social/common/segment_annotations.proto", - "id": "UserMentionData", - "properties": { - "email": { - "type": "string" - }, - "user": { - "$ref": "PrincipalProto", - "description": "If the principal is backed by a gaia id, DO NOT use this field. Use user_gaia_id/user_id fields instead." - }, - "userGaiaId": { - "description": "An unobfuscated gaia ID:", - "format": "int64", - "type": "string" - }, - "userId": { - "description": "An obfuscated gaia ID:", - "type": "string" - } - }, - "type": "object" - }, - "UserMentionMetadata": { - "description": "Annotation metadata for user mentions (+/@/-).", - "id": "UserMentionMetadata", - "properties": { - "displayName": { - "description": "Display name of the mentioned user. This field should remain empty when clients resolve a UserMention annotation. It will be filled in when a UserMention is generated by the Integration Server.", - "type": "string" - }, - "gender": { - "description": "Gender of the mentioned user. One of \"female\", \"male\" or \"other\". Used for choosing accurate translations for strings that contain the UserMention, when these need to be constructed (e.g. task assignment update message). This field should remain empty when clients resolve a UserMention. It will be filled in when a UserMention is generated by the Integration Server.", - "type": "string" - }, - "id": { - "$ref": "UserId", - "description": "To be deprecated. Use invitee_info field instead. ID of the User mentioned. This field should remain empty when type == MENTION_ALL." - }, - "inviteeInfo": { - "$ref": "InviteeInfo", - "description": "Invitee UserId and email used when mentioned. This field should remain empty when type == MENTION_ALL. Invitee_info.email is only used when a user is @-mentioned with an email address, and it will be empty when clients get messages from Backend." - }, - "type": { - "enum": [ - "TYPE_UNSPECIFIED", - "INVITE", - "UNINVITE", - "MENTION", - "MENTION_ALL", - "FAILED_TO_ADD" - ], - "enumDescriptions": [ - "Default value for the enum. DO NOT USE.", - "", - "", - "", - "", - "Server-generated user mention, for clients to strikethrough." - ], - "type": "string" + "queryActivity": { + "$ref": "QueryActivity", + "description": "Contains data which needs to be logged/removed." } }, "type": "object" @@ -17998,294 +7968,6 @@ } }, "type": "object" - }, - "VideoCallMetadata": { - "id": "VideoCallMetadata", - "properties": { - "meetingSpace": { - "$ref": "MeetingSpace", - "description": "Thor meeting space." - }, - "shouldNotRender": { - "description": "If this field is set to true, server should still contact external backends to get metadata for search but clients should not render this chip.", - "type": "boolean" - }, - "wasCreatedInCurrentGroup": { - "description": "Whether this meeting space was created via Dynamite in this Dynamite group.", - "type": "boolean" - } - }, - "type": "object" - }, - "VideoInfo": { - "description": "Next tag: 2", - "id": "VideoInfo", - "properties": { - "duration": { - "description": "Duration of the video in milliseconds. This field can be absent for recently uploaded video or inaccurate sometimes.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "VoicePhoneNumber": { - "description": "Represents both long and short phone number that can be called or texted. Short telephone numbers are used to reach local services. Short numbers and their purpose differ from country to country. These numbers in US are in the form of N11 which is a three-digit abbreviated dialing telephone number.", - "id": "VoicePhoneNumber", - "properties": { - "e164": { - "description": "E.164 formatted full phone number with leading +. This field also represents encoded form of short telephone numbers in E.164 format. e.g. \"911\" is encoded as \"+1911\".", - "type": "string" - }, - "i18nData": { - "$ref": "VoicePhoneNumberI18nData", - "description": "Additional data that could be added using the libphonenumber API." - } - }, - "type": "object" - }, - "VoicePhoneNumberI18nData": { - "id": "VoicePhoneNumberI18nData", - "properties": { - "countryCode": { - "description": "The country calling code for this number, as defined by the ITU. For example, this would be 1 for NANPA countries, and 33 for France (for more info see i18n.phonenumbers.PhoneNumber.country_code).", - "format": "int32", - "type": "integer" - }, - "internationalNumber": { - "description": "Display number formatted using the INTERNATIONAL format.", - "type": "string" - }, - "isValid": { - "description": "When present, indicates the number is valid according to the libphonenumber's isValidNumber API (see https://code.google.com/p/libphonenumber/).", - "type": "boolean" - }, - "nationalNumber": { - "description": "Display number formatted using the NATIONAL format.", - "type": "string" - }, - "regionCode": { - "description": "A region (country, territory, continent, etc), as defined by Unicode's \"CLDR\", itself based on ISO 3166 (UN country codes). For details, see https://www.corp.google.com/~engdocs/java/com/google/i18n/identifiers/RegionCode.html", - "type": "string" - }, - "validationResult": { - "description": "When set to a non-default value, indicates the validation reason that is set when phone number is invalid (is_valid is false).", - "enum": [ - "UNKNOWN", - "IS_POSSIBLE", - "INVALID_COUNTRY_CODE", - "TOO_SHORT", - "TOO_LONG", - "IS_POSSIBLE_LOCAL_ONLY", - "INVALID_LENGTH" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "WhiteboardInfo": { - "description": "Information on a whiteboard attached to an active conference. A whiteboard is a Jam document.", - "id": "WhiteboardInfo", - "properties": { - "id": { - "description": "The Cosmo Id of the whiteboard document (Jam).", - "type": "string" - }, - "title": { - "description": "Title of the whiteboard document.", - "type": "string" - }, - "uri": { - "description": "The uri for whiteboard document.", - "type": "string" - } - }, - "type": "object" - }, - "WidgetMarkup": { - "id": "WidgetMarkup", - "properties": { - "buttons": { - "description": "buttons is also oneof data and only one of these fields should be set.", - "items": { - "$ref": "Button" - }, - "type": "array" - }, - "dateTimePicker": { - "$ref": "DateTimePicker" - }, - "divider": { - "$ref": "Divider" - }, - "grid": { - "$ref": "Grid" - }, - "horizontalAlignment": { - "description": "The horizontal alignment of this widget.", - "enum": [ - "HORIZONTAL_ALIGNMENT_UNSPECIFIED", - "START", - "CENTER", - "END" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "image": { - "$ref": "Image" - }, - "imageKeyValue": { - "$ref": "ImageKeyValue" - }, - "keyValue": { - "$ref": "KeyValue" - }, - "menu": { - "$ref": "Menu", - "description": "Input Widgets" - }, - "selectionControl": { - "$ref": "SelectionControl" - }, - "textField": { - "$ref": "TextField" - }, - "textKeyValue": { - "$ref": "TextKeyValue" - }, - "textParagraph": { - "$ref": "TextParagraph", - "description": "Read-only Widgets" - } - }, - "type": "object" - }, - "WrappedResourceKey": { - "description": "A wrapper around a raw resource key. The secret should never be logged, and this proto annotates those secret fields to ensure that they are not. Clients are encouraged to use this proto rather than defining their own, to ensure that secrets are correctly annotated.", - "id": "WrappedResourceKey", - "properties": { - "resourceKey": { - "description": "Resource key of the Drive item. This field should be unset if, depending on the context, the item does not have a resource key, or if none was specified. This must never be logged.", - "type": "string" - } - }, - "type": "object" - }, - "YouTubeBroadcastSessionInfo": { - "description": "Information about a YouTube broadcast session.", - "id": "YouTubeBroadcastSessionInfo", - "properties": { - "broadcastStats": { - "$ref": "YouTubeBroadcastStats", - "description": "Current broadcast session's statistics." - }, - "sessionStateInfo": { - "$ref": "SessionStateInfo", - "description": "YouTube broadcast session's state information." - }, - "youTubeBroadcastSessionId": { - "description": "A unique server-generated ID for the broadcast session.", - "type": "string" - }, - "youTubeLiveBroadcastEvent": { - "$ref": "YouTubeLiveBroadcastEvent", - "description": "The YouTube Live broadcast event that is being streamed to." - } - }, - "type": "object" - }, - "YouTubeBroadcastStats": { - "description": "Statistics of the YouTube broadcast session.", - "id": "YouTubeBroadcastStats", - "properties": { - "estimatedViewerCount": { - "description": "Estimated concurrent viewer count.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "YouTubeLiveBroadcastEvent": { - "description": "Information about the broadcast to YouTube.", - "id": "YouTubeLiveBroadcastEvent", - "properties": { - "brandAccountGaiaId": { - "description": "Input only. If the channel_id is for a YouTube Channel owned by a Brand Account, client is required to populate this field with the obfuscated gaia id of the Brand account when starting the broadcast.", - "type": "string" - }, - "broadcastId": { - "description": "Input only. The broadcast id, used to control the lifecycle of the event on YouTube", - "type": "string" - }, - "channelId": { - "description": "YouTube Channel associated with the broadcast.", - "type": "string" - }, - "viewUrl": { - "description": "Output only. A URL that can be used to watch the meeting broadcast. Will be populated by the backend.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "YoutubeMetadata": { - "description": "Annotation metadata for YouTube artifact.", - "id": "YoutubeMetadata", - "properties": { - "id": { - "description": "YouTube resource ID of the artifact.", - "type": "string" - }, - "shouldNotRender": { - "description": "If this field is set to true, server should still contact external backends to get metadata for search but clients should not render this chip.", - "type": "boolean" - }, - "startTime": { - "description": "YouTube query parameter for timestamp. YouTube specific flag that allows users to embed time token when sharing a link. This property contains parsed time token in seconds.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "YoutubeUserProto": { - "id": "YoutubeUserProto", - "properties": { - "youtubeUserId": { - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "ZwiebackSessionProto": { - "description": "See go/zwieback. New uses of Zwieback sessions must be approved via go/zwieback-request.", - "id": "ZwiebackSessionProto", - "properties": { - "zwiebackSessionId": { - "format": "uint64", - "type": "string" - } - }, - "type": "object" } }, "servicePath": "", diff --git a/etc/api/cloudshell/v1/cloudshell-api.json b/etc/api/cloudshell/v1/cloudshell-api.json index e1a0dde804..0cc883f6fd 100644 --- a/etc/api/cloudshell/v1/cloudshell-api.json +++ b/etc/api/cloudshell/v1/cloudshell-api.json @@ -186,7 +186,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/operations", "httpMethod": "GET", "id": "cloudshell.operations.list", @@ -374,7 +374,7 @@ } } }, - "revision": "20230109", + "revision": "20240212", "rootUrl": "https://cloudshell.googleapis.com/", "schemas": { "AddPublicKeyMetadata": { @@ -576,7 +576,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/etc/api/cloudsupport/v2beta/cloudsupport-api.json b/etc/api/cloudsupport/v2beta/cloudsupport-api.json index 7a72cc2e88..11885cd571 100644 --- a/etc/api/cloudsupport/v2beta/cloudsupport-api.json +++ b/etc/api/cloudsupport/v2beta/cloudsupport-api.json @@ -105,49 +105,17 @@ }, "protocol": "rest", "resources": { - "attachments": { - "methods": { - "create": { - "description": "Create a file attachment on a case or Cloud resource. The attachment object must have the following fields set: filename.", - "flatPath": "v2beta/{v2betaId}/{v2betaId1}/attachments", - "httpMethod": "POST", - "id": "cloudsupport.attachments.create", - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. The resource name of the case (or case parent) to which the attachment should be attached.", - "location": "path", - "pattern": "^[^/]+/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v2beta/{+parent}/attachments", - "request": { - "$ref": "CreateAttachmentRequest" - }, - "response": { - "$ref": "Attachment" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - } - }, "caseClassifications": { "methods": { "search": { - "description": "Retrieve valid classifications to be used when creating a support case. The classications are hierarchical, with each classification containing all levels of the hierarchy, separated by \" > \". For example \"Technical Issue > Compute > Compute Engine\".", + "description": "Retrieve valid classifications to use when creating a support case. Classifications are hierarchical. Each classification is a string containing all levels of the hierarchy separated by `\" > \"`. For example, `\"Technical Issue > Compute > Compute Engine\"`. Classification IDs returned by this endpoint are valid for at least six months. When a classification is deactivated, this endpoint immediately stops returning it. After six months, `case.create` requests using the classification will fail. EXAMPLES: cURL: ```shell curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ 'https://cloudsupport.googleapis.com/v2/caseClassifications:search?query=display_name:\"*Compute%20Engine*\"' ``` Python: ```python import googleapiclient.discovery supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=\"v2\", discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version=v2\", ) request = supportApiService.caseClassifications().search( query='display_name:\"*Compute Engine*\"' ) print(request.execute()) ```", "flatPath": "v2beta/caseClassifications:search", "httpMethod": "GET", "id": "cloudsupport.caseClassifications.search", "parameterOrder": [], "parameters": { "pageSize": { - "description": "The maximum number of cases fetched with each request.", + "description": "The maximum number of classifications fetched with each request.", "format": "int32", "location": "query", "type": "integer" @@ -157,8 +125,28 @@ "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 written in the Cloud filter language. If non-empty, then only cases whose fields match the filter are returned. If empty, then no messages are filtered out.", + "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", "type": "string" } @@ -176,7 +164,7 @@ "cases": { "methods": { "close": { - "description": "Close the specified case.", + "description": "Close a case. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/43595344\" curl \\ --request POST \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2/$case:close\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().close( name=\"projects/some-project/cases/43595344\" ) print(request.execute()) ```", "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}:close", "httpMethod": "POST", "id": "cloudsupport.cases.close", @@ -185,7 +173,7 @@ ], "parameters": { "name": { - "description": "Required. The fully qualified name of the case resource to be closed.", + "description": "Required. The name of the case to close.", "location": "path", "pattern": "^[^/]+/[^/]+/cases/[^/]+$", "required": true, @@ -204,7 +192,7 @@ ] }, "create": { - "description": "Create a new case and associate it with the given Cloud resource. The case object must have the following fields set: display_name, description, classification, and severity.", + "description": "Create a new case and associate it with a parent. It must have the following fields set: `display_name`, `description`, `classification`, and `priority`. If you're just testing the API and don't want to route your case to an agent, set `testCase=true`. EXAMPLES: cURL: ```shell parent=\"projects/some-project\" curl \\ --request POST \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ --header 'Content-Type: application/json' \\ --data '{ \"display_name\": \"Test case created by me.\", \"description\": \"a random test case, feel free to close\", \"classification\": { \"id\": \"100IK2AKCLHMGRJ9CDGMOCGP8DM6UTB4BT262T31BT1M2T31DHNMENPO6KS36CPJ786L2TBFEHGN6NPI64R3CDHN8880G08I1H3MURR7DHII0GRCDTQM8\" }, \"time_zone\": \"-07:00\", \"subscriber_email_addresses\": [ \"foo@domain.com\", \"bar@domain.com\" ], \"testCase\": true, \"priority\": \"P3\" }' \\ \"https://cloudsupport.googleapis.com/v2/$parent/cases\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().create( parent=\"projects/some-project\", body={ \"displayName\": \"A Test Case\", \"description\": \"This is a test case.\", \"testCase\": True, \"priority\": \"P2\", \"classification\": { \"id\": \"100IK2AKCLHMGRJ9CDGMOCGP8DM6UTB4BT262T31BT1M2T31DHNMENPO6KS36CPJ786L2TBFEHGN6NPI64R3CDHN8880G08I1H3MURR7DHII0GRCDTQM8\" }, }, ) print(request.execute()) ```", "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases", "httpMethod": "POST", "id": "cloudsupport.cases.create", @@ -213,7 +201,7 @@ ], "parameters": { "parent": { - "description": "Required. The name of the Cloud resource under which the case should be created.", + "description": "Required. The name of the parent under which the case should be created.", "location": "path", "pattern": "^[^/]+/[^/]+$", "required": true, @@ -232,7 +220,7 @@ ] }, "escalate": { - "description": "Escalate a case. Escalating a case will initiate the Cloud Support escalation management process. This operation is only available to certain Customer Care tiers. Go to https://cloud.google.com/support and look for 'Technical support escalations' in the feature list to find out which tiers are able to perform escalations.", + "description": "Escalate a case, starting the Google Cloud Support escalation management process. This operation is only available for some support services. Go to https://cloud.google.com/support and look for 'Technical support escalations' in the feature list to find out which ones let you do that. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/43595344\" curl \\ --request POST \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ --header \"Content-Type: application/json\" \\ --data '{ \"escalation\": { \"reason\": \"BUSINESS_IMPACT\", \"justification\": \"This is a test escalation.\" } }' \\ \"https://cloudsupport.googleapis.com/v2/$case:escalate\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().escalate( name=\"projects/some-project/cases/43595344\", body={ \"escalation\": { \"reason\": \"BUSINESS_IMPACT\", \"justification\": \"This is a test escalation.\", }, }, ) print(request.execute()) ```", "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}:escalate", "httpMethod": "POST", "id": "cloudsupport.cases.escalate", @@ -241,7 +229,7 @@ ], "parameters": { "name": { - "description": "Required. The fully qualified name of the Case resource to be escalated.", + "description": "Required. The name of the case to be escalated.", "location": "path", "pattern": "^[^/]+/[^/]+/cases/[^/]+$", "required": true, @@ -260,7 +248,7 @@ ] }, "get": { - "description": "Retrieve the specified case.", + "description": "Retrieve a case. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/16033687\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2/$case\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().get( name=\"projects/some-project/cases/43595344\", ) print(request.execute()) ```", "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}", "httpMethod": "GET", "id": "cloudsupport.cases.get", @@ -269,7 +257,7 @@ ], "parameters": { "name": { - "description": "Required. The fully qualified name of a case to be retrieved.", + "description": "Required. The full name of a case to be retrieved.", "location": "path", "pattern": "^[^/]+/[^/]+/cases/[^/]+$", "required": true, @@ -285,7 +273,7 @@ ] }, "list": { - "description": "Retrieve all cases under the specified parent. Note: Listing cases under an Organization returns only the cases directly parented by that organization. To retrieve all cases under an organization, including cases parented by projects under that organization, use `cases.search`.", + "description": "Retrieve all cases under a parent, but not its children. For example, listing cases under an organization only returns the cases that are directly parented by that organization. To retrieve cases under an organization and its projects, use `cases.search`. EXAMPLES: cURL: ```shell parent=\"projects/some-project\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2/$parent/cases\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().list(parent=\"projects/some-project\") print(request.execute()) ```", "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases", "httpMethod": "GET", "id": "cloudsupport.cases.list", @@ -294,7 +282,7 @@ ], "parameters": { "filter": { - "description": "An expression written in filter language. If non-empty, the query returns the cases that match the filter. Else, the query doesn't filter the cases. Filter expressions use the following fields with the operators equals (`=`) and `AND`: - `state`: The accepted values are `OPEN` or `CLOSED`. - `priority`: The accepted values are `P0`, `P1`, `P2`, `P3`, or `P4`. You can specify multiple values for priority using the `OR` operator. For example, `priority=P1 OR priority=P2`. - [DEPRECATED] `severity`: The accepted values are `S0`, `S1`, `S2`, `S3`, or `S4`. - `creator.email`: The email address of the case creator. Examples: - `state=CLOSED` - `state=OPEN AND creator.email=\"tester@example.com\"` - `state=OPEN AND (priority=P0 OR priority=P1)`", + "description": "An expression used to filter cases. If it's an empty string, then no filtering happens. Otherwise, the endpoint returns the cases that match the filter. Expressions use the following fields separated by `AND` and specified with `=`: - `state`: Can be `OPEN` or `CLOSED`. - `priority`: Can be `P0`, `P1`, `P2`, `P3`, or `P4`. You can specify multiple values for priority using the `OR` operator. For example, `priority=P1 OR priority=P2`. - `creator.email`: The email address of the case creator. EXAMPLES: - `state=CLOSED` - `state=OPEN AND creator.email=\"tester@example.com\"` - `state=OPEN AND (priority=P0 OR priority=P1)`", "location": "query", "type": "string" }, @@ -310,11 +298,26 @@ "type": "string" }, "parent": { - "description": "Required. The fully qualified name of parent resource to list cases under.", + "description": "Required. The name of a parent to list cases under.", "location": "path", "pattern": "^[^/]+/[^/]+$", "required": true, "type": "string" + }, + "productLine": { + "description": "The product line for which to request cases for. If unspecified, only Google Cloud cases will be returned.", + "enum": [ + "PRODUCT_LINE_UNSPECIFIED", + "GOOGLE_CLOUD", + "GOOGLE_MAPS" + ], + "enumDescriptions": [ + "Unknown product type.", + "Google Cloud", + "Google Maps" + ], + "location": "query", + "type": "string" } }, "path": "v2beta/{+parent}/cases", @@ -326,7 +329,7 @@ ] }, "patch": { - "description": "Update the specified case. Only a subset of fields can be updated.", + "description": "Update a case. Only some fields can be updated. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/43595344\" curl \\ --request PATCH \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ --header \"Content-Type: application/json\" \\ --data '{ \"priority\": \"P1\" }' \\ \"https://cloudsupport.googleapis.com/v2/$case?updateMask=priority\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().patch( name=\"projects/some-project/cases/43112854\", body={ \"displayName\": \"This is Now a New Title\", \"priority\": \"P2\", }, ) print(request.execute()) ```", "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}", "httpMethod": "PATCH", "id": "cloudsupport.cases.patch", @@ -342,7 +345,7 @@ "type": "string" }, "updateMask": { - "description": "A list of attributes of the case object that should be updated as part of this request. Supported values are severity, display_name, and subscriber_email_addresses. If no fields are specified, all supported fields are updated. WARNING: If you do not provide a field mask, then you may accidentally clear some fields. For example, if you leave field mask empty and do not provide a value for subscriber_email_addresses, then subscriber_email_addresses is updated to empty.", + "description": "A list of attributes of the case that should be updated. Supported values are `priority`, `display_name`, and `subscriber_email_addresses`. If no fields are specified, all supported fields are updated. Be careful - if you do not provide a field mask, then you might accidentally clear some fields. For example, if you leave the field mask empty and do not provide a value for `subscriber_email_addresses`, then `subscriber_email_addresses` is updated to empty.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -360,7 +363,7 @@ ] }, "search": { - "description": "Search cases using the specified query.", + "description": "Search for cases using a query. EXAMPLES: cURL: ```shell parent=\"projects/some-project\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2/$parent/cases:search\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().search( parent=\"projects/some-project\", query=\"state=OPEN\" ) print(request.execute()) ```", "flatPath": "v2beta/cases:search", "httpMethod": "GET", "id": "cloudsupport.cases.search", @@ -377,8 +380,13 @@ "location": "query", "type": "string" }, + "parent": { + "description": "The name of the parent resource to search for cases under.", + "location": "query", + "type": "string" + }, "query": { - "description": "An expression written in filter language. A query uses the following fields with the operators equals (`=`) and `AND`: - `organization`: An organization name in the form `organizations/`. - `project`: A project name in the form `projects/`. - `state`: The accepted values are `OPEN` or `CLOSED`. - `priority`: The accepted values are `P0`, `P1`, `P2`, `P3`, or `P4`. You can specify multiple values for priority using the `OR` operator. For example, `priority=P1 OR priority=P2`. - [DEPRECATED] `severity`: The accepted values are `S0`, `S1`, `S2`, `S3`, or `S4`. - `creator.email`: The email address of the case creator. - `billingAccount`: A billing account in the form `billingAccounts/` You must specify eitehr `organization` or `project`. To search across `displayName`, `description`, and comments, use a global restriction with no keyword or operator. For example, `\"my search\"`. To search only cases updated after a certain date, use `update_time` retricted with that particular date, time, and timezone in ISO datetime format. For example, `update_time>\"2020-01-01T00:00:00-05:00\"`. `update_time` only supports the greater than operator (`>`). Examples: - `organization=\"organizations/123456789\"` - `project=\"projects/my-project-id\"` - `project=\"projects/123456789\"` - `billing_account=\"billingAccounts/123456-A0B0C0-CUZ789\"` - `organization=\"organizations/123456789\" AND state=CLOSED` - `project=\"projects/my-project-id\" AND creator.email=\"tester@example.com\"` - `project=\"projects/my-project-id\" AND (priority=P0 OR priority=P1)`", + "description": "An expression used to filter cases. Expressions use the following fields separated by `AND` and specified with `=`: - `organization`: An organization name in the form `organizations/`. - `project`: A project name in the form `projects/`. - `state`: Can be `OPEN` or `CLOSED`. - `priority`: Can be `P0`, `P1`, `P2`, `P3`, or `P4`. You can specify multiple values for priority using the `OR` operator. For example, `priority=P1 OR priority=P2`. - `creator.email`: The email address of the case creator. You must specify either `organization` or `project`. To search across `displayName`, `description`, and comments, use a global restriction with no keyword or operator. For example, `\"my search\"`. To search only cases updated after a certain date, use `update_time` restricted with that particular date, time, and timezone in ISO datetime format. For example, `update_time>\"2020-01-01T00:00:00-05:00\"`. `update_time` only supports the greater than operator (`>`). Examples: - `organization=\"organizations/123456789\"` - `project=\"projects/my-project-id\"` - `project=\"projects/123456789\"` - `organization=\"organizations/123456789\" AND state=CLOSED` - `project=\"projects/my-project-id\" AND creator.email=\"tester@example.com\"` - `project=\"projects/my-project-id\" AND (priority=P0 OR priority=P1)`", "location": "query", "type": "string" } @@ -396,7 +404,7 @@ "attachments": { "methods": { "list": { - "description": "Retrieve all attachments associated with a support case.", + "description": "List all the attachments associated with a support case. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/23598314\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2/$case/attachments\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = ( supportApiService.cases() .attachments() .list(parent=\"projects/some-project/cases/43595344\") ) print(request.execute()) ```", "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}/attachments", "httpMethod": "GET", "id": "cloudsupport.cases.attachments.list", @@ -416,7 +424,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of Case object for which attachments should be listed.", + "description": "Required. The name of the case for which attachments should be listed.", "location": "path", "pattern": "^[^/]+/[^/]+/cases/[^/]+$", "required": true, @@ -436,7 +444,7 @@ "comments": { "methods": { "create": { - "description": "Add a new comment to the specified Case. The comment object must have the following fields set: body.", + "description": "Add a new comment to a case. The comment must have the following fields set: `body`. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/43591344\" curl \\ --request POST \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ --header 'Content-Type: application/json' \\ --data '{ \"body\": \"This is a test comment.\" }' \\ \"https://cloudsupport.googleapis.com/v2/$case/comments\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = ( supportApiService.cases() .comments() .create( parent=\"projects/some-project/cases/43595344\", body={\"body\": \"This is a test comment.\"}, ) ) print(request.execute()) ```", "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}/comments", "httpMethod": "POST", "id": "cloudsupport.cases.comments.create", @@ -445,7 +453,7 @@ ], "parameters": { "parent": { - "description": "Required. The resource name of Case to which this comment should be added.", + "description": "Required. The name of the case to which the comment should be added.", "location": "path", "pattern": "^[^/]+/[^/]+/cases/[^/]+$", "required": true, @@ -464,7 +472,7 @@ ] }, "list": { - "description": "Retrieve all Comments associated with the Case object.", + "description": "List all the comments associated with a case. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/43595344\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2/$case/comments\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = ( supportApiService.cases() .comments() .list(parent=\"projects/some-project/cases/43595344\") ) print(request.execute()) ```", "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}/comments", "httpMethod": "GET", "id": "cloudsupport.cases.comments.list", @@ -473,18 +481,18 @@ ], "parameters": { "pageSize": { - "description": "The maximum number of comments fetched with each request. Defaults to 10.", + "description": "The maximum number of comments to fetch. Defaults to 10.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "A token identifying the page of results to return. If unspecified, the first page is retrieved.", + "description": "A token identifying the page of results to return. If unspecified, the first page is returned.", "location": "query", "type": "string" }, "parent": { - "description": "Required. The resource name of Case object for which comments should be listed.", + "description": "Required. The name of the case for which to list comments.", "location": "path", "pattern": "^[^/]+/[^/]+/cases/[^/]+$", "required": true, @@ -506,7 +514,7 @@ "media": { "methods": { "download": { - "description": "Download a file attachment on a case. Note: HTTP requests must append \"?alt=media\" to the URL.", + "description": "Download a file attached to a case. Note: HTTP requests must append \"?alt=media\" to the URL. EXAMPLES: cURL: ```shell name=\"projects/some-project/cases/43594844/attachments/0674M00000WijAnZAJ\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2/$name:download?alt=media\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.media().download( name=\"projects/some-project/cases/43595344/attachments/0684M00000Pw6pHQAR\" ) request.uri = request.uri.split(\"?\")[0] + \"?alt=media\" print(request.execute()) ```", "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}/attachments/{attachmentsId}:download", "httpMethod": "GET", "id": "cloudsupport.media.download", @@ -515,7 +523,7 @@ ], "parameters": { "name": { - "description": "The resource name of the attachment to be downloaded.", + "description": "The name of the file attachment to download.", "location": "path", "pattern": "^[^/]+/[^/]+/cases/[^/]+/attachments/[^/]+$", "required": true, @@ -533,7 +541,7 @@ "useMediaDownloadService": true }, "upload": { - "description": "Create a file attachment on a case or Cloud resource. The attachment object must have the following fields set: filename.", + "description": "Create a file attachment on a case or Cloud resource. The attachment must have the following fields set: `filename`. EXAMPLES: cURL: ```shell echo \"This text is in a file I'm uploading using CSAPI.\" \\ > \"./example_file.txt\" case=\"projects/some-project/cases/43594844\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ --data-binary @\"./example_file.txt\" \\ \"https://cloudsupport.googleapis.com/upload/v2beta/$case/attachments?attachment.filename=uploaded_via_curl.txt\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) file_path = \"./example_file.txt\" with open(file_path, \"w\") as file: file.write( \"This text is inside a file I'm going to upload using the Cloud Support API.\", ) request = supportApiService.media().upload( parent=\"projects/some-project/cases/43595344\", media_body=file_path ) request.uri = request.uri.split(\"?\")[0] + \"?attachment.filename=uploaded_via_python.txt\" print(request.execute()) ```", "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}/attachments", "httpMethod": "POST", "id": "cloudsupport.media.upload", @@ -553,7 +561,7 @@ ], "parameters": { "parent": { - "description": "Required. The resource name of the case (or case parent) to which the attachment should be attached.", + "description": "Required. The name of the case or Cloud resource to which the attachment should be attached.", "location": "path", "pattern": "^[^/]+/[^/]+/cases/[^/]+$", "required": true, @@ -575,11 +583,11 @@ } } }, - "revision": "20230121", + "revision": "20240304", "rootUrl": "https://cloudsupport.googleapis.com/", "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": { @@ -587,19 +595,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": { @@ -667,13 +681,17 @@ "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).", "id": "Case", "properties": { "classification": { "$ref": "CaseClassification", "description": "The issue classification applicable to this case." }, + "contactEmail": { + "description": "A user-supplied email address to send case update notifications for. This should only be used in BYOID flows, where we cannot infer the user's email address directly from their EUCs.", + "type": "string" + }, "createTime": { "description": "Output only. The time this case was created.", "format": "google-datetime", @@ -705,7 +723,7 @@ "type": "string" }, "priority": { - "description": "The priority of this case. If this is set, do not set severity.", + "description": "The priority of this case.", "enum": [ "PRIORITY_UNSPECIFIED", "P0", @@ -725,7 +743,7 @@ "type": "string" }, "severity": { - "description": "The severity of this case. Deprecated. Use priority instead.", + "description": "REMOVED. The severity of this case. Use priority instead.", "enum": [ "SEVERITY_UNSPECIFIED", "S0", @@ -790,16 +808,20 @@ "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": { - "description": "The display name of the classification.", + "description": "A display name for the classification. The display name is not static and can change. To uniquely and consistently identify classifications, use the `CaseClassification.id` field.", "type": "string" }, "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`.", + "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" @@ -811,11 +833,11 @@ "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": { - "description": "The full comment body. Maximum of 120000 characters. This can contain rich text syntax.", + "description": "The full comment body. Maximum of 12800 characters. This can contain rich text syntax.", "type": "string" }, "createTime": { @@ -835,7 +857,7 @@ "type": "string" }, "plainTextBody": { - "description": "Output only. An automatically generated plain text version of body with all rich text syntax stripped.", + "description": "Output only. DEPRECATED. An automatically generated plain text version of body with all rich text syntax stripped.", "readOnly": true, "type": "string" } @@ -847,6 +869,7 @@ "id": "CompositeMedia", "properties": { "blobRef": { + "deprecated": true, "description": "# gdata.* are outside protos with mising documentation", "format": "byte", "type": "string" @@ -1063,7 +1086,7 @@ "properties": { "escalation": { "$ref": "Escalation", - "description": "The escalation object to be sent with the escalation request." + "description": "The escalation information to be sent with the escalation request." } }, "type": "object" @@ -1100,14 +1123,14 @@ "id": "ListAttachmentsResponse", "properties": { "attachments": { - "description": "The list of attachments associated with the given case.", + "description": "The list of attachments associated with a case.", "items": { "$ref": "Attachment" }, "type": "array" }, "nextPageToken": { - "description": "A token to retrieve the next page of results. This should be set in the `page_token` field of subsequent `cases.attachments.list` requests. If unspecified, there are no more results to retrieve.", + "description": "A token to retrieve the next page of results. Set this in the `page_token` field of subsequent `cases.attachments.list` requests. If unspecified, there are no more results to retrieve.", "type": "string" } }, @@ -1118,14 +1141,14 @@ "id": "ListCasesResponse", "properties": { "cases": { - "description": "The list of cases associated with the cloud resource, after any filters have been applied.", + "description": "The list of cases associated with the parent after any filters have been applied.", "items": { "$ref": "Case" }, "type": "array" }, "nextPageToken": { - "description": "A token to retrieve the next page of results. This should be set in the `page_token` field of subsequent `ListCasesRequest` message that is issued. If unspecified, there are no more results to retrieve.", + "description": "A token to retrieve the next page of results. Set this in the `page_token` field of subsequent `cases.list` requests. If unspecified, there are no more results to retrieve.", "type": "string" } }, @@ -1136,14 +1159,14 @@ "id": "ListCommentsResponse", "properties": { "comments": { - "description": "The list of Comments associated with the given Case.", + "description": "List of the comments associated with the case.", "items": { "$ref": "Comment" }, "type": "array" }, "nextPageToken": { - "description": "A token to retrieve the next page of results. This should be set in the `page_token` field of subsequent `ListCommentsRequest` message that is issued. If unspecified, there are no more results to retrieve.", + "description": "A token to retrieve the next page of results. Set this in the `page_token` field of subsequent `cases.comments.list` requests. If unspecified, there are no more results to retrieve.", "type": "string" } }, @@ -1154,15 +1177,18 @@ "id": "Media", "properties": { "algorithm": { + "deprecated": true, "description": "# gdata.* are outside protos with mising documentation", "type": "string" }, "bigstoreObjectRef": { + "deprecated": true, "description": "# gdata.* are outside protos with mising documentation", "format": "byte", "type": "string" }, "blobRef": { + "deprecated": true, "description": "# gdata.* are outside protos with mising documentation", "format": "byte", "type": "string" @@ -1225,6 +1251,7 @@ "type": "string" }, "hash": { + "deprecated": true, "description": "# gdata.* are outside protos with mising documentation", "type": "string" }, @@ -1340,6 +1367,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", @@ -1352,7 +1404,7 @@ "type": "array" }, "nextPageToken": { - "description": "A token to retrieve the next page of results. This should be set in the `page_token` field of subsequent `SearchCaseClassificationsRequest` message that is issued. If unspecified, there are no more results to retrieve.", + "description": "A token to retrieve the next page of results. Set this in the `page_token` field of subsequent `caseClassifications.list` requests. If unspecified, there are no more results to retrieve.", "type": "string" } }, @@ -1363,14 +1415,14 @@ "id": "SearchCasesResponse", "properties": { "cases": { - "description": "The list of Case associated with the cloud resource, after any filters have been applied.", + "description": "The list of cases associated with the parent after any filters have been applied.", "items": { "$ref": "Case" }, "type": "array" }, "nextPageToken": { - "description": "A token to retrieve the next page of results. This should be set in the `page_token` field of subsequent `SearchCaseRequest` message that is issued. If unspecified, there are no more results to retrieve.", + "description": "A token to retrieve the next page of results. Set this in the `page_token` field of subsequent `cases.search` requests. If unspecified, there are no more results to retrieve.", "type": "string" } }, diff --git a/etc/api/cloudtasks/v2/cloudtasks-api.json b/etc/api/cloudtasks/v2/cloudtasks-api.json index b9116d1003..a5e286ee3f 100644 --- a/etc/api/cloudtasks/v2/cloudtasks-api.json +++ b/etc/api/cloudtasks/v2/cloudtasks-api.json @@ -134,6 +134,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getCmekConfig": { + "description": "Gets the CMEK config. Gets the Customer Managed Encryption Key configured with the Cloud Tasks lcoation. By default there is no kms_key configured.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/cmekConfig", + "httpMethod": "GET", + "id": "cloudtasks.projects.locations.getCmekConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The config. For example: projects/PROJECT_ID/locations/LOCATION_ID/CmekConfig`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/cmekConfig$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "CmekConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists information about the supported locations for this service.", "flatPath": "v2/projects/{projectsId}/locations", @@ -174,6 +199,40 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "updateCmekConfig": { + "description": "Creates or Updates a CMEK config. Updates the Customer Managed Encryption Key assotiated with the Cloud Tasks location (Creates if the key does not already exist). All new tasks created in the location will be encrypted at-rest with the KMS-key provided in the config.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/cmekConfig", + "httpMethod": "PATCH", + "id": "cloudtasks.projects.locations.updateCmekConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The config resource name which includes the project and location and must end in 'cmekConfig', in the format projects/PROJECT_ID/locations/LOCATION_ID/cmekConfig`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/cmekConfig$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "List of fields to be updated in this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+name}", + "request": { + "$ref": "CmekConfig" + }, + "response": { + "$ref": "CmekConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { @@ -208,7 +267,7 @@ ] }, "delete": { - "description": "Deletes a queue. This command will delete the queue even if it has tasks in it. Note: If you delete a queue, a queue with the same name can't be created for 7 days. WARNING: Using this method may have unintended side effects if you are using an App Engine `queue.yaml` or `queue.xml` file to manage your queues. Read [Overview of Queue Management and queue.yaml](https://cloud.google.com/tasks/docs/queue-yaml) before using this method.", + "description": "Deletes a queue. This command will delete the queue even if it has tasks in it. Note: If you delete a queue, you may be prevented from creating a new queue with the same name as the deleted queue for a tombstone window of up to 3 days. During this window, the CreateQueue operation may appear to recreate the queue, but this can be misleading. If you attempt to create a queue with the same name as one that is in the tombstone window, run GetQueue to confirm that the queue creation was successful. If GetQueue returns 200 response code, your queue was successfully created with the name of the previously deleted queue. Otherwise, your queue did not successfully recreate. WARNING: Using this method may have unintended side effects if you are using an App Engine `queue.yaml` or `queue.xml` file to manage your queues. Read [Overview of Queue Management and queue.yaml](https://cloud.google.com/tasks/docs/queue-yaml) before using this method.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}", "httpMethod": "DELETE", "id": "cloudtasks.projects.locations.queues.delete", @@ -504,6 +563,41 @@ "resources": { "tasks": { "methods": { + "buffer": { + "description": "Creates and buffers a new task without the need to explicitly define a Task message. The queue must have HTTP target. To create the task with a custom ID, use the following format and set TASK_ID to your desired ID: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID:buffer To create the task with an automatically generated ID, use the following format: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks:buffer.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{taskId}:buffer", + "httpMethod": "POST", + "id": "cloudtasks.projects.locations.queues.tasks.buffer", + "parameterOrder": [ + "queue", + "taskId" + ], + "parameters": { + "queue": { + "description": "Required. The parent queue name. For example: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID` The queue must already exist.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", + "required": true, + "type": "string" + }, + "taskId": { + "description": "Optional. Task ID for the task being created. If not provided, Cloud Tasks generates an ID for the task.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v2/{+queue}/tasks/{taskId}:buffer", + "request": { + "$ref": "BufferTaskRequest" + }, + "response": { + "$ref": "BufferTaskResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a task and adds it to a queue. Tasks cannot be updated after creation; there is no UpdateTask command. * The maximum task size is 100KB.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks", @@ -685,7 +779,7 @@ } } }, - "revision": "20230105", + "revision": "20240223", "rootUrl": "https://cloudtasks.googleapis.com/", "schemas": { "AppEngineHttpRequest": { @@ -797,14 +891,52 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" + }, + "BufferTaskRequest": { + "description": "Request message for BufferTask.", + "id": "BufferTaskRequest", + "properties": { + "body": { + "$ref": "HttpBody", + "description": "Optional. Body of the HTTP request. The body can take any generic value. The value is written to the HttpRequest of the [Task]." + } + }, + "type": "object" + }, + "BufferTaskResponse": { + "description": "Response message for BufferTask.", + "id": "BufferTaskResponse", + "properties": { + "task": { + "$ref": "Task", + "description": "The created task." + } + }, + "type": "object" + }, + "CmekConfig": { + "description": "Describes the customer-managed encryption key (CMEK) configuration associated with a project and location.", + "id": "CmekConfig", + "properties": { + "kmsKey": { + "description": "Resource name of the Cloud KMS key, of the form `projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID`, that will be used to encrypt the Queues & Tasks in the region. Setting this as blank will turn off CMEK encryption.", + "type": "string" + }, + "name": { + "description": "Output only. The config resource name which includes the project and location and must end in 'cmekConfig', in the format projects/PROJECT_ID/locations/LOCATION_ID/cmekConfig`", + "readOnly": true, "type": "string" } }, @@ -830,7 +962,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" @@ -887,6 +1019,59 @@ }, "type": "object" }, + "Header": { + "description": "Defines a header message. A header can have a key and a value.", + "id": "Header", + "properties": { + "key": { + "description": "The Key of the header.", + "type": "string" + }, + "value": { + "description": "The Value of the header.", + "type": "string" + } + }, + "type": "object" + }, + "HeaderOverride": { + "description": "Wraps the Header object.", + "id": "HeaderOverride", + "properties": { + "header": { + "$ref": "Header", + "description": "Header embodying a key and a value. Do not put business sensitive or personally identifying data in the HTTP Header Override Configuration or other similar fields in accordance with Section 12 (Resource Fields) of the [Service Specific Terms](https://cloud.google.com/terms/service-terms)." + } + }, + "type": "object" + }, + "HttpBody": { + "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": "HttpBody", + "properties": { + "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": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, "HttpRequest": { "description": "HTTP request. The task will be pushed to the worker as an HTTP request. If the worker or the redirected worker acknowledges the task by returning a successful HTTP response code ([`200` - `299`]), the task will be removed from the queue. If any other HTTP response code is returned or no response is received, the task will be retried according to the following: * User-specified throttling: retry configuration, rate limits, and the queue's state. * System throttling: To prevent the worker from overloading, Cloud Tasks may temporarily reduce the queue's effective rate. User-specified settings will not be changed. System throttling happens because: * Cloud Tasks backs off on all errors. Normally the backoff specified in rate limits will be used. But if the worker returns `429` (Too Many Requests), `503` (Service Unavailable), or the rate of errors is high, Cloud Tasks will use a higher backoff rate. The retry specified in the `Retry-After` HTTP response header is considered. * To prevent traffic spikes and to smooth sudden increases in traffic, dispatches ramp up slowly when the queue is newly created or idle and if large numbers of tasks suddenly become available to dispatch (due to spikes in create task rates, the queue being unpaused, or many tasks that are scheduled at the same time).", "id": "HttpRequest", @@ -942,6 +1127,56 @@ }, "type": "object" }, + "HttpTarget": { + "description": "HTTP target. When specified as a Queue, all the tasks with [HttpRequest] will be overridden according to the target.", + "id": "HttpTarget", + "properties": { + "headerOverrides": { + "description": "HTTP target headers. This map contains the header field names and values. Headers will be set when running the CreateTask and/or BufferTask. These headers represent a subset of the headers that will be configured for the task's HTTP request. Some HTTP request headers will be ignored or replaced. A partial list of headers that will be ignored or replaced is: * Several predefined headers, prefixed with \"X-CloudTasks-\", can be used to define properties of the task. * Host: This will be computed by Cloud Tasks and derived from HttpRequest.url. * Content-Length: This will be computed by Cloud Tasks. `Content-Type` won't be set by Cloud Tasks. You can explicitly set `Content-Type` to a media type when the task is created. For example,`Content-Type` can be set to `\"application/octet-stream\"` or `\"application/json\"`. The default value is set to \"application/json\"`. * User-Agent: This will be set to `\"Google-Cloud-Tasks\"`. Headers which can have multiple values (according to RFC2616) can be specified using comma-separated values. The size of the headers must be less than 80KB. Queue-level headers to override headers of all the tasks in the queue. Do not put business sensitive or personally identifying data in the HTTP Header Override Configuration or other similar fields in accordance with Section 12 (Resource Fields) of the [Service Specific Terms](https://cloud.google.com/terms/service-terms).", + "items": { + "$ref": "HeaderOverride" + }, + "type": "array" + }, + "httpMethod": { + "description": "The HTTP method to use for the request. When specified, it overrides HttpRequest for the task. Note that if the value is set to HttpMethod the HttpRequest of the task will be ignored at execution time.", + "enum": [ + "HTTP_METHOD_UNSPECIFIED", + "POST", + "GET", + "HEAD", + "PUT", + "DELETE", + "PATCH", + "OPTIONS" + ], + "enumDescriptions": [ + "HTTP method unspecified", + "HTTP POST", + "HTTP GET", + "HTTP HEAD", + "HTTP PUT", + "HTTP DELETE", + "HTTP PATCH", + "HTTP OPTIONS" + ], + "type": "string" + }, + "oauthToken": { + "$ref": "OAuthToken", + "description": "If specified, an [OAuth token](https://developers.google.com/identity/protocols/OAuth2) will be generated and attached as the `Authorization` header in the HTTP request. This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com." + }, + "oidcToken": { + "$ref": "OidcToken", + "description": "If specified, an [OIDC](https://developers.google.com/identity/protocols/OpenIDConnect) token will be generated and attached as an `Authorization` header in the HTTP request. This type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself." + }, + "uriOverride": { + "$ref": "UriOverride", + "description": "URI override. When specified, overrides the execution URI for all the tasks in the queue." + } + }, + "type": "object" + }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -997,7 +1232,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1060,6 +1295,17 @@ }, "type": "object" }, + "PathOverride": { + "description": "PathOverride. Path message defines path override for HTTP targets.", + "id": "PathOverride", + "properties": { + "path": { + "description": "The URI path (e.g., /users/1234). Default is an empty string.", + "type": "string" + } + }, + "type": "object" + }, "PauseQueueRequest": { "description": "Request message for PauseQueue.", "id": "PauseQueueRequest", @@ -1067,7 +1313,7 @@ "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/).", + "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": { "bindings": { @@ -1096,6 +1342,17 @@ "properties": {}, "type": "object" }, + "QueryOverride": { + "description": "QueryOverride. Query message defines query override for HTTP targets.", + "id": "QueryOverride", + "properties": { + "queryParams": { + "description": "The query parameters (e.g., qparam1=123&qparam2=456). Default is an empty string.", + "type": "string" + } + }, + "type": "object" + }, "Queue": { "description": "A queue is a container of related tasks. Queues are configured to manage how those tasks are dispatched. Configurable properties include rate limits, retry options, queue types, and others.", "id": "Queue", @@ -1104,6 +1361,10 @@ "$ref": "AppEngineRouting", "description": "Overrides for task-level app_engine_routing. These settings apply only to App Engine tasks in this queue. Http tasks are not affected. If set, `app_engine_routing_override` is used for all App Engine tasks in the queue, no matter what the setting is for the task-level app_engine_routing." }, + "httpTarget": { + "$ref": "HttpTarget", + "description": "Modifies HTTP target for HTTP tasks." + }, "name": { "description": "Caller-specified and required in CreateQueue, after which it becomes output only. The queue name. The queue name must have the following format: `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID` * `PROJECT_ID` can contain letters ([A-Za-z]), numbers ([0-9]), hyphens (-), colons (:), or periods (.). For more information, see [Identifying projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects#identifying_projects) * `LOCATION_ID` is the canonical ID for the queue's location. The list of available locations can be obtained by calling ListLocations. For more information, see https://cloud.google.com/about/locations/. * `QUEUE_ID` can contain letters ([A-Za-z]), numbers ([0-9]), or hyphens (-). The maximum length is 100 characters.", "type": "string" @@ -1182,7 +1443,7 @@ "type": "integer" }, "maxBackoff": { - "description": "A task will be scheduled for retry between min_backoff and max_backoff duration after it fails, if the queue's RetryConfig specifies that the task should be retried. If unspecified when the queue is created, Cloud Tasks will pick the default. `max_backoff` will be truncated to the nearest second. This field has the same meaning as [max_backoff_seconds in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters).", + "description": "A task will be scheduled for retry between min_backoff and max_backoff duration after it fails, if the queue's RetryConfig specifies that the task should be retried. If unspecified when the queue is created, Cloud Tasks will pick the default. The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for \"seconds\"). For more information on the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). `max_backoff` will be truncated to the nearest second. This field has the same meaning as [max_backoff_seconds in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters).", "format": "google-duration", "type": "string" }, @@ -1192,12 +1453,12 @@ "type": "integer" }, "maxRetryDuration": { - "description": "If positive, `max_retry_duration` specifies the time limit for retrying a failed task, measured from when the task was first attempted. Once `max_retry_duration` time has passed *and* the task has been attempted max_attempts times, no further attempts will be made and the task will be deleted. If zero, then the task age is unlimited. If unspecified when the queue is created, Cloud Tasks will pick the default. `max_retry_duration` will be truncated to the nearest second. This field has the same meaning as [task_age_limit in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters).", + "description": "If positive, `max_retry_duration` specifies the time limit for retrying a failed task, measured from when the task was first attempted. Once `max_retry_duration` time has passed *and* the task has been attempted max_attempts times, no further attempts will be made and the task will be deleted. If zero, then the task age is unlimited. If unspecified when the queue is created, Cloud Tasks will pick the default. The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for \"seconds\"). For the maximum possible value or the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). `max_retry_duration` will be truncated to the nearest second. This field has the same meaning as [task_age_limit in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters).", "format": "google-duration", "type": "string" }, "minBackoff": { - "description": "A task will be scheduled for retry between min_backoff and max_backoff duration after it fails, if the queue's RetryConfig specifies that the task should be retried. If unspecified when the queue is created, Cloud Tasks will pick the default. `min_backoff` will be truncated to the nearest second. This field has the same meaning as [min_backoff_seconds in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters).", + "description": "A task will be scheduled for retry between min_backoff and max_backoff duration after it fails, if the queue's RetryConfig specifies that the task should be retried. If unspecified when the queue is created, Cloud Tasks will pick the default. The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for \"seconds\"). For more information on the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). `min_backoff` will be truncated to the nearest second. This field has the same meaning as [min_backoff_seconds in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters).", "format": "google-duration", "type": "string" } @@ -1294,7 +1555,7 @@ "type": "integer" }, "dispatchDeadline": { - "description": "The deadline for requests sent to the worker. If the worker does not respond by this deadline then the request is cancelled and the attempt is marked as a `DEADLINE_EXCEEDED` failure. Cloud Tasks will retry the task according to the RetryConfig. Note that when the request is cancelled, Cloud Tasks will stop listening for the response, but whether the worker stops processing depends on the worker. For example, if the worker is stuck, it may not react to cancelled requests. The default and maximum values depend on the type of request: * For HTTP tasks, the default is 10 minutes. The deadline must be in the interval [15 seconds, 30 minutes]. * For App Engine tasks, 0 indicates that the request has the default deadline. The default deadline depends on the [scaling type](https://cloud.google.com/appengine/docs/standard/go/how-instances-are-managed#instance_scaling) of the service: 10 minutes for standard apps with automatic scaling, 24 hours for standard apps with manual and basic scaling, and 60 minutes for flex apps. If the request deadline is set, it must be in the interval [15 seconds, 24 hours 15 seconds]. Regardless of the task's `dispatch_deadline`, the app handler will not run for longer than than the service's timeout. We recommend setting the `dispatch_deadline` to at most a few seconds more than the app handler's timeout. For more information see [Timeouts](https://cloud.google.com/tasks/docs/creating-appengine-handlers#timeouts). `dispatch_deadline` will be truncated to the nearest millisecond. The deadline is an approximate deadline.", + "description": "The deadline for requests sent to the worker. If the worker does not respond by this deadline then the request is cancelled and the attempt is marked as a `DEADLINE_EXCEEDED` failure. Cloud Tasks will retry the task according to the RetryConfig. Note that when the request is cancelled, Cloud Tasks will stop listening for the response, but whether the worker stops processing depends on the worker. For example, if the worker is stuck, it may not react to cancelled requests. The default and maximum values depend on the type of request: * For HTTP tasks, the default is 10 minutes. The deadline must be in the interval [15 seconds, 30 minutes]. * For App Engine tasks, 0 indicates that the request has the default deadline. The default deadline depends on the [scaling type](https://cloud.google.com/appengine/docs/standard/go/how-instances-are-managed#instance_scaling) of the service: 10 minutes for standard apps with automatic scaling, 24 hours for standard apps with manual and basic scaling, and 60 minutes for flex apps. If the request deadline is set, it must be in the interval [15 seconds, 24 hours 15 seconds]. Regardless of the task's `dispatch_deadline`, the app handler will not run for longer than than the service's timeout. We recommend setting the `dispatch_deadline` to at most a few seconds more than the app handler's timeout. For more information see [Timeouts](https://cloud.google.com/tasks/docs/creating-appengine-handlers#timeouts). The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for \"seconds\"). For more information on the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). `dispatch_deadline` will be truncated to the nearest millisecond. The deadline is an approximate deadline.", "format": "google-duration", "type": "string" }, @@ -1368,6 +1629,58 @@ } }, "type": "object" + }, + "UriOverride": { + "description": "URI Override. When specified, all the HTTP tasks inside the queue will be partially or fully overridden depending on the configured values.", + "id": "UriOverride", + "properties": { + "host": { + "description": "Host override. When specified, replaces the host part of the task URL. For example, if the task URL is \"https://www.google.com,\" and host value is set to \"example.net\", the overridden URI will be changed to \"https://example.net.\" Host value cannot be an empty string (INVALID_ARGUMENT).", + "type": "string" + }, + "pathOverride": { + "$ref": "PathOverride", + "description": "URI path. When specified, replaces the existing path of the task URL. Setting the path value to an empty string clears the URI path segment." + }, + "port": { + "description": "Port override. When specified, replaces the port part of the task URI. For instance, for a URI http://www.google.com/foo and port=123, the overridden URI becomes http://www.google.com:123/foo. Note that the port value must be a positive integer. Setting the port to 0 (Zero) clears the URI port.", + "format": "int64", + "type": "string" + }, + "queryOverride": { + "$ref": "QueryOverride", + "description": "URI query. When specified, replaces the query part of the task URI. Setting the query value to an empty string clears the URI query segment." + }, + "scheme": { + "description": "Scheme override. When specified, the task URI scheme is replaced by the provided value (HTTP or HTTPS).", + "enum": [ + "SCHEME_UNSPECIFIED", + "HTTP", + "HTTPS" + ], + "enumDescriptions": [ + "Scheme unspecified. Defaults to HTTPS.", + "Convert the scheme to HTTP, e.g., https://www.google.ca will change to http://www.google.ca.", + "Convert the scheme to HTTPS, e.g., http://www.google.ca will change to https://www.google.ca." + ], + "type": "string" + }, + "uriOverrideEnforceMode": { + "description": "URI Override Enforce Mode When specified, determines the Target UriOverride mode. If not specified, it defaults to ALWAYS.", + "enum": [ + "URI_OVERRIDE_ENFORCE_MODE_UNSPECIFIED", + "IF_NOT_EXISTS", + "ALWAYS" + ], + "enumDescriptions": [ + "UriOverrideEnforceMode Unspecified. Defaults to ALWAYS.", + "In the IF_NOT_EXISTS mode, queue-level configuration is only applied where task-level configuration does not exist.", + "In the ALWAYS mode, queue-level configuration overrides all task-level configuration" + ], + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/cloudtasks/v2beta2/cloudtasks-api.json b/etc/api/cloudtasks/v2beta2/cloudtasks-api.json index 0fa878f0cd..6ba45be61e 100644 --- a/etc/api/cloudtasks/v2beta2/cloudtasks-api.json +++ b/etc/api/cloudtasks/v2beta2/cloudtasks-api.json @@ -166,6 +166,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getCmekConfig": { + "description": "Gets the CMEK config. Gets the Customer Managed Encryption Key configured with the Cloud Tasks lcoation. By default there is no kms_key configured.", + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/cmekConfig", + "httpMethod": "GET", + "id": "cloudtasks.projects.locations.getCmekConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The config. For example: projects/PROJECT_ID/locations/LOCATION_ID/CmekConfig`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/cmekConfig$", + "required": true, + "type": "string" + } + }, + "path": "v2beta2/{+name}", + "response": { + "$ref": "CmekConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists information about the supported locations for this service.", "flatPath": "v2beta2/projects/{projectsId}/locations", @@ -206,6 +231,40 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "updateCmekConfig": { + "description": "Creates or Updates a CMEK config. Updates the Customer Managed Encryption Key assotiated with the Cloud Tasks location (Creates if the key does not already exist). All new tasks created in the location will be encrypted at-rest with the KMS-key provided in the config.", + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/cmekConfig", + "httpMethod": "PATCH", + "id": "cloudtasks.projects.locations.updateCmekConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The config resource name which includes the project and location and must end in 'cmekConfig', in the format projects/PROJECT_ID/locations/LOCATION_ID/cmekConfig`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/cmekConfig$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "List of fields to be updated in this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2beta2/{+name}", + "request": { + "$ref": "CmekConfig" + }, + "response": { + "$ref": "CmekConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { @@ -240,7 +299,7 @@ ] }, "delete": { - "description": "Deletes a queue. This command will delete the queue even if it has tasks in it. Note: If you delete a queue, a queue with the same name can't be created for 7 days. WARNING: Using this method may have unintended side effects if you are using an App Engine `queue.yaml` or `queue.xml` file to manage your queues. Read [Overview of Queue Management and queue.yaml](https://cloud.google.com/tasks/docs/queue-yaml) before using this method.", + "description": "Deletes a queue. This command will delete the queue even if it has tasks in it. Note: If you delete a queue, you may be prevented from creating a new queue with the same name as the deleted queue for a tombstone window of up to 3 days. During this window, the CreateQueue operation may appear to recreate the queue, but this can be misleading. If you attempt to create a queue with the same name as one that is in the tombstone window, run GetQueue to confirm that the queue creation was successful. If GetQueue returns 200 response code, your queue was successfully created with the name of the previously deleted queue. Otherwise, your queue did not successfully recreate. WARNING: Using this method may have unintended side effects if you are using an App Engine `queue.yaml` or `queue.xml` file to manage your queues. Read [Overview of Queue Management and queue.yaml](https://cloud.google.com/tasks/docs/queue-yaml) before using this method.", "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}", "httpMethod": "DELETE", "id": "cloudtasks.projects.locations.queues.delete", @@ -577,7 +636,7 @@ ] }, "buffer": { - "description": "Creates and buffers a new task without the need to explicitly define a Task message. The queue must have HTTP target. To create the task with a custom ID, use the following format and set TASK_ID to your desired ID: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID:buffer To create the task with an automatically generated ID, use the following format: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks:buffer. Note: This feature is in its experimental stage. You must request access to the API through the [Cloud Tasks BufferTask Experiment Signup form](https://forms.gle/X8Zr5hiXH5tTGFqh8).", + "description": "Creates and buffers a new task without the need to explicitly define a Task message. The queue must have HTTP target. To create the task with a custom ID, use the following format and set TASK_ID to your desired ID: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID:buffer To create the task with an automatically generated ID, use the following format: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks:buffer.", "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{taskId}:buffer", "httpMethod": "POST", "id": "cloudtasks.projects.locations.queues.tasks.buffer", @@ -876,7 +935,7 @@ } } }, - "revision": "20230105", + "revision": "20240223", "rootUrl": "https://cloudtasks.googleapis.com/", "schemas": { "AcknowledgeTaskRequest": { @@ -1011,14 +1070,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1072,6 +1131,22 @@ }, "type": "object" }, + "CmekConfig": { + "description": "Describes the customer-managed encryption key (CMEK) configuration associated with a project and location.", + "id": "CmekConfig", + "properties": { + "kmsKey": { + "description": "Resource name of the Cloud KMS key, of the form `projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID`, that will be used to encrypt the Queues & Tasks in the region. Setting this as blank will turn off CMEK encryption.", + "type": "string" + }, + "name": { + "description": "Output only. The config resource name which includes the project and location and must end in 'cmekConfig', in the format projects/PROJECT_ID/locations/LOCATION_ID/cmekConfig`", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "CreateTaskRequest": { "description": "Request message for CreateTask.", "id": "CreateTaskRequest", @@ -1092,7 +1167,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 completed 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 completed. 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 completed. 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 completed 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" @@ -1170,7 +1245,7 @@ "properties": { "header": { "$ref": "Header", - "description": "header embodying a key and a value." + "description": "Header embodying a key and a value. Do not put business sensitive or personally identifying data in the HTTP Header Override Configuration or other similar fields in accordance with Section 12 (Resource Fields) of the [Service Specific Terms](https://cloud.google.com/terms/service-terms)." } }, "type": "object" @@ -1215,7 +1290,7 @@ "additionalProperties": { "type": "string" }, - "description": "HTTP request headers. This map contains the header field names and values. Headers can be set when running the task is created or task is created. These headers represent a subset of the headers that will accompany the task's HTTP request. Some HTTP request headers will be ignored or replaced. A partial list of headers that will be ignored or replaced is: * Any header that is prefixed with \"X-Google-Cloud-Tasks-\" will be treated as service header. Service headers define properties of the task and are predefined in CloudTask. * Host: This will be computed by Cloud Tasks and derived from HttpRequest.url. * Content-Length: This will be computed by Cloud Tasks. * User-Agent: This will be set to `\"Google-Cloud-Tasks\"`. * `X-Google-*`: Google use only. * `X-AppEngine-*`: Google use only. `Content-Type` won't be set by Cloud Tasks. You can explicitly set `Content-Type` to a media type when the task is created. For example, `Content-Type` can be set to `\"application/octet-stream\"` or `\"application/json\"`. Headers which can have multiple values (according to RFC2616) can be specified using comma-separated values. The size of the headers must be less than 80KB.", + "description": "HTTP request headers. This map contains the header field names and values. Headers can be set when running the task is created or task is created. These headers represent a subset of the headers that will accompany the task's HTTP request. Some HTTP request headers will be ignored or replaced. A partial list of headers that will be ignored or replaced is: * Any header that is prefixed with \"X-CloudTasks-\" will be treated as service header. Service headers define properties of the task and are predefined in CloudTask. * Host: This will be computed by Cloud Tasks and derived from HttpRequest.url. * Content-Length: This will be computed by Cloud Tasks. * User-Agent: This will be set to `\"Google-Cloud-Tasks\"`. * `X-Google-*`: Google use only. * `X-AppEngine-*`: Google use only. `Content-Type` won't be set by Cloud Tasks. You can explicitly set `Content-Type` to a media type when the task is created. For example, `Content-Type` can be set to `\"application/octet-stream\"` or `\"application/json\"`. Headers which can have multiple values (according to RFC2616) can be specified using comma-separated values. The size of the headers must be less than 80KB.", "type": "object" }, "httpMethod": { @@ -1262,14 +1337,14 @@ "id": "HttpTarget", "properties": { "headerOverrides": { - "description": "HTTP target headers. This map contains the header field names and values. Headers will be set when running the task is created and/or task is created. These headers represent a subset of the headers that will accompany the task's HTTP request. Some HTTP request headers will be ignored or replaced. A partial list of headers that will be ignored or replaced is: * Any header that is prefixed with \"X-Google-Cloud-Tasks-\" will be treated as service header. Service headers define properties of the task and are predefined in CloudTask. * Host: This will be computed by Cloud Tasks and derived from HttpRequest.url. * Content-Length: This will be computed by Cloud Tasks. * User-Agent: This will be set to `\"Google-Cloud-Tasks\"`. * `X-Google-*`: Google use only. * `X-AppEngine-*`: Google use only. `Content-Type` won't be set by Cloud Tasks. You can explicitly set `Content-Type` to a media type when the task is created. For example, `Content-Type` can be set to `\"application/octet-stream\"` or `\"application/json\"`. Headers which can have multiple values (according to RFC2616) can be specified using comma-separated values. The size of the headers must be less than 80KB. Queue-level headers to override headers of all the tasks in the queue.", + "description": "HTTP target headers. This map contains the header field names and values. Headers will be set when running the task is created and/or task is created. These headers represent a subset of the headers that will accompany the task's HTTP request. Some HTTP request headers will be ignored or replaced. A partial list of headers that will be ignored or replaced is: * Any header that is prefixed with \"X-CloudTasks-\" will be treated as service header. Service headers define properties of the task and are predefined in CloudTask. * Host: This will be computed by Cloud Tasks and derived from HttpRequest.url. * Content-Length: This will be computed by Cloud Tasks. * User-Agent: This will be set to `\"Google-CloudTasks\"`. * `X-Google-*`: Google use only. * `X-AppEngine-*`: Google use only. `Content-Type` won't be set by Cloud Tasks. You can explicitly set `Content-Type` to a media type when the task is created. For example, `Content-Type` can be set to `\"application/octet-stream\"` or `\"application/json\"`. Headers which can have multiple values (according to RFC2616) can be specified using comma-separated values. The size of the headers must be less than 80KB. Queue-level headers to override headers of all the tasks in the queue. Do not put business sensitive or personally identifying data in the HTTP Header Override Configuration or other similar fields in accordance with Section 12 (Resource Fields) of the [Service Specific Terms](https://cloud.google.com/terms/service-terms).", "items": { "$ref": "HeaderOverride" }, "type": "array" }, "httpMethod": { - "description": "The HTTP method to use for the request. When specified, it will override HttpRequest for the task. Note that if the value is set to HttpMethod the HttpRequest of the task will be ignored at execution time.", + "description": "The HTTP method to use for the request. When specified, it overrides HttpRequest for the task. Note that if the value is set to HttpMethod the HttpRequest of the task will be ignored at execution time.", "enum": [ "HTTP_METHOD_UNSPECIFIED", "POST", @@ -1302,7 +1377,7 @@ }, "uriOverride": { "$ref": "UriOverride", - "description": "Uri override. When specified, modifies the execution Uri for all the tasks in the queue." + "description": "Uri override. When specified, overrides the execution Uri for all the tasks in the queue." } }, "type": "object" @@ -1411,7 +1486,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1479,7 +1554,7 @@ "id": "PathOverride", "properties": { "path": { - "description": "The URI path (e.g., a/b/c). Default is Empty string.", + "description": "The URI path (e.g., /users/1234). Default is an empty string.", "type": "string" } }, @@ -1492,7 +1567,7 @@ "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/).", + "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": { "bindings": { @@ -1548,7 +1623,7 @@ "id": "QueryOverride", "properties": { "queryParams": { - "description": "The query parameters (e.g., qparam1=123&qparam2=456). Default is Empty string.", + "description": "The query parameters (e.g., qparam1=123&qparam2=456). Default is an empty string.", "type": "string" } }, @@ -1921,21 +1996,21 @@ "id": "UriOverride", "properties": { "host": { - "description": "Host override. When specified, will replace the host part of the task URL. For example, if the task URL is \"https://www.google.com\", and host value is set to \"example.net\", the overridden URI will be changed to \"https://example.net\". Host value cannot be an empty string.", + "description": "Host override. When specified, replaces the host part of the task URL. For example, if the task URL is \"https://www.google.com,\" and host value is set to \"example.net\", the overridden URI will be changed to \"https://example.net.\" Host value cannot be an empty string (INVALID_ARGUMENT).", "type": "string" }, "pathOverride": { "$ref": "PathOverride", - "description": "URI path. When specified, will replace the existing path of the task URL. Setting the path value to an empty string clears the URI path segment." + "description": "URI path. When specified, replaces the existing path of the task URL. Setting the path value to an empty string clears the URI path segment." }, "port": { - "description": "Port override. When specified, will replace the port part of the task URI. For instance, for a URI http://www.google.com/foo and port=123, the overridden URI becomes http://www.google.com:123/foo. Note that the port value must be a positive integer. Setting the port to 0 (Zero) clears the URI port.", + "description": "Port override. When specified, replaces the port part of the task URI. For instance, for a URI http://www.google.com/foo and port=123, the overridden URI becomes http://www.google.com:123/foo. Note that the port value must be a positive integer. Setting the port to 0 (Zero) clears the URI port.", "format": "int64", "type": "string" }, "queryOverride": { "$ref": "QueryOverride", - "description": "URI Query. When specified, will replace the query part of the task URI. Setting the query value to an empty string clears the URI query segment." + "description": "URI Query. When specified, replaces the query part of the task URI. Setting the query value to an empty string clears the URI query segment." }, "scheme": { "description": "Scheme override. When specified, the task URI scheme is replaced by the provided value (HTTP or HTTPS).", diff --git a/etc/api/cloudtasks/v2beta3/cloudtasks-api.json b/etc/api/cloudtasks/v2beta3/cloudtasks-api.json index 32b3dfec52..a9680d2c8a 100644 --- a/etc/api/cloudtasks/v2beta3/cloudtasks-api.json +++ b/etc/api/cloudtasks/v2beta3/cloudtasks-api.json @@ -134,6 +134,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getCmekConfig": { + "description": "Gets the CMEK config. Gets the Customer Managed Encryption Key configured with the Cloud Tasks lcoation. By default there is no kms_key configured.", + "flatPath": "v2beta3/projects/{projectsId}/locations/{locationsId}/cmekConfig", + "httpMethod": "GET", + "id": "cloudtasks.projects.locations.getCmekConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The config resource name. For example: projects/PROJECT_ID/locations/LOCATION_ID/cmekConfig`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/cmekConfig$", + "required": true, + "type": "string" + } + }, + "path": "v2beta3/{+name}", + "response": { + "$ref": "CmekConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists information about the supported locations for this service.", "flatPath": "v2beta3/projects/{projectsId}/locations", @@ -174,6 +199,40 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "updateCmekConfig": { + "description": "Creates or Updates a CMEK config. Updates the Customer Managed Encryption Key assotiated with the Cloud Tasks location (Creates if the key does not already exist). All new tasks created in the location will be encrypted at-rest with the KMS-key provided in the config.", + "flatPath": "v2beta3/projects/{projectsId}/locations/{locationsId}/cmekConfig", + "httpMethod": "PATCH", + "id": "cloudtasks.projects.locations.updateCmekConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The config resource name which includes the project and location and must end in 'cmekConfig', in the format projects/PROJECT_ID/locations/LOCATION_ID/cmekConfig`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/cmekConfig$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "List of fields to be updated in this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2beta3/{+name}", + "request": { + "$ref": "CmekConfig" + }, + "response": { + "$ref": "CmekConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { @@ -208,7 +267,7 @@ ] }, "delete": { - "description": "Deletes a queue. This command will delete the queue even if it has tasks in it. Note: If you delete a queue, a queue with the same name can't be created for 7 days. WARNING: Using this method may have unintended side effects if you are using an App Engine `queue.yaml` or `queue.xml` file to manage your queues. Read [Overview of Queue Management and queue.yaml](https://cloud.google.com/tasks/docs/queue-yaml) before using this method.", + "description": "Deletes a queue. This command will delete the queue even if it has tasks in it. Note : If you delete a queue, you may be prevented from creating a new queue with the same name as the deleted queue for a tombstone window of up to 3 days. During this window, the CreateQueue operation may appear to recreate the queue, but this can be misleading. If you attempt to create a queue with the same name as one that is in the tombstone window, run GetQueue to confirm that the queue creation was successful. If GetQueue returns 200 response code, your queue was successfully created with the name of the previously deleted queue. Otherwise, your queue did not successfully recreate. WARNING: Using this method may have unintended side effects if you are using an App Engine `queue.yaml` or `queue.xml` file to manage your queues. Read [Overview of Queue Management and queue.yaml](https://cloud.google.com/tasks/docs/queue-yaml) before using this method.", "flatPath": "v2beta3/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}", "httpMethod": "DELETE", "id": "cloudtasks.projects.locations.queues.delete", @@ -517,7 +576,7 @@ "tasks": { "methods": { "buffer": { - "description": "Creates and buffers a new task without the need to explicitly define a Task message. The queue must have HTTP target. To create the task with a custom ID, use the following format and set TASK_ID to your desired ID: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID:buffer To create the task with an automatically generated ID, use the following format: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks:buffer. Note: This feature is in its experimental stage. You must request access to the API through the [Cloud Tasks BufferTask Experiment Signup form](https://forms.gle/X8Zr5hiXH5tTGFqh8).", + "description": "Creates and buffers a new task without the need to explicitly define a Task message. The queue must have HTTP target. To create the task with a custom ID, use the following format and set TASK_ID to your desired ID: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID:buffer To create the task with an automatically generated ID, use the following format: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks:buffer.", "flatPath": "v2beta3/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{taskId}:buffer", "httpMethod": "POST", "id": "cloudtasks.projects.locations.queues.tasks.buffer", @@ -732,7 +791,7 @@ } } }, - "revision": "20230105", + "revision": "20240223", "rootUrl": "https://cloudtasks.googleapis.com/", "schemas": { "AppEngineHttpQueue": { @@ -855,14 +914,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -890,6 +949,22 @@ }, "type": "object" }, + "CmekConfig": { + "description": "Describes the customer-managed encryption key (CMEK) configuration associated with a project and location.", + "id": "CmekConfig", + "properties": { + "kmsKey": { + "description": "Resource name of the Cloud KMS key, of the form `projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID`, that will be used to encrypt the Queues & Tasks in the region. Setting this as blank will turn off CMEK encryption.", + "type": "string" + }, + "name": { + "description": "Output only. The config resource name which includes the project and location and must end in 'cmekConfig', in the format projects/PROJECT_ID/locations/LOCATION_ID/cmekConfig`", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "CreateTaskRequest": { "description": "Request message for CreateTask.", "id": "CreateTaskRequest", @@ -910,7 +985,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" @@ -988,7 +1063,7 @@ "properties": { "header": { "$ref": "Header", - "description": "header embodying a key and a value." + "description": "Header embodying a key and a value. Do not put business sensitive or personally identifying data in the HTTP Header Override Configuration or other similar fields in accordance with Section 12 (Resource Fields) of the [Service Specific Terms](https://cloud.google.com/terms/service-terms)." } }, "type": "object" @@ -1033,7 +1108,7 @@ "additionalProperties": { "type": "string" }, - "description": "HTTP request headers. This map contains the header field names and values. Headers can be set when the task is created. These headers represent a subset of the headers that will accompany the task's HTTP request. Some HTTP request headers will be ignored or replaced. A partial list of headers that will be ignored or replaced is: * Host: This will be computed by Cloud Tasks and derived from HttpRequest.url. * Content-Length: This will be computed by Cloud Tasks. * User-Agent: This will be set to `\"Google-Cloud-Tasks\"`. * `X-Google-*`: Google use only. * `X-AppEngine-*`: Google use only. `Content-Type` won't be set by Cloud Tasks. You can explicitly set `Content-Type` to a media type when the task is created. For example, `Content-Type` can be set to `\"application/octet-stream\"` or `\"application/json\"`. Headers which can have multiple values (according to RFC2616) can be specified using comma-separated values. The size of the headers must be less than 80KB.", + "description": "HTTP request headers. This map contains the header field names and values. Headers can be set when the task is created. These headers represent a subset of the headers that will accompany the task's HTTP request. Some HTTP request headers will be ignored or replaced. A partial list of headers that will be ignored or replaced is: * Any header that is prefixed with \"X-CloudTasks-\" will be treated as service header. Service headers define properties of the task and are predefined in CloudTask. * Host: This will be computed by Cloud Tasks and derived from HttpRequest.url. * Content-Length: This will be computed by Cloud Tasks. * User-Agent: This will be set to `\"Google-Cloud-Tasks\"`. * `X-Google-*`: Google use only. * `X-AppEngine-*`: Google use only. `Content-Type` won't be set by Cloud Tasks. You can explicitly set `Content-Type` to a media type when the task is created. For example, `Content-Type` can be set to `\"application/octet-stream\"` or `\"application/json\"`. Headers which can have multiple values (according to RFC2616) can be specified using comma-separated values. The size of the headers must be less than 80KB.", "type": "object" }, "httpMethod": { @@ -1080,14 +1155,14 @@ "id": "HttpTarget", "properties": { "headerOverrides": { - "description": "HTTP target headers. This map contains the header field names and values. Headers will be set when running the CreateTask and/or BufferTask. These headers represent a subset of the headers that will be configured for the task's HTTP request. Some HTTP request headers will be ignored or replaced. A partial list of headers that will be ignored or replaced is: * Several predefined headers, prefixed with \"X-Google-Cloud-Tasks-\", can be used to define properties of the task. * Host: This will be computed by Cloud Tasks and derived from HttpRequest.url. * Content-Length: This will be computed by Cloud Tasks. `Content-Type` won't be set by Cloud Tasks. You can explicitly set `Content-Type` to a media type when the task is created. For example,`Content-Type` can be set to `\"application/octet-stream\"` or `\"application/json\"`. The default value is set to \"application/json\"`. * User-Agent: This will be set to `\"Google-Cloud-Tasks\"`. Headers which can have multiple values (according to RFC2616) can be specified using comma-separated values. The size of the headers must be less than 80KB. Queue-level headers to override headers of all the tasks in the queue.", + "description": "HTTP target headers. This map contains the header field names and values. Headers will be set when running the CreateTask and/or BufferTask. These headers represent a subset of the headers that will be configured for the task's HTTP request. Some HTTP request headers will be ignored or replaced. A partial list of headers that will be ignored or replaced is: * Several predefined headers, prefixed with \"X-CloudTasks-\", can be used to define properties of the task. * Host: This will be computed by Cloud Tasks and derived from HttpRequest.url. * Content-Length: This will be computed by Cloud Tasks. `Content-Type` won't be set by Cloud Tasks. You can explicitly set `Content-Type` to a media type when the task is created. For example,`Content-Type` can be set to `\"application/octet-stream\"` or `\"application/json\"`. The default value is set to `\"application/json\"`. * User-Agent: This will be set to `\"Google-Cloud-Tasks\"`. Headers which can have multiple values (according to RFC2616) can be specified using comma-separated values. The size of the headers must be less than 80KB. Queue-level headers to override headers of all the tasks in the queue. Do not put business sensitive or personally identifying data in the HTTP Header Override Configuration or other similar fields in accordance with Section 12 (Resource Fields) of the [Service Specific Terms](https://cloud.google.com/terms/service-terms).", "items": { "$ref": "HeaderOverride" }, "type": "array" }, "httpMethod": { - "description": "The HTTP method to use for the request. When specified, it will override HttpRequest for the task. Note that if the value is set to HttpMethod the HttpRequest of the task will be ignored at execution time.", + "description": "The HTTP method to use for the request. When specified, it overrides HttpRequest for the task. Note that if the value is set to HttpMethod the HttpRequest of the task will be ignored at execution time.", "enum": [ "HTTP_METHOD_UNSPECIFIED", "POST", @@ -1110,9 +1185,17 @@ ], "type": "string" }, + "oauthToken": { + "$ref": "OAuthToken", + "description": "If specified, an [OAuth token](https://developers.google.com/identity/protocols/OAuth2) will be generated and attached as the `Authorization` header in the HTTP request. This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com." + }, + "oidcToken": { + "$ref": "OidcToken", + "description": "If specified, an [OIDC](https://developers.google.com/identity/protocols/OpenIDConnect) token will be generated and attached as an `Authorization` header in the HTTP request. This type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself." + }, "uriOverride": { "$ref": "UriOverride", - "description": "URI override. When specified, modifies the execution URI for all the tasks in the queue." + "description": "URI override. When specified, overrides the execution URI for all the tasks in the queue." } }, "type": "object" @@ -1172,7 +1255,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1240,7 +1323,7 @@ "id": "PathOverride", "properties": { "path": { - "description": "The URI path (e.g., a/b/c). Default is Empty string.", + "description": "The URI path (e.g., /users/1234). Default is an empty string.", "type": "string" } }, @@ -1253,7 +1336,7 @@ "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/).", + "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": { "bindings": { @@ -1303,7 +1386,7 @@ "id": "QueryOverride", "properties": { "queryParams": { - "description": "The query parameters (e.g., qparam1=123&qparam2=456). Default is Empty string.", + "description": "The query parameters (e.g., qparam1=123&qparam2=456). Default is an empty string.", "type": "string" } }, @@ -1364,12 +1447,12 @@ "readOnly": true }, "taskTtl": { - "description": "The maximum amount of time that a task will be retained in this queue. Queues created by Cloud Tasks have a default `task_ttl` of 31 days. After a task has lived for `task_ttl`, the task will be deleted regardless of whether it was dispatched or not. The `task_ttl` for queues created via queue.yaml/xml is equal to the maximum duration because there is a [storage quota](https://cloud.google.com/appengine/quotas#Task_Queue) for these queues. To view the maximum valid duration, see the documentation for Duration.", + "description": "The maximum amount of time that a task will be retained in this queue. After a task has lived for `task_ttl`, the task will be deleted regardless of whether it was dispatched or not. The minimum value is 10 days. The maximum value is 10 years. The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for \"seconds\"). For more information on the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). Queues created by Cloud Tasks have a default `task_ttl` of 31 days. . Queues created by queue.yaml/xml have a fixed `task_ttl` of the maximum duration, because there is a [storage quota](https://cloud.google.com/appengine/quotas#Task_Queue) for these queues.", "format": "google-duration", "type": "string" }, "tombstoneTtl": { - "description": "The task tombstone time to live (TTL). After a task is deleted or executed, the task's tombstone is retained for the length of time specified by `tombstone_ttl`. The tombstone is used by task de-duplication; another task with the same name can't be created until the tombstone has expired. For more information about task de-duplication, see the documentation for CreateTaskRequest. Queues created by Cloud Tasks have a default `tombstone_ttl` of 1 hour.", + "description": "The task tombstone time to live (TTL). After a task is deleted or executed, the task's tombstone is retained for the length of time specified by `tombstone_ttl`. The tombstone is used by task de-duplication; another task with the same name can't be created until the tombstone has expired. For more information about task de-duplication, see the documentation for CreateTaskRequest. The minimum value is 1 hour. The maximum value is 9 days. The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for \"seconds\"). For more information on the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). Queues created by Cloud Tasks have a default `tombstone_ttl` of 1 hour.", "format": "google-duration", "type": "string" }, @@ -1465,7 +1548,7 @@ "type": "integer" }, "maxBackoff": { - "description": "A task will be scheduled for retry between min_backoff and max_backoff duration after it fails, if the queue's RetryConfig specifies that the task should be retried. If unspecified when the queue is created, Cloud Tasks will pick the default. `max_backoff` will be truncated to the nearest second. This field has the same meaning as [max_backoff_seconds in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters).", + "description": "A task will be scheduled for retry between min_backoff and max_backoff duration after it fails, if the queue's RetryConfig specifies that the task should be retried. If unspecified when the queue is created, Cloud Tasks will pick the default. The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for \"seconds\"). For more information on the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). `max_backoff` will be truncated to the nearest second. This field has the same meaning as [max_backoff_seconds in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters).", "format": "google-duration", "type": "string" }, @@ -1475,12 +1558,12 @@ "type": "integer" }, "maxRetryDuration": { - "description": "If positive, `max_retry_duration` specifies the time limit for retrying a failed task, measured from when the task was first attempted. Once `max_retry_duration` time has passed *and* the task has been attempted max_attempts times, no further attempts will be made and the task will be deleted. If zero, then the task age is unlimited. If unspecified when the queue is created, Cloud Tasks will pick the default. `max_retry_duration` will be truncated to the nearest second. This field has the same meaning as [task_age_limit in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters).", + "description": "If positive, `max_retry_duration` specifies the time limit for retrying a failed task, measured from when the task was first attempted. Once `max_retry_duration` time has passed *and* the task has been attempted max_attempts times, no further attempts will be made and the task will be deleted. If zero, then the task age is unlimited. If unspecified when the queue is created, Cloud Tasks will pick the default. The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for \"seconds\"). For the maximum possible value or the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). `max_retry_duration` will be truncated to the nearest second. This field has the same meaning as [task_age_limit in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters).", "format": "google-duration", "type": "string" }, "minBackoff": { - "description": "A task will be scheduled for retry between min_backoff and max_backoff duration after it fails, if the queue's RetryConfig specifies that the task should be retried. If unspecified when the queue is created, Cloud Tasks will pick the default. `min_backoff` will be truncated to the nearest second. This field has the same meaning as [min_backoff_seconds in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters).", + "description": "A task will be scheduled for retry between min_backoff and max_backoff duration after it fails, if the queue's RetryConfig specifies that the task should be retried. If unspecified when the queue is created, Cloud Tasks will pick the default. The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for \"seconds\"). For more information on the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). `min_backoff` will be truncated to the nearest second. This field has the same meaning as [min_backoff_seconds in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters).", "format": "google-duration", "type": "string" } @@ -1577,7 +1660,7 @@ "type": "integer" }, "dispatchDeadline": { - "description": "The deadline for requests sent to the worker. If the worker does not respond by this deadline then the request is cancelled and the attempt is marked as a `DEADLINE_EXCEEDED` failure. Cloud Tasks will retry the task according to the RetryConfig. Note that when the request is cancelled, Cloud Tasks will stop listening for the response, but whether the worker stops processing depends on the worker. For example, if the worker is stuck, it may not react to cancelled requests. The default and maximum values depend on the type of request: * For HTTP tasks, the default is 10 minutes. The deadline must be in the interval [15 seconds, 30 minutes]. * For App Engine tasks, 0 indicates that the request has the default deadline. The default deadline depends on the [scaling type](https://cloud.google.com/appengine/docs/standard/go/how-instances-are-managed#instance_scaling) of the service: 10 minutes for standard apps with automatic scaling, 24 hours for standard apps with manual and basic scaling, and 60 minutes for flex apps. If the request deadline is set, it must be in the interval [15 seconds, 24 hours 15 seconds]. Regardless of the task's `dispatch_deadline`, the app handler will not run for longer than than the service's timeout. We recommend setting the `dispatch_deadline` to at most a few seconds more than the app handler's timeout. For more information see [Timeouts](https://cloud.google.com/tasks/docs/creating-appengine-handlers#timeouts). `dispatch_deadline` will be truncated to the nearest millisecond. The deadline is an approximate deadline.", + "description": "The deadline for requests sent to the worker. If the worker does not respond by this deadline then the request is cancelled and the attempt is marked as a `DEADLINE_EXCEEDED` failure. Cloud Tasks will retry the task according to the RetryConfig. Note that when the request is cancelled, Cloud Tasks will stop listening for the response, but whether the worker stops processing depends on the worker. For example, if the worker is stuck, it may not react to cancelled requests. The default and maximum values depend on the type of request: * For HTTP tasks, the default is 10 minutes. The deadline must be in the interval [15 seconds, 30 minutes]. * For App Engine tasks, 0 indicates that the request has the default deadline. The default deadline depends on the [scaling type](https://cloud.google.com/appengine/docs/standard/go/how-instances-are-managed#instance_scaling) of the service: 10 minutes for standard apps with automatic scaling, 24 hours for standard apps with manual and basic scaling, and 60 minutes for flex apps. If the request deadline is set, it must be in the interval [15 seconds, 24 hours 15 seconds]. Regardless of the task's `dispatch_deadline`, the app handler will not run for longer than than the service's timeout. We recommend setting the `dispatch_deadline` to at most a few seconds more than the app handler's timeout. For more information see [Timeouts](https://cloud.google.com/tasks/docs/creating-appengine-handlers#timeouts). The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for \"seconds\"). For more information on the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). `dispatch_deadline` will be truncated to the nearest millisecond. The deadline is an approximate deadline.", "format": "google-duration", "type": "string" }, @@ -1661,21 +1744,21 @@ "id": "UriOverride", "properties": { "host": { - "description": "Host override. When specified, will replace the host part of the task URL. For example, if the task URL is \"https://www.google.com\", and host value is set to \"example.net\", the overridden URI will be changed to \"https://example.net\". Host value cannot be an empty string.", + "description": "Host override. When specified, replaces the host part of the task URL. For example, if the task URL is \"https://www.google.com,\" and host value is set to \"example.net\", the overridden URI will be changed to \"https://example.net.\" Host value cannot be an empty string (INVALID_ARGUMENT).", "type": "string" }, "pathOverride": { "$ref": "PathOverride", - "description": "URI path. When specified, will replace the existing path of the task URL. Setting the path value to an empty string clears the URI path segment." + "description": "URI path. When specified, replaces the existing path of the task URL. Setting the path value to an empty string clears the URI path segment." }, "port": { - "description": "Port override. When specified, will replace the port part of the task URI. For instance, for a URI http://www.google.com/foo and port=123, the overridden URI becomes http://www.google.com:123/foo. Note that the port value must be a positive integer. Setting the port to 0 (Zero) clears the URI port.", + "description": "Port override. When specified, replaces the port part of the task URI. For instance, for a URI http://www.google.com/foo and port=123, the overridden URI becomes http://www.google.com:123/foo. Note that the port value must be a positive integer. Setting the port to 0 (Zero) clears the URI port.", "format": "int64", "type": "string" }, "queryOverride": { "$ref": "QueryOverride", - "description": "URI Query. When specified, will replace the query part of the task URI. Setting the query value to an empty string clears the URI query segment." + "description": "URI Query. When specified, replaces the query part of the task URI. Setting the query value to an empty string clears the URI query segment." }, "scheme": { "description": "Scheme override. When specified, the task URI scheme is replaced by the provided value (HTTP or HTTPS).", diff --git a/etc/api/cloudtrace/v1/cloudtrace-api.json b/etc/api/cloudtrace/v1/cloudtrace-api.json index 1a15068cd8..daa0dcbdb0 100644 --- a/etc/api/cloudtrace/v1/cloudtrace-api.json +++ b/etc/api/cloudtrace/v1/cloudtrace-api.json @@ -257,7 +257,7 @@ } } }, - "revision": "20230112", + "revision": "20240223", "rootUrl": "https://cloudtrace.googleapis.com/", "schemas": { "Empty": { @@ -311,7 +311,7 @@ "id": "TraceSpan", "properties": { "endTime": { - "description": "End time of the span in nanoseconds from the UNIX epoch.", + "description": "End time of the span in seconds and nanoseconds from the UNIX epoch.", "format": "google-datetime", "type": "string" }, @@ -351,7 +351,7 @@ "type": "string" }, "startTime": { - "description": "Start time of the span in nanoseconds from the UNIX epoch.", + "description": "Start time of the span in seconds and nanoseconds from the UNIX epoch.", "format": "google-datetime", "type": "string" } diff --git a/etc/api/cloudtrace/v2/cloudtrace-api.json b/etc/api/cloudtrace/v2/cloudtrace-api.json index f949c55855..a073dafbab 100644 --- a/etc/api/cloudtrace/v2/cloudtrace-api.json +++ b/etc/api/cloudtrace/v2/cloudtrace-api.json @@ -181,7 +181,7 @@ } } }, - "revision": "20230112", + "revision": "20240223", "rootUrl": "https://cloudtrace.googleapis.com/", "schemas": { "Annotation": { @@ -227,7 +227,7 @@ "additionalProperties": { "$ref": "AttributeValue" }, - "description": "A set of attributes. Each attribute's key can be up to 128 bytes long. The value can be a string up to 256 bytes, a signed 64-bit integer, or the boolean values `true` or `false`. For example: \"/instance_id\": { \"string_value\": { \"value\": \"my-instance\" } } \"/http/request_bytes\": { \"int_value\": 300 } \"abc.com/myattribute\": { \"bool_value\": false }", + "description": "A set of attributes. Each attribute's key can be up to 128 bytes long. The value can be a string up to 256 bytes, a signed 64-bit integer, or the boolean values `true` or `false`. For example: \"/instance_id\": { \"string_value\": { \"value\": \"my-instance\" } } \"/http/request_bytes\": { \"int_value\": 300 } \"example.com/myattribute\": { \"bool_value\": false }", "type": "object" }, "droppedAttributesCount": { @@ -362,7 +362,7 @@ "type": "object" }, "Span": { - "description": "A span represents a single operation within a trace. Spans can be nested to form a trace tree. Often, a trace contains a root span that describes the end-to-end latency, and one or more subspans for its sub-operations. A trace can also contain multiple root spans, or none at all. Spans do not need to be contiguous\u2014there might be gaps or overlaps between spans in a trace.", + "description": "A span represents a single operation within a trace. Spans can be nested to form a trace tree. Often, a trace contains a root span that describes the end-to-end latency, and one or more subspans for its sub-operations. A trace can also contain multiple root spans, or none at all. Spans do not need to be contiguous. There might be gaps or overlaps between spans in a trace.", "id": "Span", "properties": { "attributes": { @@ -471,7 +471,7 @@ }, "originalFunctionName": { "$ref": "TruncatableString", - "description": "An un-mangled function name, if `function_name` is [mangled](http://www.avabodh.com/cxxin/namemangling.html). The name can be fully-qualified (up to 1024 bytes)." + "description": "An un-mangled function name, if `function_name` is mangled. To get information about name mangling, run [this search](https://www.google.com/search?q=cxx+name+mangling). The name can be fully-qualified (up to 1024 bytes)." }, "sourceVersion": { "$ref": "TruncatableString", diff --git a/etc/api/cloudtrace/v2beta1/cloudtrace-api.json b/etc/api/cloudtrace/v2beta1/cloudtrace-api.json index 74c237924a..11252808f3 100644 --- a/etc/api/cloudtrace/v2beta1/cloudtrace-api.json +++ b/etc/api/cloudtrace/v2beta1/cloudtrace-api.json @@ -273,7 +273,7 @@ } } }, - "revision": "20230112", + "revision": "20240223", "rootUrl": "https://cloudtrace.googleapis.com/", "schemas": { "Empty": { diff --git a/etc/api/composer/v1/composer-api.json b/etc/api/composer/v1/composer-api.json index fbe161f816..647aae7492 100644 --- a/etc/api/composer/v1/composer-api.json +++ b/etc/api/composer/v1/composer-api.json @@ -139,6 +139,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "databaseFailover": { + "description": "Triggers database failover (only for highly resilient environments).", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:databaseFailover", + "httpMethod": "POST", + "id": "composer.projects.locations.environments.databaseFailover", + "parameterOrder": [ + "environment" + ], + "parameters": { + "environment": { + "description": "Target environment: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+environment}:databaseFailover", + "request": { + "$ref": "DatabaseFailoverRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "delete": { "description": "Delete an environment.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}", @@ -164,6 +192,59 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "executeAirflowCommand": { + "description": "Executes Airflow CLI command.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:executeAirflowCommand", + "httpMethod": "POST", + "id": "composer.projects.locations.environments.executeAirflowCommand", + "parameterOrder": [ + "environment" + ], + "parameters": { + "environment": { + "description": "The resource name of the environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\".", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+environment}:executeAirflowCommand", + "request": { + "$ref": "ExecuteAirflowCommandRequest" + }, + "response": { + "$ref": "ExecuteAirflowCommandResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "fetchDatabaseProperties": { + "description": "Fetches database properties.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:fetchDatabaseProperties", + "httpMethod": "GET", + "id": "composer.projects.locations.environments.fetchDatabaseProperties", + "parameterOrder": [ + "environment" + ], + "parameters": { + "environment": { + "description": "Required. The resource name of the environment, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+environment}:fetchDatabaseProperties", + "response": { + "$ref": "FetchDatabasePropertiesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Get an existing environment.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}", @@ -287,6 +368,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "pollAirflowCommand": { + "description": "Polls Airflow CLI command execution and fetches logs.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:pollAirflowCommand", + "httpMethod": "POST", + "id": "composer.projects.locations.environments.pollAirflowCommand", + "parameterOrder": [ + "environment" + ], + "parameters": { + "environment": { + "description": "The resource name of the environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+environment}:pollAirflowCommand", + "request": { + "$ref": "PollAirflowCommandRequest" + }, + "response": { + "$ref": "PollAirflowCommandResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "saveSnapshot": { "description": "Creates a snapshots of a Cloud Composer environment. As a result of this operation, snapshot of environment's state is stored in a location specified in the SaveSnapshotRequest.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:saveSnapshot", @@ -314,6 +423,373 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "stopAirflowCommand": { + "description": "Stops Airflow CLI command execution.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:stopAirflowCommand", + "httpMethod": "POST", + "id": "composer.projects.locations.environments.stopAirflowCommand", + "parameterOrder": [ + "environment" + ], + "parameters": { + "environment": { + "description": "The resource name of the environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\".", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+environment}:stopAirflowCommand", + "request": { + "$ref": "StopAirflowCommandRequest" + }, + "response": { + "$ref": "StopAirflowCommandResponse" + }, + "scopes": [ + "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" + ] + } + } } } }, @@ -415,7 +891,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "composer.projects.locations.operations.list", @@ -462,9 +938,35 @@ } } }, - "revision": "20230107", + "revision": "20240227", "rootUrl": "https://composer.googleapis.com/", "schemas": { + "AirflowMetadataRetentionPolicyConfig": { + "description": "The policy for airflow metadata database retention.", + "id": "AirflowMetadataRetentionPolicyConfig", + "properties": { + "retentionDays": { + "description": "Optional. How many days data should be retained for.", + "format": "int32", + "type": "integer" + }, + "retentionMode": { + "description": "Optional. Retention can be either enabled or disabled.", + "enum": [ + "RETENTION_MODE_UNSPECIFIED", + "RETENTION_MODE_ENABLED", + "RETENTION_MODE_DISABLED" + ], + "enumDescriptions": [ + "Default mode doesn't change environment parameters.", + "Retention policy is enabled.", + "Retention policy is disabled." + ], + "type": "string" + } + }, + "type": "object" + }, "AllowedIpRange": { "description": "Allowed IP range with user-provided description.", "id": "AllowedIpRange", @@ -538,6 +1040,141 @@ }, "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": { + "airflowMetadataRetentionConfig": { + "$ref": "AirflowMetadataRetentionPolicyConfig", + "description": "Optional. The retention policy for airflow metadata database. Details: go/composer-database-retention-2" + }, + "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", @@ -545,10 +1182,26 @@ "machineType": { "description": "Optional. Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. If not specified, db-n1-standard-2 will be used. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", "type": "string" + }, + "zone": { + "description": "Optional. The Compute Engine zone where the Airflow database is created. If zone is provided, it must be in the region selected for the environment. If zone is not provided, a zone is automatically selected. The zone can only be set during environment creation. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.*.", + "type": "string" } }, "type": "object" }, + "DatabaseFailoverRequest": { + "description": "Request to trigger database failover (only for highly resilient environments).", + "id": "DatabaseFailoverRequest", + "properties": {}, + "type": "object" + }, + "DatabaseFailoverResponse": { + "description": "Response for DatabaseFailoverRequest.", + "id": "DatabaseFailoverResponse", + "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", @@ -612,6 +1265,11 @@ "description": "The resource name of the environment, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\" EnvironmentId must start with a lowercase letter followed by up to 63 lowercase letters, numbers, or hyphens, and cannot end with a hyphen.", "type": "string" }, + "satisfiesPzs": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "state": { "description": "The current state of the environment.", "enum": [ @@ -632,6 +1290,10 @@ ], "type": "string" }, + "storageConfig": { + "$ref": "StorageConfig", + "description": "Optional. Storage configuration for this environment." + }, "updateTime": { "description": "Output only. The time at which this environment was last modified.", "format": "google-datetime", @@ -648,6 +1310,11 @@ "description": "Configuration information for an environment.", "id": "EnvironmentConfig", "properties": { + "airflowByoidUri": { + "description": "Output only. The 'bring your own identity' variant of the URI of the Apache Airflow Web UI hosted within this environment, to be accessed with external identities using workforce identity federation (see [Access environments with workforce identity federation](/composer/docs/composer-2/access-environments-with-workforce-identity-federation)).", + "readOnly": true, + "type": "string" + }, "airflowUri": { "description": "Output only. The URI of the Apache Airflow Web UI hosted within this environment (see [Airflow web interface](/composer/docs/how-to/accessing/airflow-web-interface)).", "type": "string" @@ -656,6 +1323,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." @@ -709,6 +1380,18 @@ "$ref": "RecoveryConfig", "description": "Optional. The Recovery settings configuration of an environment. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer." }, + "resilienceMode": { + "description": "Optional. Resilience mode of the Cloud Composer Environment. This field is supported for Cloud Composer environments in versions composer-2.2.0-airflow-*.*.* and newer.", + "enum": [ + "RESILIENCE_MODE_UNSPECIFIED", + "HIGH_RESILIENCE" + ], + "enumDescriptions": [ + "Default mode doesn't change environment parameters.", + "Enabled High Resilience mode, including Cloud SQL HA." + ], + "type": "string" + }, "softwareConfig": { "$ref": "SoftwareConfig", "description": "The configuration settings for software inside the environment." @@ -728,6 +1411,86 @@ }, "type": "object" }, + "ExecuteAirflowCommandRequest": { + "description": "Execute Airflow Command request.", + "id": "ExecuteAirflowCommandRequest", + "properties": { + "command": { + "description": "Airflow command.", + "type": "string" + }, + "parameters": { + "description": "Parameters for the Airflow command/subcommand as an array of arguments. It may contain positional arguments like `[\"my-dag-id\"]`, key-value parameters like `[\"--foo=bar\"]` or `[\"--foo\",\"bar\"]`, or other flags like `[\"-f\"]`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "subcommand": { + "description": "Airflow subcommand.", + "type": "string" + } + }, + "type": "object" + }, + "ExecuteAirflowCommandResponse": { + "description": "Response to ExecuteAirflowCommandRequest.", + "id": "ExecuteAirflowCommandResponse", + "properties": { + "error": { + "description": "Error message. Empty if there was no error.", + "type": "string" + }, + "executionId": { + "description": "The unique ID of the command execution for polling.", + "type": "string" + }, + "pod": { + "description": "The name of the pod where the command is executed.", + "type": "string" + }, + "podNamespace": { + "description": "The namespace of the pod where the command is executed.", + "type": "string" + } + }, + "type": "object" + }, + "ExitInfo": { + "description": "Information about how a command ended.", + "id": "ExitInfo", + "properties": { + "error": { + "description": "Error message. Empty if there was no error.", + "type": "string" + }, + "exitCode": { + "description": "The exit code from the command execution.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "FetchDatabasePropertiesResponse": { + "description": "Response for FetchDatabasePropertiesRequest.", + "id": "FetchDatabasePropertiesResponse", + "properties": { + "isFailoverReplicaAvailable": { + "description": "The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only fail over to the failover replica when the status is true.", + "type": "boolean" + }, + "primaryGceZone": { + "description": "The Compute Engine zone that the instance is currently serving from.", + "type": "string" + }, + "secondaryGceZone": { + "description": "The Compute Engine zone that the failover instance is currently serving from for a regional Cloud SQL instance.", + "type": "string" + } + }, + "type": "object" + }, "IPAllocationPolicy": { "description": "Configuration for controlling how IPs are allocated in the GKE cluster running the Apache Airflow software.", "id": "IPAllocationPolicy", @@ -789,6 +1552,22 @@ }, "type": "object" }, + "Line": { + "description": "Contains information about a single line from logs.", + "id": "Line", + "properties": { + "content": { + "description": "Text content of the log line.", + "type": "string" + }, + "lineNumber": { + "description": "Number of the line.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "ListEnvironmentsResponse": { "description": "The environments in a project and location.", "id": "ListEnvironmentsResponse", @@ -843,6 +1622,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", @@ -940,6 +1773,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", @@ -981,7 +1822,7 @@ "type": "string" }, "tags": { - "description": "Optional. The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", + "description": "Optional. The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Cannot be updated.", "items": { "type": "string" }, @@ -1019,7 +1860,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" } }, @@ -1048,7 +1889,8 @@ "UPDATE", "CHECK", "SAVE_SNAPSHOT", - "LOAD_SNAPSHOT" + "LOAD_SNAPSHOT", + "DATABASE_FAILOVER" ], "enumDescriptions": [ "Unused.", @@ -1057,7 +1899,8 @@ "A resource update operation.", "A resource check operation.", "Saves snapshot of the resource operation.", - "Loads snapshot of the resource operation." + "Loads snapshot of the resource operation.", + "Triggers failover of environment's Cloud SQL instance (only for highly resilient environments)." ], "type": "string" }, @@ -1092,6 +1935,52 @@ }, "type": "object" }, + "PollAirflowCommandRequest": { + "description": "Poll Airflow Command request.", + "id": "PollAirflowCommandRequest", + "properties": { + "executionId": { + "description": "The unique ID of the command execution.", + "type": "string" + }, + "nextLineNumber": { + "description": "Line number from which new logs should be fetched.", + "format": "int32", + "type": "integer" + }, + "pod": { + "description": "The name of the pod where the command is executed.", + "type": "string" + }, + "podNamespace": { + "description": "The namespace of the pod where the command is executed.", + "type": "string" + } + }, + "type": "object" + }, + "PollAirflowCommandResponse": { + "description": "Response to PollAirflowCommandRequest.", + "id": "PollAirflowCommandResponse", + "properties": { + "exitInfo": { + "$ref": "ExitInfo", + "description": "The result exit status of the command." + }, + "output": { + "description": "Output from the command execution. It may not contain the full output and the caller may need to poll for more lines.", + "items": { + "$ref": "Line" + }, + "type": "array" + }, + "outputEnd": { + "description": "Whether the command execution has finished and there is no more output.", + "type": "boolean" + } + }, + "type": "object" + }, "PrivateClusterConfig": { "description": "Configuration options for the private GKE cluster in a Cloud Composer environment.", "id": "PrivateClusterConfig", @@ -1133,6 +2022,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" @@ -1255,6 +2148,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" @@ -1281,6 +2178,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" @@ -1312,6 +2223,137 @@ }, "type": "object" }, + "StopAirflowCommandRequest": { + "description": "Stop Airflow Command request.", + "id": "StopAirflowCommandRequest", + "properties": { + "executionId": { + "description": "The unique ID of the command execution.", + "type": "string" + }, + "force": { + "description": "If true, the execution is terminated forcefully (SIGKILL). If false, the execution is stopped gracefully, giving it time for cleanup.", + "type": "boolean" + }, + "pod": { + "description": "The name of the pod where the command is executed.", + "type": "string" + }, + "podNamespace": { + "description": "The namespace of the pod where the command is executed.", + "type": "string" + } + }, + "type": "object" + }, + "StopAirflowCommandResponse": { + "description": "Response to StopAirflowCommandRequest.", + "id": "StopAirflowCommandResponse", + "properties": { + "isDone": { + "description": "Whether the execution is still running.", + "type": "boolean" + }, + "output": { + "description": "Output message from stopping execution request.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "StorageConfig": { + "description": "The configuration for data storage in the environment.", + "id": "StorageConfig", + "properties": { + "bucket": { + "description": "Optional. The name of the Cloud Storage bucket used by the environment. No `gs://` prefix.", + "type": "string" + } + }, + "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", + "properties": { + "count": { + "description": "Optional. The number of triggerers.", + "format": "int32", + "type": "integer" + }, + "cpu": { + "description": "Optional. CPU request and limit for a single Airflow triggerer replica.", + "format": "float", + "type": "number" + }, + "memoryGb": { + "description": "Optional. Memory (GB) request and limit for a single Airflow triggerer replica.", + "format": "float", + "type": "number" + } + }, + "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", @@ -1395,10 +2437,18 @@ "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." }, + "triggerer": { + "$ref": "TriggererResource", + "description": "Optional. Resources used by Airflow triggerers." + }, "webServer": { "$ref": "WebServerResource", "description": "Optional. Resources used by Airflow web server." diff --git a/etc/api/composer/v1beta1/composer-api.json b/etc/api/composer/v1beta1/composer-api.json index 0847330f0f..8e1e528115 100644 --- a/etc/api/composer/v1beta1/composer-api.json +++ b/etc/api/composer/v1beta1/composer-api.json @@ -167,6 +167,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "databaseFailover": { + "description": "Triggers database failover (only for highly resilient environments).", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:databaseFailover", + "httpMethod": "POST", + "id": "composer.projects.locations.environments.databaseFailover", + "parameterOrder": [ + "environment" + ], + "parameters": { + "environment": { + "description": "Target environment: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+environment}:databaseFailover", + "request": { + "$ref": "DatabaseFailoverRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "delete": { "description": "Delete an environment.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}", @@ -192,6 +220,59 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "executeAirflowCommand": { + "description": "Executes Airflow CLI command.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:executeAirflowCommand", + "httpMethod": "POST", + "id": "composer.projects.locations.environments.executeAirflowCommand", + "parameterOrder": [ + "environment" + ], + "parameters": { + "environment": { + "description": "The resource name of the environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\".", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+environment}:executeAirflowCommand", + "request": { + "$ref": "ExecuteAirflowCommandRequest" + }, + "response": { + "$ref": "ExecuteAirflowCommandResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "fetchDatabaseProperties": { + "description": "Fetches database properties.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:fetchDatabaseProperties", + "httpMethod": "GET", + "id": "composer.projects.locations.environments.fetchDatabaseProperties", + "parameterOrder": [ + "environment" + ], + "parameters": { + "environment": { + "description": "Required. The resource name of the environment, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+environment}:fetchDatabaseProperties", + "response": { + "$ref": "FetchDatabasePropertiesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Get an existing environment.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}", @@ -315,6 +396,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "pollAirflowCommand": { + "description": "Polls Airflow CLI command execution and fetches logs.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:pollAirflowCommand", + "httpMethod": "POST", + "id": "composer.projects.locations.environments.pollAirflowCommand", + "parameterOrder": [ + "environment" + ], + "parameters": { + "environment": { + "description": "The resource name of the environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+environment}:pollAirflowCommand", + "request": { + "$ref": "PollAirflowCommandRequest" + }, + "response": { + "$ref": "PollAirflowCommandResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "restartWebServer": { "description": "Restart Airflow web server.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:restartWebServer", @@ -370,6 +479,373 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "stopAirflowCommand": { + "description": "Stops Airflow CLI command execution.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:stopAirflowCommand", + "httpMethod": "POST", + "id": "composer.projects.locations.environments.stopAirflowCommand", + "parameterOrder": [ + "environment" + ], + "parameters": { + "environment": { + "description": "The resource name of the environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\".", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+environment}:stopAirflowCommand", + "request": { + "$ref": "StopAirflowCommandRequest" + }, + "response": { + "$ref": "StopAirflowCommandResponse" + }, + "scopes": [ + "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": "v1beta1/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": "v1beta1/{+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": "v1beta1/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": "v1beta1/{+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": "v1beta1/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": "v1beta1/{+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": "v1beta1/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": "v1beta1/{+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": "v1beta1/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": "v1beta1/{+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": "v1beta1/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": "v1beta1/{+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": "v1beta1/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": "v1beta1/{+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": "v1beta1/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": "v1beta1/{+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": "v1beta1/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": "v1beta1/{+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": "v1beta1/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": "v1beta1/{+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": "v1beta1/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": "v1beta1/{+parent}/workloads", + "response": { + "$ref": "ListWorkloadsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } }, @@ -471,7 +947,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "composer.projects.locations.operations.list", @@ -518,9 +994,35 @@ } } }, - "revision": "20230107", + "revision": "20240227", "rootUrl": "https://composer.googleapis.com/", "schemas": { + "AirflowMetadataRetentionPolicyConfig": { + "description": "The policy for airflow metadata database retention.", + "id": "AirflowMetadataRetentionPolicyConfig", + "properties": { + "retentionDays": { + "description": "Optional. How many days data should be retained for.", + "format": "int32", + "type": "integer" + }, + "retentionMode": { + "description": "Optional. Retention can be either enabled or disabled.", + "enum": [ + "RETENTION_MODE_UNSPECIFIED", + "RETENTION_MODE_ENABLED", + "RETENTION_MODE_DISABLED" + ], + "enumDescriptions": [ + "Default mode doesn't change environment parameters.", + "Retention policy is enabled.", + "Retention policy is disabled." + ], + "type": "string" + } + }, + "type": "object" + }, "AllowedIpRange": { "description": "Allowed IP range with user-provided description.", "id": "AllowedIpRange", @@ -616,6 +1118,136 @@ }, "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": { + "airflowDatabaseRetentionDays": { + "deprecated": true, + "description": "Optional. The number of days describing for how long to store event-based records in airflow database. If the retention mechanism is enabled this value must be a positive integer otherwise, value should be set to 0.", + "format": "int32", + "type": "integer" + }, + "airflowMetadataRetentionConfig": { + "$ref": "AirflowMetadataRetentionPolicyConfig", + "description": "Optional. The retention policy for airflow metadata database." + }, + "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", @@ -623,10 +1255,26 @@ "machineType": { "description": "Optional. Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. If not specified, db-n1-standard-2 will be used. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", "type": "string" + }, + "zone": { + "description": "Optional. The Compute Engine zone where the Airflow database is created. If zone is provided, it must be in the region selected for the environment. If zone is not provided, a zone is automatically selected. The zone can only be set during environment creation. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.*.", + "type": "string" } }, "type": "object" }, + "DatabaseFailoverRequest": { + "description": "Request to trigger database failover (only for highly resilient environments).", + "id": "DatabaseFailoverRequest", + "properties": {}, + "type": "object" + }, + "DatabaseFailoverResponse": { + "description": "Response for DatabaseFailoverRequest.", + "id": "DatabaseFailoverResponse", + "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", @@ -691,6 +1339,11 @@ "description": "The resource name of the environment, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\" EnvironmentId must start with a lowercase letter followed by up to 63 lowercase letters, numbers, or hyphens, and cannot end with a hyphen.", "type": "string" }, + "satisfiesPzs": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "state": { "description": "The current state of the environment.", "enum": [ @@ -711,6 +1364,10 @@ ], "type": "string" }, + "storageConfig": { + "$ref": "StorageConfig", + "description": "Optional. Storage configuration for this environment." + }, "updateTime": { "description": "Output only. The time at which this environment was last modified.", "format": "google-datetime", @@ -729,6 +1386,11 @@ "description": "Configuration information for an environment.", "id": "EnvironmentConfig", "properties": { + "airflowByoidUri": { + "description": "Output only. The 'bring your own identity' variant of the URI of the Apache Airflow Web UI hosted within this environment, to be accessed with external identities using workforce identity federation (see [Access environments with workforce identity federation](/composer/docs/composer-2/access-environments-with-workforce-identity-federation)).", + "readOnly": true, + "type": "string" + }, "airflowUri": { "description": "Output only. The URI of the Apache Airflow Web UI hosted within this environment (see [Airflow web interface](/composer/docs/how-to/accessing/airflow-web-interface)).", "readOnly": true, @@ -739,6 +1401,10 @@ "readOnly": true, "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." @@ -793,6 +1459,18 @@ "$ref": "RecoveryConfig", "description": "Optional. The Recovery settings configuration of an environment. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer." }, + "resilienceMode": { + "description": "Optional. Resilience mode of the Cloud Composer Environment. This field is supported for Cloud Composer environments in versions composer-2.2.0-airflow-*.*.* and newer.", + "enum": [ + "RESILIENCE_MODE_UNSPECIFIED", + "HIGH_RESILIENCE" + ], + "enumDescriptions": [ + "Default mode doesn't change environment parameters.", + "Enabled High Resilience mode, including Cloud SQL HA." + ], + "type": "string" + }, "softwareConfig": { "$ref": "SoftwareConfig", "description": "The configuration settings for software inside the environment." @@ -812,6 +1490,28 @@ }, "type": "object" }, + "ExecuteAirflowCommandRequest": { + "description": "Execute Airflow Command request.", + "id": "ExecuteAirflowCommandRequest", + "properties": { + "command": { + "description": "Airflow command.", + "type": "string" + }, + "parameters": { + "description": "Parameters for the Airflow command/subcommand as an array of arguments. It may contain positional arguments like `[\"my-dag-id\"]`, key-value parameters like `[\"--foo=bar\"]` or `[\"--foo\",\"bar\"]`, or other flags like `[\"-f\"]`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "subcommand": { + "description": "Airflow subcommand.", + "type": "string" + } + }, + "type": "object" + }, "ExecuteAirflowCommandResponse": { "description": "Response to ExecuteAirflowCommandRequest.", "id": "ExecuteAirflowCommandResponse", @@ -851,6 +1551,25 @@ }, "type": "object" }, + "FetchDatabasePropertiesResponse": { + "description": "Response for FetchDatabasePropertiesRequest.", + "id": "FetchDatabasePropertiesResponse", + "properties": { + "isFailoverReplicaAvailable": { + "description": "The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only fail over to the failover replica when the status is true.", + "type": "boolean" + }, + "primaryGceZone": { + "description": "The Compute Engine zone that the instance is currently serving from.", + "type": "string" + }, + "secondaryGceZone": { + "description": "The Compute Engine zone that the failover instance is currently serving from for a regional Cloud SQL instance.", + "type": "string" + } + }, + "type": "object" + }, "IPAllocationPolicy": { "description": "Configuration for controlling how IPs are allocated in the GKE cluster.", "id": "IPAllocationPolicy", @@ -982,6 +1701,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", @@ -1079,6 +1852,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", @@ -1125,7 +1906,7 @@ "type": "string" }, "tags": { - "description": "Optional. The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", + "description": "Optional. The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Cannot be updated.", "items": { "type": "string" }, @@ -1163,7 +1944,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" } }, @@ -1192,7 +1973,8 @@ "UPDATE", "CHECK", "SAVE_SNAPSHOT", - "LOAD_SNAPSHOT" + "LOAD_SNAPSHOT", + "DATABASE_FAILOVER" ], "enumDescriptions": [ "Unused.", @@ -1201,7 +1983,8 @@ "A resource update operation.", "A resource check operation.", "Saves snapshot of the resource operation.", - "Loads snapshot of the resource operation." + "Loads snapshot of the resource operation.", + "Triggers failover of environment's Cloud SQL instance (only for highly resilient environments)." ], "type": "string" }, @@ -1234,6 +2017,30 @@ }, "type": "object" }, + "PollAirflowCommandRequest": { + "description": "Poll Airflow Command request.", + "id": "PollAirflowCommandRequest", + "properties": { + "executionId": { + "description": "The unique ID of the command execution.", + "type": "string" + }, + "nextLineNumber": { + "description": "Line number from which new logs should be fetched.", + "format": "int32", + "type": "integer" + }, + "pod": { + "description": "The name of the pod where the command is executed.", + "type": "string" + }, + "podNamespace": { + "description": "The namespace of the pod where the command is executed.", + "type": "string" + } + }, + "type": "object" + }, "PollAirflowCommandResponse": { "description": "Response to PollAirflowCommandRequest.", "id": "PollAirflowCommandResponse", @@ -1297,6 +2104,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" @@ -1455,6 +2266,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" @@ -1486,6 +2311,79 @@ }, "type": "object" }, + "StopAirflowCommandRequest": { + "description": "Stop Airflow Command request.", + "id": "StopAirflowCommandRequest", + "properties": { + "executionId": { + "description": "The unique ID of the command execution.", + "type": "string" + }, + "force": { + "description": "If true, the execution is terminated forcefully (SIGKILL). If false, the execution is stopped gracefully, giving it time for cleanup.", + "type": "boolean" + }, + "pod": { + "description": "The name of the pod where the command is executed.", + "type": "string" + }, + "podNamespace": { + "description": "The namespace of the pod where the command is executed.", + "type": "string" + } + }, + "type": "object" + }, + "StopAirflowCommandResponse": { + "description": "Response to StopAirflowCommandRequest.", + "id": "StopAirflowCommandResponse", + "properties": { + "isDone": { + "description": "Whether the execution is still running.", + "type": "boolean" + }, + "output": { + "description": "Output message from stopping execution request.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "StorageConfig": { + "description": "The configuration for data storage in the environment.", + "id": "StorageConfig", + "properties": { + "bucket": { + "description": "Optional. The name of the Cloud Storage bucket used by the environment. No `gs://` prefix.", + "type": "string" + } + }, + "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", @@ -1508,6 +2406,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", @@ -1591,6 +2525,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/etc/api/compute/alpha/compute-api.json b/etc/api/compute/alpha/compute-api.json index 7a96cd7099..e3c6955c39 100644 --- a/etc/api/compute/alpha/compute-api.json +++ b/etc/api/compute/alpha/compute-api.json @@ -126,7 +126,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", @@ -135,7 +135,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -170,9 +170,15 @@ "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/acceleratorTypes", @@ -239,7 +245,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -269,7 +275,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" }, @@ -296,7 +302,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", @@ -305,7 +311,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -340,9 +346,15 @@ "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/addresses", @@ -498,7 +510,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -535,7 +547,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" } @@ -701,7 +713,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", @@ -710,7 +722,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -745,9 +757,15 @@ "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/autoscalers", @@ -808,7 +826,7 @@ ] }, "get": { - "description": "Returns the specified autoscaler resource. Gets a list of available autoscalers by making a list() request.", + "description": "Returns the specified autoscaler resource.", "flatPath": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", "httpMethod": "GET", "id": "compute.autoscalers.get", @@ -903,7 +921,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -933,7 +951,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" }, @@ -1227,7 +1245,7 @@ ] }, "get": { - "description": "Returns the specified BackendBucket resource. Gets a list of available backend buckets by making a list() request.", + "description": "Returns the specified BackendBucket resource.", "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", "httpMethod": "GET", "id": "compute.backendBuckets.get", @@ -1346,7 +1364,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1376,7 +1394,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" } @@ -1444,7 +1462,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" @@ -1637,7 +1655,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", @@ -1646,7 +1664,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1681,9 +1699,15 @@ "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/backendServices", @@ -1781,7 +1805,7 @@ ] }, "get": { - "description": "Returns the specified BackendService resource. Gets a list of available backend services.", + "description": "Returns the specified BackendService resource.", "flatPath": "projects/{project}/global/backendServices/{backendService}", "httpMethod": "GET", "id": "compute.backendServices.get", @@ -1937,7 +1961,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1967,7 +1991,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" } @@ -1982,6 +2006,61 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "listUsable": { + "description": "Retrieves an aggregated list of all usable backend services in the specified project.", + "flatPath": "projects/{project}/global/backendServices/listUsable", + "httpMethod": "GET", + "id": "compute.backendServices.listUsable", + "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" + }, + "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" + } + }, + "path": "projects/{project}/global/backendServices/listUsable", + "response": { + "$ref": "BackendServiceListUsable" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "patch": { "description": "Patches the specified BackendService resource with the data included in the request. For more information, see Backend services overview. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", "flatPath": "projects/{project}/global/backendServices/{backendService}", @@ -2225,10 +2304,97 @@ } } }, + "diskSettings": { + "methods": { + "get": { + "description": "Get Zonal Disk Settings.", + "flatPath": "projects/{project}/zones/{zone}/diskSettings", + "httpMethod": "GET", + "id": "compute.diskSettings.get", + "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" + }, + "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}/zones/{zone}/diskSettings", + "response": { + "$ref": "DiskSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patch Zonal Disk Settings", + "flatPath": "projects/{project}/zones/{zone}/diskSettings", + "httpMethod": "PATCH", + "id": "compute.diskSettings.patch", + "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" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "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}/diskSettings", + "request": { + "$ref": "DiskSettings" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, "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", @@ -2237,7 +2403,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -2272,9 +2438,15 @@ "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/diskTypes", @@ -2288,7 +2460,7 @@ ] }, "get": { - "description": "Returns the specified disk type. Gets a list of available disk types by making a list() request.", + "description": "Returns the specified disk type.", "flatPath": "projects/{project}/zones/{zone}/diskTypes/{diskType}", "httpMethod": "GET", "id": "compute.diskTypes.get", @@ -2341,7 +2513,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -2371,7 +2543,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" }, @@ -2448,7 +2620,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", @@ -2457,7 +2629,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -2492,9 +2664,15 @@ "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/disks", @@ -2651,7 +2829,7 @@ ] }, "get": { - "description": "Returns a specified persistent disk. Gets a list of available persistent disks by making a list() request.", + "description": "Returns the specified persistent disk.", "flatPath": "projects/{project}/zones/{zone}/disks/{disk}", "httpMethod": "GET", "id": "compute.disks.get", @@ -2800,7 +2978,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -2830,7 +3008,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" }, @@ -3136,9 +3314,6 @@ } }, "path": "projects/{project}/zones/{zone}/disks/{disk}/stopAsyncReplication", - "request": { - "$ref": "DisksStopAsyncReplicationRequest" - }, "response": { "$ref": "Operation" }, @@ -3418,7 +3593,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -3448,7 +3623,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" } @@ -3843,7 +4018,7 @@ "id": "compute.firewallPolicies.list", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -3866,12 +4041,12 @@ "type": "string" }, "parentId": { - "description": "Parent ID for this request.", + "description": "Parent ID for this request. The ID can be either be \"folders/[FOLDER_ID]\" if the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the parent is an organization.", "location": "query", "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -3925,7 +4100,7 @@ "type": "string" }, "parentId": { - "description": "The new parent of the firewall policy.", + "description": "The new parent of the firewall policy. The ID can be either be \"folders/[FOLDER_ID]\" if the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the parent is an organization.", "location": "query", "type": "string" }, @@ -4272,7 +4447,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -4302,7 +4477,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" } @@ -4444,7 +4619,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", @@ -4453,7 +4628,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -4488,9 +4663,15 @@ "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/forwardingRules", @@ -4646,7 +4827,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -4683,7 +4864,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" } @@ -4899,7 +5080,7 @@ "futureReservations": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of future reservations.", + "description": "Retrieves an aggregated list of future reservations. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/futureReservations", "httpMethod": "GET", "id": "compute.futureReservations.aggregatedList", @@ -4908,7 +5089,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -4943,9 +5124,15 @@ "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/futureReservations", @@ -5141,7 +5328,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -5171,7 +5358,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" }, @@ -5295,7 +5482,7 @@ ] }, "get": { - "description": "Returns the specified address resource. Gets a list of available addresses by making a list() request.", + "description": "Returns the specified address resource.", "flatPath": "projects/{project}/global/addresses/{address}", "httpMethod": "GET", "id": "compute.globalAddresses.get", @@ -5339,7 +5526,7 @@ ], "parameters": { "ipAddress": { - "description": "The ip_address could be external IPv4, or internal IPv4 within IPv6 form of virtual_network_id with internal IPv4. IPv6 is not supported yet.", + "description": "The VM IP address.", "location": "query", "type": "string" }, @@ -5405,7 +5592,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -5435,7 +5622,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" } @@ -5689,7 +5876,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -5719,7 +5906,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" } @@ -6018,7 +6205,7 @@ ] }, "get": { - "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.", + "description": "Returns the specified network endpoint group.", "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}", "httpMethod": "GET", "id": "compute.globalNetworkEndpointGroups.get", @@ -6095,7 +6282,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -6125,7 +6312,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" } @@ -6151,7 +6338,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -6187,7 +6374,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" } @@ -6207,7 +6394,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", @@ -6216,7 +6403,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -6251,9 +6438,15 @@ "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/operations", @@ -6342,7 +6535,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -6372,7 +6565,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" } @@ -6493,7 +6686,7 @@ "id": "compute.globalOrganizationOperations.list", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -6521,7 +6714,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" } @@ -6658,7 +6851,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -6688,7 +6881,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" } @@ -6750,7 +6943,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", @@ -6759,7 +6952,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -6794,9 +6987,15 @@ "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/healthChecks", @@ -6849,7 +7048,7 @@ ] }, "get": { - "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.", + "description": "Returns the specified HealthCheck resource.", "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", "httpMethod": "GET", "id": "compute.healthChecks.get", @@ -6927,7 +7126,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -6957,7 +7156,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" } @@ -7138,7 +7337,7 @@ ] }, "get": { - "description": "Returns the specified HttpHealthCheck resource. Gets a list of available HTTP health checks by making a list() request.", + "description": "Returns the specified HttpHealthCheck resource.", "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", "httpMethod": "GET", "id": "compute.httpHealthChecks.get", @@ -7216,7 +7415,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -7246,7 +7445,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" } @@ -7427,7 +7626,7 @@ ] }, "get": { - "description": "Returns the specified HttpsHealthCheck resource. Gets a list of available HTTPS health checks by making a list() request.", + "description": "Returns the specified HttpsHealthCheck resource.", "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", "httpMethod": "GET", "id": "compute.httpsHealthChecks.get", @@ -7505,7 +7704,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -7535,7 +7734,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" } @@ -7805,7 +8004,7 @@ ] }, "get": { - "description": "Returns the specified image. Gets a list of available images by making a list() request.", + "description": "Returns the specified image.", "flatPath": "projects/{project}/global/images/{image}", "httpMethod": "GET", "id": "compute.images.get", @@ -7840,7 +8039,7 @@ ] }, "getFromFamily": { - "description": "Returns the latest image that is part of an image family and is not deprecated.", + "description": "Returns the latest image that is part of an image family and is not deprecated. For more information on image families, see Public image families documentation.", "flatPath": "projects/{project}/global/images/family/{family}", "httpMethod": "GET", "id": "compute.images.getFromFamily", @@ -7857,7 +8056,7 @@ "type": "string" }, "project": { - "description": "Project ID for this request.", + "description": "The image project that the image belongs to. For example, to get a CentOS image, specify centos-cloud as the image project.", "location": "path", "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", "required": true, @@ -7967,7 +8166,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -7997,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" }, @@ -8176,8 +8375,60 @@ }, "instanceGroupManagerResizeRequests": { "methods": { + "cancel": { + "description": "Cancels the specified resize request and removes it from the queue. Cancelled resize request does no longer wait for the resources to be provisioned. Cancel is only possible for requests that are accepted in the queue.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}/cancel", + "httpMethod": "POST", + "id": "compute.instanceGroupManagerResizeRequests.cancel", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager", + "resizeRequest" + ], + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group. The name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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" + }, + "resizeRequest": { + "description": "The name of the resize request to cancel. The name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}/cancel", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "delete": { - "description": "Deletes the specified resize request.", + "description": "Deletes the specified, inactive resize request. Requests that are still active cannot be deleted. Deleting request does not delete instances that were provisioned previously.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}", "httpMethod": "DELETE", "id": "compute.instanceGroupManagerResizeRequests.delete", @@ -8260,7 +8511,7 @@ "type": "string" }, "zone": { - "description": "The name of the zone where the managed instance group and the resize request are located. Name should conform to RFC1035.", + "description": "Name of the href=\"/compute/docs/regions-zones/#available\">zone scoping this request. Name should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -8336,7 +8587,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -8372,7 +8623,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" }, @@ -8446,7 +8697,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", @@ -8455,7 +8706,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -8490,9 +8741,15 @@ "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/instanceGroupManagers", @@ -8733,7 +8990,7 @@ ] }, "get": { - "description": "Returns all of the details about the specified managed instance group. Gets a list of available managed instance groups by making a list() request.", + "description": "Returns all of the details about the specified managed instance group.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", "httpMethod": "GET", "id": "compute.instanceGroupManagers.get", @@ -8825,7 +9082,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -8855,7 +9112,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" }, @@ -8888,7 +9145,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -8924,7 +9181,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" }, @@ -8946,7 +9203,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", @@ -8957,7 +9214,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -8993,7 +9250,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" }, @@ -9026,7 +9283,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -9062,7 +9319,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" }, @@ -9377,6 +9634,7 @@ ] }, "setAutoHealingPolicies": { + "deprecated": true, "description": "Motifies the autohealing policy for the instances in this managed instance group. [Deprecated] This method is deprecated. Use instanceGroupManagers.patch instead.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies", "httpMethod": "POST", @@ -9859,7 +10117,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", @@ -9868,7 +10126,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -9903,9 +10161,15 @@ "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/instanceGroups", @@ -10056,7 +10320,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -10086,7 +10350,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" }, @@ -10119,7 +10383,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -10155,7 +10419,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" }, @@ -10323,10 +10587,96 @@ } } }, + "instanceSettings": { + "methods": { + "get": { + "description": "Get Instance settings.", + "flatPath": "projects/{project}/zones/{zone}/instanceSettings", + "httpMethod": "GET", + "id": "compute.instanceSettings.get", + "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" + }, + "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}/zones/{zone}/instanceSettings", + "response": { + "$ref": "InstanceSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patch Instance settings", + "flatPath": "projects/{project}/zones/{zone}/instanceSettings", + "httpMethod": "PATCH", + "id": "compute.instanceSettings.patch", + "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" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The zone scoping this request. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceSettings", + "request": { + "$ref": "InstanceSettings" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, "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", @@ -10335,7 +10685,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -10370,9 +10720,15 @@ "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/instanceTemplates", @@ -10425,7 +10781,7 @@ ] }, "get": { - "description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request.", + "description": "Returns the specified instance template.", "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}", "httpMethod": "GET", "id": "compute.instanceTemplates.get", @@ -10447,6 +10803,21 @@ "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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" + }, + "view": { + "description": "View of the instance template.", + "enum": [ + "BASIC", + "FULL", + "INSTANCE_VIEW_UNSPECIFIED" + ], + "enumDescriptions": [ + "Include everything except Partner Metadata.", + "Include everything.", + "The default / unset value. The API will default to the BASIC view." + ], + "location": "query", + "type": "string" } }, "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}", @@ -10544,7 +10915,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -10574,9 +10945,24 @@ "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" + }, + "view": { + "description": "View of the instance template.", + "enum": [ + "BASIC", + "FULL", + "INSTANCE_VIEW_UNSPECIFIED" + ], + "enumDescriptions": [ + "Include everything except Partner Metadata.", + "Include everything.", + "The default / unset value. The API will default to the BASIC view." + ], + "location": "query", + "type": "string" } }, "path": "projects/{project}/global/instanceTemplates", @@ -10725,6 +11111,55 @@ "https://www.googleapis.com/auth/compute" ] }, + "addNetworkInterface": { + "description": "Adds a network interface to an instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/addNetworkInterface", + "httpMethod": "POST", + "id": "compute.instances.addNetworkInterface", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "parameters": { + "instance": { + "description": "The instance name for this request stored as resource_id. Name should conform to RFC1035 or be an unsigned long integer.", + "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": "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}/addNetworkInterface", + "request": { + "$ref": "NetworkInterface" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "addResourcePolicies": { "description": "Adds existing resource policies to an instance. You can only add one policy right now which will be applied to this instance for scheduling live migrations.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies", @@ -10776,7 +11211,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", @@ -10785,7 +11220,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -10820,9 +11255,15 @@ "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/instances", @@ -10950,6 +11391,11 @@ "required": true, "type": "string" }, + "noGracefulShutdown": { + "description": "If true, skips Graceful Shutdown.", + "location": "query", + "type": "boolean" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -11040,6 +11486,59 @@ "https://www.googleapis.com/auth/compute" ] }, + "deleteNetworkInterface": { + "description": "Deletes one network interface from an active instance. InstancesDeleteNetworkInterfaceRequest indicates: - instance from which to delete, using project+zone+resource_id fields; - network interface to be deleted, using network_interface_name field; Only VLAN interface deletion is supported for now.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/deleteNetworkInterface", + "httpMethod": "POST", + "id": "compute.instances.deleteNetworkInterface", + "parameterOrder": [ + "project", + "zone", + "instance", + "networkInterfaceName" + ], + "parameters": { + "instance": { + "description": "The instance name for this request stored as resource_id. Name should conform to RFC1035 or be an unsigned long integer.", + "location": "path", + "required": true, + "type": "string" + }, + "networkInterfaceName": { + "description": "The name of the network interface to be deleted from the instance. Only VLAN network interface deletion is supported.", + "location": "query", + "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}/deleteNetworkInterface", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "detachDisk": { "description": "Detaches a disk from an instance.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/detachDisk", @@ -11095,7 +11594,7 @@ ] }, "get": { - "description": "Returns the specified Instance resource. Gets a list of available instances by making a list() request.", + "description": "Returns the specified Instance resource.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}", "httpMethod": "GET", "id": "compute.instances.get", @@ -11119,6 +11618,21 @@ "required": true, "type": "string" }, + "view": { + "description": "View of the instance.", + "enum": [ + "BASIC", + "FULL", + "INSTANCE_VIEW_UNSPECIFIED" + ], + "enumDescriptions": [ + "Include everything except Partner Metadata.", + "Include everything.", + "The default / unset value. The API will default to the BASIC view." + ], + "location": "query", + "type": "string" + }, "zone": { "description": "The name of the zone for this request.", "location": "path", @@ -11289,6 +11803,54 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "getPartnerMetadata": { + "description": "Gets partner metadata of the specified instance and namespaces.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getPartnerMetadata", + "httpMethod": "GET", + "id": "compute.instances.getPartnerMetadata", + "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" + }, + "namespaces": { + "description": "Comma separated partner metadata namespaces.", + "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" + }, + "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}/getPartnerMetadata", + "response": { + "$ref": "PartnerMetadata" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "getScreenshot": { "description": "Returns the screenshot from the specified instance.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/screenshot", @@ -11539,7 +12101,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -11569,10 +12131,25 @@ "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" }, + "view": { + "description": "View of the instance.", + "enum": [ + "BASIC", + "FULL", + "INSTANCE_VIEW_UNSPECIFIED" + ], + "enumDescriptions": [ + "Include everything except Partner Metadata.", + "Include everything.", + "The default / unset value. The API will default to the BASIC view." + ], + "location": "query", + "type": "string" + }, "zone": { "description": "The name of the zone for this request.", "location": "path", @@ -11603,7 +12180,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -11640,7 +12217,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" }, @@ -11662,6 +12239,56 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "patchPartnerMetadata": { + "description": "Patches partner metadata of the specified instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/patchPartnerMetadata", + "httpMethod": "POST", + "id": "compute.instances.patchPartnerMetadata", + "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}/patchPartnerMetadata", + "request": { + "$ref": "PartnerMetadata" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "performMaintenance": { "description": "Perform a manual maintenance on the instance.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/performMaintenance", @@ -12405,6 +13032,55 @@ "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", @@ -12766,7 +13442,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" }, @@ -12777,6 +13453,11 @@ "required": true, "type": "string" }, + "noGracefulShutdown": { + "description": "If true, skips Graceful Shutdown.", + "location": "query", + "type": "boolean" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -12818,7 +13499,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" }, @@ -13262,7 +13943,7 @@ "instantSnapshots": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of instantSnapshots.", + "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.instantSnapshots.aggregatedList", @@ -13271,7 +13952,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -13306,9 +13987,15 @@ "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/instantSnapshots", @@ -13368,56 +14055,6 @@ "https://www.googleapis.com/auth/compute" ] }, - "export": { - "description": "Export the changed blocks between two instant snapshots to a customer's bucket in the user specified format.", - "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}/export", - "httpMethod": "POST", - "id": "compute.instantSnapshots.export", - "parameterOrder": [ - "project", - "zone", - "instantSnapshot" - ], - "parameters": { - "instantSnapshot": { - "description": "Name of the instant snapshot to export.", - "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}/instantSnapshots/{instantSnapshot}/export", - "request": { - "$ref": "InstantSnapshotsExportRequest" - }, - "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 zone.", "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}", @@ -13563,7 +14200,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -13593,7 +14230,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" }, @@ -13761,7 +14398,7 @@ "interconnectAttachments": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of interconnect attachments.", + "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", @@ -13770,7 +14407,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -13805,9 +14442,15 @@ "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", @@ -14017,7 +14660,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -14054,7 +14697,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" } @@ -14309,7 +14952,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -14339,7 +14982,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" } @@ -14441,7 +15084,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -14471,7 +15114,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" } @@ -14603,7 +15246,7 @@ ] }, "getDiagnostics": { - "description": "Returns the interconnectDiagnostics for the specified Interconnect.", + "description": "Returns the interconnectDiagnostics for the specified Interconnect. In the event of a global outage, do not use this API to make decisions about where to redirect your network traffic. Unlike a VLAN attachment, which is regional, a Cloud Interconnect connection is a global resource. A global outage can prevent this API from functioning properly.", "flatPath": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics", "httpMethod": "GET", "id": "compute.interconnects.getDiagnostics", @@ -14757,7 +15400,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -14787,7 +15430,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" } @@ -15277,7 +15920,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -15307,7 +15950,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" } @@ -15441,7 +16084,7 @@ ] }, "get": { - "description": "Returns the specified machine image. Gets a list of available machine images by making a list() request.", + "description": "Returns the specified machine image.", "flatPath": "projects/{project}/global/machineImages/{machineImage}", "httpMethod": "GET", "id": "compute.machineImages.get", @@ -15565,7 +16208,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -15595,7 +16238,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" } @@ -15690,7 +16333,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", @@ -15699,7 +16342,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -15734,9 +16377,15 @@ "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/machineTypes", @@ -15750,7 +16399,7 @@ ] }, "get": { - "description": "Returns the specified machine type. Gets a list of available machine types by making a list() request.", + "description": "Returns the specified machine type.", "flatPath": "projects/{project}/zones/{zone}/machineTypes/{machineType}", "httpMethod": "GET", "id": "compute.machineTypes.get", @@ -15803,7 +16452,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -15833,7 +16482,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" }, @@ -15860,7 +16509,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", @@ -15869,7 +16518,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -15904,9 +16553,15 @@ "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/networkAttachments", @@ -16111,7 +16766,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -16148,7 +16803,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" } @@ -16163,6 +16818,56 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "patch": { + "description": "Patches the specified NetworkAttachment resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "httpMethod": "PATCH", + "id": "compute.networkAttachments.patch", + "parameterOrder": [ + "project", + "region", + "networkAttachment" + ], + "parameters": { + "networkAttachment": { + "description": "Name of the NetworkAttachment resource to patch.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "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). end_interface: MixerMutationRequestBuilder", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "request": { + "$ref": "NetworkAttachment" + }, + "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}/regions/{region}/networkAttachments/{resource}/setIamPolicy", @@ -16259,7 +16964,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", @@ -16268,7 +16973,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -16303,9 +17008,15 @@ "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/networkEdgeSecurityServices", @@ -16521,7 +17232,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", @@ -16530,7 +17241,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -16565,9 +17276,15 @@ "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/networkEndpointGroups", @@ -16722,7 +17439,7 @@ ] }, "get": { - "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.", + "description": "Returns the specified network endpoint group.", "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", "httpMethod": "GET", "id": "compute.networkEndpointGroups.get", @@ -16814,7 +17531,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -16844,7 +17561,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" }, @@ -16877,7 +17594,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -16913,7 +17630,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" }, @@ -16997,6 +17714,12 @@ "firewallPolicy" ], "parameters": { + "associatedPolicyToBeReplaced": { + "description": "Name of the firewall policy associated with the target network to swap association with. This field is mutually exclusive with 'replace_existing_association'.", + "location": "query", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string" + }, "firewallPolicy": { "description": "Name of the firewall policy to update.", "location": "path", @@ -17372,7 +18095,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -17402,7 +18125,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" } @@ -17459,6 +18182,48 @@ "https://www.googleapis.com/auth/compute" ] }, + "patchAssociation": { + "description": "Updates an association for the specified network firewall policy.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchAssociation", + "httpMethod": "POST", + "id": "compute.networkFirewallPolicies.patchAssociation", + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" + } + }, + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchAssociation", + "request": { + "$ref": "FirewallPolicyAssociation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "patchRule": { "description": "Patches a rule of the specified priority.", "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchRule", @@ -17757,7 +18522,7 @@ ] }, "get": { - "description": "Returns the specified network. Gets a list of available networks by making a list() request.", + "description": "Returns the specified network.", "flatPath": "projects/{project}/global/networks/{network}", "httpMethod": "GET", "id": "compute.networks.get", @@ -17870,7 +18635,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -17900,7 +18665,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" } @@ -17926,7 +18691,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -17963,7 +18728,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" }, @@ -17994,7 +18759,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -18046,7 +18811,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" }, @@ -18097,7 +18862,7 @@ "type": "string" }, "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -18144,7 +18909,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" } @@ -18417,7 +19182,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", @@ -18426,7 +19191,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -18461,9 +19226,15 @@ "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/nodeGroups", @@ -18726,7 +19497,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -18756,7 +19527,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" }, @@ -18790,7 +19561,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -18827,7 +19598,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" }, @@ -18899,6 +19670,56 @@ "https://www.googleapis.com/auth/compute" ] }, + "performMaintenance": { + "description": "Perform maintenance on a subset of nodes in the node group.", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/performMaintenance", + "httpMethod": "POST", + "id": "compute.nodeGroups.performMaintenance", + "parameterOrder": [ + "project", + "zone", + "nodeGroup" + ], + "parameters": { + "nodeGroup": { + "description": "Name of the node group 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}/nodeGroups/{nodeGroup}/performMaintenance", + "request": { + "$ref": "NodeGroupsPerformMaintenanceRequest" + }, + "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}/nodeGroups/{resource}/setIamPolicy", @@ -19095,7 +19916,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", @@ -19104,7 +19925,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -19139,9 +19960,15 @@ "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/nodeTemplates", @@ -19202,7 +20029,7 @@ ] }, "get": { - "description": "Returns the specified node template. Gets a list of available node templates by making a list() request.", + "description": "Returns the specified node template.", "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", "httpMethod": "GET", "id": "compute.nodeTemplates.get", @@ -19346,7 +20173,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -19383,7 +20210,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" } @@ -19494,7 +20321,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", @@ -19503,7 +20330,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -19538,9 +20365,15 @@ "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/nodeTypes", @@ -19554,7 +20387,7 @@ ] }, "get": { - "description": "Returns the specified node type. Gets a list of available node types by making a list() request.", + "description": "Returns the specified node type.", "flatPath": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}", "httpMethod": "GET", "id": "compute.nodeTypes.get", @@ -19607,7 +20440,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -19637,7 +20470,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" }, @@ -19931,7 +20764,7 @@ "id": "compute.organizationSecurityPolicies.list", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -19959,7 +20792,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" } @@ -20184,7 +21017,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", @@ -20193,7 +21026,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -20228,9 +21061,15 @@ "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/packetMirrorings", @@ -20386,7 +21225,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -20423,7 +21262,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" } @@ -20731,7 +21570,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -20761,7 +21600,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" } @@ -20785,7 +21624,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -20815,7 +21654,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" } @@ -20867,7 +21706,8 @@ ] }, "moveInstance": { - "description": "Moves an instance and its attached persistent disks from one zone to another. *Note*: Moving VMs or disks by using this method might cause unexpected behavior. For more information, see the [known issue](/compute/docs/troubleshooting/known-issues#moving_vms_or_disks_using_the_moveinstance_api_or_the_causes_unexpected_behavior).", + "deprecated": true, + "description": "Moves an instance and its attached persistent disks from one zone to another. *Note*: Moving VMs or disks by using this method might cause unexpected behavior. For more information, see the [known issue](/compute/docs/troubleshooting/known-issues#moving_vms_or_disks_using_the_moveinstance_api_or_the_causes_unexpected_behavior). [Deprecated] This method is deprecated. See [moving instance across zones](/compute/docs/instances/moving-instance-across-zones) instead.", "flatPath": "projects/{project}/moveInstance", "httpMethod": "POST", "id": "compute.projects.moveInstance", @@ -20900,6 +21740,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", @@ -21002,6 +21876,40 @@ "https://www.googleapis.com/auth/compute" ] }, + "setManagedProtectionTier": { + "description": "Sets the Cloud Armor Managed Protection (CAMP) tier of the project. To set PLUS or above the billing account of the project must be subscribed to Managed Protection Plus. See Subscribing to Managed Protection Plus for more information.", + "flatPath": "projects/{project}/setManagedProtectionTier", + "httpMethod": "POST", + "id": "compute.projects.setManagedProtectionTier", + "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}/setManagedProtectionTier", + "request": { + "$ref": "ProjectsSetManagedProtectionTierRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setUsageExportBucket": { "description": "Enables the usage export feature and sets the usage export bucket where reports are stored. If you provide an empty request body using this method, the usage export feature will be disabled.", "flatPath": "projects/{project}/setUsageExportBucket", @@ -21199,7 +22107,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -21229,7 +22137,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" } @@ -21329,7 +22237,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", @@ -21338,7 +22246,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -21373,9 +22281,15 @@ "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/publicDelegatedPrefixes", @@ -21576,7 +22490,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -21613,7 +22527,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" } @@ -21870,7 +22784,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -21907,7 +22821,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" } @@ -22305,7 +23219,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -22342,7 +23256,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" } @@ -22357,6 +23271,68 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "listUsable": { + "description": "Retrieves an aggregated list of all usable backend services in the specified project in the given region.", + "flatPath": "projects/{project}/regions/{region}/backendServices/listUsable", + "httpMethod": "GET", + "id": "compute.regionBackendServices.listUsable", + "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 scoping this request. It must be a string that meets the requirements in RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/backendServices/listUsable", + "response": { + "$ref": "BackendServiceListUsable" + }, + "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 regional BackendService resource with the data included in the request. For more information, see Understanding backend services This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", @@ -22602,7 +23578,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", @@ -22611,7 +23587,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -22646,9 +23622,15 @@ "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/commitments", @@ -22661,8 +23643,102 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "calculateCancellationFee": { + "description": "Calculate cancellation fee for the specified commitment.", + "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}/calculateCancellationFee", + "httpMethod": "POST", + "id": "compute.regionCommitments.calculateCancellationFee", + "parameterOrder": [ + "project", + "region", + "commitment" + ], + "parameters": { + "commitment": { + "description": "Name of the commitment 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}/commitments/{commitment}/calculateCancellationFee", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "cancel": { + "description": "Cancel the specified commitment.", + "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}/cancel", + "httpMethod": "POST", + "id": "compute.regionCommitments.cancel", + "parameterOrder": [ + "project", + "region", + "commitment" + ], + "parameters": { + "commitment": { + "description": "Name of the commitment 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}/commitments/{commitment}/cancel", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "get": { - "description": "Returns the specified commitment resource. Gets a list of available commitments by making a list() request.", + "description": "Returns the specified commitment resource.", "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}", "httpMethod": "GET", "id": "compute.regionCommitments.get", @@ -22757,7 +23833,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -22794,7 +23870,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" } @@ -22968,10 +24044,97 @@ } } }, + "regionDiskSettings": { + "methods": { + "get": { + "description": "Get Regional Disk Settings.", + "flatPath": "projects/{project}/regions/{region}/diskSettings", + "httpMethod": "GET", + "id": "compute.regionDiskSettings.get", + "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" + } + }, + "path": "projects/{project}/regions/{region}/diskSettings", + "response": { + "$ref": "DiskSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patch Regional Disk Settings", + "flatPath": "projects/{project}/regions/{region}/diskSettings", + "httpMethod": "PATCH", + "id": "compute.regionDiskSettings.patch", + "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" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/diskSettings", + "request": { + "$ref": "DiskSettings" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, "regionDiskTypes": { "methods": { "get": { - "description": "Returns the specified regional disk type. Gets a list of available disk types by making a list() request.", + "description": "Returns the specified regional disk type.", "flatPath": "projects/{project}/regions/{region}/diskTypes/{diskType}", "httpMethod": "GET", "id": "compute.regionDiskTypes.get", @@ -23024,7 +24187,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -23061,7 +24224,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" } @@ -23423,7 +24586,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -23460,7 +24623,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" } @@ -23759,9 +24922,6 @@ } }, "path": "projects/{project}/regions/{region}/disks/{disk}/stopAsyncReplication", - "request": { - "$ref": "RegionDisksStopAsyncReplicationRequest" - }, "response": { "$ref": "Operation" }, @@ -23924,7 +25084,7 @@ "regionHealthCheckServices": { "methods": { "aggregatedList": { - "description": "Retrieves the list of all HealthCheckService resources, regional and global, available to the specified project.", + "description": "Retrieves the list of all HealthCheckService 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/healthCheckServices", "httpMethod": "GET", "id": "compute.regionHealthCheckServices.aggregatedList", @@ -23933,7 +25093,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -23968,9 +25128,15 @@ "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/healthCheckServices", @@ -24124,7 +25290,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -24161,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" } @@ -24323,7 +25489,7 @@ ] }, "get": { - "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.", + "description": "Returns the specified HealthCheck resource.", "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", "httpMethod": "GET", "id": "compute.regionHealthChecks.get", @@ -24418,7 +25584,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -24455,7 +25621,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" } @@ -24988,7 +26154,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -25024,7 +26190,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" } @@ -25051,7 +26217,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -25093,7 +26259,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" } @@ -25109,7 +26275,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", @@ -25120,7 +26286,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -25162,7 +26328,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" } @@ -25189,7 +26355,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -25231,7 +26397,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" } @@ -25541,6 +26707,7 @@ ] }, "setAutoHealingPolicies": { + "deprecated": true, "description": "Modifies the autohealing policy for the instances in this managed instance group. [Deprecated] This method is deprecated. Use regionInstanceGroupManagers.patch instead.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies", "httpMethod": "POST", @@ -26026,7 +27193,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -26062,7 +27229,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" } @@ -26089,7 +27256,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -26131,7 +27298,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" } @@ -26295,7 +27462,7 @@ ] }, "get": { - "description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request.", + "description": "Returns the specified instance template.", "flatPath": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", "httpMethod": "GET", "id": "compute.regionInstanceTemplates.get", @@ -26325,6 +27492,21 @@ "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" + }, + "view": { + "description": "View of the instance template.", + "enum": [ + "BASIC", + "FULL", + "INSTANCE_VIEW_UNSPECIFIED" + ], + "enumDescriptions": [ + "Include everything except Partner Metadata.", + "Include everything.", + "The default / unset value. The API will default to the BASIC view." + ], + "location": "query", + "type": "string" } }, "path": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", @@ -26390,7 +27572,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -26427,9 +27609,24 @@ "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" + }, + "view": { + "description": "View of the instance template.", + "enum": [ + "BASIC", + "FULL", + "INSTANCE_VIEW_UNSPECIFIED" + ], + "enumDescriptions": [ + "Include everything except Partner Metadata.", + "Include everything.", + "The default / unset value. The API will default to the BASIC view." + ], + "location": "query", + "type": "string" } }, "path": "projects/{project}/regions/{region}/instanceTemplates", @@ -26539,56 +27736,6 @@ "https://www.googleapis.com/auth/compute" ] }, - "export": { - "description": "Export the changed blocks between two instant snapshots to a customer's bucket in the user specified format.", - "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}/export", - "httpMethod": "POST", - "id": "compute.regionInstantSnapshots.export", - "parameterOrder": [ - "project", - "region", - "instantSnapshot" - ], - "parameters": { - "instantSnapshot": { - "description": "Name of the instant snapshot to export.", - "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 zone 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}/export", - "request": { - "$ref": "RegionInstantSnapshotsExportRequest" - }, - "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}", @@ -26734,7 +27881,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -26771,7 +27918,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" } @@ -26931,6 +28078,54 @@ }, "regionNetworkEndpointGroups": { "methods": { + "attachNetworkEndpoints": { + "description": "Attach a list of network endpoints to the specified network endpoint group.", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "httpMethod": "POST", + "id": "compute.regionNetworkEndpointGroups.attachNetworkEndpoints", + "parameterOrder": [ + "project", + "region", + "networkEndpointGroup" + ], + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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 where you want to create the network endpoint group. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "request": { + "$ref": "RegionNetworkEndpointGroupsAttachEndpointsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "delete": { "description": "Deletes the specified network endpoint group. Note that the NEG cannot be deleted if it is configured as a backend of a backend service.", "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", @@ -26976,8 +28171,56 @@ "https://www.googleapis.com/auth/compute" ] }, + "detachNetworkEndpoints": { + "description": "Detach the network endpoint from the specified network endpoint group.", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "httpMethod": "POST", + "id": "compute.regionNetworkEndpointGroups.detachNetworkEndpoints", + "parameterOrder": [ + "project", + "region", + "networkEndpointGroup" + ], + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group you are detaching network endpoints from. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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 where the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "request": { + "$ref": "RegionNetworkEndpointGroupsDetachEndpointsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "get": { - "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.", + "description": "Returns the specified network endpoint group.", "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", "httpMethod": "GET", "id": "compute.regionNetworkEndpointGroups.get", @@ -27069,7 +28312,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -27105,7 +28348,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" } @@ -27119,6 +28362,75 @@ "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] + }, + "listNetworkEndpoints": { + "description": "Lists the network endpoints in the specified network endpoint group.", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "httpMethod": "POST", + "id": "compute.regionNetworkEndpointGroups.listNetworkEndpoints", + "parameterOrder": [ + "project", + "region", + "networkEndpointGroup" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" + }, + "networkEndpointGroup": { + "description": "The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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 where the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "response": { + "$ref": "NetworkEndpointGroupsListNetworkEndpoints" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] } } }, @@ -27135,6 +28447,12 @@ "firewallPolicy" ], "parameters": { + "associatedPolicyToBeReplaced": { + "description": "Name of the firewall policy associated with the target network to swap association with. This field is mutually exclusive with 'replace_existing_association'.", + "location": "query", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string" + }, "firewallPolicy": { "description": "Name of the firewall policy to update.", "location": "path", @@ -27624,7 +28942,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -27661,7 +28979,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" } @@ -27726,6 +29044,56 @@ "https://www.googleapis.com/auth/compute" ] }, + "patchAssociation": { + "description": "Updates an association for the specified network firewall policy.", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/patchAssociation", + "httpMethod": "POST", + "id": "compute.regionNetworkFirewallPolicies.patchAssociation", + "parameterOrder": [ + "project", + "region", + "firewallPolicy" + ], + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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}/firewallPolicies/{firewallPolicy}/patchAssociation", + "request": { + "$ref": "FirewallPolicyAssociation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "patchRule": { "description": "Patches a rule of the specified priority.", "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/patchRule", @@ -27992,7 +29360,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -28027,9 +29395,15 @@ "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/notificationEndpoints", @@ -28185,7 +29559,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -28222,7 +29596,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" } @@ -28380,7 +29754,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -28417,7 +29791,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" } @@ -28726,7 +30100,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -28763,7 +30137,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" } @@ -28779,7 +30153,7 @@ ] }, "patch": { - "description": "Patches the specified policy with the data included in the request. To clear fields in the rule, 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.", + "description": "Patches the specified policy with the data included in the request. To clear fields in the policy, leave the fields empty and specify them in the updateMask. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead.", "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", "httpMethod": "PATCH", "id": "compute.regionSecurityPolicies.patch", @@ -28951,6 +30325,482 @@ } } }, + "regionSnapshotSettings": { + "methods": { + "get": { + "description": "Get region snapshot settings.", + "flatPath": "projects/{project}/regions/{region}/snapshotSettings", + "httpMethod": "GET", + "id": "compute.regionSnapshotSettings.get", + "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" + } + }, + "path": "projects/{project}/regions/{region}/snapshotSettings", + "response": { + "$ref": "SnapshotSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patch region snapshot settings.", + "flatPath": "projects/{project}/regions/{region}/snapshotSettings", + "httpMethod": "PATCH", + "id": "compute.regionSnapshotSettings.patch", + "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" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/snapshotSettings", + "request": { + "$ref": "SnapshotSettings" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "regionSnapshots": { + "methods": { + "delete": { + "description": "Deletes the specified Snapshot resource. Keep in mind that deleting a single snapshot might not necessarily delete all the data on that snapshot. If any data on the snapshot that is marked for deletion is needed for subsequent snapshots, the data will be moved to the next corresponding snapshot. For more information, see Deleting snapshots.", + "flatPath": "projects/{project}/regions/{region}/snapshots/{snapshot}", + "httpMethod": "DELETE", + "id": "compute.regionSnapshots.delete", + "parameterOrder": [ + "project", + "region", + "snapshot" + ], + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "snapshot": { + "description": "Name of the snapshot resource to delete.", + "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}/snapshots/{snapshot}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified Snapshot resource.", + "flatPath": "projects/{project}/regions/{region}/snapshots/{snapshot}", + "httpMethod": "GET", + "id": "compute.regionSnapshots.get", + "parameterOrder": [ + "project", + "region", + "snapshot" + ], + "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" + }, + "snapshot": { + "description": "Name of the Snapshot 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" + } + }, + "path": "projects/{project}/regions/{region}/snapshots/{snapshot}", + "response": { + "$ref": "Snapshot" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "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}/snapshots/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.regionSnapshots.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}/snapshots/{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 a snapshot in the specified region using the data included in the request.", + "flatPath": "projects/{project}/regions/{region}/snapshots", + "httpMethod": "POST", + "id": "compute.regionSnapshots.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}/snapshots", + "request": { + "$ref": "Snapshot" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves the list of Snapshot resources contained within the specified region.", + "flatPath": "projects/{project}/regions/{region}/snapshots", + "httpMethod": "GET", + "id": "compute.regionSnapshots.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}/snapshots", + "response": { + "$ref": "SnapshotList" + }, + "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}/snapshots/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.regionSnapshots.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}/snapshots/{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 regional snapshot. To learn more about labels, read the Labeling Resources documentation.", + "flatPath": "projects/{project}/regions/{region}/snapshots/{resource}/setLabels", + "httpMethod": "POST", + "id": "compute.regionSnapshots.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}/snapshots/{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}/snapshots/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.regionSnapshots.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}/snapshots/{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" + ] + } + } + }, "regionSslCertificates": { "methods": { "delete": { @@ -29096,7 +30946,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -29133,7 +30983,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" } @@ -29339,7 +31189,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -29376,7 +31226,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" } @@ -29402,7 +31252,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -29439,7 +31289,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" } @@ -29601,7 +31451,7 @@ ] }, "get": { - "description": "Returns the specified TargetHttpProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.", + "description": "Returns the specified TargetHttpProxy resource in the specified region.", "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", "httpMethod": "GET", "id": "compute.regionTargetHttpProxies.get", @@ -29696,7 +31546,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -29733,7 +31583,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" } @@ -29896,7 +31746,7 @@ ] }, "get": { - "description": "Returns the specified TargetHttpsProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.", + "description": "Returns the specified TargetHttpsProxy resource in the specified region.", "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", "httpMethod": "GET", "id": "compute.regionTargetHttpsProxies.get", @@ -29991,7 +31841,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -30028,7 +31878,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" } @@ -30386,7 +32236,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -30423,7 +32273,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" } @@ -30536,7 +32386,7 @@ ] }, "get": { - "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.", + "description": "Returns the specified UrlMap resource.", "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", "httpMethod": "GET", "id": "compute.regionUrlMaps.get", @@ -30681,7 +32531,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -30718,7 +32568,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" } @@ -30926,10 +32776,77 @@ } } }, + "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": { - "description": "Returns the specified Region resource. Gets a list of available regions by making a list() request. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the `quotas` field). To exclude one or more fields, set your request's `fields` query parameter to only include the fields you need. For example, to only include the `id` and `selfLink` fields, add the query parameter `?fields=id,selfLink` to your request.", + "description": "Returns the specified Region resource. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the `quotas` field). To exclude one or more fields, set your request's `fields` query parameter to only include the fields you need. For example, to only include the `id` and `selfLink` fields, add the query parameter `?fields=id,selfLink` to your request.", "flatPath": "projects/{project}/regions/{region}", "httpMethod": "GET", "id": "compute.regions.get", @@ -30973,7 +32890,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -31003,7 +32920,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" } @@ -31023,7 +32940,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", @@ -31032,7 +32949,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -31067,9 +32984,15 @@ "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/reservations", @@ -31274,7 +33197,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -31304,7 +33227,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" }, @@ -31533,7 +33456,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", @@ -31542,7 +33465,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -31577,9 +33500,15 @@ "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/resourcePolicies", @@ -31784,7 +33713,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -31821,7 +33750,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" } @@ -31993,7 +33922,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", @@ -32002,7 +33931,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -32037,9 +33966,15 @@ "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/routers", @@ -32099,8 +34034,112 @@ "https://www.googleapis.com/auth/compute" ] }, + "deleteNamedSet": { + "description": "Deletes Named Set", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/deleteNamedSet", + "httpMethod": "POST", + "id": "compute.routers.deleteNamedSet", + "parameterOrder": [ + "project", + "region", + "router" + ], + "parameters": { + "namedSet": { + "description": "The Named Set name for this request. Name must conform to RFC1035", + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "router": { + "description": "Name of the Router resource where Named Set is defined.", + "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}/routers/{router}/deleteNamedSet", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "deleteRoutePolicy": { + "description": "Deletes Route Policy", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/deleteRoutePolicy", + "httpMethod": "POST", + "id": "compute.routers.deleteRoutePolicy", + "parameterOrder": [ + "project", + "region", + "router" + ], + "parameters": { + "policy": { + "description": "The Policy name for this request. Name must conform to RFC1035", + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "router": { + "description": "Name of the Router resource where Route Policy is defined.", + "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}/routers/{router}/deleteRoutePolicy", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "get": { - "description": "Returns the specified Router resource. Gets a list of available routers by making a list() request.", + "description": "Returns the specified Router resource.", "flatPath": "projects/{project}/regions/{region}/routers/{router}", "httpMethod": "GET", "id": "compute.routers.get", @@ -32142,6 +34181,100 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "getNamedSet": { + "description": "Returns specified Named Set", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNamedSet", + "httpMethod": "GET", + "id": "compute.routers.getNamedSet", + "parameterOrder": [ + "project", + "region", + "router" + ], + "parameters": { + "namedSet": { + "description": "The Named Set name for this request. Name must conform to RFC1035", + "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" + }, + "router": { + "description": "Name of the Router resource to query for the named set. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/routers/{router}/getNamedSet", + "response": { + "$ref": "RoutersGetNamedSetResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getNatIpInfo": { + "description": "Retrieves runtime NAT IP information.", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatIpInfo", + "httpMethod": "GET", + "id": "compute.routers.getNatIpInfo", + "parameterOrder": [ + "project", + "region", + "router" + ], + "parameters": { + "natName": { + "description": "Name of the nat service to filter the NAT IP information. If it is omitted, all nats for this router will be returned. Name should conform to RFC1035.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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" + }, + "router": { + "description": "Name of the Router resource to query for Nat IP information. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/routers/{router}/getNatIpInfo", + "response": { + "$ref": "NatIpInfoResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "getNatMappingInfo": { "description": "Retrieves runtime Nat mapping information of VM endpoints.", "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo", @@ -32154,7 +34287,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -32196,7 +34329,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" }, @@ -32218,6 +34351,53 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "getRoutePolicy": { + "description": "Returns specified Route Policy", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/getRoutePolicy", + "httpMethod": "GET", + "id": "compute.routers.getRoutePolicy", + "parameterOrder": [ + "project", + "region", + "router" + ], + "parameters": { + "policy": { + "description": "The Policy name for this request. Name must conform to RFC1035", + "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" + }, + "router": { + "description": "Name of the Router resource to query for the route policy. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/routers/{router}/getRoutePolicy", + "response": { + "$ref": "RoutersGetRoutePolicyResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "getRouterStatus": { "description": "Retrieves runtime information of the specified router.", "flatPath": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus", @@ -32314,7 +34494,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -32351,7 +34531,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" } @@ -32366,6 +34546,267 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "listBgpRoutes": { + "description": "Retrieves a list of router bgp routes available to the specified project.", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/listBgpRoutes", + "httpMethod": "GET", + "id": "compute.routers.listBgpRoutes", + "parameterOrder": [ + "project", + "region", + "router" + ], + "parameters": { + "addressFamily": { + "default": "UNSPECIFIED_IP_VERSION", + "description": "(Required) limit results to this address family (either IPv4 or IPv6)", + "enum": [ + "IPV4", + "IPV6", + "UNSPECIFIED_IP_VERSION" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "location": "query", + "type": "string" + }, + "destinationPrefix": { + "description": "Limit results to destinations that are subnets of this CIDR range", + "location": "query", + "type": "string" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" + }, + "peer": { + "description": "(Required) limit results to the BGP peer with the given name. Name should conform to RFC1035.", + "location": "query", + "type": "string" + }, + "policyApplied": { + "default": "true", + "description": "When true, the method returns post-policy routes. Otherwise, it returns pre-policy routes.", + "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" + }, + "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" + }, + "routeType": { + "default": "UNSPECIFIED_ROUTE_TYPE", + "description": "(Required) limit results to this type of route (either LEARNED or ADVERTISED)", + "enum": [ + "ADVERTISED", + "LEARNED", + "UNSPECIFIED_ROUTE_TYPE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "location": "query", + "type": "string" + }, + "router": { + "description": "Name or id of the resource for this request. Name should conform to RFC1035.", + "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}/routers/{router}/listBgpRoutes", + "response": { + "$ref": "RoutersListBgpRoutes" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "listNamedSets": { + "description": "Retrieves a list of router named set subresources available to the specified project.", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/listNamedSets", + "httpMethod": "GET", + "id": "compute.routers.listNamedSets", + "parameterOrder": [ + "project", + "region", + "router" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" + }, + "router": { + "description": "Name or id of the resource for this request. Name should conform to RFC1035.", + "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}/routers/{router}/listNamedSets", + "response": { + "$ref": "RoutersListNamedSets" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "listRoutePolicies": { + "description": "Retrieves a list of router route policy subresources available to the specified project.", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/listRoutePolicies", + "httpMethod": "GET", + "id": "compute.routers.listRoutePolicies", + "parameterOrder": [ + "project", + "region", + "router" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" + }, + "router": { + "description": "Name or id of the resource for this request. Name should conform to RFC1035.", + "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}/routers/{router}/listRoutePolicies", + "response": { + "$ref": "RoutersListRoutePolicies" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "patch": { "description": "Patches the specified Router resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.", "flatPath": "projects/{project}/regions/{region}/routers/{router}", @@ -32557,6 +34998,106 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] + }, + "updateNamedSet": { + "description": "Updates or creates new Named Set", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/updateNamedSet", + "httpMethod": "POST", + "id": "compute.routers.updateNamedSet", + "parameterOrder": [ + "project", + "region", + "router" + ], + "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" + }, + "router": { + "description": "Name of the Router resource where Named Set is defined.", + "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}/routers/{router}/updateNamedSet", + "request": { + "$ref": "NamedSet" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "updateRoutePolicy": { + "description": "Updates or creates new Route Policy", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/updateRoutePolicy", + "httpMethod": "POST", + "id": "compute.routers.updateRoutePolicy", + "parameterOrder": [ + "project", + "region", + "router" + ], + "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" + }, + "router": { + "description": "Name of the Router resource where Route Policy is defined.", + "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}/routers/{router}/updateRoutePolicy", + "request": { + "$ref": "RoutePolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, @@ -32602,7 +35143,7 @@ ] }, "get": { - "description": "Returns the specified Route resource. Gets a list of available routes by making a list() request.", + "description": "Returns the specified Route resource.", "flatPath": "projects/{project}/global/routes/{route}", "httpMethod": "GET", "id": "compute.routes.get", @@ -32680,7 +35221,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -32710,7 +35251,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" } @@ -32810,7 +35351,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", @@ -32819,7 +35360,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -32854,9 +35395,15 @@ "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/securityPolicies", @@ -33033,7 +35580,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -33063,7 +35610,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" } @@ -33088,7 +35635,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -33118,7 +35665,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" } @@ -33134,7 +35681,7 @@ ] }, "patch": { - "description": "Patches the specified policy with the data included in the request. To clear fields in the rule, 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.", + "description": "Patches the specified policy with the data included in the request. To clear fields in the policy, leave the fields empty and specify them in the updateMask. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead.", "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", "httpMethod": "PATCH", "id": "compute.securityPolicies.patch", @@ -33187,7 +35734,7 @@ ] }, "patchRule": { - "description": "Patches a rule at the specified priority.", + "description": "Patches a rule at the specified priority. To clear fields in the rule, leave the fields empty and specify them in the updateMask.", "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule", "httpMethod": "POST", "id": "compute.securityPolicies.patchRule", @@ -33216,6 +35763,12 @@ "required": true, "type": "string" }, + "updateMask": { + "description": "Indicates fields to be cleared as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, "validateOnly": { "description": "If true, the request will not be committed.", "location": "query", @@ -33354,7 +35907,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", @@ -33363,7 +35916,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -33398,9 +35951,15 @@ "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/serviceAttachments", @@ -33605,7 +36164,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -33642,7 +36201,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" } @@ -33798,8 +36357,145 @@ } } }, + "snapshotSettings": { + "methods": { + "get": { + "description": "Get snapshot settings.", + "flatPath": "projects/{project}/global/snapshotSettings", + "httpMethod": "GET", + "id": "compute.snapshotSettings.get", + "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" + } + }, + "path": "projects/{project}/global/snapshotSettings", + "response": { + "$ref": "SnapshotSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patch snapshot settings.", + "flatPath": "projects/{project}/global/snapshotSettings", + "httpMethod": "PATCH", + "id": "compute.snapshotSettings.patch", + "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" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/snapshotSettings", + "request": { + "$ref": "SnapshotSettings" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, "snapshots": { "methods": { + "aggregatedList": { + "description": "Retrieves an aggregated list of all of the snapshots in your project across all regions and global scope. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/snapshots", + "httpMethod": "GET", + "id": "compute.snapshots.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/snapshots", + "response": { + "$ref": "SnapshotAggregatedList" + }, + "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 Snapshot resource. Keep in mind that deleting a single snapshot might not necessarily delete all the data on that snapshot. If any data on the snapshot that is marked for deletion is needed for subsequent snapshots, the data will be moved to the next corresponding snapshot. For more information, see Deleting snapshots.", "flatPath": "projects/{project}/global/snapshots/{snapshot}", @@ -33840,7 +36536,7 @@ ] }, "get": { - "description": "Returns the specified Snapshot resource. Gets a list of available snapshots by making a list() request.", + "description": "Returns the specified Snapshot resource.", "flatPath": "projects/{project}/global/snapshots/{snapshot}", "httpMethod": "GET", "id": "compute.snapshots.get", @@ -33959,7 +36655,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -33989,7 +36685,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" } @@ -34121,7 +36817,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", @@ -34130,7 +36826,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -34165,9 +36861,15 @@ "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/sslCertificates", @@ -34220,7 +36922,7 @@ ] }, "get": { - "description": "Returns the specified SslCertificate resource. Gets a list of available SSL certificates by making a list() request.", + "description": "Returns the specified SslCertificate resource.", "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}", "httpMethod": "GET", "id": "compute.sslCertificates.get", @@ -34298,7 +37000,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -34328,7 +37030,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" } @@ -34386,7 +37088,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", @@ -34395,7 +37097,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -34430,9 +37132,15 @@ "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/sslPolicies", @@ -34518,7 +37226,7 @@ ] }, "insert": { - "description": "Returns the specified SSL policy resource. Gets a list of available SSL policies by making a list() request.", + "description": "Returns the specified SSL policy resource.", "flatPath": "projects/{project}/global/sslPolicies", "httpMethod": "POST", "id": "compute.sslPolicies.insert", @@ -34561,7 +37269,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -34591,7 +37299,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" } @@ -34616,7 +37324,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -34646,7 +37354,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" } @@ -34742,19 +37450,19 @@ } } }, - "subnetworks": { + "storagePoolTypes": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of subnetworks.", - "flatPath": "projects/{project}/aggregated/subnetworks", + "description": "Retrieves an aggregated list of storage pool types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/storagePoolTypes", "httpMethod": "GET", - "id": "compute.subnetworks.aggregatedList", + "id": "compute.storagePoolTypes.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. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -34789,9 +37497,772 @@ "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/storagePoolTypes", + "response": { + "$ref": "StoragePoolTypeAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "get": { + "description": "Returns the specified storage pool type.", + "flatPath": "projects/{project}/zones/{zone}/storagePoolTypes/{storagePoolType}", + "httpMethod": "GET", + "id": "compute.storagePoolTypes.get", + "parameterOrder": [ + "project", + "zone", + "storagePoolType" + ], + "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" + }, + "storagePoolType": { + "description": "Name of the storage pool type 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" + }, + "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}/storagePoolTypes/{storagePoolType}", + "response": { + "$ref": "StoragePoolType" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "description": "Retrieves a list of storage pool types available to the specified project.", + "flatPath": "projects/{project}/zones/{zone}/storagePoolTypes", + "httpMethod": "GET", + "id": "compute.storagePoolTypes.list", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" + }, + "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" + } + }, + "path": "projects/{project}/zones/{zone}/storagePoolTypes", + "response": { + "$ref": "StoragePoolTypeList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "storagePools": { + "methods": { + "aggregatedList": { + "description": "Retrieves an aggregated list of storage pools. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/storagePools", + "httpMethod": "GET", + "id": "compute.storagePools.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/storagePools", + "response": { + "$ref": "StoragePoolAggregatedList" + }, + "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 storage pool. Deleting a storagePool removes its data permanently and is irreversible. However, deleting a storagePool does not delete any snapshots previously made from the storagePool. You must separately delete snapshots.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "httpMethod": "DELETE", + "id": "compute.storagePools.delete", + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "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" + }, + "storagePool": { + "description": "Name of the storage pool to delete.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns a specified storage pool. Gets a list of available storage pools by making a list() request.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "httpMethod": "GET", + "id": "compute.storagePools.get", + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "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" + }, + "storagePool": { + "description": "Name of the storage pool 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" + }, + "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}/storagePools/{storagePool}", + "response": { + "$ref": "StoragePool" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "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}/storagePools/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.storagePools.getIamPolicy", + "parameterOrder": [ + "project", + "zone", + "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" + }, + "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}/storagePools/{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 a storage pool in the specified project using the data in the request.", + "flatPath": "projects/{project}/zones/{zone}/storagePools", + "httpMethod": "POST", + "id": "compute.storagePools.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" + }, + "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}/storagePools", + "request": { + "$ref": "StoragePool" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves a list of storage pools contained within the specified zone.", + "flatPath": "projects/{project}/zones/{zone}/storagePools", + "httpMethod": "GET", + "id": "compute.storagePools.list", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" + }, + "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" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools", + "response": { + "$ref": "StoragePoolList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "listDisks": { + "description": "Lists the disks in a specified storage pool.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}/listDisks", + "httpMethod": "GET", + "id": "compute.storagePools.listDisks", + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "storagePool": { + "description": "Name of the storage pool to list disks of.", + "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}/storagePools/{storagePool}/listDisks", + "response": { + "$ref": "StoragePoolListDisks" + }, + "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}/zones/{zone}/storagePools/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.storagePools.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}/storagePools/{resource}/setIamPolicy", + "request": { + "$ref": "ZoneSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setLabels": { + "description": "Sets the labels on a storage pools. To learn more about labels, read the Labeling Resources documentation.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{resource}/setLabels", + "httpMethod": "POST", + "id": "compute.storagePools.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}/storagePools/{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}/storagePools/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.storagePools.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}/storagePools/{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" + ] + }, + "update": { + "description": "Updates the specified storagePool with the data included in the request. The update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: size_tb and provisioned_iops.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "httpMethod": "PATCH", + "id": "compute.storagePools.update", + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "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" + }, + "storagePool": { + "description": "The storagePool 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" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "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}/storagePools/{storagePool}", + "request": { + "$ref": "StoragePool" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "subnetworks": { + "methods": { + "aggregatedList": { + "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", + "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/subnetworks", @@ -34902,7 +38373,7 @@ ] }, "get": { - "description": "Returns the specified subnetwork. Gets a list of available subnetworks list() request.", + "description": "Returns the specified subnetwork.", "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", "httpMethod": "GET", "id": "compute.subnetworks.get", @@ -35046,7 +38517,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -35083,7 +38554,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" } @@ -35108,7 +38579,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -35138,7 +38609,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" }, @@ -35477,7 +38948,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -35507,7 +38978,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" } @@ -35607,7 +39078,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", @@ -35616,7 +39087,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -35651,9 +39122,15 @@ "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/targetHttpProxies", @@ -35706,7 +39183,7 @@ ] }, "get": { - "description": "Returns the specified TargetHttpProxy resource. Gets a list of available target HTTP proxies by making a list() request.", + "description": "Returns the specified TargetHttpProxy resource.", "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", "httpMethod": "GET", "id": "compute.targetHttpProxies.get", @@ -35784,7 +39261,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -35814,7 +39291,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" } @@ -35956,7 +39433,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", @@ -35965,7 +39442,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -36000,9 +39477,15 @@ "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/targetHttpsProxies", @@ -36055,7 +39538,7 @@ ] }, "get": { - "description": "Returns the specified TargetHttpsProxy resource. Gets a list of available target HTTPS proxies by making a list() request.", + "description": "Returns the specified TargetHttpsProxy resource.", "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", "httpMethod": "GET", "id": "compute.targetHttpsProxies.get", @@ -36133,7 +39616,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -36163,7 +39646,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" } @@ -36470,7 +39953,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", @@ -36479,7 +39962,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -36514,9 +39997,15 @@ "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/targetInstances", @@ -36577,7 +40066,7 @@ ] }, "get": { - "description": "Returns the specified TargetInstance resource. Gets a list of available target instances by making a list() request.", + "description": "Returns the specified TargetInstance resource.", "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", "httpMethod": "GET", "id": "compute.targetInstances.get", @@ -36672,7 +40161,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -36702,7 +40191,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" }, @@ -36724,6 +40213,55 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "setSecurityPolicy": { + "description": "Sets the Google Cloud Armor security policy for the specified target instance. For more information, see Google Cloud Armor Overview", + "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}/setSecurityPolicy", + "httpMethod": "POST", + "id": "compute.targetInstances.setSecurityPolicy", + "parameterOrder": [ + "project", + "zone", + "targetInstance" + ], + "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" + }, + "targetInstance": { + "description": "Name of the TargetInstance resource to which the security policy should be set. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}/setSecurityPolicy", + "request": { + "$ref": "SecurityPolicyReference" + }, + "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}/targetInstances/{resource}/testIamPermissions", @@ -36875,7 +40413,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", @@ -36884,7 +40422,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -36919,9 +40457,15 @@ "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/targetPools", @@ -36982,7 +40526,7 @@ ] }, "get": { - "description": "Returns the specified target pool. Gets a list of available target pools by making a list() request.", + "description": "Returns the specified target pool.", "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}", "httpMethod": "GET", "id": "compute.targetPools.get", @@ -37123,7 +40667,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -37160,7 +40704,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" } @@ -37331,6 +40875,55 @@ "https://www.googleapis.com/auth/compute" ] }, + "setSecurityPolicy": { + "description": "Sets the Google Cloud Armor security policy for the specified target pool. For more information, see Google Cloud Armor Overview", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/setSecurityPolicy", + "httpMethod": "POST", + "id": "compute.targetPools.setSecurityPolicy", + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "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 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" + }, + "targetPool": { + "description": "Name of the TargetPool resource to which the security policy should be set. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setSecurityPolicy", + "request": { + "$ref": "SecurityPolicyReference" + }, + "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}/targetPools/{resource}/testIamPermissions", @@ -37421,7 +41014,7 @@ ] }, "get": { - "description": "Returns the specified TargetSslProxy resource. Gets a list of available target SSL proxies by making a list() request.", + "description": "Returns the specified TargetSslProxy resource.", "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}", "httpMethod": "GET", "id": "compute.targetSslProxies.get", @@ -37499,7 +41092,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -37529,7 +41122,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" } @@ -37712,7 +41305,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", @@ -37795,7 +41388,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", @@ -37804,7 +41397,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -37839,9 +41432,15 @@ "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/targetTcpProxies", @@ -37894,7 +41493,7 @@ ] }, "get": { - "description": "Returns the specified TargetTcpProxy resource. Gets a list of available target TCP proxies by making a list() request.", + "description": "Returns the specified TargetTcpProxy resource.", "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", "httpMethod": "GET", "id": "compute.targetTcpProxies.get", @@ -37972,7 +41571,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -38002,7 +41601,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" } @@ -38144,7 +41743,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", @@ -38153,7 +41752,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -38188,9 +41787,15 @@ "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/targetVpnGateways", @@ -38251,7 +41856,7 @@ ] }, "get": { - "description": "Returns the specified target VPN gateway. Gets a list of available target VPN gateways by making a list() request.", + "description": "Returns the specified target VPN gateway.", "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", "httpMethod": "GET", "id": "compute.targetVpnGateways.get", @@ -38346,7 +41951,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -38383,7 +41988,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" } @@ -38499,7 +42104,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", @@ -38508,7 +42113,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -38543,9 +42148,15 @@ "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/urlMaps", @@ -38598,7 +42209,7 @@ ] }, "get": { - "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.", + "description": "Returns the specified UrlMap resource.", "flatPath": "projects/{project}/global/urlMaps/{urlMap}", "httpMethod": "GET", "id": "compute.urlMaps.get", @@ -38718,7 +42329,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -38748,7 +42359,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" } @@ -38927,7 +42538,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", @@ -38936,7 +42547,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -38971,9 +42582,15 @@ "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/vpnGateways", @@ -39034,7 +42651,7 @@ ] }, "get": { - "description": "Returns the specified VPN gateway. Gets a list of available VPN gateways by making a list() request.", + "description": "Returns the specified VPN gateway.", "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", "httpMethod": "GET", "id": "compute.vpnGateways.get", @@ -39172,7 +42789,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -39209,7 +42826,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" } @@ -39325,7 +42942,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", @@ -39334,7 +42951,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -39369,9 +42986,15 @@ "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/vpnTunnels", @@ -39432,7 +43055,7 @@ ] }, "get": { - "description": "Returns the specified VpnTunnel resource. Gets a list of available VPN tunnels by making a list() request.", + "description": "Returns the specified VpnTunnel resource.", "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", "httpMethod": "GET", "id": "compute.vpnTunnels.get", @@ -39527,7 +43150,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -39564,7 +43187,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" } @@ -39772,7 +43395,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -39802,7 +43425,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" }, @@ -39872,7 +43495,7 @@ "zoneQueuedResources": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of all of the queued resources in a project across all zones.", + "description": "Retrieves an aggregated list of all of the queued resources in a project across all zones. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/queuedResources", "httpMethod": "GET", "id": "compute.zoneQueuedResources.aggregatedList", @@ -39881,7 +43504,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -39916,9 +43539,15 @@ "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/queuedResources", @@ -40119,7 +43748,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -40149,7 +43778,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" }, @@ -40176,7 +43805,7 @@ "zones": { "methods": { "get": { - "description": "Returns the specified Zone resource. Gets a list of available zones by making a list() request.", + "description": "Returns the specified Zone resource.", "flatPath": "projects/{project}/zones/{zone}", "httpMethod": "GET", "id": "compute.zones.get", @@ -40220,7 +43849,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -40250,7 +43879,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" } @@ -40268,7 +43897,7 @@ } } }, - "revision": "20230103", + "revision": "20240220", "rootUrl": "https://compute.googleapis.com/", "schemas": { "AWSV4Signature": { @@ -40412,6 +44041,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -40430,6 +44060,36 @@ "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.", @@ -40441,6 +44101,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -40532,6 +44193,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -40550,6 +44212,36 @@ "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.", @@ -40561,6 +44253,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -40634,6 +44327,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -40652,6 +44346,36 @@ "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.", @@ -40663,6 +44387,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -40715,11 +44440,11 @@ "id": "AccessConfig", "properties": { "externalIpv6": { - "description": "The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.", + "description": "Applies to ipv6AccessConfigs only. The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.", "type": "string" }, "externalIpv6PrefixLength": { - "description": "The prefix length of the external IPv6 range.", + "description": "Applies to ipv6AccessConfigs only. The prefix length of the external IPv6 range.", "format": "int32", "type": "integer" }, @@ -40729,11 +44454,11 @@ "type": "string" }, "name": { - "description": "The name of this access configuration. The default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access.", + "description": "The name of this access configuration. In accessConfigs (IPv4), the default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access. In ipv6AccessConfigs, the recommend name is External IPv6.", "type": "string" }, "natIP": { - "description": "An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.", + "description": "Applies to accessConfigs (IPv4) only. An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.", "type": "string" }, "networkTier": { @@ -40775,8 +44500,7 @@ "type": "boolean" }, "type": { - "default": "ONE_TO_ONE_NAT", - "description": "The type of configuration. The default and only option is ONE_TO_ONE_NAT.", + "description": "The type of configuration. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is DIRECT_IPV6.", "enum": [ "DIRECT_IPV6", "ONE_TO_ONE_NAT" @@ -40828,7 +44552,7 @@ "type": "string" }, "ipVersion": { - "description": "The IP version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.", + "description": "The IP version that will be used by this address. Valid options are IPV4 or IPV6.", "enum": [ "IPV4", "IPV6", @@ -41022,6 +44746,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -41040,6 +44765,36 @@ "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.", @@ -41051,6 +44806,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -41142,6 +44898,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -41160,6 +44917,36 @@ "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.", @@ -41171,6 +44958,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -41244,6 +45032,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -41262,6 +45051,36 @@ "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.", @@ -41273,6 +45092,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -41332,6 +45152,10 @@ "description": "Whether to enable UEFI networking for instance creation.", "type": "boolean" }, + "enableWatchdogTimer": { + "description": "Whether to enable the watchdog timer.", + "type": "boolean" + }, "numaNodeCount": { "description": "The number of vNUMA nodes.", "format": "int32", @@ -41402,9 +45226,9 @@ "vmFamily": { "description": "The VM family that all instances scheduled against this reservation must belong to.", "enum": [ - "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P", - "VM_FAMILY_GENERAL_PURPOSE_T2D", - "VM_FAMILY_MEMORY_OPTIMIZED_M3" + "VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L", + "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP", + "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P" ], "enumDescriptions": [ "", @@ -41412,6 +45236,20 @@ "" ], "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" @@ -41522,10 +45360,14 @@ "maintenanceInterval": { "description": "Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`.", "enum": [ - "PERIODIC" + "AS_NEEDED", + "PERIODIC", + "RECURRENT" ], "enumDescriptions": [ - "VMs receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean a VM will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available." + "VMs are eligible to receive infrastructure and hypervisor updates as they become available. This may result in more maintenance operations (live migrations or terminations) for the VM than the PERIODIC and RECURRENT options.", + "VMs receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean a VM will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available.", + "VMs receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean a VM will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available. RECURRENT is used for GEN3 and Slice of Hardware VMs." ], "type": "string" }, @@ -41744,6 +45586,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" + }, "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. Guest OS features are applied by merging initializeParams.guestOsFeatures and disks.guestOsFeatures", "items": { @@ -41752,6 +45598,7 @@ "type": "array" }, "interface": { + "deprecated": true, "description": "[Deprecated] Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI.", "enum": [ "NVME", @@ -41811,12 +45658,12 @@ "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" }, "replicaZones": { - "description": "URLs of the zones where the disk should be replicated to. Only applicable for regional resources. Replica zones must have 1 zone same as the instance zone.", + "description": "Required for each regional disk associated with the instance. Specify the URLs of the zones where the disk should be replicated to. You must provide exactly two replica zones, and one zone must be the same as the instance zone.", "items": { "type": "string" }, @@ -41855,6 +45702,10 @@ "sourceSnapshotEncryptionKey": { "$ref": "CustomerEncryptionKey", "description": "The customer-supplied encryption key of the source snapshot." + }, + "storagePool": { + "description": "The storage pool in which the new disk is created. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /storagePools/storagePool - projects/project/zones/zone/storagePools/storagePool - zones/zone/storagePools/storagePool ", + "type": "string" } }, "type": "object" @@ -42141,6 +45992,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -42159,6 +46011,36 @@ "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.", @@ -42170,6 +46052,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -42261,6 +46144,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -42279,6 +46163,36 @@ "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.", @@ -42290,6 +46204,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -42421,6 +46336,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -42439,6 +46355,36 @@ "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.", @@ -42450,6 +46396,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -42502,7 +46449,7 @@ "id": "AutoscalingPolicy", "properties": { "coolDownPeriodSec": { - "description": "The number of seconds that the autoscaler waits before it starts collecting information from a new instance. This prevents the autoscaler from collecting information when the instance is initializing, during which the collected usage would not be reliable. The default time autoscaler waits is 60 seconds. Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process.", + "description": "The number of seconds that your application takes to initialize on a VM instance. This is referred to as the [initialization period](/compute/docs/autoscaler#cool_down_period). Specifying an accurate initialization period improves autoscaler decisions. For example, when scaling out, the autoscaler ignores data from VMs that are still initializing because those VMs might not yet represent normal usage of your application. The default initialization period is 60 seconds. Initialization periods might vary because of numerous factors. We recommend that you test how long your application takes to initialize. To do this, create a VM and time your application's startup process.", "format": "int32", "type": "integer" }, @@ -42532,7 +46479,7 @@ "type": "integer" }, "mode": { - "description": "Defines operating mode for this policy.", + "description": "Defines the operating mode for this policy. The following modes are available: - OFF: Disables the autoscaler but maintains its configuration. - ONLY_SCALE_OUT: Restricts the autoscaler to add VM instances only. - ON: Enables all autoscaler activities according to its policy. For more information, see \"Turning off or restricting an autoscaler\"", "enum": [ "OFF", "ON", @@ -42701,7 +46648,7 @@ "type": "string" }, "timeZone": { - "description": "The time zone to use when interpreting the schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database. This field is assigned a default value of \u201cUTC\u201d if left empty.", + "description": "The time zone to use when interpreting the schedule. The value of this field must be a time zone name from the tz database: https://en.wikipedia.org/wiki/Tz_database. This field is assigned a default value of \"UTC\" if left empty.", "type": "string" } }, @@ -42776,6 +46723,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" @@ -42809,7 +46770,7 @@ "type": "string" }, "customResponseHeaders": { - "description": "Headers that the HTTP/S load balancer should add to proxied responses.", + "description": "Headers that the Application Load Balancer should add to proxied responses.", "items": { "type": "string" }, @@ -43027,6 +46988,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -43045,6 +47007,36 @@ "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.", @@ -43056,6 +47048,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -43108,7 +47101,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" }, @@ -43143,7 +47136,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", @@ -43176,18 +47169,22 @@ "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.", "format": "byte", "type": "string" }, + "haPolicy": { + "$ref": "BackendServiceHAPolicy", + "description": "Configuring haPolicy is not supported." + }, "healthChecks": { "description": "The list of URLs to the healthChecks, httpHealthChecks (legacy), or httpsHealthChecks (legacy) resource for health checking this backend service. Not all backend services support legacy health checks. See Load balancer guide. Currently, at most one health check can be specified for each backend service. Backend services with instance group or zonal NEG backends must have a health check. Backend services with internet or serverless NEG backends must not have a health check.", "items": { @@ -43197,13 +47194,29 @@ }, "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.", "format": "uint64", "type": "string" }, + "ipAddressSelectionPolicy": { + "description": "Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED). ", + "enum": [ + "IPV4_ONLY", + "IPV6_ONLY", + "IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED", + "PREFER_IPV6" + ], + "enumDescriptions": [ + "Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.", + "Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.", + "Unspecified IP address selection policy.", + "Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address)." + ], + "type": "string" + }, "kind": { "default": "compute#backendService", "description": "[Output Only] Type of resource. Always compute#backendService for backend services.", @@ -43220,24 +47233,24 @@ "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.", "" ], "type": "string" }, "localityLbPolicies": { - "description": "A list of locality load balancing policies to be used in order of preference. Either the policy or the customPolicy field should be set. Overrides any value set in the localityLbPolicy field. localityLbPolicies is only supported when the BackendService is referenced by a URL Map that is referenced by a target gRPC proxy that has the validateForProxyless field set to true.", + "description": "A list of locality load-balancing policies to be used in order of preference. When you use localityLbPolicies, you must set at least one value for either the localityLbPolicies[].policy or the localityLbPolicies[].customPolicy field. localityLbPolicies overrides any value set in the localityLbPolicy field. For an example of how to use this field, see Define a list of preferred policies. Caution: This field and its children are intended for use in a service mesh that includes gRPC clients only. Envoy proxies can't use backend services that have this configuration.", "items": { "$ref": "BackendServiceLocalityLoadBalancingPolicyConfig" }, "type": "array" }, "localityLbPolicy": { - "description": "The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED. If sessionAffinity is not NONE, and this field is not set to MAGLEV or RING_HASH, session affinity settings will not take effect. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", + "description": "The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not NONE, and this field is not set to MAGLEV or RING_HASH, session affinity settings will not take effect. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", "enum": [ "INVALID_LB_POLICY", "LEAST_REQUEST", @@ -43268,6 +47281,13 @@ "$ref": "Duration", "description": "Specifies the default maximum duration (timeout) for streams to this service. Duration is computed from the beginning of the stream until the response has been completely processed, including all retries. A stream that does not complete in this duration is closed. If not specified, there will be no timeout limit, i.e. the maximum duration is infinite. This value can be overridden in the PathMatcher configuration of the UrlMap that references this backend service. This field is only allowed when the loadBalancingScheme of the backend service is INTERNAL_SELF_MANAGED." }, + "metadatas": { + "additionalProperties": { + "type": "string" + }, + "description": "Deployment metadata associated with the resource to be set by a GKE hub controller and read by the backend RCTH", + "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])?", @@ -43279,15 +47299,16 @@ }, "outlierDetection": { "$ref": "OutlierDetection", - "description": "Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. If not set, this feature is considered disabled. This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, HTTP2, or GRPC, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED. " + "description": "Settings controlling the ejection of unhealthy backend endpoints from the load balancing pool of each individual proxy instance that processes the traffic for the given backend service. If not set, this feature is considered disabled. Results of the outlier detection algorithm (ejection of endpoints from the load balancing pool and returning them back to the pool) are executed independently by each proxy instance of the load balancer. In most cases, more than one proxy instance handles the traffic received by a backend service. Thus, it is possible that an unhealthy endpoint is detected and ejected by only some of the proxies, and while this happens, other proxies may continue to send requests to the same unhealthy endpoint until they detect and eject the unhealthy endpoint. Applicable backend endpoints can be: - VM instances in an Instance Group - Endpoints in a Zonal NEG (GCE_VM_IP, GCE_VM_IP_PORT) - Endpoints in a Hybrid Connectivity NEG (NON_GCP_PRIVATE_IP_PORT) - Serverless NEGs, that resolve to Cloud Run, App Engine, or Cloud Functions Services - Private Service Connect NEGs, that resolve to Google-managed regional API endpoints or managed services published using Private Service Connect Applicable backend service types can be: - A global backend service with the loadBalancingScheme set to INTERNAL_SELF_MANAGED or EXTERNAL_MANAGED. - A regional backend service with the serviceProtocol set to HTTP, HTTPS, or HTTP2, and loadBalancingScheme set to INTERNAL_MANAGED or EXTERNAL_MANAGED. Not supported for Serverless NEGs. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true." }, "port": { - "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.", + "deprecated": true, + "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": { @@ -43344,7 +47365,7 @@ "type": "array" }, "serviceLbPolicy": { - "description": "URL to networkservices.ServiceLbPolicy resource. Can only be set if load balancing scheme is EXTERNAL, INTERNAL_MANAGED or INTERNAL_SELF_MANAGED. If used with a backend service, must reference a global policy. If used with a regional backend service, must reference a regional policy.", + "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": { @@ -43379,6 +47400,12 @@ "format": "int32", "type": "integer" }, + "usedBy": { + "items": { + "$ref": "BackendServiceUsedBy" + }, + "type": "array" + }, "vpcNetworkScope": { "description": "The network scope of the backends that can be added to the backend service. This field can be either GLOBAL_VPC_NETWORK or REGIONAL_VPC_NETWORK. A backend service with the VPC scope set to GLOBAL_VPC_NETWORK is only allowed to have backends in global VPC networks. When the VPC scope is set to REGIONAL_VPC_NETWORK the backend service is only allowed to have backends in regional networks in the same scope as the backend service. Note: if not specified then GLOBAL_VPC_NETWORK will be used.", "enum": [ @@ -43446,6 +47473,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -43464,6 +47492,36 @@ "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.", @@ -43475,6 +47533,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -43650,11 +47709,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" }, @@ -43676,7 +47735,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": { @@ -43684,7 +47743,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": { @@ -43720,12 +47779,58 @@ }, "type": "object" }, + "BackendServiceHAPolicy": { + "id": "BackendServiceHAPolicy", + "properties": { + "fastIPMove": { + "description": "Enabling fastIPMove is not supported.", + "enum": [ + "DISABLED", + "GARP_RA" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "leader": { + "$ref": "BackendServiceHAPolicyLeader", + "description": "Setting a leader is not supported." + } + }, + "type": "object" + }, + "BackendServiceHAPolicyLeader": { + "id": "BackendServiceHAPolicyLeader", + "properties": { + "backendGroup": { + "description": "Setting backendGroup is not supported.", + "type": "string" + }, + "networkEndpoint": { + "$ref": "BackendServiceHAPolicyLeaderNetworkEndpoint", + "description": "Setting a network endpoint as leader is not supported." + } + }, + "type": "object" + }, + "BackendServiceHAPolicyLeaderNetworkEndpoint": { + "id": "BackendServiceHAPolicyLeaderNetworkEndpoint", + "properties": { + "instance": { + "description": "Specifying the instance name of a leader is not supported.", + "type": "string" + } + }, + "type": "object" + }, "BackendServiceIAP": { "description": "Identity-Aware Proxy", "id": "BackendServiceIAP", "properties": { "enabled": { - "description": "Whether the serving infrastructure will authenticate and authorize all incoming requests. If true, the oauth2ClientId and oauth2ClientSecret fields must be non-empty.", + "description": "Whether the serving infrastructure will authenticate and authorize all incoming requests.", "type": "boolean" }, "oauth2ClientId": { @@ -43809,6 +47914,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -43827,6 +47933,36 @@ "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.", @@ -43838,6 +47974,159 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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" + }, + "BackendServiceListUsable": { + "description": "Contains a list of usable BackendService resources.", + "id": "BackendServiceListUsable", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of BackendService resources.", + "items": { + "$ref": "BackendService" + }, + "type": "array" + }, + "kind": { + "default": "compute#usableBackendServiceList", + "description": "[Output Only] Type of resource. Always compute#usableBackendServiceList for lists of usable backend services.", + "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.", @@ -43907,7 +48196,7 @@ "type": "string" }, "name": { - "description": "Identifies the custom policy. The value should match the type the custom implementation is registered with on the gRPC clients. It should follow protocol buffer message naming conventions and include the full path (e.g. myorg.CustomLbPolicy). The maximum length is 256 characters. Note that specifying the same custom policy more than once for a backend is not a valid configuration and will be rejected.", + "description": "Identifies the custom policy. The value should match the name of a custom implementation registered on the gRPC clients. It should follow protocol buffer message naming conventions and include the full path (for example, myorg.CustomLbPolicy). The maximum length is 256 characters. Do not specify the same custom policy more than once for a backend. If you do, the configuration is rejected. For an example of how to use this field, see Use a custom policy.", "type": "string" } }, @@ -43918,7 +48207,7 @@ "id": "BackendServiceLocalityLoadBalancingPolicyConfigPolicy", "properties": { "name": { - "description": "The name of a locality load balancer policy to be used. The value should be one of the predefined ones as supported by localityLbPolicy, although at the moment only ROUND_ROBIN is supported. This field should only be populated when the customPolicy field is not used. Note that specifying the same policy more than once for a backend is not a valid configuration and will be rejected.", + "description": "The name of a locality load-balancing policy. Valid values include ROUND_ROBIN and, for Java clients, LEAST_REQUEST. For information about these values, see the description of localityLbPolicy. Do not specify the same policy more than once for a backend. If you do, the configuration is rejected.", "enum": [ "INVALID_LB_POLICY", "LEAST_REQUEST", @@ -43953,6 +48242,7 @@ "type": "boolean" }, "optional": { + "deprecated": true, "description": "Deprecated in favor of optionalMode. This field can only be specified if logging is enabled for this backend service. Configures whether all, none or a subset of optional fields should be added to the reported logs. One of [INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM]. Default is EXCLUDE_ALL_OPTIONAL.", "enum": [ "CUSTOM", @@ -44008,6 +48298,15 @@ }, "type": "object" }, + "BackendServiceUsedBy": { + "id": "BackendServiceUsedBy", + "properties": { + "reference": { + "type": "string" + } + }, + "type": "object" + }, "BackendServicesScopedList": { "id": "BackendServicesScopedList", "properties": { @@ -44034,6 +48333,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -44052,6 +48352,36 @@ "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.", @@ -44063,6 +48393,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -44373,6 +48704,96 @@ }, "type": "object" }, + "BgpRoute": { + "id": "BgpRoute", + "properties": { + "asPaths": { + "description": "[Output only] AS-PATH for the route", + "items": { + "$ref": "BgpRouteAsPath" + }, + "type": "array" + }, + "communities": { + "description": "[Output only] BGP communities in human-readable A:B format.", + "items": { + "type": "string" + }, + "type": "array" + }, + "destination": { + "$ref": "BgpRouteNetworkLayerReachabilityInformation", + "description": "[Output only] Destination IP range for the route, in human-readable CIDR format" + }, + "med": { + "description": "[Output only] BGP multi-exit discriminator", + "format": "uint32", + "type": "integer" + }, + "origin": { + "description": "[Output only] BGP origin (EGP, IGP or INCOMPLETE)", + "enum": [ + "BGP_ORIGIN_EGP", + "BGP_ORIGIN_IGP", + "BGP_ORIGIN_INCOMPLETE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "BgpRouteAsPath": { + "id": "BgpRouteAsPath", + "properties": { + "asns": { + "description": "[Output only] ASNs in the path segment. When type is SEQUENCE, these are ordered.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "type": { + "description": "[Output only] Type of AS-PATH segment (SEQUENCE or SET)", + "enum": [ + "AS_PATH_TYPE_SEQUENCE", + "AS_PATH_TYPE_SET" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "BgpRouteNetworkLayerReachabilityInformation": { + "description": "Network Layer Reachability Information (NLRI) for a route.", + "id": "BgpRouteNetworkLayerReachabilityInformation", + "properties": { + "destination": { + "deprecated": true, + "description": "Human readable CIDR notation for a prefix. E.g. 10.42.0.0/16. Deprecated in favor of prefix.", + "type": "string" + }, + "pathId": { + "description": "If the BGP session supports multiple paths (RFC 7911), the path identifier for this route.", + "format": "uint32", + "type": "integer" + }, + "prefix": { + "description": "Human readable CIDR notation for a prefix. E.g. 10.42.0.0/16.", + "type": "string" + } + }, + "type": "object" + }, "Binding": { "description": "Associates `members`, or principals, with a `role`.", "id": "Binding", @@ -44386,14 +48807,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -44419,10 +48840,6 @@ "format": "int64", "type": "string" }, - "instance": { - "$ref": "Instance", - "description": "DEPRECATED: Please use instance_properties instead." - }, "instanceProperties": { "$ref": "InstanceProperties", "description": "The instance properties defining the VM instances to be created. Required if sourceInstanceTemplate is not provided." @@ -44458,6 +48875,10 @@ "description": "Per-instance properties to be set on individual instances. To be extended in the future.", "id": "BulkInsertInstanceResourcePerInstanceProperties", "properties": { + "hostname": { + "description": "Specifies the hostname of the instance. More details in: https://cloud.google.com/compute/docs/instances/custom-hostname-vm#naming_convention", + "type": "string" + }, "name": { "description": "This field is only temporary. It will be removed. Do not use it.", "type": "string" @@ -44465,6 +48886,48 @@ }, "type": "object" }, + "BulkInsertOperationStatus": { + "id": "BulkInsertOperationStatus", + "properties": { + "createdVmCount": { + "description": "[Output Only] Count of VMs successfully created so far.", + "format": "int32", + "type": "integer" + }, + "deletedVmCount": { + "description": "[Output Only] Count of VMs that got deleted during rollback.", + "format": "int32", + "type": "integer" + }, + "failedToCreateVmCount": { + "description": "[Output Only] Count of VMs that started creating but encountered an error.", + "format": "int32", + "type": "integer" + }, + "status": { + "description": "[Output Only] Creation status of BulkInsert operation - information if the flow is rolling forward or rolling back.", + "enum": [ + "CREATING", + "DONE", + "ROLLING_BACK", + "STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "Rolling forward - creating VMs.", + "Done", + "Rolling back - cleaning up after an error.", + "" + ], + "type": "string" + }, + "targetVmCount": { + "description": "[Output Only] Count of VMs originally planned to be created.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "BundledLocalSsds": { "id": "BundledLocalSsds", "properties": { @@ -44698,6 +49161,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", @@ -44743,12 +49213,16 @@ "type": "string" }, "reservations": { - "description": "List of reservations in this commitment.", + "description": "List of create-on-create reservations for this commitment.", "items": { "$ref": "Reservation" }, "type": "array" }, + "resourceStatus": { + "$ref": "CommitmentResourceStatus", + "description": "[Output Only] Status information for Commitment resource." + }, "resources": { "description": "A list of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.", "items": { @@ -44765,7 +49239,7 @@ "type": "string" }, "splitSourceCommitment": { - "description": "Source commitment to be splitted into a new commitment.", + "description": "Source commitment to be split into a new commitment.", "type": "string" }, "startTimestamp": { @@ -44776,6 +49250,8 @@ "description": "[Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.", "enum": [ "ACTIVE", + "CANCELED_EARLY_TERMINATION", + "CANCELING", "CANCELLED", "CREATING", "EXPIRED", @@ -44785,6 +49261,8 @@ "", "", "", + "Deprecate CANCELED status. Will use separate status to differentiate cancel by mergeCud or manual cancellation.", + "", "", "" ], @@ -44798,15 +49276,21 @@ "description": "The type of commitment, which affects the discount rate and the eligible resources. Type MEMORY_OPTIMIZED specifies a commitment that will only apply to memory optimized machines. Type ACCELERATOR_OPTIMIZED specifies a commitment that will only apply to accelerator optimized machines.", "enum": [ "ACCELERATOR_OPTIMIZED", + "ACCELERATOR_OPTIMIZED_A3", "COMPUTE_OPTIMIZED", "COMPUTE_OPTIMIZED_C2D", + "COMPUTE_OPTIMIZED_C3", + "COMPUTE_OPTIMIZED_C3D", + "COMPUTE_OPTIMIZED_H3", "GENERAL_PURPOSE", "GENERAL_PURPOSE_E2", "GENERAL_PURPOSE_N2", "GENERAL_PURPOSE_N2D", "GENERAL_PURPOSE_T2D", + "GRAPHICS_OPTIMIZED", "MEMORY_OPTIMIZED", "MEMORY_OPTIMIZED_M3", + "STORAGE_OPTIMIZED_Z3", "TYPE_UNSPECIFIED" ], "enumDescriptions": [ @@ -44820,6 +49304,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ], "type": "string" @@ -44878,6 +49368,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -44896,6 +49387,36 @@ "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.", @@ -44907,6 +49428,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -44998,6 +49520,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -45016,6 +49539,36 @@ "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.", @@ -45027,6 +49580,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -45074,6 +49628,43 @@ }, "type": "object" }, + "CommitmentResourceStatus": { + "description": "[Output Only] Contains output only fields.", + "id": "CommitmentResourceStatus", + "properties": { + "cancellationInformation": { + "$ref": "CommitmentResourceStatusCancellationInformation", + "description": "[Output Only] An optional, contains all the needed information of cancellation." + } + }, + "type": "object" + }, + "CommitmentResourceStatusCancellationInformation": { + "id": "CommitmentResourceStatusCancellationInformation", + "properties": { + "canceledCommitment": { + "$ref": "Money", + "description": "[Output Only] An optional amount of CUDs canceled so far in the last 365 days." + }, + "canceledCommitmentLastUpdatedTimestamp": { + "description": "[Output Only] An optional last update time of canceled_commitment. RFC3339 text format.", + "type": "string" + }, + "cancellationCap": { + "$ref": "Money", + "description": "[Output Only] An optional,the cancellation cap for how much commitments can be canceled in a rolling 365 per billing account." + }, + "cancellationFee": { + "$ref": "Money", + "description": "[Output Only] An optional, cancellation fee." + }, + "cancellationFeeExpirationTimestamp": { + "description": "[Output Only] An optional, cancellation fee expiration time. RFC3339 text format.", + "type": "string" + } + }, + "type": "object" + }, "CommitmentsScopedList": { "id": "CommitmentsScopedList", "properties": { @@ -45100,6 +49691,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -45118,6 +49710,36 @@ "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.", @@ -45129,6 +49751,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -45265,12 +49888,14 @@ "enum": [ "CONFIDENTIAL_INSTANCE_TYPE_UNSPECIFIED", "SEV", - "SEV_SNP" + "SEV_SNP", + "TDX" ], "enumDescriptions": [ "No type specified. Do not use this value.", "AMD Secure Encrypted Virtualization.", - "AMD Secure Encrypted Virtualization - Secure Nested Paging." + "AMD Secure Encrypted Virtualization - Secure Nested Paging.", + "Intel Trust Domain eXtension." ], "type": "string" }, @@ -45432,7 +50057,7 @@ "id": "CustomerEncryptionKey", "properties": { "kmsKeyName": { - "description": "The name of the encryption key that is stored in Google Cloud KMS. For example: \"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key ", + "description": "The name of the encryption key that is stored in Google Cloud KMS. For example: \"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key The fully-qualifed key name may be returned for resource GET requests. For example: \"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key /cryptoKeyVersions/1 ", "type": "string" }, "kmsKeyServiceAccount": { @@ -45515,6 +50140,20 @@ "description": "Represents a Persistent Disk resource. Google Compute Engine has two Disk resources: * [Zonal](/compute/docs/reference/rest/alpha/disks) * [Regional](/compute/docs/reference/rest/alpha/regionDisks) Persistent disks are required for running your VM instances. Create both boot and non-boot (data) persistent disks. For more information, read Persistent Disks. For more storage options, read Storage options. The disks resource represents a zonal persistent disk. For more information, read Zonal persistent disks. The regionDisks resource represents a regional persistent disk. For more information, read Regional resources.", "id": "Disk", "properties": { + "accessMode": { + "description": "The access mode of the disk. - READ_WRITE_SINGLE: The default AccessMode, means the disk can be attached to single instance in RW mode. - READ_WRITE_MANY: The AccessMode means the disk can be attached to multiple instances in RW mode. - READ_ONLY_MANY: The AccessMode means the disk can be attached to multiple instances in RO mode. The AccessMode is only valid for Hyperdisk disk types.", + "enum": [ + "READ_ONLY_MANY", + "READ_WRITE_MANY", + "READ_WRITE_SINGLE" + ], + "enumDescriptions": [ + "The AccessMode means the disk can be attached to multiple instances in RO mode.", + "The AccessMode means the disk can be attached to multiple instances in RW mode.", + "The default AccessMode, means the disk can be attached to single instance in RW mode." + ], + "type": "string" + }, "architecture": { "description": "The architecture of the disk. Valid values are ARM64 or X86_64.", "enum": [ @@ -45552,6 +50191,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" + }, "eraseWindowsVssSignature": { "description": "Specifies whether the disk restored from a source snapshot should erase Windows specific VSS signature.", "type": "boolean" @@ -45569,6 +50212,7 @@ "type": "string" }, "interface": { + "deprecated": true, "description": "[Deprecated] Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI.", "enum": [ "NVME", @@ -45663,7 +50307,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" }, @@ -45689,6 +50333,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" @@ -45702,7 +50351,7 @@ "type": "string" }, "sizeGb": { - "description": "Size, in GB, of the persistent disk. You can specify this field when creating a persistent disk using the sourceImage, sourceSnapshot, or sourceDisk parameter, or specify it alone to create an empty persistent disk. If you specify this field along with a source, the value of sizeGb must not be less than the size of the source. Acceptable values are 1 to 65536, inclusive.", + "description": "Size, in GB, of the persistent disk. You can specify this field when creating a persistent disk using the sourceImage, sourceSnapshot, or sourceDisk parameter, or specify it alone to create an empty persistent disk. If you specify this field along with a source, the value of sizeGb must not be less than the size of the source. Acceptable values are greater than 0.", "format": "int64", "type": "string" }, @@ -45765,17 +50414,23 @@ "DELETING", "FAILED", "READY", - "RESTORING" + "RESTORING", + "UNAVAILABLE" ], "enumDescriptions": [ "Disk is provisioning", "Disk is deleting.", "Disk creation failed.", "Disk is ready for use.", - "Source data is being copied into the disk." + "Source data is being copied into the disk.", + "Disk is currently unavailable and cannot be accessed, attached or detached." ], "type": "string" }, + "storagePool": { + "description": "The storage pool in which the new disk is created. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /storagePools/storagePool - projects/project/zones/zone/storagePools/storagePool - zones/zone/storagePools/storagePool ", + "type": "string" + }, "storageType": { "description": "[Deprecated] Storage type of the persistent disk.", "enum": [ @@ -45864,6 +50519,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -45882,6 +50538,36 @@ "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.", @@ -45893,6 +50579,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -45943,6 +50630,14 @@ "DiskAsyncReplication": { "id": "DiskAsyncReplication", "properties": { + "consistencyGroupPolicy": { + "description": "[Output Only] URL of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group.", + "type": "string" + }, + "consistencyGroupPolicyId": { + "description": "[Output Only] ID of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group.", + "type": "string" + }, "disk": { "description": "The other disk asynchronously replicated to or from the current disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk ", "type": "string" @@ -46048,6 +50743,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -46066,6 +50762,36 @@ "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.", @@ -46077,6 +50803,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -46164,6 +50891,11 @@ }, "description": "Key: disk, value: AsyncReplicationStatus message", "type": "object" + }, + "usedBytes": { + "description": "[Output Only] Space used by data stored in the disk (in bytes). Note that this field is set only when the disk is in a storage pool.", + "format": "int64", + "type": "string" } }, "type": "object" @@ -46193,6 +50925,66 @@ }, "type": "object" }, + "DiskSettings": { + "id": "DiskSettings", + "properties": { + "accessLocation": { + "$ref": "DiskSettingsAccessLocation", + "description": "Policy of which locations are allowed to create regional snapshots." + }, + "defaultResourcePolicies": { + "additionalProperties": { + "$ref": "DiskSettingsResourcePolicyDetails" + }, + "description": "An optional parameter for storing the default resource policies that will be used for the Disks created in the given scope. The Key is a string type, provided by customers to uniquely identify the default Resource Policy entry. The Value is a Default ResourcePolicyDetails Object used to represent the detailed information of the Resource Policy entry.", + "type": "object" + } + }, + "type": "object" + }, + "DiskSettingsAccessLocation": { + "description": "AccessLocation is only used for regional snapshot. It contains which regions are allowed to create a regional snapshot from disks located in the given region/zone. It includes key-value pairs designed to store the following structure. The keys should match their corresponding values, which must be provided: access_location: { locations { us-central1 { region: \"us-central1\" }, asia-west2 { region: \"asia-west2\" } } }", + "id": "DiskSettingsAccessLocation", + "properties": { + "locations": { + "additionalProperties": { + "$ref": "DiskSettingsAccessLocationAccessLocationPreference" + }, + "description": "List of regions that can create a regional snapshot from the current region", + "type": "object" + } + }, + "type": "object" + }, + "DiskSettingsAccessLocationAccessLocationPreference": { + "description": "A structure for specifying an allowed target region to create snapshot.", + "id": "DiskSettingsAccessLocationAccessLocationPreference", + "properties": { + "region": { + "description": "Accessible region name", + "type": "string" + } + }, + "type": "object" + }, + "DiskSettingsResourcePolicyDetails": { + "description": "This is the object for storing the detail information about the Resource Policy that will be set as default ones for the Disks that is using the DiskSettings. It contains: - one target Resource Policy referenced by its Fully-Qualified URL, - [output only] Disk Types that will be excluded from using this Resource Policy, - Other filtering support (e.g. Label filtering) for Default Resource Policy can be added here as well", + "id": "DiskSettingsResourcePolicyDetails", + "properties": { + "excludedDiskTypes": { + "description": "[Output Only] A list of Disk Types that will be excluded from applying the Resource Policy referenced here. If absent, Disks created in any DiskType can use the referenced default Resource Policy.", + "items": { + "type": "string" + }, + "type": "array" + }, + "resourcePolicy": { + "description": "The target Resource Policies identified by their Fully-Qualified URL.", + "type": "string" + } + }, + "type": "object" + }, "DiskType": { "description": "Represents a Disk Type resource. Google Compute Engine has two Disk Type resources: * [Regional](/compute/docs/reference/rest/alpha/regionDiskTypes) * [Zonal](/compute/docs/reference/rest/alpha/diskTypes) You can choose from a variety of disk types based on your needs. For more information, read Storage options. The diskTypes resource represents disk types for a zonal persistent disk. For more information, read Zonal persistent disks. The regionDiskTypes resource represents disk types for a regional persistent disk. For more information, read Regional persistent disks.", "id": "DiskType", @@ -46303,6 +51095,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -46321,6 +51114,36 @@ "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.", @@ -46332,6 +51155,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -46423,6 +51247,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -46441,6 +51266,36 @@ "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.", @@ -46452,6 +51307,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -46525,6 +51381,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -46543,6 +51400,36 @@ "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.", @@ -46554,6 +51441,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -46664,6 +51552,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -46682,6 +51571,36 @@ "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.", @@ -46693,6 +51612,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -46750,16 +51670,6 @@ }, "type": "object" }, - "DisksStopAsyncReplicationRequest": { - "id": "DisksStopAsyncReplicationRequest", - "properties": { - "asyncSecondaryDisk": { - "description": "[Deprecated] The secondary disk to stop asynchronous replication to. This field will not be included in the beta or v1 APIs and will be removed from the alpha API in the near future.", - "type": "string" - } - }, - "type": "object" - }, "DisksStopGroupAsyncReplicationResource": { "description": "A transient resource used in compute.disks.stopGroupAsyncReplication and compute.regionDisks.stopGroupAsyncReplication. It is only used to process requests and is not persisted.", "id": "DisksStopGroupAsyncReplicationResource", @@ -46946,6 +51856,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -46964,6 +51875,36 @@ "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.", @@ -46975,6 +51916,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -47129,6 +52071,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" @@ -47180,6 +52126,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -47198,6 +52145,36 @@ "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.", @@ -47209,6 +52186,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -47357,6 +52335,7 @@ "type": "boolean" }, "enableLogging": { + "deprecated": true, "description": "Deprecated in favor of enable in LogConfig. This field denotes whether to enable logging for a particular firewall rule. If logging is enabled, logs will be exported t Cloud Logging.", "type": "boolean" }, @@ -47484,6 +52463,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -47502,6 +52482,36 @@ "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.", @@ -47513,6 +52523,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -47621,6 +52632,7 @@ "type": "string" }, "displayName": { + "deprecated": true, "description": "Deprecated, please use short name instead. User-provided name of the Organization firewall policy. The name should be unique in the organization in which the firewall policy is created. This field is not applicable to network firewall policies. This name must be set on creation and cannot be changed. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" @@ -47700,6 +52712,7 @@ "type": "string" }, "displayName": { + "deprecated": true, "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy of the association.", "type": "string" }, @@ -47711,6 +52724,11 @@ "description": "The name for an association.", "type": "string" }, + "priority": { + "description": "An integer indicating the priority of an association. The priority must be a positive value between 1 and 2147483647. Firewall Policies are evaluated from highest to lowest priority where 1 is the highest priority and 2147483647 is the lowest priority. The default value is `1000`. If two associations have the same priority then lexicographical order on association names is applied.", + "format": "int32", + "type": "integer" + }, "shortName": { "description": "[Output Only] The short name of the firewall policy of the association.", "type": "string" @@ -47757,6 +52775,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -47775,6 +52794,36 @@ "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.", @@ -47786,6 +52835,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -47912,6 +52962,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" @@ -48070,7 +53124,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/alpha/globalForwardingRules) * [Regional](https://cloud.google.com/compute/docs/reference/rest/alpha/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/alpha/globalForwardingRules) * [Regional](https://cloud.google.com/compute/docs/reference/rest/alpha/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": { @@ -48102,23 +53156,27 @@ "type": "string" }, "allPorts": { - "description": "This field can only be used: - If IPProtocol is one of TCP, UDP, or SCTP. - By internal TCP/UDP load balancers, backend service-based network load balancers, and internal and external protocol forwarding. Set this field to true to allow packets addressed to any port or packets lacking destination port information (for example, UDP fragments after the first fragment) to be forwarded to the backends configured with this forwarding rule. The ports, port_range, and allPorts fields are mutually exclusive.", + "description": "The ports, portRange, and allPorts fields are mutually exclusive. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The allPorts field has the following limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, SCTP, or L3_DEFAULT. - It's applicable only to the following products: internal passthrough Network Load Balancers, backend service-based external passthrough Network Load Balancers, and internal and external protocol forwarding. - Set this field to true to allow packets addressed to any port or packets lacking destination port information (for example, UDP fragments after the first fragment) to be forwarded to the backends configured with this forwarding rule. The L3_DEFAULT protocol requires allPorts be set to true. ", "type": "boolean" }, "allowGlobalAccess": { - "description": "This field is used along with the backend_service field for internal load balancing or with the target field for internal TargetInstance. If the field is set to TRUE, clients can access ILB from all regions. Otherwise only allows access from clients in the same region as the internal load balancer.", + "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": { "description": "This is used in PSC consumer ForwardingRule to control whether the PSC endpoint can be accessed from another region.", "type": "boolean" }, + "allowPscPacketInjection": { + "description": "This is used in PSC consumer ForwardingRule to control whether the producer is allowed to inject packets into the consumer's network. If set to true, the target service attachment must have tunneling enabled and TunnelingConfig.RoutingMode set to PACKET_INJECTION Non-PSC forwarding rules should not use this field.", + "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": { @@ -48139,6 +53197,10 @@ "format": "uint64", "type": "string" }, + "ipCollection": { + "description": "Resource reference of a PublicDelegatedPrefix. The PDP must be a sub-PDP in EXTERNAL_IPV6_FORWARDING_RULE_CREATION mode. Use one of the following formats to specify a sub-PDP when creating an IPv6 NetLB forwarding rule using BYOIP: Full resource URL, as in https://www.googleapis.com/compute/v1/projects/project_id/regions/region /publicDelegatedPrefixes/sub-pdp-name Partial URL, as in: - projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name - regions/region/publicDelegatedPrefixes/sub-pdp-name ", + "type": "string" + }, "ipVersion": { "description": "The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6.", "enum": [ @@ -48159,7 +53221,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": { @@ -48207,7 +53269,7 @@ "type": "string" }, "network": { - "description": "This field is not used for external load balancing. For Internal TCP/UDP Load Balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used. For Private Service Connect forwarding rules that forward traffic to Google APIs, a network must be provided.", + "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": { @@ -48229,22 +53291,22 @@ "type": "string" }, "noAutomateDnsZone": { - "description": "This is used in PSC consumer ForwardingRule to control whether it should try to auto-generate a DNS zone or not. Non-PSC forwarding rules do not use this field.", + "description": "This is used in PSC consumer ForwardingRule to control whether it should try to auto-generate a DNS zone or not. Non-PSC forwarding rules do not use this field. Once set, this field is not mutable.", "type": "boolean" }, "portRange": { - "description": "This field can only be used: - If IPProtocol is one of TCP, UDP, or SCTP. - By backend service-based network load balancers, target pool-based network load balancers, internal proxy load balancers, external proxy load balancers, Traffic Director, external protocol forwarding, and Classic VPN. Some products have restrictions on what ports can be used. See port specifications for details. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The ports, port_range, and allPorts fields are mutually exclusive. For external forwarding rules, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. For internal forwarding rules within the same VPC network, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. @pattern: \\\\d+(?:-\\\\d+)?", + "description": "The ports, portRange, and allPorts fields are mutually exclusive. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The portRange field has the following limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, or SCTP, and - It's applicable only to the following products: external passthrough Network Load Balancers, internal and external proxy Network Load Balancers, internal and external Application Load Balancers, external protocol forwarding, and Classic VPN. - Some products have restrictions on what ports can be used. See port specifications for details. For external forwarding rules, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. For internal forwarding rules within the same VPC network, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. @pattern: \\\\d+(?:-\\\\d+)?", "type": "string" }, "ports": { - "description": "This field can only be used: - If IPProtocol is one of TCP, UDP, or SCTP. - By internal TCP/UDP load balancers, backend service-based network load balancers, and internal protocol forwarding. You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. For external forwarding rules, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot share any values defined in ports. For internal forwarding rules within the same VPC network, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot share any values defined in ports. The ports, port_range, and allPorts fields are mutually exclusive. @pattern: \\\\d+(?:-\\\\d+)?", + "description": "The ports, portRange, and allPorts fields are mutually exclusive. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The ports field has the following limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, or SCTP, and - It's applicable only to the following products: internal passthrough Network Load Balancers, backend service-based external passthrough Network Load Balancers, and internal protocol forwarding. - You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. For external forwarding rules, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair if they share at least one port number. For internal forwarding rules within the same VPC network, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair if they share at least one port number. @pattern: \\\\d+(?:-\\\\d+)?", "items": { "type": "string" }, "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" }, @@ -48287,27 +53349,27 @@ "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": { - "description": "The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must be in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. - For load balancers, see the \"Target\" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). - For Private Service Connect forwarding rules that forward traffic to Google APIs, provide the name of a supported Google API bundle: - vpc-sc - APIs that support VPC Service Controls. - all-apis - All supported Google APIs. - For Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment. ", + "description": "The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must be in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. - For load balancers, see the \"Target\" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). - For Private Service Connect forwarding rules that forward traffic to Google APIs, provide the name of a supported Google API bundle: - vpc-sc - APIs that support VPC Service Controls. - all-apis - All supported Google APIs. - For Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment. The target is not mutable once set as a service attachment. ", "type": "string" } }, @@ -48364,6 +53426,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -48382,6 +53445,36 @@ "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.", @@ -48393,6 +53486,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -48484,6 +53578,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -48502,6 +53597,36 @@ "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.", @@ -48513,6 +53638,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -48570,7 +53696,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": { @@ -48582,7 +53708,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" } }, @@ -48614,6 +53740,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -48632,6 +53759,36 @@ "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.", @@ -48643,6 +53800,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -48693,6 +53851,18 @@ "FutureReservation": { "id": "FutureReservation", "properties": { + "autoCreatedReservationsDeleteTime": { + "description": "Future timestamp when the FR auto-created reservations will be deleted by Compute Engine. Format of this field must be a valid href=\"https://www.ietf.org/rfc/rfc3339.txt\">RFC3339 value.", + "type": "string" + }, + "autoCreatedReservationsDuration": { + "$ref": "Duration", + "description": "Specifies the duration of auto-created reservations. It represents relative time to future reservation start_time when auto-created reservations will be automatically deleted by Compute Engine. Duration time unit is represented as a count of seconds and fractions of seconds at nanosecond resolution." + }, + "autoDeleteAutoCreatedReservations": { + "description": "Setting for enabling or disabling automatic deletion for auto-created reservation. If set to true, auto-created reservations will be deleted at Future Reservation's end time (default) or at user's defined timestamp if any of the [auto_created_reservations_delete_time, auto_created_reservations_duration] values is specified. For keeping auto-created reservation indefinitely, this value should be set to false.", + "type": "boolean" + }, "creationTimestamp": { "description": "[Output Only] The creation timestamp for this future reservation in RFC3339 text format.", "type": "string" @@ -48751,6 +53921,10 @@ "$ref": "ShareSettings", "description": "List of Projects/Folders to share with." }, + "specificReservationRequired": { + "description": "Indicates whether the auto-created reservation can be consumed by VMs with affinity for \"any\" reservation. If the field is set, then only VMs that target the reservation by name can consume from the delivered reservation. If set to true,the delivered resevervation will have the same name as the future reservation.", + "type": "boolean" + }, "specificSkuProperties": { "$ref": "FutureReservationSpecificSKUProperties", "description": "Future Reservation configuration to indicate instance properties and total count." @@ -48793,6 +53967,22 @@ "description": "[Output only] Represents status related to the future reservation.", "id": "FutureReservationStatus", "properties": { + "amendmentStatus": { + "description": "[Output Only] The current status of the requested amendment.", + "enum": [ + "AMENDMENT_APPROVED", + "AMENDMENT_DECLINED", + "AMENDMENT_IN_REVIEW", + "AMENDMENT_STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "The requested amendment to the Future Resevation has been approved and applied by GCP.", + "The requested amendment to the Future Reservation has been declined by GCP and the original state was restored.", + "The requested amendment to the Future Reservation is currently being reviewd by GCP.", + "" + ], + "type": "string" + }, "autoCreatedReservations": { "description": "Fully qualified urls of the automatically created reservations at start_time.", "items": { @@ -48805,6 +53995,10 @@ "format": "int64", "type": "string" }, + "lastKnownGoodState": { + "$ref": "FutureReservationStatusLastKnownGoodState", + "description": "[Output Only] This field represents the future reservation before an amendment was requested. If the amendment is declined, the Future Reservation will be reverted to the last known good state. The last known good state is not set when updating a future reservation whose Procurement Status is DRAFTING." + }, "lockTime": { "description": "Time when Future Reservation would become LOCKED, after which no modifications to Future Reservation will be allowed. Applicable only after the Future Reservation is in the APPROVED state. The lock_time is an RFC3339 string. The procurement_status will transition to PROCURING state at this time.", "type": "string" @@ -48820,6 +54014,7 @@ "FAILED", "FAILED_PARTIALLY_FULFILLED", "FULFILLED", + "PENDING_AMENDMENT_APPROVAL", "PENDING_APPROVAL", "PROCUREMENT_STATUS_UNSPECIFIED", "PROCURING", @@ -48834,6 +54029,7 @@ "Future reservation failed. No additional reservations were provided.", "Future reservation is partially fulfilled. Additional reservations were provided but did not reach total_count reserved instance slots.", "Future reservation is fulfilled completely.", + "An Amendment to the Future Reservation has been requested. If the Amendment is declined, the Future Reservation will be restored to the last known good state.", "Future reservation is pending approval by GCP.", "", "Future reservation is being procured by GCP. Beyond this point, Future reservation is locked and no further modifications are allowed.", @@ -48847,6 +54043,81 @@ }, "type": "object" }, + "FutureReservationStatusLastKnownGoodState": { + "description": "The state that the future reservation will be reverted to should the amendment be declined.", + "id": "FutureReservationStatusLastKnownGoodState", + "properties": { + "description": { + "description": "[Output Only] The description of the FutureReservation before an amendment was requested.", + "type": "string" + }, + "futureReservationSpecs": { + "$ref": "FutureReservationStatusLastKnownGoodStateFutureReservationSpecs" + }, + "lockTime": { + "description": "[Output Only] The lock time of the FutureReservation before an amendment was requested.", + "type": "string" + }, + "namePrefix": { + "description": "[Output Only] The name prefix of the Future Reservation before an amendment was requested.", + "type": "string" + }, + "procurementStatus": { + "description": "[Output Only] The status of the last known good state for the Future Reservation.", + "enum": [ + "APPROVED", + "CANCELLED", + "COMMITTED", + "DECLINED", + "DRAFTING", + "FAILED", + "FAILED_PARTIALLY_FULFILLED", + "FULFILLED", + "PENDING_AMENDMENT_APPROVAL", + "PENDING_APPROVAL", + "PROCUREMENT_STATUS_UNSPECIFIED", + "PROCURING", + "PROVISIONING" + ], + "enumDescriptions": [ + "Future reservation is approved by GCP.", + "Future reservation is cancelled by the customer.", + "Future reservation is committed by the customer.", + "Future reservation is rejected by GCP.", + "Related status for PlanningStatus.Draft. Transitions to PENDING_APPROVAL upon user submitting FR.", + "Future reservation failed. No additional reservations were provided.", + "Future reservation is partially fulfilled. Additional reservations were provided but did not reach total_count reserved instance slots.", + "Future reservation is fulfilled completely.", + "An Amendment to the Future Reservation has been requested. If the Amendment is declined, the Future Reservation will be restored to the last known good state.", + "Future reservation is pending approval by GCP.", + "", + "Future reservation is being procured by GCP. Beyond this point, Future reservation is locked and no further modifications are allowed.", + "Future reservation capacity is being provisioned. This state will be entered after start_time, while reservations are being created to provide total_count reserved instance slots. This state will not persist past start_time + 24h." + ], + "type": "string" + } + }, + "type": "object" + }, + "FutureReservationStatusLastKnownGoodStateFutureReservationSpecs": { + "description": "The properties of the last known good state for the Future Reservation.", + "id": "FutureReservationStatusLastKnownGoodStateFutureReservationSpecs", + "properties": { + "shareSettings": { + "$ref": "ShareSettings", + "description": "[Output Only] The previous share settings of the Future Reservation." + }, + "specificSkuProperties": { + "$ref": "FutureReservationSpecificSKUProperties", + "description": "[Output Only] The previous instance related properties of the Future Reservation." + }, + "timeWindow": { + "$ref": "FutureReservationTimeWindow", + "description": "[Output Only] The previous time window of the Future Reservation." + } + }, + "type": "object" + }, "FutureReservationStatusSpecificSKUProperties": { "description": "Properties to be set for the Future Reservation.", "id": "FutureReservationStatusSpecificSKUProperties", @@ -48929,6 +54200,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -48947,6 +54219,36 @@ "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.", @@ -48958,6 +54260,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -49058,6 +54361,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -49076,6 +54380,36 @@ "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.", @@ -49087,6 +54421,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -49160,6 +54495,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -49178,6 +54514,36 @@ "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.", @@ -49189,6 +54555,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -49253,7 +54620,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", @@ -49469,16 +54836,19 @@ "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_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": [ "BARE_METAL_LINUX_COMPATIBLE", "FEATURE_TYPE_UNSPECIFIED", "GVNIC", + "IDPF", "MULTI_IP_SUBNET", "SECURE_BOOT", "SEV_CAPABLE", "SEV_LIVE_MIGRATABLE", + "SEV_LIVE_MIGRATABLE_V2", "SEV_SNP_CAPABLE", + "TDX_CAPABLE", "UEFI_COMPATIBLE", "VIRTIO_SCSI_MULTIQUEUE", "WINDOWS" @@ -49494,6 +54864,9 @@ "", "", "", + "", + "", + "", "" ], "type": "string" @@ -49518,7 +54891,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", @@ -49585,7 +54958,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", @@ -49652,7 +55025,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", @@ -49703,7 +55076,7 @@ "type": "object" }, "HealthCheck": { - "description": "Represents a Health Check resource. Google Compute Engine has two Health Check resources: * [Global](/compute/docs/reference/rest/alpha/healthChecks) * [Regional](/compute/docs/reference/rest/alpha/regionHealthChecks) Internal HTTP(S) load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Traffic Director must use global health checks (`compute.v1.HealthChecks`). Internal TCP/UDP load balancers can use either regional or global health checks (`compute.v1.regionHealthChecks` or `compute.v1.HealthChecks`). External HTTP(S), TCP proxy, and SSL proxy load balancers as well as managed instance group auto-healing must use global health checks (`compute.v1.HealthChecks`). Backend service-based network load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Target pool-based network load balancers must use legacy HTTP health checks (`compute.v1.httpHealthChecks`). For more information, see Health checks overview.", + "description": "Represents a health check resource. Google Compute Engine has two health check resources: * [Regional](/compute/docs/reference/rest/alpha/regionHealthChecks) * [Global](/compute/docs/reference/rest/alpha/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": { @@ -49864,6 +55237,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -49882,6 +55256,36 @@ "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.", @@ -49893,6 +55297,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -49998,6 +55403,7 @@ "type": "string" }, "healthStatusAggregationStrategy": { + "deprecated": true, "description": "This field is deprecated. Use health_status_aggregation_policy instead. Policy for how the results from multiple health checks for the same endpoint are aggregated. - NO_AGGREGATION. An EndpointHealth message is returned for each backend in the health check service. - AND. If any backend's health check reports UNHEALTHY, then UNHEALTHY is the HealthState of the entire health check service. If all backend's are healthy, the HealthState of the health check service is HEALTHY. .", "enum": [ "AND", @@ -50105,6 +55511,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -50123,6 +55530,36 @@ "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.", @@ -50134,6 +55571,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -50234,6 +55672,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -50252,6 +55691,36 @@ "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.", @@ -50263,6 +55732,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -50336,6 +55806,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -50354,6 +55825,36 @@ "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.", @@ -50365,6 +55866,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -50463,6 +55965,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -50481,6 +55984,36 @@ "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.", @@ -50492,6 +56025,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -50565,6 +56099,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -50583,6 +56118,36 @@ "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.", @@ -50594,6 +56159,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -50660,7 +56226,7 @@ "type": "string" }, "healthState": { - "description": "Health state of the instance.", + "description": "Health state of the IPv4 address of the instance.", "enum": [ "HEALTHY", "UNHEALTHY" @@ -50679,6 +56245,21 @@ "description": "For target pool based Network Load Balancing, it indicates the forwarding rule's IP address assigned to this instance. For other types of load balancing, the field indicates VM internal ip.", "type": "string" }, + "ipv6Address": { + "type": "string" + }, + "ipv6HealthState": { + "description": "Health state of the IPv6 address of the instance.", + "enum": [ + "HEALTHY", + "UNHEALTHY" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, "port": { "description": "The named port of the instance group, not necessarily the port that is health-checked.", "format": "int32", @@ -50733,10 +56314,26 @@ "UNKNOWN" ], "enumDescriptions": [ - "", - "", - "", - "" + "Endpoint is being drained.", + "Endpoint is healthy.", + "Endpoint is unhealthy.", + "Health status of the endpoint is unknown." + ], + "type": "string" + }, + "ipv6HealthState": { + "description": "Health state of the ipv6 network endpoint determined based on the health checks configured.", + "enum": [ + "DRAINING", + "HEALTHY", + "UNHEALTHY", + "UNKNOWN" + ], + "enumDescriptions": [ + "Endpoint is being drained.", + "Endpoint is healthy.", + "Endpoint is unhealthy.", + "Health status of the endpoint is unknown." ], "type": "string" } @@ -51001,7 +56598,7 @@ "type": "integer" }, "requestPath": { - "description": "The request path of the HTTP health check request. The default value is /. This field does not support query parameters.", + "description": "The request path of the HTTP health check request. The default value is /. This field does not support query parameters. Must comply with RFC3986.", "type": "string" }, "selfLink": { @@ -51069,6 +56666,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -51087,6 +56685,36 @@ "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.", @@ -51098,6 +56726,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -51245,7 +56874,7 @@ }, "faultInjectionPolicy": { "$ref": "HttpFaultInjection", - "description": "The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: Routing and traffic management features." + "description": "The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the classic Application Load Balancer . To see which load balancers support fault injection, see Load balancing: Routing and traffic management features." }, "maxStreamDuration": { "$ref": "Duration", @@ -51265,7 +56894,7 @@ }, "urlRewrite": { "$ref": "UrlRewrite", - "description": "The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." + "description": "The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for classic Application Load Balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." }, "weightedBackendServices": { "description": "A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.", @@ -51283,7 +56912,7 @@ "properties": { "customErrorResponsePolicy": { "$ref": "CustomErrorResponsePolicy", - "description": "customErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. If a policy for an error code is not configured for the RouteRule, a policy for the error code configured in pathMatcher.defaultCustomErrorResponsePolicy is applied. If one is not specified in pathMatcher.defaultCustomErrorResponsePolicy, the policy configured in UrlMap.defaultCustomErrorResponsePolicy takes effect. For example, consider a UrlMap with the following configuration: - UrlMap.defaultCustomErrorResponsePolicy are configured with policies for 5xx and 4xx errors - A RouteRule for /coming_soon/ is configured for the error code 404. If the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in RouteRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in conjunction with routeRules.routeAction.retryPolicy, retries take precedence. Only once all retries are exhausted, the customErrorResponsePolicy is applied. While attempting a retry, if load balancer is successful in reaching the service, the customErrorResponsePolicy is ignored and the response from the service is returned to the client. customErrorResponsePolicy is supported only for Global External HTTP(S) load balancing." + "description": "customErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. If a policy for an error code is not configured for the RouteRule, a policy for the error code configured in pathMatcher.defaultCustomErrorResponsePolicy is applied. If one is not specified in pathMatcher.defaultCustomErrorResponsePolicy, the policy configured in UrlMap.defaultCustomErrorResponsePolicy takes effect. For example, consider a UrlMap with the following configuration: - UrlMap.defaultCustomErrorResponsePolicy are configured with policies for 5xx and 4xx errors - A RouteRule for /coming_soon/ is configured for the error code 404. If the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in RouteRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in conjunction with routeRules.routeAction.retryPolicy, retries take precedence. Only once all retries are exhausted, the customErrorResponsePolicy is applied. While attempting a retry, if load balancer is successful in reaching the service, the customErrorResponsePolicy is ignored and the response from the service is returned to the client. customErrorResponsePolicy is supported only for global external Application Load Balancers." }, "description": { "description": "The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters.", @@ -51321,7 +56950,7 @@ }, "routeAction": { "$ref": "HttpRouteAction", - "description": "In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a route rule's routeAction." + "description": "In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a route rule's routeAction." }, "service": { "description": "The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.", @@ -51429,7 +57058,7 @@ "type": "integer" }, "requestPath": { - "description": "The request path of the HTTPS health check request. The default value is \"/\".", + "description": "The request path of the HTTPS health check request. The default value is \"/\". Must comply with RFC3986.", "type": "string" }, "selfLink": { @@ -51497,6 +57126,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -51515,6 +57145,36 @@ "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.", @@ -51526,6 +57186,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -51613,8 +57274,12 @@ "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. You can create disks by specifying an image family instead of a specific image name. The image family always returns its latest image that is not deprecated. The name of the image family must comply with RFC1035.", + "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" }, "guestOsFeatures": { @@ -51693,6 +57358,7 @@ "type": "string" }, "sha1Checksum": { + "deprecated": true, "description": "[Deprecated] This field is deprecated. An optional SHA1 checksum of the disk image before unpackaging provided by the client when the disk image is created.", "pattern": "[a-f0-9]{40}", "type": "string" @@ -51708,6 +57374,11 @@ "$ref": "RolloutPolicy", "description": "A rollout policy to apply to this image. When specified, the rollout policy overrides per-zone references to the image via the associated image family. The rollout policy restricts the zones where this image is accessible when using a zonal image family reference. When the rollout policy does not include the user specified zone, or if the zone is rolled out, this image is accessible. The rollout policy for this image is read-only, except for allowlisted users. This field might not be configured. To view the latest non-deprecated image in a specific zone, use the imageFamilyViews.get method." }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "satisfiesPzs": { "description": "[Output Only] Reserved for future use.", "type": "boolean" @@ -51858,6 +57529,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -51876,6 +57548,36 @@ "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.", @@ -51887,6 +57589,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -52081,11 +57784,6 @@ "type": "string" }, "machineType": { - "annotations": { - "required": [ - "compute.instances.insert" - ] - }, "description": "Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type: zones/us-central1-f/machineTypes/n1-standard-1 To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB): zones/zone/machineTypes/custom-CPUS-MEMORY For example: zones/us-central1-f/machineTypes/custom-4-5120 For a full list of restrictions, read the Specifications for custom machine types.", "type": "string" }, @@ -52121,6 +57819,13 @@ "$ref": "InstanceParams", "description": "Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload." }, + "partnerMetadata": { + "additionalProperties": { + "$ref": "StructuredEntries" + }, + "description": "Partner Metadata assigned to the instance. A map from a subdomain (namespace) to entries map.", + "type": "object" + }, "postKeyRevocationActionType": { "description": "PostKeyRevocationActionType of the instance.", "enum": [ @@ -52169,6 +57874,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" @@ -52247,7 +57956,7 @@ "TERMINATED" ], "enumDescriptions": [ - "The Nanny is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", + "The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", "Resources are being allocated for the instance.", "The instance is in repair.", "The instance is running.", @@ -52330,6 +58039,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -52348,6 +58058,36 @@ "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.", @@ -52359,6 +58099,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -52573,6 +58314,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -52591,6 +58333,36 @@ "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.", @@ -52602,6 +58374,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -52693,6 +58466,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -52711,6 +58485,36 @@ "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.", @@ -52722,6 +58526,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -52785,11 +58590,6 @@ "type": "array" }, "baseInstanceName": { - "annotations": { - "required": [ - "compute.instanceGroupManagers.insert" - ] - }, "description": "The base instance name to use for instances in this group. The value must be 1-58 characters long. Instances are named by appending a hyphen and a random four-character string to the base instance name. The base instance name must comply with RFC1035.", "pattern": "[a-z][-a-z0-9]{0,57}", "type": "string" @@ -52832,6 +58632,10 @@ "format": "uint64", "type": "string" }, + "instanceFlexibilityPolicy": { + "$ref": "InstanceGroupManagerInstanceFlexibilityPolicy", + "description": "Instance flexibility allowing MIG to create VMs from multiple types of machines. Instance flexibility configuration on MIG overrides instance template configuration." + }, "instanceGroup": { "description": "[Output Only] The URL of the Instance Group resource.", "type": "string" @@ -52879,6 +58683,10 @@ }, "type": "array" }, + "params": { + "$ref": "InstanceGroupManagerParams", + "description": "Input only. Additional params passed with the request, but not persisted as part of resource payload." + }, "region": { "description": "[Output Only] The URL of the region where the managed instance group resides (for regional resources).", "type": "string" @@ -52925,6 +58733,18 @@ "format": "int32", "type": "integer" }, + "targetSizeUnit": { + "description": "The unit of measure for the target size.", + "enum": [ + "INSTANCE", + "VCPU" + ], + "enumDescriptions": [ + "[Default] TargetSize is the target number of instances.", + "TargetSize is the target count of vCPUs of VMs." + ], + "type": "string" + }, "targetStoppedSize": { "description": "The target number of stopped instances for this managed instance group. This number changes when you: - Stop instance using the stopInstances method or start instances using the startInstances method. - Manually change the targetStoppedSize using the update method. ", "format": "int32", @@ -53085,6 +58905,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -53103,6 +58924,36 @@ "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.", @@ -53114,6 +58965,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -53183,7 +59035,7 @@ "type": "string" }, "initialDelaySec": { - "description": "The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600].", + "description": "The initial delay is the number of seconds that a new VM takes to initialize and run its startup script. During a VM's initial delay period, the MIG ignores unsuccessful health checks because the VM might be in the startup process. This prevents the MIG from prematurely recreating a VM. If the health check receives a healthy response during the initial delay, it indicates that the startup process is complete and the VM is ready. The value of initial delay must be between 0 and 3600 seconds. The default value is 0.", "format": "int32", "type": "integer" }, @@ -53212,18 +59064,78 @@ }, "type": "object" }, + "InstanceGroupManagerInstanceFlexibilityPolicy": { + "id": "InstanceGroupManagerInstanceFlexibilityPolicy", + "properties": { + "instanceSelectionLists": { + "additionalProperties": { + "$ref": "InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection" + }, + "description": "Named instance selections configuring properties that the group will use when creating new VMs.", + "type": "object" + }, + "instanceSelections": { + "additionalProperties": { + "$ref": "InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection" + }, + "description": "Named instance selections configuring properties that the group will use when creating new VMs.", + "type": "object" + }, + "provisioningModelMix": { + "$ref": "InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix", + "description": "Provisioning model configuration used by this managed instance group to create instances." + } + }, + "type": "object" + }, + "InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection": { + "id": "InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection", + "properties": { + "machineTypes": { + "description": "Full machine-type names, e.g. \"n1-standard-16\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "rank": { + "description": "Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix": { + "id": "InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix", + "properties": { + "standardCapacityBase": { + "description": "The base capacity that will always use Standard VMs to avoid risk of more preemption than the minimum capacity user needs. MIG will create only Standard VMs until it reaches standard_capacity_base and only then will start using standard_capacity_percent_above_base to mix Spot with Standard VMs.", + "format": "int32", + "type": "integer" + }, + "standardCapacityPercentAboveBase": { + "description": "The percentage of target capacity that should use Standard VM. The remaining percentage will use Spot VMs. The percentage applies only to the capacity above standard_capacity_base.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "InstanceGroupManagerInstanceLifecyclePolicy": { "id": "InstanceGroupManagerInstanceLifecyclePolicy", "properties": { "defaultActionOnFailure": { - "description": "Defines behaviour for all instance or failures", + "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": [ + "DELETE", "DO_NOTHING", "REPAIR" ], "enumDescriptions": [ - "If any of the MIG's VMs is not running, or is failing, no repair action will be taken.", - "*[Default]* If any of the MIG's VMs is not running - for example, a VM cannot be created during a scale out or a VM fails \u2013 then the group will retry until it creates that VM successfully. For more information about how a MIG manages its VMs, see What is a managed instance.\"" + "MIG deletes a failed or an unhealthy VM. Deleting the VM decreases the target size of the MIG.", + "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" }, @@ -53241,12 +59153,14 @@ }, "metadataBasedReadinessSignal": { "$ref": "InstanceGroupManagerInstanceLifecyclePolicyMetadataBasedReadinessSignal", + "deprecated": true, "description": "The configuration for metadata based readiness signal sent by the instance during initialization when stopping / suspending an instance. The Instance Group Manager will wait for a signal that indicates successful initialization before stopping / suspending an instance. If a successful readiness signal is not sent before timeout, the corresponding instance will not be stopped / suspended. Instead, an error will be visible in the lastAttempt.errors field of the managed instance in the listmanagedinstances method. If metadataBasedReadinessSignal.timeoutSec is unset, the Instance Group Manager will directly proceed to suspend / stop instances, skipping initialization on them." } }, "type": "object" }, "InstanceGroupManagerInstanceLifecyclePolicyMetadataBasedReadinessSignal": { + "deprecated": true, "id": "InstanceGroupManagerInstanceLifecyclePolicyMetadataBasedReadinessSignal", "properties": { "timeoutSec": { @@ -53301,6 +59215,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -53319,6 +59234,36 @@ "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.", @@ -53330,6 +59275,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -53377,6 +59323,20 @@ }, "type": "object" }, + "InstanceGroupManagerParams": { + "description": "Input only additional params for instance group manager creation.", + "id": "InstanceGroupManagerParams", + "properties": { + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Resource manager tags to be bound to the instance group manager. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/123`, and values are in the format `tagValues/456`. The field is allowed for INSERT only.", + "type": "object" + } + }, + "type": "object" + }, "InstanceGroupManagerResizeRequest": { "description": "InstanceGroupManagerResizeRequest represents a request to create a number of VMs: either immediately or by queuing the request for the specified time. This resize request is nested under InstanceGroupManager and the VMs created by this request are added to the owning InstanceGroupManager.", "id": "InstanceGroupManagerResizeRequest", @@ -53418,6 +59378,15 @@ "$ref": "QueuingPolicy", "description": "When set, defines queing parameters for the requested deferred capacity. When unset, the request starts provisioning immediately, or fails if immediate provisioning is not possible." }, + "requestedRunDuration": { + "$ref": "Duration", + "description": "Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted." + }, + "resizeBy": { + "description": "The number of instances to be created by this resize request. The group's target size will be increased by this number.", + "format": "int32", + "type": "integer" + }, "selfLink": { "description": "[Output Only] The URL for this resize request. The server defines this URL.", "type": "string" @@ -53430,6 +59399,7 @@ "description": "[Output only] Current state of the request.", "enum": [ "ACCEPTED", + "CANCELLED", "CREATING", "DELETING", "FAILED", @@ -53438,6 +59408,7 @@ ], "enumDescriptions": [ "The request was created successfully and was accepted for provisioning when the capacity becomes available.", + "The request is cancelled.", "resize request is being created and may still fail creation.", "The request is being deleted.", "The request failed before or during provisioning. If the request fails during provisioning, any VMs that were created during provisioning are rolled back and removed from the MIG.", @@ -53448,10 +59419,10 @@ }, "status": { "$ref": "InstanceGroupManagerResizeRequestStatus", - "description": "[Output only] Status of the request. The Status message is aligned with QueuedResource.status. ResizeRequest.queuing_policy contains the queuing policy as provided by the user; it could have either valid_until_time or valid_until_duration. ResizeRequest.status.queuing_policy always contains absolute time as calculated by the server when the request is queued." + "description": "[Output only] Status of the request." }, "zone": { - "description": "[Output Only] The URL of a zone where the resize request is located.", + "description": "[Output Only] The URL of a zone where the resize request is located. Populated only for zonal resize requests.", "type": "string" } }, @@ -53461,7 +59432,7 @@ "id": "InstanceGroupManagerResizeRequestStatus", "properties": { "error": { - "description": "Errors encountered during the queueing or provisioning phases of the ResizeRequest.", + "description": "[Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the last_attempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry.", "properties": { "errors": { "description": "[Output Only] The array of errors encountered while processing this operation.", @@ -53508,6 +59479,10 @@ }, "type": "object" }, + "lastAttempt": { + "$ref": "InstanceGroupManagerResizeRequestStatusLastAttempt", + "description": "[Output only] Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the \"error\" field only." + }, "queuingPolicy": { "$ref": "QueuingPolicy", "description": "Constraints for the time when the instances start provisioning. Always exposed as absolute time." @@ -53515,6 +59490,60 @@ }, "type": "object" }, + "InstanceGroupManagerResizeRequestStatusLastAttempt": { + "id": "InstanceGroupManagerResizeRequestStatusLastAttempt", + "properties": { + "error": { + "description": "Errors that prevented the ResizeRequest to be fulfilled.", + "properties": { + "errors": { + "description": "[Output Only] The array of errors encountered while processing this operation.", + "items": { + "properties": { + "code": { + "description": "[Output Only] The error type identifier for this error.", + "type": "string" + }, + "errorDetails": { + "description": "[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.", + "items": { + "properties": { + "errorInfo": { + "$ref": "ErrorInfo" + }, + "help": { + "$ref": "Help" + }, + "localizedMessage": { + "$ref": "LocalizedMessage" + }, + "quotaInfo": { + "$ref": "QuotaExceededInfo" + } + }, + "type": "object" + }, + "type": "array" + }, + "location": { + "description": "[Output Only] Indicates the field in the request that caused the error. This property is optional.", + "type": "string" + }, + "message": { + "description": "[Output Only] An optional, human-readable error message.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, "InstanceGroupManagerResizeRequestsListResponse": { "description": "[Output Only] A list of resize requests.", "id": "InstanceGroupManagerResizeRequestsListResponse", @@ -53559,6 +59588,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -53577,6 +59607,36 @@ "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.", @@ -53588,6 +59648,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -53639,8 +59700,21 @@ "id": "InstanceGroupManagerStandbyPolicy", "properties": { "initialDelaySec": { + "description": "Specifies the number of seconds that the MIG should wait to suspend or stop a VM after that VM was created. The initial delay gives the initialization script the time to prepare your VM for a quick scale out. The value of initial delay must be between 0 and 3600 seconds. The default value is 0.", "format": "int32", "type": "integer" + }, + "mode": { + "description": "Defines how a MIG resumes or starts VMs from a standby pool when the group scales out. The default mode is `MANUAL`.", + "enum": [ + "MANUAL", + "SCALE_OUT_POOL" + ], + "enumDescriptions": [ + "MIG does not automatically resume or start VMs in the standby pool when the group scales out.", + "MIG automatically resumes or starts VMs in the standby pool when the group scales out, and replenishes the standby pool afterwards." + ], + "type": "string" } }, "type": "object" @@ -53693,6 +59767,7 @@ "type": "boolean" }, "isStateful": { + "deprecated": true, "description": "[Output Only] A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful configuration even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions. This field is deprecated in favor of has_stateful_config.", "type": "boolean" }, @@ -53761,14 +59836,14 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" }, "mostDisruptiveAllowedAction": { - "description": "Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.", + "description": "Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to avoid restarting the VM and to limit disruption as much as possible. RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.", "enum": [ "NONE", "REFRESH", @@ -53777,9 +59852,9 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" }, @@ -53796,14 +59871,14 @@ "type": "string" }, "type": { - "description": "The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).", + "description": "The type of update process. You can specify either PROACTIVE so that the MIG automatically updates VMs to the latest configurations or OPPORTUNISTIC so that you can select the VMs that you want to update.", "enum": [ "OPPORTUNISTIC", "PROACTIVE" ], "enumDescriptions": [ - "No action is being proactively performed in order to bring this IGM to its target version distribution (regardless of whether this distribution is expressed using instanceTemplate or versions field).", - "This IGM will actively converge to its target version distribution (regardless of whether this distribution is expressed using instanceTemplate or versions field)." + "MIG will apply new configurations to existing VMs only when you selectively target specific or all VMs to be updated.", + "MIG will automatically apply new configurations to all or a subset of existing VMs and also to new VMs that are added to the group." ], "type": "string" } @@ -53870,14 +59945,14 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" }, "minimalAction": { - "description": "The minimal action that you want to perform on each instance during the update: - REPLACE: At minimum, delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt the instance at all. By default, the minimum action is NONE. If your update requires a more disruptive action than you set with this flag, the necessary action is performed to execute the update.", + "description": "The minimal action that you want to perform on each instance during the update: - REPLACE: At minimum, delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the minimum action is NONE. If your update requires a more disruptive action than you set with this flag, the necessary action is performed to execute the update.", "enum": [ "NONE", "REFRESH", @@ -53886,14 +59961,14 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" }, "mostDisruptiveAllowedAction": { - "description": "The most disruptive action that you want to perform on each instance during the update: - REPLACE: Delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt the instance at all. By default, the most disruptive allowed action is REPLACE. If your update requires a more disruptive action than you set with this flag, the update request will fail.", + "description": "The most disruptive action that you want to perform on each instance during the update: - REPLACE: Delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the most disruptive allowed action is REPLACE. If your update requires a more disruptive action than you set with this flag, the update request will fail.", "enum": [ "NONE", "REFRESH", @@ -53902,9 +59977,9 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" } @@ -53928,8 +60003,15 @@ "InstanceGroupManagersDeleteInstancesRequest": { "id": "InstanceGroupManagersDeleteInstancesRequest", "properties": { + "instanceNames": { + "description": "The list of instance names to delete. Queued instances do not have URL and can be deleted only by name. You cannot specify both URLs and names in a single request.", + "items": { + "type": "string" + }, + "type": "array" + }, "instances": { - "description": "The URLs of one or more instances to delete. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "description": "The URLs of one or more instances to delete. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. Queued instances do not have URL and can be deleted only by name. One cannot specify both URLs and names in a single request.", "items": { "type": "string" }, @@ -54020,6 +60102,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -54038,6 +60121,36 @@ "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.", @@ -54049,6 +60162,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -54177,6 +60291,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -54195,6 +60310,36 @@ "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.", @@ -54206,6 +60351,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -54410,6 +60556,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -54428,6 +60575,36 @@ "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.", @@ -54439,6 +60616,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -54543,6 +60721,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -54561,6 +60740,36 @@ "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.", @@ -54572,6 +60781,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -54681,6 +60891,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -54699,6 +60910,36 @@ "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.", @@ -54710,6 +60951,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -54801,6 +61043,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -54819,6 +61062,36 @@ "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.", @@ -54830,6 +61103,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -55075,6 +61349,13 @@ "$ref": "NetworkPerformanceConfig", "description": "Note that for MachineImage, this is not supported yet." }, + "partnerMetadata": { + "additionalProperties": { + "$ref": "StructuredEntries" + }, + "description": "Partner Metadata assigned to the instance properties. A map from a subdomain (namespace) to entries map.", + "type": "object" + }, "postKeyRevocationActionType": { "description": "PostKeyRevocationActionType of the instance.", "enum": [ @@ -55192,8 +61473,55 @@ }, "type": "object" }, + "InstanceSettings": { + "description": "Represents a Instance Settings resource. You can use instance settings to configure default settings for Compute Engine VM instances. For example, you can use it to configure default machine type of Compute Engine VM instances.", + "id": "InstanceSettings", + "properties": { + "email": { + "description": "Email address of the service account.", + "type": "string" + }, + "fingerprint": { + "description": "Specifies a fingerprint for instance settings, which is essentially a hash of the instance settings resource's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update the instance settings resource. You must always provide an up-to-date fingerprint hash in order to update or change the resource, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the resource.", + "format": "byte", + "type": "string" + }, + "kind": { + "default": "compute#instanceSettings", + "description": "[Output Only] Type of the resource. Always compute#instance_settings for instance settings.", + "type": "string" + }, + "metadata": { + "$ref": "InstanceSettingsMetadata", + "description": "The metadata key/value pairs assigned to all the instances in the corresponding scope." + }, + "zone": { + "description": "[Output Only] URL of the zone where the resource resides You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + } + }, + "type": "object" + }, + "InstanceSettingsMetadata": { + "id": "InstanceSettingsMetadata", + "properties": { + "items": { + "additionalProperties": { + "type": "string" + }, + "description": "A metadata key/value items map. The total size of all keys and values must be less than 512KB.", + "type": "object" + }, + "kind": { + "default": "compute#metadata", + "description": "[Output Only] Type of the resource. Always compute#metadata for metadata.", + "type": "string" + } + }, + "type": "object" + }, "InstanceTemplate": { - "description": "Represents an Instance Template resource. You can use instance templates to create VM instances and managed instance groups. For more information, read Instance Templates.", + "description": "Represents an Instance Template resource. Google Compute Engine has two Instance Template resources: * [Global](/compute/docs/reference/rest/alpha/instanceTemplates) * [Regional](/compute/docs/reference/rest/alpha/regionInstanceTemplates) You can reuse a global instance template in different regions whereas you can use a regional instance template in a specified region only. If you want to reduce cross-region dependency or achieve data residency, use a regional instance template. To create VMs, managed instance groups, and reservations, you can use either global or regional instance templates. For more information, read Instance Templates.", "id": "InstanceTemplate", "properties": { "creationTimestamp": { @@ -55296,6 +61624,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -55314,6 +61643,36 @@ "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.", @@ -55325,6 +61684,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -55416,6 +61776,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -55434,6 +61795,36 @@ "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.", @@ -55445,6 +61836,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -55518,6 +61910,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -55536,6 +61929,36 @@ "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.", @@ -55547,6 +61970,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -55623,7 +62047,7 @@ "TERMINATED" ], "enumDescriptions": [ - "The Nanny is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", + "The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", "Resources are being allocated for the instance.", "The instance is in repair.", "The instance is running.", @@ -55652,6 +62076,19 @@ }, "type": "object" }, + "InstancesBulkInsertOperationMetadata": { + "id": "InstancesBulkInsertOperationMetadata", + "properties": { + "perLocationStatus": { + "additionalProperties": { + "$ref": "BulkInsertOperationStatus" + }, + "description": "Status information per location (location name is key). Example key: zones/us-central1-a", + "type": "object" + } + }, + "type": "object" + }, "InstancesGetEffectiveFirewallsResponse": { "id": "InstancesGetEffectiveFirewallsResponse", "properties": { @@ -55683,6 +62120,7 @@ "id": "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy", "properties": { "displayName": { + "deprecated": true, "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy.", "type": "string" }, @@ -55795,6 +62233,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -55813,6 +62252,36 @@ "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.", @@ -55824,6 +62293,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -55935,6 +62405,23 @@ }, "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": { @@ -56039,6 +62526,11 @@ "$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" @@ -56133,6 +62625,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -56151,6 +62644,36 @@ "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.", @@ -56162,6 +62685,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -56209,42 +62733,6 @@ }, "type": "object" }, - "InstantSnapshotExportParams": { - "id": "InstantSnapshotExportParams", - "properties": { - "baseInstantSnapshot": { - "description": "An optional base instant snapshot that this resource is compared against. If not specified, all blocks of this resource are exported. The base instant snapshot and this resource must be created from the same disk. The base instant snapshot must be created earlier in time than this resource.", - "type": "string" - }, - "bucketName": { - "description": "The name of an existing bucket in Cloud Storage where the changed blocks will be stored. The Google Service Account must have read and write access to this bucket. The bucket has to be in the same region as this resource.", - "type": "string" - }, - "encryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "Encryption key used to encrypt the instant snapshot." - }, - "objectName": { - "description": "Name of the output Bigstore object storing the changed blocks. Object name must be less than 1024 bytes in length.", - "type": "string" - }, - "outputType": { - "description": "The format of the output file.", - "enum": [ - "INVALID", - "METADATA_AND_DATA", - "METADATA_ONLY" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, "InstantSnapshotList": { "description": "Contains a list of InstantSnapshot resources.", "id": "InstantSnapshotList", @@ -56289,6 +62777,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -56307,6 +62796,36 @@ "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.", @@ -56318,6 +62837,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -56376,16 +62896,6 @@ }, "type": "object" }, - "InstantSnapshotsExportRequest": { - "id": "InstantSnapshotsExportRequest", - "properties": { - "exportParams": { - "$ref": "InstantSnapshotExportParams", - "description": "Parameters to export the changed blocks." - } - }, - "type": "object" - }, "InstantSnapshotsScopedList": { "id": "InstantSnapshotsScopedList", "properties": { @@ -56412,6 +62922,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -56430,6 +62941,36 @@ "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.", @@ -56441,6 +62982,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -56506,13 +63048,26 @@ "type": "object" }, "Interconnect": { - "description": "Represents an Interconnect resource. An Interconnect resource is a dedicated connection between the GCP network and your on-premises network. For more information, read the Dedicated Interconnect Overview.", + "description": "Represents an Interconnect resource. An Interconnect resource is a dedicated connection between the Google Cloud network and your on-premises network. For more information, read the Dedicated Interconnect Overview.", "id": "Interconnect", "properties": { "adminEnabled": { "description": "Administrative status of the interconnect. When this is set to true, the Interconnect is functional and can carry traffic. When set to false, no packets can be carried over the interconnect and no BGP routes are exchanged over it. By default, the status is set to true.", "type": "boolean" }, + "availableFeatures": { + "description": "[Output only] List of features available for this Interconnect connection, which can take one of the following values: - MACSEC If present then the Interconnect connection is provisioned on MACsec capable hardware ports. If not present then the Interconnect connection is provisioned on non-MACsec capable ports and MACsec isn't supported and enabling MACsec fails.", + "items": { + "enum": [ + "IF_MACSEC" + ], + "enumDescriptions": [ + "Media Access Control security (MACsec)" + ], + "type": "string" + }, + "type": "array" + }, "circuitInfos": { "description": "[Output Only] A list of CircuitInfo objects, that describe the individual circuits in this LAG.", "items": { @@ -56608,10 +63163,10 @@ }, "macsec": { "$ref": "InterconnectMacsec", - "description": "Configuration to enable Media Access Control security (MACsec) on the Interconnect between Google and your on-premises router." + "description": "Configuration that enables Media Access Control security (MACsec) on the Cloud Interconnect connection between Google and your on-premises router." }, "macsecEnabled": { - "description": "Enable or disable MACsec on this Interconnect. MACsec enablement will fail if the macsec object is not specified.", + "description": "Enable or disable MACsec on this Interconnect connection. MACsec enablement fails if the MACsec object is not specified.", "type": "boolean" }, "name": { @@ -56653,13 +63208,26 @@ "description": "Indicates that this is a Cross-Cloud Interconnect. This field specifies the location outside of Google's network that the interconnect is connected to.", "type": "string" }, + "requestedFeatures": { + "description": "Optional. List of features requested for this Interconnect connection, which can take one of the following values: - MACSEC If specified then the connection is created on MACsec capable hardware ports. If not specified, the default value is false, which allocates non-MACsec capable ports first if available. This parameter can be provided only with Interconnect INSERT. It isn't valid for Interconnect PATCH.", + "items": { + "enum": [ + "IF_MACSEC" + ], + "enumDescriptions": [ + "Media Access Control security (MACsec)" + ], + "type": "string" + }, + "type": "array" + }, "requestedLinkCount": { "description": "Target number of physical links in the link bundle, as requested by the customer.", "format": "int32", "type": "integer" }, "satisfiesPzs": { - "description": "[Output Only] Set to true if the resource satisfies the zone separation organization policy constraints and false otherwise. Defaults to false if the field is not present.", + "description": "[Output Only] Reserved for future use.", "type": "boolean" }, "selfLink": { @@ -56807,6 +63375,7 @@ "type": "string" }, "googleReferenceId": { + "deprecated": true, "description": "[Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.", "type": "string" }, @@ -56820,7 +63389,7 @@ "type": "string" }, "ipsecInternalAddresses": { - "description": "A list of URLs of addresses that have been reserved for the VLAN attachment. Used only for the VLAN attachment that has the encryption option as IPSEC. The addresses must be regional internal IP address ranges. When creating an HA VPN gateway over the VLAN attachment, if the attachment is configured to use a regional internal IP address, then the VPN gateway's IP address is allocated from the IP address range specified here. For example, if the HA VPN gateway's interface 0 is paired to this VLAN attachment, then a regional internal IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this VLAN attachment. If this field is not specified when creating the VLAN attachment, then later on when creating an HA VPN gateway on this VLAN attachment, the HA VPN gateway's IP address is allocated from the regional external IP address pool. Not currently available publicly. ", + "description": "A list of URLs of addresses that have been reserved for the VLAN attachment. Used only for the VLAN attachment that has the encryption option as IPSEC. The addresses must be regional internal IP address ranges. When creating an HA VPN gateway over the VLAN attachment, if the attachment is configured to use a regional internal IP address, then the VPN gateway's IP address is allocated from the IP address range specified here. For example, if the HA VPN gateway's interface 0 is paired to this VLAN attachment, then a regional internal IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this VLAN attachment. If this field is not specified when creating the VLAN attachment, then later on when creating an HA VPN gateway on this VLAN attachment, the HA VPN gateway's IP address is allocated from the regional external IP address pool.", "items": { "type": "string" }, @@ -56848,6 +63417,10 @@ "format": "int32", "type": "integer" }, + "multicastEnabled": { + "description": "Whether or not to permit multicast traffic for this attachment. Multicast packets will be dropped if this is not enabled.", + "type": "boolean" + }, "name": { "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", @@ -56866,7 +63439,7 @@ "type": "string" }, "pairingKey": { - "description": "[Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier of an PARTNER attachment used to initiate provisioning with a selected partner. Of the form \"XXXXX/region/domain\"", + "description": "[Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier of a PARTNER attachment used to initiate provisioning with a selected partner. Of the form \"XXXXX/region/domain\"", "type": "string" }, "partnerAsn": { @@ -56876,7 +63449,7 @@ }, "partnerMetadata": { "$ref": "InterconnectAttachmentPartnerMetadata", - "description": "Informational metadata about Partner attachments from Partners to display to customers. Output only for for PARTNER type, mutable for PARTNER_PROVIDER, not available for DEDICATED." + "description": "Informational metadata about Partner attachments from Partners to display to customers. Output only for PARTNER type, mutable for PARTNER_PROVIDER, not available for DEDICATED." }, "privateInterconnectInfo": { "$ref": "InterconnectAttachmentPrivateInfo", @@ -56895,7 +63468,7 @@ "type": "string" }, "satisfiesPzs": { - "description": "[Output Only] Set to true if the resource satisfies the zone separation organization policy constraints and false otherwise. Defaults to false if the field is not present.", + "description": "[Output Only] Reserved for future use.", "type": "boolean" }, "selfLink": { @@ -56960,7 +63533,7 @@ "type": "string" }, "vlanTag8021q": { - "description": "The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4094. Only specified at creation time.", + "description": "The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4093. Only specified at creation time.", "format": "int32", "type": "integer" } @@ -57018,6 +63591,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -57036,6 +63610,36 @@ "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.", @@ -57047,6 +63651,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -57179,6 +63784,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -57197,6 +63803,36 @@ "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.", @@ -57208,6 +63844,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -57312,6 +63949,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -57330,6 +63968,36 @@ "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.", @@ -57341,6 +64009,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -57408,7 +64077,7 @@ "type": "object" }, "InterconnectDiagnostics": { - "description": "Diagnostics information about interconnect, contains detailed and current technical information about Google's side of the connection.", + "description": "Diagnostics information about the Interconnect connection, which contains detailed and current technical information about Google's side of the connection.", "id": "InterconnectDiagnostics", "properties": { "arpCaches": { @@ -57633,6 +64302,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -57651,6 +64321,36 @@ "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.", @@ -57662,6 +64362,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -57721,6 +64422,34 @@ "description": "[Output Only] Availability zone for this InterconnectLocation. Within a metropolitan area (metro), maintenance will not be simultaneously scheduled in more than one availability zone. Example: \"zone1\" or \"zone2\".", "type": "string" }, + "availableFeatures": { + "description": "[Output only] List of features available at this InterconnectLocation, which can take one of the following values: - MACSEC ", + "items": { + "enum": [ + "IF_MACSEC" + ], + "enumDescriptions": [ + "Media Access Control security (MACsec)" + ], + "type": "string" + }, + "type": "array" + }, + "availableLinkTypes": { + "description": "[Output only] List of link types available at this InterconnectLocation, which can take one of the following values: - LINK_TYPE_ETHERNET_10G_LR - LINK_TYPE_ETHERNET_100G_LR ", + "items": { + "enum": [ + "LINK_TYPE_ETHERNET_100G_LR", + "LINK_TYPE_ETHERNET_10G_LR" + ], + "enumDescriptions": [ + "100G Ethernet, LR Optics.", + "10G Ethernet, LR Optics. [(rate_bps) = 10000000000];" + ], + "type": "string" + }, + "type": "array" + }, "city": { "description": "[Output Only] Metropolitan area designator that indicates which city an interconnect is located. For example: \"Chicago, IL\", \"Amsterdam, Netherlands\".", "type": "string" @@ -57815,7 +64544,7 @@ "type": "string" }, "supportsPzs": { - "description": "[Output Only] Set to true for locations that support physical zone separation. Defaults to false if the field is not present.", + "description": "[Output Only] Reserved for future use.", "type": "boolean" } }, @@ -57865,6 +64594,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -57883,6 +64613,36 @@ "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.", @@ -57894,6 +64654,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -57974,15 +64735,15 @@ "type": "object" }, "InterconnectMacsec": { - "description": "Configuration information for enabling Media Access Control security (Macsec) on this Interconnect between Google and your on-premises router.", + "description": "Configuration information for enabling Media Access Control security (MACsec) on this Cloud Interconnect connection between Google and your on-premises router.", "id": "InterconnectMacsec", "properties": { "failOpen": { - "description": "If set to true, the Interconnect will be configured with a should-secure MACsec security policy, that allows the Google router to fallback to cleartext traffic if the MKA session cannot be established. By default, the Interconnect will be configured with a must-secure security policy that drops all traffic if the MKA session cannot be established with your router.", + "description": "If set to true, the Interconnect connection is configured with a should-secure MACsec security policy, that allows the Google router to fallback to cleartext traffic if the MKA session cannot be established. By default, the Interconnect connection is configured with a must-secure security policy that drops all traffic if the MKA session cannot be established with your router.", "type": "boolean" }, "preSharedKeys": { - "description": "Required. A keychain placeholder describing a set of named key objects along with their start times. A MACsec CKN/CAK will be generated for each key in the key chain. Google router will automatically pick the key with the most recent startTime when establishing or re-establishing a MACsec secure link.", + "description": "Required. A keychain placeholder describing a set of named key objects along with their start times. A MACsec CKN/CAK is generated for each key in the key chain. Google router automatically picks the key with the most recent startTime when establishing or re-establishing a MACsec secure link.", "items": { "$ref": "InterconnectMacsecPreSharedKey" }, @@ -57992,11 +64753,11 @@ "type": "object" }, "InterconnectMacsecConfig": { - "description": "MACsec configuration information for the Interconnect. Contains the generated Connectivity Association Key Name (CKN) and the key (CAK) for this Interconnect.", + "description": "MACsec configuration information for the Interconnect connection. Contains the generated Connectivity Association Key Name (CKN) and the key (CAK) for this Interconnect connection.", "id": "InterconnectMacsecConfig", "properties": { "preSharedKeys": { - "description": "A keychain placeholder describing a set of named key objects along with their start times. A MACsec CKN/CAK will be generated for each key in the key chain. Google router will automatically pick the key with the most recent startTime when establishing or re-establishing a MACsec secure link.", + "description": "A keychain placeholder describing a set of named key objects along with their start times. A MACsec CKN/CAK is generated for each key in the key chain. Google router automatically picks the key with the most recent startTime when establishing or re-establishing a MACsec secure link.", "items": { "$ref": "InterconnectMacsecConfigPreSharedKey" }, @@ -58122,7 +64883,7 @@ "type": "object" }, "InterconnectRemoteLocation": { - "description": "Represents an Cross-Cloud Interconnect Remote Location resource. You can use this resource to find remote location details about an Interconnect attachment (VLAN).", + "description": "Represents a Cross-Cloud Interconnect Remote Location resource. You can use this resource to find remote location details about an Interconnect attachment (VLAN).", "id": "InterconnectRemoteLocation", "properties": { "address": { @@ -58193,7 +64954,7 @@ ], "enumDescriptions": [ "LACP_SUPPORTED: LACP is supported, and enabled by default on the Cross-Cloud Interconnect.", - "LACP_UNSUPPORTED: LACP is not supported and will not be enabled on this port. GetDiagnostics will show bundleAggregationType as \"static\". GCP does not support LAGs without LACP, so requestedLinkCount must be 1." + "LACP_UNSUPPORTED: LACP is not supported and is not be enabled on this port. GetDiagnostics shows bundleAggregationType as \"static\". GCP does not support LAGs without LACP, so requestedLinkCount must be 1." ], "type": "string" }, @@ -58202,6 +64963,11 @@ "format": "int32", "type": "integer" }, + "maxLagSize10Gbps": { + "description": "[Output Only] The maximum number of 10 Gbps ports supported in a link aggregation group (LAG). When linkType is 10 Gbps, requestedLinkCount cannot exceed max_lag_size_10_gbps.", + "format": "int32", + "type": "integer" + }, "name": { "description": "[Output Only] Name of the resource.", "type": "string" @@ -58248,7 +65014,7 @@ "id": "InterconnectRemoteLocationConstraints", "properties": { "portPairRemoteLocation": { - "description": "[Output Only] Port pair remote location constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, PORT_PAIR_MATCHING_REMOTE_LOCATION. GCP's API refers only to individual ports, but the UI uses this field when ordering a pair of ports, to prevent users from accidentally ordering something that is incompatible with their cloud provider. Specifically, when ordering a redundant pair of Cross-Cloud Interconnect ports, and one of them uses a remote location with portPairMatchingRemoteLocation set to matching, the UI will require that both ports use the same remote location.", + "description": "[Output Only] Port pair remote location constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, PORT_PAIR_MATCHING_REMOTE_LOCATION. GCP's API refers only to individual ports, but the UI uses this field when ordering a pair of ports, to prevent users from accidentally ordering something that is incompatible with their cloud provider. Specifically, when ordering a redundant pair of Cross-Cloud Interconnect ports, and one of them uses a remote location with portPairMatchingRemoteLocation set to matching, the UI requires that both ports use the same remote location.", "enum": [ "PORT_PAIR_MATCHING_REMOTE_LOCATION", "PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION" @@ -58313,7 +65079,7 @@ "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.", + "description": "[Output Only] This token lets you get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", "type": "string" }, "selfLink": { @@ -58336,6 +65102,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -58354,6 +65121,36 @@ "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.", @@ -58365,6 +65162,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -58554,6 +65352,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -58572,6 +65371,36 @@ "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.", @@ -58583,6 +65412,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -58674,6 +65504,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -58692,6 +65523,36 @@ "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.", @@ -58703,6 +65564,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -59016,6 +65878,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -59034,6 +65897,36 @@ "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.", @@ -59045,6 +65938,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -59342,6 +66236,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" @@ -59453,6 +66352,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -59471,6 +66371,36 @@ "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.", @@ -59482,6 +66412,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -59543,7 +66474,7 @@ "type": "integer" }, "guestAcceleratorType": { - "description": "The accelerator type resource name, not a full URL, e.g. 'nvidia-tesla-k80'.", + "description": "The accelerator type resource name, not a full URL, e.g. nvidia-tesla-t4.", "type": "string" } }, @@ -59686,6 +66617,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -59704,6 +66636,36 @@ "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.", @@ -59715,6 +66677,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -59806,6 +66769,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -59824,6 +66788,36 @@ "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.", @@ -59835,6 +66829,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -59908,6 +66903,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -59926,6 +66922,36 @@ "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.", @@ -59937,6 +66963,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -60039,6 +67066,11 @@ "description": "[Output Only] The URL of the instance. The URL can exist even if the instance has not yet been created.", "type": "string" }, + "instanceFlexibilityOverride": { + "$ref": "ManagedInstanceInstanceFlexibilityOverride", + "deprecated": true, + "description": "[Output Only] The overrides to instance properties resulting from InstanceFlexibilityPolicy." + }, "instanceHealth": { "description": "[Output Only] Health state of the instance per health-check.", "items": { @@ -60061,7 +67093,7 @@ "TERMINATED" ], "enumDescriptions": [ - "The Nanny is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", + "The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", "Resources are being allocated for the instance.", "The instance is in repair.", "The instance is running.", @@ -60075,6 +67107,7 @@ "type": "string" }, "instanceTemplate": { + "deprecated": true, "description": "[Output Only] The intended template of the instance. This field is empty when current_action is one of { DELETING, ABANDONING }.", "type": "string" }, @@ -60083,7 +67116,7 @@ "description": "[Output Only] Information about the last attempt to create or delete the instance." }, "name": { - "description": "[Output Only] The name of the instance. The name will always exist even if the instance has not yet been created.", + "description": "[Output Only] The name of the instance. The name always exists even if the instance has not yet been created.", "type": "string" }, "preservedStateFromConfig": { @@ -60094,7 +67127,12 @@ "$ref": "PreservedState", "description": "[Output Only] Preserved state generated based on stateful policy for this instance." }, + "propertiesFromFlexibilityPolicy": { + "$ref": "ManagedInstancePropertiesFromFlexibilityPolicy", + "description": "[Output Only] Instance properties selected for this instance resulting from InstanceFlexibilityPolicy." + }, "tag": { + "deprecated": true, "description": "[Output Only] Tag describing the version.", "type": "string" }, @@ -60133,6 +67171,28 @@ }, "type": "object" }, + "ManagedInstanceInstanceFlexibilityOverride": { + "id": "ManagedInstanceInstanceFlexibilityOverride", + "properties": { + "machineType": { + "description": "The machine type to be used for this instance.", + "type": "string" + }, + "provisioningModel": { + "description": "The provisioning model to be used for this instance.", + "enum": [ + "SPOT", + "STANDARD" + ], + "enumDescriptions": [ + "Heavily discounted, no guaranteed runtime.", + "Standard provisioning with user controlled runtime, no discounts." + ], + "type": "string" + } + }, + "type": "object" + }, "ManagedInstanceInstanceHealth": { "id": "ManagedInstanceInstanceHealth", "properties": { @@ -60159,6 +67219,7 @@ "type": "string" }, "healthState": { + "deprecated": true, "description": "[Output Only] The current instance health state. This field will not get promoted to beta/GA and might be removed from alpha APIs after 01/12/2019. Please use detailed_health_state field instead.", "enum": [ "HEALTHY", @@ -60227,6 +67288,28 @@ }, "type": "object" }, + "ManagedInstancePropertiesFromFlexibilityPolicy": { + "id": "ManagedInstancePropertiesFromFlexibilityPolicy", + "properties": { + "machineType": { + "description": "The machine type to be used for this instance.", + "type": "string" + }, + "provisioningModel": { + "description": "The provisioning model to be used for this instance.", + "enum": [ + "SPOT", + "STANDARD" + ], + "enumDescriptions": [ + "Heavily discounted, no guaranteed runtime.", + "Standard provisioning with user controlled runtime, no discounts." + ], + "type": "string" + } + }, + "type": "object" + }, "ManagedInstanceVersion": { "id": "ManagedInstanceVersion", "properties": { @@ -60347,6 +67430,27 @@ }, "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" + }, "MutualTls": { "description": "[Deprecated] Configuration for the mutual Tls mode for peer authentication. Configuration for the mutual Tls mode for peer authentication.", "id": "MutualTls", @@ -60384,11 +67488,112 @@ }, "type": "object" }, + "NamedSet": { + "id": "NamedSet", + "properties": { + "elements": { + "description": "CEL expressions that are comparable to constructs of this set's type (see Policy Language).", + "items": { + "$ref": "Expr" + }, + "type": "array" + }, + "fingerprint": { + "description": "A fingerprint for the Named Set being applied to this Router, which is essentially a hash of the Named Set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update the Named Set. You must always provide an up-to-date fingerprint hash in order to update or change labels. To see the latest fingerprint, make a getNamedSet() request to retrieve a Named Set.", + "format": "byte", + "type": "string" + }, + "name": { + "description": "This set's name, which must be a resource ID segment and unique within all named sets owned by the Router. Name should conform to RFC1035.", + "type": "string" + }, + "type": { + "description": "This named set's type", + "enum": [ + "NAMED_SET_TYPE_COMMUNITY", + "NAMED_SET_TYPE_PREFIX" + ], + "enumDescriptions": [ + "The Named Set is a Community Named Set.", + "The Named Set is a Prefix Named Set." + ], + "type": "string" + } + }, + "type": "object" + }, + "NatIpInfo": { + "description": "Contains NAT IP information of a NAT config (i.e. usage status, mode).", + "id": "NatIpInfo", + "properties": { + "natIpInfoMappings": { + "description": "A list of all NAT IPs assigned to this NAT config.", + "items": { + "$ref": "NatIpInfoNatIpInfoMapping" + }, + "type": "array" + }, + "natName": { + "description": "Name of the NAT config which the NAT IP belongs to.", + "type": "string" + } + }, + "type": "object" + }, + "NatIpInfoNatIpInfoMapping": { + "description": "Contains information of a NAT IP.", + "id": "NatIpInfoNatIpInfoMapping", + "properties": { + "mode": { + "description": "Specifies whether NAT IP is auto or manual.", + "enum": [ + "AUTO", + "MANUAL" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "natIp": { + "description": "NAT IP address. For example: 203.0.113.11.", + "type": "string" + }, + "usage": { + "description": "Specifies whether NAT IP is currently serving at least one endpoint or not.", + "enum": [ + "IN_USE", + "UNUSED" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "NatIpInfoResponse": { + "id": "NatIpInfoResponse", + "properties": { + "result": { + "description": "[Output Only] A list of NAT IP information.", + "items": { + "$ref": "NatIpInfo" + }, + "type": "array" + } + }, + "type": "object" + }, "Network": { "description": "Represents a VPC Network resource. Networks connect resources to each other and to the internet. For more information, read Virtual Private Cloud (VPC) Network.", "id": "Network", "properties": { "IPv4Range": { + "deprecated": true, "description": "Deprecated in favor of subnet mode networks. The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16. Provided by the client when the network is created.", "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}/[0-9]{1,2}", "type": "string" @@ -60414,7 +67619,7 @@ "type": "string" }, "gatewayIPv4": { - "description": "[Output Only] The gateway address for default routing out of the network, selected by GCP.", + "description": "[Output Only] The gateway address for default routing out of the network, selected by Google Cloud.", "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}", "type": "string" }, @@ -60525,7 +67730,7 @@ "type": "string" }, "fingerprint": { - "description": "[Output Only] Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. An up-to-date fingerprint must be provided in order to patch.", + "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. An up-to-date fingerprint must be provided in order to patch.", "format": "byte", "type": "string" }, @@ -60550,7 +67755,7 @@ "type": "string" }, "network": { - "description": "[Output Only] The URL of the network which the Network Attachment belongs to.", + "description": "[Output Only] The URL of the network which the Network Attachment belongs to. Practically it is inferred by fetching the network of the first subnetwork associated. Because it is required that all the subnetworks must be from the same network, it is assured that the Network Attachment belongs to the same network as all the subnetworks.", "type": "string" }, "producerAcceptLists": { @@ -60633,6 +67838,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -60651,6 +67857,36 @@ "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.", @@ -60662,6 +67898,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -60714,7 +67951,11 @@ "id": "NetworkAttachmentConnectedEndpoint", "properties": { "ipAddress": { - "description": "The IP address assigned to the producer instance network interface. This value will be a range in case of Serverless.", + "description": "The IPv4 address assigned to the producer instance network interface. This value will be a range in case of Serverless.", + "type": "string" + }, + "ipv6Address": { + "description": "The IPv6 address assigned to the producer instance network interface. This is only assigned when the stack types of both the instance network interface and the consumer subnet are IPv4_IPv6.", "type": "string" }, "projectIdOrNum": { @@ -60722,7 +67963,7 @@ "type": "string" }, "secondaryIpCidrRanges": { - "description": "Alias IP ranges from the same subnetwork", + "description": "Alias IP ranges from the same subnetwork.", "items": { "type": "string" }, @@ -60751,6 +67992,10 @@ "subnetwork": { "description": "The subnetwork used to assign the IP to the producer instance network interface.", "type": "string" + }, + "subnetworkCidrRange": { + "description": "[Output Only] The CIDR range of the subnet from which the IPv4 internal IP was allocated from.", + "type": "string" } }, "type": "object" @@ -60797,6 +68042,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -60815,6 +68061,36 @@ "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.", @@ -60826,6 +68102,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -60899,6 +68176,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -60917,6 +68195,36 @@ "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.", @@ -60928,6 +68236,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -61080,6 +68389,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -61098,6 +68408,36 @@ "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.", @@ -61109,6 +68449,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -61182,6 +68523,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -61200,6 +68542,36 @@ "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.", @@ -61211,6 +68583,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -61269,28 +68642,41 @@ "description": "Metadata defined as annotations on the network endpoint.", "type": "object" }, + "clientPort": { + "description": "Represents the port number to which PSC consumer sends packets. Only valid for network endpoint groups created with CLIENT_PORT_PER_ENDPOINT mapping mode.", + "format": "int32", + "type": "integer" + }, "fqdn": { "description": "Optional fully qualified domain name of network endpoint. This can only be specified when NetworkEndpointGroup.network_endpoint_type is NON_GCP_FQDN_PORT.", "type": "string" }, "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" + }, + "ipv6Address": { + "description": "Optional IPv6 address of network endpoint.", "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" + }, + "zone": { + "description": "The name of the zone where the instance hosting the network endpoint is located (valid only for regional GCE_VM_IP_PORT NEGs). It should comply with RFC1035. The zone must belong to the region of the Network Endpoint Group.", + "type": "string" } }, "type": "object" }, "NetworkEndpointGroup": { - "description": "Represents a collection of network endpoints. A network endpoint group (NEG) defines how a set of endpoints should be reached, whether they are reachable, and where they are located. For more information about using NEGs, see Setting up external HTTP(S) Load Balancing with internet NEGs, Setting up zonal NEGs, or Setting up external HTTP(S) Load Balancing with serverless NEGs.", + "description": "Represents a collection of network endpoints. A network endpoint group (NEG) defines how a set of endpoints should be reached, whether they are reachable, and where they are located. For more information about using NEGs for different use cases, see Network endpoint groups overview.", "id": "NetworkEndpointGroup", "properties": { "annotations": { @@ -61302,22 +68688,34 @@ }, "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." + }, + "clientPortMappingMode": { + "description": "Only valid when networkEndpointType is GCE_VM_IP_PORT and the NEG is regional.", + "enum": [ + "CLIENT_PORT_PER_ENDPOINT", + "PORT_MAPPING_DISABLED" + ], + "enumDescriptions": [ + "For each endpoint there is exactly one client port.", + "NEG should not be used for mapping client port to destination." + ], + "type": "string" }, "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" }, @@ -61337,6 +68735,7 @@ }, "loadBalancer": { "$ref": "NetworkEndpointGroupLbNetworkEndpointGroup", + "deprecated": true, "description": "This field is only valid when the network endpoint group is used for load balancing. [Deprecated] This field is deprecated." }, "name": { @@ -61344,7 +68743,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": { @@ -61352,7 +68751,6 @@ "enum": [ "GCE_VM_IP", "GCE_VM_IP_PORT", - "GCE_VM_PRIMARY_IP", "INTERNET_FQDN_PORT", "INTERNET_IP_PORT", "NON_GCP_PRIVATE_IP_PORT", @@ -61362,7 +68760,6 @@ "enumDescriptions": [ "The network endpoint is represented by an IP address.", "The network endpoint is represented by IP address and port pair.", - "The network endpoint is the primary IP address on any network interface of a VM in Compute Engine.", "The network endpoint is represented by fully qualified domain name and port.", "The network endpoint is represented by an internet IP address and port.", "The network endpoint is represented by an IP address and port. The endpoint belongs to a VM or pod running in a customer's on-premises.", @@ -61375,7 +68772,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": { @@ -61392,7 +68789,7 @@ }, "serverlessDeployment": { "$ref": "NetworkEndpointGroupServerlessDeployment", - "description": "Only valid when networkEndpointType is \"SERVERLESS\". Only one of cloudRun, appEngine, cloudFunction or serverlessDeployment may be set." + "description": "Only valid when networkEndpointType is SERVERLESS. Only one of cloudRun, appEngine, cloudFunction or serverlessDeployment may be set." }, "size": { "description": "[Output only] Number of network endpoints in the network endpoint group.", @@ -61471,6 +68868,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -61489,6 +68887,36 @@ "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.", @@ -61500,6 +68928,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -61552,15 +68981,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" } }, @@ -61571,11 +69000,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" } }, @@ -61594,7 +69023,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" } }, @@ -61605,19 +69034,23 @@ "id": "NetworkEndpointGroupLbNetworkEndpointGroup", "properties": { "defaultPort": { - "description": "The default port used if the port number is not specified in the network endpoint. [Deprecated] This field is deprecated.", + "deprecated": true, + "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. [Deprecated] This field is deprecated.", "format": "int32", "type": "integer" }, "network": { - "description": "The URL of the network to which all network endpoints in the NEG belong. Uses \"default\" project network if unspecified. [Deprecated] This field is deprecated.", + "deprecated": true, + "description": "The URL of the network to which all network endpoints in the NEG belong. Uses default project network if unspecified. [Deprecated] This field is deprecated.", "type": "string" }, "subnetwork": { + "deprecated": true, "description": "Optional URL of the subnetwork to which all network endpoints in the NEG belong. [Deprecated] This field is deprecated.", "type": "string" }, "zone": { + "deprecated": true, "description": "[Output Only] The URL of the zone where the network endpoint group is located. [Deprecated] This field is deprecated.", "type": "string" } @@ -61667,6 +69100,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -61685,6 +69119,36 @@ "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.", @@ -61696,6 +69160,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -61792,7 +69257,7 @@ "type": "string" }, "urlMask": { - "description": "A template to parse platform-specific fields from a request URL. URL mask allows for routing to multiple resources on the same serverless platform without having to create multiple Network Endpoint Groups and backend resources. The fields parsed by this template are platform-specific and are as follows: 1. API Gateway: The gateway ID 2. App Engine: The service and version 3. Cloud Functions: The function name 4. Cloud Run: The service and tag ", + "description": "An URL mask is one of the main components of the Cloud Function. A template to parse platform-specific fields from a request URL. URL mask allows for routing to multiple resources on the same serverless platform without having to create multiple Network Endpoint Groups and backend resources. The fields parsed by this template are platform-specific and are as follows: 1. API Gateway: The gateway ID 2. App Engine: The service and version 3. Cloud Functions: The function name 4. Cloud Run: The service and tag ", "type": "string" }, "version": { @@ -61901,6 +69366,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -61919,6 +69385,36 @@ "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.", @@ -61930,6 +69426,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -62003,6 +69500,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -62021,6 +69519,36 @@ "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.", @@ -62032,6 +69560,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -62119,6 +69648,18 @@ "format": "byte", "type": "string" }, + "igmpQuery": { + "description": "Indicate whether igmp query is enabled on the network interface or not. If enabled, also indicates the version of IGMP supported.", + "enum": [ + "IGMP_QUERY_DISABLED", + "IGMP_QUERY_V2" + ], + "enumDescriptions": [ + "The network interface has disabled IGMP query.", + "The network interface has enabled IGMP query - v2." + ], + "type": "string" + }, "internalIpv6PrefixLength": { "description": "The prefix length of the primary internal IPv6 range.", "format": "int32", @@ -62144,7 +69685,7 @@ "type": "string" }, "ipv6Address": { - "description": "An IPv6 internal network address for this network interface.", + "description": "An IPv6 internal network address for this network interface. To use a static internal IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.", "type": "string" }, "kind": { @@ -62192,14 +69733,16 @@ "type": "integer" }, "stackType": { - "description": "The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used. This field can be both set at instance creation and update network interface operations.", + "description": "The stack type for this network interface. To assign only IPv4 addresses, use IPV4_ONLY. To assign both IPv4 and IPv6 addresses, use IPV4_IPV6. If not specified, IPV4_ONLY is used. This field can be both set at instance creation and update network interface operations.", "enum": [ "IPV4_IPV6", - "IPV4_ONLY" + "IPV4_ONLY", + "IPV6_ONLY" ], "enumDescriptions": [ "The network interface can have both IPv4 and IPv6 addresses.", - "The network interface will be assigned IPv4 address." + "The network interface will be assigned IPv4 address.", + "The network interface will only be assigned IPv6 addresses." ], "type": "string" }, @@ -62298,6 +69841,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -62316,6 +69860,36 @@ "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.", @@ -62327,6 +69901,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -62482,6 +70057,34 @@ "description": "A routing configuration attached to a network resource. The message includes the list of routers associated with the network, and a flag indicating the type of routing behavior to enforce network-wide.", "id": "NetworkRoutingConfig", "properties": { + "bgpAlwaysCompareMed": { + "description": "Enable comparison of Multi-Exit Discriminators (MED) across routes with different neighbor ASNs when using the STANDARD BGP best path selection algorithm.", + "type": "boolean" + }, + "bgpBestPathSelectionMode": { + "description": "The BGP best path selection algorithm to be employed within this network for dynamic routes learned by Cloud Routers. Can be LEGACY (default) or STANDARD.", + "enum": [ + "LEGACY", + "STANDARD" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "bgpInterRegionCost": { + "description": "Allows to define a preferred approach for handling inter-region cost in the selection process when using the STANDARD BGP best path selection algorithm. Can be DEFAULT or ADD_COST_TO_MED.", + "enum": [ + "ADD_COST_TO_MED", + "DEFAULT" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, "routingMode": { "description": "The network-wide routing mode to use. If set to REGIONAL, this network's Cloud Routers will only advertise routes with subnets of this network in the same region as the router. If set to GLOBAL, this network's Cloud Routers will advertise routes with all subnets of this network, across regions.", "enum": [ @@ -62563,6 +70166,7 @@ "id": "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy", "properties": { "displayName": { + "deprecated": true, "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy.", "type": "string" }, @@ -62670,6 +70274,20 @@ "description": "An opaque location hint used to place the Node close to other resources. This field is for use by internal tools that use the public API. The location hint here on the NodeGroup overrides any location_hint present in the NodeTemplate.", "type": "string" }, + "maintenanceInterval": { + "description": "Specifies the frequency of planned maintenance events. The accepted values are: `AS_NEEDED` and `RECURRENT`.", + "enum": [ + "AS_NEEDED", + "PERIODIC", + "RECURRENT" + ], + "enumDescriptions": [ + "VMs are eligible to receive infrastructure and hypervisor updates as they become available. This may result in more maintenance operations (live migrations or terminations) for the VM than the PERIODIC and RECURRENT options.", + "VMs receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean a VM will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available.", + "VMs receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean a VM will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available. RECURRENT is used for GEN3 and Slice of Hardware VMs." + ], + "type": "string" + }, "maintenancePolicy": { "description": "Specifies how to handle instances when a node in the group undergoes maintenance. Set to one of: DEFAULT, RESTART_IN_PLACE, or MIGRATE_WITHIN_NODE_GROUP. The default value is DEFAULT. For more information, see Maintenance policies.", "enum": [ @@ -62787,6 +70405,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -62805,6 +70424,36 @@ "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.", @@ -62816,6 +70465,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -62939,6 +70589,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -62957,6 +70608,36 @@ "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.", @@ -62968,6 +70649,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -63020,6 +70702,7 @@ "id": "NodeGroupMaintenanceWindow", "properties": { "duration": { + "deprecated": true, "description": "[Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario.", "type": "string" }, @@ -63123,6 +70806,10 @@ "totalResources": { "$ref": "InstanceConsumptionInfo", "description": "Total amount of available resources on the node." + }, + "upcomingMaintenance": { + "$ref": "UpcomingMaintenance", + "description": "[Output Only] The information about an upcoming maintenance event." } }, "type": "object" @@ -63194,6 +70881,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -63212,6 +70900,36 @@ "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.", @@ -63223,6 +70941,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -63270,6 +70989,23 @@ }, "type": "object" }, + "NodeGroupsPerformMaintenanceRequest": { + "id": "NodeGroupsPerformMaintenanceRequest", + "properties": { + "nodes": { + "description": "[Required] List of nodes affected by the call.", + "items": { + "type": "string" + }, + "type": "array" + }, + "startTime": { + "description": "The start time of the schedule. The timestamp is an RFC3339 string.", + "type": "string" + } + }, + "type": "object" + }, "NodeGroupsScopedList": { "id": "NodeGroupsScopedList", "properties": { @@ -63296,6 +71032,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -63314,6 +71051,36 @@ "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.", @@ -63325,6 +71092,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -63460,7 +71228,7 @@ }, "nodeTypeFlexibility": { "$ref": "NodeTemplateNodeTypeFlexibility", - "description": "The flexible properties of the desired node type. Node groups that use this node template will create nodes of a type that matches these properties. This field is mutually exclusive with the node_type property; you can only define one or the other, but not both." + "description": "Do not use. Instead, use the node_type property." }, "region": { "description": "[Output Only] The name of the region where the node template resides, such as us-central1.", @@ -63552,6 +71320,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -63570,6 +71339,36 @@ "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.", @@ -63581,6 +71380,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -63672,6 +71472,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -63690,6 +71491,36 @@ "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.", @@ -63701,6 +71532,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -63789,6 +71621,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -63807,6 +71640,36 @@ "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.", @@ -63818,6 +71681,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -63981,6 +71845,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -63999,6 +71864,36 @@ "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.", @@ -64010,6 +71905,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -64101,6 +71997,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -64119,6 +72016,36 @@ "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.", @@ -64130,6 +72057,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -64203,6 +72131,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -64221,6 +72150,36 @@ "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.", @@ -64232,6 +72191,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -64373,6 +72333,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -64391,6 +72352,36 @@ "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.", @@ -64402,6 +72393,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -64520,6 +72512,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -64538,6 +72531,36 @@ "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.", @@ -64549,6 +72572,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -64622,6 +72646,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -64640,6 +72665,36 @@ "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.", @@ -64651,6 +72706,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -64699,7 +72755,7 @@ "type": "object" }, "Operation": { - "description": "Represents an Operation resource. Google Compute Engine has three Operation resources: * [Global](/compute/docs/reference/rest/alpha/globalOperations) * [Regional](/compute/docs/reference/rest/alpha/regionOperations) * [Zonal](/compute/docs/reference/rest/alpha/zoneOperations) You can use an operation resource to manage asynchronous API requests. For more information, read Handling API responses. Operations can be global, regional or zonal. - For global operations, use the `globalOperations` resource. - For regional operations, use the `regionOperations` resource. - For zonal operations, use the `zonalOperations` resource. For more information, read Global, Regional, and Zonal Resources.", + "description": "Represents an Operation resource. Google Compute Engine has three Operation resources: * [Global](/compute/docs/reference/rest/alpha/globalOperations) * [Regional](/compute/docs/reference/rest/alpha/regionOperations) * [Zonal](/compute/docs/reference/rest/alpha/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": { @@ -64784,6 +72840,9 @@ "description": "[Output Only] The time that this operation was requested. This value is in RFC3339 text format.", "type": "string" }, + "instancesBulkInsertOperationMetadata": { + "$ref": "InstancesBulkInsertOperationMetadata" + }, "kind": { "default": "compute#operation", "description": "[Output Only] Type of the resource. Always `compute#operation` for Operation resources.", @@ -64818,6 +72877,10 @@ "description": "[Output Only] Server-defined URL for this resource with the resource id.", "type": "string" }, + "setCommonInstanceMetadataOperationMetadata": { + "$ref": "SetCommonInstanceMetadataOperationMetadata", + "description": "[Output Only] If the operation is for projects.setCommonInstanceMetadata, this field will contain information on all underlying zonal actions and their state." + }, "startTime": { "description": "[Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.", "type": "string" @@ -64850,7 +72913,7 @@ "type": "string" }, "user": { - "description": "[Output Only] User who requested the operation, for example: `user@example.com`.", + "description": "[Output Only] User who requested the operation, for example: `user@example.com` or `alice_smith_identifier (global/workforcePools/example-com-us-employees)`.", "type": "string" }, "warnings": { @@ -64870,6 +72933,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -64888,6 +72952,36 @@ "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.", @@ -64899,6 +72993,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -65003,6 +73098,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -65021,6 +73117,36 @@ "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.", @@ -65032,6 +73158,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -65123,6 +73250,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -65141,6 +73269,36 @@ "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.", @@ -65152,6 +73310,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -65225,6 +73384,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -65243,6 +73403,36 @@ "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.", @@ -65254,6 +73444,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -65335,54 +73526,54 @@ "properties": { "baseEjectionTime": { "$ref": "Duration", - "description": "The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s." + "description": "The base time that a backend endpoint is ejected for. Defaults to 30000ms or 30s. After a backend endpoint is returned back to the load balancing pool, it can be ejected again in another ejection analysis. Thus, the total ejection time is equal to the base ejection time multiplied by the number of times the backend endpoint has been ejected. Defaults to 30000ms or 30s." }, "consecutiveErrors": { - "description": "Number of errors before a host is ejected from the connection pool. When the backend host is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5. 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": "Number of consecutive errors before a backend endpoint is ejected from the load balancing pool. When the backend endpoint is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5.", "format": "int32", "type": "integer" }, "consecutiveGatewayFailure": { - "description": "The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3. 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": "The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3.", "format": "int32", "type": "integer" }, "enforcingConsecutiveErrors": { - "description": "The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0. 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": "The percentage chance that a backend endpoint will be ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0.", "format": "int32", "type": "integer" }, "enforcingConsecutiveGatewayFailure": { - "description": "The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. 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": "The percentage chance that a backend endpoint will be ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.", "format": "int32", "type": "integer" }, "enforcingSuccessRate": { - "description": "The percentage chance that a host will be actually ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.", + "description": "The percentage chance that a backend endpoint will be ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. Not supported when the backend service uses Serverless NEG.", "format": "int32", "type": "integer" }, "interval": { "$ref": "Duration", - "description": "Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second." + "description": "Time interval between ejection analysis sweeps. This can result in both new ejections and backend endpoints being returned to service. The interval is equal to the number of seconds as defined in outlierDetection.interval.seconds plus the number of nanoseconds as defined in outlierDetection.interval.nanos. Defaults to 1 second." }, "maxEjectionPercent": { - "description": "Maximum percentage of hosts in the load balancing pool for the backend service that can be ejected. Defaults to 50%.", + "description": "Maximum percentage of backend endpoints in the load balancing pool for the backend service that can be ejected if the ejection conditions are met. Defaults to 50%.", "format": "int32", "type": "integer" }, "successRateMinimumHosts": { - "description": "The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. Defaults to 5.", + "description": "The number of backend endpoints in the load balancing pool that must have enough request volume to detect success rate outliers. If the number of backend endpoints is fewer than this setting, outlier detection via success rate statistics is not performed for any backend endpoint in the load balancing pool. Defaults to 5. Not supported when the backend service uses Serverless NEG.", "format": "int32", "type": "integer" }, "successRateRequestVolume": { - "description": "The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. Defaults to 100.", + "description": "The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this backend endpoint in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that backend endpoint. Defaults to 100. Not supported when the backend service uses Serverless NEG.", "format": "int32", "type": "integer" }, "successRateStdevFactor": { - "description": "This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900.", + "description": "This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * successRateStdevFactor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900. Not supported when the backend service uses Serverless NEG.", "format": "int32", "type": "integer" } @@ -65585,6 +73776,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -65603,6 +73795,36 @@ "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.", @@ -65614,6 +73836,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -65665,14 +73888,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" }, @@ -65753,6 +73976,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -65771,6 +73995,36 @@ "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.", @@ -65782,6 +74036,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -65924,6 +74179,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -65942,6 +74198,36 @@ "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.", @@ -65953,6 +74239,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -66000,17 +74287,36 @@ }, "type": "object" }, + "PartnerMetadata": { + "description": "Model definition of partner_metadata field. To be used in dedicated Partner Metadata methods and to be inlined in the Instance and InstanceTemplate resources.", + "id": "PartnerMetadata", + "properties": { + "fingerprint": { + "description": "Instance-level hash to be used for optimistic locking.", + "format": "byte", + "type": "string" + }, + "partnerMetadata": { + "additionalProperties": { + "$ref": "StructuredEntries" + }, + "description": "Partner Metadata assigned to the instance. A map from a subdomain to entries map. Subdomain name must be compliant with RFC1035 definition. The total size of all keys and values must be less than 2MB. Subdomain 'metadata.compute.googleapis.com' is reserverd for instance's metadata.", + "type": "object" + } + }, + "type": "object" + }, "PathMatcher": { "description": "A matcher for the path portion of the URL. The BackendService from the longest-matched rule will serve the URL. If no rule was matched, the default service is used.", "id": "PathMatcher", "properties": { "defaultCustomErrorResponsePolicy": { "$ref": "CustomErrorResponsePolicy", - "description": "defaultCustomErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. This policy takes effect at the PathMatcher level and applies only when no policy has been defined for the error code at lower levels like RouteRule and PathRule within this PathMatcher. If an error code does not have a policy defined in defaultCustomErrorResponsePolicy, then a policy defined for the error code in UrlMap.defaultCustomErrorResponsePolicy takes effect. For example, consider a UrlMap with the following configuration: - UrlMap.defaultCustomErrorResponsePolicy is configured with policies for 5xx and 4xx errors - A RouteRule for /coming_soon/ is configured for the error code 404. If the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in RouteRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in conjunction with pathMatcher.defaultRouteAction.retryPolicy, retries take precedence. Only once all retries are exhausted, the defaultCustomErrorResponsePolicy is applied. While attempting a retry, if load balancer is successful in reaching the service, the defaultCustomErrorResponsePolicy is ignored and the response from the service is returned to the client. defaultCustomErrorResponsePolicy is supported only for Global External HTTP(S) load balancing." + "description": "defaultCustomErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. This policy takes effect at the PathMatcher level and applies only when no policy has been defined for the error code at lower levels like RouteRule and PathRule within this PathMatcher. If an error code does not have a policy defined in defaultCustomErrorResponsePolicy, then a policy defined for the error code in UrlMap.defaultCustomErrorResponsePolicy takes effect. For example, consider a UrlMap with the following configuration: - UrlMap.defaultCustomErrorResponsePolicy is configured with policies for 5xx and 4xx errors - A RouteRule for /coming_soon/ is configured for the error code 404. If the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in RouteRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in conjunction with pathMatcher.defaultRouteAction.retryPolicy, retries take precedence. Only once all retries are exhausted, the defaultCustomErrorResponsePolicy is applied. While attempting a retry, if load balancer is successful in reaching the service, the defaultCustomErrorResponsePolicy is ignored and the response from the service is returned to the client. defaultCustomErrorResponsePolicy is supported only for global external Application Load Balancers." }, "defaultRouteAction": { "$ref": "HttpRouteAction", - "description": "defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a path matcher's defaultRouteAction." + "description": "defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path matcher's defaultRouteAction." }, "defaultService": { "description": "The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use ", @@ -66055,7 +74361,7 @@ "properties": { "customErrorResponsePolicy": { "$ref": "CustomErrorResponsePolicy", - "description": "customErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. If a policy for an error code is not configured for the PathRule, a policy for the error code configured in pathMatcher.defaultCustomErrorResponsePolicy is applied. If one is not specified in pathMatcher.defaultCustomErrorResponsePolicy, the policy configured in UrlMap.defaultCustomErrorResponsePolicy takes effect. For example, consider a UrlMap with the following configuration: - UrlMap.defaultCustomErrorResponsePolicy are configured with policies for 5xx and 4xx errors - A PathRule for /coming_soon/ is configured for the error code 404. If the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in PathRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect. customErrorResponsePolicy is supported only for Global External HTTP(S) load balancing." + "description": "customErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. If a policy for an error code is not configured for the PathRule, a policy for the error code configured in pathMatcher.defaultCustomErrorResponsePolicy is applied. If one is not specified in pathMatcher.defaultCustomErrorResponsePolicy, the policy configured in UrlMap.defaultCustomErrorResponsePolicy takes effect. For example, consider a UrlMap with the following configuration: - UrlMap.defaultCustomErrorResponsePolicy are configured with policies for 5xx and 4xx errors - A PathRule for /coming_soon/ is configured for the error code 404. If the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in PathRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect. customErrorResponsePolicy is supported only for global external Application Load Balancers." }, "paths": { "description": "The list of path patterns to match. Each must start with / and the only place a * is allowed is at the end following a /. The string fed to the path matcher does not include any text after the first ? or #, and those chars are not allowed here.", @@ -66066,7 +74372,7 @@ }, "routeAction": { "$ref": "HttpRouteAction", - "description": "In response to a matching path, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of routeAction or urlRedirect must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a path rule's routeAction." + "description": "In response to a matching path, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of routeAction or urlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path rule's routeAction." }, "service": { "description": "The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.", @@ -66218,7 +74524,7 @@ "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/).", + "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": { @@ -66451,6 +74757,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." @@ -66502,6 +74822,20 @@ "description": "[Output Only] Type of the resource. Always compute#project for projects.", "type": "string" }, + "managedProtectionTier": { + "description": "[Output Only] The Cloud Armor Managed Protection (CAMP) tier for this project. It can be one of the following values: CA_STANDARD, CAMP_PLUS_PAYGO. If this field is not specified, it is assumed to be CA_STANDARD.", + "enum": [ + "CAMP_PLUS_ANNUAL", + "CAMP_PLUS_PAYGO", + "CA_STANDARD" + ], + "enumDescriptions": [ + "Plus tier protection annual.", + "Plus tier protection monthly.", + "Standard protection." + ], + "type": "string" + }, "name": { "description": "The project ID. For example: my-example-project. Use the project ID to make requests to Compute Engine.", "type": "string" @@ -66608,6 +74942,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": { @@ -66642,10 +74996,42 @@ }, "type": "object" }, + "ProjectsSetManagedProtectionTierRequest": { + "id": "ProjectsSetManagedProtectionTierRequest", + "properties": { + "managedProtectionTier": { + "description": "Managed protection tier to be set.", + "enum": [ + "CAMP_PLUS_ANNUAL", + "CAMP_PLUS_PAYGO", + "CA_STANDARD" + ], + "enumDescriptions": [ + "Plus tier protection annual.", + "Plus tier protection monthly.", + "Standard protection." + ], + "type": "string" + } + }, + "type": "object" + }, "PublicAdvertisedPrefix": { "description": "A public advertised prefix represents an aggregated IP prefix or netblock which customers bring to cloud. The IP prefix is a single unit of route advertisement and is announced globally to the internet.", "id": "PublicAdvertisedPrefix", "properties": { + "byoipApiVersion": { + "description": "[Output Only] The version of BYOIP API.", + "enum": [ + "V1", + "V2" + ], + "enumDescriptions": [ + "This public advertised prefix can be used to create both regional and global public delegated prefixes. It usually takes 4 weeks to create or delete a public delegated prefix. The BGP status cannot be changed.", + "This public advertised prefix can only be used to create regional public delegated prefixes. Public delegated prefix creation and deletion takes minutes and the BGP status can be modified." + ], + "type": "string" + }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -66655,7 +75041,7 @@ "type": "string" }, "dnsVerificationIp": { - "description": "The IPv4 address to be used for reverse DNS verification.", + "description": "The address to be used for reverse DNS verification.", "type": "string" }, "fingerprint": { @@ -66669,7 +75055,7 @@ "type": "string" }, "ipCidrRange": { - "description": "The IPv4 address range, in CIDR format, represented by this public advertised prefix.", + "description": "The address range, in CIDR format, represented by this public advertised prefix.", "type": "string" }, "kind": { @@ -66792,6 +75178,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -66810,6 +75197,36 @@ "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.", @@ -66821,6 +75238,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -66899,6 +75317,23 @@ "description": "A PublicDelegatedPrefix resource represents an IP block within a PublicAdvertisedPrefix that is configured within a single cloud scope (global or region). IPs in the block can be allocated to resources within that scope. Public delegated prefixes may be further broken up into smaller IP blocks in the same scope as the parent block.", "id": "PublicDelegatedPrefix", "properties": { + "allocatablePrefixLength": { + "description": "The allocatable prefix length supported by this public delegated prefix. This field is optional and cannot be set for prefixes in DELEGATION mode. It cannot be set for IPv4 prefixes either, and it always defaults to 32.", + "format": "int32", + "type": "integer" + }, + "byoipApiVersion": { + "description": "[Output Only] The version of BYOIP API.", + "enum": [ + "V1", + "V2" + ], + "enumDescriptions": [ + "This public delegated prefix usually takes 4 weeks to delete, and the BGP status cannot be changed. Announce and Withdraw APIs can not be used on this prefix.", + "This public delegated prefix takes minutes to delete. Announce and Withdraw APIs can be used on this prefix to change the BGP status." + ], + "type": "string" + }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -66918,7 +75353,7 @@ "type": "string" }, "ipCidrRange": { - "description": "The IPv4 address range, in CIDR format, represented by this public delegated prefix.", + "description": "The IP address range, in CIDR format, represented by this public delegated prefix.", "type": "string" }, "isLiveMigration": { @@ -66930,6 +75365,18 @@ "description": "[Output Only] Type of the resource. Always compute#publicDelegatedPrefix for public delegated prefixes.", "type": "string" }, + "mode": { + "description": "The public delegated prefix mode for IPv6 only.", + "enum": [ + "DELEGATION", + "EXTERNAL_IPV6_FORWARDING_RULE_CREATION" + ], + "enumDescriptions": [ + "The public delegated prefix is used for further sub-delegation only. Such prefixes cannot set allocatablePrefixLength.", + "The public delegated prefix is used for creating forwarding rules only. Such prefixes cannot set publicDelegatedSubPrefixes." + ], + "type": "string" + }, "name": { "annotations": { "required": [ @@ -67037,6 +75484,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -67055,6 +75503,36 @@ "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.", @@ -67066,6 +75544,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -67156,6 +75635,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -67174,6 +75654,36 @@ "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.", @@ -67185,6 +75695,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -67236,6 +75747,11 @@ "description": "Represents a sub PublicDelegatedPrefix.", "id": "PublicDelegatedPrefixPublicDelegatedSubPrefix", "properties": { + "allocatablePrefixLength": { + "description": "The allocatable prefix length supported by this PublicDelegatedSubPrefix.", + "format": "int32", + "type": "integer" + }, "delegateeProject": { "description": "Name of the project scoping this PublicDelegatedSubPrefix.", "type": "string" @@ -67245,13 +75761,25 @@ "type": "string" }, "ipCidrRange": { - "description": "The IPv4 address range, in CIDR format, represented by this sub public delegated prefix.", + "description": "The IP address range, in CIDR format, represented by this sub public delegated prefix.", "type": "string" }, "isAddress": { "description": "Whether the sub prefix is delegated to create Address resources in the delegatee project.", "type": "boolean" }, + "mode": { + "description": "The PublicDelegatedSubPrefix mode for IPv6 only.", + "enum": [ + "DELEGATION", + "EXTERNAL_IPV6_FORWARDING_RULE_CREATION" + ], + "enumDescriptions": [ + "The public delegated prefix is used for further sub-delegation only. Such prefixes cannot set allocatablePrefixLength.", + "The public delegated prefix is used for creating forwarding rules only. Such prefixes cannot set publicDelegatedSubPrefixes." + ], + "type": "string" + }, "name": { "description": "The name of the sub public delegated prefix.", "type": "string" @@ -67301,6 +75829,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -67319,6 +75848,36 @@ "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.", @@ -67330,6 +75889,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -67505,6 +76065,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -67523,6 +76084,36 @@ "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.", @@ -67534,6 +76125,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -67709,6 +76301,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -67727,6 +76320,36 @@ "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.", @@ -67738,6 +76361,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -67811,6 +76435,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -67829,6 +76454,36 @@ "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.", @@ -67840,6 +76495,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -67939,13 +76595,16 @@ "COMMITTED_N2_CPUS", "COMMITTED_NVIDIA_A100_80GB_GPUS", "COMMITTED_NVIDIA_A100_GPUS", + "COMMITTED_NVIDIA_H100_GPUS", "COMMITTED_NVIDIA_K80_GPUS", + "COMMITTED_NVIDIA_L4_GPUS", "COMMITTED_NVIDIA_P100_GPUS", "COMMITTED_NVIDIA_P4_GPUS", "COMMITTED_NVIDIA_T4_GPUS", "COMMITTED_NVIDIA_V100_GPUS", "COMMITTED_T2A_CPUS", "COMMITTED_T2D_CPUS", + "COMMITTED_Z3_CPUS", "CPUS", "CPUS_ALL_REGIONS", "DISKS_TOTAL_GB", @@ -67989,13 +76648,18 @@ "N2D_CPUS", "N2_CPUS", "NETWORKS", + "NETWORK_ATTACHMENTS", "NETWORK_ENDPOINT_GROUPS", "NETWORK_FIREWALL_POLICIES", + "NET_LB_SECURITY_POLICIES_PER_REGION", + "NET_LB_SECURITY_POLICY_RULES_PER_REGION", + "NET_LB_SECURITY_POLICY_RULE_ATTRIBUTES_PER_REGION", "NODE_GROUPS", "NODE_TEMPLATES", "NVIDIA_A100_80GB_GPUS", "NVIDIA_A100_GPUS", "NVIDIA_K80_GPUS", + "NVIDIA_L4_GPUS", "NVIDIA_P100_GPUS", "NVIDIA_P100_VWS_GPUS", "NVIDIA_P4_GPUS", @@ -68009,7 +76673,9 @@ "PREEMPTIBLE_LOCAL_SSD_GB", "PREEMPTIBLE_NVIDIA_A100_80GB_GPUS", "PREEMPTIBLE_NVIDIA_A100_GPUS", + "PREEMPTIBLE_NVIDIA_H100_GPUS", "PREEMPTIBLE_NVIDIA_K80_GPUS", + "PREEMPTIBLE_NVIDIA_L4_GPUS", "PREEMPTIBLE_NVIDIA_P100_GPUS", "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS", "PREEMPTIBLE_NVIDIA_P4_GPUS", @@ -68017,6 +76683,10 @@ "PREEMPTIBLE_NVIDIA_T4_GPUS", "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS", "PREEMPTIBLE_NVIDIA_V100_GPUS", + "PREEMPTIBLE_TPU_LITE_DEVICE_V4", + "PREEMPTIBLE_TPU_LITE_DEVICE_V5", + "PREEMPTIBLE_TPU_LITE_PODSLICE_V5", + "PREEMPTIBLE_TPU_PODSLICE_V4", "PRIVATE_V6_ACCESS_SUBNETWORKS", "PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK", "PSC_INTERNAL_LB_FORWARDING_RULES", @@ -68035,6 +76705,7 @@ "ROUTES", "SECURITY_POLICIES", "SECURITY_POLICIES_PER_REGION", + "SECURITY_POLICY_ADVANCED_RULES_PER_REGION", "SECURITY_POLICY_CEVAL_RULES", "SECURITY_POLICY_RULES", "SECURITY_POLICY_RULES_PER_REGION", @@ -68055,6 +76726,10 @@ "TARGET_SSL_PROXIES", "TARGET_TCP_PROXIES", "TARGET_VPN_GATEWAYS", + "TPU_LITE_DEVICE_V4", + "TPU_LITE_DEVICE_V5", + "TPU_LITE_PODSLICE_V5", + "TPU_PODSLICE_V4", "URL_MAPS", "VPN_GATEWAYS", "VPN_TUNNELS", @@ -68093,6 +76768,9 @@ "", "", "", + "", + "", + "", "Guest CPUs", "", "", @@ -68186,6 +76864,18 @@ "", "", "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", "The total number of snapshots allowed for a single project.", "", "", @@ -68205,6 +76895,10 @@ "", "", "", + "", + "", + "", + "", "" ], "type": "string" @@ -68232,6 +76926,11 @@ "description": "The map holding related quota dimensions.", "type": "object" }, + "futureLimit": { + "description": "Future quota limit being rolled out. The limit's unit depends on the quota type or metric.", + "format": "double", + "type": "number" + }, "limit": { "description": "Current effective quota limit. The limit's unit depends on the quota type or metric.", "format": "double", @@ -68244,6 +76943,18 @@ "metricName": { "description": "The Compute Engine quota metric name.", "type": "string" + }, + "rolloutStatus": { + "description": "Rollout status of the future quota limit.", + "enum": [ + "IN_PROGRESS", + "ROLLOUT_STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "IN_PROGRESS - A rollout is in process which will change the limit value to future limit.", + "ROLLOUT_STATUS_UNSPECIFIED - Rollout status is not specified. The default value." + ], + "type": "string" } }, "type": "object" @@ -68425,6 +77136,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -68443,6 +77155,36 @@ "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.", @@ -68454,6 +77196,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -68557,6 +77300,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -68575,6 +77319,36 @@ "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.", @@ -68586,6 +77360,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -68680,16 +77455,6 @@ }, "type": "object" }, - "RegionDisksStopAsyncReplicationRequest": { - "id": "RegionDisksStopAsyncReplicationRequest", - "properties": { - "asyncSecondaryDisk": { - "description": "[Deprecated] The secondary disk to stop asynchronous replication to. This field will not be included in the beta or v1 APIs and will be removed from the alpha API in the near future.", - "type": "string" - } - }, - "type": "object" - }, "RegionInstanceGroupList": { "description": "Contains a list of InstanceGroup resources.", "id": "RegionInstanceGroupList", @@ -68734,6 +77499,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -68752,6 +77518,36 @@ "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.", @@ -68763,6 +77559,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -68868,6 +77665,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -68886,6 +77684,36 @@ "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.", @@ -68897,6 +77725,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -69010,14 +77839,14 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" }, "minimalAction": { - "description": "The minimal action that you want to perform on each instance during the update: - REPLACE: At minimum, delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt the instance at all. By default, the minimum action is NONE. If your update requires a more disruptive action than you set with this flag, the necessary action is performed to execute the update.", + "description": "The minimal action that you want to perform on each instance during the update: - REPLACE: At minimum, delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the minimum action is NONE. If your update requires a more disruptive action than you set with this flag, the necessary action is performed to execute the update.", "enum": [ "NONE", "REFRESH", @@ -69026,14 +77855,14 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" }, "mostDisruptiveAllowedAction": { - "description": "The most disruptive action that you want to perform on each instance during the update: - REPLACE: Delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt the instance at all. By default, the most disruptive allowed action is REPLACE. If your update requires a more disruptive action than you set with this flag, the update request will fail.", + "description": "The most disruptive action that you want to perform on each instance during the update: - REPLACE: Delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the most disruptive allowed action is REPLACE. If your update requires a more disruptive action than you set with this flag, the update request will fail.", "enum": [ "NONE", "REFRESH", @@ -69042,9 +77871,9 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" } @@ -69076,6 +77905,7 @@ "type": "array" }, "skipInapplicableInstances": { + "deprecated": true, "description": "Skip instances which cannot be deleted (instances not belonging to this managed group, already being deleted or being abandoned). If `false`, fail whole flow, if such instance is passed. DEPRECATED: Use skip_instances_on_validation_error instead.", "type": "boolean" }, @@ -69133,6 +77963,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -69151,6 +77982,36 @@ "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.", @@ -69162,6 +78023,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -69397,6 +78259,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -69415,6 +78278,36 @@ "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.", @@ -69426,6 +78319,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -69514,16 +78408,6 @@ }, "type": "object" }, - "RegionInstantSnapshotsExportRequest": { - "id": "RegionInstantSnapshotsExportRequest", - "properties": { - "exportParams": { - "$ref": "InstantSnapshotExportParams", - "description": "Parameters to export the changed blocks." - } - }, - "type": "object" - }, "RegionList": { "description": "Contains a list of region resources.", "id": "RegionList", @@ -69568,6 +78452,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -69586,6 +78471,36 @@ "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.", @@ -69597,6 +78512,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -69644,6 +78560,32 @@ }, "type": "object" }, + "RegionNetworkEndpointGroupsAttachEndpointsRequest": { + "id": "RegionNetworkEndpointGroupsAttachEndpointsRequest", + "properties": { + "networkEndpoints": { + "description": "The list of network endpoints to be attached.", + "items": { + "$ref": "NetworkEndpoint" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionNetworkEndpointGroupsDetachEndpointsRequest": { + "id": "RegionNetworkEndpointGroupsDetachEndpointsRequest", + "properties": { + "networkEndpoints": { + "description": "The list of network endpoints to be detached.", + "items": { + "$ref": "NetworkEndpoint" + }, + "type": "array" + } + }, + "type": "object" + }, "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse": { "id": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse", "properties": { @@ -69791,6 +78733,14 @@ "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" }, + "deleteAfterDuration": { + "$ref": "Duration", + "description": "Duration time relative to reservation creation when Compute Engine will automatically delete this resource." + }, + "deleteAtTime": { + "description": "Absolute time in future when the reservation will be auto-deleted by Compute Engine. Timestamp is represented in RFC3339 text format.", + "type": "string" + }, "description": { "description": "An optional description of this resource. Provide this property when you create the resource.", "type": "string" @@ -69886,6 +78836,7 @@ "NO_RESERVATION", "SPECIFIC_RESERVATION", "SPECIFIC_THEN_ANY_RESERVATION", + "SPECIFIC_THEN_NO_RESERVATION", "UNSPECIFIED" ], "enumDescriptions": [ @@ -69893,6 +78844,7 @@ "Do not consume from any allocated capacity.", "Must consume from a specific reservation. Must specify key value fields for specifying the reservations.", "Prefer to consume from a specific reservation, but still consume any reservation available if the specified reservation is not available or exhausted. Must specify key value fields for specifying the reservations.", + "Prefer to consume from a specific reservation, but still consume from the on-demand pool if the specified reservation is exhausted. Must specify key value fields for specifying the reservations.", "" ], "type": "string" @@ -69963,6 +78915,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -69981,6 +78934,36 @@ "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.", @@ -69992,6 +78975,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -70082,6 +79066,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -70100,6 +79085,36 @@ "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.", @@ -70111,6 +79126,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -70195,6 +79211,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -70213,6 +79230,36 @@ "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.", @@ -70224,6 +79271,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -70341,6 +79389,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -70359,6 +79408,36 @@ "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.", @@ -70370,6 +79449,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -70559,6 +79639,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -70577,6 +79658,36 @@ "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.", @@ -70588,6 +79699,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -70715,6 +79827,11 @@ ], "type": "string" }, + "sliceCount": { + "description": "Specifies the number of slices in a multislice workload.", + "format": "int32", + "type": "integer" + }, "style": { "description": "Specifies instances to hosts placement relationship", "enum": [ @@ -70774,7 +79891,7 @@ "type": "string" }, "timeZone": { - "description": "Specifies the time zone to be used in interpreting Schedule.schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database.", + "description": "Specifies the time zone to be used in interpreting Schedule.schedule. The value of this field must be a time zone name from the tz database: https://wikipedia.org/wiki/Tz_database.", "type": "string" }, "vmStartSchedule": { @@ -70845,6 +79962,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -70863,6 +79981,36 @@ "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.", @@ -70874,6 +80022,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -70975,6 +80124,7 @@ "type": "integer" }, "onPolicySwitch": { + "deprecated": true, "enum": [ "DO_NOT_RETROACTIVELY_APPLY", "RETROACTIVELY_APPLY", @@ -71139,6 +80289,10 @@ "description": "Contains output only fields. Use this sub-message for actual values set on Instance attributes as compared to the value requested by the user (intent) in their instance CRUD calls.", "id": "ResourceStatus", "properties": { + "lastInstanceTerminationDetails": { + "$ref": "ResourceStatusLastInstanceTerminationDetails", + "description": "[Output Only] Contains last termination details why the instance was terminated." + }, "physicalHost": { "description": "[Output Only] An opaque ID of the host on which the VM is running.", "type": "string" @@ -71153,8 +80307,52 @@ "description": "[Output Only] Represents the status of the service integration specs defined by the user in instance.serviceIntegrationSpecs.", "type": "object" }, + "shutdownDetails": { + "$ref": "ResourceStatusShutdownDetails", + "description": "[Output Only] Details about stopping state of instance" + }, "upcomingMaintenance": { - "$ref": "ResourceStatusUpcomingMaintenance" + "$ref": "UpcomingMaintenance" + } + }, + "type": "object" + }, + "ResourceStatusLastInstanceTerminationDetails": { + "id": "ResourceStatusLastInstanceTerminationDetails", + "properties": { + "terminationReason": { + "description": "Reason for termination", + "enum": [ + "BAD_BILLING_ACCOUNT", + "CLOUD_ABUSE_DETECTED", + "DISK_ERROR", + "FREE_TRIAL_EXPIRED", + "INSTANCE_UPDATE_REQUIRED_RESTART", + "INTERNAL_ERROR", + "KMS_REJECTION", + "MANAGED_INSTANCE_GROUP", + "OS_TERMINATED", + "PREEMPTED", + "SCHEDULED_STOP", + "SHUTDOWN_DUE_TO_MAINTENANCE", + "USER_TERMINATED" + ], + "enumDescriptions": [ + "Terminated due to bad billing", + "Terminated by Cloud Abuse team", + "Terminated due to disk errors", + "Terminated due to free trial expired", + "Instance.update initiated which required RESTART", + "Terminated due to internal error", + "Terminated due to Key Management Service (KMS) key failure.", + "Terminated by managed instance group", + "Terminated from the OS level", + "Terminated due to preemption", + "Terminated due to scheduled stop", + "Terminated due to maintenance", + "Terminated by user" + ], + "type": "string" } }, "type": "object" @@ -71213,12 +80411,41 @@ }, "type": "object" }, - "ResourceStatusUpcomingMaintenance": { - "id": "ResourceStatusUpcomingMaintenance", + "ResourceStatusShutdownDetails": { + "description": "Specifies if the instance is in `SHUTTING_DOWN` state or there is a instance stopping scheduled.", + "id": "ResourceStatusShutdownDetails", "properties": { - "canReschedule": { - "description": "Indicates if the maintenance can be customer triggered. See go/sf-ctm-design for more details", - "type": "boolean" + "maxDuration": { + "$ref": "Duration", + "description": "Duration for graceful shutdown. Only applicable when `stop_state=SHUTTING_DOWN`." + }, + "requestTimestamp": { + "description": "Past timestamp indicating the beginning of current `stopState` in RFC3339 text format.", + "type": "string" + }, + "stopState": { + "description": "Current stopping state of the instance.", + "enum": [ + "SHUTTING_DOWN", + "STOPPING" + ], + "enumDescriptions": [ + "The instance is gracefully shutting down.", + "The instance is stopping." + ], + "type": "string" + }, + "targetState": { + "description": "Target instance state.", + "enum": [ + "DELETED", + "STOPPED" + ], + "enumDescriptions": [ + "The instance will be deleted.", + "The instance will be stopped." + ], + "type": "string" } }, "type": "object" @@ -71270,7 +80497,7 @@ "compute.routes.insert" ] }, - "description": "The destination range of outgoing packets that this route applies to. Both IPv4 and IPv6 are supported.", + "description": "The destination range of outgoing packets that this route applies to. Both IPv4 and IPv6 are supported. Must specify an IPv4 range (e.g. 192.0.2.0/24) or an IPv6 range in RFC 4291 format (e.g. 2001:db8::/32). IPv6 range will be displayed using RFC 5952 compressed format.", "type": "string" }, "id": { @@ -71318,6 +80545,10 @@ "description": "The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL: projects/ project/global/gateways/default-internet-gateway", "type": "string" }, + "nextHopHub": { + "description": "[Output Only] The full resource name of the Network Connectivity Center hub that will handle matching packets.", + "type": "string" + }, "nextHopIlb": { "description": "The URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should handle matching packets or the IP address of the forwarding Rule. For example, the following are all valid URLs: - 10.128.0.56 - https://www.googleapis.com/compute/v1/projects/project/regions/region /forwardingRules/forwardingRule - regions/region/forwardingRules/forwardingRule ", "type": "string" @@ -71326,18 +80557,42 @@ "description": "The URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/", "type": "string" }, + "nextHopInterRegionCost": { + "description": "[Output only] Internal fixed region-to-region cost that Google Cloud calculates based on factors such as network performance, distance, and available bandwidth between regions.", + "format": "uint32", + "type": "integer" + }, "nextHopInterconnectAttachment": { "description": "[Output Only] The URL to an InterconnectAttachment which is the next hop for the route. This field will only be populated for the dynamic routes generated by Cloud Router with a linked interconnectAttachment.", "type": "string" }, "nextHopIp": { - "description": "The network IP address of an instance that should handle matching packets. Only IPv4 is supported.", + "description": "The network IP address of an instance that should handle matching packets. Both IPv6 address and IPv4 addresses are supported. Must specify an IPv4 address in dot-decimal notation (e.g. 192.0.2.99) or an IPv6 address in RFC 4291 format (e.g. 2001:db8::2d9:51:0:0 or 2001:db8:0:0:2d9:51:0:0). IPv6 addresses will be displayed using RFC 5952 compressed format (e.g. 2001:db8::2d9:51:0:0). Should never be an IPv4-mapped IPv6 address.", "type": "string" }, + "nextHopMed": { + "description": "[Output Only] Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network.", + "format": "uint32", + "type": "integer" + }, "nextHopNetwork": { "description": "The URL of the local network if it should handle matching packets.", "type": "string" }, + "nextHopOrigin": { + "description": "[Output Only] Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE.", + "enum": [ + "EGP", + "IGP", + "INCOMPLETE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, "nextHopPeering": { "description": "[Output Only] The network peering name that should handle matching packets, which should conform to RFC1035.", "type": "string" @@ -71425,6 +80680,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -71443,6 +80699,36 @@ "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.", @@ -71454,6 +80740,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -71577,6 +80864,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -71595,6 +80883,36 @@ "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.", @@ -71606,6 +80924,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -71653,6 +80972,61 @@ }, "type": "object" }, + "RoutePolicy": { + "id": "RoutePolicy", + "properties": { + "fingerprint": { + "description": "A fingerprint for the Route Policy being applied to this Router, which is essentially a hash of the Route Policy used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update Route Policy. You must always provide an up-to-date fingerprint hash in order to update or change labels. To see the latest fingerprint, make a getRoutePolicy() request to retrieve a Route Policy.", + "format": "byte", + "type": "string" + }, + "name": { + "description": "Route Policy name, which must be a resource ID segment and unique within all the router's Route Policies. Name should conform to RFC1035.", + "type": "string" + }, + "terms": { + "description": "List of terms (the order in the list is not important, they are evaluated in order of priority). Order of policies is not retained and might change when getting policy later.", + "items": { + "$ref": "RoutePolicyPolicyTerm" + }, + "type": "array" + }, + "type": { + "enum": [ + "ROUTE_POLICY_TYPE_EXPORT", + "ROUTE_POLICY_TYPE_IMPORT" + ], + "enumDescriptions": [ + "The Route Policy is an Export Policy.", + "The Route Policy is an Import Policy." + ], + "type": "string" + } + }, + "type": "object" + }, + "RoutePolicyPolicyTerm": { + "id": "RoutePolicyPolicyTerm", + "properties": { + "actions": { + "description": "CEL expressions to evaluate to modify a route when this term matches.", + "items": { + "$ref": "Expr" + }, + "type": "array" + }, + "match": { + "$ref": "Expr", + "description": "CEL expression evaluated against a route to determine if this term applies. When not set, the term applies to all routes." + }, + "priority": { + "description": "The evaluation priority for this term, which must be between 0 (inclusive) and 2^31 (exclusive), and unique within the list.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "Router": { "description": "Represents a Cloud Router resource. For more information about Cloud Router, read the Cloud Router overview.", "id": "Router", @@ -71686,7 +81060,7 @@ "type": "string" }, "interfaces": { - "description": "Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.", + "description": "Router interfaces. To create a BGP peer that uses a router interface, the interface must have one of the following fields specified: - linkedVpnTunnel - linkedInterconnectAttachment - subnetwork You can create a router interface without any of these fields specified. However, you cannot create a BGP peer that uses that interface.", "items": { "$ref": "RouterInterface" }, @@ -71813,6 +81187,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -71831,6 +81206,36 @@ "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.", @@ -71842,6 +81247,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -71933,6 +81339,10 @@ "format": "uint32", "type": "integer" }, + "identifierRange": { + "description": "Explicitly specifies a range of valid BGP Identifiers for this Router. It is provided as a link-local IPv4 range (from 169.254.0.0/16), of size at least /30, even if the BGP sessions are over IPv6. It must not overlap with any IPv4 BGP session ranges. Other vendors commonly call this \"router ID\".", + "type": "string" + }, "keepaliveInterval": { "description": "The interval in seconds between BGP keepalive messages that are sent to the peer. Hold time is three times the interval at which keepalive messages are sent, and the hold time is the maximum number of seconds allowed to elapse between successive keepalive messages that BGP receives from a peer. BGP will use the smaller of either the local hold time value or the peer's hold time value as the hold time for the BGP connection between the two peers. If set, this value must be between 20 and 60. The default is 20.", "format": "uint32", @@ -71957,7 +81367,7 @@ "type": "string" }, "advertisedGroups": { - "description": "User-specified list of prefix groups to advertise in custom mode, which can take one of the following options: - ALL_SUBNETS: Advertises all available subnets, including peer VPC subnets. - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets. Note that this field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the \"bgp\" message). These groups are advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.", + "description": "User-specified list of prefix groups to advertise in custom mode, which currently supports the following option: - ALL_SUBNETS: Advertises all of the router's own VPC subnets. This excludes any routes learned for subnets that use VPC Network Peering. Note that this field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the \"bgp\" message). These groups are advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.", "items": { "enum": [ "ALL_PEER_VPC_SUBNETS", @@ -71989,6 +81399,18 @@ "$ref": "RouterBgpPeerBfd", "description": "BFD configuration for the BGP peering." }, + "customLearnedIpRanges": { + "description": "A list of user-defined custom learned route IP address ranges for a BGP session.", + "items": { + "$ref": "RouterBgpPeerCustomLearnedIpRange" + }, + "type": "array" + }, + "customLearnedRoutePriority": { + "description": "The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route ranges for the session. You can choose a value from `0` to `65335`. If you don't provide a value, Google Cloud assigns a priority of `100` to the ranges.", + "format": "int32", + "type": "integer" + }, "enable": { "description": "The status of the BGP peer connection. If set to FALSE, any active session with the peer is terminated and all associated routing information is removed. If set to TRUE, the peer connection can be established with routing information. The default is TRUE.", "enum": [ @@ -72001,10 +81423,28 @@ ], "type": "string" }, + "enableIpv4": { + "description": "Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4.", + "type": "boolean" + }, "enableIpv6": { "description": "Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.", "type": "boolean" }, + "exportPolicies": { + "description": "List of export policies applied to this peer, in the order they must be evaluated. The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type.", + "items": { + "type": "string" + }, + "type": "array" + }, + "importPolicies": { + "description": "List of import policies applied to this peer, in the order they must be evaluated. The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type.", + "items": { + "type": "string" + }, + "type": "array" + }, "interfaceName": { "description": "Name of the interface the BGP peer is associated with.", "type": "string" @@ -72013,6 +81453,10 @@ "description": "IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.", "type": "string" }, + "ipv4NexthopAddress": { + "description": "IPv4 address of the interface inside Google Cloud Platform.", + "type": "string" + }, "ipv6NexthopAddress": { "description": "IPv6 address of the interface inside Google Cloud Platform.", "type": "string" @@ -72057,6 +81501,10 @@ "description": "IP address of the BGP interface outside Google Cloud Platform. Only IPv4 is supported.", "type": "string" }, + "peerIpv4NexthopAddress": { + "description": "IPv4 address of the BGP interface outside Google Cloud Platform.", + "type": "string" + }, "peerIpv6NexthopAddress": { "description": "IPv6 address of the BGP interface outside Google Cloud Platform.", "type": "string" @@ -72134,6 +81582,16 @@ }, "type": "object" }, + "RouterBgpPeerCustomLearnedIpRange": { + "id": "RouterBgpPeerCustomLearnedIpRange", + "properties": { + "range": { + "description": "The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, a `/32` singular IP address range, and, for IPv6, `/128`.", + "type": "string" + } + }, + "type": "object" + }, "RouterInterface": { "id": "RouterInterface", "properties": { @@ -72141,12 +81599,24 @@ "description": "IP address and range of the interface. The IP range must be in the RFC3927 link-local IP address space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.", "type": "string" }, + "ipVersion": { + "description": "IP version of this interface.", + "enum": [ + "IPV4", + "IPV6" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, "linkedInterconnectAttachment": { - "description": "URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a virtual machine instance.", + "description": "URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a subnetwork.", "type": "string" }, "linkedVpnTunnel": { - "description": "URI of the linked VPN tunnel, which must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a virtual machine instance.", + "description": "URI of the linked VPN tunnel, which must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a subnetwork.", "type": "string" }, "managementType": { @@ -72231,6 +81701,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -72249,6 +81720,36 @@ "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.", @@ -72260,6 +81761,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -72326,7 +81828,7 @@ "compute.routers.update" ] }, - "description": "Name used to identify the key. Must be unique within a router. Must be referenced by at least one bgpPeer. Must comply with RFC1035.", + "description": "Name used to identify the key. Must be unique within a router. Must be referenced by exactly one bgpPeer. Must comply with RFC1035.", "type": "string" } }, @@ -72337,7 +81839,7 @@ "id": "RouterNat", "properties": { "autoNetworkTier": { - "description": "The network tier to use when automatically reserving IP addresses. Must be one of: PREMIUM, STANDARD. If not specified, PREMIUM tier will be used.", + "description": "The network tier to use when automatically reserving NAT IP addresses. Must be one of: PREMIUM, STANDARD. If not specified, then the current project-level default tier is used.", "enum": [ "FIXED_STANDARD", "PREMIUM", @@ -72377,7 +81879,7 @@ "ENDPOINT_TYPE_VM" ], "enumDescriptions": [ - "This is used for Regional Internal/External HTTP(S) and TCP Proxy load balancer endpoints.", + "This is used for regional Application Load Balancers (internal and external) and regional proxy Network Load Balancers (internal and external) endpoints.", "This is used for Secure Web Gateway endpoints.", "This is the default." ], @@ -72436,7 +81938,7 @@ "type": "array" }, "sourceSubnetworkIpRangesToNat": { - "description": "Specify the Nat option, which can take one of the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field subnetwork below) The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES or ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other Router.Nat section in any Router for this network in this region.", + "description": "Specify the Nat option, which can take one of the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field subnetwork below) The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES then there should not be any other Router.Nat section in any Router for this network in this region.", "enum": [ "ALL_SUBNETWORKS_ALL_IP_RANGES", "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES", @@ -72528,7 +82030,7 @@ "type": "string" }, "match": { - "description": "CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. If it evaluates to true, the corresponding `action` is enforced. The following examples are valid match expressions for public NAT: \"inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')\" \"destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'\" The following example is a valid match expression for private NAT: \"nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'\"", + "description": "CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. If it evaluates to true, the corresponding `action` is enforced. The following examples are valid match expressions for public NAT: \"inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')\" \"destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'\" The following example is a valid match expression for private NAT: \"nexthop.hub == '//networkconnectivity.googleapis.com/projects/my-project/locations/global/hubs/hub-1'\"", "type": "string" }, "ruleNumber": { @@ -72657,6 +82159,10 @@ "bfdStatus": { "$ref": "BfdStatus" }, + "enableIpv4": { + "description": "Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4.", + "type": "boolean" + }, "enableIpv6": { "description": "Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.", "type": "boolean" @@ -72665,6 +82171,10 @@ "description": "IP address of the local BGP interface.", "type": "string" }, + "ipv4NexthopAddress": { + "description": "IPv4 address of the local BGP interface.", + "type": "string" + }, "ipv6NexthopAddress": { "description": "IPv6 address of the local BGP interface.", "type": "string" @@ -72690,6 +82200,10 @@ "description": "IP address of the remote BGP interface.", "type": "string" }, + "peerIpv4NexthopAddress": { + "description": "IPv4 address of the remote BGP interface.", + "type": "string" + }, "peerIpv6NexthopAddress": { "description": "IPv6 address of the remote BGP interface.", "type": "string" @@ -72719,10 +82233,14 @@ "statusReason": { "description": "Indicates why particular status was returned.", "enum": [ + "IPV4_PEER_ON_IPV6_ONLY_CONNECTION", + "IPV6_PEER_ON_IPV4_ONLY_CONNECTION", "MD5_AUTH_INTERNAL_PROBLEM", "STATUS_REASON_UNSPECIFIED" ], "enumDescriptions": [ + "BGP peer disabled because it requires IPv4 but the underlying connection is IPv6-only.", + "BGP peer disabled because it requires IPv6 but the underlying connection is IPv4-only.", "Indicates internal problems with configuration of MD5 authentication. This particular reason can only be returned when md5AuthEnabled is true and status is DOWN.", "" ], @@ -72852,6 +82370,515 @@ }, "type": "object" }, + "RoutersGetNamedSetResponse": { + "id": "RoutersGetNamedSetResponse", + "properties": { + "etag": { + "description": "end_interface: MixerGetResponseWithEtagBuilder", + "type": "string" + }, + "resource": { + "$ref": "NamedSet" + } + }, + "type": "object" + }, + "RoutersGetRoutePolicyResponse": { + "id": "RoutersGetRoutePolicyResponse", + "properties": { + "etag": { + "description": "end_interface: MixerGetResponseWithEtagBuilder", + "type": "string" + }, + "resource": { + "$ref": "RoutePolicy" + } + }, + "type": "object" + }, + "RoutersListBgpRoutes": { + "id": "RoutersListBgpRoutes", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + }, + "kind": { + "default": "compute#routersListBgpRoutes", + "description": "[Output Only] Type of resource. Always compute#routersListBgpRoutes for lists of bgp routes.", + "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" + }, + "result": { + "description": "[Output Only] A list of bgp routes.", + "items": { + "$ref": "BgpRoute" + }, + "type": "array" + }, + "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" + }, + "RoutersListNamedSets": { + "id": "RoutersListNamedSets", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + }, + "kind": { + "default": "compute#routersListNamedSets", + "description": "[Output Only] Type of resource. Always compute#routersListNamedSets for lists of named sets.", + "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" + }, + "result": { + "description": "[Output Only] A list of named sets.", + "items": { + "$ref": "NamedSet" + }, + "type": "array" + }, + "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" + }, + "RoutersListRoutePolicies": { + "id": "RoutersListRoutePolicies", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + }, + "kind": { + "default": "compute#routersListRoutePolicies", + "description": "[Output Only] Type of resource. Always compute#routersListRoutePolicies for lists of route policies.", + "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" + }, + "result": { + "description": "[Output Only] A list of route policies.", + "items": { + "$ref": "RoutePolicy" + }, + "type": "array" + }, + "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" + }, "RoutersPreviewResponse": { "id": "RoutersPreviewResponse", "properties": { @@ -72888,6 +82915,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -72906,6 +82934,36 @@ "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.", @@ -72917,6 +82975,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -73043,7 +83102,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", @@ -73294,6 +83353,9 @@ "format": "int64", "type": "string" }, + "gracefulShutdown": { + "$ref": "SchedulingGracefulShutdown" + }, "hostErrorTimeoutSeconds": { "description": "Specify the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.", "format": "int32", @@ -73317,6 +83379,10 @@ "description": "Defines whether the instance is tolerant of higher cpu latency. This can only be set during instance creation, or when the instance is not currently running. It must not be set if the preemptible option is also set.", "type": "boolean" }, + "localSsdRecoveryTimeout": { + "$ref": "Duration", + "description": "Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour." + }, "locationHint": { "description": "An opaque location hint used to place the instance close to other resources. This field is for use by internal tools that use the public API.", "type": "string" @@ -73329,10 +83395,14 @@ "maintenanceInterval": { "description": "Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`.", "enum": [ - "PERIODIC" + "AS_NEEDED", + "PERIODIC", + "RECURRENT" ], "enumDescriptions": [ - "VMs receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean a VM will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available." + "VMs are eligible to receive infrastructure and hypervisor updates as they become available. This may result in more maintenance operations (live migrations or terminations) for the VM than the PERIODIC and RECURRENT options.", + "VMs receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean a VM will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available.", + "VMs receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean a VM will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available. RECURRENT is used for GEN3 and Slice of Hardware VMs." ], "type": "string" }, @@ -73364,6 +83434,9 @@ ], "type": "string" }, + "onInstanceStopAction": { + "$ref": "SchedulingOnInstanceStopAction" + }, "preemptible": { "description": "Defines whether the instance is preemptible. This can only be set during instance creation or while the instance is stopped and therefore, in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states.", "type": "boolean" @@ -73387,6 +83460,21 @@ }, "type": "object" }, + "SchedulingGracefulShutdown": { + "description": "Configuration for gracefully shutting down the instance.", + "id": "SchedulingGracefulShutdown", + "properties": { + "enabled": { + "description": "Opts-in for graceful shutdown.", + "type": "boolean" + }, + "maxDuration": { + "$ref": "Duration", + "description": "Specifies time needed to gracefully shut down the instance. After that time, the instance goes to STOPPING even if graceful shutdown is not completed." + } + }, + "type": "object" + }, "SchedulingNodeAffinity": { "description": "Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled.", "id": "SchedulingNodeAffinity", @@ -73419,6 +83507,17 @@ }, "type": "object" }, + "SchedulingOnInstanceStopAction": { + "description": "Defines the behaviour for instances with the instance_termination_action STOP.", + "id": "SchedulingOnInstanceStopAction", + "properties": { + "discardLocalSsd": { + "description": "If true, the contents of any attached Local SSD disks will be discarded else, the Local SSD data will be preserved when the instance is stopped at the end of the run duration/termination time.", + "type": "boolean" + } + }, + "type": "object" + }, "Screenshot": { "description": "An instance's screenshot.", "id": "Screenshot", @@ -73500,6 +83599,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -73518,6 +83618,36 @@ "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.", @@ -73529,6 +83659,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -73611,6 +83742,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -73629,6 +83761,36 @@ "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.", @@ -73640,6 +83802,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -73728,7 +83891,7 @@ "type": "string" }, "displayName": { - "description": "User-provided name of the Organization security plicy. The name should be unique in the organization in which the security policy is created. This should only be used when SecurityPolicyType is FIREWALL. The name must be 1-63 characters long, and comply with https://www.ietf.org/rfc/rfc1035.txt. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "description": "User-provided name of the organization security policy. The name should be unique in the organization in which the security policy is created. This should only be used when SecurityPolicyType is FIREWALL. The name must be 1-63 characters long, and comply with https://www.ietf.org/rfc/rfc1035.txt. 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" }, @@ -73796,7 +83959,7 @@ "type": "string" }, "type": { - "description": "The type indicates the intended use of the security policy. - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can be configured to filter incoming HTTP requests targeting backend services (including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They filter requests before the request is served from Google's cache. - CLOUD_ARMOR_INTERNAL_SERVICE: Cloud Armor internal service policies can be configured to filter HTTP requests targeting services managed by Traffic Director in a service mesh. They filter requests before the request is served from the application. This field can be set only at resource creation time.", + "description": "The type indicates the intended use of the security policy. - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can be configured to filter incoming HTTP requests targeting backend services (including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They filter requests before the request is served from Google's cache. - CLOUD_ARMOR_INTERNAL_SERVICE: Cloud Armor internal service policies can be configured to filter HTTP requests targeting services managed by Traffic Director in a service mesh. They filter requests before the request is served from the application. - CLOUD_ARMOR_NETWORK: Cloud Armor network policies can be configured to filter packets targeting network load balancing resources such as backend services, target pools, target instances, and instances with external IPs. They filter requests before the request is served from the application. This field can be set only at resource creation time.", "enum": [ "CLOUD_ARMOR", "CLOUD_ARMOR_EDGE", @@ -73861,15 +84024,15 @@ "type": "object" }, "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig": { - "description": "Configuration options for L7 DDoS detection.", + "description": "Configuration options for L7 DDoS detection. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig", "properties": { "enable": { - "description": "If set to true, enables CAAP for L7 DDoS detection.", + "description": "If set to true, enables CAAP for L7 DDoS detection. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", "type": "boolean" }, "ruleVisibility": { - "description": "Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules.", + "description": "Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", "enum": [ "PREMIUM", "STANDARD" @@ -73879,6 +84042,88 @@ "" ], "type": "string" + }, + "thresholdConfigs": { + "description": "Configuration options for layer7 adaptive protection for various customizable thresholds.", + "items": { + "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig": { + "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig", + "properties": { + "autoDeployConfidenceThreshold": { + "format": "float", + "type": "number" + }, + "autoDeployExpirationSec": { + "format": "int32", + "type": "integer" + }, + "autoDeployImpactedBaselineThreshold": { + "format": "float", + "type": "number" + }, + "autoDeployLoadThreshold": { + "format": "float", + "type": "number" + }, + "detectionAbsoluteQps": { + "format": "float", + "type": "number" + }, + "detectionLoadThreshold": { + "format": "float", + "type": "number" + }, + "detectionRelativeToBaselineQps": { + "format": "float", + "type": "number" + }, + "name": { + "description": "The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the security policy.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "trafficGranularityConfigs": { + "description": "Configuration options for enabling Adaptive Protection to operate on specified granular traffic units.", + "items": { + "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig": { + "description": "Configurations to specifc granular traffic units processed by Adaptive Protection.", + "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig", + "properties": { + "enableEachUniqueValue": { + "description": "If enabled, traffic matching each unique value for the specified type constitutes a separate traffic unit. It can only be set to true if `value` is empty.", + "type": "boolean" + }, + "type": { + "description": "Type of this configuration.", + "enum": [ + "HTTP_HEADER_HOST", + "HTTP_PATH", + "UNSPECIFIED_TYPE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "value": { + "description": "Requests that match this value constitute a granular traffic unit.", + "type": "string" } }, "type": "object" @@ -73893,9 +84138,11 @@ "jsonParsing": { "enum": [ "DISABLED", - "STANDARD" + "STANDARD", + "STANDARD_WITH_GRAPHQL" ], "enumDescriptions": [ + "", "", "" ], @@ -73911,6 +84158,13 @@ "" ], "type": "string" + }, + "userIpRequestHeaders": { + "description": "An optional list of case-insensitive request header names to use for resolving the callers client IP address.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -73967,9 +84221,11 @@ "ddosProtection": { "enum": [ "ADVANCED", + "ADVANCED_PREVIEW", "STANDARD" ], "enumDescriptions": [ + "", "", "" ], @@ -74027,6 +84283,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -74045,6 +84302,36 @@ "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.", @@ -74056,6 +84343,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -74107,7 +84395,7 @@ "id": "SecurityPolicyRecaptchaOptionsConfig", "properties": { "redirectSiteKey": { - "description": "An optional field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used.", + "description": "An optional field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", "type": "string" } }, @@ -74127,7 +84415,7 @@ "id": "SecurityPolicyRule", "properties": { "action": { - "description": "The Action to perform when the rule is matched. The following are the valid actions: - allow: allow access to target. - deny(): deny access to target, returns the HTTP response code specified (valid values are 403, 404, and 502). - rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rate_limit_options to be set. - redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. - throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rate_limit_options to be set for this. ", + "description": "The Action to perform when the rule is matched. The following are the valid actions: - allow: allow access to target. - deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for `STATUS` are 403, 404, and 502. - rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rate_limit_options to be set. - redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. - throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rate_limit_options to be set for this. ", "type": "string" }, "description": { @@ -74152,7 +84440,7 @@ }, "headerAction": { "$ref": "SecurityPolicyRuleHttpHeaderAction", - "description": "Optional, additional actions that are performed on headers." + "description": "Optional, additional actions that are performed on headers. This field is only supported in Global Security Policies of type CLOUD_ARMOR." }, "kind": { "default": "compute#securityPolicyRule", @@ -74186,21 +84474,24 @@ }, "redirectOptions": { "$ref": "SecurityPolicyRuleRedirectOptions", - "description": "Parameters defining the redirect action. Cannot be specified for any other actions." + "description": "Parameters defining the redirect action. Cannot be specified for any other actions. This field is only supported in Global Security Policies of type CLOUD_ARMOR." }, "redirectTarget": { "description": "This must be specified for redirect actions. Cannot be specified for any other actions.", "type": "string" }, "ruleManagedProtectionTier": { + "deprecated": true, "description": "[Output Only] The minimum managed protection tier required for this rule. [Deprecated] Use requiredManagedProtectionTiers instead.", "enum": [ - "NONE", - "PLUS" + "CAMP_PLUS_ANNUAL", + "CAMP_PLUS_PAYGO", + "CA_STANDARD" ], "enumDescriptions": [ - "Standard protection.", - "Plus tier protection." + "Plus tier protection annual.", + "Plus tier protection monthly.", + "Standard protection." ], "type": "string" }, @@ -74268,7 +84559,11 @@ }, "expr": { "$ref": "Expr", - "description": "User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header." + "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.", @@ -74353,6 +84648,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", @@ -74537,7 +84862,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", "ALL_IPS", @@ -74547,8 +84872,23 @@ "IP", "REGION_CODE", "SNI", + "TLS_JA3_FINGERPRINT", + "USER_IP", "XFF_IP" ], + "enumDeprecated": [ + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], "enumDescriptions": [ "", "", @@ -74558,6 +84898,8 @@ "", "", "", + "", + "", "" ], "type": "string" @@ -74574,7 +84916,7 @@ "type": "string" }, "exceedAction": { - "description": "Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are \"deny(status)\", where valid values for status are 403, 404, 429, and 502, and \"redirect\" where the redirect parameters come from exceedRedirectOptions below.", + "description": "Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are `deny(STATUS)`, where valid values for `STATUS` are 403, 404, 429, and 502, and `redirect`, where the redirect parameters come from `exceedRedirectOptions` below. The `redirect` action is only supported in Global Security Policies of type CLOUD_ARMOR.", "type": "string" }, "exceedActionRpcStatus": { @@ -74583,7 +84925,7 @@ }, "exceedRedirectOptions": { "$ref": "SecurityPolicyRuleRedirectOptions", - "description": "Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect." + "description": "Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR." }, "rateLimitThreshold": { "$ref": "SecurityPolicyRuleRateLimitOptionsThreshold", @@ -74600,7 +84942,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", "ALL_IPS", @@ -74610,8 +84952,23 @@ "IP", "REGION_CODE", "SNI", + "TLS_JA3_FINGERPRINT", + "USER_IP", "XFF_IP" ], + "enumDeprecated": [ + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], "enumDescriptions": [ "", "", @@ -74621,6 +84978,8 @@ "", "", "", + "", + "", "" ], "type": "string" @@ -74727,6 +85086,7 @@ "id": "SecuritySettings", "properties": { "authentication": { + "deprecated": true, "description": "[Deprecated] Use clientTlsPolicy instead.", "type": "string" }, @@ -74743,7 +85103,7 @@ "description": "The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends." }, "clientTlsPolicy": { - "description": "Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that describes how clients should authenticate with this service's backends. clientTlsPolicy only applies to a global BackendService with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted. Note: This field currently has no impact.", + "description": "Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that describes how clients should authenticate with this service's backends. clientTlsPolicy only applies to a global BackendService with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted.", "type": "string" }, "clientTlsSettings": { @@ -74751,7 +85111,7 @@ "description": "[Deprecated] TLS Settings for the backend service." }, "subjectAltNames": { - "description": "Optional. A list of Subject Alternative Names (SANs) that the client verifies during a mutual TLS handshake with an server/endpoint for this BackendService. When the server presents its X.509 certificate to the client, the client inspects the certificate's subjectAltName field. If the field contains one of the specified values, the communication continues. Otherwise, it fails. This additional check enables the client to verify that the server is authorized to run the requested service. Note that the contents of the server certificate's subjectAltName field are configured by the Public Key Infrastructure which provisions server identities. Only applies to a global BackendService with loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached clientTlsPolicy with clientCertificate (mTLS mode). Note: This field currently has no impact.", + "description": "Optional. A list of Subject Alternative Names (SANs) that the client verifies during a mutual TLS handshake with an server/endpoint for this BackendService. When the server presents its X.509 certificate to the client, the client inspects the certificate's subjectAltName field. If the field contains one of the specified values, the communication continues. Otherwise, it fails. This additional check enables the client to verify that the server is authorized to run the requested service. Note that the contents of the server certificate's subjectAltName field are configured by the Public Key Infrastructure which provisions server identities. Only applies to a global BackendService with loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached clientTlsPolicy with clientCertificate (mTLS mode).", "items": { "type": "string" }, @@ -74860,7 +85220,7 @@ "type": "object" }, "ServiceAttachment": { - "description": "Represents a ServiceAttachment resource. A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 20", + "description": "Represents a ServiceAttachment resource. A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service.", "id": "ServiceAttachment", "properties": { "connectedEndpoints": { @@ -74950,13 +85310,23 @@ "type": "array" }, "producerForwardingRule": { + "deprecated": true, "description": "The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is serving the endpoint identified by this service attachment.", "type": "string" }, + "propagatedConnectionLimit": { + "description": "The number of consumer Network Connectivity Center spokes that connected Private Service Connect endpoints can be propagated to. This limit lets a service producer indirectly limit how many propagated Private Service Connect connections can be established to the producer's service attachment. If the connection preference of the service attachment is ACCEPT_MANUAL, the limit applies to each project or network that is listed in the consumer accept list. If the connection preference of the service attachment is ACCEPT_AUTOMATIC, the limit applies to each project that contains a connected endpoint. If unspecified, the default propagated connection limit is 250.", + "format": "uint32", + "type": "integer" + }, "pscServiceAttachmentId": { "$ref": "Uint128", "description": "[Output Only] An 128-bit global unique ID of the PSC service attachment." }, + "reconcileConnections": { + "description": "This flag determines whether a consumer accept/reject list change can reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints. - If false, connection policy update will only affect existing PENDING PSC endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched regardless how the connection policy is modified . - If true, update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to the reject list. For newly created service attachment, this boolean defaults to false.", + "type": "boolean" + }, "region": { "description": "[Output Only] URL of the region where the service attachment resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", "type": "string" @@ -74968,6 +85338,10 @@ "targetService": { "description": "The URL of a service serving the endpoint identified by this service attachment.", "type": "string" + }, + "tunnelingConfig": { + "$ref": "ServiceAttachmentTunnelingConfig", + "description": "When a tunneling config is set on this service attachment it will encapsulate traffic between consumer and producer. When tunneling is enabled: - nat_subnets must be unset - enable_proxy_protocol must be false - producer_forwarding_rule must be a L4 ILB. - " } }, "type": "object" @@ -75024,6 +85398,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -75042,6 +85417,36 @@ "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.", @@ -75053,6 +85458,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -75104,10 +85510,19 @@ "description": "[Output Only] A connection connected to this service attachment.", "id": "ServiceAttachmentConnectedEndpoint", "properties": { + "consumerNetwork": { + "description": "The url of the consumer network.", + "type": "string" + }, "endpoint": { "description": "The url of a connected endpoint.", "type": "string" }, + "propagatedConnectionCount": { + "description": "The number of consumer Network Connectivity Center spokes that the connected Private Service Connect endpoint has propagated to.", + "format": "uint32", + "type": "integer" + }, "pscConnectionId": { "description": "The PSC connection id of the connected endpoint.", "format": "uint64", @@ -75198,6 +85613,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -75216,6 +85632,36 @@ "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.", @@ -75227,6 +85673,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -75274,6 +85721,39 @@ }, "type": "object" }, + "ServiceAttachmentTunnelingConfig": { + "description": "Use to configure this PSC connection in tunneling mode. In tunneling mode traffic from consumer to producer will be encapsulated as it crosses the VPC boundary and traffic from producer to consumer will be decapsulated in the same manner.", + "id": "ServiceAttachmentTunnelingConfig", + "properties": { + "encapsulationProfile": { + "description": "Specify the encapsulation protocol and what metadata to include in incoming encapsulated packet headers.", + "enum": [ + "GENEVE_SECURITY_V1", + "UNSPECIFIED_ENCAPSULATION_PROFILE" + ], + "enumDescriptions": [ + "Use GENEVE encapsulation protocol and include the SECURITY_V1 set of GENEVE headers.", + "" + ], + "type": "string" + }, + "routingMode": { + "description": "How this Service Attachment will treat traffic sent to the tunnel_ip, destined for the consumer network.", + "enum": [ + "PACKET_INJECTION", + "STANDARD_ROUTING", + "UNSPECIFIED_ROUTING_MODE" + ], + "enumDescriptions": [ + "Traffic sent to this service attachment will be reinjected into the consumer network.", + "Response traffic, after de-encapsulation, will be returned to the client.", + "" + ], + "type": "string" + } + }, + "type": "object" + }, "ServiceAttachmentsScopedList": { "id": "ServiceAttachmentsScopedList", "properties": { @@ -75300,6 +85780,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -75318,6 +85799,36 @@ "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.", @@ -75329,6 +85840,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -75397,6 +85909,53 @@ }, "type": "object" }, + "SetCommonInstanceMetadataOperationMetadata": { + "id": "SetCommonInstanceMetadataOperationMetadata", + "properties": { + "clientOperationId": { + "description": "[Output Only] The client operation id.", + "type": "string" + }, + "perLocationOperations": { + "additionalProperties": { + "$ref": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo" + }, + "description": "[Output Only] Status information per location (location name is key). Example key: zones/us-central1-a", + "type": "object" + } + }, + "type": "object" + }, + "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo": { + "id": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo", + "properties": { + "error": { + "$ref": "Status", + "description": "[Output Only] If state is `ABANDONED` or `FAILED`, this field is populated." + }, + "state": { + "description": "[Output Only] Status of the action, which can be one of the following: `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.", + "enum": [ + "ABANDONED", + "DONE", + "FAILED", + "PROPAGATED", + "PROPAGATING", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "Operation not tracked in this location e.g. zone is marked as DOWN.", + "Operation has completed successfully.", + "Operation is in an error state.", + "Operation is confirmed to be in the location.", + "Operation is not yet confirmed to have been created in the location.", + "" + ], + "type": "string" + } + }, + "type": "object" + }, "ShareSettings": { "description": "The share setting for reservations and sole tenancy node groups.", "id": "ShareSettings", @@ -75668,6 +86227,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" + }, "guestFlush": { "description": "[Input Only] Whether to attempt an application consistent snapshot by informing the OS to prepare for the snapshot process.", "type": "boolean" @@ -75728,6 +86291,7 @@ "name": { "annotations": { "required": [ + "compute.disks.createSnapshot", "compute.snapshots.insert" ] }, @@ -75735,6 +86299,19 @@ "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, + "region": { + "description": "[Output Only] URL of the region where the snapshot resides. Only applicable for regional snapshots.", + "type": "string" + }, + "resourceStatus": { + "$ref": "SnapshotResourceStatus", + "description": "[Output only] ResourceStatus of the Snapshot resource" + }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "satisfiesPzs": { "description": "[Output Only] Reserved for future use.", "type": "boolean" @@ -75771,6 +86348,10 @@ "$ref": "CustomerEncryptionKey", "description": "The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key." }, + "sourceDiskForRecoveryCheckpoint": { + "description": "The source disk whose recovery checkpoint will be used to create this snapshot.", + "type": "string" + }, "sourceDiskId": { "description": "[Output Only] The ID value of the disk used to create this snapshot. This value may be used to determine whether the snapshot was taken from the current or a previous instance of a given disk name.", "type": "string" @@ -75779,6 +86360,10 @@ "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" @@ -75843,6 +86428,168 @@ }, "type": "object" }, + "SnapshotAggregatedList": { + "id": "SnapshotAggregatedList", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "SnapshotsScopedList", + "description": "[Output Only] Name of the scope containing this set of snapshots." + }, + "description": "A list of SnapshotsScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#snapshotAggregatedList", + "description": "[Output Only] Type of resource. Always compute#snapshotAggregatedList for aggregated lists of snapshots.", + "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" + }, "SnapshotList": { "description": "Contains a list of Snapshot resources.", "id": "SnapshotList", @@ -75887,6 +86634,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -75905,6 +86653,36 @@ "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.", @@ -75916,6 +86694,230 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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" + }, + "SnapshotResourceStatus": { + "id": "SnapshotResourceStatus", + "properties": { + "scheduledDeletionTime": { + "description": "[Output only] Scheduled deletion time of the snapshot. The snapshot will be deleted by the at any point within one hour after the deletion time.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "SnapshotSettings": { + "id": "SnapshotSettings", + "properties": { + "accessLocation": { + "$ref": "SnapshotSettingsAccessLocation", + "description": "(Regional snapshots use only)Policy of which location is allowed to access snapshot." + }, + "storageLocation": { + "$ref": "SnapshotSettingsStorageLocationSettings", + "description": "Policy of which storage location is going to be resolved, and additional data that particularizes how the policy is going to be carried out." + } + }, + "type": "object" + }, + "SnapshotSettingsAccessLocation": { + "id": "SnapshotSettingsAccessLocation", + "properties": { + "locations": { + "additionalProperties": { + "$ref": "SnapshotSettingsAccessLocationAccessLocationPreference" + }, + "description": "List of regions that can restore a regional snapshot from the current region", + "type": "object" + } + }, + "type": "object" + }, + "SnapshotSettingsAccessLocationAccessLocationPreference": { + "description": "A structure for specifying an allowed target region.", + "id": "SnapshotSettingsAccessLocationAccessLocationPreference", + "properties": { + "region": { + "description": "Accessible region name", + "type": "string" + } + }, + "type": "object" + }, + "SnapshotSettingsStorageLocationSettings": { + "id": "SnapshotSettingsStorageLocationSettings", + "properties": { + "locations": { + "additionalProperties": { + "$ref": "SnapshotSettingsStorageLocationSettingsStorageLocationPreference" + }, + "description": "When the policy is SPECIFIC_LOCATIONS, snapshots will be stored in the locations listed in this field. Keys are GCS bucket locations.", + "type": "object" + }, + "policy": { + "description": "The chosen location policy.", + "enum": [ + "LOCAL_REGION", + "NEAREST_MULTI_REGION", + "SPECIFIC_LOCATIONS", + "STORAGE_LOCATION_POLICY_UNSPECIFIED" + ], + "enumDescriptions": [ + "Store snapshot in the same region as with the originating disk. No additional parameters are needed.", + "Store snapshot to the nearest multi region GCS bucket, relative to the originating disk. No additional parameters are needed.", + "Store snapshot in the specific locations, as specified by the user. The list of regions to store must be defined under the `locations` field.", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "SnapshotSettingsStorageLocationSettingsStorageLocationPreference": { + "description": "A structure for specifying storage locations.", + "id": "SnapshotSettingsStorageLocationSettingsStorageLocationPreference", + "properties": { + "name": { + "description": "Name of the location. It should be one of the GCS buckets.", + "type": "string" + } + }, + "type": "object" + }, + "SnapshotsScopedList": { + "id": "SnapshotsScopedList", + "properties": { + "snapshots": { + "description": "[Output Only] A list of snapshots contained in this scope.", + "items": { + "$ref": "Snapshot" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning which replaces the list of snapshots 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.", @@ -76094,7 +87096,7 @@ "type": "object" }, "SslCertificate": { - "description": "Represents an SSL Certificate resource. Google Compute Engine has two SSL Certificate resources: * [Global](/compute/docs/reference/rest/alpha/sslCertificates) * [Regional](/compute/docs/reference/rest/alpha/regionSslCertificates) The sslCertificates are used by: - external HTTPS load balancers - SSL proxy load balancers The regionSslCertificates are used by internal HTTPS load balancers. Optionally, certificate file contents that you upload can contain a set of up to five PEM-encoded certificates. The API call creates an object (sslCertificate) that holds this data. You can use SSL keys and certificates to secure connections to a load balancer. For more information, read Creating and using SSL certificates, SSL certificates quotas and limits, and Troubleshooting SSL certificates.", + "description": "Represents an SSL certificate resource. Google Compute Engine has two SSL certificate resources: * [Global](/compute/docs/reference/rest/alpha/sslCertificates) * [Regional](/compute/docs/reference/rest/alpha/regionSslCertificates) The global SSL certificates (sslCertificates) are used by: - Global external Application Load Balancers - Classic Application Load Balancers - Proxy Network Load Balancers (with target SSL proxies) The regional SSL certificates (regionSslCertificates) are used by: - Regional external Application Load Balancers - Regional internal Application Load Balancers Optionally, certificate file contents that you upload can contain a set of up to five PEM-encoded certificates. The API call creates an object (sslCertificate) that holds this data. You can use SSL keys and certificates to secure connections to a load balancer. For more information, read Creating and using SSL certificates, SSL certificates quotas and limits, and Troubleshooting SSL certificates.", "id": "SslCertificate", "properties": { "certificate": { @@ -76227,6 +87229,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -76245,6 +87248,36 @@ "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.", @@ -76256,6 +87289,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -76347,6 +87381,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -76365,6 +87400,36 @@ "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.", @@ -76376,6 +87441,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -76523,6 +87589,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -76541,6 +87608,36 @@ "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.", @@ -76552,6 +87649,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -76653,6 +87751,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -76671,6 +87770,36 @@ "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.", @@ -76682,6 +87811,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -76772,6 +87902,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -76790,6 +87921,36 @@ "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.", @@ -76801,6 +87962,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -76886,6 +88048,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -76904,6 +88067,36 @@ "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.", @@ -76915,6 +88108,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -76963,7 +88157,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": { @@ -77071,6 +88265,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -77089,6 +88284,36 @@ "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.", @@ -77100,6 +88325,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -77232,6 +88458,1502 @@ }, "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" + }, + "StoragePool": { + "description": "Represents a zonal storage pool resource.", + "id": "StoragePool", + "properties": { + "capacityProvisioningType": { + "description": "Provisioning type of the byte capacity of the pool.", + "enum": [ + "ADVANCED", + "STANDARD", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "Advanced provisioning \"thinly\" allocates the related resource.", + "Standard provisioning allocates the related resource for the pool disks' exclusive use.", + "" + ], + "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" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#storagePool", + "description": "[Output Only] Type of the resource. Always compute#storagePool for storage pools.", + "type": "string" + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this storage pool, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a storage pool.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels to apply to this storage pool. These can be later modified by the setLabels method.", + "type": "object" + }, + "name": { + "annotations": { + "required": [ + "compute.storagePools.insert" + ] + }, + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "performanceProvisioningType": { + "description": "Provisioning type of the performance-related parameters of the pool, such as throughput and IOPS.", + "enum": [ + "ADVANCED", + "STANDARD", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "Advanced provisioning \"thinly\" allocates the related resource.", + "Standard provisioning allocates the related resource for the pool disks' exclusive use.", + "" + ], + "type": "string" + }, + "poolProvisionedCapacityGb": { + "description": "Size, in GiB, of the storage pool.", + "format": "int64", + "type": "string" + }, + "poolProvisionedIops": { + "description": "Provisioned IOPS of the storage pool. Only relevant if the storage pool type is hyperdisk-balanced.", + "format": "int64", + "type": "string" + }, + "poolProvisionedThroughput": { + "description": "Provisioned throughput of the storage pool. Only relevant if the storage pool type is hyperdisk-balanced or hyperdisk-throughput.", + "format": "int64", + "type": "string" + }, + "provisionedIops": { + "description": "DEPRECATED -- use \"pool provisioned IOPS\".", + "format": "int64", + "type": "string" + }, + "provisionedThroughput": { + "description": "DEPRECATED -- use \"pool provisioned throughput\".", + "format": "int64", + "type": "string" + }, + "resourceStatus": { + "$ref": "StoragePoolResourceStatus", + "description": "[Output Only] Status information for the storage pool resource." + }, + "selfLink": { + "description": "[Output Only] Server-defined fully-qualified URL for this resource.", + "type": "string" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource's resource id.", + "type": "string" + }, + "sizeGb": { + "description": "DEPRECATED -- use \"pool provisioned capacity gb\".", + "format": "int64", + "type": "string" + }, + "state": { + "description": "[Output Only] The status of storage pool creation. - CREATING: Storage pool is provisioning. storagePool. - FAILED: Storage pool creation failed. - READY: Storage pool is ready for use. - DELETING: Storage pool is deleting. ", + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY" + ], + "enumDescriptions": [ + "StoragePool is provisioning", + "StoragePool is deleting.", + "StoragePool creation failed.", + "StoragePool is ready for use." + ], + "type": "string" + }, + "status": { + "$ref": "StoragePoolResourceStatus", + "description": "[Output Only] Status information for the storage pool resource." + }, + "storagePoolType": { + "description": "Type of the storage pool.", + "type": "string" + }, + "zone": { + "description": "[Output Only] URL of the zone where the storage pool resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + } + }, + "type": "object" + }, + "StoragePoolAggregatedList": { + "id": "StoragePoolAggregatedList", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "StoragePoolsScopedList", + "description": "[Output Only] Name of the scope containing this set of storage pool." + }, + "description": "A list of StoragePoolsScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#storagePoolAggregatedList", + "description": "[Output Only] Type of resource. Always compute#storagePoolAggregatedList for aggregated lists of storage pools.", + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "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" + }, + "StoragePoolDisk": { + "id": "StoragePoolDisk", + "properties": { + "attachedInstances": { + "description": "[Output Only] Instances this disk is attached to.", + "items": { + "type": "string" + }, + "type": "array" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "disk": { + "description": "[Output Only] The URL of the disk.", + "type": "string" + }, + "name": { + "description": "[Output Only] The name of the disk.", + "type": "string" + }, + "provisionedIops": { + "description": "[Output Only] The number of IOPS provisioned for the disk.", + "format": "int64", + "type": "string" + }, + "provisionedThroughput": { + "description": "[Output Only] The throughput provisioned for the disk.", + "format": "int64", + "type": "string" + }, + "resourcePolicies": { + "description": "[Output Only] Resource policies applied to disk for automatic snapshot creations.", + "items": { + "type": "string" + }, + "type": "array" + }, + "sizeGb": { + "description": "[Output Only] The disk size, in GB.", + "format": "int64", + "type": "string" + }, + "status": { + "description": "[Output Only] The disk status.", + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY", + "RESTORING", + "UNAVAILABLE" + ], + "enumDescriptions": [ + "Disk is provisioning", + "Disk is deleting.", + "Disk creation failed.", + "Disk is ready for use.", + "Source data is being copied into the disk.", + "Disk is currently unavailable and cannot be accessed, attached or detached." + ], + "type": "string" + }, + "type": { + "description": "[Output Only] The disk type.", + "type": "string" + }, + "usedBytes": { + "description": "[Output Only] Amount of disk space used.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "StoragePoolList": { + "description": "A list of StoragePool resources.", + "id": "StoragePoolList", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of StoragePool resources.", + "items": { + "$ref": "StoragePool" + }, + "type": "array" + }, + "kind": { + "default": "compute#storagePoolList", + "description": "[Output Only] Type of resource. Always compute#storagePoolList for lists of storagePools.", + "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. end_interface: MixerListResponseWithEtagBuilder", + "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" + }, + "StoragePoolListDisks": { + "id": "StoragePoolListDisks", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of StoragePoolDisk resources.", + "items": { + "$ref": "StoragePoolDisk" + }, + "type": "array" + }, + "kind": { + "default": "compute#storagePoolListDisks", + "description": "[Output Only] Type of resource. Always compute#storagePoolListDisks for lists of disks in a storagePool.", + "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. end_interface: MixerListResponseWithEtagBuilder", + "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" + }, + "StoragePoolResourceStatus": { + "description": "[Output Only] Contains output only fields.", + "id": "StoragePoolResourceStatus", + "properties": { + "aggregateDiskProvisionedIops": { + "description": "DEPRECATED -- use \"total_provisioned_disk_iops\".", + "format": "int64", + "type": "string" + }, + "aggregateDiskSizeGb": { + "description": "DEPRECATED -- use \"total provisioned disk size gb\".", + "format": "int64", + "type": "string" + }, + "diskCount": { + "description": "[Output Only] Number of disks used.", + "format": "int64", + "type": "string" + }, + "lastResizeTimestamp": { + "description": "[Output Only] Timestamp of the last successful resize in RFC3339 text format.", + "type": "string" + }, + "maxAggregateDiskSizeGb": { + "description": "DEPRECATED -- use \"max provisioned disk size gb\"", + "format": "int64", + "type": "string" + }, + "maxTotalProvisionedDiskCapacityGb": { + "description": "[Output Only] Maximum allowed aggregate disk size in gigabytes.", + "format": "int64", + "type": "string" + }, + "numberOfDisks": { + "description": "DEPRECATED -- use \"disk count\".", + "format": "int64", + "type": "string" + }, + "poolUsedCapacityBytes": { + "description": "[Output Only] Space used by data stored in disks within the storage pool (in bytes). This will reflect the total number of bytes written to the disks in the pool, in contrast to the capacity of those disks.", + "format": "int64", + "type": "string" + }, + "poolUsedIops": { + "description": "Sum of all the disks' provisioned IOPS, minus some amount that is allowed per disk that is not counted towards pool's IOPS capacity.", + "format": "int64", + "type": "string" + }, + "poolUsedThroughput": { + "description": "[Output Only] Sum of all the disks' provisioned throughput in MB/s.", + "format": "int64", + "type": "string" + }, + "poolUserWrittenBytes": { + "description": "[Output Only] Amount of data written into the pool, before it is compacted.", + "format": "int64", + "type": "string" + }, + "totalProvisionedDiskCapacityGb": { + "description": "[Output Only] Sum of all the capacity provisioned in disks in this storage pool. A disk's provisioned capacity is the same as its total capacity.", + "format": "int64", + "type": "string" + }, + "totalProvisionedDiskIops": { + "description": "[Output Only] Sum of all the disks' provisioned IOPS.", + "format": "int64", + "type": "string" + }, + "totalProvisionedDiskThroughput": { + "description": "[Output Only] Sum of all the disks' provisioned throughput in MB/s, minus some amount that is allowed per disk that is not counted towards pool's throughput capacity.", + "format": "int64", + "type": "string" + }, + "usedBytes": { + "description": "DEPRECATED -- use \"pool used capacity\".", + "format": "int64", + "type": "string" + }, + "usedReducedBytes": { + "description": "DEPRECATED -- do not use, will be removed.", + "format": "int64", + "type": "string" + }, + "usedThroughput": { + "description": "DEPRECATED -- use \"pool used throughput\".", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "StoragePoolType": { + "id": "StoragePoolType", + "properties": { + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "deprecated": { + "$ref": "DeprecationStatus", + "description": "[Output Only] The deprecation status associated with this storage pool type." + }, + "description": { + "description": "[Output Only] An optional description of this resource.", + "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#storagePoolType", + "description": "[Output Only] Type of the resource. Always compute#storagePoolType for storage pool types.", + "type": "string" + }, + "maxPoolProvisionedCapacityGb": { + "description": "[Output Only] Maximum storage pool size in GB.", + "format": "int64", + "type": "string" + }, + "maxPoolProvisionedIops": { + "description": "[Output Only] Maximum provisioned IOPS.", + "format": "int64", + "type": "string" + }, + "maxPoolProvisionedThroughput": { + "description": "[Output Only] Maximum provisioned throughput.", + "format": "int64", + "type": "string" + }, + "minPoolProvisionedCapacityGb": { + "description": "[Output Only] Minimum storage pool size in GB.", + "format": "int64", + "type": "string" + }, + "minPoolProvisionedIops": { + "description": "[Output Only] Minimum provisioned IOPS.", + "format": "int64", + "type": "string" + }, + "minPoolProvisionedThroughput": { + "description": "[Output Only] Minimum provisioned throughput.", + "format": "int64", + "type": "string" + }, + "minSizeGb": { + "description": "[Deprecated] This field is deprecated. Use minPoolProvisionedCapacityGb instead.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "[Output Only] Name of the resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource with the resource id.", + "type": "string" + }, + "supportedDiskTypes": { + "description": "[Output Only] The list of disk types supported in this storage pool type.", + "items": { + "type": "string" + }, + "type": "array" + }, + "zone": { + "description": "[Output Only] URL of the zone where the storage pool type resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + } + }, + "type": "object" + }, + "StoragePoolTypeAggregatedList": { + "id": "StoragePoolTypeAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "StoragePoolTypesScopedList", + "description": "[Output Only] Name of the scope containing this set of storage pool types." + }, + "description": "A list of StoragePoolTypesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#storagePoolTypeAggregatedList", + "description": "[Output Only] Type of resource. Always compute#storagePoolTypeAggregatedList .", + "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" + }, + "StoragePoolTypeList": { + "description": "Contains a list of storage pool types.", + "id": "StoragePoolTypeList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of StoragePoolType resources.", + "items": { + "$ref": "StoragePoolType" + }, + "type": "array" + }, + "kind": { + "default": "compute#storagePoolTypeList", + "description": "[Output Only] Type of resource. Always compute#storagePoolTypeList for storage pool types.", + "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" + }, + "StoragePoolTypesScopedList": { + "id": "StoragePoolTypesScopedList", + "properties": { + "storagePoolTypes": { + "description": "[Output Only] A list of storage pool types contained in this scope.", + "items": { + "$ref": "StoragePoolType" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning which replaces the list of storage pool types 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": "object" + } + }, + "type": "object" + }, + "StoragePoolsScopedList": { + "id": "StoragePoolsScopedList", + "properties": { + "storagePools": { + "description": "[Output Only] A list of storage pool contained in this scope.", + "items": { + "$ref": "StoragePool" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning which replaces the list of storage pool 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": "object" + } + }, + "type": "object" + }, + "StructuredEntries": { + "id": "StructuredEntries", + "properties": { + "entries": { + "additionalProperties": { + "type": "any" + }, + "description": "Map of a partner metadata that belong to the same subdomain. It accepts any value including google.protobuf.Struct.", + "type": "object" + } + }, + "type": "object" + }, "Subnetwork": { "description": "Represents a Subnetwork resource. A subnetwork (also known as a subnet) is a logical partition of a Virtual Private Cloud network with one primary IP range and zero or more secondary IP ranges. For more information, read Virtual Private Cloud (VPC) Network.", "id": "Subnetwork", @@ -77269,7 +89991,7 @@ "type": "string" }, "enableFlowLogs": { - "description": "Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. This field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.", + "description": "Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. This field isn't supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.", "type": "boolean" }, "enableL2": { @@ -77277,6 +89999,7 @@ "type": "boolean" }, "enablePrivateV6Access": { + "deprecated": true, "description": "Deprecated in favor of enable in PrivateIpv6GoogleAccess. Whether the VMs in this subnet can directly access Google services via internal IPv6 addresses. This field can be both set at resource creation time and updated using patch.", "type": "boolean" }, @@ -77376,7 +90099,7 @@ "type": "string" }, "purpose": { - "description": "The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.", + "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": [ "AGGREGATE", "CLOUD_EXTENSION", @@ -77391,13 +90114,13 @@ "enumDescriptions": [ "Subnetwork used to aggregate multiple private subnetworks.", "Subnetworks created for Cloud Extension Machines.", - "Subnet reserved for Global Internal HTTP(S) Load Balancing.", - "Subnet reserved for Internal HTTP(S) Load Balancing.", + "Subnet reserved for Global Envoy-based Load Balancing.", + "Subnet reserved for Internal HTTP(S) Load Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY instead.", "Regular user created or automatically created subnet.", "Subnetwork used as source range for Private NAT Gateways.", "Regular user created or automatically created subnet.", "Subnetworks created for Private Service Connect in the producer network.", - "Subnetwork used for Regional Internal/External HTTP(S) Load Balancing." + "Subnetwork used for Regional Envoy-based Load Balancing." ], "type": "string" }, @@ -77410,7 +90133,7 @@ "type": "string" }, "role": { - "description": "The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.", + "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" @@ -77440,11 +90163,13 @@ "description": "The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.", "enum": [ "IPV4_IPV6", - "IPV4_ONLY" + "IPV4_ONLY", + "IPV6_ONLY" ], "enumDescriptions": [ "New VMs in this subnet can have both IPv4 and IPv6 addresses.", - "New VMs in this subnet will only be assigned IPv4 addresses." + "New VMs in this subnet will only be assigned IPv4 addresses.", + "New VMs in this subnet will only be assigned IPv6 addresses." ], "type": "string" }, @@ -77522,6 +90247,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -77540,6 +90266,36 @@ "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.", @@ -77551,6 +90307,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -77642,6 +90399,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -77660,6 +90418,36 @@ "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.", @@ -77671,6 +90459,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -77743,7 +90532,7 @@ "type": "string" }, "enable": { - "description": "Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled.", + "description": "Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. Flow logging isn't supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.", "type": "boolean" }, "filterExpr": { @@ -77834,6 +90623,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -77852,6 +90642,36 @@ "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.", @@ -77863,6 +90683,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -77955,7 +90776,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", @@ -78110,6 +90931,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -78128,6 +90950,36 @@ "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.", @@ -78139,6 +90991,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -78212,6 +91065,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -78230,6 +91084,36 @@ "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.", @@ -78241,6 +91125,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -78289,7 +91174,7 @@ "type": "object" }, "TargetHttpProxy": { - "description": "Represents a Target HTTP Proxy resource. Google Compute Engine has two Target HTTP Proxy resources: * [Global](/compute/docs/reference/rest/alpha/targetHttpProxies) * [Regional](/compute/docs/reference/rest/alpha/regionTargetHttpProxies) A target HTTP proxy is a component of GCP HTTP load balancers. * targetHttpProxies are used by external HTTP load balancers and Traffic Director. * regionTargetHttpProxies are used by internal HTTP load balancers. Forwarding rules reference a target HTTP proxy, and the target proxy then references a URL map. For more information, read Using Target Proxies and Forwarding rule concepts.", + "description": "Represents a Target HTTP Proxy resource. Google Compute Engine has two Target HTTP Proxy resources: * [Global](/compute/docs/reference/rest/alpha/targetHttpProxies) * [Regional](/compute/docs/reference/rest/alpha/regionTargetHttpProxies) A target HTTP proxy is a component of Google Cloud HTTP load balancers. * targetHttpProxies are used by global external Application Load Balancers, classic Application Load Balancers, cross-region internal Application Load Balancers, and Traffic Director. * regionTargetHttpProxies are used by regional internal Application Load Balancers and regional external Application Load Balancers. Forwarding rules reference a target HTTP proxy, and the target proxy then references a URL map. For more information, read Using Target Proxies and Forwarding rule concepts.", "id": "TargetHttpProxy", "properties": { "creationTimestamp": { @@ -78312,6 +91197,11 @@ }, "type": "array" }, + "httpKeepAliveTimeoutSec": { + "description": "Specifies how long to keep a connection open, after completing a response, while there is no matching traffic (in seconds). If an HTTP keep-alive is not specified, a default value (610 seconds) will be used. For global external Application Load Balancers, the minimum allowed value is 5 seconds and the maximum allowed value is 1200 seconds. For classic Application Load Balancers, this option is not supported.", + "format": "int32", + "type": "integer" + }, "id": { "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", "format": "uint64", @@ -78401,6 +91291,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -78419,6 +91310,36 @@ "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.", @@ -78430,6 +91351,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -78521,6 +91443,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -78539,6 +91462,36 @@ "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.", @@ -78550,6 +91503,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -78623,6 +91577,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -78641,6 +91596,36 @@ "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.", @@ -78652,6 +91637,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -78703,7 +91689,7 @@ "id": "TargetHttpsProxiesSetCertificateMapRequest", "properties": { "certificateMap": { - "description": "URL of the Certificate Map to associate with this TargetHttpsProxy.", + "description": "URL of the Certificate Map to associate with this TargetHttpsProxy. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" } }, @@ -78743,14 +91729,16 @@ "type": "object" }, "TargetHttpsProxy": { - "description": "Represents a Target HTTPS Proxy resource. Google Compute Engine has two Target HTTPS Proxy resources: * [Global](/compute/docs/reference/rest/alpha/targetHttpsProxies) * [Regional](/compute/docs/reference/rest/alpha/regionTargetHttpsProxies) A target HTTPS proxy is a component of GCP HTTPS load balancers. * targetHttpsProxies are used by external HTTPS load balancers. * regionTargetHttpsProxies are used by internal HTTPS load balancers. Forwarding rules reference a target HTTPS proxy, and the target proxy then references a URL map. For more information, read Using Target Proxies and Forwarding rule concepts.", + "description": "Represents a Target HTTPS Proxy resource. Google Compute Engine has two Target HTTPS Proxy resources: * [Global](/compute/docs/reference/rest/alpha/targetHttpsProxies) * [Regional](/compute/docs/reference/rest/alpha/regionTargetHttpsProxies) A target HTTPS proxy is a component of GCP HTTPS load balancers. * targetHttpProxies are used by global external Application Load Balancers, classic Application Load Balancers, cross-region internal Application Load Balancers, and Traffic Director. * regionTargetHttpProxies are used by regional internal Application Load Balancers and regional external Application Load Balancers. Forwarding rules reference a target HTTPS proxy, and the target proxy then references a URL map. For more information, read Using Target Proxies and Forwarding rule concepts.", "id": "TargetHttpsProxy", "properties": { "authentication": { + "deprecated": true, "description": "[Deprecated] Use serverTlsPolicy instead.", "type": "string" }, "authorization": { + "deprecated": true, "description": "[Deprecated] Use authorizationPolicy instead.", "type": "string" }, @@ -78759,7 +91747,7 @@ "type": "string" }, "certificateMap": { - "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored.", + "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" }, "creationTimestamp": { @@ -78782,6 +91770,11 @@ }, "type": "array" }, + "httpKeepAliveTimeoutSec": { + "description": "Specifies how long to keep a connection open, after completing a response, while there is no matching traffic (in seconds). If an HTTP keep-alive is not specified, a default value (610 seconds) will be used. For global external Application Load Balancers, the minimum allowed value is 5 seconds and the maximum allowed value is 1200 seconds. For classic Application Load Balancers, this option is not supported.", + "format": "int32", + "type": "integer" + }, "id": { "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", "format": "uint64", @@ -78828,7 +91821,7 @@ "type": "string" }, "serverTlsPolicy": { - "description": "Optional. A URL referring to a networksecurity.ServerTlsPolicy resource that describes how the proxy should authenticate inbound traffic. serverTlsPolicy only applies to a global TargetHttpsProxy attached to globalForwardingRules with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted. Note: This field currently has no impact.", + "description": "Optional. A URL referring to a networksecurity.ServerTlsPolicy resource that describes how the proxy should authenticate inbound traffic. serverTlsPolicy only applies to a global TargetHttpsProxy attached to globalForwardingRules with the loadBalancingScheme set to INTERNAL_SELF_MANAGED or EXTERNAL or EXTERNAL_MANAGED. For details which ServerTlsPolicy resources are accepted with INTERNAL_SELF_MANAGED and which with EXTERNAL, EXTERNAL_MANAGED loadBalancingScheme consult ServerTlsPolicy documentation. If left blank, communications are not encrypted.", "type": "string" }, "sslCertificates": { @@ -78842,6 +91835,20 @@ "description": "URL of SslPolicy resource that will be associated with the TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource has no SSL policy configured.", "type": "string" }, + "tlsEarlyData": { + "description": " Specifies whether TLS 1.3 0-RTT Data (\"Early Data\") should be accepted for this service. Early Data allows a TLS resumption handshake to include the initial application payload (a HTTP request) alongside the handshake, reducing the effective round trips to \"zero\". This applies to TLS 1.3 connections over TCP (HTTP/2) as well as over UDP (QUIC/h3). This can improve application performance, especially on networks where interruptions may be common, such as on mobile. Requests with Early Data will have the \"Early-Data\" HTTP header set on the request, with a value of \"1\", to allow the backend to determine whether Early Data was included. Note: TLS Early Data may allow requests to be replayed, as the data is sent to the backend before the handshake has fully completed. Applications that allow idempotent HTTP methods to make non-idempotent changes, such as a GET request updating a database, should not accept Early Data on those requests, and reject requests with the \"Early-Data: 1\" HTTP header by returning a HTTP 425 (Too Early) status code, in order to remain RFC compliant. The default value is DISABLED.", + "enum": [ + "DISABLED", + "PERMISSIVE", + "STRICT" + ], + "enumDescriptions": [ + "TLS 1.3 Early Data is not advertised, and any (invalid) attempts to send Early Data will be rejected by closing the connection.", + "This enables TLS 1.3 0-RTT, and only allows Early Data to be included on requests with safe HTTP methods (GET, HEAD, OPTIONS, TRACE). This mode does not enforce any other limitations for requests with Early Data. The application owner should validate that Early Data is acceptable for a given request path.", + "This enables TLS 1.3 0-RTT, and only allows Early Data to be included on requests with safe HTTP methods (GET, HEAD, OPTIONS, TRACE) without query parameters. Requests that send Early Data with non-idempotent HTTP methods or with query parameters will be rejected with a HTTP 425." + ], + "type": "string" + }, "urlMap": { "description": "A fully-qualified or valid partial URL to the UrlMap resource that defines the mapping from URL to the BackendService. For example, the following are all valid URLs for specifying a URL map: - https://www.googleapis.compute/v1/projects/project/global/urlMaps/ url-map - projects/project/global/urlMaps/url-map - global/urlMaps/url-map ", "type": "string" @@ -78900,6 +91907,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -78918,6 +91926,36 @@ "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.", @@ -78929,6 +91967,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -79020,6 +92059,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -79038,6 +92078,36 @@ "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.", @@ -79049,6 +92119,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -79211,6 +92282,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -79229,6 +92301,36 @@ "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.", @@ -79240,6 +92342,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -79331,6 +92434,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -79349,6 +92453,36 @@ "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.", @@ -79360,6 +92494,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -79433,6 +92568,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -79451,6 +92587,36 @@ "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.", @@ -79462,6 +92628,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -79510,7 +92677,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": { @@ -79653,6 +92820,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -79671,6 +92839,36 @@ "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.", @@ -79682,6 +92880,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -79790,6 +92989,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -79808,6 +93008,36 @@ "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.", @@ -79819,6 +93049,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -79944,6 +93175,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -79962,6 +93194,36 @@ "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.", @@ -79973,6 +93235,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -80043,7 +93306,7 @@ "id": "TargetSslProxiesSetCertificateMapRequest", "properties": { "certificateMap": { - "description": "URL of the Certificate Map to associate with this TargetSslProxy.", + "description": "URL of the Certificate Map to associate with this TargetSslProxy. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" } }, @@ -80081,11 +93344,11 @@ "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": { - "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored.", + "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" }, "creationTimestamp": { @@ -80189,6 +93452,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -80207,6 +93471,36 @@ "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.", @@ -80218,6 +93512,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -80291,6 +93586,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -80309,6 +93605,36 @@ "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.", @@ -80320,6 +93646,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -80396,7 +93723,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": { @@ -80504,6 +93831,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -80522,6 +93850,36 @@ "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.", @@ -80533,6 +93891,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -80624,6 +93983,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -80642,6 +94002,36 @@ "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.", @@ -80653,6 +94043,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -80845,6 +94236,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -80863,6 +94255,36 @@ "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.", @@ -80874,6 +94296,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -80965,6 +94388,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -80983,6 +94407,36 @@ "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.", @@ -80994,6 +94448,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -81067,6 +94522,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -81085,6 +94541,36 @@ "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.", @@ -81096,6 +94582,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -81342,23 +94829,40 @@ "type": "object" }, "UpcomingMaintenance": { - "description": "Upcoming Maintenance notification information. TODO(b/242069500) Deprecate this proto once it's fully migrated to be under proto ResourceStatus.UpcomingMaintenance.", + "description": "Upcoming Maintenance notification information.", "id": "UpcomingMaintenance", "properties": { "canReschedule": { - "description": "Indicates if the maintenance can be customer triggered. From more detail, see go/sf-ctm-design.", + "description": "Indicates if the maintenance can be customer triggered.", "type": "boolean" }, "date": { - "description": "[Output Only] The date when the maintenance will take place. This value is in RFC3339 text format. DEPRECATED: Use start_time_window instead.", + "description": "[Output Only] The date when the maintenance will take place. This value is in RFC3339 text format. DEPRECATED: Use window_start_time instead.", + "type": "string" + }, + "latestWindowStartTime": { + "description": "The latest time for the planned maintenance window to start. This timestamp value is in RFC3339 text format.", + "type": "string" + }, + "maintenanceStatus": { + "enum": [ + "ONGOING", + "PENDING", + "UNKNOWN" + ], + "enumDescriptions": [ + "There is ongoing maintenance on this VM.", + "There is pending maintenance.", + "Unknown maintenance status. Do not use this value." + ], "type": "string" }, "startTimeWindow": { "$ref": "UpcomingMaintenanceTimeWindow", - "description": "[Output Only] The start time window of the maintenance disruption." + "description": "[Output Only] The start time window of the maintenance disruption. DEPRECATED: Use window_start_time instead. TimeWindow is a container for two strings that represent timestamps in \"yyyy-MM-dd'T'HH:mm:ssZ\" text format." }, "time": { - "description": "[Output Only] The time when the maintenance will take place. This value is in RFC3339 text format. DEPRECATED: Use start_time_window instead.", + "description": "[Output Only] The time when the maintenance will take place. This value is in RFC3339 text format. DEPRECATED: Use window_start_time instead.", "type": "string" }, "type": { @@ -81374,12 +94878,20 @@ "Unscheduled maintenance (e.g. emergency maintenance during uptime guarantee)." ], "type": "string" + }, + "windowEndTime": { + "description": "The time by which the maintenance disruption will be completed. This timestamp value is in RFC3339 text format.", + "type": "string" + }, + "windowStartTime": { + "description": "The current start time of the maintenance window. This timestamp value is in RFC3339 text format.", + "type": "string" } }, "type": "object" }, "UpcomingMaintenanceTimeWindow": { - "description": "Represents a window of time using two timestamps: `earliest` and `latest`. This timestamp values are in RFC3339 text format.", + "description": "Represents a window of time using two timestamps: `earliest` and `latest`.", "id": "UpcomingMaintenanceTimeWindow", "properties": { "earliest": { @@ -81392,7 +94904,7 @@ "type": "object" }, "UrlMap": { - "description": "Represents a URL Map resource. Compute Engine has two URL Map resources: * [Global](/compute/docs/reference/rest/alpha/urlMaps) * [Regional](/compute/docs/reference/rest/alpha/regionUrlMaps) A URL map resource is a component of certain types of cloud load balancers and Traffic Director: * urlMaps are used by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used by internal HTTP(S) load balancers. For a list of supported URL map features by the load balancer type, see the Load balancing features: Routing and traffic management table. For a list of supported URL map features for Traffic Director, see the Traffic Director features: Routing and traffic management table. This resource defines mappings from hostnames and URL paths to either a backend service or a backend bucket. To use the global urlMaps resource, the backend service must have a loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For more information, read URL Map Concepts.", + "description": "Represents a URL Map resource. Compute Engine has two URL Map resources: * [Global](/compute/docs/reference/rest/alpha/urlMaps) * [Regional](/compute/docs/reference/rest/alpha/regionUrlMaps) A URL map resource is a component of certain types of cloud load balancers and Traffic Director: * urlMaps are used by global external Application Load Balancers, classic Application Load Balancers, and cross-region internal Application Load Balancers. * regionUrlMaps are used by internal Application Load Balancers, regional external Application Load Balancers and regional internal Application Load Balancers. For a list of supported URL map features by the load balancer type, see the Load balancing features: Routing and traffic management table. For a list of supported URL map features for Traffic Director, see the Traffic Director features: Routing and traffic management table. This resource defines mappings from hostnames and URL paths to either a backend service or a backend bucket. To use the global urlMaps resource, the backend service must have a loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For more information, read URL Map Concepts.", "id": "UrlMap", "properties": { "creationTimestamp": { @@ -81401,11 +94913,11 @@ }, "defaultCustomErrorResponsePolicy": { "$ref": "CustomErrorResponsePolicy", - "description": "defaultCustomErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. This policy takes effect at the Load Balancer level and applies only when no policy has been defined for the error code at lower levels like PathMatcher, RouteRule and PathRule within this UrlMap. For example, consider a UrlMap with the following configuration: - defaultCustomErrorResponsePolicy containing policies for responding to 5xx and 4xx errors - A PathMatcher configured for *.example.com has defaultCustomErrorResponsePolicy for 4xx. If a request for http://www.example.com/ encounters a 404, the policy in pathMatcher.defaultCustomErrorResponsePolicy will be enforced. When the request for http://www.example.com/ encounters a 502, the policy in UrlMap.defaultCustomErrorResponsePolicy will be enforced. When a request that does not match any host in *.example.com such as http://www.myotherexample.com/, encounters a 404, UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in conjunction with defaultRouteAction.retryPolicy, retries take precedence. Only once all retries are exhausted, the defaultCustomErrorResponsePolicy is applied. While attempting a retry, if load balancer is successful in reaching the service, the defaultCustomErrorResponsePolicy is ignored and the response from the service is returned to the client. defaultCustomErrorResponsePolicy is supported only for Global External HTTP(S) load balancing." + "description": "defaultCustomErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. This policy takes effect at the load balancer level and applies only when no policy has been defined for the error code at lower levels like PathMatcher, RouteRule and PathRule within this UrlMap. For example, consider a UrlMap with the following configuration: - defaultCustomErrorResponsePolicy containing policies for responding to 5xx and 4xx errors - A PathMatcher configured for *.example.com has defaultCustomErrorResponsePolicy for 4xx. If a request for http://www.example.com/ encounters a 404, the policy in pathMatcher.defaultCustomErrorResponsePolicy will be enforced. When the request for http://www.example.com/ encounters a 502, the policy in UrlMap.defaultCustomErrorResponsePolicy will be enforced. When a request that does not match any host in *.example.com such as http://www.myotherexample.com/, encounters a 404, UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in conjunction with defaultRouteAction.retryPolicy, retries take precedence. Only once all retries are exhausted, the defaultCustomErrorResponsePolicy is applied. While attempting a retry, if load balancer is successful in reaching the service, the defaultCustomErrorResponsePolicy is ignored and the response from the service is returned to the client. defaultCustomErrorResponsePolicy is supported only for global external Application Load Balancers." }, "defaultRouteAction": { "$ref": "HttpRouteAction", - "description": "defaultRouteAction takes effect when none of the hostRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within defaultRouteAction. defaultRouteAction has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." + "description": "defaultRouteAction takes effect when none of the hostRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within defaultRouteAction. defaultRouteAction has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." }, "defaultService": { "description": "The full or partial URL of the defaultService resource to which traffic is directed if none of the hostRules match. If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. defaultService has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", @@ -81519,6 +95031,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -81537,6 +95050,36 @@ "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.", @@ -81548,6 +95091,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -81745,6 +95289,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -81763,6 +95308,36 @@ "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.", @@ -81774,6 +95349,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -81847,6 +95423,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -81865,6 +95442,36 @@ "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.", @@ -81876,6 +95483,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -81927,7 +95535,7 @@ "id": "UrlMapsValidateRequest", "properties": { "loadBalancingSchemes": { - "description": "Specifies the load balancer type(s) this validation request is for. Use EXTERNAL_MANAGED for HTTP/HTTPS External Global Load Balancer with Advanced Traffic Management. Use EXTERNAL for Classic HTTP/HTTPS External Global Load Balancer. Other load balancer types are not supported. For more information, refer to Choosing a load balancer. If unspecified, the load balancing scheme will be inferred from the backend service resources this URL map references. If that can not be inferred (for example, this URL map only references backend buckets, or this Url map is for rewrites and redirects only and doesn't reference any backends), EXTERNAL will be used as the default type. If specified, the scheme(s) must not conflict with the load balancing scheme of the backend service resources this Url map references.", + "description": "Specifies the load balancer type(s) this validation request is for. Use EXTERNAL_MANAGED for global external Application Load Balancers and regional external Application Load Balancers. Use EXTERNAL for classic Application Load Balancers. Use INTERNAL_MANAGED for internal Application Load Balancers. For more information, refer to Choosing a load balancer. If unspecified, the load balancing scheme will be inferred from the backend service resources this URL map references. If that can not be inferred (for example, this URL map only references backend buckets, or this Url map is for rewrites and redirects only and doesn't reference any backends), EXTERNAL will be used as the default type. If specified, the scheme(s) must not conflict with the load balancing scheme of the backend service resources this Url map references.", "items": { "enum": [ "EXTERNAL", @@ -81935,9 +95543,9 @@ "LOAD_BALANCING_SCHEME_UNSPECIFIED" ], "enumDescriptions": [ - "Signifies that this will be used for Classic L7 External Load Balancing.", - "Signifies that this will be used for Envoy-based L7 External Load Balancing.", - "If unspecified, the validation will try to infer the scheme from the backend service resources this Url map references. If the inferrence is not possible, EXTERNAL will be used as the default type." + "Signifies that this will be used for classic Application Load Balancers.", + "Signifies that this will be used for Envoy-based global external Application Load Balancers.", + "If unspecified, the validation will try to infer the scheme from the backend service resources this Url map references. If the inference is not possible, EXTERNAL will be used as the default type." ], "type": "string" }, @@ -82011,7 +95619,7 @@ "type": "string" }, "purpose": { - "description": "The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.", + "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": [ "AGGREGATE", "CLOUD_EXTENSION", @@ -82026,18 +95634,18 @@ "enumDescriptions": [ "Subnetwork used to aggregate multiple private subnetworks.", "Subnetworks created for Cloud Extension Machines.", - "Subnet reserved for Global Internal HTTP(S) Load Balancing.", - "Subnet reserved for Internal HTTP(S) Load Balancing.", + "Subnet reserved for Global Envoy-based Load Balancing.", + "Subnet reserved for Internal HTTP(S) Load Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY instead.", "Regular user created or automatically created subnet.", "Subnetwork used as source range for Private NAT Gateways.", "Regular user created or automatically created subnet.", "Subnetworks created for Private Service Connect in the producer network.", - "Subnetwork used for Regional Internal/External HTTP(S) Load Balancing." + "Subnetwork used for Regional Envoy-based Load Balancing." ], "type": "string" }, "role": { - "description": "The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.", + "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" @@ -82059,11 +95667,13 @@ "description": "The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.", "enum": [ "IPV4_IPV6", - "IPV4_ONLY" + "IPV4_ONLY", + "IPV6_ONLY" ], "enumDescriptions": [ "New VMs in this subnet can have both IPv4 and IPv6 addresses.", - "New VMs in this subnet will only be assigned IPv4 addresses." + "New VMs in this subnet will only be assigned IPv4 addresses.", + "New VMs in this subnet will only be assigned IPv6 addresses." ], "type": "string" }, @@ -82132,6 +95742,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -82150,6 +95761,36 @@ "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.", @@ -82161,6 +95802,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -82366,6 +96008,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -82384,6 +96027,36 @@ "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.", @@ -82395,6 +96068,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -82454,6 +96128,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", @@ -82465,7 +96151,7 @@ "type": "string" }, "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this VpnGateway, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an VpnGateway.", + "description": "A fingerprint for the labels being applied to this VpnGateway, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a VpnGateway.", "format": "byte", "type": "string" }, @@ -82507,11 +96193,13 @@ "description": "The stack type for this VPN gateway to identify the IP protocols that are enabled. Possible values are: IPV4_ONLY, IPV4_IPV6. If not specified, IPV4_ONLY will be used.", "enum": [ "IPV4_IPV6", - "IPV4_ONLY" + "IPV4_ONLY", + "IPV6_ONLY" ], "enumDescriptions": [ "Enable VPN gateway with both IPv4 and IPv6 protocols.", - "Enable VPN gateway with only IPv4 protocol." + "Enable VPN gateway with only IPv4 protocol.", + "Enable VPN gateway with only IPv6 protocol." ], "type": "string" }, @@ -82576,6 +96264,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -82594,6 +96283,36 @@ "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.", @@ -82605,6 +96324,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -82696,6 +96416,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -82714,6 +96435,36 @@ "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.", @@ -82725,6 +96476,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -82824,7 +96576,7 @@ "type": "integer" }, "peerGatewayInterface": { - "description": "The peer gateway interface this VPN tunnel is connected to, the peer gateway could either be an external VPN gateway or GCP VPN gateway.", + "description": "The peer gateway interface this VPN tunnel is connected to, the peer gateway could either be an external VPN gateway or a Google Cloud VPN gateway.", "format": "uint32", "type": "integer" }, @@ -82836,7 +96588,7 @@ "type": "object" }, "VpnGatewayStatusVpnConnection": { - "description": "A VPN connection contains all VPN tunnels connected from this VpnGateway to the same peer gateway. The peer gateway could either be a external VPN gateway or GCP VPN gateway.", + "description": "A VPN connection contains all VPN tunnels connected from this VpnGateway to the same peer gateway. The peer gateway could either be an external VPN gateway or a Google Cloud VPN gateway.", "id": "VpnGatewayStatusVpnConnection", "properties": { "peerExternalGateway": { @@ -82877,6 +96629,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" @@ -82916,6 +96672,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -82934,6 +96691,36 @@ "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.", @@ -82945,6 +96732,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -83062,7 +96850,7 @@ "type": "integer" }, "peerGcpGateway": { - "description": "URL of the peer side HA GCP VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created. This field can be used when creating highly available VPN from VPC network to VPC network, the field is exclusive with the field peerExternalGateway. If provided, the VPN tunnel will automatically use the same vpnGatewayInterface ID in the peer GCP VPN gateway.", + "description": "URL of the peer side HA VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created. This field can be used when creating highly available VPN from VPC network to VPC network, the field is exclusive with the field peerExternalGateway. If provided, the VPN tunnel will automatically use the same vpnGatewayInterface ID in the peer Google Cloud VPN gateway.", "type": "string" }, "peerIp": { @@ -83197,6 +96985,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -83215,6 +97004,36 @@ "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.", @@ -83226,6 +97045,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -83317,6 +97137,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -83335,6 +97156,36 @@ "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.", @@ -83346,6 +97197,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -83419,6 +97271,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -83437,6 +97290,36 @@ "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.", @@ -83448,6 +97331,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -83525,6 +97409,11 @@ "id": { "description": "Expression ID should uniquely identify the origin of the expression. E.g. owasp-crs-v020901-id973337 identifies Owasp core rule set version 2.9.1 rule id 973337. The ID could be used to determine the individual attack definition that has been detected. It could also be used to exclude it from the policy in case of false positive. required", "type": "string" + }, + "sensitivity": { + "description": "The sensitivity value associated with the WAF rule ID. This corresponds to the ModSecurity paranoia level, ranging from 1 to 4. 0 is reserved for opt-in only rules.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -83592,6 +97481,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -83610,6 +97500,36 @@ "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.", @@ -83621,6 +97541,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -83799,6 +97720,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -83817,6 +97739,36 @@ "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.", @@ -83828,6 +97780,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", diff --git a/etc/api/compute/beta/compute-api.json b/etc/api/compute/beta/compute-api.json index 46b094a941..7610e6eb37 100644 --- a/etc/api/compute/beta/compute-api.json +++ b/etc/api/compute/beta/compute-api.json @@ -126,7 +126,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", @@ -135,7 +135,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -170,9 +170,15 @@ "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/acceleratorTypes", @@ -239,7 +245,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -269,7 +275,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" }, @@ -296,7 +302,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", @@ -305,7 +311,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -340,9 +346,15 @@ "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/addresses", @@ -498,7 +510,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -535,7 +547,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" } @@ -550,6 +562,56 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "move": { + "description": "Moves the specified address resource.", + "flatPath": "projects/{project}/regions/{region}/addresses/{address}/move", + "httpMethod": "POST", + "id": "compute.addresses.move", + "parameterOrder": [ + "project", + "region", + "address" + ], + "parameters": { + "address": { + "description": "Name of the address resource to move.", + "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": "Source project ID which the Address is moved from.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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}/addresses/{address}/move", + "request": { + "$ref": "RegionAddressesMoveRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setLabels": { "description": "Sets the labels on an Address. To learn more about labels, read the Labeling Resources documentation.", "flatPath": "projects/{project}/regions/{region}/addresses/{resource}/setLabels", @@ -651,7 +713,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", @@ -660,7 +722,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -695,9 +757,15 @@ "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/autoscalers", @@ -758,7 +826,7 @@ ] }, "get": { - "description": "Returns the specified autoscaler resource. Gets a list of available autoscalers by making a list() request.", + "description": "Returns the specified autoscaler resource.", "flatPath": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", "httpMethod": "GET", "id": "compute.autoscalers.get", @@ -853,7 +921,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -883,7 +951,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" }, @@ -1177,7 +1245,7 @@ ] }, "get": { - "description": "Returns the specified BackendBucket resource. Gets a list of available backend buckets by making a list() request.", + "description": "Returns the specified BackendBucket resource.", "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", "httpMethod": "GET", "id": "compute.backendBuckets.get", @@ -1296,7 +1364,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1326,7 +1394,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" } @@ -1394,7 +1462,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" @@ -1587,7 +1655,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", @@ -1596,7 +1664,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1631,9 +1699,15 @@ "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/backendServices", @@ -1731,7 +1805,7 @@ ] }, "get": { - "description": "Returns the specified BackendService resource. Gets a list of available backend services.", + "description": "Returns the specified BackendService resource.", "flatPath": "projects/{project}/global/backendServices/{backendService}", "httpMethod": "GET", "id": "compute.backendServices.get", @@ -1887,7 +1961,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1917,7 +1991,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" } @@ -1932,6 +2006,61 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "listUsable": { + "description": "Retrieves an aggregated list of all usable backend services in the specified project.", + "flatPath": "projects/{project}/global/backendServices/listUsable", + "httpMethod": "GET", + "id": "compute.backendServices.listUsable", + "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" + }, + "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" + } + }, + "path": "projects/{project}/global/backendServices/listUsable", + "response": { + "$ref": "BackendServiceListUsable" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "patch": { "description": "Patches the specified BackendService resource with the data included in the request. For more information, see Backend services overview. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", "flatPath": "projects/{project}/global/backendServices/{backendService}", @@ -2178,7 +2307,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", @@ -2187,7 +2316,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -2222,9 +2351,15 @@ "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/diskTypes", @@ -2238,7 +2373,7 @@ ] }, "get": { - "description": "Returns the specified disk type. Gets a list of available disk types by making a list() request.", + "description": "Returns the specified disk type.", "flatPath": "projects/{project}/zones/{zone}/diskTypes/{diskType}", "httpMethod": "GET", "id": "compute.diskTypes.get", @@ -2291,7 +2426,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -2321,7 +2456,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" }, @@ -2398,7 +2533,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", @@ -2407,7 +2542,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -2442,9 +2577,15 @@ "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/disks", @@ -2457,6 +2598,48 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "bulkInsert": { + "description": "Bulk create a set of disks.", + "flatPath": "projects/{project}/zones/{zone}/disks/bulkInsert", + "httpMethod": "POST", + "id": "compute.disks.bulkInsert", + "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" + }, + "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}/disks/bulkInsert", + "request": { + "$ref": "BulkInsertDiskResource" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "createSnapshot": { "description": "Creates a snapshot of a specified persistent disk. For regular snapshot creation, consider using snapshots.insert instead, as that method supports more features, such as creating snapshots in a project different from the source disk project.", "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot", @@ -2559,7 +2742,7 @@ ] }, "get": { - "description": "Returns a specified persistent disk. Gets a list of available persistent disks by making a list() request.", + "description": "Returns the specified persistent disk.", "flatPath": "projects/{project}/zones/{zone}/disks/{disk}", "httpMethod": "GET", "id": "compute.disks.get", @@ -2708,7 +2891,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -2738,7 +2921,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" }, @@ -2955,6 +3138,145 @@ "https://www.googleapis.com/auth/compute" ] }, + "startAsyncReplication": { + "description": "Starts asynchronous replication. Must be invoked on the primary disk.", + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/startAsyncReplication", + "httpMethod": "POST", + "id": "compute.disks.startAsyncReplication", + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "parameters": { + "disk": { + "description": "The name of the persistent disk.", + "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}/disks/{disk}/startAsyncReplication", + "request": { + "$ref": "DisksStartAsyncReplicationRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "stopAsyncReplication": { + "description": "Stops asynchronous replication. Can be invoked either on the primary or on the secondary disk.", + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/stopAsyncReplication", + "httpMethod": "POST", + "id": "compute.disks.stopAsyncReplication", + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "parameters": { + "disk": { + "description": "The name of the persistent disk.", + "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}/disks/{disk}/stopAsyncReplication", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "stopGroupAsyncReplication": { + "description": "Stops asynchronous replication for a consistency group of disks. Can be invoked either in the primary or secondary scope.", + "flatPath": "projects/{project}/zones/{zone}/disks/stopGroupAsyncReplication", + "httpMethod": "POST", + "id": "compute.disks.stopGroupAsyncReplication", + "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" + }, + "zone": { + "description": "The name of the zone for this request. This must be the zone of the primary or secondary disks in the consistency group.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/disks/stopGroupAsyncReplication", + "request": { + "$ref": "DisksStopGroupAsyncReplicationResource" + }, + "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}/disks/{resource}/testIamPermissions", @@ -3184,7 +3506,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -3214,7 +3536,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" } @@ -3609,7 +3931,7 @@ "id": "compute.firewallPolicies.list", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -3632,12 +3954,12 @@ "type": "string" }, "parentId": { - "description": "Parent ID for this request.", + "description": "Parent ID for this request. The ID can be either be \"folders/[FOLDER_ID]\" if the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the parent is an organization.", "location": "query", "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -3691,7 +4013,7 @@ "type": "string" }, "parentId": { - "description": "The new parent of the firewall policy.", + "description": "The new parent of the firewall policy. The ID can be either be \"folders/[FOLDER_ID]\" if the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the parent is an organization.", "location": "query", "type": "string" }, @@ -4038,7 +4360,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -4068,7 +4390,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" } @@ -4210,7 +4532,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", @@ -4219,7 +4541,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -4254,9 +4576,15 @@ "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/forwardingRules", @@ -4412,7 +4740,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -4449,7 +4777,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" } @@ -4662,6 +4990,369 @@ } } }, + "futureReservations": { + "methods": { + "aggregatedList": { + "description": "Retrieves an aggregated list of future reservations. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/futureReservations", + "httpMethod": "GET", + "id": "compute.futureReservations.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/futureReservations", + "response": { + "$ref": "FutureReservationsAggregatedListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "cancel": { + "description": "Cancel the specified future reservation.", + "flatPath": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}/cancel", + "httpMethod": "POST", + "id": "compute.futureReservations.cancel", + "parameterOrder": [ + "project", + "zone", + "futureReservation" + ], + "parameters": { + "futureReservation": { + "description": "Name of the future reservation to retrieve. 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 for this request. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}/cancel", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "delete": { + "description": "Deletes the specified future reservation.", + "flatPath": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}", + "httpMethod": "DELETE", + "id": "compute.futureReservations.delete", + "parameterOrder": [ + "project", + "zone", + "futureReservation" + ], + "parameters": { + "futureReservation": { + "description": "Name of the future reservation to retrieve. 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 for this request. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Retrieves information about the specified future reservation.", + "flatPath": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}", + "httpMethod": "GET", + "id": "compute.futureReservations.get", + "parameterOrder": [ + "project", + "zone", + "futureReservation" + ], + "parameters": { + "futureReservation": { + "description": "Name of the future reservation to retrieve. 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" + }, + "zone": { + "description": "Name of the zone for this request. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}", + "response": { + "$ref": "FutureReservation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a new Future Reservation.", + "flatPath": "projects/{project}/zones/{zone}/futureReservations", + "httpMethod": "POST", + "id": "compute.futureReservations.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" + }, + "zone": { + "description": "Name of the zone for this request. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/futureReservations", + "request": { + "$ref": "FutureReservation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "A list of all the future reservations that have been configured for the specified project in specified zone.", + "flatPath": "projects/{project}/zones/{zone}/futureReservations", + "httpMethod": "GET", + "id": "compute.futureReservations.list", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "Name of the zone for this request. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/futureReservations", + "response": { + "$ref": "FutureReservationsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "update": { + "description": "Updates the specified future reservation.", + "flatPath": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}", + "httpMethod": "PATCH", + "id": "compute.futureReservations.update", + "parameterOrder": [ + "project", + "zone", + "futureReservation" + ], + "parameters": { + "futureReservation": { + "description": "Name of the reservation to update. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "paths": { + "location": "query", + "repeated": 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" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}", + "request": { + "$ref": "FutureReservation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, "globalAddresses": { "methods": { "delete": { @@ -4704,7 +5395,7 @@ ] }, "get": { - "description": "Returns the specified address resource. Gets a list of available addresses by making a list() request.", + "description": "Returns the specified address resource.", "flatPath": "projects/{project}/global/addresses/{address}", "httpMethod": "GET", "id": "compute.globalAddresses.get", @@ -4782,7 +5473,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -4812,7 +5503,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" } @@ -4827,6 +5518,48 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "move": { + "description": "Moves the specified address resource from one project to another project.", + "flatPath": "projects/{project}/global/addresses/{address}/move", + "httpMethod": "POST", + "id": "compute.globalAddresses.move", + "parameterOrder": [ + "project", + "address" + ], + "parameters": { + "address": { + "description": "Name of the address resource to move.", + "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": "Source project ID which the Address is moved from.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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}/global/addresses/{address}/move", + "request": { + "$ref": "GlobalAddressesMoveRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setLabels": { "description": "Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling Resources documentation.", "flatPath": "projects/{project}/global/addresses/{resource}/setLabels", @@ -5024,7 +5757,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -5054,7 +5787,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" } @@ -5353,7 +6086,7 @@ ] }, "get": { - "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.", + "description": "Returns the specified network endpoint group.", "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}", "httpMethod": "GET", "id": "compute.globalNetworkEndpointGroups.get", @@ -5430,7 +6163,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -5460,7 +6193,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" } @@ -5486,7 +6219,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -5522,7 +6255,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" } @@ -5542,7 +6275,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", @@ -5551,7 +6284,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -5586,9 +6319,15 @@ "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/operations", @@ -5677,7 +6416,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -5707,7 +6446,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" } @@ -5828,7 +6567,7 @@ "id": "compute.globalOrganizationOperations.list", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -5856,7 +6595,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" } @@ -5993,7 +6732,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -6023,7 +6762,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" } @@ -6085,7 +6824,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", @@ -6094,7 +6833,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -6129,9 +6868,15 @@ "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/healthChecks", @@ -6184,7 +6929,7 @@ ] }, "get": { - "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.", + "description": "Returns the specified HealthCheck resource.", "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", "httpMethod": "GET", "id": "compute.healthChecks.get", @@ -6262,7 +7007,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -6292,7 +7037,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" } @@ -6473,7 +7218,7 @@ ] }, "get": { - "description": "Returns the specified HttpHealthCheck resource. Gets a list of available HTTP health checks by making a list() request.", + "description": "Returns the specified HttpHealthCheck resource.", "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", "httpMethod": "GET", "id": "compute.httpHealthChecks.get", @@ -6551,7 +7296,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -6581,7 +7326,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" } @@ -6762,7 +7507,7 @@ ] }, "get": { - "description": "Returns the specified HttpsHealthCheck resource. Gets a list of available HTTPS health checks by making a list() request.", + "description": "Returns the specified HttpsHealthCheck resource.", "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", "httpMethod": "GET", "id": "compute.httpsHealthChecks.get", @@ -6840,7 +7585,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -6870,7 +7615,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" } @@ -7140,7 +7885,7 @@ ] }, "get": { - "description": "Returns the specified image. Gets a list of available images by making a list() request.", + "description": "Returns the specified image.", "flatPath": "projects/{project}/global/images/{image}", "httpMethod": "GET", "id": "compute.images.get", @@ -7175,7 +7920,7 @@ ] }, "getFromFamily": { - "description": "Returns the latest image that is part of an image family and is not deprecated.", + "description": "Returns the latest image that is part of an image family and is not deprecated. For more information on image families, see Public image families documentation.", "flatPath": "projects/{project}/global/images/family/{family}", "httpMethod": "GET", "id": "compute.images.getFromFamily", @@ -7192,7 +7937,7 @@ "type": "string" }, "project": { - "description": "Project ID for this request.", + "description": "The image project that the image belongs to. For example, to get a CentOS image, specify centos-cloud as the image project.", "location": "path", "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", "required": true, @@ -7302,7 +8047,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -7332,7 +8077,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" } @@ -7503,6 +8248,279 @@ } } }, + "instanceGroupManagerResizeRequests": { + "methods": { + "cancel": { + "description": "Cancels the specified resize request and removes it from the queue. Cancelled resize request does no longer wait for the resources to be provisioned. Cancel is only possible for requests that are accepted in the queue.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}/cancel", + "httpMethod": "POST", + "id": "compute.instanceGroupManagerResizeRequests.cancel", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager", + "resizeRequest" + ], + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group. The name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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" + }, + "resizeRequest": { + "description": "The name of the resize request to cancel. The name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}/cancel", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "delete": { + "description": "Deletes the specified, inactive resize request. Requests that are still active cannot be deleted. Deleting request does not delete instances that were provisioned previously.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}", + "httpMethod": "DELETE", + "id": "compute.instanceGroupManagerResizeRequests.delete", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager", + "resizeRequest" + ], + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group. The name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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" + }, + "resizeRequest": { + "description": "The name of the resize request to delete. The name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns all of the details about the specified resize request.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}", + "httpMethod": "GET", + "id": "compute.instanceGroupManagerResizeRequests.get", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager", + "resizeRequest" + ], + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group. Name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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" + }, + "resizeRequest": { + "description": "The name of the resize request. Name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the href=\"/compute/docs/regions-zones/#available\">zone scoping this request. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}", + "response": { + "$ref": "InstanceGroupManagerResizeRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a new resize request that starts provisioning VMs immediately or queues VM creation.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests", + "httpMethod": "POST", + "id": "compute.instanceGroupManagerResizeRequests.insert", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group to which the resize request will be added. Name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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 where the managed instance group is located and where the resize request will be created. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests", + "request": { + "$ref": "InstanceGroupManagerResizeRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves a list of resize requests that are contained in the managed instance group.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests", + "httpMethod": "GET", + "id": "compute.instanceGroupManagerResizeRequests.list", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" + }, + "instanceGroupManager": { + "description": "The name of the managed instance group. The name should conform to RFC1035.", + "location": "path", + "required": true, + "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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests", + "response": { + "$ref": "InstanceGroupManagerResizeRequestsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, "instanceGroupManagers": { "methods": { "abandonInstances": { @@ -7554,7 +8572,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", @@ -7563,7 +8581,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -7598,9 +8616,15 @@ "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/instanceGroupManagers", @@ -7841,7 +8865,7 @@ ] }, "get": { - "description": "Returns all of the details about the specified managed instance group. Gets a list of available managed instance groups by making a list() request.", + "description": "Returns all of the details about the specified managed instance group.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", "httpMethod": "GET", "id": "compute.instanceGroupManagers.get", @@ -7933,7 +8957,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -7963,7 +8987,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" }, @@ -7996,7 +9020,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -8032,7 +9056,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" }, @@ -8054,7 +9078,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", @@ -8065,7 +9089,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -8101,7 +9125,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" }, @@ -8134,7 +9158,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -8170,7 +9194,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" }, @@ -8436,7 +9460,56 @@ "https://www.googleapis.com/auth/compute" ] }, + "resumeInstances": { + "description": "Flags the specified instances in the managed instance group to be resumed. This method increases the targetSize and decreases the targetSuspendedSize of the managed instance group by the number of instances that you resume. The resumeInstances operation is marked DONE if the resumeInstances request is successful. The underlying actions take additional time. You must separately verify the status of the RESUMING action with the listmanagedinstances method. In this request, you can only specify instances that are suspended. For example, if an instance was previously suspended using the suspendInstances method, it can be resumed using the resumeInstances method. If a health check is attached to the managed instance group, the specified instances will be verified as healthy after they are resumed. You can specify a maximum of 1000 instances with this method per request.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resumeInstances", + "httpMethod": "POST", + "id": "compute.instanceGroupManagers.resumeInstances", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "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": "The name of the zone where the managed instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resumeInstances", + "request": { + "$ref": "InstanceGroupManagersResumeInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setAutoHealingPolicies": { + "deprecated": true, "description": "Motifies the autohealing policy for the instances in this managed instance group. [Deprecated] This method is deprecated. Use instanceGroupManagers.patch instead.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies", "httpMethod": "POST", @@ -8580,6 +9653,150 @@ "https://www.googleapis.com/auth/compute" ] }, + "startInstances": { + "description": "Flags the specified instances in the managed instance group to be started. This method increases the targetSize and decreases the targetStoppedSize of the managed instance group by the number of instances that you start. The startInstances operation is marked DONE if the startInstances request is successful. The underlying actions take additional time. You must separately verify the status of the STARTING action with the listmanagedinstances method. In this request, you can only specify instances that are stopped. For example, if an instance was previously stopped using the stopInstances method, it can be started using the startInstances method. If a health check is attached to the managed instance group, the specified instances will be verified as healthy after they are started. You can specify a maximum of 1000 instances with this method per request.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/startInstances", + "httpMethod": "POST", + "id": "compute.instanceGroupManagers.startInstances", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "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": "The name of the zone where the managed instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/startInstances", + "request": { + "$ref": "InstanceGroupManagersStartInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "stopInstances": { + "description": "Flags the specified instances in the managed instance group to be immediately stopped. You can only specify instances that are running in this request. This method reduces the targetSize and increases the targetStoppedSize of the managed instance group by the number of instances that you stop. The stopInstances operation is marked DONE if the stopInstances request is successful. The underlying actions take additional time. You must separately verify the status of the STOPPING action with the listmanagedinstances method. If the standbyPolicy.initialDelaySec field is set, the group delays stopping the instances until initialDelaySec have passed from instance.creationTimestamp (that is, when the instance was created). This delay gives your application time to set itself up and initialize on the instance. If more than initialDelaySec seconds have passed since instance.creationTimestamp when this method is called, there will be zero delay. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is stopped. Stopped instances can be started using the startInstances method. You can specify a maximum of 1000 instances with this method per request.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/stopInstances", + "httpMethod": "POST", + "id": "compute.instanceGroupManagers.stopInstances", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "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": "The name of the zone where the managed instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/stopInstances", + "request": { + "$ref": "InstanceGroupManagersStopInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "suspendInstances": { + "description": "Flags the specified instances in the managed instance group to be immediately suspended. You can only specify instances that are running in this request. This method reduces the targetSize and increases the targetSuspendedSize of the managed instance group by the number of instances that you suspend. The suspendInstances operation is marked DONE if the suspendInstances request is successful. The underlying actions take additional time. You must separately verify the status of the SUSPENDING action with the listmanagedinstances method. If the standbyPolicy.initialDelaySec field is set, the group delays suspension of the instances until initialDelaySec have passed from instance.creationTimestamp (that is, when the instance was created). This delay gives your application time to set itself up and initialize on the instance. If more than initialDelaySec seconds have passed since instance.creationTimestamp when this method is called, there will be zero delay. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is suspended. Suspended instances can be resumed using the resumeInstances method. You can specify a maximum of 1000 instances with this method per request.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/suspendInstances", + "httpMethod": "POST", + "id": "compute.instanceGroupManagers.suspendInstances", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "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": "The name of the zone where the managed instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/suspendInstances", + "request": { + "$ref": "InstanceGroupManagersSuspendInstancesRequest" + }, + "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}/instanceGroupManagers/{resource}/testIamPermissions", @@ -8775,7 +9992,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", @@ -8784,7 +10001,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -8819,9 +10036,15 @@ "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/instanceGroups", @@ -8972,7 +10195,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -9002,7 +10225,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" }, @@ -9035,7 +10258,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -9071,7 +10294,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" }, @@ -9239,8 +10462,160 @@ } } }, + "instanceSettings": { + "methods": { + "get": { + "description": "Get Instance settings.", + "flatPath": "projects/{project}/zones/{zone}/instanceSettings", + "httpMethod": "GET", + "id": "compute.instanceSettings.get", + "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" + }, + "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}/zones/{zone}/instanceSettings", + "response": { + "$ref": "InstanceSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patch Instance settings", + "flatPath": "projects/{project}/zones/{zone}/instanceSettings", + "httpMethod": "PATCH", + "id": "compute.instanceSettings.patch", + "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" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The zone scoping this request. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceSettings", + "request": { + "$ref": "InstanceSettings" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, "instanceTemplates": { "methods": { + "aggregatedList": { + "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", + "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": "Name of the project scoping 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/instanceTemplates", + "response": { + "$ref": "InstanceTemplateAggregatedList" + }, + "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 instance template. Deleting an instance template is permanent and cannot be undone. It is not possible to delete templates that are already in use by a managed instance group.", "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}", @@ -9281,7 +10656,7 @@ ] }, "get": { - "description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request.", + "description": "Returns the specified instance template.", "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}", "httpMethod": "GET", "id": "compute.instanceTemplates.get", @@ -9400,7 +10775,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -9430,7 +10805,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" } @@ -9632,7 +11007,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", @@ -9641,7 +11016,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -9676,9 +11051,15 @@ "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/instances", @@ -9951,7 +11332,7 @@ ] }, "get": { - "description": "Returns the specified Instance resource. Gets a list of available instances by making a list() request.", + "description": "Returns the specified Instance resource.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}", "httpMethod": "GET", "id": "compute.instances.get", @@ -10395,7 +11776,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -10425,7 +11806,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" }, @@ -10459,7 +11840,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -10496,7 +11877,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" }, @@ -10518,6 +11899,53 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "performMaintenance": { + "description": "Perform a manual maintenance on the instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/performMaintenance", + "httpMethod": "POST", + "id": "compute.instances.performMaintenance", + "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}/performMaintenance", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "removeResourcePolicies": { "description": "Removes resource policies from an instance.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies", @@ -11214,6 +12642,55 @@ "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", @@ -11439,6 +12916,16 @@ "required": true, "type": "string" }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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", @@ -11565,7 +13052,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" }, @@ -11617,7 +13104,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" }, @@ -12053,19 +13540,19 @@ } } }, - "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" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -12100,9 +13587,470 @@ "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/instantSnapshots", + "response": { + "$ref": "InstantSnapshotAggregatedList" + }, + "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 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.instantSnapshots.delete", + "parameterOrder": [ + "project", + "zone", + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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}/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 zone.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}", + "httpMethod": "GET", + "id": "compute.instantSnapshots.get", + "parameterOrder": [ + "project", + "zone", + "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" + }, + "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/{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}/zones/{zone}/instantSnapshots/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.instantSnapshots.getIamPolicy", + "parameterOrder": [ + "project", + "zone", + "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" + }, + "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" + }, + "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}/zones/{zone}/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 zone.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots", + "httpMethod": "GET", + "id": "compute.instantSnapshots.list", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" + }, + "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" + } + }, + "path": "projects/{project}/zones/{zone}/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}/zones/{zone}/instantSnapshots/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.instantSnapshots.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}/instantSnapshots/{resource}/setIamPolicy", + "request": { + "$ref": "ZoneSetPolicyRequest" + }, + "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 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", @@ -12263,7 +14211,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -12300,7 +14248,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" } @@ -12510,7 +14458,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -12540,7 +14488,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" } @@ -12557,6 +14505,100 @@ } } }, + "interconnectRemoteLocations": { + "methods": { + "get": { + "description": "Returns the details for the specified interconnect remote location. Gets a list of available interconnect remote locations by making a list() request.", + "flatPath": "projects/{project}/global/interconnectRemoteLocations/{interconnectRemoteLocation}", + "httpMethod": "GET", + "id": "compute.interconnectRemoteLocations.get", + "parameterOrder": [ + "project", + "interconnectRemoteLocation" + ], + "parameters": { + "interconnectRemoteLocation": { + "description": "Name of the interconnect remote location 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" + } + }, + "path": "projects/{project}/global/interconnectRemoteLocations/{interconnectRemoteLocation}", + "response": { + "$ref": "InterconnectRemoteLocation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "description": "Retrieves the list of interconnect remote locations available to the specified project.", + "flatPath": "projects/{project}/global/interconnectRemoteLocations", + "httpMethod": "GET", + "id": "compute.interconnectRemoteLocations.list", + "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" + }, + "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" + } + }, + "path": "projects/{project}/global/interconnectRemoteLocations", + "response": { + "$ref": "InterconnectRemoteLocationList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, "interconnects": { "methods": { "delete": { @@ -12634,7 +14676,7 @@ ] }, "getDiagnostics": { - "description": "Returns the interconnectDiagnostics for the specified Interconnect.", + "description": "Returns the interconnectDiagnostics for the specified Interconnect. In the event of a global outage, do not use this API to make decisions about where to redirect your network traffic. Unlike a VLAN attachment, which is regional, a Cloud Interconnect connection is a global resource. A global outage can prevent this API from functioning properly.", "flatPath": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics", "httpMethod": "GET", "id": "compute.interconnects.getDiagnostics", @@ -12668,6 +14710,41 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "getMacsecConfig": { + "description": "Returns the interconnectMacsecConfig for the specified Interconnect.", + "flatPath": "projects/{project}/global/interconnects/{interconnect}/getMacsecConfig", + "httpMethod": "GET", + "id": "compute.interconnects.getMacsecConfig", + "parameterOrder": [ + "project", + "interconnect" + ], + "parameters": { + "interconnect": { + "description": "Name of the interconnect resource to query.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "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" + } + }, + "path": "projects/{project}/global/interconnects/{interconnect}/getMacsecConfig", + "response": { + "$ref": "InterconnectsGetMacsecConfigResponse" + }, + "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 Interconnect in the specified project using the data included in the request.", "flatPath": "projects/{project}/global/interconnects", @@ -12712,7 +14789,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -12742,7 +14819,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" } @@ -13117,7 +15194,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -13147,7 +15224,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" } @@ -13281,7 +15358,7 @@ ] }, "get": { - "description": "Returns the specified machine image. Gets a list of available machine images by making a list() request.", + "description": "Returns the specified machine image.", "flatPath": "projects/{project}/global/machineImages/{machineImage}", "httpMethod": "GET", "id": "compute.machineImages.get", @@ -13405,7 +15482,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -13435,7 +15512,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" } @@ -13530,7 +15607,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", @@ -13539,7 +15616,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -13574,9 +15651,15 @@ "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/machineTypes", @@ -13590,7 +15673,7 @@ ] }, "get": { - "description": "Returns the specified machine type. Gets a list of available machine types by making a list() request.", + "description": "Returns the specified machine type.", "flatPath": "projects/{project}/zones/{zone}/machineTypes/{machineType}", "httpMethod": "GET", "id": "compute.machineTypes.get", @@ -13643,7 +15726,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -13673,7 +15756,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" }, @@ -13700,7 +15783,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", @@ -13709,7 +15792,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -13744,9 +15827,15 @@ "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/networkAttachments", @@ -13951,7 +16040,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -13988,7 +16077,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" } @@ -14003,6 +16092,56 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "patch": { + "description": "Patches the specified NetworkAttachment resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "httpMethod": "PATCH", + "id": "compute.networkAttachments.patch", + "parameterOrder": [ + "project", + "region", + "networkAttachment" + ], + "parameters": { + "networkAttachment": { + "description": "Name of the NetworkAttachment resource to patch.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "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). end_interface: MixerMutationRequestBuilder", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "request": { + "$ref": "NetworkAttachment" + }, + "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}/regions/{region}/networkAttachments/{resource}/setIamPolicy", @@ -14099,7 +16238,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", @@ -14108,7 +16247,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -14143,9 +16282,15 @@ "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/networkEdgeSecurityServices", @@ -14361,7 +16506,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", @@ -14370,7 +16515,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -14405,9 +16550,15 @@ "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/networkEndpointGroups", @@ -14562,7 +16713,7 @@ ] }, "get": { - "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.", + "description": "Returns the specified network endpoint group.", "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", "httpMethod": "GET", "id": "compute.networkEndpointGroups.get", @@ -14654,7 +16805,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -14684,7 +16835,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" }, @@ -14717,7 +16868,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -14753,7 +16904,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" }, @@ -15212,7 +17363,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -15242,7 +17393,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" } @@ -15597,7 +17748,7 @@ ] }, "get": { - "description": "Returns the specified network. Gets a list of available networks by making a list() request.", + "description": "Returns the specified network.", "flatPath": "projects/{project}/global/networks/{network}", "httpMethod": "GET", "id": "compute.networks.get", @@ -15710,7 +17861,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -15740,7 +17891,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" } @@ -15779,7 +17930,7 @@ "type": "string" }, "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -15826,7 +17977,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" } @@ -16099,7 +18250,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", @@ -16108,7 +18259,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -16143,9 +18294,15 @@ "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/nodeGroups", @@ -16408,7 +18565,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -16438,7 +18595,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" }, @@ -16472,7 +18629,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -16509,7 +18666,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" }, @@ -16581,6 +18738,56 @@ "https://www.googleapis.com/auth/compute" ] }, + "performMaintenance": { + "description": "Perform maintenance on a subset of nodes in the node group.", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/performMaintenance", + "httpMethod": "POST", + "id": "compute.nodeGroups.performMaintenance", + "parameterOrder": [ + "project", + "zone", + "nodeGroup" + ], + "parameters": { + "nodeGroup": { + "description": "Name of the node group 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}/nodeGroups/{nodeGroup}/performMaintenance", + "request": { + "$ref": "NodeGroupsPerformMaintenanceRequest" + }, + "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}/nodeGroups/{resource}/setIamPolicy", @@ -16777,7 +18984,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", @@ -16786,7 +18993,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -16821,9 +19028,15 @@ "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/nodeTemplates", @@ -16884,7 +19097,7 @@ ] }, "get": { - "description": "Returns the specified node template. Gets a list of available node templates by making a list() request.", + "description": "Returns the specified node template.", "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", "httpMethod": "GET", "id": "compute.nodeTemplates.get", @@ -17028,7 +19241,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -17065,7 +19278,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" } @@ -17176,7 +19389,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", @@ -17185,7 +19398,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -17220,9 +19433,15 @@ "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/nodeTypes", @@ -17236,7 +19455,7 @@ ] }, "get": { - "description": "Returns the specified node type. Gets a list of available node types by making a list() request.", + "description": "Returns the specified node type.", "flatPath": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}", "httpMethod": "GET", "id": "compute.nodeTypes.get", @@ -17289,7 +19508,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -17319,7 +19538,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" }, @@ -17613,7 +19832,7 @@ "id": "compute.organizationSecurityPolicies.list", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -17641,7 +19860,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" } @@ -17866,7 +20085,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", @@ -17875,7 +20094,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -17910,9 +20129,15 @@ "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/packetMirrorings", @@ -18068,7 +20293,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -18105,7 +20330,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" } @@ -18413,7 +20638,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -18443,7 +20668,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" } @@ -18467,7 +20692,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -18497,7 +20722,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" } @@ -18549,7 +20774,8 @@ ] }, "moveInstance": { - "description": "Moves an instance and its attached persistent disks from one zone to another. *Note*: Moving VMs or disks by using this method might cause unexpected behavior. For more information, see the [known issue](/compute/docs/troubleshooting/known-issues#moving_vms_or_disks_using_the_moveinstance_api_or_the_causes_unexpected_behavior).", + "deprecated": true, + "description": "Moves an instance and its attached persistent disks from one zone to another. *Note*: Moving VMs or disks by using this method might cause unexpected behavior. For more information, see the [known issue](/compute/docs/troubleshooting/known-issues#moving_vms_or_disks_using_the_moveinstance_api_or_the_causes_unexpected_behavior). [Deprecated] This method is deprecated. See [moving instance across zones](/compute/docs/instances/moving-instance-across-zones) instead.", "flatPath": "projects/{project}/moveInstance", "httpMethod": "POST", "id": "compute.projects.moveInstance", @@ -18582,6 +20808,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", @@ -18650,6 +20910,40 @@ "https://www.googleapis.com/auth/compute" ] }, + "setManagedProtectionTier": { + "description": "Sets the Cloud Armor Managed Protection (CAMP) tier of the project. To set PLUS or above the billing account of the project must be subscribed to Managed Protection Plus. See Subscribing to Managed Protection Plus for more information.", + "flatPath": "projects/{project}/setManagedProtectionTier", + "httpMethod": "POST", + "id": "compute.projects.setManagedProtectionTier", + "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}/setManagedProtectionTier", + "request": { + "$ref": "ProjectsSetManagedProtectionTierRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setUsageExportBucket": { "description": "Enables the usage export feature and sets the usage export bucket where reports are stored. If you provide an empty request body using this method, the usage export feature will be disabled.", "flatPath": "projects/{project}/setUsageExportBucket", @@ -18691,6 +20985,44 @@ }, "publicAdvertisedPrefixes": { "methods": { + "announce": { + "description": "Announces the specified PublicAdvertisedPrefix", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/announce", + "httpMethod": "POST", + "id": "compute.publicAdvertisedPrefixes.announce", + "parameterOrder": [ + "project", + "publicAdvertisedPrefix" + ], + "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" + }, + "publicAdvertisedPrefix": { + "description": "The name of the public advertised prefix. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/announce", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "delete": { "description": "Deletes the specified PublicAdvertisedPrefix", "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", @@ -18809,7 +21141,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -18839,7 +21171,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" } @@ -18895,13 +21227,51 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] + }, + "withdraw": { + "description": "Withdraws the specified PublicAdvertisedPrefix", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/withdraw", + "httpMethod": "POST", + "id": "compute.publicAdvertisedPrefixes.withdraw", + "parameterOrder": [ + "project", + "publicAdvertisedPrefix" + ], + "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" + }, + "publicAdvertisedPrefix": { + "description": "The name of the public advertised prefix. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/withdraw", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, "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", @@ -18910,7 +21280,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -18945,9 +21315,15 @@ "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/publicDelegatedPrefixes", @@ -18960,6 +21336,51 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "announce": { + "description": "Announces the specified PublicDelegatedPrefix in the given region.", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/announce", + "httpMethod": "POST", + "id": "compute.publicDelegatedPrefixes.announce", + "parameterOrder": [ + "project", + "region", + "publicDelegatedPrefix" + ], + "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" + }, + "publicDelegatedPrefix": { + "description": "The name of the public delegated prefix. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region where the public delegated prefix is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/announce", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "delete": { "description": "Deletes the specified PublicDelegatedPrefix in the given region.", "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", @@ -19103,7 +21524,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -19140,7 +21561,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" } @@ -19204,6 +21625,51 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] + }, + "withdraw": { + "description": "Withdraws the specified PublicDelegatedPrefix in the given region.", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/withdraw", + "httpMethod": "POST", + "id": "compute.publicDelegatedPrefixes.withdraw", + "parameterOrder": [ + "project", + "region", + "publicDelegatedPrefix" + ], + "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" + }, + "publicDelegatedPrefix": { + "description": "The name of the public delegated prefix. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region where the public delegated prefix is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/withdraw", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, @@ -19352,7 +21818,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -19389,7 +21855,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" } @@ -19787,7 +22253,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -19824,7 +22290,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" } @@ -19839,6 +22305,68 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "listUsable": { + "description": "Retrieves an aggregated list of all usable backend services in the specified project in the given region.", + "flatPath": "projects/{project}/regions/{region}/backendServices/listUsable", + "httpMethod": "GET", + "id": "compute.regionBackendServices.listUsable", + "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 scoping this request. It must be a string that meets the requirements in RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/backendServices/listUsable", + "response": { + "$ref": "BackendServiceListUsable" + }, + "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 regional BackendService resource with the data included in the request. For more information, see Understanding backend services This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", @@ -19934,6 +22462,55 @@ "https://www.googleapis.com/auth/compute" ] }, + "setSecurityPolicy": { + "description": "Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview", + "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}/setSecurityPolicy", + "httpMethod": "POST", + "id": "compute.regionBackendServices.setSecurityPolicy", + "parameterOrder": [ + "project", + "region", + "backendService" + ], + "parameters": { + "backendService": { + "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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}/backendServices/{backendService}/setSecurityPolicy", + "request": { + "$ref": "SecurityPolicyReference" + }, + "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}/backendServices/{resource}/testIamPermissions", @@ -20035,7 +22612,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", @@ -20044,7 +22621,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -20079,9 +22656,15 @@ "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/commitments", @@ -20095,7 +22678,7 @@ ] }, "get": { - "description": "Returns the specified commitment resource. Gets a list of available commitments by making a list() request.", + "description": "Returns the specified commitment resource.", "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}", "httpMethod": "GET", "id": "compute.regionCommitments.get", @@ -20190,7 +22773,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -20227,7 +22810,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" } @@ -20404,7 +22987,7 @@ "regionDiskTypes": { "methods": { "get": { - "description": "Returns the specified regional disk type. Gets a list of available disk types by making a list() request.", + "description": "Returns the specified regional disk type.", "flatPath": "projects/{project}/regions/{region}/diskTypes/{diskType}", "httpMethod": "GET", "id": "compute.regionDiskTypes.get", @@ -20457,7 +23040,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -20494,7 +23077,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" } @@ -20563,6 +23146,48 @@ "https://www.googleapis.com/auth/compute" ] }, + "bulkInsert": { + "description": "Bulk create a set of disks.", + "flatPath": "projects/{project}/regions/{region}/disks/bulkInsert", + "httpMethod": "POST", + "id": "compute.regionDisks.bulkInsert", + "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": "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}/disks/bulkInsert", + "request": { + "$ref": "BulkInsertDiskResource" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "createSnapshot": { "description": "Creates a snapshot of a specified persistent disk. For regular snapshot creation, consider using snapshots.insert instead, as that method supports more features, such as creating snapshots in a project different from the source disk project.", "flatPath": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot", @@ -20809,7 +23434,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -20846,7 +23471,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" } @@ -21056,6 +23681,145 @@ "https://www.googleapis.com/auth/compute" ] }, + "startAsyncReplication": { + "description": "Starts asynchronous replication. Must be invoked on the primary disk.", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/startAsyncReplication", + "httpMethod": "POST", + "id": "compute.regionDisks.startAsyncReplication", + "parameterOrder": [ + "project", + "region", + "disk" + ], + "parameters": { + "disk": { + "description": "The name of the persistent disk.", + "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}/disks/{disk}/startAsyncReplication", + "request": { + "$ref": "RegionDisksStartAsyncReplicationRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "stopAsyncReplication": { + "description": "Stops asynchronous replication. Can be invoked either on the primary or on the secondary disk.", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/stopAsyncReplication", + "httpMethod": "POST", + "id": "compute.regionDisks.stopAsyncReplication", + "parameterOrder": [ + "project", + "region", + "disk" + ], + "parameters": { + "disk": { + "description": "The name of the persistent disk.", + "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}/disks/{disk}/stopAsyncReplication", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "stopGroupAsyncReplication": { + "description": "Stops asynchronous replication for a consistency group of disks. Can be invoked either in the primary or secondary scope.", + "flatPath": "projects/{project}/regions/{region}/disks/stopGroupAsyncReplication", + "httpMethod": "POST", + "id": "compute.regionDisks.stopGroupAsyncReplication", + "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": "The name of the region for this request. This must be the region of the primary or secondary disks in the consistency group.", + "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}/disks/stopGroupAsyncReplication", + "request": { + "$ref": "DisksStopGroupAsyncReplicationResource" + }, + "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}/disks/{resource}/testIamPermissions", @@ -21308,7 +24072,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -21345,7 +24109,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" } @@ -21507,7 +24271,7 @@ ] }, "get": { - "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.", + "description": "Returns the specified HealthCheck resource.", "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", "httpMethod": "GET", "id": "compute.regionHealthChecks.get", @@ -21602,7 +24366,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -21639,7 +24403,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" } @@ -22172,7 +24936,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -22208,7 +24972,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" } @@ -22235,7 +24999,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -22277,7 +25041,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" } @@ -22293,7 +25057,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", @@ -22304,7 +25068,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -22346,7 +25110,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" } @@ -22373,7 +25137,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -22415,7 +25179,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" } @@ -22676,7 +25440,56 @@ "https://www.googleapis.com/auth/compute" ] }, + "resumeInstances": { + "description": "Flags the specified instances in the managed instance group to be resumed. This method increases the targetSize and decreases the targetSuspendedSize of the managed instance group by the number of instances that you resume. The resumeInstances operation is marked DONE if the resumeInstances request is successful. The underlying actions take additional time. You must separately verify the status of the RESUMING action with the listmanagedinstances method. In this request, you can only specify instances that are suspended. For example, if an instance was previously suspended using the suspendInstances method, it can be resumed using the resumeInstances method. If a health check is attached to the managed instance group, the specified instances will be verified as healthy after they are resumed. You can specify a maximum of 1000 instances with this method per request.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resumeInstances", + "httpMethod": "POST", + "id": "compute.regionInstanceGroupManagers.resumeInstances", + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "parameters": { + "instanceGroupManager": { + "description": "Name of the managed instance group.", + "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" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resumeInstances", + "request": { + "$ref": "RegionInstanceGroupManagersResumeInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setAutoHealingPolicies": { + "deprecated": true, "description": "Modifies the autohealing policy for the instances in this managed instance group. [Deprecated] This method is deprecated. Use regionInstanceGroupManagers.patch instead.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies", "httpMethod": "POST", @@ -22820,6 +25633,150 @@ "https://www.googleapis.com/auth/compute" ] }, + "startInstances": { + "description": "Flags the specified instances in the managed instance group to be started. This method increases the targetSize and decreases the targetStoppedSize of the managed instance group by the number of instances that you start. The startInstances operation is marked DONE if the startInstances request is successful. The underlying actions take additional time. You must separately verify the status of the STARTING action with the listmanagedinstances method. In this request, you can only specify instances that are stopped. For example, if an instance was previously stopped using the stopInstances method, it can be started using the startInstances method. If a health check is attached to the managed instance group, the specified instances will be verified as healthy after they are started. You can specify a maximum of 1000 instances with this method per request.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/startInstances", + "httpMethod": "POST", + "id": "compute.regionInstanceGroupManagers.startInstances", + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "parameters": { + "instanceGroupManager": { + "description": "Name of the managed instance group.", + "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" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/startInstances", + "request": { + "$ref": "RegionInstanceGroupManagersStartInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "stopInstances": { + "description": "Flags the specified instances in the managed instance group to be immediately stopped. You can only specify instances that are running in this request. This method reduces the targetSize and increases the targetStoppedSize of the managed instance group by the number of instances that you stop. The stopInstances operation is marked DONE if the stopInstances request is successful. The underlying actions take additional time. You must separately verify the status of the STOPPING action with the listmanagedinstances method. If the standbyPolicy.initialDelaySec field is set, the group delays stopping the instances until initialDelaySec have passed from instance.creationTimestamp (that is, when the instance was created). This delay gives your application time to set itself up and initialize on the instance. If more than initialDelaySec seconds have passed since instance.creationTimestamp when this method is called, there will be zero delay. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is stopped. Stopped instances can be started using the startInstances method. You can specify a maximum of 1000 instances with this method per request.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/stopInstances", + "httpMethod": "POST", + "id": "compute.regionInstanceGroupManagers.stopInstances", + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "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" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/stopInstances", + "request": { + "$ref": "RegionInstanceGroupManagersStopInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "suspendInstances": { + "description": "Flags the specified instances in the managed instance group to be immediately suspended. You can only specify instances that are running in this request. This method reduces the targetSize and increases the targetSuspendedSize of the managed instance group by the number of instances that you suspend. The suspendInstances operation is marked DONE if the suspendInstances request is successful. The underlying actions take additional time. You must separately verify the status of the SUSPENDING action with the listmanagedinstances method. If the standbyPolicy.initialDelaySec field is set, the group delays suspension of the instances until initialDelaySec have passed from instance.creationTimestamp (that is, when the instance was created). This delay gives your application time to set itself up and initialize on the instance. If more than initialDelaySec seconds have passed since instance.creationTimestamp when this method is called, there will be zero delay. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is suspended. Suspended instances can be resumed using the resumeInstances method. You can specify a maximum of 1000 instances with this method per request.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/suspendInstances", + "httpMethod": "POST", + "id": "compute.regionInstanceGroupManagers.suspendInstances", + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "parameters": { + "instanceGroupManager": { + "description": "Name of the managed instance group.", + "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" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/suspendInstances", + "request": { + "$ref": "RegionInstanceGroupManagersSuspendInstancesRequest" + }, + "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}/instanceGroupManagers/{resource}/testIamPermissions", @@ -23018,7 +25975,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -23054,7 +26011,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" } @@ -23081,7 +26038,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -23123,7 +26080,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" } @@ -23237,6 +26194,205 @@ } } }, + "regionInstanceTemplates": { + "methods": { + "delete": { + "description": "Deletes the specified instance template. Deleting an instance template is permanent and cannot be undone.", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", + "httpMethod": "DELETE", + "id": "compute.regionInstanceTemplates.delete", + "parameterOrder": [ + "project", + "region", + "instanceTemplate" + ], + "parameters": { + "instanceTemplate": { + "description": "The name of the instance template 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}/instanceTemplates/{instanceTemplate}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified instance template.", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", + "httpMethod": "GET", + "id": "compute.regionInstanceTemplates.get", + "parameterOrder": [ + "project", + "region", + "instanceTemplate" + ], + "parameters": { + "instanceTemplate": { + "description": "The name of the instance template.", + "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}/instanceTemplates/{instanceTemplate}", + "response": { + "$ref": "InstanceTemplate" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates an instance template in the specified project and region using the global instance template whose URL is included in the request.", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates", + "httpMethod": "POST", + "id": "compute.regionInstanceTemplates.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": "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}/instanceTemplates", + "request": { + "$ref": "InstanceTemplate" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves a list of instance templates that are contained within the specified project and region.", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates", + "httpMethod": "GET", + "id": "compute.regionInstanceTemplates.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 regions 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}/instanceTemplates", + "response": { + "$ref": "InstanceTemplateList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, "regionInstances": { "methods": { "bulkInsert": { @@ -23283,8 +26439,445 @@ } } }, + "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": { + "description": "Attach a list of network endpoints to the specified network endpoint group.", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "httpMethod": "POST", + "id": "compute.regionNetworkEndpointGroups.attachNetworkEndpoints", + "parameterOrder": [ + "project", + "region", + "networkEndpointGroup" + ], + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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 where you want to create the network endpoint group. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "request": { + "$ref": "RegionNetworkEndpointGroupsAttachEndpointsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "delete": { "description": "Deletes the specified network endpoint group. Note that the NEG cannot be deleted if it is configured as a backend of a backend service.", "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", @@ -23330,8 +26923,56 @@ "https://www.googleapis.com/auth/compute" ] }, + "detachNetworkEndpoints": { + "description": "Detach the network endpoint from the specified network endpoint group.", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "httpMethod": "POST", + "id": "compute.regionNetworkEndpointGroups.detachNetworkEndpoints", + "parameterOrder": [ + "project", + "region", + "networkEndpointGroup" + ], + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group you are detaching network endpoints from. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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 where the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "request": { + "$ref": "RegionNetworkEndpointGroupsDetachEndpointsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "get": { - "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.", + "description": "Returns the specified network endpoint group.", "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", "httpMethod": "GET", "id": "compute.regionNetworkEndpointGroups.get", @@ -23423,7 +27064,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -23459,7 +27100,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" } @@ -23473,6 +27114,75 @@ "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] + }, + "listNetworkEndpoints": { + "description": "Lists the network endpoints in the specified network endpoint group.", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "httpMethod": "POST", + "id": "compute.regionNetworkEndpointGroups.listNetworkEndpoints", + "parameterOrder": [ + "project", + "region", + "networkEndpointGroup" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" + }, + "networkEndpointGroup": { + "description": "The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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 where the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "response": { + "$ref": "NetworkEndpointGroupsListNetworkEndpoints" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] } } }, @@ -23978,7 +27688,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -24015,7 +27725,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" } @@ -24479,7 +28189,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -24516,7 +28226,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" } @@ -24674,7 +28384,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -24711,7 +28421,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" } @@ -24773,6 +28483,56 @@ }, "regionSecurityPolicies": { "methods": { + "addRule": { + "description": "Inserts a rule into a security policy.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule", + "httpMethod": "POST", + "id": "compute.regionSecurityPolicies.addRule", + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule", + "request": { + "$ref": "SecurityPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "delete": { "description": "Deletes the specified policy.", "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", @@ -24863,6 +28623,55 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "getRule": { + "description": "Gets a rule at the specified priority.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/getRule", + "httpMethod": "GET", + "id": "compute.regionSecurityPolicies.getRule", + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "parameters": { + "priority": { + "description": "The priority of the rule to get from the security policy.", + "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": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to which the queried rule belongs.", + "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}/securityPolicies/{securityPolicy}/getRule", + "response": { + "$ref": "SecurityPolicyRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "insert": { "description": "Creates a new policy in the specified project using the data included in the request.", "flatPath": "projects/{project}/regions/{region}/securityPolicies", @@ -24921,7 +28730,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -24958,7 +28767,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" } @@ -24974,7 +28783,7 @@ ] }, "patch": { - "description": "Patches the specified policy with the data included in the request. To clear fields in the rule, 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.", + "description": "Patches the specified policy with the data included in the request. To clear fields in the policy, leave the fields empty and specify them in the updateMask. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead.", "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", "httpMethod": "PATCH", "id": "compute.regionSecurityPolicies.patch", @@ -25009,6 +28818,12 @@ "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" + }, + "updateMask": { + "description": "Indicates fields to be cleared as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" } }, "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", @@ -25022,6 +28837,116 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] + }, + "patchRule": { + "description": "Patches a rule at the specified priority. To clear fields in the rule, leave the fields empty and specify them in the updateMask.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule", + "httpMethod": "POST", + "id": "compute.regionSecurityPolicies.patchRule", + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "parameters": { + "priority": { + "description": "The priority of the rule to patch.", + "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": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Indicates fields to be cleared as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule", + "request": { + "$ref": "SecurityPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "removeRule": { + "description": "Deletes a rule at the specified priority.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule", + "httpMethod": "POST", + "id": "compute.regionSecurityPolicies.removeRule", + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "parameters": { + "priority": { + "description": "The priority of the rule to remove from the security policy.", + "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": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, @@ -25170,7 +29095,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -25207,7 +29132,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" } @@ -25413,7 +29338,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -25450,7 +29375,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" } @@ -25476,7 +29401,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -25513,7 +29438,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" } @@ -25675,7 +29600,7 @@ ] }, "get": { - "description": "Returns the specified TargetHttpProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.", + "description": "Returns the specified TargetHttpProxy resource in the specified region.", "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", "httpMethod": "GET", "id": "compute.regionTargetHttpProxies.get", @@ -25770,7 +29695,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -25807,7 +29732,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" } @@ -25970,7 +29895,7 @@ ] }, "get": { - "description": "Returns the specified TargetHttpsProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.", + "description": "Returns the specified TargetHttpsProxy resource in the specified region.", "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", "httpMethod": "GET", "id": "compute.regionTargetHttpsProxies.get", @@ -26065,7 +29990,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -26102,7 +30027,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" } @@ -26460,7 +30385,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -26497,7 +30422,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" } @@ -26610,7 +30535,7 @@ ] }, "get": { - "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.", + "description": "Returns the specified UrlMap resource.", "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", "httpMethod": "GET", "id": "compute.regionUrlMaps.get", @@ -26755,7 +30680,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -26792,7 +30717,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" } @@ -27000,10 +30925,77 @@ } } }, + "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": { - "description": "Returns the specified Region resource. Gets a list of available regions by making a list() request. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the `quotas` field). To exclude one or more fields, set your request's `fields` query parameter to only include the fields you need. For example, to only include the `id` and `selfLink` fields, add the query parameter `?fields=id,selfLink` to your request.", + "description": "Returns the specified Region resource. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the `quotas` field). To exclude one or more fields, set your request's `fields` query parameter to only include the fields you need. For example, to only include the `id` and `selfLink` fields, add the query parameter `?fields=id,selfLink` to your request.", "flatPath": "projects/{project}/regions/{region}", "httpMethod": "GET", "id": "compute.regions.get", @@ -27047,7 +31039,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -27077,7 +31069,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" } @@ -27097,7 +31089,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", @@ -27106,7 +31098,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -27141,9 +31133,15 @@ "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/reservations", @@ -27348,7 +31346,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -27378,7 +31376,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" }, @@ -27607,7 +31605,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", @@ -27616,7 +31614,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -27651,9 +31649,15 @@ "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/resourcePolicies", @@ -27858,7 +31862,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -27895,7 +31899,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" } @@ -27910,6 +31914,62 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "patch": { + "description": "Modify the specified resource policy.", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", + "httpMethod": "PATCH", + "id": "compute.resourcePolicies.patch", + "parameterOrder": [ + "project", + "region", + "resourcePolicy" + ], + "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" + }, + "resourcePolicy": { + "description": "Id of the resource policy 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" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", + "request": { + "$ref": "ResourcePolicy" + }, + "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}/regions/{region}/resourcePolicies/{resource}/setIamPolicy", @@ -28006,7 +32066,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", @@ -28015,7 +32075,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -28050,9 +32110,15 @@ "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/routers", @@ -28113,7 +32179,7 @@ ] }, "get": { - "description": "Returns the specified Router resource. Gets a list of available routers by making a list() request.", + "description": "Returns the specified Router resource.", "flatPath": "projects/{project}/regions/{region}/routers/{router}", "httpMethod": "GET", "id": "compute.routers.get", @@ -28155,6 +32221,53 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "getNatIpInfo": { + "description": "Retrieves runtime NAT IP information.", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatIpInfo", + "httpMethod": "GET", + "id": "compute.routers.getNatIpInfo", + "parameterOrder": [ + "project", + "region", + "router" + ], + "parameters": { + "natName": { + "description": "Name of the nat service to filter the NAT IP information. If it is omitted, all nats for this router will be returned. Name should conform to RFC1035.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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" + }, + "router": { + "description": "Name of the Router resource to query for Nat IP information. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/routers/{router}/getNatIpInfo", + "response": { + "$ref": "NatIpInfoResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "getNatMappingInfo": { "description": "Retrieves runtime Nat mapping information of VM endpoints.", "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo", @@ -28167,7 +32280,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -28209,7 +32322,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" }, @@ -28327,7 +32440,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -28364,7 +32477,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" } @@ -28615,7 +32728,7 @@ ] }, "get": { - "description": "Returns the specified Route resource. Gets a list of available routes by making a list() request.", + "description": "Returns the specified Route resource.", "flatPath": "projects/{project}/global/routes/{route}", "httpMethod": "GET", "id": "compute.routes.get", @@ -28693,7 +32806,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -28723,7 +32836,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" } @@ -28823,7 +32936,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", @@ -28832,7 +32945,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -28867,9 +32980,15 @@ "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/securityPolicies", @@ -29046,7 +33165,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -29076,7 +33195,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" } @@ -29101,7 +33220,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -29131,7 +33250,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" } @@ -29147,7 +33266,7 @@ ] }, "patch": { - "description": "Patches the specified policy with the data included in the request. To clear fields in the rule, 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.", + "description": "Patches the specified policy with the data included in the request. To clear fields in the policy, leave the fields empty and specify them in the updateMask. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead.", "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", "httpMethod": "PATCH", "id": "compute.securityPolicies.patch", @@ -29174,6 +33293,12 @@ "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" + }, + "updateMask": { + "description": "Indicates fields to be cleared as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" } }, "path": "projects/{project}/global/securityPolicies/{securityPolicy}", @@ -29189,7 +33314,7 @@ ] }, "patchRule": { - "description": "Patches a rule at the specified priority.", + "description": "Patches a rule at the specified priority. To clear fields in the rule, leave the fields empty and specify them in the updateMask.", "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule", "httpMethod": "POST", "id": "compute.securityPolicies.patchRule", @@ -29218,6 +33343,12 @@ "required": true, "type": "string" }, + "updateMask": { + "description": "Indicates fields to be cleared as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, "validateOnly": { "description": "If true, the request will not be committed.", "location": "query", @@ -29356,7 +33487,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", @@ -29365,7 +33496,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -29400,9 +33531,15 @@ "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/serviceAttachments", @@ -29607,7 +33744,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -29644,7 +33781,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" } @@ -29800,6 +33937,77 @@ } } }, + "snapshotSettings": { + "methods": { + "get": { + "description": "Get snapshot settings.", + "flatPath": "projects/{project}/global/snapshotSettings", + "httpMethod": "GET", + "id": "compute.snapshotSettings.get", + "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" + } + }, + "path": "projects/{project}/global/snapshotSettings", + "response": { + "$ref": "SnapshotSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patch snapshot settings.", + "flatPath": "projects/{project}/global/snapshotSettings", + "httpMethod": "PATCH", + "id": "compute.snapshotSettings.patch", + "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" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/snapshotSettings", + "request": { + "$ref": "SnapshotSettings" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, "snapshots": { "methods": { "delete": { @@ -29842,7 +34050,7 @@ ] }, "get": { - "description": "Returns the specified Snapshot resource. Gets a list of available snapshots by making a list() request.", + "description": "Returns the specified Snapshot resource.", "flatPath": "projects/{project}/global/snapshots/{snapshot}", "httpMethod": "GET", "id": "compute.snapshots.get", @@ -29961,7 +34169,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -29991,7 +34199,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" } @@ -30123,7 +34331,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", @@ -30132,7 +34340,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -30167,9 +34375,15 @@ "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/sslCertificates", @@ -30222,7 +34436,7 @@ ] }, "get": { - "description": "Returns the specified SslCertificate resource. Gets a list of available SSL certificates by making a list() request.", + "description": "Returns the specified SslCertificate resource.", "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}", "httpMethod": "GET", "id": "compute.sslCertificates.get", @@ -30300,7 +34514,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -30330,7 +34544,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" } @@ -30388,7 +34602,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", @@ -30397,7 +34611,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -30432,9 +34646,15 @@ "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/sslPolicies", @@ -30520,7 +34740,7 @@ ] }, "insert": { - "description": "Returns the specified SSL policy resource. Gets a list of available SSL policies by making a list() request.", + "description": "Returns the specified SSL policy resource.", "flatPath": "projects/{project}/global/sslPolicies", "httpMethod": "POST", "id": "compute.sslPolicies.insert", @@ -30563,7 +34783,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -30593,7 +34813,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" } @@ -30618,7 +34838,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -30648,7 +34868,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" } @@ -30747,7 +34967,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", @@ -30756,7 +34976,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -30791,9 +35011,15 @@ "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/subnetworks", @@ -30904,7 +35130,7 @@ ] }, "get": { - "description": "Returns the specified subnetwork. Gets a list of available subnetworks list() request.", + "description": "Returns the specified subnetwork.", "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", "httpMethod": "GET", "id": "compute.subnetworks.get", @@ -31048,7 +35274,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -31085,7 +35311,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" } @@ -31110,7 +35336,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -31140,7 +35366,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" }, @@ -31479,7 +35705,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -31509,7 +35735,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" } @@ -31609,7 +35835,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", @@ -31618,7 +35844,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -31653,9 +35879,15 @@ "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/targetHttpProxies", @@ -31708,7 +35940,7 @@ ] }, "get": { - "description": "Returns the specified TargetHttpProxy resource. Gets a list of available target HTTP proxies by making a list() request.", + "description": "Returns the specified TargetHttpProxy resource.", "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", "httpMethod": "GET", "id": "compute.targetHttpProxies.get", @@ -31786,7 +36018,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -31816,7 +36048,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" } @@ -31958,7 +36190,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", @@ -31967,7 +36199,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -32002,9 +36234,15 @@ "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/targetHttpsProxies", @@ -32057,7 +36295,7 @@ ] }, "get": { - "description": "Returns the specified TargetHttpsProxy resource. Gets a list of available target HTTPS proxies by making a list() request.", + "description": "Returns the specified TargetHttpsProxy resource.", "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", "httpMethod": "GET", "id": "compute.targetHttpsProxies.get", @@ -32135,7 +36373,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -32165,7 +36403,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" } @@ -32472,7 +36710,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", @@ -32481,7 +36719,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -32516,9 +36754,15 @@ "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/targetInstances", @@ -32579,7 +36823,7 @@ ] }, "get": { - "description": "Returns the specified TargetInstance resource. Gets a list of available target instances by making a list() request.", + "description": "Returns the specified TargetInstance resource.", "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", "httpMethod": "GET", "id": "compute.targetInstances.get", @@ -32674,7 +36918,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -32704,7 +36948,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" }, @@ -32726,6 +36970,55 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "setSecurityPolicy": { + "description": "Sets the Google Cloud Armor security policy for the specified target instance. For more information, see Google Cloud Armor Overview", + "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}/setSecurityPolicy", + "httpMethod": "POST", + "id": "compute.targetInstances.setSecurityPolicy", + "parameterOrder": [ + "project", + "zone", + "targetInstance" + ], + "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" + }, + "targetInstance": { + "description": "Name of the TargetInstance resource to which the security policy should be set. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}/setSecurityPolicy", + "request": { + "$ref": "SecurityPolicyReference" + }, + "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}/targetInstances/{resource}/testIamPermissions", @@ -32877,7 +37170,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", @@ -32886,7 +37179,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -32921,9 +37214,15 @@ "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/targetPools", @@ -32984,7 +37283,7 @@ ] }, "get": { - "description": "Returns the specified target pool. Gets a list of available target pools by making a list() request.", + "description": "Returns the specified target pool.", "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}", "httpMethod": "GET", "id": "compute.targetPools.get", @@ -33125,7 +37424,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -33162,7 +37461,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" } @@ -33333,6 +37632,55 @@ "https://www.googleapis.com/auth/compute" ] }, + "setSecurityPolicy": { + "description": "Sets the Google Cloud Armor security policy for the specified target pool. For more information, see Google Cloud Armor Overview", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/setSecurityPolicy", + "httpMethod": "POST", + "id": "compute.targetPools.setSecurityPolicy", + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "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 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" + }, + "targetPool": { + "description": "Name of the TargetPool resource to which the security policy should be set. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setSecurityPolicy", + "request": { + "$ref": "SecurityPolicyReference" + }, + "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}/targetPools/{resource}/testIamPermissions", @@ -33423,7 +37771,7 @@ ] }, "get": { - "description": "Returns the specified TargetSslProxy resource. Gets a list of available target SSL proxies by making a list() request.", + "description": "Returns the specified TargetSslProxy resource.", "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}", "httpMethod": "GET", "id": "compute.targetSslProxies.get", @@ -33501,7 +37849,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -33531,7 +37879,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" } @@ -33714,7 +38062,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", @@ -33797,7 +38145,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", @@ -33806,7 +38154,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -33841,9 +38189,15 @@ "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/targetTcpProxies", @@ -33896,7 +38250,7 @@ ] }, "get": { - "description": "Returns the specified TargetTcpProxy resource. Gets a list of available target TCP proxies by making a list() request.", + "description": "Returns the specified TargetTcpProxy resource.", "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", "httpMethod": "GET", "id": "compute.targetTcpProxies.get", @@ -33974,7 +38328,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -34004,7 +38358,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" } @@ -34146,7 +38500,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", @@ -34155,7 +38509,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -34190,9 +38544,15 @@ "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/targetVpnGateways", @@ -34253,7 +38613,7 @@ ] }, "get": { - "description": "Returns the specified target VPN gateway. Gets a list of available target VPN gateways by making a list() request.", + "description": "Returns the specified target VPN gateway.", "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", "httpMethod": "GET", "id": "compute.targetVpnGateways.get", @@ -34348,7 +38708,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -34385,7 +38745,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" } @@ -34501,7 +38861,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", @@ -34510,7 +38870,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -34545,9 +38905,15 @@ "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/urlMaps", @@ -34600,7 +38966,7 @@ ] }, "get": { - "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.", + "description": "Returns the specified UrlMap resource.", "flatPath": "projects/{project}/global/urlMaps/{urlMap}", "httpMethod": "GET", "id": "compute.urlMaps.get", @@ -34720,7 +39086,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -34750,7 +39116,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" } @@ -34929,7 +39295,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", @@ -34938,7 +39304,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -34973,9 +39339,15 @@ "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/vpnGateways", @@ -35036,7 +39408,7 @@ ] }, "get": { - "description": "Returns the specified VPN gateway. Gets a list of available VPN gateways by making a list() request.", + "description": "Returns the specified VPN gateway.", "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", "httpMethod": "GET", "id": "compute.vpnGateways.get", @@ -35174,7 +39546,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -35211,7 +39583,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" } @@ -35327,7 +39699,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", @@ -35336,7 +39708,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -35371,9 +39743,15 @@ "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/vpnTunnels", @@ -35434,7 +39812,7 @@ ] }, "get": { - "description": "Returns the specified VpnTunnel resource. Gets a list of available VPN tunnels by making a list() request.", + "description": "Returns the specified VpnTunnel resource.", "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", "httpMethod": "GET", "id": "compute.vpnTunnels.get", @@ -35529,7 +39907,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -35566,7 +39944,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" } @@ -35774,7 +40152,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -35804,7 +40182,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" }, @@ -35874,7 +40252,7 @@ "zones": { "methods": { "get": { - "description": "Returns the specified Zone resource. Gets a list of available zones by making a list() request.", + "description": "Returns the specified Zone resource.", "flatPath": "projects/{project}/zones/{zone}", "httpMethod": "GET", "id": "compute.zones.get", @@ -35918,7 +40296,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -35948,7 +40326,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" } @@ -35966,7 +40344,7 @@ } } }, - "revision": "20230103", + "revision": "20240218", "rootUrl": "https://compute.googleapis.com/", "schemas": { "AWSV4Signature": { @@ -36106,6 +40484,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -36124,6 +40503,36 @@ "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.", @@ -36135,6 +40544,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -36226,6 +40636,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -36244,6 +40655,36 @@ "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.", @@ -36255,6 +40696,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -36328,6 +40770,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -36346,6 +40789,36 @@ "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.", @@ -36357,6 +40830,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -36409,11 +40883,11 @@ "id": "AccessConfig", "properties": { "externalIpv6": { - "description": "The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.", + "description": "Applies to ipv6AccessConfigs only. The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.", "type": "string" }, "externalIpv6PrefixLength": { - "description": "The prefix length of the external IPv6 range.", + "description": "Applies to ipv6AccessConfigs only. The prefix length of the external IPv6 range.", "format": "int32", "type": "integer" }, @@ -36423,11 +40897,11 @@ "type": "string" }, "name": { - "description": "The name of this access configuration. The default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access.", + "description": "The name of this access configuration. In accessConfigs (IPv4), the default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access. In ipv6AccessConfigs, the recommend name is External IPv6.", "type": "string" }, "natIP": { - "description": "An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.", + "description": "Applies to accessConfigs (IPv4) only. An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.", "type": "string" }, "networkTier": { @@ -36450,13 +40924,16 @@ "description": "The DNS domain name for the public PTR record. You can set this field only if the `setPublicPtr` field is enabled in accessConfig. If this field is unspecified in ipv6AccessConfig, a default PTR record will be createc for first IP in associated external IPv6 range.", "type": "string" }, + "securityPolicy": { + "description": "[Output Only] The resource URL for the security policy associated with this access config.", + "type": "string" + }, "setPublicPtr": { "description": "Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name. This field is not used in ipv6AccessConfig. A default PTR record will be created if the VM has external IPv6 range associated.", "type": "boolean" }, "type": { - "default": "ONE_TO_ONE_NAT", - "description": "The type of configuration. The default and only option is ONE_TO_ONE_NAT.", + "description": "The type of configuration. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is DIRECT_IPV6.", "enum": [ "DIRECT_IPV6", "ONE_TO_ONE_NAT" @@ -36506,7 +40983,7 @@ "type": "string" }, "ipVersion": { - "description": "The IP version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.", + "description": "The IP version that will be used by this address. Valid options are IPV4 or IPV6.", "enum": [ "IPV4", "IPV6", @@ -36694,6 +41171,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -36712,6 +41190,36 @@ "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.", @@ -36723,6 +41231,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -36814,6 +41323,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -36832,6 +41342,36 @@ "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.", @@ -36843,6 +41383,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -36916,6 +41457,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -36934,6 +41476,36 @@ "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.", @@ -36945,6 +41517,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -37032,6 +41605,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", @@ -37111,10 +41758,14 @@ "maintenanceInterval": { "description": "Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`.", "enum": [ - "PERIODIC" + "AS_NEEDED", + "PERIODIC", + "RECURRENT" ], "enumDescriptions": [ - "VMs receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean a VM will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available." + "VMs are eligible to receive infrastructure and hypervisor updates as they become available. This may result in more maintenance operations (live migrations or terminations) for the VM than the PERIODIC and RECURRENT options.", + "VMs receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean a VM will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available.", + "VMs receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean a VM will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available. RECURRENT is used for GEN3 and Slice of Hardware VMs." ], "type": "string" }, @@ -37254,6 +41905,18 @@ ], "type": "string" }, + "savedState": { + "description": "For LocalSSD disks on VM Instances in STOPPED or SUSPENDED state, this field is set to PRESERVED if the LocalSSD data has been saved to a persistent location by customer request. (see the discard_local_ssd option on Stop/Suspend). Read-only in the api.", + "enum": [ + "DISK_SAVED_STATE_UNSPECIFIED", + "PRESERVED" + ], + "enumDescriptions": [ + "*[Default]* Disk state has not been preserved.", + "Disk state has been preserved." + ], + "type": "string" + }, "shieldedInstanceInitialState": { "$ref": "InitialStateConfig", "description": "[Output Only] shielded vm initial state stored on disk" @@ -37319,6 +41982,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" + }, "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. Guest OS features are applied by merging initializeParams.guestOsFeatures and disks.guestOsFeatures", "items": { @@ -37363,6 +42030,18 @@ "format": "int64", "type": "string" }, + "provisionedThroughput": { + "description": "Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must greater than or equal to 1.", + "format": "int64", + "type": "string" + }, + "replicaZones": { + "description": "Required for each regional disk associated with the instance. Specify the URLs of the zones where the disk should be replicated to. You must provide exactly two replica zones, and one zone must be the same as the instance zone.", + "items": { + "type": "string" + }, + "type": "array" + }, "resourceManagerTags": { "additionalProperties": { "type": "string" @@ -37385,6 +42064,10 @@ "$ref": "CustomerEncryptionKey", "description": "The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. InstanceTemplate and InstancePropertiesPatch do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys." }, + "sourceInstantSnapshot": { + "description": "The source instant-snapshot to create this disk. When creating a new instance, one of initializeParams.sourceSnapshot or initializeParams.sourceInstantSnapshot initializeParams.sourceImage or disks.source is required except for local SSD. To create a disk with a snapshot that you created, specify the snapshot name in the following format: us-central1-a/instantSnapshots/my-backup If the source instant-snapshot is deleted later, this field will not be set.", + "type": "string" + }, "sourceSnapshot": { "description": "The source snapshot to create this disk. When creating a new instance, one of initializeParams.sourceSnapshot or initializeParams.sourceImage or disks.source is required except for local SSD. To create a disk with a snapshot that you created, specify the snapshot name in the following format: global/snapshots/my-backup If the source snapshot is deleted later, this field will not be set.", "type": "string" @@ -37621,6 +42304,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -37639,6 +42323,36 @@ "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.", @@ -37650,6 +42364,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -37741,6 +42456,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -37759,6 +42475,36 @@ "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.", @@ -37770,6 +42516,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -37901,6 +42648,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -37919,6 +42667,36 @@ "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.", @@ -37930,6 +42708,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -37982,7 +42761,7 @@ "id": "AutoscalingPolicy", "properties": { "coolDownPeriodSec": { - "description": "The number of seconds that the autoscaler waits before it starts collecting information from a new instance. This prevents the autoscaler from collecting information when the instance is initializing, during which the collected usage would not be reliable. The default time autoscaler waits is 60 seconds. Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process.", + "description": "The number of seconds that your application takes to initialize on a VM instance. This is referred to as the [initialization period](/compute/docs/autoscaler#cool_down_period). Specifying an accurate initialization period improves autoscaler decisions. For example, when scaling out, the autoscaler ignores data from VMs that are still initializing because those VMs might not yet represent normal usage of your application. The default initialization period is 60 seconds. Initialization periods might vary because of numerous factors. We recommend that you test how long your application takes to initialize. To do this, create a VM and time your application's startup process.", "format": "int32", "type": "integer" }, @@ -38012,7 +42791,7 @@ "type": "integer" }, "mode": { - "description": "Defines operating mode for this policy.", + "description": "Defines the operating mode for this policy. The following modes are available: - OFF: Disables the autoscaler but maintains its configuration. - ONLY_SCALE_OUT: Restricts the autoscaler to add VM instances only. - ON: Enables all autoscaler activities according to its policy. For more information, see \"Turning off or restricting an autoscaler\"", "enum": [ "OFF", "ON", @@ -38179,7 +42958,7 @@ "type": "string" }, "timeZone": { - "description": "The time zone to use when interpreting the schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database. This field is assigned a default value of \u201cUTC\u201d if left empty.", + "description": "The time zone to use when interpreting the schedule. The value of this field must be a time zone name from the tz database: https://en.wikipedia.org/wiki/Tz_database. This field is assigned a default value of \"UTC\" if left empty.", "type": "string" } }, @@ -38254,6 +43033,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" @@ -38287,7 +43080,7 @@ "type": "string" }, "customResponseHeaders": { - "description": "Headers that the HTTP/S load balancer should add to proxied responses.", + "description": "Headers that the Application Load Balancer should add to proxied responses.", "items": { "type": "string" }, @@ -38501,6 +43294,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -38519,6 +43313,36 @@ "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.", @@ -38530,6 +43354,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -38582,7 +43407,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" }, @@ -38617,7 +43442,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", @@ -38650,12 +43475,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.", @@ -38671,13 +43496,29 @@ }, "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.", "format": "uint64", "type": "string" }, + "ipAddressSelectionPolicy": { + "description": "Specifies a preference for traffic sent from the proxy to the backend (or from the client to the backend for proxyless gRPC). The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv4 health checks are used to check the health of the backends. This is the default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's IPv6 address over its IPv4 address (provided there is a healthy IPv6 address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend service (Instance Group, Managed Instance Group, Network Endpoint Group), regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends. This field is applicable to either: - Advanced global external Application Load Balancer (load balancing scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, - Internal proxy Network Load Balancer (load balancing scheme INTERNAL_MANAGED), - Regional internal Application Load Balancer (load balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED). ", + "enum": [ + "IPV4_ONLY", + "IPV6_ONLY", + "IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED", + "PREFER_IPV6" + ], + "enumDescriptions": [ + "Only send IPv4 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv4 health-checks are used to check the health of the backends. This is the default setting.", + "Only send IPv6 traffic to the backends of the Backend Service (Instance Group, Managed Instance Group, Network Endpoint Group) regardless of traffic from the client to the proxy. Only IPv6 health-checks are used to check the health of the backends.", + "Unspecified IP address selection policy.", + "Prioritize the connection to the endpoints IPv6 address over its IPv4 address (provided there is a healthy IPv6 address)." + ], + "type": "string" + }, "kind": { "default": "compute#backendService", "description": "[Output Only] Type of resource. Always compute#backendService for backend services.", @@ -38694,24 +43535,24 @@ "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.", "" ], "type": "string" }, "localityLbPolicies": { - "description": "A list of locality load balancing policies to be used in order of preference. Either the policy or the customPolicy field should be set. Overrides any value set in the localityLbPolicy field. localityLbPolicies is only supported when the BackendService is referenced by a URL Map that is referenced by a target gRPC proxy that has the validateForProxyless field set to true.", + "description": "A list of locality load-balancing policies to be used in order of preference. When you use localityLbPolicies, you must set at least one value for either the localityLbPolicies[].policy or the localityLbPolicies[].customPolicy field. localityLbPolicies overrides any value set in the localityLbPolicy field. For an example of how to use this field, see Define a list of preferred policies. Caution: This field and its children are intended for use in a service mesh that includes gRPC clients only. Envoy proxies can't use backend services that have this configuration.", "items": { "$ref": "BackendServiceLocalityLoadBalancingPolicyConfig" }, "type": "array" }, "localityLbPolicy": { - "description": "The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED. If sessionAffinity is not NONE, and this field is not set to MAGLEV or RING_HASH, session affinity settings will not take effect. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", + "description": "The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not NONE, and this field is not set to MAGLEV or RING_HASH, session affinity settings will not take effect. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", "enum": [ "INVALID_LB_POLICY", "LEAST_REQUEST", @@ -38742,6 +43583,13 @@ "$ref": "Duration", "description": "Specifies the default maximum duration (timeout) for streams to this service. Duration is computed from the beginning of the stream until the response has been completely processed, including all retries. A stream that does not complete in this duration is closed. If not specified, there will be no timeout limit, i.e. the maximum duration is infinite. This value can be overridden in the PathMatcher configuration of the UrlMap that references this backend service. This field is only allowed when the loadBalancingScheme of the backend service is INTERNAL_SELF_MANAGED." }, + "metadatas": { + "additionalProperties": { + "type": "string" + }, + "description": "Deployment metadata associated with the resource to be set by a GKE hub controller and read by the backend RCTH", + "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])?", @@ -38753,15 +43601,16 @@ }, "outlierDetection": { "$ref": "OutlierDetection", - "description": "Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. If not set, this feature is considered disabled. This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, HTTP2, or GRPC, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED. " + "description": "Settings controlling the ejection of unhealthy backend endpoints from the load balancing pool of each individual proxy instance that processes the traffic for the given backend service. If not set, this feature is considered disabled. Results of the outlier detection algorithm (ejection of endpoints from the load balancing pool and returning them back to the pool) are executed independently by each proxy instance of the load balancer. In most cases, more than one proxy instance handles the traffic received by a backend service. Thus, it is possible that an unhealthy endpoint is detected and ejected by only some of the proxies, and while this happens, other proxies may continue to send requests to the same unhealthy endpoint until they detect and eject the unhealthy endpoint. Applicable backend endpoints can be: - VM instances in an Instance Group - Endpoints in a Zonal NEG (GCE_VM_IP, GCE_VM_IP_PORT) - Endpoints in a Hybrid Connectivity NEG (NON_GCP_PRIVATE_IP_PORT) - Serverless NEGs, that resolve to Cloud Run, App Engine, or Cloud Functions Services - Private Service Connect NEGs, that resolve to Google-managed regional API endpoints or managed services published using Private Service Connect Applicable backend service types can be: - A global backend service with the loadBalancingScheme set to INTERNAL_SELF_MANAGED or EXTERNAL_MANAGED. - A regional backend service with the serviceProtocol set to HTTP, HTTPS, or HTTP2, and loadBalancingScheme set to INTERNAL_MANAGED or EXTERNAL_MANAGED. Not supported for Serverless NEGs. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true." }, "port": { - "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.", + "deprecated": true, + "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": { @@ -38811,6 +43660,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": [ @@ -38842,6 +43695,12 @@ "description": "The backend service timeout has a different meaning depending on the type of load balancer. For more information see, Backend service settings. The default is 30 seconds. The full range of timeout values allowed goes from 1 through 2,147,483,647 seconds. This value can be overridden in the PathMatcher configuration of the UrlMap that references this backend service. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. Instead, use maxStreamDuration.", "format": "int32", "type": "integer" + }, + "usedBy": { + "items": { + "$ref": "BackendServiceUsedBy" + }, + "type": "array" } }, "type": "object" @@ -38898,6 +43757,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -38916,6 +43776,36 @@ "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.", @@ -38927,6 +43817,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -39102,11 +43993,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" }, @@ -39128,7 +44019,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": { @@ -39136,7 +44027,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": { @@ -39177,7 +44068,7 @@ "id": "BackendServiceIAP", "properties": { "enabled": { - "description": "Whether the serving infrastructure will authenticate and authorize all incoming requests. If true, the oauth2ClientId and oauth2ClientSecret fields must be non-empty.", + "description": "Whether the serving infrastructure will authenticate and authorize all incoming requests.", "type": "boolean" }, "oauth2ClientId": { @@ -39239,6 +44130,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -39257,6 +44149,36 @@ "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.", @@ -39268,6 +44190,159 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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" + }, + "BackendServiceListUsable": { + "description": "Contains a list of usable BackendService resources.", + "id": "BackendServiceListUsable", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of BackendService resources.", + "items": { + "$ref": "BackendService" + }, + "type": "array" + }, + "kind": { + "default": "compute#usableBackendServiceList", + "description": "[Output Only] Type of resource. Always compute#usableBackendServiceList for lists of usable backend services.", + "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.", @@ -39337,7 +44412,7 @@ "type": "string" }, "name": { - "description": "Identifies the custom policy. The value should match the type the custom implementation is registered with on the gRPC clients. It should follow protocol buffer message naming conventions and include the full path (e.g. myorg.CustomLbPolicy). The maximum length is 256 characters. Note that specifying the same custom policy more than once for a backend is not a valid configuration and will be rejected.", + "description": "Identifies the custom policy. The value should match the name of a custom implementation registered on the gRPC clients. It should follow protocol buffer message naming conventions and include the full path (for example, myorg.CustomLbPolicy). The maximum length is 256 characters. Do not specify the same custom policy more than once for a backend. If you do, the configuration is rejected. For an example of how to use this field, see Use a custom policy.", "type": "string" } }, @@ -39348,7 +44423,7 @@ "id": "BackendServiceLocalityLoadBalancingPolicyConfigPolicy", "properties": { "name": { - "description": "The name of a locality load balancer policy to be used. The value should be one of the predefined ones as supported by localityLbPolicy, although at the moment only ROUND_ROBIN is supported. This field should only be populated when the customPolicy field is not used. Note that specifying the same policy more than once for a backend is not a valid configuration and will be rejected.", + "description": "The name of a locality load-balancing policy. Valid values include ROUND_ROBIN and, for Java clients, LEAST_REQUEST. For information about these values, see the description of localityLbPolicy. Do not specify the same policy more than once for a backend. If you do, the configuration is rejected.", "enum": [ "INVALID_LB_POLICY", "LEAST_REQUEST", @@ -39382,6 +44457,27 @@ "description": "Denotes whether to enable logging for the load balancer traffic served by this backend service. The default value is false.", "type": "boolean" }, + "optionalFields": { + "description": "This field can only be specified if logging is enabled for this backend service and \"logConfig.optionalMode\" was set to CUSTOM. Contains a list of optional fields you want to include in the logs. For example: serverInstance, serverGkeDetails.cluster, serverGkeDetails.pod.podNamespace", + "items": { + "type": "string" + }, + "type": "array" + }, + "optionalMode": { + "description": "This field can only be specified if logging is enabled for this backend service. Configures whether all, none or a subset of optional fields should be added to the reported logs. One of [INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM]. Default is EXCLUDE_ALL_OPTIONAL.", + "enum": [ + "CUSTOM", + "EXCLUDE_ALL_OPTIONAL", + "INCLUDE_ALL_OPTIONAL" + ], + "enumDescriptions": [ + "A subset of optional fields.", + "None optional fields.", + "All optional fields." + ], + "type": "string" + }, "sampleRate": { "description": "This field can only be specified if logging is enabled for this backend service. The value of the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0.", "format": "float", @@ -39399,6 +44495,15 @@ }, "type": "object" }, + "BackendServiceUsedBy": { + "id": "BackendServiceUsedBy", + "properties": { + "reference": { + "type": "string" + } + }, + "type": "object" + }, "BackendServicesScopedList": { "id": "BackendServicesScopedList", "properties": { @@ -39425,6 +44530,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -39443,6 +44549,36 @@ "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.", @@ -39454,6 +44590,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -39757,14 +44894,25 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" + }, + "BulkInsertDiskResource": { + "description": "A transient resource used in compute.disks.bulkInsert and compute.regionDisks.bulkInsert. It is only used to process requests and is not persisted.", + "id": "BulkInsertDiskResource", + "properties": { + "sourceConsistencyGroupPolicy": { + "description": "The URL of the DiskConsistencyGroupPolicy for the group of disks to clone. This may be a full or partial URL, such as: - https://www.googleapis.com/compute/v1/projects/project/regions/region /resourcePolicies/resourcePolicy - projects/project/regions/region/resourcePolicies/resourcePolicy - regions/region/resourcePolicies/resourcePolicy ", "type": "string" } }, @@ -39814,6 +44962,10 @@ "description": "Per-instance properties to be set on individual instances. To be extended in the future.", "id": "BulkInsertInstanceResourcePerInstanceProperties", "properties": { + "hostname": { + "description": "Specifies the hostname of the instance. More details in: https://cloud.google.com/compute/docs/instances/custom-hostname-vm#naming_convention", + "type": "string" + }, "name": { "description": "This field is only temporary. It will be removed. Do not use it.", "type": "string" @@ -39821,6 +44973,48 @@ }, "type": "object" }, + "BulkInsertOperationStatus": { + "id": "BulkInsertOperationStatus", + "properties": { + "createdVmCount": { + "description": "[Output Only] Count of VMs successfully created so far.", + "format": "int32", + "type": "integer" + }, + "deletedVmCount": { + "description": "[Output Only] Count of VMs that got deleted during rollback.", + "format": "int32", + "type": "integer" + }, + "failedToCreateVmCount": { + "description": "[Output Only] Count of VMs that started creating but encountered an error.", + "format": "int32", + "type": "integer" + }, + "status": { + "description": "[Output Only] Creation status of BulkInsert operation - information if the flow is rolling forward or rolling back.", + "enum": [ + "CREATING", + "DONE", + "ROLLING_BACK", + "STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "Rolling forward - creating VMs.", + "Done", + "Rolling back - cleaning up after an error.", + "" + ], + "type": "string" + }, + "targetVmCount": { + "description": "[Output Only] Count of VMs originally planned to be created.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "BundledLocalSsds": { "id": "BundledLocalSsds", "properties": { @@ -39966,6 +45160,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", @@ -40011,7 +45212,7 @@ "type": "string" }, "reservations": { - "description": "List of reservations in this commitment.", + "description": "List of create-on-create reservations for this commitment.", "items": { "$ref": "Reservation" }, @@ -40029,7 +45230,7 @@ "type": "string" }, "splitSourceCommitment": { - "description": "Source commitment to be splitted into a new commitment.", + "description": "Source commitment to be split into a new commitment.", "type": "string" }, "startTimestamp": { @@ -40047,7 +45248,7 @@ ], "enumDescriptions": [ "", - "", + "Deprecate CANCELED status. Will use separate status to differentiate cancel by mergeCud or manual cancellation.", "", "", "" @@ -40062,15 +45263,21 @@ "description": "The type of commitment, which affects the discount rate and the eligible resources. Type MEMORY_OPTIMIZED specifies a commitment that will only apply to memory optimized machines. Type ACCELERATOR_OPTIMIZED specifies a commitment that will only apply to accelerator optimized machines.", "enum": [ "ACCELERATOR_OPTIMIZED", + "ACCELERATOR_OPTIMIZED_A3", "COMPUTE_OPTIMIZED", "COMPUTE_OPTIMIZED_C2D", + "COMPUTE_OPTIMIZED_C3", + "COMPUTE_OPTIMIZED_C3D", + "COMPUTE_OPTIMIZED_H3", "GENERAL_PURPOSE", "GENERAL_PURPOSE_E2", "GENERAL_PURPOSE_N2", "GENERAL_PURPOSE_N2D", "GENERAL_PURPOSE_T2D", + "GRAPHICS_OPTIMIZED", "MEMORY_OPTIMIZED", "MEMORY_OPTIMIZED_M3", + "STORAGE_OPTIMIZED_Z3", "TYPE_UNSPECIFIED" ], "enumDescriptions": [ @@ -40084,6 +45291,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ], "type": "string" @@ -40142,6 +45355,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -40160,6 +45374,36 @@ "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.", @@ -40171,6 +45415,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -40262,6 +45507,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -40280,6 +45526,36 @@ "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.", @@ -40291,6 +45567,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -40364,6 +45641,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -40382,6 +45660,36 @@ "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.", @@ -40393,6 +45701,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -40524,6 +45833,22 @@ "description": "A set of Confidential Instance options.", "id": "ConfidentialInstanceConfig", "properties": { + "confidentialInstanceType": { + "description": "Defines the type of technology used by the confidential instance.", + "enum": [ + "CONFIDENTIAL_INSTANCE_TYPE_UNSPECIFIED", + "SEV", + "SEV_SNP", + "TDX" + ], + "enumDescriptions": [ + "No type specified. Do not use this value.", + "AMD Secure Encrypted Virtualization.", + "AMD Secure Encrypted Virtualization - Secure Nested Paging.", + "Intel Trust Domain eXtension." + ], + "type": "string" + }, "enableConfidentialCompute": { "description": "Defines whether the instance should have confidential compute enabled.", "type": "boolean" @@ -40637,11 +45962,52 @@ }, "type": "object" }, + "CustomErrorResponsePolicy": { + "description": "Specifies the custom error response policy that must be applied when the backend service or backend bucket responds with an error.", + "id": "CustomErrorResponsePolicy", + "properties": { + "errorResponseRules": { + "description": "Specifies rules for returning error responses. In a given policy, if you specify rules for both a range of error codes as well as rules for specific error codes then rules with specific error codes have a higher priority. For example, assume that you configure a rule for 401 (Un-authorized) code, and another for all 4 series error codes (4XX). If the backend service returns a 401, then the rule for 401 will be applied. However if the backend service returns a 403, the rule for 4xx takes effect.", + "items": { + "$ref": "CustomErrorResponsePolicyCustomErrorResponseRule" + }, + "type": "array" + }, + "errorService": { + "description": "The full or partial URL to the BackendBucket resource that contains the custom error content. Examples are: - https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket - compute/v1/projects/project/global/backendBuckets/myBackendBucket - global/backendBuckets/myBackendBucket If errorService is not specified at lower levels like pathMatcher, pathRule and routeRule, an errorService specified at a higher level in the UrlMap will be used. If UrlMap.defaultCustomErrorResponsePolicy contains one or more errorResponseRules[], it must specify errorService. If load balancer cannot reach the backendBucket, a simple Not Found Error will be returned, with the original response code (or overrideResponseCode if configured). errorService is not supported for internal or regional HTTP/HTTPS load balancers.", + "type": "string" + } + }, + "type": "object" + }, + "CustomErrorResponsePolicyCustomErrorResponseRule": { + "description": "Specifies the mapping between the response code that will be returned along with the custom error content and the response code returned by the backend service.", + "id": "CustomErrorResponsePolicyCustomErrorResponseRule", + "properties": { + "matchResponseCodes": { + "description": "Valid values include: - A number between 400 and 599: For example 401 or 503, in which case the load balancer applies the policy if the error code exactly matches this value. - 5xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 500 to 599. - 4xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 400 to 499. Values must be unique within matchResponseCodes and across all errorResponseRules of CustomErrorResponsePolicy.", + "items": { + "type": "string" + }, + "type": "array" + }, + "overrideResponseCode": { + "description": "The HTTP status code returned with the response containing the custom error content. If overrideResponseCode is not supplied, the same response code returned by the original backend bucket or backend service is returned to the client.", + "format": "int32", + "type": "integer" + }, + "path": { + "description": "The full path to a file within backendBucket . For example: /errors/defaultError.html path must start with a leading slash. path cannot have trailing slashes. If the file is not available in backendBucket or the load balancer cannot reach the BackendBucket, a simple Not Found Error is returned to the client. The value must be from 1 to 1024 characters", + "type": "string" + } + }, + "type": "object" + }, "CustomerEncryptionKey": { "id": "CustomerEncryptionKey", "properties": { "kmsKeyName": { - "description": "The name of the encryption key that is stored in Google Cloud KMS. For example: \"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key ", + "description": "The name of the encryption key that is stored in Google Cloud KMS. For example: \"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key The fully-qualifed key name may be returned for resource GET requests. For example: \"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key /cryptoKeyVersions/1 ", "type": "string" }, "kmsKeyServiceAccount": { @@ -40738,6 +46104,17 @@ ], "type": "string" }, + "asyncPrimaryDisk": { + "$ref": "DiskAsyncReplication", + "description": "Disk asynchronously replicated into this disk." + }, + "asyncSecondaryDisks": { + "additionalProperties": { + "$ref": "DiskAsyncReplicationList" + }, + "description": "[Output Only] A list of disks this disk is asynchronously replicated to.", + "type": "object" + }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -40750,6 +46127,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" + }, "eraseWindowsVssSignature": { "description": "Specifies whether the disk restored from a source snapshot should erase Windows specific VSS signature.", "type": "boolean" @@ -40767,6 +46148,7 @@ "type": "string" }, "interface": { + "deprecated": true, "description": "[Deprecated] Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI.", "enum": [ "NVME", @@ -40860,6 +46242,11 @@ "format": "int64", "type": "string" }, + "provisionedThroughput": { + "description": "Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must be greater than or equal to 1.", + "format": "int64", + "type": "string" + }, "region": { "description": "[Output Only] URL of the region where the disk resides. Only applicable for regional resources. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", "type": "string" @@ -40878,6 +46265,15 @@ }, "type": "array" }, + "resourceStatus": { + "$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" @@ -40887,10 +46283,18 @@ "type": "string" }, "sizeGb": { - "description": "Size, in GB, of the persistent disk. You can specify this field when creating a persistent disk using the sourceImage, sourceSnapshot, or sourceDisk parameter, or specify it alone to create an empty persistent disk. If you specify this field along with a source, the value of sizeGb must not be less than the size of the source. Acceptable values are 1 to 65536, inclusive.", + "description": "Size, in GB, of the persistent disk. You can specify this field when creating a persistent disk using the sourceImage, sourceSnapshot, or sourceDisk parameter, or specify it alone to create an empty persistent disk. If you specify this field along with a source, the value of sizeGb must not be less than the size of the source. Acceptable values are greater than 0.", "format": "int64", "type": "string" }, + "sourceConsistencyGroupPolicy": { + "description": "[Output Only] URL of the DiskConsistencyGroupPolicy for a secondary disk that was created using a consistency group.", + "type": "string" + }, + "sourceConsistencyGroupPolicyId": { + "description": "[Output Only] ID of the DiskConsistencyGroupPolicy for a secondary disk that was created using a consistency group.", + "type": "string" + }, "sourceDisk": { "description": "The source disk used to create this disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk ", "type": "string" @@ -40911,6 +46315,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" @@ -41033,6 +46445,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -41051,6 +46464,36 @@ "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.", @@ -41062,6 +46505,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -41109,6 +46553,37 @@ }, "type": "object" }, + "DiskAsyncReplication": { + "id": "DiskAsyncReplication", + "properties": { + "consistencyGroupPolicy": { + "description": "[Output Only] URL of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group.", + "type": "string" + }, + "consistencyGroupPolicyId": { + "description": "[Output Only] ID of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group.", + "type": "string" + }, + "disk": { + "description": "The other disk asynchronously replicated to or from the current disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk ", + "type": "string" + }, + "diskId": { + "description": "[Output Only] The unique ID of the other disk asynchronously replicated to or from the current disk. This value identifies the exact disk that was used to create this replication. For example, if you started replicating the persistent disk from a disk that was later deleted and recreated under the same name, the disk ID would identify the exact version of the disk that was used.", + "type": "string" + } + }, + "type": "object" + }, + "DiskAsyncReplicationList": { + "id": "DiskAsyncReplicationList", + "properties": { + "asyncReplicationDisk": { + "$ref": "DiskAsyncReplication" + } + }, + "type": "object" + }, "DiskInstantiationConfig": { "description": "A specification of the desired way to instantiate a disk in the instance template when its created from a source instance.", "id": "DiskInstantiationConfig", @@ -41194,6 +46669,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -41212,6 +46688,36 @@ "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.", @@ -41223,6 +46729,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -41298,6 +46805,47 @@ }, "type": "object" }, + "DiskResourceStatus": { + "id": "DiskResourceStatus", + "properties": { + "asyncPrimaryDisk": { + "$ref": "DiskResourceStatusAsyncReplicationStatus" + }, + "asyncSecondaryDisks": { + "additionalProperties": { + "$ref": "DiskResourceStatusAsyncReplicationStatus" + }, + "description": "Key: disk, value: AsyncReplicationStatus message", + "type": "object" + } + }, + "type": "object" + }, + "DiskResourceStatusAsyncReplicationStatus": { + "id": "DiskResourceStatusAsyncReplicationStatus", + "properties": { + "state": { + "enum": [ + "ACTIVE", + "CREATED", + "STARTING", + "STATE_UNSPECIFIED", + "STOPPED", + "STOPPING" + ], + "enumDescriptions": [ + "Replication is active.", + "Secondary disk is created and is waiting for replication to start.", + "Replication is starting.", + "", + "Replication is stopped.", + "Replication is stopping." + ], + "type": "string" + } + }, + "type": "object" + }, "DiskType": { "description": "Represents a Disk Type resource. Google Compute Engine has two Disk Type resources: * [Regional](/compute/docs/reference/rest/beta/regionDiskTypes) * [Zonal](/compute/docs/reference/rest/beta/diskTypes) You can choose from a variety of disk types based on your needs. For more information, read Storage options. The diskTypes resource represents disk types for a zonal persistent disk. For more information, read Zonal persistent disks. The regionDiskTypes resource represents disk types for a regional persistent disk. For more information, read Regional persistent disks.", "id": "DiskType", @@ -41404,6 +46952,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -41422,6 +46971,36 @@ "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.", @@ -41433,6 +47012,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -41524,6 +47104,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -41542,6 +47123,36 @@ "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.", @@ -41553,6 +47164,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -41626,6 +47238,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -41644,6 +47257,36 @@ "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.", @@ -41655,6 +47298,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -41765,6 +47409,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -41783,6 +47428,36 @@ "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.", @@ -41794,6 +47469,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -41841,6 +47517,27 @@ }, "type": "object" }, + "DisksStartAsyncReplicationRequest": { + "id": "DisksStartAsyncReplicationRequest", + "properties": { + "asyncSecondaryDisk": { + "description": "The secondary disk to start asynchronous replication to. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk ", + "type": "string" + } + }, + "type": "object" + }, + "DisksStopGroupAsyncReplicationResource": { + "description": "A transient resource used in compute.disks.stopGroupAsyncReplication and compute.regionDisks.stopGroupAsyncReplication. It is only used to process requests and is not persisted.", + "id": "DisksStopGroupAsyncReplicationResource", + "properties": { + "resourcePolicy": { + "description": "The URL of the DiskConsistencyGroupPolicy for the group of disks to stop. This may be a full or partial URL, such as: - https://www.googleapis.com/compute/v1/projects/project/regions/region /resourcePolicies/resourcePolicy - projects/project/regions/region/resourcePolicies/resourcePolicy - regions/region/resourcePolicies/resourcePolicy ", + "type": "string" + } + }, + "type": "object" + }, "DisplayDevice": { "description": "A set of Display Device options", "id": "DisplayDevice", @@ -42016,6 +47713,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -42034,6 +47732,36 @@ "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.", @@ -42045,6 +47773,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -42199,6 +47928,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" @@ -42250,6 +47983,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -42268,6 +48002,36 @@ "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.", @@ -42279,6 +48043,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -42427,6 +48192,7 @@ "type": "boolean" }, "enableLogging": { + "deprecated": true, "description": "Deprecated in favor of enable in LogConfig. This field denotes whether to enable logging for a particular firewall rule. If logging is enabled, logs will be exported t Cloud Logging.", "type": "boolean" }, @@ -42550,6 +48316,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -42568,6 +48335,36 @@ "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.", @@ -42579,6 +48376,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -42687,6 +48485,7 @@ "type": "string" }, "displayName": { + "deprecated": true, "description": "Deprecated, please use short name instead. User-provided name of the Organization firewall policy. The name should be unique in the organization in which the firewall policy is created. This field is not applicable to network firewall policies. This name must be set on creation and cannot be changed. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" @@ -42754,6 +48553,7 @@ "type": "string" }, "displayName": { + "deprecated": true, "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy of the association.", "type": "string" }, @@ -42811,6 +48611,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -42829,6 +48630,36 @@ "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.", @@ -42840,6 +48671,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -42942,6 +48774,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": { @@ -42962,6 +48798,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" @@ -43120,7 +48960,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/beta/globalForwardingRules) * [Regional](https://cloud.google.com/compute/docs/reference/rest/beta/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/beta/globalForwardingRules) * [Regional](https://cloud.google.com/compute/docs/reference/rest/beta/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": { @@ -43150,23 +48990,27 @@ "type": "string" }, "allPorts": { - "description": "This field can only be used: - If IPProtocol is one of TCP, UDP, or SCTP. - By internal TCP/UDP load balancers, backend service-based network load balancers, and internal and external protocol forwarding. Set this field to true to allow packets addressed to any port or packets lacking destination port information (for example, UDP fragments after the first fragment) to be forwarded to the backends configured with this forwarding rule. The ports, port_range, and allPorts fields are mutually exclusive.", + "description": "The ports, portRange, and allPorts fields are mutually exclusive. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The allPorts field has the following limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, SCTP, or L3_DEFAULT. - It's applicable only to the following products: internal passthrough Network Load Balancers, backend service-based external passthrough Network Load Balancers, and internal and external protocol forwarding. - Set this field to true to allow packets addressed to any port or packets lacking destination port information (for example, UDP fragments after the first fragment) to be forwarded to the backends configured with this forwarding rule. The L3_DEFAULT protocol requires allPorts be set to true. ", "type": "boolean" }, "allowGlobalAccess": { - "description": "This field is used along with the backend_service field for internal load balancing or with the target field for internal TargetInstance. If the field is set to TRUE, clients can access ILB from all regions. Otherwise only allows access from clients in the same region as the internal load balancer.", + "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": { "description": "This is used in PSC consumer ForwardingRule to control whether the PSC endpoint can be accessed from another region.", "type": "boolean" }, + "allowPscPacketInjection": { + "description": "This is used in PSC consumer ForwardingRule to control whether the producer is allowed to inject packets into the consumer's network. If set to true, the target service attachment must have tunneling enabled and TunnelingConfig.RoutingMode set to PACKET_INJECTION Non-PSC forwarding rules should not use this field.", + "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": { @@ -43207,7 +49051,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": { @@ -43255,7 +49099,7 @@ "type": "string" }, "network": { - "description": "This field is not used for external load balancing. For Internal TCP/UDP Load Balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used. For Private Service Connect forwarding rules that forward traffic to Google APIs, a network must be provided.", + "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": { @@ -43275,22 +49119,22 @@ "type": "string" }, "noAutomateDnsZone": { - "description": "This is used in PSC consumer ForwardingRule to control whether it should try to auto-generate a DNS zone or not. Non-PSC forwarding rules do not use this field.", + "description": "This is used in PSC consumer ForwardingRule to control whether it should try to auto-generate a DNS zone or not. Non-PSC forwarding rules do not use this field. Once set, this field is not mutable.", "type": "boolean" }, "portRange": { - "description": "This field can only be used: - If IPProtocol is one of TCP, UDP, or SCTP. - By backend service-based network load balancers, target pool-based network load balancers, internal proxy load balancers, external proxy load balancers, Traffic Director, external protocol forwarding, and Classic VPN. Some products have restrictions on what ports can be used. See port specifications for details. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The ports, port_range, and allPorts fields are mutually exclusive. For external forwarding rules, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. For internal forwarding rules within the same VPC network, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. @pattern: \\\\d+(?:-\\\\d+)?", + "description": "The ports, portRange, and allPorts fields are mutually exclusive. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The portRange field has the following limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, or SCTP, and - It's applicable only to the following products: external passthrough Network Load Balancers, internal and external proxy Network Load Balancers, internal and external Application Load Balancers, external protocol forwarding, and Classic VPN. - Some products have restrictions on what ports can be used. See port specifications for details. For external forwarding rules, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. For internal forwarding rules within the same VPC network, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. @pattern: \\\\d+(?:-\\\\d+)?", "type": "string" }, "ports": { - "description": "This field can only be used: - If IPProtocol is one of TCP, UDP, or SCTP. - By internal TCP/UDP load balancers, backend service-based network load balancers, and internal protocol forwarding. You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. For external forwarding rules, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot share any values defined in ports. For internal forwarding rules within the same VPC network, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot share any values defined in ports. The ports, port_range, and allPorts fields are mutually exclusive. @pattern: \\\\d+(?:-\\\\d+)?", + "description": "The ports, portRange, and allPorts fields are mutually exclusive. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The ports field has the following limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, or SCTP, and - It's applicable only to the following products: internal passthrough Network Load Balancers, backend service-based external passthrough Network Load Balancers, and internal protocol forwarding. - You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. For external forwarding rules, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair if they share at least one port number. For internal forwarding rules within the same VPC network, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair if they share at least one port number. @pattern: \\\\d+(?:-\\\\d+)?", "items": { "type": "string" }, "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" }, @@ -43329,27 +49173,27 @@ "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": { - "description": "The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must be in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. - For load balancers, see the \"Target\" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). - For Private Service Connect forwarding rules that forward traffic to Google APIs, provide the name of a supported Google API bundle: - vpc-sc - APIs that support VPC Service Controls. - all-apis - All supported Google APIs. - For Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment. ", + "description": "The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must be in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. - For load balancers, see the \"Target\" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). - For Private Service Connect forwarding rules that forward traffic to Google APIs, provide the name of a supported Google API bundle: - vpc-sc - APIs that support VPC Service Controls. - all-apis - All supported Google APIs. - For Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment. The target is not mutable once set as a service attachment. ", "type": "string" } }, @@ -43406,6 +49250,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -43424,6 +49269,36 @@ "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.", @@ -43435,6 +49310,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -43526,6 +49402,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -43544,6 +49421,36 @@ "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.", @@ -43555,6 +49462,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -43612,7 +49520,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": { @@ -43624,7 +49532,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" } }, @@ -43656,6 +49564,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -43674,6 +49583,36 @@ "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.", @@ -43685,6 +49624,758 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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" + }, + "FutureReservation": { + "id": "FutureReservation", + "properties": { + "autoCreatedReservationsDeleteTime": { + "description": "Future timestamp when the FR auto-created reservations will be deleted by Compute Engine. Format of this field must be a valid href=\"https://www.ietf.org/rfc/rfc3339.txt\">RFC3339 value.", + "type": "string" + }, + "autoCreatedReservationsDuration": { + "$ref": "Duration", + "description": "Specifies the duration of auto-created reservations. It represents relative time to future reservation start_time when auto-created reservations will be automatically deleted by Compute Engine. Duration time unit is represented as a count of seconds and fractions of seconds at nanosecond resolution." + }, + "autoDeleteAutoCreatedReservations": { + "description": "Setting for enabling or disabling automatic deletion for auto-created reservation. If set to true, auto-created reservations will be deleted at Future Reservation's end time (default) or at user's defined timestamp if any of the [auto_created_reservations_delete_time, auto_created_reservations_duration] values is specified. For keeping auto-created reservation indefinitely, this value should be set to false.", + "type": "boolean" + }, + "creationTimestamp": { + "description": "[Output Only] The creation timestamp for this future reservation in RFC3339 text format.", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the future reservation.", + "type": "string" + }, + "id": { + "description": "[Output Only] A unique identifier for this future reservation. The server defines this identifier.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#futureReservation", + "description": "[Output Only] Type of the resource. Always compute#futureReservation for future reservations.", + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.instances.insert" + ] + }, + "description": "The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "namePrefix": { + "description": "Name prefix for the reservations to be created at the time of delivery. The name prefix must comply with RFC1035. Maximum allowed length for name prefix is 20. Automatically created reservations name format will be -date-####.", + "type": "string" + }, + "planningStatus": { + "description": "Planning state before being submitted for evaluation", + "enum": [ + "DRAFT", + "PLANNING_STATUS_UNSPECIFIED", + "SUBMITTED" + ], + "enumDescriptions": [ + "Future Reservation is being drafted.", + "", + "Future Reservation has been submitted for evaluation by GCP." + ], + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined fully-qualified URL for this resource.", + "type": "string" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource with the resource id.", + "type": "string" + }, + "shareSettings": { + "$ref": "ShareSettings", + "description": "List of Projects/Folders to share with." + }, + "specificSkuProperties": { + "$ref": "FutureReservationSpecificSKUProperties", + "description": "Future Reservation configuration to indicate instance properties and total count." + }, + "status": { + "$ref": "FutureReservationStatus", + "description": "[Output only] Status of the Future Reservation" + }, + "timeWindow": { + "$ref": "FutureReservationTimeWindow", + "description": "Time window for this Future Reservation." + }, + "zone": { + "description": "[Output Only] URL of the Zone where this future reservation resides.", + "type": "string" + } + }, + "type": "object" + }, + "FutureReservationSpecificSKUProperties": { + "id": "FutureReservationSpecificSKUProperties", + "properties": { + "instanceProperties": { + "$ref": "AllocationSpecificSKUAllocationReservedInstanceProperties", + "description": "Properties of the SKU instances being reserved." + }, + "sourceInstanceTemplate": { + "description": "The instance template that will be used to populate the ReservedInstanceProperties of the future reservation", + "type": "string" + }, + "totalCount": { + "description": "Total number of instances for which capacity assurance is requested at a future time period.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "FutureReservationStatus": { + "description": "[Output only] Represents status related to the future reservation.", + "id": "FutureReservationStatus", + "properties": { + "amendmentStatus": { + "description": "[Output Only] The current status of the requested amendment.", + "enum": [ + "AMENDMENT_APPROVED", + "AMENDMENT_DECLINED", + "AMENDMENT_IN_REVIEW", + "AMENDMENT_STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "The requested amendment to the Future Resevation has been approved and applied by GCP.", + "The requested amendment to the Future Reservation has been declined by GCP and the original state was restored.", + "The requested amendment to the Future Reservation is currently being reviewd by GCP.", + "" + ], + "type": "string" + }, + "autoCreatedReservations": { + "description": "Fully qualified urls of the automatically created reservations at start_time.", + "items": { + "type": "string" + }, + "type": "array" + }, + "fulfilledCount": { + "description": "This count indicates the fulfilled capacity so far. This is set during \"PROVISIONING\" state. This count also includes capacity delivered as part of existing matching reservations.", + "format": "int64", + "type": "string" + }, + "lastKnownGoodState": { + "$ref": "FutureReservationStatusLastKnownGoodState", + "description": "[Output Only] This field represents the future reservation before an amendment was requested. If the amendment is declined, the Future Reservation will be reverted to the last known good state. The last known good state is not set when updating a future reservation whose Procurement Status is DRAFTING." + }, + "lockTime": { + "description": "Time when Future Reservation would become LOCKED, after which no modifications to Future Reservation will be allowed. Applicable only after the Future Reservation is in the APPROVED state. The lock_time is an RFC3339 string. The procurement_status will transition to PROCURING state at this time.", + "type": "string" + }, + "procurementStatus": { + "description": "Current state of this Future Reservation", + "enum": [ + "APPROVED", + "CANCELLED", + "COMMITTED", + "DECLINED", + "DRAFTING", + "FAILED", + "FAILED_PARTIALLY_FULFILLED", + "FULFILLED", + "PENDING_AMENDMENT_APPROVAL", + "PENDING_APPROVAL", + "PROCUREMENT_STATUS_UNSPECIFIED", + "PROCURING", + "PROVISIONING" + ], + "enumDescriptions": [ + "Future reservation is approved by GCP.", + "Future reservation is cancelled by the customer.", + "Future reservation is committed by the customer.", + "Future reservation is rejected by GCP.", + "Related status for PlanningStatus.Draft. Transitions to PENDING_APPROVAL upon user submitting FR.", + "Future reservation failed. No additional reservations were provided.", + "Future reservation is partially fulfilled. Additional reservations were provided but did not reach total_count reserved instance slots.", + "Future reservation is fulfilled completely.", + "An Amendment to the Future Reservation has been requested. If the Amendment is declined, the Future Reservation will be restored to the last known good state.", + "Future reservation is pending approval by GCP.", + "", + "Future reservation is being procured by GCP. Beyond this point, Future reservation is locked and no further modifications are allowed.", + "Future reservation capacity is being provisioned. This state will be entered after start_time, while reservations are being created to provide total_count reserved instance slots. This state will not persist past start_time + 24h." + ], + "type": "string" + }, + "specificSkuProperties": { + "$ref": "FutureReservationStatusSpecificSKUProperties" + } + }, + "type": "object" + }, + "FutureReservationStatusLastKnownGoodState": { + "description": "The state that the future reservation will be reverted to should the amendment be declined.", + "id": "FutureReservationStatusLastKnownGoodState", + "properties": { + "description": { + "description": "[Output Only] The description of the FutureReservation before an amendment was requested.", + "type": "string" + }, + "futureReservationSpecs": { + "$ref": "FutureReservationStatusLastKnownGoodStateFutureReservationSpecs" + }, + "lockTime": { + "description": "[Output Only] The lock time of the FutureReservation before an amendment was requested.", + "type": "string" + }, + "namePrefix": { + "description": "[Output Only] The name prefix of the Future Reservation before an amendment was requested.", + "type": "string" + }, + "procurementStatus": { + "description": "[Output Only] The status of the last known good state for the Future Reservation.", + "enum": [ + "APPROVED", + "CANCELLED", + "COMMITTED", + "DECLINED", + "DRAFTING", + "FAILED", + "FAILED_PARTIALLY_FULFILLED", + "FULFILLED", + "PENDING_AMENDMENT_APPROVAL", + "PENDING_APPROVAL", + "PROCUREMENT_STATUS_UNSPECIFIED", + "PROCURING", + "PROVISIONING" + ], + "enumDescriptions": [ + "Future reservation is approved by GCP.", + "Future reservation is cancelled by the customer.", + "Future reservation is committed by the customer.", + "Future reservation is rejected by GCP.", + "Related status for PlanningStatus.Draft. Transitions to PENDING_APPROVAL upon user submitting FR.", + "Future reservation failed. No additional reservations were provided.", + "Future reservation is partially fulfilled. Additional reservations were provided but did not reach total_count reserved instance slots.", + "Future reservation is fulfilled completely.", + "An Amendment to the Future Reservation has been requested. If the Amendment is declined, the Future Reservation will be restored to the last known good state.", + "Future reservation is pending approval by GCP.", + "", + "Future reservation is being procured by GCP. Beyond this point, Future reservation is locked and no further modifications are allowed.", + "Future reservation capacity is being provisioned. This state will be entered after start_time, while reservations are being created to provide total_count reserved instance slots. This state will not persist past start_time + 24h." + ], + "type": "string" + } + }, + "type": "object" + }, + "FutureReservationStatusLastKnownGoodStateFutureReservationSpecs": { + "description": "The properties of the last known good state for the Future Reservation.", + "id": "FutureReservationStatusLastKnownGoodStateFutureReservationSpecs", + "properties": { + "shareSettings": { + "$ref": "ShareSettings", + "description": "[Output Only] The previous share settings of the Future Reservation." + }, + "specificSkuProperties": { + "$ref": "FutureReservationSpecificSKUProperties", + "description": "[Output Only] The previous instance related properties of the Future Reservation." + }, + "timeWindow": { + "$ref": "FutureReservationTimeWindow", + "description": "[Output Only] The previous time window of the Future Reservation." + } + }, + "type": "object" + }, + "FutureReservationStatusSpecificSKUProperties": { + "description": "Properties to be set for the Future Reservation.", + "id": "FutureReservationStatusSpecificSKUProperties", + "properties": { + "sourceInstanceTemplateId": { + "description": "ID of the instance template used to populate the Future Reservation properties.", + "type": "string" + } + }, + "type": "object" + }, + "FutureReservationTimeWindow": { + "id": "FutureReservationTimeWindow", + "properties": { + "duration": { + "$ref": "Duration" + }, + "endTime": { + "type": "string" + }, + "startTime": { + "description": "Start time of the Future Reservation. The start_time is an RFC3339 string.", + "type": "string" + } + }, + "type": "object" + }, + "FutureReservationsAggregatedListResponse": { + "description": "Contains a list of future reservations.", + "id": "FutureReservationsAggregatedListResponse", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "FutureReservationsScopedList", + "description": "Name of the scope containing this set of future reservations." + }, + "description": "A list of Future reservation resources.", + "type": "object" + }, + "kind": { + "default": "compute#futureReservationsAggregatedListResponse", + "description": "[Output Only] Type of resource. Always compute#futureReservationsAggregatedListResponse for future resevation aggregated list response.", + "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" + }, + "FutureReservationsListResponse": { + "id": "FutureReservationsListResponse", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + }, + "items": { + "description": "[Output Only] A list of future reservation resources.", + "items": { + "$ref": "FutureReservation" + }, + "type": "array" + }, + "kind": { + "default": "compute#futureReservationsListResponse", + "description": "[Output Only] Type of resource.Always compute#FutureReservationsListResponse for lists of reservations", + "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" + }, + "FutureReservationsScopedList": { + "id": "FutureReservationsScopedList", + "properties": { + "futureReservations": { + "description": "A list of future reservations contained in this scope.", + "items": { + "$ref": "FutureReservation" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of future reservations 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.", @@ -43749,7 +50440,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", @@ -43765,6 +50456,20 @@ }, "type": "object" }, + "GlobalAddressesMoveRequest": { + "id": "GlobalAddressesMoveRequest", + "properties": { + "description": { + "description": "An optional destination address description if intended to be different from the source.", + "type": "string" + }, + "destinationAddress": { + "description": "The URL of the destination address to move to. This can be a full or partial URL. For example, the following are all valid URLs to a address: - https://www.googleapis.com/compute/v1/projects/project /global/addresses/address - projects/project/global/addresses/address Note that destination project must be different from the source project. So /global/addresses/address is not valid partial url.", + "type": "string" + } + }, + "type": "object" + }, "GlobalNetworkEndpointGroupsAttachEndpointsRequest": { "id": "GlobalNetworkEndpointGroupsAttachEndpointsRequest", "properties": { @@ -43922,14 +50627,18 @@ "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_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", + "SEV_LIVE_MIGRATABLE", + "SEV_LIVE_MIGRATABLE_V2", "SEV_SNP_CAPABLE", + "TDX_CAPABLE", "UEFI_COMPATIBLE", "VIRTIO_SCSI_MULTIQUEUE", "WINDOWS" @@ -43943,6 +50652,10 @@ "", "", "", + "", + "", + "", + "", "" ], "type": "string" @@ -43967,7 +50680,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", @@ -44020,7 +50733,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", @@ -44073,7 +50786,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", @@ -44110,7 +50823,7 @@ "type": "object" }, "HealthCheck": { - "description": "Represents a Health Check resource. Google Compute Engine has two Health Check resources: * [Global](/compute/docs/reference/rest/beta/healthChecks) * [Regional](/compute/docs/reference/rest/beta/regionHealthChecks) Internal HTTP(S) load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Traffic Director must use global health checks (`compute.v1.HealthChecks`). Internal TCP/UDP load balancers can use either regional or global health checks (`compute.v1.regionHealthChecks` or `compute.v1.HealthChecks`). External HTTP(S), TCP proxy, and SSL proxy load balancers as well as managed instance group auto-healing must use global health checks (`compute.v1.HealthChecks`). Backend service-based network load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Target pool-based network load balancers must use legacy HTTP health checks (`compute.v1.httpHealthChecks`). For more information, see Health checks overview.", + "description": "Represents a health check resource. Google Compute Engine has two health check resources: * [Regional](/compute/docs/reference/rest/beta/regionHealthChecks) * [Global](/compute/docs/reference/rest/beta/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": { @@ -44255,6 +50968,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -44273,6 +50987,36 @@ "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.", @@ -44284,6 +51028,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -44389,6 +51134,7 @@ "type": "string" }, "healthStatusAggregationStrategy": { + "deprecated": true, "description": "This field is deprecated. Use health_status_aggregation_policy instead. Policy for how the results from multiple health checks for the same endpoint are aggregated. - NO_AGGREGATION. An EndpointHealth message is returned for each backend in the health check service. - AND. If any backend's health check reports UNHEALTHY, then UNHEALTHY is the HealthState of the entire health check service. If all backend's are healthy, the HealthState of the health check service is HEALTHY. .", "enum": [ "AND", @@ -44493,6 +51239,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -44511,6 +51258,36 @@ "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.", @@ -44522,6 +51299,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -44620,6 +51398,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -44638,6 +51417,36 @@ "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.", @@ -44649,6 +51458,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -44722,6 +51532,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -44740,6 +51551,36 @@ "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.", @@ -44751,6 +51592,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -44817,7 +51659,7 @@ "type": "string" }, "healthState": { - "description": "Health state of the instance.", + "description": "Health state of the IPv4 address of the instance.", "enum": [ "HEALTHY", "UNHEALTHY" @@ -44836,6 +51678,21 @@ "description": "For target pool based Network Load Balancing, it indicates the forwarding rule's IP address assigned to this instance. For other types of load balancing, the field indicates VM internal ip.", "type": "string" }, + "ipv6Address": { + "type": "string" + }, + "ipv6HealthState": { + "description": "Health state of the IPv6 address of the instance.", + "enum": [ + "HEALTHY", + "UNHEALTHY" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, "port": { "description": "The named port of the instance group, not necessarily the port that is health-checked.", "format": "int32", @@ -44890,10 +51747,26 @@ "UNKNOWN" ], "enumDescriptions": [ - "", - "", - "", - "" + "Endpoint is being drained.", + "Endpoint is healthy.", + "Endpoint is unhealthy.", + "Health status of the endpoint is unknown." + ], + "type": "string" + }, + "ipv6HealthState": { + "description": "Health state of the ipv6 network endpoint determined based on the health checks configured.", + "enum": [ + "DRAINING", + "HEALTHY", + "UNHEALTHY", + "UNKNOWN" + ], + "enumDescriptions": [ + "Endpoint is being drained.", + "Endpoint is healthy.", + "Endpoint is unhealthy.", + "Health status of the endpoint is unknown." ], "type": "string" } @@ -45158,7 +52031,7 @@ "type": "integer" }, "requestPath": { - "description": "The request path of the HTTP health check request. The default value is /. This field does not support query parameters.", + "description": "The request path of the HTTP health check request. The default value is /. This field does not support query parameters. Must comply with RFC3986.", "type": "string" }, "selfLink": { @@ -45222,6 +52095,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -45240,6 +52114,36 @@ "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.", @@ -45251,6 +52155,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -45398,7 +52303,7 @@ }, "faultInjectionPolicy": { "$ref": "HttpFaultInjection", - "description": "The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: Routing and traffic management features." + "description": "The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the classic Application Load Balancer . To see which load balancers support fault injection, see Load balancing: Routing and traffic management features." }, "maxStreamDuration": { "$ref": "Duration", @@ -45418,7 +52323,7 @@ }, "urlRewrite": { "$ref": "UrlRewrite", - "description": "The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." + "description": "The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for classic Application Load Balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." }, "weightedBackendServices": { "description": "A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.", @@ -45434,6 +52339,10 @@ "description": "The HttpRouteRule setting specifies how to match an HTTP request and the corresponding routing action that load balancing proxies perform.", "id": "HttpRouteRule", "properties": { + "customErrorResponsePolicy": { + "$ref": "CustomErrorResponsePolicy", + "description": "customErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. If a policy for an error code is not configured for the RouteRule, a policy for the error code configured in pathMatcher.defaultCustomErrorResponsePolicy is applied. If one is not specified in pathMatcher.defaultCustomErrorResponsePolicy, the policy configured in UrlMap.defaultCustomErrorResponsePolicy takes effect. For example, consider a UrlMap with the following configuration: - UrlMap.defaultCustomErrorResponsePolicy are configured with policies for 5xx and 4xx errors - A RouteRule for /coming_soon/ is configured for the error code 404. If the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in RouteRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in conjunction with routeRules.routeAction.retryPolicy, retries take precedence. Only once all retries are exhausted, the customErrorResponsePolicy is applied. While attempting a retry, if load balancer is successful in reaching the service, the customErrorResponsePolicy is ignored and the response from the service is returned to the client. customErrorResponsePolicy is supported only for global external Application Load Balancers." + }, "description": { "description": "The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters.", "type": "string" @@ -45470,7 +52379,7 @@ }, "routeAction": { "$ref": "HttpRouteAction", - "description": "In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a route rule's routeAction." + "description": "In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a route rule's routeAction." }, "service": { "description": "The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.", @@ -45578,7 +52487,7 @@ "type": "integer" }, "requestPath": { - "description": "The request path of the HTTPS health check request. The default value is \"/\".", + "description": "The request path of the HTTPS health check request. The default value is \"/\". Must comply with RFC3986.", "type": "string" }, "selfLink": { @@ -45642,6 +52551,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -45660,6 +52570,36 @@ "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.", @@ -45671,6 +52611,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -45758,8 +52699,12 @@ "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. You can create disks by specifying an image family instead of a specific image name. The image family always returns its latest image that is not deprecated. The name of the image family must comply with RFC1035.", + "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" }, "guestOsFeatures": { @@ -45838,6 +52783,7 @@ "type": "string" }, "sha1Checksum": { + "deprecated": true, "description": "[Deprecated] This field is deprecated. An optional SHA1 checksum of the disk image before unpackaging provided by the client when the disk image is created.", "pattern": "[a-f0-9]{40}", "type": "string" @@ -45853,6 +52799,11 @@ "$ref": "RolloutPolicy", "description": "A rollout policy to apply to this image. When specified, the rollout policy overrides per-zone references to the image via the associated image family. The rollout policy restricts the zones where this image is accessible when using a zonal image family reference. When the rollout policy does not include the user specified zone, or if the zone is rolled out, this image is accessible. The rollout policy for this image is read-only, except for allowlisted users. This field might not be configured. To view the latest non-deprecated image in a specific zone, use the imageFamilyViews.get method." }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "satisfiesPzs": { "description": "[Output Only] Reserved for future use.", "type": "boolean" @@ -45999,6 +52950,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -46017,6 +52969,36 @@ "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.", @@ -46028,6 +53010,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -46222,11 +53205,6 @@ "type": "string" }, "machineType": { - "annotations": { - "required": [ - "compute.instances.insert" - ] - }, "description": "Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type: zones/us-central1-f/machineTypes/n1-standard-1 To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB): zones/zone/machineTypes/custom-CPUS-MEMORY For example: zones/us-central1-f/machineTypes/custom-4-5120 For a full list of restrictions, read the Specifications for custom machine types.", "type": "string" }, @@ -46305,6 +53283,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" @@ -46365,7 +53347,7 @@ "TERMINATED" ], "enumDescriptions": [ - "The Nanny is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", + "The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", "Resources are being allocated for the instance.", "The instance is in repair.", "The instance is running.", @@ -46444,6 +53426,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -46462,6 +53445,36 @@ "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.", @@ -46473,6 +53486,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -46683,6 +53697,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -46701,6 +53716,36 @@ "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.", @@ -46712,6 +53757,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -46803,6 +53849,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -46821,6 +53868,36 @@ "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.", @@ -46832,6 +53909,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -46895,11 +53973,6 @@ "type": "array" }, "baseInstanceName": { - "annotations": { - "required": [ - "compute.instanceGroupManagers.insert" - ] - }, "description": "The base instance name to use for instances in this group. The value must be 1-58 characters long. Instances are named by appending a hyphen and a random four-character string to the base instance name. The base instance name must comply with RFC1035.", "pattern": "[a-z][-a-z0-9]{0,57}", "type": "string" @@ -46942,6 +54015,10 @@ "format": "uint64", "type": "string" }, + "instanceFlexibilityPolicy": { + "$ref": "InstanceGroupManagerInstanceFlexibilityPolicy", + "description": "Instance flexibility allowing MIG to create VMs from multiple types of machines. Instance flexibility configuration on MIG overrides instance template configuration." + }, "instanceGroup": { "description": "[Output Only] The URL of the Instance Group resource.", "type": "string" @@ -47001,6 +54078,10 @@ "description": "The service account to be used as credentials for all operations performed by the managed instance group on instances. The service accounts needs all permissions required to create and delete instances. By default, the service account {projectNumber}@cloudservices.gserviceaccount.com is used.", "type": "string" }, + "standbyPolicy": { + "$ref": "InstanceGroupManagerStandbyPolicy", + "description": "Standby policy for stopped and suspended instances." + }, "statefulPolicy": { "$ref": "StatefulPolicy", "description": "Stateful configuration for this Instanced Group Manager" @@ -47027,6 +54108,16 @@ "format": "int32", "type": "integer" }, + "targetStoppedSize": { + "description": "The target number of stopped instances for this managed instance group. This number changes when you: - Stop instance using the stopInstances method or start instances using the startInstances method. - Manually change the targetStoppedSize using the update method. ", + "format": "int32", + "type": "integer" + }, + "targetSuspendedSize": { + "description": "The target number of suspended instances for this managed instance group. This number changes when you: - Suspend instance using the suspendInstances method or resume instances using the resumeInstances method. - Manually change the targetSuspendedSize using the update method. ", + "format": "int32", + "type": "integer" + }, "updatePolicy": { "$ref": "InstanceGroupManagerUpdatePolicy", "description": "The update policy for this managed instance group." @@ -47167,6 +54258,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -47185,6 +54277,36 @@ "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.", @@ -47196,6 +54318,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -47261,7 +54384,45 @@ "type": "string" }, "initialDelaySec": { - "description": "The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600].", + "description": "The initial delay is the number of seconds that a new VM takes to initialize and run its startup script. During a VM's initial delay period, the MIG ignores unsuccessful health checks because the VM might be in the startup process. This prevents the MIG from prematurely recreating a VM. If the health check receives a healthy response during the initial delay, it indicates that the startup process is complete and the VM is ready. The value of initial delay must be between 0 and 3600 seconds. The default value is 0.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "InstanceGroupManagerInstanceFlexibilityPolicy": { + "id": "InstanceGroupManagerInstanceFlexibilityPolicy", + "properties": { + "instanceSelectionLists": { + "additionalProperties": { + "$ref": "InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection" + }, + "description": "Named instance selections configuring properties that the group will use when creating new VMs.", + "type": "object" + }, + "instanceSelections": { + "additionalProperties": { + "$ref": "InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection" + }, + "description": "Named instance selections configuring properties that the group will use when creating new VMs.", + "type": "object" + } + }, + "type": "object" + }, + "InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection": { + "id": "InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection", + "properties": { + "machineTypes": { + "description": "Full machine-type names, e.g. \"n1-standard-16\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "rank": { + "description": "Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference.", "format": "int32", "type": "integer" } @@ -47271,6 +54432,20 @@ "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": [ + "DELETE", + "DO_NOTHING", + "REPAIR" + ], + "enumDescriptions": [ + "MIG deletes a failed or an unhealthy VM. Deleting the VM decreases the target size of the MIG.", + "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": [ @@ -47330,6 +54505,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -47348,6 +54524,36 @@ "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.", @@ -47359,6 +54565,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -47406,6 +54613,378 @@ }, "type": "object" }, + "InstanceGroupManagerResizeRequest": { + "description": "InstanceGroupManagerResizeRequest represents a request to create a number of VMs: either immediately or by queuing the request for the specified time. This resize request is nested under InstanceGroupManager and the VMs created by this request are added to the owning InstanceGroupManager.", + "id": "InstanceGroupManagerResizeRequest", + "properties": { + "count": { + "description": "The count of instances to create as part of this resize request.", + "format": "int32", + "type": "integer" + }, + "creationTimestamp": { + "description": "[Output Only] The creation timestamp for this resize request in RFC3339 text format.", + "type": "string" + }, + "description": { + "description": "An optional description of this resource.", + "type": "string" + }, + "id": { + "description": "[Output Only] A unique identifier for this resource type. The server generates this identifier.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#instanceGroupManagerResizeRequest", + "description": "[Output Only] The resource type, which is always compute#instanceGroupManagerResizeRequest for resize requests.", + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.instanceGroupManagerResizeRequests.insert" + ] + }, + "description": "The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "requestedRunDuration": { + "$ref": "Duration", + "description": "Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted." + }, + "resizeBy": { + "description": "The number of instances to be created by this resize request. The group's target size will be increased by this number.", + "format": "int32", + "type": "integer" + }, + "selfLink": { + "description": "[Output Only] The URL for this resize request. The server defines this URL.", + "type": "string" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource with the resource id.", + "type": "string" + }, + "state": { + "description": "[Output only] Current state of the request.", + "enum": [ + "ACCEPTED", + "CANCELLED", + "CREATING", + "FAILED", + "PROVISIONING", + "SUCCEEDED" + ], + "enumDescriptions": [ + "The request was created successfully and was accepted for provisioning when the capacity becomes available.", + "The request is cancelled.", + "resize request is being created and may still fail creation.", + "The request failed before or during provisioning. If the request fails during provisioning, any VMs that were created during provisioning are rolled back and removed from the MIG.", + "The target resource(s) are being provisioned.", + "The request succeeded." + ], + "type": "string" + }, + "status": { + "$ref": "InstanceGroupManagerResizeRequestStatus", + "description": "[Output only] Status of the request." + }, + "zone": { + "description": "[Output Only] The URL of a zone where the resize request is located. Populated only for zonal resize requests.", + "type": "string" + } + }, + "type": "object" + }, + "InstanceGroupManagerResizeRequestStatus": { + "id": "InstanceGroupManagerResizeRequestStatus", + "properties": { + "error": { + "description": "[Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the last_attempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry.", + "properties": { + "errors": { + "description": "[Output Only] The array of errors encountered while processing this operation.", + "items": { + "properties": { + "code": { + "description": "[Output Only] The error type identifier for this error.", + "type": "string" + }, + "errorDetails": { + "description": "[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.", + "items": { + "properties": { + "errorInfo": { + "$ref": "ErrorInfo" + }, + "help": { + "$ref": "Help" + }, + "localizedMessage": { + "$ref": "LocalizedMessage" + }, + "quotaInfo": { + "$ref": "QuotaExceededInfo" + } + }, + "type": "object" + }, + "type": "array" + }, + "location": { + "description": "[Output Only] Indicates the field in the request that caused the error. This property is optional.", + "type": "string" + }, + "message": { + "description": "[Output Only] An optional, human-readable error message.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "lastAttempt": { + "$ref": "InstanceGroupManagerResizeRequestStatusLastAttempt", + "description": "[Output only] Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the \"error\" field only." + } + }, + "type": "object" + }, + "InstanceGroupManagerResizeRequestStatusLastAttempt": { + "id": "InstanceGroupManagerResizeRequestStatusLastAttempt", + "properties": { + "error": { + "description": "Errors that prevented the ResizeRequest to be fulfilled.", + "properties": { + "errors": { + "description": "[Output Only] The array of errors encountered while processing this operation.", + "items": { + "properties": { + "code": { + "description": "[Output Only] The error type identifier for this error.", + "type": "string" + }, + "errorDetails": { + "description": "[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.", + "items": { + "properties": { + "errorInfo": { + "$ref": "ErrorInfo" + }, + "help": { + "$ref": "Help" + }, + "localizedMessage": { + "$ref": "LocalizedMessage" + }, + "quotaInfo": { + "$ref": "QuotaExceededInfo" + } + }, + "type": "object" + }, + "type": "array" + }, + "location": { + "description": "[Output Only] Indicates the field in the request that caused the error. This property is optional.", + "type": "string" + }, + "message": { + "description": "[Output Only] An optional, human-readable error message.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "InstanceGroupManagerResizeRequestsListResponse": { + "description": "[Output Only] A list of resize requests.", + "id": "InstanceGroupManagerResizeRequestsListResponse", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of resize request resources.", + "items": { + "$ref": "InstanceGroupManagerResizeRequest" + }, + "type": "array" + }, + "kind": { + "default": "compute#instanceGroupManagerResizeRequestList", + "description": "[Output Only] Type of the resource. Always compute#instanceGroupManagerResizeRequestList for a list of resize requests.", + "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" + }, + "InstanceGroupManagerStandbyPolicy": { + "id": "InstanceGroupManagerStandbyPolicy", + "properties": { + "initialDelaySec": { + "description": "Specifies the number of seconds that the MIG should wait to suspend or stop a VM after that VM was created. The initial delay gives the initialization script the time to prepare your VM for a quick scale out. The value of initial delay must be between 0 and 3600 seconds. The default value is 0.", + "format": "int32", + "type": "integer" + }, + "mode": { + "description": "Defines how a MIG resumes or starts VMs from a standby pool when the group scales out. The default mode is `MANUAL`.", + "enum": [ + "MANUAL", + "SCALE_OUT_POOL" + ], + "enumDescriptions": [ + "MIG does not automatically resume or start VMs in the standby pool when the group scales out.", + "MIG automatically resumes or starts VMs in the standby pool when the group scales out, and replenishes the standby pool afterwards." + ], + "type": "string" + } + }, + "type": "object" + }, "InstanceGroupManagerStatus": { "id": "InstanceGroupManagerStatus", "properties": { @@ -47454,6 +55033,7 @@ "type": "boolean" }, "isStateful": { + "deprecated": true, "description": "[Output Only] A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful configuration even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions. This field is deprecated in favor of has_stateful_config.", "type": "boolean" }, @@ -47522,14 +55102,14 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" }, "mostDisruptiveAllowedAction": { - "description": "Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.", + "description": "Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to avoid restarting the VM and to limit disruption as much as possible. RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.", "enum": [ "NONE", "REFRESH", @@ -47538,9 +55118,9 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" }, @@ -47557,14 +55137,14 @@ "type": "string" }, "type": { - "description": "The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).", + "description": "The type of update process. You can specify either PROACTIVE so that the MIG automatically updates VMs to the latest configurations or OPPORTUNISTIC so that you can select the VMs that you want to update.", "enum": [ "OPPORTUNISTIC", "PROACTIVE" ], "enumDescriptions": [ - "No action is being proactively performed in order to bring this IGM to its target version distribution (regardless of whether this distribution is expressed using instanceTemplate or versions field).", - "This IGM will actively converge to its target version distribution (regardless of whether this distribution is expressed using instanceTemplate or versions field)." + "MIG will apply new configurations to existing VMs only when you selectively target specific or all VMs to be updated.", + "MIG will automatically apply new configurations to all or a subset of existing VMs and also to new VMs that are added to the group." ], "type": "string" } @@ -47618,7 +55198,7 @@ "type": "array" }, "minimalAction": { - "description": "The minimal action that you want to perform on each instance during the update: - REPLACE: At minimum, delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt the instance at all. By default, the minimum action is NONE. If your update requires a more disruptive action than you set with this flag, the necessary action is performed to execute the update.", + "description": "The minimal action that you want to perform on each instance during the update: - REPLACE: At minimum, delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the minimum action is NONE. If your update requires a more disruptive action than you set with this flag, the necessary action is performed to execute the update.", "enum": [ "NONE", "REFRESH", @@ -47627,14 +55207,14 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" }, "mostDisruptiveAllowedAction": { - "description": "The most disruptive action that you want to perform on each instance during the update: - REPLACE: Delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt the instance at all. By default, the most disruptive allowed action is REPLACE. If your update requires a more disruptive action than you set with this flag, the update request will fail.", + "description": "The most disruptive action that you want to perform on each instance during the update: - REPLACE: Delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the most disruptive allowed action is REPLACE. If your update requires a more disruptive action than you set with this flag, the update request will fail.", "enum": [ "NONE", "REFRESH", @@ -47643,9 +55223,9 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" } @@ -47670,7 +55250,7 @@ "id": "InstanceGroupManagersDeleteInstancesRequest", "properties": { "instances": { - "description": "The URLs of one or more instances to delete. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "description": "The URLs of one or more instances to delete. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. Queued instances do not have URL and can be deleted only by name. One cannot specify both URLs and names in a single request.", "items": { "type": "string" }, @@ -47761,6 +55341,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -47779,6 +55360,36 @@ "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.", @@ -47790,6 +55401,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -47879,6 +55491,19 @@ }, "type": "object" }, + "InstanceGroupManagersResumeInstancesRequest": { + "id": "InstanceGroupManagersResumeInstancesRequest", + "properties": { + "instances": { + "description": "The URLs of one or more instances to resume. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "InstanceGroupManagersScopedList": { "id": "InstanceGroupManagersScopedList", "properties": { @@ -47905,6 +55530,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -47923,6 +55549,36 @@ "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.", @@ -47934,6 +55590,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -48021,6 +55678,53 @@ }, "type": "object" }, + "InstanceGroupManagersStartInstancesRequest": { + "id": "InstanceGroupManagersStartInstancesRequest", + "properties": { + "instances": { + "description": "The URLs of one or more instances to start. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "InstanceGroupManagersStopInstancesRequest": { + "id": "InstanceGroupManagersStopInstancesRequest", + "properties": { + "forceStop": { + "description": "If this flag is set to true, the Instance Group Manager will proceed to stop the instances, skipping initialization on them.", + "type": "boolean" + }, + "instances": { + "description": "The URLs of one or more instances to stop. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "InstanceGroupManagersSuspendInstancesRequest": { + "id": "InstanceGroupManagersSuspendInstancesRequest", + "properties": { + "forceSuspend": { + "description": "If this flag is set to true, the Instance Group Manager will proceed to suspend the instances, skipping initialization on them.", + "type": "boolean" + }, + "instances": { + "description": "The URLs of one or more instances to suspend. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "InstanceGroupManagersUpdatePerInstanceConfigsReq": { "description": "InstanceGroupManagers.updatePerInstanceConfigs", "id": "InstanceGroupManagersUpdatePerInstanceConfigsReq", @@ -48091,6 +55795,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -48109,6 +55814,36 @@ "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.", @@ -48120,6 +55855,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -48224,6 +55960,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -48242,6 +55979,36 @@ "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.", @@ -48253,6 +56020,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -48362,6 +56130,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -48380,6 +56149,36 @@ "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.", @@ -48391,6 +56190,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -48482,6 +56282,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -48500,6 +56301,36 @@ "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.", @@ -48511,6 +56342,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -48855,8 +56687,51 @@ }, "type": "object" }, + "InstanceSettings": { + "description": "Represents a Instance Settings resource. You can use instance settings to configure default settings for Compute Engine VM instances. For example, you can use it to configure default machine type of Compute Engine VM instances.", + "id": "InstanceSettings", + "properties": { + "fingerprint": { + "description": "Specifies a fingerprint for instance settings, which is essentially a hash of the instance settings resource's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update the instance settings resource. You must always provide an up-to-date fingerprint hash in order to update or change the resource, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the resource.", + "format": "byte", + "type": "string" + }, + "kind": { + "default": "compute#instanceSettings", + "description": "[Output Only] Type of the resource. Always compute#instance_settings for instance settings.", + "type": "string" + }, + "metadata": { + "$ref": "InstanceSettingsMetadata", + "description": "The metadata key/value pairs assigned to all the instances in the corresponding scope." + }, + "zone": { + "description": "[Output Only] URL of the zone where the resource resides You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + } + }, + "type": "object" + }, + "InstanceSettingsMetadata": { + "id": "InstanceSettingsMetadata", + "properties": { + "items": { + "additionalProperties": { + "type": "string" + }, + "description": "A metadata key/value items map. The total size of all keys and values must be less than 512KB.", + "type": "object" + }, + "kind": { + "default": "compute#metadata", + "description": "[Output Only] Type of the resource. Always compute#metadata for metadata.", + "type": "string" + } + }, + "type": "object" + }, "InstanceTemplate": { - "description": "Represents an Instance Template resource. You can use instance templates to create VM instances and managed instance groups. For more information, read Instance Templates.", + "description": "Represents an Instance Template resource. Google Compute Engine has two Instance Template resources: * [Global](/compute/docs/reference/rest/beta/instanceTemplates) * [Regional](/compute/docs/reference/rest/beta/regionInstanceTemplates) You can reuse a global instance template in different regions whereas you can use a regional instance template in a specified region only. If you want to reduce cross-region dependency or achieve data residency, use a regional instance template. To create VMs, managed instance groups, and reservations, you can use either global or regional instance templates. For more information, read Instance Templates.", "id": "InstanceTemplate", "properties": { "creationTimestamp": { @@ -48891,6 +56766,10 @@ "$ref": "InstanceProperties", "description": "The instance properties for this instance template." }, + "region": { + "description": "[Output Only] URL of the region where the instance template resides. Only applicable for regional resources.", + "type": "string" + }, "selfLink": { "description": "[Output Only] The URL for this instance template. The server defines this URL.", "type": "string" @@ -48906,6 +56785,159 @@ }, "type": "object" }, + "InstanceTemplateAggregatedList": { + "description": "Contains a list of InstanceTemplatesScopedList.", + "id": "InstanceTemplateAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "InstanceTemplatesScopedList", + "description": "The name of the scope that contains this set of instance templates." + }, + "description": "A list of InstanceTemplatesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#instanceTemplateAggregatedList", + "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" + }, "InstanceTemplateList": { "description": "A list of instance templates.", "id": "InstanceTemplateList", @@ -48950,6 +56982,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -48968,6 +57001,36 @@ "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.", @@ -48979,6 +57042,141 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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" + }, + "InstanceTemplatesScopedList": { + "id": "InstanceTemplatesScopedList", + "properties": { + "instanceTemplates": { + "description": "[Output Only] A list of instance templates that are contained within the specified project and zone.", + "items": { + "$ref": "InstanceTemplate" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] An informational warning that replaces the list of instance templates 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.", @@ -49055,7 +57253,7 @@ "TERMINATED" ], "enumDescriptions": [ - "The Nanny is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", + "The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", "Resources are being allocated for the instance.", "The instance is in repair.", "The instance is running.", @@ -49084,6 +57282,19 @@ }, "type": "object" }, + "InstancesBulkInsertOperationMetadata": { + "id": "InstancesBulkInsertOperationMetadata", + "properties": { + "perLocationStatus": { + "additionalProperties": { + "$ref": "BulkInsertOperationStatus" + }, + "description": "Status information per location (location name is key). Example key: zones/us-central1-a", + "type": "object" + } + }, + "type": "object" + }, "InstancesGetEffectiveFirewallsResponse": { "id": "InstancesGetEffectiveFirewallsResponse", "properties": { @@ -49115,6 +57326,7 @@ "id": "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy", "properties": { "displayName": { + "deprecated": true, "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy.", "type": "string" }, @@ -49227,6 +57439,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -49245,6 +57458,36 @@ "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.", @@ -49256,6 +57499,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -49367,6 +57611,23 @@ }, "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": { @@ -49397,6 +57658,576 @@ }, "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": { + "storageSizeBytes": { + "description": "[Output Only] The storage size of this instant snapshot.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "InstantSnapshotsScopedList": { + "id": "InstantSnapshotsScopedList", + "properties": { + "instantSnapshots": { + "description": "[Output Only] A list of instantSnapshots contained in this scope.", + "items": { + "$ref": "InstantSnapshot" + }, + "type": "array" + }, + "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": "object" + } + }, + "type": "object" + }, "Int64RangeMatch": { "description": "HttpRouteRuleMatch criteria for field values that must stay within the specified integer range.", "id": "Int64RangeMatch", @@ -49415,13 +58246,26 @@ "type": "object" }, "Interconnect": { - "description": "Represents an Interconnect resource. An Interconnect resource is a dedicated connection between the GCP network and your on-premises network. For more information, read the Dedicated Interconnect Overview.", + "description": "Represents an Interconnect resource. An Interconnect resource is a dedicated connection between the Google Cloud network and your on-premises network. For more information, read the Dedicated Interconnect Overview.", "id": "Interconnect", "properties": { "adminEnabled": { "description": "Administrative status of the interconnect. When this is set to true, the Interconnect is functional and can carry traffic. When set to false, no packets can be carried over the interconnect and no BGP routes are exchanged over it. By default, the status is set to true.", "type": "boolean" }, + "availableFeatures": { + "description": "[Output only] List of features available for this Interconnect connection, which can take one of the following values: - MACSEC If present then the Interconnect connection is provisioned on MACsec capable hardware ports. If not present then the Interconnect connection is provisioned on non-MACsec capable ports and MACsec isn't supported and enabling MACsec fails.", + "items": { + "enum": [ + "IF_MACSEC" + ], + "enumDescriptions": [ + "Media Access Control security (MACsec)" + ], + "type": "string" + }, + "type": "array" + }, "circuitInfos": { "description": "[Output Only] A list of CircuitInfo objects, that describe the individual circuits in this LAG.", "items": { @@ -49515,6 +58359,14 @@ "description": "URL of the InterconnectLocation object that represents where this connection is to be provisioned.", "type": "string" }, + "macsec": { + "$ref": "InterconnectMacsec", + "description": "Configuration that enables Media Access Control security (MACsec) on the Cloud Interconnect connection between Google and your on-premises router." + }, + "macsecEnabled": { + "description": "Enable or disable MACsec on this Interconnect connection. MACsec enablement fails if the MACsec object is not specified.", + "type": "boolean" + }, "name": { "annotations": { "required": [ @@ -49550,13 +58402,30 @@ "format": "int32", "type": "integer" }, + "remoteLocation": { + "description": "Indicates that this is a Cross-Cloud Interconnect. This field specifies the location outside of Google's network that the interconnect is connected to.", + "type": "string" + }, + "requestedFeatures": { + "description": "Optional. List of features requested for this Interconnect connection, which can take one of the following values: - MACSEC If specified then the connection is created on MACsec capable hardware ports. If not specified, the default value is false, which allocates non-MACsec capable ports first if available. This parameter can be provided only with Interconnect INSERT. It isn't valid for Interconnect PATCH.", + "items": { + "enum": [ + "IF_MACSEC" + ], + "enumDescriptions": [ + "Media Access Control security (MACsec)" + ], + "type": "string" + }, + "type": "array" + }, "requestedLinkCount": { "description": "Target number of physical links in the link bundle, as requested by the customer.", "format": "int32", "type": "integer" }, "satisfiesPzs": { - "description": "[Output Only] Set to true if the resource satisfies the zone separation organization policy constraints and false otherwise. Defaults to false if the field is not present.", + "description": "[Output Only] Reserved for future use.", "type": "boolean" }, "selfLink": { @@ -49644,6 +58513,10 @@ "description": "This field is not available.", "type": "string" }, + "configurationConstraints": { + "$ref": "InterconnectAttachmentConfigurationConstraints", + "description": "[Output Only] Constraints for this attachment, if any. The attachment does not work if these constraints are not met." + }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -49696,6 +58569,7 @@ "type": "string" }, "googleReferenceId": { + "deprecated": true, "description": "[Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.", "type": "string" }, @@ -49709,7 +58583,7 @@ "type": "string" }, "ipsecInternalAddresses": { - "description": "A list of URLs of addresses that have been reserved for the VLAN attachment. Used only for the VLAN attachment that has the encryption option as IPSEC. The addresses must be regional internal IP address ranges. When creating an HA VPN gateway over the VLAN attachment, if the attachment is configured to use a regional internal IP address, then the VPN gateway's IP address is allocated from the IP address range specified here. For example, if the HA VPN gateway's interface 0 is paired to this VLAN attachment, then a regional internal IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this VLAN attachment. If this field is not specified when creating the VLAN attachment, then later on when creating an HA VPN gateway on this VLAN attachment, the HA VPN gateway's IP address is allocated from the regional external IP address pool. Not currently available publicly. ", + "description": "A list of URLs of addresses that have been reserved for the VLAN attachment. Used only for the VLAN attachment that has the encryption option as IPSEC. The addresses must be regional internal IP address ranges. When creating an HA VPN gateway over the VLAN attachment, if the attachment is configured to use a regional internal IP address, then the VPN gateway's IP address is allocated from the IP address range specified here. For example, if the HA VPN gateway's interface 0 is paired to this VLAN attachment, then a regional internal IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this VLAN attachment. If this field is not specified when creating the VLAN attachment, then later on when creating an HA VPN gateway on this VLAN attachment, the HA VPN gateway's IP address is allocated from the regional external IP address pool.", "items": { "type": "string" }, @@ -49755,7 +58629,7 @@ "type": "string" }, "pairingKey": { - "description": "[Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier of an PARTNER attachment used to initiate provisioning with a selected partner. Of the form \"XXXXX/region/domain\"", + "description": "[Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier of a PARTNER attachment used to initiate provisioning with a selected partner. Of the form \"XXXXX/region/domain\"", "type": "string" }, "partnerAsn": { @@ -49765,7 +58639,7 @@ }, "partnerMetadata": { "$ref": "InterconnectAttachmentPartnerMetadata", - "description": "Informational metadata about Partner attachments from Partners to display to customers. Output only for for PARTNER type, mutable for PARTNER_PROVIDER, not available for DEDICATED." + "description": "Informational metadata about Partner attachments from Partners to display to customers. Output only for PARTNER type, mutable for PARTNER_PROVIDER, not available for DEDICATED." }, "privateInterconnectInfo": { "$ref": "InterconnectAttachmentPrivateInfo", @@ -49775,12 +58649,16 @@ "description": "[Output Only] URL of the region where the regional interconnect attachment resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", "type": "string" }, + "remoteService": { + "description": "[Output Only] If the attachment is on a Cross-Cloud Interconnect connection, this field contains the interconnect's remote location service provider. Example values: \"Amazon Web Services\" \"Microsoft Azure\". The field is set only for attachments on Cross-Cloud Interconnect connections. Its value is copied from the InterconnectRemoteLocation remoteService field.", + "type": "string" + }, "router": { "description": "URL of the Cloud Router to be used for dynamic routing. This router must be in the same region as this InterconnectAttachment. The InterconnectAttachment will automatically connect the Interconnect to the network & region within which the Cloud Router is configured.", "type": "string" }, "satisfiesPzs": { - "description": "[Output Only] Set to true if the resource satisfies the zone separation organization policy constraints and false otherwise. Defaults to false if the field is not present.", + "description": "[Output Only] Reserved for future use.", "type": "boolean" }, "selfLink": { @@ -49821,6 +58699,11 @@ ], "type": "string" }, + "subnetLength": { + "description": "Length of the IPv4 subnet mask. Allowed values: - 29 (default) - 30 The default value is 29, except for Cross-Cloud Interconnect connections that use an InterconnectRemoteLocation with a constraints.subnetLengthRange.min equal to 30. For example, connections that use an Azure remote location fall into this category. In these cases, the default value is 30, and requesting 29 returns an error. Where both 29 and 30 are allowed, 29 is preferred, because it gives Google Cloud Support more debugging visibility. ", + "format": "int32", + "type": "integer" + }, "type": { "description": "The type of interconnect attachment this is, which can take one of the following values: - DEDICATED: an attachment to a Dedicated Interconnect. - PARTNER: an attachment to a Partner Interconnect, created by the customer. - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created by the partner. ", "enum": [ @@ -49836,7 +58719,7 @@ "type": "string" }, "vlanTag8021q": { - "description": "The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4094. Only specified at creation time.", + "description": "The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4093. Only specified at creation time.", "format": "int32", "type": "integer" } @@ -49894,6 +58777,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -49912,6 +58796,36 @@ "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.", @@ -49923,6 +58837,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -49970,6 +58885,47 @@ }, "type": "object" }, + "InterconnectAttachmentConfigurationConstraints": { + "id": "InterconnectAttachmentConfigurationConstraints", + "properties": { + "bgpMd5": { + "description": "[Output Only] Whether the attachment's BGP session requires/allows/disallows BGP MD5 authentication. This can take one of the following values: MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED. For example, a Cross-Cloud Interconnect connection to a remote cloud provider that requires BGP MD5 authentication has the interconnectRemoteLocation attachment_configuration_constraints.bgp_md5 field set to MD5_REQUIRED, and that property is propagated to the attachment. Similarly, if BGP MD5 is MD5_UNSUPPORTED, an error is returned if MD5 is requested.", + "enum": [ + "MD5_OPTIONAL", + "MD5_REQUIRED", + "MD5_UNSUPPORTED" + ], + "enumDescriptions": [ + "MD5_OPTIONAL: BGP MD5 authentication is supported and can optionally be configured.", + "MD5_REQUIRED: BGP MD5 authentication must be configured.", + "MD5_UNSUPPORTED: BGP MD5 authentication must not be configured" + ], + "type": "string" + }, + "bgpPeerAsnRanges": { + "description": "[Output Only] List of ASN ranges that the remote location is known to support. Formatted as an array of inclusive ranges {min: min-value, max: max-value}. For example, [{min: 123, max: 123}, {min: 64512, max: 65534}] allows the peer ASN to be 123 or anything in the range 64512-65534. This field is only advisory. Although the API accepts other ranges, these are the ranges that we recommend.", + "items": { + "$ref": "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange" + }, + "type": "array" + } + }, + "type": "object" + }, + "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange": { + "id": "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange", + "properties": { + "max": { + "format": "uint32", + "type": "integer" + }, + "min": { + "format": "uint32", + "type": "integer" + } + }, + "type": "object" + }, "InterconnectAttachmentList": { "description": "Response to the list request, and contains a list of interconnect attachments.", "id": "InterconnectAttachmentList", @@ -50014,6 +58970,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -50032,6 +58989,36 @@ "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.", @@ -50043,6 +59030,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -50147,6 +59135,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -50165,6 +59154,36 @@ "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.", @@ -50176,6 +59195,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -50243,7 +59263,7 @@ "type": "object" }, "InterconnectDiagnostics": { - "description": "Diagnostics information about interconnect, contains detailed and current technical information about Google's side of the connection.", + "description": "Diagnostics information about the Interconnect connection, which contains detailed and current technical information about Google's side of the connection.", "id": "InterconnectDiagnostics", "properties": { "arpCaches": { @@ -50382,6 +59402,10 @@ "lacpStatus": { "$ref": "InterconnectDiagnosticsLinkLACPStatus" }, + "macsec": { + "$ref": "InterconnectDiagnosticsMacsecStatus", + "description": "Describes the status of MACsec encryption on this link." + }, "operationalStatus": { "description": "The operational status of the link.", "enum": [ @@ -50405,6 +59429,21 @@ }, "type": "object" }, + "InterconnectDiagnosticsMacsecStatus": { + "description": "Describes the status of MACsec encryption on the link.", + "id": "InterconnectDiagnosticsMacsecStatus", + "properties": { + "ckn": { + "description": "Indicates the Connectivity Association Key Name (CKN) currently being used if MACsec is operational.", + "type": "string" + }, + "operational": { + "description": "Indicates whether or not MACsec is operational on this link.", + "type": "boolean" + } + }, + "type": "object" + }, "InterconnectList": { "description": "Response to the list request, and contains a list of interconnects.", "id": "InterconnectList", @@ -50449,6 +59488,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -50467,6 +59507,36 @@ "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.", @@ -50478,6 +59548,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -50537,6 +59608,34 @@ "description": "[Output Only] Availability zone for this InterconnectLocation. Within a metropolitan area (metro), maintenance will not be simultaneously scheduled in more than one availability zone. Example: \"zone1\" or \"zone2\".", "type": "string" }, + "availableFeatures": { + "description": "[Output only] List of features available at this InterconnectLocation, which can take one of the following values: - MACSEC ", + "items": { + "enum": [ + "IF_MACSEC" + ], + "enumDescriptions": [ + "Media Access Control security (MACsec)" + ], + "type": "string" + }, + "type": "array" + }, + "availableLinkTypes": { + "description": "[Output only] List of link types available at this InterconnectLocation, which can take one of the following values: - LINK_TYPE_ETHERNET_10G_LR - LINK_TYPE_ETHERNET_100G_LR ", + "items": { + "enum": [ + "LINK_TYPE_ETHERNET_100G_LR", + "LINK_TYPE_ETHERNET_10G_LR" + ], + "enumDescriptions": [ + "100G Ethernet, LR Optics.", + "10G Ethernet, LR Optics. [(rate_bps) = 10000000000];" + ], + "type": "string" + }, + "type": "array" + }, "city": { "description": "[Output Only] Metropolitan area designator that indicates which city an interconnect is located. For example: \"Chicago, IL\", \"Amsterdam, Netherlands\".", "type": "string" @@ -50627,7 +59726,7 @@ "type": "string" }, "supportsPzs": { - "description": "[Output Only] Set to true for locations that support physical zone separation. Defaults to false if the field is not present.", + "description": "[Output Only] Reserved for future use.", "type": "boolean" } }, @@ -50677,6 +59776,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -50695,6 +59795,36 @@ "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.", @@ -50706,6 +59836,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -50785,6 +59916,76 @@ }, "type": "object" }, + "InterconnectMacsec": { + "description": "Configuration information for enabling Media Access Control security (MACsec) on this Cloud Interconnect connection between Google and your on-premises router.", + "id": "InterconnectMacsec", + "properties": { + "failOpen": { + "description": "If set to true, the Interconnect connection is configured with a should-secure MACsec security policy, that allows the Google router to fallback to cleartext traffic if the MKA session cannot be established. By default, the Interconnect connection is configured with a must-secure security policy that drops all traffic if the MKA session cannot be established with your router.", + "type": "boolean" + }, + "preSharedKeys": { + "description": "Required. A keychain placeholder describing a set of named key objects along with their start times. A MACsec CKN/CAK is generated for each key in the key chain. Google router automatically picks the key with the most recent startTime when establishing or re-establishing a MACsec secure link.", + "items": { + "$ref": "InterconnectMacsecPreSharedKey" + }, + "type": "array" + } + }, + "type": "object" + }, + "InterconnectMacsecConfig": { + "description": "MACsec configuration information for the Interconnect connection. Contains the generated Connectivity Association Key Name (CKN) and the key (CAK) for this Interconnect connection.", + "id": "InterconnectMacsecConfig", + "properties": { + "preSharedKeys": { + "description": "A keychain placeholder describing a set of named key objects along with their start times. A MACsec CKN/CAK is generated for each key in the key chain. Google router automatically picks the key with the most recent startTime when establishing or re-establishing a MACsec secure link.", + "items": { + "$ref": "InterconnectMacsecConfigPreSharedKey" + }, + "type": "array" + } + }, + "type": "object" + }, + "InterconnectMacsecConfigPreSharedKey": { + "description": "Describes a pre-shared key used to setup MACsec in static connectivity association key (CAK) mode.", + "id": "InterconnectMacsecConfigPreSharedKey", + "properties": { + "cak": { + "description": "An auto-generated Connectivity Association Key (CAK) for this key.", + "type": "string" + }, + "ckn": { + "description": "An auto-generated Connectivity Association Key Name (CKN) for this key.", + "type": "string" + }, + "name": { + "description": "User provided name for this pre-shared key.", + "type": "string" + }, + "startTime": { + "description": "User provided timestamp on or after which this key is valid.", + "type": "string" + } + }, + "type": "object" + }, + "InterconnectMacsecPreSharedKey": { + "description": "Describes a pre-shared key used to setup MACsec in static connectivity association key (CAK) mode.", + "id": "InterconnectMacsecPreSharedKey", + "properties": { + "name": { + "description": "Required. A name for this pre-shared key. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "type": "string" + }, + "startTime": { + "description": "A RFC3339 timestamp on or after which the key is valid. startTime can be in the future. If the keychain has a single key, startTime can be omitted. If the keychain has multiple keys, startTime is mandatory for each key. The start times of keys must be in increasing order. The start times of two consecutive keys must be at least 6 hours apart.", + "type": "string" + } + }, + "type": "object" + }, "InterconnectOutageNotification": { "description": "Description of a planned outage on this Interconnect.", "id": "InterconnectOutageNotification", @@ -50863,6 +60064,340 @@ }, "type": "object" }, + "InterconnectRemoteLocation": { + "description": "Represents a Cross-Cloud Interconnect Remote Location resource. You can use this resource to find remote location details about an Interconnect attachment (VLAN).", + "id": "InterconnectRemoteLocation", + "properties": { + "address": { + "description": "[Output Only] The postal address of the Point of Presence, each line in the address is separated by a newline character.", + "type": "string" + }, + "attachmentConfigurationConstraints": { + "$ref": "InterconnectAttachmentConfigurationConstraints", + "description": "[Output Only] Subset of fields from InterconnectAttachment's |configurationConstraints| field that apply to all attachments for this remote location." + }, + "city": { + "description": "[Output Only] Metropolitan area designator that indicates which city an interconnect is located. For example: \"Chicago, IL\", \"Amsterdam, Netherlands\".", + "type": "string" + }, + "constraints": { + "$ref": "InterconnectRemoteLocationConstraints", + "description": "[Output Only] Constraints on the parameters for creating Cross-Cloud Interconnect and associated InterconnectAttachments." + }, + "continent": { + "description": "[Output Only] Continent for this location, which can take one of the following values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA - SOUTH_AMERICA ", + "enum": [ + "AFRICA", + "ASIA_PAC", + "EUROPE", + "NORTH_AMERICA", + "SOUTH_AMERICA" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "description": { + "description": "[Output Only] An optional description of the resource.", + "type": "string" + }, + "facilityProvider": { + "description": "[Output Only] The name of the provider for this facility (e.g., EQUINIX).", + "type": "string" + }, + "facilityProviderFacilityId": { + "description": "[Output Only] A provider-assigned Identifier for this facility (e.g., Ashburn-DC1).", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#interconnectRemoteLocation", + "description": "[Output Only] Type of the resource. Always compute#interconnectRemoteLocation for interconnect remote locations.", + "type": "string" + }, + "lacp": { + "description": "[Output Only] Link Aggregation Control Protocol (LACP) constraints, which can take one of the following values: LACP_SUPPORTED, LACP_UNSUPPORTED", + "enum": [ + "LACP_SUPPORTED", + "LACP_UNSUPPORTED" + ], + "enumDescriptions": [ + "LACP_SUPPORTED: LACP is supported, and enabled by default on the Cross-Cloud Interconnect.", + "LACP_UNSUPPORTED: LACP is not supported and is not be enabled on this port. GetDiagnostics shows bundleAggregationType as \"static\". GCP does not support LAGs without LACP, so requestedLinkCount must be 1." + ], + "type": "string" + }, + "maxLagSize100Gbps": { + "description": "[Output Only] The maximum number of 100 Gbps ports supported in a link aggregation group (LAG). When linkType is 100 Gbps, requestedLinkCount cannot exceed max_lag_size_100_gbps.", + "format": "int32", + "type": "integer" + }, + "maxLagSize10Gbps": { + "description": "[Output Only] The maximum number of 10 Gbps ports supported in a link aggregation group (LAG). When linkType is 10 Gbps, requestedLinkCount cannot exceed max_lag_size_10_gbps.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "[Output Only] Name of the resource.", + "type": "string" + }, + "peeringdbFacilityId": { + "description": "[Output Only] The peeringdb identifier for this facility (corresponding with a netfac type in peeringdb).", + "type": "string" + }, + "permittedConnections": { + "description": "[Output Only] Permitted connections.", + "items": { + "$ref": "InterconnectRemoteLocationPermittedConnections" + }, + "type": "array" + }, + "remoteService": { + "description": "[Output Only] Indicates the service provider present at the remote location. Example values: \"Amazon Web Services\", \"Microsoft Azure\".", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "status": { + "description": "[Output Only] The status of this InterconnectRemoteLocation, which can take one of the following values: - CLOSED: The InterconnectRemoteLocation is closed and is unavailable for provisioning new Cross-Cloud Interconnects. - AVAILABLE: The InterconnectRemoteLocation is available for provisioning new Cross-Cloud Interconnects. ", + "enum": [ + "AVAILABLE", + "CLOSED" + ], + "enumDescriptions": [ + "The InterconnectRemoteLocation is available for provisioning new Cross-Cloud Interconnects.", + "The InterconnectRemoteLocation is closed for provisioning new Cross-Cloud Interconnects." + ], + "type": "string" + } + }, + "type": "object" + }, + "InterconnectRemoteLocationConstraints": { + "id": "InterconnectRemoteLocationConstraints", + "properties": { + "portPairRemoteLocation": { + "description": "[Output Only] Port pair remote location constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, PORT_PAIR_MATCHING_REMOTE_LOCATION. GCP's API refers only to individual ports, but the UI uses this field when ordering a pair of ports, to prevent users from accidentally ordering something that is incompatible with their cloud provider. Specifically, when ordering a redundant pair of Cross-Cloud Interconnect ports, and one of them uses a remote location with portPairMatchingRemoteLocation set to matching, the UI requires that both ports use the same remote location.", + "enum": [ + "PORT_PAIR_MATCHING_REMOTE_LOCATION", + "PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION" + ], + "enumDescriptions": [ + "If PORT_PAIR_MATCHING_REMOTE_LOCATION, the remote cloud provider allocates ports in pairs, and the user should choose the same remote location for both ports.", + "If PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, a user may opt to provision a redundant pair of Cross-Cloud Interconnects using two different remote locations in the same city." + ], + "type": "string" + }, + "portPairVlan": { + "description": "[Output Only] Port pair VLAN constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_VLAN, PORT_PAIR_MATCHING_VLAN", + "enum": [ + "PORT_PAIR_MATCHING_VLAN", + "PORT_PAIR_UNCONSTRAINED_VLAN" + ], + "enumDescriptions": [ + "If PORT_PAIR_MATCHING_VLAN, the Interconnect for this attachment is part of a pair of ports that should have matching VLAN allocations. This occurs with Cross-Cloud Interconnect to Azure remote locations. While GCP's API does not explicitly group pairs of ports, the UI uses this field to ensure matching VLAN ids when configuring a redundant VLAN pair.", + "PORT_PAIR_UNCONSTRAINED_VLAN means there is no constraint." + ], + "type": "string" + }, + "subnetLengthRange": { + "$ref": "InterconnectRemoteLocationConstraintsSubnetLengthRange", + "description": "[Output Only] [min-length, max-length] The minimum and maximum value (inclusive) for the IPv4 subnet length. For example, an interconnectRemoteLocation for Azure has {min: 30, max: 30} because Azure requires /30 subnets. This range specifies the values supported by both cloud providers. Interconnect currently supports /29 and /30 IPv4 subnet lengths. If a remote cloud has no constraint on IPv4 subnet length, the range would thus be {min: 29, max: 30}. " + } + }, + "type": "object" + }, + "InterconnectRemoteLocationConstraintsSubnetLengthRange": { + "id": "InterconnectRemoteLocationConstraintsSubnetLengthRange", + "properties": { + "max": { + "format": "int32", + "type": "integer" + }, + "min": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "InterconnectRemoteLocationList": { + "description": "Response to the list request, and contains a list of interconnect remote locations.", + "id": "InterconnectRemoteLocationList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of InterconnectRemoteLocation resources.", + "items": { + "$ref": "InterconnectRemoteLocation" + }, + "type": "array" + }, + "kind": { + "default": "compute#interconnectRemoteLocationList", + "description": "[Output Only] Type of resource. Always compute#interconnectRemoteLocationList for lists of interconnect remote locations.", + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token lets you get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[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" + }, + "InterconnectRemoteLocationPermittedConnections": { + "id": "InterconnectRemoteLocationPermittedConnections", + "properties": { + "interconnectLocation": { + "description": "[Output Only] URL of an Interconnect location that is permitted to connect to this Interconnect remote location.", + "type": "string" + } + }, + "type": "object" + }, "InterconnectsGetDiagnosticsResponse": { "description": "Response for the InterconnectsGetDiagnosticsRequest.", "id": "InterconnectsGetDiagnosticsResponse", @@ -50873,6 +60408,20 @@ }, "type": "object" }, + "InterconnectsGetMacsecConfigResponse": { + "description": "Response for the InterconnectsGetMacsecConfigRequest.", + "id": "InterconnectsGetMacsecConfigResponse", + "properties": { + "etag": { + "description": "end_interface: MixerGetResponseWithEtagBuilder", + "type": "string" + }, + "result": { + "$ref": "InterconnectMacsecConfig" + } + }, + "type": "object" + }, "License": { "description": "Represents a License resource. A License represents billing and aggregate usage data for public and marketplace images. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", "id": "License", @@ -51084,6 +60633,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -51102,6 +60652,36 @@ "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.", @@ -51113,6 +60693,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -51403,6 +60984,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" @@ -51510,6 +61096,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -51528,6 +61115,36 @@ "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.", @@ -51539,6 +61156,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -51600,7 +61218,7 @@ "type": "integer" }, "guestAcceleratorType": { - "description": "The accelerator type resource name, not a full URL, e.g. 'nvidia-tesla-k80'.", + "description": "The accelerator type resource name, not a full URL, e.g. nvidia-tesla-t4.", "type": "string" } }, @@ -51725,6 +61343,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -51743,6 +61362,36 @@ "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.", @@ -51754,6 +61403,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -51845,6 +61495,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -51863,6 +61514,36 @@ "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.", @@ -51874,6 +61555,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -51947,6 +61629,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -51965,6 +61648,36 @@ "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.", @@ -51976,6 +61689,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -52074,6 +61788,11 @@ "description": "[Output Only] The URL of the instance. The URL can exist even if the instance has not yet been created.", "type": "string" }, + "instanceFlexibilityOverride": { + "$ref": "ManagedInstanceInstanceFlexibilityOverride", + "deprecated": true, + "description": "[Output Only] The overrides to instance properties resulting from InstanceFlexibilityPolicy." + }, "instanceHealth": { "description": "[Output Only] Health state of the instance per health-check.", "items": { @@ -52096,7 +61815,7 @@ "TERMINATED" ], "enumDescriptions": [ - "The Nanny is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", + "The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", "Resources are being allocated for the instance.", "The instance is in repair.", "The instance is running.", @@ -52113,6 +61832,10 @@ "$ref": "ManagedInstanceLastAttempt", "description": "[Output Only] Information about the last attempt to create or delete the instance." }, + "name": { + "description": "[Output Only] The name of the instance. The name always exists even if the instance has not yet been created.", + "type": "string" + }, "preservedStateFromConfig": { "$ref": "PreservedState", "description": "[Output Only] Preserved state applied from per-instance config for this instance." @@ -52121,6 +61844,28 @@ "$ref": "PreservedState", "description": "[Output Only] Preserved state generated based on stateful policy for this instance." }, + "propertiesFromFlexibilityPolicy": { + "$ref": "ManagedInstancePropertiesFromFlexibilityPolicy", + "description": "[Output Only] Instance properties selected for this instance resulting from InstanceFlexibilityPolicy." + }, + "targetStatus": { + "description": "[Output Only] The eventual status of the instance. The instance group manager will not be identified as stable till each managed instance reaches its targetStatus.", + "enum": [ + "ABANDONED", + "DELETED", + "RUNNING", + "STOPPED", + "SUSPENDED" + ], + "enumDescriptions": [ + "The managed instance will eventually be ABANDONED, i.e. dissociated from the managed instance group.", + "The managed instance will eventually be DELETED.", + "The managed instance will eventually reach status RUNNING.", + "The managed instance will eventually reach status TERMINATED.", + "The managed instance will eventually reach status SUSPENDED." + ], + "type": "string" + }, "version": { "$ref": "ManagedInstanceVersion", "description": "[Output Only] Intended version of this instance." @@ -52138,6 +61883,16 @@ }, "type": "object" }, + "ManagedInstanceInstanceFlexibilityOverride": { + "id": "ManagedInstanceInstanceFlexibilityOverride", + "properties": { + "machineType": { + "description": "The machine type to be used for this instance.", + "type": "string" + } + }, + "type": "object" + }, "ManagedInstanceInstanceHealth": { "id": "ManagedInstanceInstanceHealth", "properties": { @@ -52220,6 +61975,16 @@ }, "type": "object" }, + "ManagedInstancePropertiesFromFlexibilityPolicy": { + "id": "ManagedInstancePropertiesFromFlexibilityPolicy", + "properties": { + "machineType": { + "description": "The machine type to be used for this instance.", + "type": "string" + } + }, + "type": "object" + }, "ManagedInstanceVersion": { "id": "ManagedInstanceVersion", "properties": { @@ -52341,11 +62106,78 @@ }, "type": "object" }, + "NatIpInfo": { + "description": "Contains NAT IP information of a NAT config (i.e. usage status, mode).", + "id": "NatIpInfo", + "properties": { + "natIpInfoMappings": { + "description": "A list of all NAT IPs assigned to this NAT config.", + "items": { + "$ref": "NatIpInfoNatIpInfoMapping" + }, + "type": "array" + }, + "natName": { + "description": "Name of the NAT config which the NAT IP belongs to.", + "type": "string" + } + }, + "type": "object" + }, + "NatIpInfoNatIpInfoMapping": { + "description": "Contains information of a NAT IP.", + "id": "NatIpInfoNatIpInfoMapping", + "properties": { + "mode": { + "description": "Specifies whether NAT IP is auto or manual.", + "enum": [ + "AUTO", + "MANUAL" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "natIp": { + "description": "NAT IP address. For example: 203.0.113.11.", + "type": "string" + }, + "usage": { + "description": "Specifies whether NAT IP is currently serving at least one endpoint or not.", + "enum": [ + "IN_USE", + "UNUSED" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "NatIpInfoResponse": { + "id": "NatIpInfoResponse", + "properties": { + "result": { + "description": "[Output Only] A list of NAT IP information.", + "items": { + "$ref": "NatIpInfo" + }, + "type": "array" + } + }, + "type": "object" + }, "Network": { "description": "Represents a VPC Network resource. Networks connect resources to each other and to the internet. For more information, read Virtual Private Cloud (VPC) Network.", "id": "Network", "properties": { "IPv4Range": { + "deprecated": true, "description": "Deprecated in favor of subnet mode networks. The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16. Provided by the client when the network is created.", "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}/[0-9]{1,2}", "type": "string" @@ -52371,7 +62203,7 @@ "type": "string" }, "gatewayIPv4": { - "description": "[Output Only] The gateway address for default routing out of the network, selected by GCP.", + "description": "[Output Only] The gateway address for default routing out of the network, selected by Google Cloud.", "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}", "type": "string" }, @@ -52478,7 +62310,7 @@ "type": "string" }, "fingerprint": { - "description": "[Output Only] Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. An up-to-date fingerprint must be provided in order to patch.", + "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. An up-to-date fingerprint must be provided in order to patch.", "format": "byte", "type": "string" }, @@ -52503,7 +62335,7 @@ "type": "string" }, "network": { - "description": "[Output Only] The URL of the network which the Network Attachment belongs to.", + "description": "[Output Only] The URL of the network which the Network Attachment belongs to. Practically it is inferred by fetching the network of the first subnetwork associated. Because it is required that all the subnetworks must be from the same network, it is assured that the Network Attachment belongs to the same network as all the subnetworks.", "type": "string" }, "producerAcceptLists": { @@ -52586,6 +62418,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -52604,6 +62437,36 @@ "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.", @@ -52615,6 +62478,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -52667,7 +62531,11 @@ "id": "NetworkAttachmentConnectedEndpoint", "properties": { "ipAddress": { - "description": "The IP address assigned to the producer instance network interface. This value will be a range in case of Serverless.", + "description": "The IPv4 address assigned to the producer instance network interface. This value will be a range in case of Serverless.", + "type": "string" + }, + "ipv6Address": { + "description": "The IPv6 address assigned to the producer instance network interface. This is only assigned when the stack types of both the instance network interface and the consumer subnet are IPv4_IPv6.", "type": "string" }, "projectIdOrNum": { @@ -52675,7 +62543,7 @@ "type": "string" }, "secondaryIpCidrRanges": { - "description": "Alias IP ranges from the same subnetwork", + "description": "Alias IP ranges from the same subnetwork.", "items": { "type": "string" }, @@ -52704,6 +62572,10 @@ "subnetwork": { "description": "The subnetwork used to assign the IP to the producer instance network interface.", "type": "string" + }, + "subnetworkCidrRange": { + "description": "[Output Only] The CIDR range of the subnet from which the IPv4 internal IP was allocated from.", + "type": "string" } }, "type": "object" @@ -52750,6 +62622,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -52768,6 +62641,36 @@ "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.", @@ -52779,6 +62682,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -52852,6 +62756,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -52870,6 +62775,36 @@ "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.", @@ -52881,6 +62816,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -53033,6 +62969,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -53051,6 +62988,36 @@ "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.", @@ -53062,6 +63029,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -53135,6 +63103,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -53153,6 +63122,36 @@ "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.", @@ -53164,6 +63163,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -53222,20 +63222,29 @@ "description": "Metadata defined as annotations on the network endpoint.", "type": "object" }, + "clientPort": { + "description": "Represents the port number to which PSC consumer sends packets. Only valid for network endpoint groups created with CLIENT_PORT_PER_ENDPOINT mapping mode.", + "format": "int32", + "type": "integer" + }, "fqdn": { "description": "Optional fully qualified domain name of network endpoint. This can only be specified when NetworkEndpointGroup.network_endpoint_type is NON_GCP_FQDN_PORT.", "type": "string" }, "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" + }, + "ipv6Address": { + "description": "Optional IPv6 address of network endpoint.", "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" } @@ -53243,7 +63252,7 @@ "type": "object" }, "NetworkEndpointGroup": { - "description": "Represents a collection of network endpoints. A network endpoint group (NEG) defines how a set of endpoints should be reached, whether they are reachable, and where they are located. For more information about using NEGs, see Setting up external HTTP(S) Load Balancing with internet NEGs, Setting up zonal NEGs, or Setting up external HTTP(S) Load Balancing with serverless NEGs.", + "description": "Represents a collection of network endpoints. A network endpoint group (NEG) defines how a set of endpoints should be reached, whether they are reachable, and where they are located. For more information about using NEGs for different use cases, see Network endpoint groups overview.", "id": "NetworkEndpointGroup", "properties": { "annotations": { @@ -53255,22 +63264,34 @@ }, "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." + }, + "clientPortMappingMode": { + "description": "Only valid when networkEndpointType is GCE_VM_IP_PORT and the NEG is regional.", + "enum": [ + "CLIENT_PORT_PER_ENDPOINT", + "PORT_MAPPING_DISABLED" + ], + "enumDescriptions": [ + "For each endpoint there is exactly one client port.", + "NEG should not be used for mapping client port to destination." + ], + "type": "string" }, "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" }, @@ -53290,6 +63311,7 @@ }, "loadBalancer": { "$ref": "NetworkEndpointGroupLbNetworkEndpointGroup", + "deprecated": true, "description": "This field is only valid when the network endpoint group is used for load balancing. [Deprecated] This field is deprecated." }, "name": { @@ -53297,7 +63319,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": { @@ -53326,7 +63348,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": { @@ -53339,7 +63361,7 @@ }, "serverlessDeployment": { "$ref": "NetworkEndpointGroupServerlessDeployment", - "description": "Only valid when networkEndpointType is \"SERVERLESS\". Only one of cloudRun, appEngine, cloudFunction or serverlessDeployment may be set." + "description": "Only valid when networkEndpointType is SERVERLESS. Only one of cloudRun, appEngine, cloudFunction or serverlessDeployment may be set." }, "size": { "description": "[Output only] Number of network endpoints in the network endpoint group.", @@ -53408,6 +63430,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -53426,6 +63449,36 @@ "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.", @@ -53437,6 +63490,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -53489,15 +63543,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" } }, @@ -53508,11 +63562,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" } }, @@ -53531,7 +63585,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" } }, @@ -53542,19 +63596,23 @@ "id": "NetworkEndpointGroupLbNetworkEndpointGroup", "properties": { "defaultPort": { - "description": "The default port used if the port number is not specified in the network endpoint. [Deprecated] This field is deprecated.", + "deprecated": true, + "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. [Deprecated] This field is deprecated.", "format": "int32", "type": "integer" }, "network": { - "description": "The URL of the network to which all network endpoints in the NEG belong. Uses \"default\" project network if unspecified. [Deprecated] This field is deprecated.", + "deprecated": true, + "description": "The URL of the network to which all network endpoints in the NEG belong. Uses default project network if unspecified. [Deprecated] This field is deprecated.", "type": "string" }, "subnetwork": { + "deprecated": true, "description": "Optional URL of the subnetwork to which all network endpoints in the NEG belong. [Deprecated] This field is deprecated.", "type": "string" }, "zone": { + "deprecated": true, "description": "[Output Only] The URL of the zone where the network endpoint group is located. [Deprecated] This field is deprecated.", "type": "string" } @@ -53604,6 +63662,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -53622,6 +63681,36 @@ "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.", @@ -53633,6 +63722,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -53729,7 +63819,7 @@ "type": "string" }, "urlMask": { - "description": "A template to parse platform-specific fields from a request URL. URL mask allows for routing to multiple resources on the same serverless platform without having to create multiple Network Endpoint Groups and backend resources. The fields parsed by this template are platform-specific and are as follows: 1. API Gateway: The gateway ID 2. App Engine: The service and version 3. Cloud Functions: The function name 4. Cloud Run: The service and tag ", + "description": "An URL mask is one of the main components of the Cloud Function. A template to parse platform-specific fields from a request URL. URL mask allows for routing to multiple resources on the same serverless platform without having to create multiple Network Endpoint Groups and backend resources. The fields parsed by this template are platform-specific and are as follows: 1. API Gateway: The gateway ID 2. App Engine: The service and version 3. Cloud Functions: The function name 4. Cloud Run: The service and tag ", "type": "string" }, "version": { @@ -53838,6 +63928,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -53856,6 +63947,36 @@ "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.", @@ -53867,6 +63988,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -53940,6 +64062,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -53958,6 +64081,36 @@ "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.", @@ -53969,6 +64122,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -54081,7 +64235,7 @@ "type": "string" }, "ipv6Address": { - "description": "An IPv6 internal network address for this network interface.", + "description": "An IPv6 internal network address for this network interface. To use a static internal IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.", "type": "string" }, "kind": { @@ -54125,7 +64279,7 @@ "type": "integer" }, "stackType": { - "description": "The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used. This field can be both set at instance creation and update network interface operations.", + "description": "The stack type for this network interface. To assign only IPv4 addresses, use IPV4_ONLY. To assign both IPv4 and IPv6 addresses, use IPV4_IPV6. If not specified, IPV4_ONLY is used. This field can be both set at instance creation and update network interface operations.", "enum": [ "IPV4_IPV6", "IPV4_ONLY" @@ -54187,6 +64341,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -54205,6 +64360,36 @@ "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.", @@ -54216,6 +64401,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -54429,6 +64615,7 @@ "id": "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy", "properties": { "displayName": { + "deprecated": true, "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy.", "type": "string" }, @@ -54536,6 +64723,20 @@ "description": "An opaque location hint used to place the Node close to other resources. This field is for use by internal tools that use the public API. The location hint here on the NodeGroup overrides any location_hint present in the NodeTemplate.", "type": "string" }, + "maintenanceInterval": { + "description": "Specifies the frequency of planned maintenance events. The accepted values are: `AS_NEEDED` and `RECURRENT`.", + "enum": [ + "AS_NEEDED", + "PERIODIC", + "RECURRENT" + ], + "enumDescriptions": [ + "VMs are eligible to receive infrastructure and hypervisor updates as they become available. This may result in more maintenance operations (live migrations or terminations) for the VM than the PERIODIC and RECURRENT options.", + "VMs receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean a VM will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available.", + "VMs receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean a VM will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available. RECURRENT is used for GEN3 and Slice of Hardware VMs." + ], + "type": "string" + }, "maintenancePolicy": { "description": "Specifies how to handle instances when a node in the group undergoes maintenance. Set to one of: DEFAULT, RESTART_IN_PLACE, or MIGRATE_WITHIN_NODE_GROUP. The default value is DEFAULT. For more information, see Maintenance policies.", "enum": [ @@ -54649,6 +64850,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -54667,6 +64869,36 @@ "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.", @@ -54678,6 +64910,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -54801,6 +65034,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -54819,6 +65053,36 @@ "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.", @@ -54830,6 +65094,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -54981,6 +65246,10 @@ "totalResources": { "$ref": "InstanceConsumptionInfo", "description": "Total amount of available resources on the node." + }, + "upcomingMaintenance": { + "$ref": "UpcomingMaintenance", + "description": "[Output Only] The information about an upcoming maintenance event." } }, "type": "object" @@ -55052,6 +65321,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -55070,6 +65340,36 @@ "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.", @@ -55081,6 +65381,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -55128,6 +65429,23 @@ }, "type": "object" }, + "NodeGroupsPerformMaintenanceRequest": { + "id": "NodeGroupsPerformMaintenanceRequest", + "properties": { + "nodes": { + "description": "[Required] List of nodes affected by the call.", + "items": { + "type": "string" + }, + "type": "array" + }, + "startTime": { + "description": "The start time of the schedule. The timestamp is an RFC3339 string.", + "type": "string" + } + }, + "type": "object" + }, "NodeGroupsScopedList": { "id": "NodeGroupsScopedList", "properties": { @@ -55154,6 +65472,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -55172,6 +65491,36 @@ "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.", @@ -55183,6 +65532,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -55318,7 +65668,7 @@ }, "nodeTypeFlexibility": { "$ref": "NodeTemplateNodeTypeFlexibility", - "description": "The flexible properties of the desired node type. Node groups that use this node template will create nodes of a type that matches these properties. This field is mutually exclusive with the node_type property; you can only define one or the other, but not both." + "description": "Do not use. Instead, use the node_type property." }, "region": { "description": "[Output Only] The name of the region where the node template resides, such as us-central1.", @@ -55406,6 +65756,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -55424,6 +65775,36 @@ "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.", @@ -55435,6 +65816,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -55526,6 +65908,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -55544,6 +65927,36 @@ "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.", @@ -55555,6 +65968,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -55643,6 +66057,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -55661,6 +66076,36 @@ "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.", @@ -55672,6 +66117,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -55831,6 +66277,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -55849,6 +66296,36 @@ "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.", @@ -55860,6 +66337,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -55951,6 +66429,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -55969,6 +66448,36 @@ "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.", @@ -55980,6 +66489,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -56053,6 +66563,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -56071,6 +66582,36 @@ "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.", @@ -56082,6 +66623,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -56242,6 +66784,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -56260,6 +66803,36 @@ "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.", @@ -56271,6 +66844,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -56319,7 +66893,7 @@ "type": "object" }, "Operation": { - "description": "Represents an Operation resource. Google Compute Engine has three Operation resources: * [Global](/compute/docs/reference/rest/beta/globalOperations) * [Regional](/compute/docs/reference/rest/beta/regionOperations) * [Zonal](/compute/docs/reference/rest/beta/zoneOperations) You can use an operation resource to manage asynchronous API requests. For more information, read Handling API responses. Operations can be global, regional or zonal. - For global operations, use the `globalOperations` resource. - For regional operations, use the `regionOperations` resource. - For zonal operations, use the `zonalOperations` resource. For more information, read Global, Regional, and Zonal Resources.", + "description": "Represents an Operation resource. Google Compute Engine has three Operation resources: * [Global](/compute/docs/reference/rest/beta/globalOperations) * [Regional](/compute/docs/reference/rest/beta/regionOperations) * [Zonal](/compute/docs/reference/rest/beta/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": { @@ -56404,6 +66978,9 @@ "description": "[Output Only] The time that this operation was requested. This value is in RFC3339 text format.", "type": "string" }, + "instancesBulkInsertOperationMetadata": { + "$ref": "InstancesBulkInsertOperationMetadata" + }, "kind": { "default": "compute#operation", "description": "[Output Only] Type of the resource. Always `compute#operation` for Operation resources.", @@ -56434,6 +67011,10 @@ "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, + "setCommonInstanceMetadataOperationMetadata": { + "$ref": "SetCommonInstanceMetadataOperationMetadata", + "description": "[Output Only] If the operation is for projects.setCommonInstanceMetadata, this field will contain information on all underlying zonal actions and their state." + }, "startTime": { "description": "[Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.", "type": "string" @@ -56466,7 +67047,7 @@ "type": "string" }, "user": { - "description": "[Output Only] User who requested the operation, for example: `user@example.com`.", + "description": "[Output Only] User who requested the operation, for example: `user@example.com` or `alice_smith_identifier (global/workforcePools/example-com-us-employees)`.", "type": "string" }, "warnings": { @@ -56486,6 +67067,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -56504,6 +67086,36 @@ "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.", @@ -56515,6 +67127,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -56619,6 +67232,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -56637,6 +67251,36 @@ "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.", @@ -56648,6 +67292,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -56739,6 +67384,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -56757,6 +67403,36 @@ "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.", @@ -56768,6 +67444,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -56841,6 +67518,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -56859,6 +67537,36 @@ "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.", @@ -56870,6 +67578,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -56941,54 +67650,54 @@ "properties": { "baseEjectionTime": { "$ref": "Duration", - "description": "The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s." + "description": "The base time that a backend endpoint is ejected for. Defaults to 30000ms or 30s. After a backend endpoint is returned back to the load balancing pool, it can be ejected again in another ejection analysis. Thus, the total ejection time is equal to the base ejection time multiplied by the number of times the backend endpoint has been ejected. Defaults to 30000ms or 30s." }, "consecutiveErrors": { - "description": "Number of errors before a host is ejected from the connection pool. When the backend host is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5. 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": "Number of consecutive errors before a backend endpoint is ejected from the load balancing pool. When the backend endpoint is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5.", "format": "int32", "type": "integer" }, "consecutiveGatewayFailure": { - "description": "The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3. 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": "The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3.", "format": "int32", "type": "integer" }, "enforcingConsecutiveErrors": { - "description": "The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0. 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": "The percentage chance that a backend endpoint will be ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0.", "format": "int32", "type": "integer" }, "enforcingConsecutiveGatewayFailure": { - "description": "The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. 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": "The percentage chance that a backend endpoint will be ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.", "format": "int32", "type": "integer" }, "enforcingSuccessRate": { - "description": "The percentage chance that a host will be actually ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.", + "description": "The percentage chance that a backend endpoint will be ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. Not supported when the backend service uses Serverless NEG.", "format": "int32", "type": "integer" }, "interval": { "$ref": "Duration", - "description": "Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second." + "description": "Time interval between ejection analysis sweeps. This can result in both new ejections and backend endpoints being returned to service. The interval is equal to the number of seconds as defined in outlierDetection.interval.seconds plus the number of nanoseconds as defined in outlierDetection.interval.nanos. Defaults to 1 second." }, "maxEjectionPercent": { - "description": "Maximum percentage of hosts in the load balancing pool for the backend service that can be ejected. Defaults to 50%.", + "description": "Maximum percentage of backend endpoints in the load balancing pool for the backend service that can be ejected if the ejection conditions are met. Defaults to 50%.", "format": "int32", "type": "integer" }, "successRateMinimumHosts": { - "description": "The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. Defaults to 5.", + "description": "The number of backend endpoints in the load balancing pool that must have enough request volume to detect success rate outliers. If the number of backend endpoints is fewer than this setting, outlier detection via success rate statistics is not performed for any backend endpoint in the load balancing pool. Defaults to 5. Not supported when the backend service uses Serverless NEG.", "format": "int32", "type": "integer" }, "successRateRequestVolume": { - "description": "The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. Defaults to 100.", + "description": "The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this backend endpoint in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that backend endpoint. Defaults to 100. Not supported when the backend service uses Serverless NEG.", "format": "int32", "type": "integer" }, "successRateStdevFactor": { - "description": "This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900.", + "description": "This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * successRateStdevFactor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900. Not supported when the backend service uses Serverless NEG.", "format": "int32", "type": "integer" } @@ -57187,6 +67896,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -57205,6 +67915,36 @@ "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.", @@ -57216,6 +67956,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -57267,14 +68008,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" }, @@ -57355,6 +68096,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -57373,6 +68115,36 @@ "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.", @@ -57384,6 +68156,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -57526,6 +68299,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -57544,6 +68318,36 @@ "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.", @@ -57555,6 +68359,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -57606,9 +68411,13 @@ "description": "A matcher for the path portion of the URL. The BackendService from the longest-matched rule will serve the URL. If no rule was matched, the default service is used.", "id": "PathMatcher", "properties": { + "defaultCustomErrorResponsePolicy": { + "$ref": "CustomErrorResponsePolicy", + "description": "defaultCustomErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. This policy takes effect at the PathMatcher level and applies only when no policy has been defined for the error code at lower levels like RouteRule and PathRule within this PathMatcher. If an error code does not have a policy defined in defaultCustomErrorResponsePolicy, then a policy defined for the error code in UrlMap.defaultCustomErrorResponsePolicy takes effect. For example, consider a UrlMap with the following configuration: - UrlMap.defaultCustomErrorResponsePolicy is configured with policies for 5xx and 4xx errors - A RouteRule for /coming_soon/ is configured for the error code 404. If the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in RouteRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in conjunction with pathMatcher.defaultRouteAction.retryPolicy, retries take precedence. Only once all retries are exhausted, the defaultCustomErrorResponsePolicy is applied. While attempting a retry, if load balancer is successful in reaching the service, the defaultCustomErrorResponsePolicy is ignored and the response from the service is returned to the client. defaultCustomErrorResponsePolicy is supported only for global external Application Load Balancers." + }, "defaultRouteAction": { "$ref": "HttpRouteAction", - "description": "defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a path matcher's defaultRouteAction." + "description": "defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path matcher's defaultRouteAction." }, "defaultService": { "description": "The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use ", @@ -57651,6 +68460,10 @@ "description": "A path-matching rule for a URL. If matched, will use the specified BackendService to handle the traffic arriving at this URL.", "id": "PathRule", "properties": { + "customErrorResponsePolicy": { + "$ref": "CustomErrorResponsePolicy", + "description": "customErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. If a policy for an error code is not configured for the PathRule, a policy for the error code configured in pathMatcher.defaultCustomErrorResponsePolicy is applied. If one is not specified in pathMatcher.defaultCustomErrorResponsePolicy, the policy configured in UrlMap.defaultCustomErrorResponsePolicy takes effect. For example, consider a UrlMap with the following configuration: - UrlMap.defaultCustomErrorResponsePolicy are configured with policies for 5xx and 4xx errors - A PathRule for /coming_soon/ is configured for the error code 404. If the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in PathRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect. customErrorResponsePolicy is supported only for global external Application Load Balancers." + }, "paths": { "description": "The list of path patterns to match. Each must start with / and the only place a * is allowed is at the end following a /. The string fed to the path matcher does not include any text after the first ? or #, and those chars are not allowed here.", "items": { @@ -57660,7 +68473,7 @@ }, "routeAction": { "$ref": "HttpRouteAction", - "description": "In response to a matching path, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of routeAction or urlRedirect must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a path rule's routeAction." + "description": "In response to a matching path, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of routeAction or urlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path rule's routeAction." }, "service": { "description": "The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.", @@ -57713,7 +68526,7 @@ "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/).", + "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": { @@ -57872,6 +68685,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." @@ -57921,6 +68748,20 @@ "description": "[Output Only] Type of the resource. Always compute#project for projects.", "type": "string" }, + "managedProtectionTier": { + "description": "[Output Only] The Cloud Armor Managed Protection (CAMP) tier for this project. It can be one of the following values: CA_STANDARD, CAMP_PLUS_PAYGO. If this field is not specified, it is assumed to be CA_STANDARD.", + "enum": [ + "CAMP_PLUS_ANNUAL", + "CAMP_PLUS_PAYGO", + "CA_STANDARD" + ], + "enumDescriptions": [ + "Plus tier protection annual.", + "Plus tier protection monthly.", + "Standard protection." + ], + "type": "string" + }, "name": { "description": "The project ID. For example: my-example-project. Use the project ID to make requests to Compute Engine.", "type": "string" @@ -58023,6 +68864,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": { @@ -58045,10 +68906,42 @@ }, "type": "object" }, + "ProjectsSetManagedProtectionTierRequest": { + "id": "ProjectsSetManagedProtectionTierRequest", + "properties": { + "managedProtectionTier": { + "description": "Managed protection tier to be set.", + "enum": [ + "CAMP_PLUS_ANNUAL", + "CAMP_PLUS_PAYGO", + "CA_STANDARD" + ], + "enumDescriptions": [ + "Plus tier protection annual.", + "Plus tier protection monthly.", + "Standard protection." + ], + "type": "string" + } + }, + "type": "object" + }, "PublicAdvertisedPrefix": { "description": "A public advertised prefix represents an aggregated IP prefix or netblock which customers bring to cloud. The IP prefix is a single unit of route advertisement and is announced globally to the internet.", "id": "PublicAdvertisedPrefix", "properties": { + "byoipApiVersion": { + "description": "[Output Only] The version of BYOIP API.", + "enum": [ + "V1", + "V2" + ], + "enumDescriptions": [ + "This public advertised prefix can be used to create both regional and global public delegated prefixes. It usually takes 4 weeks to create or delete a public delegated prefix. The BGP status cannot be changed.", + "This public advertised prefix can only be used to create regional public delegated prefixes. Public delegated prefix creation and deletion takes minutes and the BGP status can be modified." + ], + "type": "string" + }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -58058,7 +68951,7 @@ "type": "string" }, "dnsVerificationIp": { - "description": "The IPv4 address to be used for reverse DNS verification.", + "description": "The address to be used for reverse DNS verification.", "type": "string" }, "fingerprint": { @@ -58072,7 +68965,7 @@ "type": "string" }, "ipCidrRange": { - "description": "The IPv4 address range, in CIDR format, represented by this public advertised prefix.", + "description": "The address range, in CIDR format, represented by this public advertised prefix.", "type": "string" }, "kind": { @@ -58090,6 +68983,20 @@ "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, + "pdpScope": { + "description": "Specifies how child public delegated prefix will be scoped. It could be one of following values: - `REGIONAL`: The public delegated prefix is regional only. The provisioning will take a few minutes. - `GLOBAL`: The public delegated prefix is global only. The provisioning will take ~4 weeks. - `GLOBAL_AND_REGIONAL` [output only]: The public delegated prefixes is BYOIP V1 legacy prefix. This is output only value and no longer supported in BYOIP V2. ", + "enum": [ + "GLOBAL", + "GLOBAL_AND_REGIONAL", + "REGIONAL" + ], + "enumDescriptions": [ + "The public delegated prefix is global only. The provisioning will take ~4 weeks.", + "The public delegated prefixes is BYOIP V1 legacy prefix. This is output only value and no longer supported in BYOIP V2.", + "The public delegated prefix is regional only. The provisioning will take a few minutes." + ], + "type": "string" + }, "publicDelegatedPrefixs": { "description": "[Output Only] The list of public delegated prefixes that exist for this public advertised prefix.", "items": { @@ -58108,20 +69015,24 @@ "status": { "description": "The status of the public advertised prefix. Possible values include: - `INITIAL`: RPKI validation is complete. - `PTR_CONFIGURED`: User has configured the PTR. - `VALIDATED`: Reverse DNS lookup is successful. - `REVERSE_DNS_LOOKUP_FAILED`: Reverse DNS lookup failed. - `PREFIX_CONFIGURATION_IN_PROGRESS`: The prefix is being configured. - `PREFIX_CONFIGURATION_COMPLETE`: The prefix is fully configured. - `PREFIX_REMOVAL_IN_PROGRESS`: The prefix is being removed. ", "enum": [ + "ANNOUNCED_TO_INTERNET", "INITIAL", "PREFIX_CONFIGURATION_COMPLETE", "PREFIX_CONFIGURATION_IN_PROGRESS", "PREFIX_REMOVAL_IN_PROGRESS", "PTR_CONFIGURED", + "READY_TO_ANNOUNCE", "REVERSE_DNS_LOOKUP_FAILED", "VALIDATED" ], "enumDescriptions": [ + "The prefix is announced to Internet.", "RPKI validation is complete.", "The prefix is fully configured.", "The prefix is being configured.", "The prefix is being removed.", "User has configured the PTR.", + "The prefix is currently withdrawn but ready to be announced.", "Reverse DNS lookup failed.", "Reverse DNS lookup is successful." ], @@ -58173,6 +69084,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -58191,6 +69103,36 @@ "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.", @@ -58202,6 +69144,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -58280,6 +69223,18 @@ "description": "A PublicDelegatedPrefix resource represents an IP block within a PublicAdvertisedPrefix that is configured within a single cloud scope (global or region). IPs in the block can be allocated to resources within that scope. Public delegated prefixes may be further broken up into smaller IP blocks in the same scope as the parent block.", "id": "PublicDelegatedPrefix", "properties": { + "byoipApiVersion": { + "description": "[Output Only] The version of BYOIP API.", + "enum": [ + "V1", + "V2" + ], + "enumDescriptions": [ + "This public delegated prefix usually takes 4 weeks to delete, and the BGP status cannot be changed. Announce and Withdraw APIs can not be used on this prefix.", + "This public delegated prefix takes minutes to delete. Announce and Withdraw APIs can be used on this prefix to change the BGP status." + ], + "type": "string" + }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -58299,7 +69254,7 @@ "type": "string" }, "ipCidrRange": { - "description": "The IPv4 address range, in CIDR format, represented by this public delegated prefix.", + "description": "The IP address range, in CIDR format, represented by this public delegated prefix.", "type": "string" }, "isLiveMigration": { @@ -58344,12 +69299,16 @@ "description": "[Output Only] The status of the public delegated prefix, which can be one of following values: - `INITIALIZING` The public delegated prefix is being initialized and addresses cannot be created yet. - `READY_TO_ANNOUNCE` The public delegated prefix is a live migration prefix and is active. - `ANNOUNCED` The public delegated prefix is active. - `DELETING` The public delegated prefix is being deprovsioned. ", "enum": [ "ANNOUNCED", + "ANNOUNCED_TO_GOOGLE", + "ANNOUNCED_TO_INTERNET", "DELETING", "INITIALIZING", "READY_TO_ANNOUNCE" ], "enumDescriptions": [ "The public delegated prefix is active.", + "The prefix is announced within Google network.", + "The prefix is announced to Internet and within Google.", "The public delegated prefix is being deprovsioned.", "The public delegated prefix is being initialized and addresses cannot be created yet.", "The public delegated prefix is currently withdrawn but ready to be announced." @@ -58410,6 +69369,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -58428,6 +69388,36 @@ "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.", @@ -58439,6 +69429,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -58529,6 +69520,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -58547,6 +69539,36 @@ "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.", @@ -58558,6 +69580,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -58618,7 +69641,7 @@ "type": "string" }, "ipCidrRange": { - "description": "The IPv4 address range, in CIDR format, represented by this sub public delegated prefix.", + "description": "The IP address range, in CIDR format, represented by this sub public delegated prefix.", "type": "string" }, "isAddress": { @@ -58674,6 +69697,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -58692,6 +69716,36 @@ "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.", @@ -58703,6 +69757,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -58786,13 +69841,16 @@ "COMMITTED_N2_CPUS", "COMMITTED_NVIDIA_A100_80GB_GPUS", "COMMITTED_NVIDIA_A100_GPUS", + "COMMITTED_NVIDIA_H100_GPUS", "COMMITTED_NVIDIA_K80_GPUS", + "COMMITTED_NVIDIA_L4_GPUS", "COMMITTED_NVIDIA_P100_GPUS", "COMMITTED_NVIDIA_P4_GPUS", "COMMITTED_NVIDIA_T4_GPUS", "COMMITTED_NVIDIA_V100_GPUS", "COMMITTED_T2A_CPUS", "COMMITTED_T2D_CPUS", + "COMMITTED_Z3_CPUS", "CPUS", "CPUS_ALL_REGIONS", "DISKS_TOTAL_GB", @@ -58835,13 +69893,18 @@ "N2D_CPUS", "N2_CPUS", "NETWORKS", + "NETWORK_ATTACHMENTS", "NETWORK_ENDPOINT_GROUPS", "NETWORK_FIREWALL_POLICIES", + "NET_LB_SECURITY_POLICIES_PER_REGION", + "NET_LB_SECURITY_POLICY_RULES_PER_REGION", + "NET_LB_SECURITY_POLICY_RULE_ATTRIBUTES_PER_REGION", "NODE_GROUPS", "NODE_TEMPLATES", "NVIDIA_A100_80GB_GPUS", "NVIDIA_A100_GPUS", "NVIDIA_K80_GPUS", + "NVIDIA_L4_GPUS", "NVIDIA_P100_GPUS", "NVIDIA_P100_VWS_GPUS", "NVIDIA_P4_GPUS", @@ -58855,7 +69918,9 @@ "PREEMPTIBLE_LOCAL_SSD_GB", "PREEMPTIBLE_NVIDIA_A100_80GB_GPUS", "PREEMPTIBLE_NVIDIA_A100_GPUS", + "PREEMPTIBLE_NVIDIA_H100_GPUS", "PREEMPTIBLE_NVIDIA_K80_GPUS", + "PREEMPTIBLE_NVIDIA_L4_GPUS", "PREEMPTIBLE_NVIDIA_P100_GPUS", "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS", "PREEMPTIBLE_NVIDIA_P4_GPUS", @@ -58863,6 +69928,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", "PRIVATE_V6_ACCESS_SUBNETWORKS", "PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK", "PSC_INTERNAL_LB_FORWARDING_RULES", @@ -58880,6 +69948,7 @@ "ROUTES", "SECURITY_POLICIES", "SECURITY_POLICIES_PER_REGION", + "SECURITY_POLICY_ADVANCED_RULES_PER_REGION", "SECURITY_POLICY_CEVAL_RULES", "SECURITY_POLICY_RULES", "SECURITY_POLICY_RULES_PER_REGION", @@ -58900,6 +69969,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", @@ -58937,6 +70009,9 @@ "", "", "", + "", + "", + "", "Guest CPUs", "", "", @@ -59028,6 +70103,17 @@ "", "", "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", "The total number of snapshots allowed for a single project.", "", "", @@ -59047,6 +70133,9 @@ "", "", "", + "", + "", + "", "" ], "type": "string" @@ -59074,6 +70163,11 @@ "description": "The map holding related quota dimensions.", "type": "object" }, + "futureLimit": { + "description": "Future quota limit being rolled out. The limit's unit depends on the quota type or metric.", + "format": "double", + "type": "number" + }, "limit": { "description": "Current effective quota limit. The limit's unit depends on the quota type or metric.", "format": "double", @@ -59086,6 +70180,18 @@ "metricName": { "description": "The Compute Engine quota metric name.", "type": "string" + }, + "rolloutStatus": { + "description": "Rollout status of the future quota limit.", + "enum": [ + "IN_PROGRESS", + "ROLLOUT_STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "IN_PROGRESS - A rollout is in process which will change the limit value to future limit.", + "ROLLOUT_STATUS_UNSPECIFIED - Rollout status is not specified. The default value." + ], + "type": "string" } }, "type": "object" @@ -59181,6 +70287,20 @@ }, "type": "object" }, + "RegionAddressesMoveRequest": { + "id": "RegionAddressesMoveRequest", + "properties": { + "description": { + "description": "An optional destination address description if intended to be different from the source.", + "type": "string" + }, + "destinationAddress": { + "description": "The URL of the destination address to move to. This can be a full or partial URL. For example, the following are all valid URLs to a address: - https://www.googleapis.com/compute/v1/projects/project/regions/region /addresses/address - projects/project/regions/region/addresses/address Note that destination project must be different from the source project. So /regions/region/addresses/address is not valid partial url.", + "type": "string" + } + }, + "type": "object" + }, "RegionAutoscalerList": { "description": "Contains a list of autoscalers.", "id": "RegionAutoscalerList", @@ -59225,6 +70345,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -59243,6 +70364,36 @@ "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.", @@ -59254,6 +70405,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -59357,6 +70509,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -59375,6 +70528,36 @@ "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.", @@ -59386,6 +70569,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -59470,6 +70654,16 @@ }, "type": "object" }, + "RegionDisksStartAsyncReplicationRequest": { + "id": "RegionDisksStartAsyncReplicationRequest", + "properties": { + "asyncSecondaryDisk": { + "description": "The secondary disk to start asynchronous replication to. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk ", + "type": "string" + } + }, + "type": "object" + }, "RegionInstanceGroupList": { "description": "Contains a list of InstanceGroup resources.", "id": "RegionInstanceGroupList", @@ -59514,6 +70708,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -59532,6 +70727,36 @@ "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.", @@ -59543,6 +70768,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -59648,6 +70874,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -59666,6 +70893,36 @@ "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.", @@ -59677,6 +70934,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -59781,7 +71039,7 @@ "type": "array" }, "minimalAction": { - "description": "The minimal action that you want to perform on each instance during the update: - REPLACE: At minimum, delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt the instance at all. By default, the minimum action is NONE. If your update requires a more disruptive action than you set with this flag, the necessary action is performed to execute the update.", + "description": "The minimal action that you want to perform on each instance during the update: - REPLACE: At minimum, delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the minimum action is NONE. If your update requires a more disruptive action than you set with this flag, the necessary action is performed to execute the update.", "enum": [ "NONE", "REFRESH", @@ -59790,14 +71048,14 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" }, "mostDisruptiveAllowedAction": { - "description": "The most disruptive action that you want to perform on each instance during the update: - REPLACE: Delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt the instance at all. By default, the most disruptive allowed action is REPLACE. If your update requires a more disruptive action than you set with this flag, the update request will fail.", + "description": "The most disruptive action that you want to perform on each instance during the update: - REPLACE: Delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the most disruptive allowed action is REPLACE. If your update requires a more disruptive action than you set with this flag, the update request will fail.", "enum": [ "NONE", "REFRESH", @@ -59806,9 +71064,9 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" } @@ -59893,6 +71151,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -59911,6 +71170,36 @@ "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.", @@ -59922,6 +71211,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -60014,6 +71304,19 @@ }, "type": "object" }, + "RegionInstanceGroupManagersResumeInstancesRequest": { + "id": "RegionInstanceGroupManagersResumeInstancesRequest", + "properties": { + "instances": { + "description": "The URLs of one or more instances to resume. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "RegionInstanceGroupManagersSetAutoHealingRequest": { "id": "RegionInstanceGroupManagersSetAutoHealingRequest", "properties": { @@ -60054,6 +71357,53 @@ }, "type": "object" }, + "RegionInstanceGroupManagersStartInstancesRequest": { + "id": "RegionInstanceGroupManagersStartInstancesRequest", + "properties": { + "instances": { + "description": "The URLs of one or more instances to start. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionInstanceGroupManagersStopInstancesRequest": { + "id": "RegionInstanceGroupManagersStopInstancesRequest", + "properties": { + "forceStop": { + "description": "If this flag is set to true, the Instance Group Manager will proceed to stop the instances, skipping initialization on them.", + "type": "boolean" + }, + "instances": { + "description": "The URLs of one or more instances to stop. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionInstanceGroupManagersSuspendInstancesRequest": { + "id": "RegionInstanceGroupManagersSuspendInstancesRequest", + "properties": { + "forceSuspend": { + "description": "If this flag is set to true, the Instance Group Manager will proceed to suspend the instances, skipping initialization on them.", + "type": "boolean" + }, + "instances": { + "description": "The URLs of one or more instances to suspend. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "RegionInstanceGroupsListInstances": { "id": "RegionInstanceGroupsListInstances", "properties": { @@ -60097,6 +71447,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -60115,6 +71466,36 @@ "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.", @@ -60126,6 +71507,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -60258,6 +71640,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -60276,6 +71659,36 @@ "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.", @@ -60287,6 +71700,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -60334,6 +71748,32 @@ }, "type": "object" }, + "RegionNetworkEndpointGroupsAttachEndpointsRequest": { + "id": "RegionNetworkEndpointGroupsAttachEndpointsRequest", + "properties": { + "networkEndpoints": { + "description": "The list of network endpoints to be attached.", + "items": { + "$ref": "NetworkEndpoint" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionNetworkEndpointGroupsDetachEndpointsRequest": { + "id": "RegionNetworkEndpointGroupsDetachEndpointsRequest", + "properties": { + "networkEndpoints": { + "description": "The list of network endpoints to be detached.", + "items": { + "$ref": "NetworkEndpoint" + }, + "type": "array" + } + }, + "type": "object" + }, "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse": { "id": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse", "properties": { @@ -60469,6 +71909,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" @@ -60477,6 +71921,14 @@ "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" }, + "deleteAfterDuration": { + "$ref": "Duration", + "description": "Duration time relative to reservation creation when Compute Engine will automatically delete this resource." + }, + "deleteAtTime": { + "description": "Absolute time in future when the reservation will be auto-deleted by Compute Engine. Timestamp is represented in RFC3339 text format.", + "type": "string" + }, "description": { "description": "An optional description of this resource. Provide this property when you create the resource.", "type": "string" @@ -60568,6 +72020,7 @@ "NO_RESERVATION", "SPECIFIC_RESERVATION", "SPECIFIC_THEN_ANY_RESERVATION", + "SPECIFIC_THEN_NO_RESERVATION", "UNSPECIFIED" ], "enumDescriptions": [ @@ -60575,6 +72028,7 @@ "Do not consume from any allocated capacity.", "Must consume from a specific reservation. Must specify key value fields for specifying the reservations.", "Prefer to consume from a specific reservation, but still consume any reservation available if the specified reservation is not available or exhausted. Must specify key value fields for specifying the reservations.", + "Prefer to consume from a specific reservation, but still consume from the on-demand pool if the specified reservation is exhausted. Must specify key value fields for specifying the reservations.", "" ], "type": "string" @@ -60645,6 +72099,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -60663,6 +72118,36 @@ "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.", @@ -60674,6 +72159,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -60764,6 +72250,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -60782,6 +72269,36 @@ "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.", @@ -60793,6 +72310,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -60877,6 +72395,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -60895,6 +72414,36 @@ "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.", @@ -60906,6 +72455,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -61023,6 +72573,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -61041,6 +72592,36 @@ "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.", @@ -61052,6 +72633,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -61110,6 +72692,10 @@ "description": { "type": "string" }, + "diskConsistencyGroupPolicy": { + "$ref": "ResourcePolicyDiskConsistencyGroupPolicy", + "description": "Resource policy for disk consistency groups." + }, "groupPlacementPolicy": { "$ref": "ResourcePolicyGroupPlacementPolicy", "description": "Resource policy for instances for placement configuration." @@ -61229,6 +72815,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -61247,6 +72834,36 @@ "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.", @@ -61258,6 +72875,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -61325,6 +72943,12 @@ }, "type": "object" }, + "ResourcePolicyDiskConsistencyGroupPolicy": { + "description": "Resource policy for disk consistency groups.", + "id": "ResourcePolicyDiskConsistencyGroupPolicy", + "properties": {}, + "type": "object" + }, "ResourcePolicyGroupPlacementPolicy": { "description": "A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation as well as network locality", "id": "ResourcePolicyGroupPlacementPolicy", @@ -61346,6 +72970,20 @@ ], "type": "string" }, + "maxDistance": { + "description": "Specifies the number of max logical switches.", + "format": "int32", + "type": "integer" + }, + "sliceCount": { + "description": "Specifies the number of slices in a multislice workload.", + "format": "int32", + "type": "integer" + }, + "tpuTopology": { + "description": "Specifies the shape of the TPU slice", + "type": "string" + }, "vmCount": { "description": "Number of VMs in this placement group. Google does not recommend that you use this field unless you use a compact policy and you want your policy to work only if it contains this exact number of VMs.", "format": "int32", @@ -61387,7 +73025,7 @@ "type": "string" }, "timeZone": { - "description": "Specifies the time zone to be used in interpreting Schedule.schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database.", + "description": "Specifies the time zone to be used in interpreting Schedule.schedule. The value of this field must be a time zone name from the tz database: https://wikipedia.org/wiki/Tz_database.", "type": "string" }, "vmStartSchedule": { @@ -61458,6 +73096,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -61476,6 +73115,36 @@ "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.", @@ -61487,6 +73156,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -61711,6 +73381,9 @@ }, "scheduling": { "$ref": "ResourceStatusScheduling" + }, + "upcomingMaintenance": { + "$ref": "UpcomingMaintenance" } }, "type": "object" @@ -61768,7 +73441,7 @@ "compute.routes.insert" ] }, - "description": "The destination range of outgoing packets that this route applies to. Both IPv4 and IPv6 are supported.", + "description": "The destination range of outgoing packets that this route applies to. Both IPv4 and IPv6 are supported. Must specify an IPv4 range (e.g. 192.0.2.0/24) or an IPv6 range in RFC 4291 format (e.g. 2001:db8::/32). IPv6 range will be displayed using RFC 5952 compressed format.", "type": "string" }, "id": { @@ -61804,6 +73477,10 @@ "description": "The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL: projects/ project/global/gateways/default-internet-gateway", "type": "string" }, + "nextHopHub": { + "description": "[Output Only] The full resource name of the Network Connectivity Center hub that will handle matching packets.", + "type": "string" + }, "nextHopIlb": { "description": "The URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should handle matching packets or the IP address of the forwarding Rule. For example, the following are all valid URLs: - 10.128.0.56 - https://www.googleapis.com/compute/v1/projects/project/regions/region /forwardingRules/forwardingRule - regions/region/forwardingRules/forwardingRule ", "type": "string" @@ -61817,7 +73494,7 @@ "type": "string" }, "nextHopIp": { - "description": "The network IP address of an instance that should handle matching packets. Only IPv4 is supported.", + "description": "The network IP address of an instance that should handle matching packets. Both IPv6 address and IPv4 addresses are supported. Must specify an IPv4 address in dot-decimal notation (e.g. 192.0.2.99) or an IPv6 address in RFC 4291 format (e.g. 2001:db8::2d9:51:0:0 or 2001:db8:0:0:2d9:51:0:0). IPv6 addresses will be displayed using RFC 5952 compressed format (e.g. 2001:db8::2d9:51:0:0). Should never be an IPv4-mapped IPv6 address.", "type": "string" }, "nextHopNetwork": { @@ -61907,6 +73584,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -61925,6 +73603,36 @@ "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.", @@ -61936,6 +73644,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -62059,6 +73768,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -62077,6 +73787,36 @@ "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.", @@ -62088,6 +73828,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -62168,7 +73909,7 @@ "type": "string" }, "interfaces": { - "description": "Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.", + "description": "Router interfaces. To create a BGP peer that uses a router interface, the interface must have one of the following fields specified: - linkedVpnTunnel - linkedInterconnectAttachment - subnetwork You can create a router interface without any of these fields specified. However, you cannot create a BGP peer that uses that interface.", "items": { "$ref": "RouterInterface" }, @@ -62291,6 +74032,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -62309,6 +74051,36 @@ "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.", @@ -62320,6 +74092,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -62407,6 +74180,10 @@ "format": "uint32", "type": "integer" }, + "identifierRange": { + "description": "Explicitly specifies a range of valid BGP Identifiers for this Router. It is provided as a link-local IPv4 range (from 169.254.0.0/16), of size at least /30, even if the BGP sessions are over IPv6. It must not overlap with any IPv4 BGP session ranges. Other vendors commonly call this \"router ID\".", + "type": "string" + }, "keepaliveInterval": { "description": "The interval in seconds between BGP keepalive messages that are sent to the peer. Hold time is three times the interval at which keepalive messages are sent, and the hold time is the maximum number of seconds allowed to elapse between successive keepalive messages that BGP receives from a peer. BGP will use the smaller of either the local hold time value or the peer's hold time value as the hold time for the BGP connection between the two peers. If set, this value must be between 20 and 60. The default is 20.", "format": "uint32", @@ -62431,7 +74208,7 @@ "type": "string" }, "advertisedGroups": { - "description": "User-specified list of prefix groups to advertise in custom mode, which can take one of the following options: - ALL_SUBNETS: Advertises all available subnets, including peer VPC subnets. - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets. Note that this field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the \"bgp\" message). These groups are advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.", + "description": "User-specified list of prefix groups to advertise in custom mode, which currently supports the following option: - ALL_SUBNETS: Advertises all of the router's own VPC subnets. This excludes any routes learned for subnets that use VPC Network Peering. Note that this field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the \"bgp\" message). These groups are advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.", "items": { "enum": [ "ALL_SUBNETS" @@ -62459,6 +74236,18 @@ "$ref": "RouterBgpPeerBfd", "description": "BFD configuration for the BGP peering." }, + "customLearnedIpRanges": { + "description": "A list of user-defined custom learned route IP address ranges for a BGP session.", + "items": { + "$ref": "RouterBgpPeerCustomLearnedIpRange" + }, + "type": "array" + }, + "customLearnedRoutePriority": { + "description": "The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route ranges for the session. You can choose a value from `0` to `65335`. If you don't provide a value, Google Cloud assigns a priority of `100` to the ranges.", + "format": "int32", + "type": "integer" + }, "enable": { "description": "The status of the BGP peer connection. If set to FALSE, any active session with the peer is terminated and all associated routing information is removed. If set to TRUE, the peer connection can be established with routing information. The default is TRUE.", "enum": [ @@ -62471,6 +74260,10 @@ ], "type": "string" }, + "enableIpv4": { + "description": "Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4.", + "type": "boolean" + }, "enableIpv6": { "description": "Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.", "type": "boolean" @@ -62483,6 +74276,10 @@ "description": "IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.", "type": "string" }, + "ipv4NexthopAddress": { + "description": "IPv4 address of the interface inside Google Cloud Platform.", + "type": "string" + }, "ipv6NexthopAddress": { "description": "IPv6 address of the interface inside Google Cloud Platform.", "type": "string" @@ -62527,6 +74324,10 @@ "description": "IP address of the BGP interface outside Google Cloud Platform. Only IPv4 is supported.", "type": "string" }, + "peerIpv4NexthopAddress": { + "description": "IPv4 address of the BGP interface outside Google Cloud Platform.", + "type": "string" + }, "peerIpv6NexthopAddress": { "description": "IPv6 address of the BGP interface outside Google Cloud Platform.", "type": "string" @@ -62573,6 +74374,16 @@ }, "type": "object" }, + "RouterBgpPeerCustomLearnedIpRange": { + "id": "RouterBgpPeerCustomLearnedIpRange", + "properties": { + "range": { + "description": "The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, a `/32` singular IP address range, and, for IPv6, `/128`.", + "type": "string" + } + }, + "type": "object" + }, "RouterInterface": { "id": "RouterInterface", "properties": { @@ -62580,12 +74391,24 @@ "description": "IP address and range of the interface. The IP range must be in the RFC3927 link-local IP address space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.", "type": "string" }, + "ipVersion": { + "description": "IP version of this interface.", + "enum": [ + "IPV4", + "IPV6" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, "linkedInterconnectAttachment": { - "description": "URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a virtual machine instance.", + "description": "URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a subnetwork.", "type": "string" }, "linkedVpnTunnel": { - "description": "URI of the linked VPN tunnel, which must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a virtual machine instance.", + "description": "URI of the linked VPN tunnel, which must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a subnetwork.", "type": "string" }, "managementType": { @@ -62670,6 +74493,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -62688,6 +74512,36 @@ "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.", @@ -62699,6 +74553,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -62765,7 +74620,7 @@ "compute.routers.update" ] }, - "description": "Name used to identify the key. Must be unique within a router. Must be referenced by at least one bgpPeer. Must comply with RFC1035.", + "description": "Name used to identify the key. Must be unique within a router. Must be referenced by exactly one bgpPeer. Must comply with RFC1035.", "type": "string" } }, @@ -62775,6 +74630,22 @@ "description": "Represents a Nat resource. It enables the VMs within the specified subnetworks to access Internet without external IP addresses. It specifies a list of subnetworks (and the ranges within) that want to use NAT. Customers can also provide the external IPs that would be used for NAT. GCP would auto-allocate ephemeral IPs if no external IPs are provided.", "id": "RouterNat", "properties": { + "autoNetworkTier": { + "description": "The network tier to use when automatically reserving NAT IP addresses. Must be one of: PREMIUM, STANDARD. If not specified, then the current project-level default tier is used.", + "enum": [ + "FIXED_STANDARD", + "PREMIUM", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" + ], + "enumDescriptions": [ + "Public internet quality with fixed bandwidth.", + "High quality, Google-grade network tier, support for all networking products.", + "Public internet quality, only limited support for other networking products.", + "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." + ], + "type": "string" + }, "drainNatIps": { "description": "A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT only.", "items": { @@ -62793,10 +74664,12 @@ "description": "List of NAT-ted endpoint types supported by the Nat Gateway. If the list is empty, then it will be equivalent to include ENDPOINT_TYPE_VM", "items": { "enum": [ + "ENDPOINT_TYPE_MANAGED_PROXY_LB", "ENDPOINT_TYPE_SWG", "ENDPOINT_TYPE_VM" ], "enumDescriptions": [ + "This is used for regional Application Load Balancers (internal and external) and regional proxy Network Load Balancers (internal and external) endpoints.", "This is used for Secure Web Gateway endpoints.", "This is the default." ], @@ -62855,7 +74728,7 @@ "type": "array" }, "sourceSubnetworkIpRangesToNat": { - "description": "Specify the Nat option, which can take one of the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field subnetwork below) The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES or ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other Router.Nat section in any Router for this network in this region.", + "description": "Specify the Nat option, which can take one of the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field subnetwork below) The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES then there should not be any other Router.Nat section in any Router for this network in this region.", "enum": [ "ALL_SUBNETWORKS_ALL_IP_RANGES", "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES", @@ -62890,6 +74763,18 @@ "format": "int32", "type": "integer" }, + "type": { + "description": "Indicates whether this NAT is used for public or private IP translation. If unspecified, it defaults to PUBLIC.", + "enum": [ + "PRIVATE", + "PUBLIC" + ], + "enumDescriptions": [ + "NAT used for private IP translation.", + "NAT used for public IP translation. This is the default." + ], + "type": "string" + }, "udpIdleTimeoutSec": { "description": "Timeout (in seconds) for UDP connections. Defaults to 30s if not set.", "format": "int32", @@ -62935,7 +74820,7 @@ "type": "string" }, "match": { - "description": "CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. If it evaluates to true, the corresponding `action` is enforced. The following examples are valid match expressions for public NAT: \"inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')\" \"destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'\" The following example is a valid match expression for private NAT: \"nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'\"", + "description": "CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. If it evaluates to true, the corresponding `action` is enforced. The following examples are valid match expressions for public NAT: \"inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')\" \"destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'\" The following example is a valid match expression for private NAT: \"nexthop.hub == '//networkconnectivity.googleapis.com/projects/my-project/locations/global/hubs/hub-1'\"", "type": "string" }, "ruleNumber": { @@ -62956,12 +74841,26 @@ }, "type": "array" }, + "sourceNatActiveRanges": { + "description": "A list of URLs of the subnetworks used as source ranges for this NAT Rule. These subnetworks must have purpose set to PRIVATE_NAT. This field is used for private NAT.", + "items": { + "type": "string" + }, + "type": "array" + }, "sourceNatDrainIps": { "description": "A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT.", "items": { "type": "string" }, "type": "array" + }, + "sourceNatDrainRanges": { + "description": "A list of URLs of subnetworks representing source ranges to be drained. This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. This field is used for private NAT.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -63050,6 +74949,10 @@ "bfdStatus": { "$ref": "BfdStatus" }, + "enableIpv4": { + "description": "Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4.", + "type": "boolean" + }, "enableIpv6": { "description": "Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.", "type": "boolean" @@ -63058,6 +74961,10 @@ "description": "IP address of the local BGP interface.", "type": "string" }, + "ipv4NexthopAddress": { + "description": "IPv4 address of the local BGP interface.", + "type": "string" + }, "ipv6NexthopAddress": { "description": "IPv6 address of the local BGP interface.", "type": "string" @@ -63083,6 +74990,10 @@ "description": "IP address of the remote BGP interface.", "type": "string" }, + "peerIpv4NexthopAddress": { + "description": "IPv4 address of the remote BGP interface.", + "type": "string" + }, "peerIpv6NexthopAddress": { "description": "IPv6 address of the remote BGP interface.", "type": "string" @@ -63112,10 +75023,14 @@ "statusReason": { "description": "Indicates why particular status was returned.", "enum": [ + "IPV4_PEER_ON_IPV6_ONLY_CONNECTION", + "IPV6_PEER_ON_IPV4_ONLY_CONNECTION", "MD5_AUTH_INTERNAL_PROBLEM", "STATUS_REASON_UNSPECIFIED" ], "enumDescriptions": [ + "BGP peer disabled because it requires IPv4 but the underlying connection is IPv6-only.", + "BGP peer disabled because it requires IPv6 but the underlying connection is IPv4-only.", "Indicates internal problems with configuration of MD5 authentication. This particular reason can only be returned when md5AuthEnabled is true and status is DOWN.", "" ], @@ -63281,6 +75196,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -63299,6 +75215,36 @@ "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.", @@ -63310,6 +75256,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -63436,7 +75383,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", @@ -63689,6 +75636,10 @@ ], "type": "string" }, + "localSsdRecoveryTimeout": { + "$ref": "Duration", + "description": "Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour." + }, "locationHint": { "description": "An opaque location hint used to place the instance close to other resources. This field is for use by internal tools that use the public API.", "type": "string" @@ -63701,10 +75652,14 @@ "maintenanceInterval": { "description": "Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`.", "enum": [ - "PERIODIC" + "AS_NEEDED", + "PERIODIC", + "RECURRENT" ], "enumDescriptions": [ - "VMs receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean a VM will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available." + "VMs are eligible to receive infrastructure and hypervisor updates as they become available. This may result in more maintenance operations (live migrations or terminations) for the VM than the PERIODIC and RECURRENT options.", + "VMs receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean a VM will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available.", + "VMs receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean a VM will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available. RECURRENT is used for GEN3 and Slice of Hardware VMs." ], "type": "string" }, @@ -63736,6 +75691,9 @@ ], "type": "string" }, + "onInstanceStopAction": { + "$ref": "SchedulingOnInstanceStopAction" + }, "preemptible": { "description": "Defines whether the instance is preemptible. This can only be set during instance creation or while the instance is stopped and therefore, in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states.", "type": "boolean" @@ -63791,6 +75749,17 @@ }, "type": "object" }, + "SchedulingOnInstanceStopAction": { + "description": "Defines the behaviour for instances with the instance_termination_action STOP.", + "id": "SchedulingOnInstanceStopAction", + "properties": { + "discardLocalSsd": { + "description": "If true, the contents of any attached Local SSD disks will be discarded else, the Local SSD data will be preserved when the instance is stopped at the end of the run duration/termination time.", + "type": "boolean" + } + }, + "type": "object" + }, "Screenshot": { "description": "An instance's screenshot.", "id": "Screenshot", @@ -63861,6 +75830,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -63879,6 +75849,36 @@ "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.", @@ -63890,6 +75890,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -63972,6 +75973,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -63990,6 +75992,36 @@ "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.", @@ -64001,6 +76033,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -64086,7 +76119,7 @@ "type": "string" }, "displayName": { - "description": "User-provided name of the Organization security plicy. The name should be unique in the organization in which the security policy is created. This should only be used when SecurityPolicyType is FIREWALL. The name must be 1-63 characters long, and comply with https://www.ietf.org/rfc/rfc1035.txt. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "description": "User-provided name of the organization security policy. The name should be unique in the organization in which the security policy is created. This should only be used when SecurityPolicyType is FIREWALL. The name must be 1-63 characters long, and comply with https://www.ietf.org/rfc/rfc1035.txt. 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" }, @@ -64154,7 +76187,7 @@ "type": "string" }, "type": { - "description": "The type indicates the intended use of the security policy. - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can be configured to filter incoming HTTP requests targeting backend services (including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They filter requests before the request is served from Google's cache. - CLOUD_ARMOR_INTERNAL_SERVICE: Cloud Armor internal service policies can be configured to filter HTTP requests targeting services managed by Traffic Director in a service mesh. They filter requests before the request is served from the application. This field can be set only at resource creation time.", + "description": "The type indicates the intended use of the security policy. - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can be configured to filter incoming HTTP requests targeting backend services (including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They filter requests before the request is served from Google's cache. - CLOUD_ARMOR_INTERNAL_SERVICE: Cloud Armor internal service policies can be configured to filter HTTP requests targeting services managed by Traffic Director in a service mesh. They filter requests before the request is served from the application. - CLOUD_ARMOR_NETWORK: Cloud Armor network policies can be configured to filter packets targeting network load balancing resources such as backend services, target pools, target instances, and instances with external IPs. They filter requests before the request is served from the application. This field can be set only at resource creation time.", "enum": [ "CLOUD_ARMOR", "CLOUD_ARMOR_EDGE", @@ -64168,6 +76201,13 @@ "" ], "type": "string" + }, + "userDefinedFields": { + "description": "Definitions of user-defined fields for CLOUD_ARMOR_NETWORK policies. A user-defined field consists of up to 4 bytes extracted from a fixed offset in the packet, relative to the IPv4, IPv6, TCP, or UDP header, with an optional mask to select certain bits. Rules may then specify matching values for these fields. Example: userDefinedFields: - name: \"ipv4_fragment_offset\" base: IPV4 offset: 6 size: 2 mask: \"0x1fff\"", + "items": { + "$ref": "SecurityPolicyUserDefinedField" + }, + "type": "array" } }, "type": "object" @@ -64210,15 +76250,15 @@ "type": "object" }, "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig": { - "description": "Configuration options for L7 DDoS detection.", + "description": "Configuration options for L7 DDoS detection. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig", "properties": { "enable": { - "description": "If set to true, enables CAAP for L7 DDoS detection.", + "description": "If set to true, enables CAAP for L7 DDoS detection. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", "type": "boolean" }, "ruleVisibility": { - "description": "Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules.", + "description": "Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", "enum": [ "PREMIUM", "STANDARD" @@ -64228,6 +76268,88 @@ "" ], "type": "string" + }, + "thresholdConfigs": { + "description": "Configuration options for layer7 adaptive protection for various customizable thresholds.", + "items": { + "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig": { + "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig", + "properties": { + "autoDeployConfidenceThreshold": { + "format": "float", + "type": "number" + }, + "autoDeployExpirationSec": { + "format": "int32", + "type": "integer" + }, + "autoDeployImpactedBaselineThreshold": { + "format": "float", + "type": "number" + }, + "autoDeployLoadThreshold": { + "format": "float", + "type": "number" + }, + "detectionAbsoluteQps": { + "format": "float", + "type": "number" + }, + "detectionLoadThreshold": { + "format": "float", + "type": "number" + }, + "detectionRelativeToBaselineQps": { + "format": "float", + "type": "number" + }, + "name": { + "description": "The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the security policy.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "trafficGranularityConfigs": { + "description": "Configuration options for enabling Adaptive Protection to operate on specified granular traffic units.", + "items": { + "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig": { + "description": "Configurations to specifc granular traffic units processed by Adaptive Protection.", + "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig", + "properties": { + "enableEachUniqueValue": { + "description": "If enabled, traffic matching each unique value for the specified type constitutes a separate traffic unit. It can only be set to true if `value` is empty.", + "type": "boolean" + }, + "type": { + "description": "Type of this configuration.", + "enum": [ + "HTTP_HEADER_HOST", + "HTTP_PATH", + "UNSPECIFIED_TYPE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "value": { + "description": "Requests that match this value constitute a granular traffic unit.", + "type": "string" } }, "type": "object" @@ -64242,9 +76364,11 @@ "jsonParsing": { "enum": [ "DISABLED", - "STANDARD" + "STANDARD", + "STANDARD_WITH_GRAPHQL" ], "enumDescriptions": [ + "", "", "" ], @@ -64260,6 +76384,13 @@ "" ], "type": "string" + }, + "userIpRequestHeaders": { + "description": "An optional list of case-insensitive request header names to use for resolving the callers client IP address.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -64305,9 +76436,11 @@ "ddosProtection": { "enum": [ "ADVANCED", + "ADVANCED_PREVIEW", "STANDARD" ], "enumDescriptions": [ + "", "", "" ], @@ -64355,6 +76488,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -64373,6 +76507,36 @@ "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.", @@ -64384,6 +76548,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -64435,7 +76600,7 @@ "id": "SecurityPolicyRecaptchaOptionsConfig", "properties": { "redirectSiteKey": { - "description": "An optional field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used.", + "description": "An optional field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", "type": "string" } }, @@ -64455,7 +76620,7 @@ "id": "SecurityPolicyRule", "properties": { "action": { - "description": "The Action to perform when the rule is matched. The following are the valid actions: - allow: allow access to target. - deny(): deny access to target, returns the HTTP response code specified (valid values are 403, 404, and 502). - rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rate_limit_options to be set. - redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. - throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rate_limit_options to be set for this. ", + "description": "The Action to perform when the rule is matched. The following are the valid actions: - allow: allow access to target. - deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for `STATUS` are 403, 404, and 502. - rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rate_limit_options to be set. - redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. - throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rate_limit_options to be set for this. ", "type": "string" }, "description": { @@ -64480,7 +76645,7 @@ }, "headerAction": { "$ref": "SecurityPolicyRuleHttpHeaderAction", - "description": "Optional, additional actions that are performed on headers." + "description": "Optional, additional actions that are performed on headers. This field is only supported in Global Security Policies of type CLOUD_ARMOR." }, "kind": { "default": "compute#securityPolicyRule", @@ -64491,6 +76656,10 @@ "$ref": "SecurityPolicyRuleMatcher", "description": "A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced." }, + "networkMatch": { + "$ref": "SecurityPolicyRuleNetworkMatcher", + "description": "A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. Example: networkMatch: srcIpRanges: - \"192.0.2.0/24\" - \"198.51.100.0/24\" userDefinedFields: - name: \"ipv4_fragment_offset\" values: - \"1-0x1fff\" The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named \"ipv4_fragment_offset\" with a value between 1 and 0x1fff inclusive." + }, "preconfiguredWafConfig": { "$ref": "SecurityPolicyRulePreconfiguredWafConfig", "description": "Preconfigured WAF configuration to be applied for the rule. If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect." @@ -64510,7 +76679,7 @@ }, "redirectOptions": { "$ref": "SecurityPolicyRuleRedirectOptions", - "description": "Parameters defining the redirect action. Cannot be specified for any other actions." + "description": "Parameters defining the redirect action. Cannot be specified for any other actions. This field is only supported in Global Security Policies of type CLOUD_ARMOR." }, "ruleNumber": { "description": "Identifier for the rule. This is only unique within the given security policy. This can only be set during rule creation, if rule number is not specified it will be generated by the server.", @@ -64576,7 +76745,11 @@ }, "expr": { "$ref": "Expr", - "description": "User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header." + "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.", @@ -64637,6 +76810,117 @@ }, "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", + "properties": { + "destIpRanges": { + "description": "Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format.", + "items": { + "type": "string" + }, + "type": "array" + }, + "destPorts": { + "description": "Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. \"80\") or range (e.g. \"0-1023\").", + "items": { + "type": "string" + }, + "type": "array" + }, + "ipProtocols": { + "description": "IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. \"6\"), range (e.g. \"253-254\"), or one of the following protocol names: \"tcp\", \"udp\", \"icmp\", \"esp\", \"ah\", \"ipip\", or \"sctp\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "srcAsns": { + "description": "BGP Autonomous System Number associated with the source IP address.", + "items": { + "format": "uint32", + "type": "integer" + }, + "type": "array" + }, + "srcIpRanges": { + "description": "Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format.", + "items": { + "type": "string" + }, + "type": "array" + }, + "srcPorts": { + "description": "Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. \"80\") or range (e.g. \"0-1023\").", + "items": { + "type": "string" + }, + "type": "array" + }, + "srcRegionCodes": { + "description": "Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address.", + "items": { + "type": "string" + }, + "type": "array" + }, + "userDefinedFields": { + "description": "User-defined fields. Each element names a defined field and lists the matching values for that field.", + "items": { + "$ref": "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch" + }, + "type": "array" + } + }, + "type": "object" + }, + "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch": { + "id": "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch", + "properties": { + "name": { + "description": "Name of the user-defined field, as given in the definition.", + "type": "string" + }, + "values": { + "description": "Matching values of the field. Each element can be a 32-bit unsigned decimal or hexadecimal (starting with \"0x\") number (e.g. \"64\") or range (e.g. \"0x400-0x7ff\").", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "SecurityPolicyRulePreconfiguredWafConfig": { "id": "SecurityPolicyRulePreconfiguredWafConfig", "properties": { @@ -64740,7 +77024,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", "ALL_IPS", @@ -64750,8 +77034,23 @@ "IP", "REGION_CODE", "SNI", + "TLS_JA3_FINGERPRINT", + "USER_IP", "XFF_IP" ], + "enumDeprecated": [ + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], "enumDescriptions": [ "", "", @@ -64761,6 +77060,8 @@ "", "", "", + "", + "", "" ], "type": "string" @@ -64777,12 +77078,12 @@ "type": "string" }, "exceedAction": { - "description": "Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are \"deny(status)\", where valid values for status are 403, 404, 429, and 502, and \"redirect\" where the redirect parameters come from exceedRedirectOptions below.", + "description": "Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are `deny(STATUS)`, where valid values for `STATUS` are 403, 404, 429, and 502, and `redirect`, where the redirect parameters come from `exceedRedirectOptions` below. The `redirect` action is only supported in Global Security Policies of type CLOUD_ARMOR.", "type": "string" }, "exceedRedirectOptions": { "$ref": "SecurityPolicyRuleRedirectOptions", - "description": "Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect." + "description": "Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR." }, "rateLimitThreshold": { "$ref": "SecurityPolicyRuleRateLimitOptionsThreshold", @@ -64799,7 +77100,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", "ALL_IPS", @@ -64809,8 +77110,23 @@ "IP", "REGION_CODE", "SNI", + "TLS_JA3_FINGERPRINT", + "USER_IP", "XFF_IP" ], + "enumDeprecated": [ + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], "enumDescriptions": [ "", "", @@ -64820,6 +77136,8 @@ "", "", "", + "", + "", "" ], "type": "string" @@ -64865,11 +77183,52 @@ }, "type": "object" }, + "SecurityPolicyUserDefinedField": { + "id": "SecurityPolicyUserDefinedField", + "properties": { + "base": { + "description": "The base relative to which 'offset' is measured. Possible values are: - IPV4: Points to the beginning of the IPv4 header. - IPV6: Points to the beginning of the IPv6 header. - TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. - UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. required", + "enum": [ + "IPV4", + "IPV6", + "TCP", + "UDP" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "mask": { + "description": "If specified, apply this mask (bitwise AND) to the field to ignore bits before matching. Encoded as a hexadecimal number (starting with \"0x\"). The last byte of the field (in network byte order) corresponds to the least significant byte of the mask.", + "type": "string" + }, + "name": { + "description": "The name of this field. Must be unique within the policy.", + "type": "string" + }, + "offset": { + "description": "Offset of the first byte of the field (in network byte order) relative to 'base'.", + "format": "int32", + "type": "integer" + }, + "size": { + "description": "Size of the field in bytes. Valid values: 1-4.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "SecuritySettings": { "description": "The authentication and authorization settings for a BackendService.", "id": "SecuritySettings", "properties": { "authentication": { + "deprecated": true, "description": "[Deprecated] Use clientTlsPolicy instead.", "type": "string" }, @@ -64878,11 +77237,11 @@ "description": "The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends." }, "clientTlsPolicy": { - "description": "Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that describes how clients should authenticate with this service's backends. clientTlsPolicy only applies to a global BackendService with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted. Note: This field currently has no impact.", + "description": "Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that describes how clients should authenticate with this service's backends. clientTlsPolicy only applies to a global BackendService with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted.", "type": "string" }, "subjectAltNames": { - "description": "Optional. A list of Subject Alternative Names (SANs) that the client verifies during a mutual TLS handshake with an server/endpoint for this BackendService. When the server presents its X.509 certificate to the client, the client inspects the certificate's subjectAltName field. If the field contains one of the specified values, the communication continues. Otherwise, it fails. This additional check enables the client to verify that the server is authorized to run the requested service. Note that the contents of the server certificate's subjectAltName field are configured by the Public Key Infrastructure which provisions server identities. Only applies to a global BackendService with loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached clientTlsPolicy with clientCertificate (mTLS mode). Note: This field currently has no impact.", + "description": "Optional. A list of Subject Alternative Names (SANs) that the client verifies during a mutual TLS handshake with an server/endpoint for this BackendService. When the server presents its X.509 certificate to the client, the client inspects the certificate's subjectAltName field. If the field contains one of the specified values, the communication continues. Otherwise, it fails. This additional check enables the client to verify that the server is authorized to run the requested service. Note that the contents of the server certificate's subjectAltName field are configured by the Public Key Infrastructure which provisions server identities. Only applies to a global BackendService with loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached clientTlsPolicy with clientCertificate (mTLS mode).", "items": { "type": "string" }, @@ -64959,7 +77318,7 @@ "type": "object" }, "ServiceAttachment": { - "description": "Represents a ServiceAttachment resource. A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 20", + "description": "Represents a ServiceAttachment resource. A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service.", "id": "ServiceAttachment", "properties": { "connectedEndpoints": { @@ -65049,6 +77408,7 @@ "type": "array" }, "producerForwardingRule": { + "deprecated": true, "description": "The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is serving the endpoint identified by this service attachment.", "type": "string" }, @@ -65056,6 +77416,10 @@ "$ref": "Uint128", "description": "[Output Only] An 128-bit global unique ID of the PSC service attachment." }, + "reconcileConnections": { + "description": "This flag determines whether a consumer accept/reject list change can reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints. - If false, connection policy update will only affect existing PENDING PSC endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched regardless how the connection policy is modified . - If true, update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to the reject list. For newly created service attachment, this boolean defaults to false.", + "type": "boolean" + }, "region": { "description": "[Output Only] URL of the region where the service attachment resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", "type": "string" @@ -65067,6 +77431,10 @@ "targetService": { "description": "The URL of a service serving the endpoint identified by this service attachment.", "type": "string" + }, + "tunnelingConfig": { + "$ref": "ServiceAttachmentTunnelingConfig", + "description": "When a tunneling config is set on this service attachment it will encapsulate traffic between consumer and producer. When tunneling is enabled: - nat_subnets must be unset - enable_proxy_protocol must be false - producer_forwarding_rule must be a L4 ILB. - " } }, "type": "object" @@ -65123,6 +77491,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -65141,6 +77510,36 @@ "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.", @@ -65152,6 +77551,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -65203,6 +77603,10 @@ "description": "[Output Only] A connection connected to this service attachment.", "id": "ServiceAttachmentConnectedEndpoint", "properties": { + "consumerNetwork": { + "description": "The url of the consumer network.", + "type": "string" + }, "endpoint": { "description": "The url of a connected endpoint.", "type": "string" @@ -65297,6 +77701,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -65315,6 +77720,36 @@ "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.", @@ -65326,6 +77761,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -65373,6 +77809,39 @@ }, "type": "object" }, + "ServiceAttachmentTunnelingConfig": { + "description": "Use to configure this PSC connection in tunneling mode. In tunneling mode traffic from consumer to producer will be encapsulated as it crosses the VPC boundary and traffic from producer to consumer will be decapsulated in the same manner.", + "id": "ServiceAttachmentTunnelingConfig", + "properties": { + "encapsulationProfile": { + "description": "Specify the encapsulation protocol and what metadata to include in incoming encapsulated packet headers.", + "enum": [ + "GENEVE_SECURITY_V1", + "UNSPECIFIED_ENCAPSULATION_PROFILE" + ], + "enumDescriptions": [ + "Use GENEVE encapsulation protocol and include the SECURITY_V1 set of GENEVE headers.", + "" + ], + "type": "string" + }, + "routingMode": { + "description": "How this Service Attachment will treat traffic sent to the tunnel_ip, destined for the consumer network.", + "enum": [ + "PACKET_INJECTION", + "STANDARD_ROUTING", + "UNSPECIFIED_ROUTING_MODE" + ], + "enumDescriptions": [ + "Traffic sent to this service attachment will be reinjected into the consumer network.", + "Response traffic, after de-encapsulation, will be returned to the client.", + "" + ], + "type": "string" + } + }, + "type": "object" + }, "ServiceAttachmentsScopedList": { "id": "ServiceAttachmentsScopedList", "properties": { @@ -65399,6 +77868,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -65417,6 +77887,36 @@ "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.", @@ -65428,6 +77928,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -65475,6 +77976,53 @@ }, "type": "object" }, + "SetCommonInstanceMetadataOperationMetadata": { + "id": "SetCommonInstanceMetadataOperationMetadata", + "properties": { + "clientOperationId": { + "description": "[Output Only] The client operation id.", + "type": "string" + }, + "perLocationOperations": { + "additionalProperties": { + "$ref": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo" + }, + "description": "[Output Only] Status information per location (location name is key). Example key: zones/us-central1-a", + "type": "object" + } + }, + "type": "object" + }, + "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo": { + "id": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo", + "properties": { + "error": { + "$ref": "Status", + "description": "[Output Only] If state is `ABANDONED` or `FAILED`, this field is populated." + }, + "state": { + "description": "[Output Only] Status of the action, which can be one of the following: `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.", + "enum": [ + "ABANDONED", + "DONE", + "FAILED", + "PROPAGATED", + "PROPAGATING", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "Operation not tracked in this location e.g. zone is marked as DOWN.", + "Operation has completed successfully.", + "Operation is in an error state.", + "Operation is confirmed to be in the location.", + "Operation is not yet confirmed to have been created in the location.", + "" + ], + "type": "string" + } + }, + "type": "object" + }, "ShareSettings": { "description": "The share setting for reservations and sole tenancy node groups.", "id": "ShareSettings", @@ -65718,10 +78266,21 @@ "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" + }, "guestFlush": { "description": "[Input Only] Whether to attempt an application consistent snapshot by informing the OS to prepare for the snapshot process.", "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": { + "$ref": "GuestOsFeature" + }, + "type": "array" + }, "id": { "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", "format": "uint64", @@ -65766,6 +78325,7 @@ "name": { "annotations": { "required": [ + "compute.disks.createSnapshot", "compute.snapshots.insert" ] }, @@ -65773,6 +78333,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" @@ -65805,10 +78370,26 @@ "$ref": "CustomerEncryptionKey", "description": "The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key." }, + "sourceDiskForRecoveryCheckpoint": { + "description": "The source disk whose recovery checkpoint will be used to create this snapshot.", + "type": "string" + }, "sourceDiskId": { "description": "[Output Only] The ID value of the disk used to create this snapshot. This value may be used to determine whether the snapshot was taken from the current or a previous instance of a given disk name.", "type": "string" }, + "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" @@ -65913,6 +78494,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -65931,6 +78513,36 @@ "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.", @@ -65942,6 +78554,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -65989,6 +78602,56 @@ }, "type": "object" }, + "SnapshotSettings": { + "id": "SnapshotSettings", + "properties": { + "storageLocation": { + "$ref": "SnapshotSettingsStorageLocationSettings", + "description": "Policy of which storage location is going to be resolved, and additional data that particularizes how the policy is going to be carried out." + } + }, + "type": "object" + }, + "SnapshotSettingsStorageLocationSettings": { + "id": "SnapshotSettingsStorageLocationSettings", + "properties": { + "locations": { + "additionalProperties": { + "$ref": "SnapshotSettingsStorageLocationSettingsStorageLocationPreference" + }, + "description": "When the policy is SPECIFIC_LOCATIONS, snapshots will be stored in the locations listed in this field. Keys are GCS bucket locations.", + "type": "object" + }, + "policy": { + "description": "The chosen location policy.", + "enum": [ + "LOCAL_REGION", + "NEAREST_MULTI_REGION", + "SPECIFIC_LOCATIONS", + "STORAGE_LOCATION_POLICY_UNSPECIFIED" + ], + "enumDescriptions": [ + "Store snapshot in the same region as with the originating disk. No additional parameters are needed.", + "Store snapshot to the nearest multi region GCS bucket, relative to the originating disk. No additional parameters are needed.", + "Store snapshot in the specific locations, as specified by the user. The list of regions to store must be defined under the `locations` field.", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "SnapshotSettingsStorageLocationSettingsStorageLocationPreference": { + "description": "A structure for specifying storage locations.", + "id": "SnapshotSettingsStorageLocationSettingsStorageLocationPreference", + "properties": { + "name": { + "description": "Name of the location. It should be one of the GCS buckets.", + "type": "string" + } + }, + "type": "object" + }, "SourceDiskEncryptionKey": { "id": "SourceDiskEncryptionKey", "properties": { @@ -66120,7 +78783,7 @@ "type": "object" }, "SslCertificate": { - "description": "Represents an SSL Certificate resource. Google Compute Engine has two SSL Certificate resources: * [Global](/compute/docs/reference/rest/beta/sslCertificates) * [Regional](/compute/docs/reference/rest/beta/regionSslCertificates) The sslCertificates are used by: - external HTTPS load balancers - SSL proxy load balancers The regionSslCertificates are used by internal HTTPS load balancers. Optionally, certificate file contents that you upload can contain a set of up to five PEM-encoded certificates. The API call creates an object (sslCertificate) that holds this data. You can use SSL keys and certificates to secure connections to a load balancer. For more information, read Creating and using SSL certificates, SSL certificates quotas and limits, and Troubleshooting SSL certificates.", + "description": "Represents an SSL certificate resource. Google Compute Engine has two SSL certificate resources: * [Global](/compute/docs/reference/rest/beta/sslCertificates) * [Regional](/compute/docs/reference/rest/beta/regionSslCertificates) The global SSL certificates (sslCertificates) are used by: - Global external Application Load Balancers - Classic Application Load Balancers - Proxy Network Load Balancers (with target SSL proxies) The regional SSL certificates (regionSslCertificates) are used by: - Regional external Application Load Balancers - Regional internal Application Load Balancers Optionally, certificate file contents that you upload can contain a set of up to five PEM-encoded certificates. The API call creates an object (sslCertificate) that holds this data. You can use SSL keys and certificates to secure connections to a load balancer. For more information, read Creating and using SSL certificates, SSL certificates quotas and limits, and Troubleshooting SSL certificates.", "id": "SslCertificate", "properties": { "certificate": { @@ -66249,6 +78912,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -66267,6 +78931,36 @@ "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.", @@ -66278,6 +78972,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -66369,6 +79064,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -66387,6 +79083,36 @@ "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.", @@ -66398,6 +79124,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -66545,6 +79272,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -66563,6 +79291,36 @@ "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.", @@ -66574,6 +79332,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -66675,6 +79434,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -66693,6 +79453,36 @@ "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.", @@ -66704,6 +79494,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -66794,6 +79585,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -66812,6 +79604,36 @@ "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.", @@ -66823,6 +79645,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -66908,6 +79731,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -66926,6 +79750,36 @@ "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.", @@ -66937,6 +79791,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -66985,7 +79840,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": { @@ -67085,6 +79940,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -67103,6 +79959,36 @@ "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.", @@ -67114,6 +80000,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -67246,6 +80133,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" + }, "Subnetwork": { "description": "Represents a Subnetwork resource. A subnetwork (also known as a subnet) is a logical partition of a Virtual Private Cloud network with one primary IP range and zero or more secondary IP ranges. For more information, read Virtual Private Cloud (VPC) Network.", "id": "Subnetwork", @@ -67263,7 +80177,7 @@ "type": "string" }, "enableFlowLogs": { - "description": "Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. This field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.", + "description": "Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. This field isn't supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.", "type": "boolean" }, "externalIpv6Prefix": { @@ -67345,20 +80259,24 @@ "type": "string" }, "purpose": { - "description": "The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.", + "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", "PRIVATE", + "PRIVATE_NAT", "PRIVATE_RFC_1918", "PRIVATE_SERVICE_CONNECT", "REGIONAL_MANAGED_PROXY" ], "enumDescriptions": [ - "Subnet reserved for Internal HTTP(S) Load Balancing.", + "Subnet reserved for Global Envoy-based Load Balancing.", + "Subnet reserved for Internal HTTP(S) Load Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY instead.", "Regular user created or automatically created subnet.", + "Subnetwork used as source range for Private NAT Gateways.", "Regular user created or automatically created subnet.", "Subnetworks created for Private Service Connect in the producer network.", - "Subnetwork used for Regional Internal/External HTTP(S) Load Balancing." + "Subnetwork used for Regional Envoy-based Load Balancing." ], "type": "string" }, @@ -67371,7 +80289,7 @@ "type": "string" }, "role": { - "description": "The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.", + "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" @@ -67471,6 +80389,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -67489,6 +80408,36 @@ "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.", @@ -67500,6 +80449,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -67591,6 +80541,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -67609,6 +80560,36 @@ "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.", @@ -67620,6 +80601,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -67692,7 +80674,7 @@ "type": "string" }, "enable": { - "description": "Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled.", + "description": "Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. Flow logging isn't supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.", "type": "boolean" }, "filterExpr": { @@ -67783,6 +80765,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -67801,6 +80784,36 @@ "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.", @@ -67812,6 +80825,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -67904,7 +80918,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", @@ -68059,6 +81073,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -68077,6 +81092,36 @@ "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.", @@ -68088,6 +81133,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -68161,6 +81207,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -68179,6 +81226,36 @@ "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.", @@ -68190,6 +81267,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -68238,7 +81316,7 @@ "type": "object" }, "TargetHttpProxy": { - "description": "Represents a Target HTTP Proxy resource. Google Compute Engine has two Target HTTP Proxy resources: * [Global](/compute/docs/reference/rest/beta/targetHttpProxies) * [Regional](/compute/docs/reference/rest/beta/regionTargetHttpProxies) A target HTTP proxy is a component of GCP HTTP load balancers. * targetHttpProxies are used by external HTTP load balancers and Traffic Director. * regionTargetHttpProxies are used by internal HTTP load balancers. Forwarding rules reference a target HTTP proxy, and the target proxy then references a URL map. For more information, read Using Target Proxies and Forwarding rule concepts.", + "description": "Represents a Target HTTP Proxy resource. Google Compute Engine has two Target HTTP Proxy resources: * [Global](/compute/docs/reference/rest/beta/targetHttpProxies) * [Regional](/compute/docs/reference/rest/beta/regionTargetHttpProxies) A target HTTP proxy is a component of Google Cloud HTTP load balancers. * targetHttpProxies are used by global external Application Load Balancers, classic Application Load Balancers, cross-region internal Application Load Balancers, and Traffic Director. * regionTargetHttpProxies are used by regional internal Application Load Balancers and regional external Application Load Balancers. Forwarding rules reference a target HTTP proxy, and the target proxy then references a URL map. For more information, read Using Target Proxies and Forwarding rule concepts.", "id": "TargetHttpProxy", "properties": { "creationTimestamp": { @@ -68261,6 +81339,11 @@ }, "type": "array" }, + "httpKeepAliveTimeoutSec": { + "description": "Specifies how long to keep a connection open, after completing a response, while there is no matching traffic (in seconds). If an HTTP keep-alive is not specified, a default value (610 seconds) will be used. For global external Application Load Balancers, the minimum allowed value is 5 seconds and the maximum allowed value is 1200 seconds. For classic Application Load Balancers, this option is not supported.", + "format": "int32", + "type": "integer" + }, "id": { "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", "format": "uint64", @@ -68346,6 +81429,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -68364,6 +81448,36 @@ "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.", @@ -68375,6 +81489,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -68466,6 +81581,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -68484,6 +81600,36 @@ "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.", @@ -68495,6 +81641,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -68568,6 +81715,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -68586,6 +81734,36 @@ "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.", @@ -68597,6 +81775,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -68648,7 +81827,7 @@ "id": "TargetHttpsProxiesSetCertificateMapRequest", "properties": { "certificateMap": { - "description": "URL of the Certificate Map to associate with this TargetHttpsProxy.", + "description": "URL of the Certificate Map to associate with this TargetHttpsProxy. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" } }, @@ -68688,14 +81867,16 @@ "type": "object" }, "TargetHttpsProxy": { - "description": "Represents a Target HTTPS Proxy resource. Google Compute Engine has two Target HTTPS Proxy resources: * [Global](/compute/docs/reference/rest/beta/targetHttpsProxies) * [Regional](/compute/docs/reference/rest/beta/regionTargetHttpsProxies) A target HTTPS proxy is a component of GCP HTTPS load balancers. * targetHttpsProxies are used by external HTTPS load balancers. * regionTargetHttpsProxies are used by internal HTTPS load balancers. Forwarding rules reference a target HTTPS proxy, and the target proxy then references a URL map. For more information, read Using Target Proxies and Forwarding rule concepts.", + "description": "Represents a Target HTTPS Proxy resource. Google Compute Engine has two Target HTTPS Proxy resources: * [Global](/compute/docs/reference/rest/beta/targetHttpsProxies) * [Regional](/compute/docs/reference/rest/beta/regionTargetHttpsProxies) A target HTTPS proxy is a component of GCP HTTPS load balancers. * targetHttpProxies are used by global external Application Load Balancers, classic Application Load Balancers, cross-region internal Application Load Balancers, and Traffic Director. * regionTargetHttpProxies are used by regional internal Application Load Balancers and regional external Application Load Balancers. Forwarding rules reference a target HTTPS proxy, and the target proxy then references a URL map. For more information, read Using Target Proxies and Forwarding rule concepts.", "id": "TargetHttpsProxy", "properties": { "authentication": { + "deprecated": true, "description": "[Deprecated] Use serverTlsPolicy instead.", "type": "string" }, "authorization": { + "deprecated": true, "description": "[Deprecated] Use authorizationPolicy instead.", "type": "string" }, @@ -68704,7 +81885,7 @@ "type": "string" }, "certificateMap": { - "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored.", + "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" }, "creationTimestamp": { @@ -68727,6 +81908,11 @@ }, "type": "array" }, + "httpKeepAliveTimeoutSec": { + "description": "Specifies how long to keep a connection open, after completing a response, while there is no matching traffic (in seconds). If an HTTP keep-alive is not specified, a default value (610 seconds) will be used. For global external Application Load Balancers, the minimum allowed value is 5 seconds and the maximum allowed value is 1200 seconds. For classic Application Load Balancers, this option is not supported.", + "format": "int32", + "type": "integer" + }, "id": { "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", "format": "uint64", @@ -68769,7 +81955,7 @@ "type": "string" }, "serverTlsPolicy": { - "description": "Optional. A URL referring to a networksecurity.ServerTlsPolicy resource that describes how the proxy should authenticate inbound traffic. serverTlsPolicy only applies to a global TargetHttpsProxy attached to globalForwardingRules with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted. Note: This field currently has no impact.", + "description": "Optional. A URL referring to a networksecurity.ServerTlsPolicy resource that describes how the proxy should authenticate inbound traffic. serverTlsPolicy only applies to a global TargetHttpsProxy attached to globalForwardingRules with the loadBalancingScheme set to INTERNAL_SELF_MANAGED or EXTERNAL or EXTERNAL_MANAGED. For details which ServerTlsPolicy resources are accepted with INTERNAL_SELF_MANAGED and which with EXTERNAL, EXTERNAL_MANAGED loadBalancingScheme consult ServerTlsPolicy documentation. If left blank, communications are not encrypted.", "type": "string" }, "sslCertificates": { @@ -68841,6 +82027,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -68859,6 +82046,36 @@ "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.", @@ -68870,6 +82087,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -68961,6 +82179,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -68979,6 +82198,36 @@ "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.", @@ -68990,6 +82239,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -69082,6 +82332,10 @@ "description": "The URL of the network this target instance uses to forward traffic. If not specified, the traffic will be forwarded to the network that the default network interface belongs to.", "type": "string" }, + "securityPolicy": { + "description": "[Output Only] The resource URL for the security policy associated with this target instance.", + "type": "string" + }, "selfLink": { "description": "[Output Only] Server-defined URL for the resource.", "type": "string" @@ -69144,6 +82398,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -69162,6 +82417,36 @@ "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.", @@ -69173,6 +82458,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -69264,6 +82550,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -69282,6 +82569,36 @@ "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.", @@ -69293,6 +82610,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -69366,6 +82684,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -69384,6 +82703,36 @@ "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.", @@ -69395,6 +82744,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -69443,7 +82793,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": { @@ -69496,6 +82846,10 @@ "description": "[Output Only] URL of the region where the target pool resides.", "type": "string" }, + "securityPolicy": { + "description": "[Output Only] The resource URL for the security policy associated with this target pool.", + "type": "string" + }, "selfLink": { "description": "[Output Only] Server-defined URL for the resource.", "type": "string" @@ -69578,6 +82932,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -69596,6 +82951,36 @@ "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.", @@ -69607,6 +82992,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -69715,6 +83101,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -69733,6 +83120,36 @@ "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.", @@ -69744,6 +83161,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -69869,6 +83287,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -69887,6 +83306,36 @@ "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.", @@ -69898,6 +83347,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -69968,7 +83418,7 @@ "id": "TargetSslProxiesSetCertificateMapRequest", "properties": { "certificateMap": { - "description": "URL of the Certificate Map to associate with this TargetSslProxy.", + "description": "URL of the Certificate Map to associate with this TargetSslProxy. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" } }, @@ -70006,11 +83456,11 @@ "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": { - "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored.", + "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" }, "creationTimestamp": { @@ -70114,6 +83564,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -70132,6 +83583,36 @@ "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.", @@ -70143,6 +83624,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -70216,6 +83698,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -70234,6 +83717,36 @@ "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.", @@ -70245,6 +83758,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -70321,7 +83835,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": { @@ -70429,6 +83943,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -70447,6 +83962,36 @@ "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.", @@ -70458,6 +84003,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -70549,6 +84095,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -70567,6 +84114,36 @@ "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.", @@ -70578,6 +84155,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -70770,6 +84348,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -70788,6 +84367,36 @@ "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.", @@ -70799,6 +84408,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -70890,6 +84500,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -70908,6 +84519,36 @@ "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.", @@ -70919,6 +84560,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -70992,6 +84634,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -71010,6 +84653,36 @@ "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.", @@ -71021,6 +84694,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -71155,17 +84829,71 @@ }, "type": "object" }, + "UpcomingMaintenance": { + "description": "Upcoming Maintenance notification information.", + "id": "UpcomingMaintenance", + "properties": { + "canReschedule": { + "description": "Indicates if the maintenance can be customer triggered.", + "type": "boolean" + }, + "latestWindowStartTime": { + "description": "The latest time for the planned maintenance window to start. This timestamp value is in RFC3339 text format.", + "type": "string" + }, + "maintenanceStatus": { + "enum": [ + "ONGOING", + "PENDING", + "UNKNOWN" + ], + "enumDescriptions": [ + "There is ongoing maintenance on this VM.", + "There is pending maintenance.", + "Unknown maintenance status. Do not use this value." + ], + "type": "string" + }, + "type": { + "description": "Defines the type of maintenance.", + "enum": [ + "SCHEDULED", + "UNKNOWN_TYPE", + "UNSCHEDULED" + ], + "enumDescriptions": [ + "Scheduled maintenance (e.g. maintenance after uptime guarantee is complete).", + "No type specified. Do not use this value.", + "Unscheduled maintenance (e.g. emergency maintenance during uptime guarantee)." + ], + "type": "string" + }, + "windowEndTime": { + "description": "The time by which the maintenance disruption will be completed. This timestamp value is in RFC3339 text format.", + "type": "string" + }, + "windowStartTime": { + "description": "The current start time of the maintenance window. This timestamp value is in RFC3339 text format.", + "type": "string" + } + }, + "type": "object" + }, "UrlMap": { - "description": "Represents a URL Map resource. Compute Engine has two URL Map resources: * [Global](/compute/docs/reference/rest/beta/urlMaps) * [Regional](/compute/docs/reference/rest/beta/regionUrlMaps) A URL map resource is a component of certain types of cloud load balancers and Traffic Director: * urlMaps are used by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used by internal HTTP(S) load balancers. For a list of supported URL map features by the load balancer type, see the Load balancing features: Routing and traffic management table. For a list of supported URL map features for Traffic Director, see the Traffic Director features: Routing and traffic management table. This resource defines mappings from hostnames and URL paths to either a backend service or a backend bucket. To use the global urlMaps resource, the backend service must have a loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For more information, read URL Map Concepts.", + "description": "Represents a URL Map resource. Compute Engine has two URL Map resources: * [Global](/compute/docs/reference/rest/beta/urlMaps) * [Regional](/compute/docs/reference/rest/beta/regionUrlMaps) A URL map resource is a component of certain types of cloud load balancers and Traffic Director: * urlMaps are used by global external Application Load Balancers, classic Application Load Balancers, and cross-region internal Application Load Balancers. * regionUrlMaps are used by internal Application Load Balancers, regional external Application Load Balancers and regional internal Application Load Balancers. For a list of supported URL map features by the load balancer type, see the Load balancing features: Routing and traffic management table. For a list of supported URL map features for Traffic Director, see the Traffic Director features: Routing and traffic management table. This resource defines mappings from hostnames and URL paths to either a backend service or a backend bucket. To use the global urlMaps resource, the backend service must have a loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For more information, read URL Map Concepts.", "id": "UrlMap", "properties": { "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" }, + "defaultCustomErrorResponsePolicy": { + "$ref": "CustomErrorResponsePolicy", + "description": "defaultCustomErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. This policy takes effect at the load balancer level and applies only when no policy has been defined for the error code at lower levels like PathMatcher, RouteRule and PathRule within this UrlMap. For example, consider a UrlMap with the following configuration: - defaultCustomErrorResponsePolicy containing policies for responding to 5xx and 4xx errors - A PathMatcher configured for *.example.com has defaultCustomErrorResponsePolicy for 4xx. If a request for http://www.example.com/ encounters a 404, the policy in pathMatcher.defaultCustomErrorResponsePolicy will be enforced. When the request for http://www.example.com/ encounters a 502, the policy in UrlMap.defaultCustomErrorResponsePolicy will be enforced. When a request that does not match any host in *.example.com such as http://www.myotherexample.com/, encounters a 404, UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in conjunction with defaultRouteAction.retryPolicy, retries take precedence. Only once all retries are exhausted, the defaultCustomErrorResponsePolicy is applied. While attempting a retry, if load balancer is successful in reaching the service, the defaultCustomErrorResponsePolicy is ignored and the response from the service is returned to the client. defaultCustomErrorResponsePolicy is supported only for global external Application Load Balancers." + }, "defaultRouteAction": { "$ref": "HttpRouteAction", - "description": "defaultRouteAction takes effect when none of the hostRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within defaultRouteAction. defaultRouteAction has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." + "description": "defaultRouteAction takes effect when none of the hostRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within defaultRouteAction. defaultRouteAction has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." }, "defaultService": { "description": "The full or partial URL of the defaultService resource to which traffic is directed if none of the hostRules match. If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. defaultService has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", @@ -71279,6 +85007,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -71297,6 +85026,36 @@ "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.", @@ -71308,6 +85067,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -71496,6 +85256,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -71514,6 +85275,36 @@ "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.", @@ -71525,6 +85316,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -71598,6 +85390,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -71616,6 +85409,36 @@ "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.", @@ -71627,6 +85450,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -71678,7 +85502,7 @@ "id": "UrlMapsValidateRequest", "properties": { "loadBalancingSchemes": { - "description": "Specifies the load balancer type(s) this validation request is for. Use EXTERNAL_MANAGED for HTTP/HTTPS External Global Load Balancer with Advanced Traffic Management. Use EXTERNAL for Classic HTTP/HTTPS External Global Load Balancer. Other load balancer types are not supported. For more information, refer to Choosing a load balancer. If unspecified, the load balancing scheme will be inferred from the backend service resources this URL map references. If that can not be inferred (for example, this URL map only references backend buckets, or this Url map is for rewrites and redirects only and doesn't reference any backends), EXTERNAL will be used as the default type. If specified, the scheme(s) must not conflict with the load balancing scheme of the backend service resources this Url map references.", + "description": "Specifies the load balancer type(s) this validation request is for. Use EXTERNAL_MANAGED for global external Application Load Balancers and regional external Application Load Balancers. Use EXTERNAL for classic Application Load Balancers. Use INTERNAL_MANAGED for internal Application Load Balancers. For more information, refer to Choosing a load balancer. If unspecified, the load balancing scheme will be inferred from the backend service resources this URL map references. If that can not be inferred (for example, this URL map only references backend buckets, or this Url map is for rewrites and redirects only and doesn't reference any backends), EXTERNAL will be used as the default type. If specified, the scheme(s) must not conflict with the load balancing scheme of the backend service resources this Url map references.", "items": { "enum": [ "EXTERNAL", @@ -71686,9 +85510,9 @@ "LOAD_BALANCING_SCHEME_UNSPECIFIED" ], "enumDescriptions": [ - "Signifies that this will be used for Classic L7 External Load Balancing.", - "Signifies that this will be used for Envoy-based L7 External Load Balancing.", - "If unspecified, the validation will try to infer the scheme from the backend service resources this Url map references. If the inferrence is not possible, EXTERNAL will be used as the default type." + "Signifies that this will be used for classic Application Load Balancers.", + "Signifies that this will be used for Envoy-based global external Application Load Balancers.", + "If unspecified, the validation will try to infer the scheme from the backend service resources this Url map references. If the inference is not possible, EXTERNAL will be used as the default type." ], "type": "string" }, @@ -71762,25 +85586,29 @@ "type": "string" }, "purpose": { - "description": "The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.", + "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", "PRIVATE", + "PRIVATE_NAT", "PRIVATE_RFC_1918", "PRIVATE_SERVICE_CONNECT", "REGIONAL_MANAGED_PROXY" ], "enumDescriptions": [ - "Subnet reserved for Internal HTTP(S) Load Balancing.", + "Subnet reserved for Global Envoy-based Load Balancing.", + "Subnet reserved for Internal HTTP(S) Load Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY instead.", "Regular user created or automatically created subnet.", + "Subnetwork used as source range for Private NAT Gateways.", "Regular user created or automatically created subnet.", "Subnetworks created for Private Service Connect in the producer network.", - "Subnetwork used for Regional Internal/External HTTP(S) Load Balancing." + "Subnetwork used for Regional Envoy-based Load Balancing." ], "type": "string" }, "role": { - "description": "The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.", + "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" @@ -71875,6 +85703,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -71893,6 +85722,36 @@ "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.", @@ -71904,6 +85763,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -72109,6 +85969,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -72127,6 +85988,36 @@ "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.", @@ -72138,6 +86029,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -72197,6 +86089,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", @@ -72208,7 +86112,7 @@ "type": "string" }, "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this VpnGateway, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an VpnGateway.", + "description": "A fingerprint for the labels being applied to this VpnGateway, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a VpnGateway.", "format": "byte", "type": "string" }, @@ -72250,11 +86154,13 @@ "description": "The stack type for this VPN gateway to identify the IP protocols that are enabled. Possible values are: IPV4_ONLY, IPV4_IPV6. If not specified, IPV4_ONLY will be used.", "enum": [ "IPV4_IPV6", - "IPV4_ONLY" + "IPV4_ONLY", + "IPV6_ONLY" ], "enumDescriptions": [ "Enable VPN gateway with both IPv4 and IPv6 protocols.", - "Enable VPN gateway with only IPv4 protocol." + "Enable VPN gateway with only IPv4 protocol.", + "Enable VPN gateway with only IPv6 protocol." ], "type": "string" }, @@ -72319,6 +86225,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -72337,6 +86244,36 @@ "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.", @@ -72348,6 +86285,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -72439,6 +86377,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -72457,6 +86396,36 @@ "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.", @@ -72468,6 +86437,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -72567,7 +86537,7 @@ "type": "integer" }, "peerGatewayInterface": { - "description": "The peer gateway interface this VPN tunnel is connected to, the peer gateway could either be an external VPN gateway or GCP VPN gateway.", + "description": "The peer gateway interface this VPN tunnel is connected to, the peer gateway could either be an external VPN gateway or a Google Cloud VPN gateway.", "format": "uint32", "type": "integer" }, @@ -72579,7 +86549,7 @@ "type": "object" }, "VpnGatewayStatusVpnConnection": { - "description": "A VPN connection contains all VPN tunnels connected from this VpnGateway to the same peer gateway. The peer gateway could either be a external VPN gateway or GCP VPN gateway.", + "description": "A VPN connection contains all VPN tunnels connected from this VpnGateway to the same peer gateway. The peer gateway could either be an external VPN gateway or a Google Cloud VPN gateway.", "id": "VpnGatewayStatusVpnConnection", "properties": { "peerExternalGateway": { @@ -72620,6 +86590,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" @@ -72659,6 +86633,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -72677,6 +86652,36 @@ "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.", @@ -72688,6 +86693,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -72805,7 +86811,7 @@ "type": "integer" }, "peerGcpGateway": { - "description": "URL of the peer side HA GCP VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created. This field can be used when creating highly available VPN from VPC network to VPC network, the field is exclusive with the field peerExternalGateway. If provided, the VPN tunnel will automatically use the same vpnGatewayInterface ID in the peer GCP VPN gateway.", + "description": "URL of the peer side HA VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created. This field can be used when creating highly available VPN from VPC network to VPC network, the field is exclusive with the field peerExternalGateway. If provided, the VPN tunnel will automatically use the same vpnGatewayInterface ID in the peer Google Cloud VPN gateway.", "type": "string" }, "peerIp": { @@ -72940,6 +86946,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -72958,6 +86965,36 @@ "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.", @@ -72969,6 +87006,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -73060,6 +87098,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -73078,6 +87117,36 @@ "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.", @@ -73089,6 +87158,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -73162,6 +87232,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -73180,6 +87251,36 @@ "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.", @@ -73191,6 +87292,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -73268,6 +87370,11 @@ "id": { "description": "Expression ID should uniquely identify the origin of the expression. E.g. owasp-crs-v020901-id973337 identifies Owasp core rule set version 2.9.1 rule id 973337. The ID could be used to determine the individual attack definition that has been detected. It could also be used to exclude it from the policy in case of false positive. required", "type": "string" + }, + "sensitivity": { + "description": "The sensitivity value associated with the WAF rule ID. This corresponds to the ModSecurity paranoia level, ranging from 1 to 4. 0 is reserved for opt-in only rules.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -73335,6 +87442,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -73353,6 +87461,36 @@ "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.", @@ -73364,6 +87502,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -73542,6 +87681,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -73560,6 +87700,36 @@ "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.", @@ -73571,6 +87741,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", diff --git a/etc/api/compute/v1/compute-api.json b/etc/api/compute/v1/compute-api.json index a32c854ad2..61076e0c56 100644 --- a/etc/api/compute/v1/compute-api.json +++ b/etc/api/compute/v1/compute-api.json @@ -126,7 +126,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", @@ -135,7 +135,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -170,9 +170,15 @@ "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/acceleratorTypes", @@ -239,7 +245,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -269,7 +275,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" }, @@ -296,7 +302,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", @@ -305,7 +311,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -340,9 +346,15 @@ "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/addresses", @@ -498,7 +510,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -535,7 +547,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" } @@ -550,6 +562,56 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "move": { + "description": "Moves the specified address resource.", + "flatPath": "projects/{project}/regions/{region}/addresses/{address}/move", + "httpMethod": "POST", + "id": "compute.addresses.move", + "parameterOrder": [ + "project", + "region", + "address" + ], + "parameters": { + "address": { + "description": "Name of the address resource to move.", + "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": "Source project ID which the Address is moved from.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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}/addresses/{address}/move", + "request": { + "$ref": "RegionAddressesMoveRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setLabels": { "description": "Sets the labels on an Address. To learn more about labels, read the Labeling Resources documentation.", "flatPath": "projects/{project}/regions/{region}/addresses/{resource}/setLabels", @@ -605,7 +667,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", @@ -614,7 +676,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -649,9 +711,15 @@ "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/autoscalers", @@ -712,7 +780,7 @@ ] }, "get": { - "description": "Returns the specified autoscaler resource. Gets a list of available autoscalers by making a list() request.", + "description": "Returns the specified autoscaler resource.", "flatPath": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", "httpMethod": "GET", "id": "compute.autoscalers.get", @@ -807,7 +875,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -837,7 +905,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" }, @@ -1085,7 +1153,7 @@ ] }, "get": { - "description": "Returns the specified BackendBucket resource. Gets a list of available backend buckets by making a list() request.", + "description": "Returns the specified BackendBucket resource.", "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", "httpMethod": "GET", "id": "compute.backendBuckets.get", @@ -1119,6 +1187,47 @@ "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}/global/backendBuckets/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.backendBuckets.getIamPolicy", + "parameterOrder": [ + "project", + "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" + }, + "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}/global/backendBuckets/{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 a BackendBucket resource in the specified project using the data included in the request.", "flatPath": "projects/{project}/global/backendBuckets", @@ -1163,7 +1272,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1193,7 +1302,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" } @@ -1261,7 +1370,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" @@ -1291,6 +1400,81 @@ "https://www.googleapis.com/auth/compute" ] }, + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "flatPath": "projects/{project}/global/backendBuckets/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.backendBuckets.setIamPolicy", + "parameterOrder": [ + "project", + "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" + } + }, + "path": "projects/{project}/global/backendBuckets/{resource}/setIamPolicy", + "request": { + "$ref": "GlobalSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "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}/global/backendBuckets/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.backendBuckets.testIamPermissions", + "parameterOrder": [ + "project", + "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" + } + }, + "path": "projects/{project}/global/backendBuckets/{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" + ] + }, "update": { "description": "Updates the specified BackendBucket resource with the data included in the request.", "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", @@ -1379,7 +1563,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", @@ -1388,7 +1572,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1423,9 +1607,15 @@ "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/backendServices", @@ -1523,7 +1713,7 @@ ] }, "get": { - "description": "Returns the specified BackendService resource. Gets a list of available backend services.", + "description": "Returns the specified BackendService resource.", "flatPath": "projects/{project}/global/backendServices/{backendService}", "httpMethod": "GET", "id": "compute.backendServices.get", @@ -1679,7 +1869,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1709,7 +1899,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" } @@ -1724,6 +1914,61 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "listUsable": { + "description": "Retrieves an aggregated list of all usable backend services in the specified project.", + "flatPath": "projects/{project}/global/backendServices/listUsable", + "httpMethod": "GET", + "id": "compute.backendServices.listUsable", + "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" + }, + "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" + } + }, + "path": "projects/{project}/global/backendServices/listUsable", + "response": { + "$ref": "BackendServiceListUsable" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "patch": { "description": "Patches the specified BackendService resource with the data included in the request. For more information, see Backend services overview. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", "flatPath": "projects/{project}/global/backendServices/{backendService}", @@ -1885,6 +2130,44 @@ "https://www.googleapis.com/auth/compute" ] }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/global/backendServices/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.backendServices.testIamPermissions", + "parameterOrder": [ + "project", + "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" + } + }, + "path": "projects/{project}/global/backendServices/{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" + ] + }, "update": { "description": "Updates the specified BackendService resource with the data included in the request. For more information, see Backend services overview.", "flatPath": "projects/{project}/global/backendServices/{backendService}", @@ -1932,7 +2215,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", @@ -1941,7 +2224,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1976,9 +2259,15 @@ "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/diskTypes", @@ -1992,7 +2281,7 @@ ] }, "get": { - "description": "Returns the specified disk type. Gets a list of available disk types by making a list() request.", + "description": "Returns the specified disk type.", "flatPath": "projects/{project}/zones/{zone}/diskTypes/{diskType}", "httpMethod": "GET", "id": "compute.diskTypes.get", @@ -2045,7 +2334,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -2075,7 +2364,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" }, @@ -2152,7 +2441,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", @@ -2161,7 +2450,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -2196,9 +2485,15 @@ "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/disks", @@ -2211,6 +2506,48 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "bulkInsert": { + "description": "Bulk create a set of disks.", + "flatPath": "projects/{project}/zones/{zone}/disks/bulkInsert", + "httpMethod": "POST", + "id": "compute.disks.bulkInsert", + "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" + }, + "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}/disks/bulkInsert", + "request": { + "$ref": "BulkInsertDiskResource" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "createSnapshot": { "description": "Creates a snapshot of a specified persistent disk. For regular snapshot creation, consider using snapshots.insert instead, as that method supports more features, such as creating snapshots in a project different from the source disk project.", "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot", @@ -2313,7 +2650,7 @@ ] }, "get": { - "description": "Returns a specified persistent disk. Gets a list of available persistent disks by making a list() request.", + "description": "Returns the specified persistent disk.", "flatPath": "projects/{project}/zones/{zone}/disks/{disk}", "httpMethod": "GET", "id": "compute.disks.get", @@ -2462,7 +2799,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -2492,7 +2829,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" }, @@ -2709,6 +3046,145 @@ "https://www.googleapis.com/auth/compute" ] }, + "startAsyncReplication": { + "description": "Starts asynchronous replication. Must be invoked on the primary disk.", + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/startAsyncReplication", + "httpMethod": "POST", + "id": "compute.disks.startAsyncReplication", + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "parameters": { + "disk": { + "description": "The name of the persistent disk.", + "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}/disks/{disk}/startAsyncReplication", + "request": { + "$ref": "DisksStartAsyncReplicationRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "stopAsyncReplication": { + "description": "Stops asynchronous replication. Can be invoked either on the primary or on the secondary disk.", + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/stopAsyncReplication", + "httpMethod": "POST", + "id": "compute.disks.stopAsyncReplication", + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "parameters": { + "disk": { + "description": "The name of the persistent disk.", + "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}/disks/{disk}/stopAsyncReplication", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "stopGroupAsyncReplication": { + "description": "Stops asynchronous replication for a consistency group of disks. Can be invoked either in the primary or secondary scope.", + "flatPath": "projects/{project}/zones/{zone}/disks/stopGroupAsyncReplication", + "httpMethod": "POST", + "id": "compute.disks.stopGroupAsyncReplication", + "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" + }, + "zone": { + "description": "The name of the zone for this request. This must be the zone of the primary or secondary disks in the consistency group.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/disks/stopGroupAsyncReplication", + "request": { + "$ref": "DisksStopGroupAsyncReplicationResource" + }, + "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}/disks/{resource}/testIamPermissions", @@ -2754,6 +3230,67 @@ "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] + }, + "update": { + "description": "Updates the specified disk with the data included in the request. The update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: user_license.", + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}", + "httpMethod": "PATCH", + "id": "compute.disks.update", + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "parameters": { + "disk": { + "description": "The disk 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" + }, + "paths": { + "location": "query", + "repeated": 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" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "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}/disks/{disk}", + "request": { + "$ref": "Disk" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, @@ -2877,7 +3414,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -2907,7 +3444,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" } @@ -3302,7 +3839,7 @@ "id": "compute.firewallPolicies.list", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -3325,12 +3862,12 @@ "type": "string" }, "parentId": { - "description": "Parent ID for this request.", + "description": "Parent ID for this request. The ID can be either be \"folders/[FOLDER_ID]\" if the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the parent is an organization.", "location": "query", "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -3384,7 +3921,7 @@ "type": "string" }, "parentId": { - "description": "The new parent of the firewall policy.", + "description": "The new parent of the firewall policy. The ID can be either be \"folders/[FOLDER_ID]\" if the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the parent is an organization.", "location": "query", "type": "string" }, @@ -3731,7 +4268,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -3761,7 +4298,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 +4402,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", @@ -3874,7 +4411,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -3909,9 +4446,15 @@ "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/forwardingRules", @@ -4067,7 +4610,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -4104,7 +4647,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" } @@ -4313,7 +4856,7 @@ ] }, "get": { - "description": "Returns the specified address resource. Gets a list of available addresses by making a list() request.", + "description": "Returns the specified address resource.", "flatPath": "projects/{project}/global/addresses/{address}", "httpMethod": "GET", "id": "compute.globalAddresses.get", @@ -4391,7 +4934,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -4421,7 +4964,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" } @@ -4436,6 +4979,48 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "move": { + "description": "Moves the specified address resource from one project to another project.", + "flatPath": "projects/{project}/global/addresses/{address}/move", + "httpMethod": "POST", + "id": "compute.globalAddresses.move", + "parameterOrder": [ + "project", + "address" + ], + "parameters": { + "address": { + "description": "Name of the address resource to move.", + "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": "Source project ID which the Address is moved from.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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}/global/addresses/{address}/move", + "request": { + "$ref": "GlobalAddressesMoveRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setLabels": { "description": "Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling Resources documentation.", "flatPath": "projects/{project}/global/addresses/{resource}/setLabels", @@ -4595,7 +5180,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -4625,7 +5210,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" } @@ -4886,7 +5471,7 @@ ] }, "get": { - "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.", + "description": "Returns the specified network endpoint group.", "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}", "httpMethod": "GET", "id": "compute.globalNetworkEndpointGroups.get", @@ -4963,7 +5548,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -4993,7 +5578,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" } @@ -5019,7 +5604,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -5055,7 +5640,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" } @@ -5075,7 +5660,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", @@ -5084,7 +5669,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -5119,9 +5704,15 @@ "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/operations", @@ -5210,7 +5801,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -5240,7 +5831,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" } @@ -5361,7 +5952,7 @@ "id": "compute.globalOrganizationOperations.list", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -5389,7 +5980,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" } @@ -5526,7 +6117,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -5556,7 +6147,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" } @@ -5618,7 +6209,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", @@ -5627,7 +6218,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -5662,9 +6253,15 @@ "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/healthChecks", @@ -5717,7 +6314,7 @@ ] }, "get": { - "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.", + "description": "Returns the specified HealthCheck resource.", "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", "httpMethod": "GET", "id": "compute.healthChecks.get", @@ -5795,7 +6392,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -5825,7 +6422,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" } @@ -5968,7 +6565,7 @@ ] }, "get": { - "description": "Returns the specified HttpHealthCheck resource. Gets a list of available HTTP health checks by making a list() request.", + "description": "Returns the specified HttpHealthCheck resource.", "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", "httpMethod": "GET", "id": "compute.httpHealthChecks.get", @@ -6046,7 +6643,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -6076,7 +6673,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" } @@ -6219,7 +6816,7 @@ ] }, "get": { - "description": "Returns the specified HttpsHealthCheck resource. Gets a list of available HTTPS health checks by making a list() request.", + "description": "Returns the specified HttpsHealthCheck resource.", "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", "httpMethod": "GET", "id": "compute.httpsHealthChecks.get", @@ -6297,7 +6894,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -6327,7 +6924,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" } @@ -6559,7 +7156,7 @@ ] }, "get": { - "description": "Returns the specified image. Gets a list of available images by making a list() request.", + "description": "Returns the specified image.", "flatPath": "projects/{project}/global/images/{image}", "httpMethod": "GET", "id": "compute.images.get", @@ -6594,7 +7191,7 @@ ] }, "getFromFamily": { - "description": "Returns the latest image that is part of an image family and is not deprecated.", + "description": "Returns the latest image that is part of an image family and is not deprecated. For more information on image families, see Public image families documentation.", "flatPath": "projects/{project}/global/images/family/{family}", "httpMethod": "GET", "id": "compute.images.getFromFamily", @@ -6611,7 +7208,7 @@ "type": "string" }, "project": { - "description": "Project ID for this request.", + "description": "The image project that the image belongs to. For example, to get a CentOS image, specify centos-cloud as the image project.", "location": "path", "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", "required": true, @@ -6721,7 +7318,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -6751,7 +7348,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" } @@ -6973,7 +7570,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", @@ -6982,7 +7579,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -7017,9 +7614,15 @@ "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/instanceGroupManagers", @@ -7260,7 +7863,7 @@ ] }, "get": { - "description": "Returns all of the details about the specified managed instance group. Gets a list of available managed instance groups by making a list() request.", + "description": "Returns all of the details about the specified managed instance group.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", "httpMethod": "GET", "id": "compute.instanceGroupManagers.get", @@ -7352,7 +7955,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -7382,7 +7985,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" }, @@ -7415,7 +8018,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -7451,7 +8054,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" }, @@ -7473,7 +8076,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", @@ -7484,7 +8087,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -7520,7 +8123,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" }, @@ -7553,7 +8156,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -7589,7 +8192,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" }, @@ -8004,7 +8607,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", @@ -8013,7 +8616,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -8048,9 +8651,15 @@ "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/instanceGroups", @@ -8201,7 +8810,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -8231,7 +8840,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" }, @@ -8264,7 +8873,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -8300,7 +8909,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" }, @@ -8424,6 +9033,72 @@ }, "instanceTemplates": { "methods": { + "aggregatedList": { + "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", + "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": "Name of the project scoping 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/instanceTemplates", + "response": { + "$ref": "InstanceTemplateAggregatedList" + }, + "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 instance template. Deleting an instance template is permanent and cannot be undone. It is not possible to delete templates that are already in use by a managed instance group.", "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}", @@ -8464,7 +9139,7 @@ ] }, "get": { - "description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request.", + "description": "Returns the specified instance template.", "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}", "httpMethod": "GET", "id": "compute.instanceTemplates.get", @@ -8583,7 +9258,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -8613,7 +9288,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" } @@ -8815,7 +9490,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", @@ -8824,7 +9499,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -8859,9 +9534,15 @@ "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/instances", @@ -9134,7 +9815,7 @@ ] }, "get": { - "description": "Returns the specified Instance resource. Gets a list of available instances by making a list() request.", + "description": "Returns the specified Instance resource.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}", "httpMethod": "GET", "id": "compute.instances.get", @@ -9535,7 +10216,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -9565,7 +10246,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" }, @@ -9599,7 +10280,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -9636,7 +10317,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" }, @@ -9658,6 +10339,53 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "performMaintenance": { + "description": "Perform a manual maintenance on the instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/performMaintenance", + "httpMethod": "POST", + "id": "compute.instances.performMaintenance", + "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}/performMaintenance", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "removeResourcePolicies": { "description": "Removes resource policies from an instance.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies", @@ -10251,6 +10979,56 @@ "https://www.googleapis.com/auth/compute" ] }, + "setName": { + "description": "Sets name of an instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setName", + "httpMethod": "POST", + "id": "compute.instances.setName", + "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}/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", @@ -10301,6 +11079,55 @@ "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", @@ -10476,6 +11303,16 @@ "required": true, "type": "string" }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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", @@ -10602,7 +11439,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" }, @@ -10654,7 +11491,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" }, @@ -11040,19 +11877,19 @@ } } }, - "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" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -11087,9 +11924,470 @@ "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/instantSnapshots", + "response": { + "$ref": "InstantSnapshotAggregatedList" + }, + "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 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.instantSnapshots.delete", + "parameterOrder": [ + "project", + "zone", + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request 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}/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 zone.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}", + "httpMethod": "GET", + "id": "compute.instantSnapshots.get", + "parameterOrder": [ + "project", + "zone", + "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" + }, + "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/{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}/zones/{zone}/instantSnapshots/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.instantSnapshots.getIamPolicy", + "parameterOrder": [ + "project", + "zone", + "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" + }, + "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" + }, + "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}/zones/{zone}/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 zone.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots", + "httpMethod": "GET", + "id": "compute.instantSnapshots.list", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" + }, + "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" + } + }, + "path": "projects/{project}/zones/{zone}/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}/zones/{zone}/instantSnapshots/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.instantSnapshots.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}/instantSnapshots/{resource}/setIamPolicy", + "request": { + "$ref": "ZoneSetPolicyRequest" + }, + "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 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", @@ -11250,7 +12548,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -11287,7 +12585,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" } @@ -11451,7 +12749,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -11481,7 +12779,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" } @@ -11498,6 +12796,100 @@ } } }, + "interconnectRemoteLocations": { + "methods": { + "get": { + "description": "Returns the details for the specified interconnect remote location. Gets a list of available interconnect remote locations by making a list() request.", + "flatPath": "projects/{project}/global/interconnectRemoteLocations/{interconnectRemoteLocation}", + "httpMethod": "GET", + "id": "compute.interconnectRemoteLocations.get", + "parameterOrder": [ + "project", + "interconnectRemoteLocation" + ], + "parameters": { + "interconnectRemoteLocation": { + "description": "Name of the interconnect remote location 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" + } + }, + "path": "projects/{project}/global/interconnectRemoteLocations/{interconnectRemoteLocation}", + "response": { + "$ref": "InterconnectRemoteLocation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "description": "Retrieves the list of interconnect remote locations available to the specified project.", + "flatPath": "projects/{project}/global/interconnectRemoteLocations", + "httpMethod": "GET", + "id": "compute.interconnectRemoteLocations.list", + "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" + }, + "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" + } + }, + "path": "projects/{project}/global/interconnectRemoteLocations", + "response": { + "$ref": "InterconnectRemoteLocationList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, "interconnects": { "methods": { "delete": { @@ -11575,7 +12967,7 @@ ] }, "getDiagnostics": { - "description": "Returns the interconnectDiagnostics for the specified Interconnect.", + "description": "Returns the interconnectDiagnostics for the specified Interconnect. In the event of a global outage, do not use this API to make decisions about where to redirect your network traffic. Unlike a VLAN attachment, which is regional, a Cloud Interconnect connection is a global resource. A global outage can prevent this API from functioning properly.", "flatPath": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics", "httpMethod": "GET", "id": "compute.interconnects.getDiagnostics", @@ -11609,6 +13001,41 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "getMacsecConfig": { + "description": "Returns the interconnectMacsecConfig for the specified Interconnect.", + "flatPath": "projects/{project}/global/interconnects/{interconnect}/getMacsecConfig", + "httpMethod": "GET", + "id": "compute.interconnects.getMacsecConfig", + "parameterOrder": [ + "project", + "interconnect" + ], + "parameters": { + "interconnect": { + "description": "Name of the interconnect resource to query.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "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" + } + }, + "path": "projects/{project}/global/interconnects/{interconnect}/getMacsecConfig", + "response": { + "$ref": "InterconnectsGetMacsecConfigResponse" + }, + "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 Interconnect in the specified project using the data included in the request.", "flatPath": "projects/{project}/global/interconnects", @@ -11653,7 +13080,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -11683,7 +13110,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" } @@ -12020,7 +13447,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -12050,7 +13477,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" } @@ -12184,7 +13611,7 @@ ] }, "get": { - "description": "Returns the specified machine image. Gets a list of available machine images by making a list() request.", + "description": "Returns the specified machine image.", "flatPath": "projects/{project}/global/machineImages/{machineImage}", "httpMethod": "GET", "id": "compute.machineImages.get", @@ -12308,7 +13735,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -12338,7 +13765,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" } @@ -12433,7 +13860,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", @@ -12442,7 +13869,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -12477,9 +13904,15 @@ "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/machineTypes", @@ -12493,7 +13926,7 @@ ] }, "get": { - "description": "Returns the specified machine type. Gets a list of available machine types by making a list() request.", + "description": "Returns the specified machine type.", "flatPath": "projects/{project}/zones/{zone}/machineTypes/{machineType}", "httpMethod": "GET", "id": "compute.machineTypes.get", @@ -12546,7 +13979,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -12576,7 +14009,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" }, @@ -12603,7 +14036,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", @@ -12612,7 +14045,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -12647,9 +14080,15 @@ "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/networkAttachments", @@ -12854,7 +14293,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -12891,7 +14330,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" } @@ -12906,6 +14345,56 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "patch": { + "description": "Patches the specified NetworkAttachment resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "httpMethod": "PATCH", + "id": "compute.networkAttachments.patch", + "parameterOrder": [ + "project", + "region", + "networkAttachment" + ], + "parameters": { + "networkAttachment": { + "description": "Name of the NetworkAttachment resource to patch.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "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). end_interface: MixerMutationRequestBuilder", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "request": { + "$ref": "NetworkAttachment" + }, + "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}/regions/{region}/networkAttachments/{resource}/setIamPolicy", @@ -13002,7 +14491,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", @@ -13011,7 +14500,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -13046,9 +14535,15 @@ "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/networkEdgeSecurityServices", @@ -13264,7 +14759,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", @@ -13273,7 +14768,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -13308,9 +14803,15 @@ "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/networkEndpointGroups", @@ -13465,7 +14966,7 @@ ] }, "get": { - "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.", + "description": "Returns the specified network endpoint group.", "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", "httpMethod": "GET", "id": "compute.networkEndpointGroups.get", @@ -13557,7 +15058,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -13587,7 +15088,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" }, @@ -13620,7 +15121,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -13656,7 +15157,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" }, @@ -14115,7 +15616,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -14145,7 +15646,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" } @@ -14500,7 +16001,7 @@ ] }, "get": { - "description": "Returns the specified network. Gets a list of available networks by making a list() request.", + "description": "Returns the specified network.", "flatPath": "projects/{project}/global/networks/{network}", "httpMethod": "GET", "id": "compute.networks.get", @@ -14613,7 +16114,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -14643,7 +16144,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" } @@ -14682,7 +16183,7 @@ "type": "string" }, "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -14729,7 +16230,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" } @@ -14964,7 +16465,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", @@ -14973,7 +16474,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -15008,9 +16509,15 @@ "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/nodeGroups", @@ -15273,7 +16780,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -15303,7 +16810,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" }, @@ -15337,7 +16844,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -15374,7 +16881,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" }, @@ -15541,6 +17048,56 @@ "https://www.googleapis.com/auth/compute" ] }, + "simulateMaintenanceEvent": { + "description": "Simulates maintenance event on specified nodes from the node group.", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/simulateMaintenanceEvent", + "httpMethod": "POST", + "id": "compute.nodeGroups.simulateMaintenanceEvent", + "parameterOrder": [ + "project", + "zone", + "nodeGroup" + ], + "parameters": { + "nodeGroup": { + "description": "Name of the NodeGroup resource whose nodes will go under maintenance simulation.", + "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}/nodeGroups/{nodeGroup}/simulateMaintenanceEvent", + "request": { + "$ref": "NodeGroupsSimulateMaintenanceEventRequest" + }, + "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}/nodeGroups/{resource}/testIamPermissions", @@ -15592,7 +17149,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", @@ -15601,7 +17158,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -15636,9 +17193,15 @@ "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/nodeTemplates", @@ -15699,7 +17262,7 @@ ] }, "get": { - "description": "Returns the specified node template. Gets a list of available node templates by making a list() request.", + "description": "Returns the specified node template.", "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", "httpMethod": "GET", "id": "compute.nodeTemplates.get", @@ -15843,7 +17406,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -15880,7 +17443,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" } @@ -15991,7 +17554,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", @@ -16000,7 +17563,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -16035,9 +17598,15 @@ "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/nodeTypes", @@ -16051,7 +17620,7 @@ ] }, "get": { - "description": "Returns the specified node type. Gets a list of available node types by making a list() request.", + "description": "Returns the specified node type.", "flatPath": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}", "httpMethod": "GET", "id": "compute.nodeTypes.get", @@ -16104,7 +17673,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -16134,7 +17703,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" }, @@ -16161,7 +17730,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", @@ -16170,7 +17739,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -16205,9 +17774,15 @@ "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/packetMirrorings", @@ -16363,7 +17938,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -16400,7 +17975,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" } @@ -16708,7 +18283,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -16738,7 +18313,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" } @@ -16762,7 +18337,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -16792,7 +18367,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" } @@ -16844,7 +18419,8 @@ ] }, "moveInstance": { - "description": "Moves an instance and its attached persistent disks from one zone to another. *Note*: Moving VMs or disks by using this method might cause unexpected behavior. For more information, see the [known issue](/compute/docs/troubleshooting/known-issues#moving_vms_or_disks_using_the_moveinstance_api_or_the_causes_unexpected_behavior).", + "deprecated": true, + "description": "Moves an instance and its attached persistent disks from one zone to another. *Note*: Moving VMs or disks by using this method might cause unexpected behavior. For more information, see the [known issue](/compute/docs/troubleshooting/known-issues#moving_vms_or_disks_using_the_moveinstance_api_or_the_causes_unexpected_behavior). [Deprecated] This method is deprecated. See [moving instance across zones](/compute/docs/instances/moving-instance-across-zones) instead.", "flatPath": "projects/{project}/moveInstance", "httpMethod": "POST", "id": "compute.projects.moveInstance", @@ -16877,6 +18453,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", @@ -16986,6 +18596,44 @@ }, "publicAdvertisedPrefixes": { "methods": { + "announce": { + "description": "Announces the specified PublicAdvertisedPrefix", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/announce", + "httpMethod": "POST", + "id": "compute.publicAdvertisedPrefixes.announce", + "parameterOrder": [ + "project", + "publicAdvertisedPrefix" + ], + "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" + }, + "publicAdvertisedPrefix": { + "description": "The name of the public advertised prefix. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/announce", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "delete": { "description": "Deletes the specified PublicAdvertisedPrefix", "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", @@ -17104,7 +18752,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -17134,7 +18782,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" } @@ -17190,13 +18838,51 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] + }, + "withdraw": { + "description": "Withdraws the specified PublicAdvertisedPrefix", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/withdraw", + "httpMethod": "POST", + "id": "compute.publicAdvertisedPrefixes.withdraw", + "parameterOrder": [ + "project", + "publicAdvertisedPrefix" + ], + "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" + }, + "publicAdvertisedPrefix": { + "description": "The name of the public advertised prefix. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/withdraw", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, "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", @@ -17205,7 +18891,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -17240,9 +18926,15 @@ "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/publicDelegatedPrefixes", @@ -17255,6 +18947,51 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "announce": { + "description": "Announces the specified PublicDelegatedPrefix in the given region.", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/announce", + "httpMethod": "POST", + "id": "compute.publicDelegatedPrefixes.announce", + "parameterOrder": [ + "project", + "region", + "publicDelegatedPrefix" + ], + "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" + }, + "publicDelegatedPrefix": { + "description": "The name of the public delegated prefix. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region where the public delegated prefix is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/announce", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "delete": { "description": "Deletes the specified PublicDelegatedPrefix in the given region.", "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", @@ -17398,7 +19135,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -17435,7 +19172,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" } @@ -17499,6 +19236,51 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] + }, + "withdraw": { + "description": "Withdraws the specified PublicDelegatedPrefix in the given region.", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/withdraw", + "httpMethod": "POST", + "id": "compute.publicDelegatedPrefixes.withdraw", + "parameterOrder": [ + "project", + "region", + "publicDelegatedPrefix" + ], + "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" + }, + "publicDelegatedPrefix": { + "description": "The name of the public delegated prefix. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region where the public delegated prefix is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/withdraw", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, @@ -17647,7 +19429,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -17684,7 +19466,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" } @@ -18036,7 +19818,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -18073,7 +19855,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" } @@ -18088,6 +19870,68 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "listUsable": { + "description": "Retrieves an aggregated list of all usable backend services in the specified project in the given region.", + "flatPath": "projects/{project}/regions/{region}/backendServices/listUsable", + "httpMethod": "GET", + "id": "compute.regionBackendServices.listUsable", + "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 scoping this request. It must be a string that meets the requirements in RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/backendServices/listUsable", + "response": { + "$ref": "BackendServiceListUsable" + }, + "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 regional BackendService resource with the data included in the request. For more information, see Understanding backend services This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", @@ -18183,6 +20027,101 @@ "https://www.googleapis.com/auth/compute" ] }, + "setSecurityPolicy": { + "description": "Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview", + "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}/setSecurityPolicy", + "httpMethod": "POST", + "id": "compute.regionBackendServices.setSecurityPolicy", + "parameterOrder": [ + "project", + "region", + "backendService" + ], + "parameters": { + "backendService": { + "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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}/backendServices/{backendService}/setSecurityPolicy", + "request": { + "$ref": "SecurityPolicyReference" + }, + "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}/backendServices/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.regionBackendServices.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}/backendServices/{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" + ] + }, "update": { "description": "Updates the specified regional BackendService resource with the data included in the request. For more information, see Backend services overview .", "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", @@ -18238,7 +20177,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", @@ -18247,7 +20186,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -18282,9 +20221,15 @@ "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/commitments", @@ -18298,7 +20243,7 @@ ] }, "get": { - "description": "Returns the specified commitment resource. Gets a list of available commitments by making a list() request.", + "description": "Returns the specified commitment resource.", "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}", "httpMethod": "GET", "id": "compute.regionCommitments.get", @@ -18393,7 +20338,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -18430,7 +20375,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" } @@ -18511,7 +20456,7 @@ "regionDiskTypes": { "methods": { "get": { - "description": "Returns the specified regional disk type. Gets a list of available disk types by making a list() request.", + "description": "Returns the specified regional disk type.", "flatPath": "projects/{project}/regions/{region}/diskTypes/{diskType}", "httpMethod": "GET", "id": "compute.regionDiskTypes.get", @@ -18564,7 +20509,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -18601,7 +20546,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" } @@ -18670,6 +20615,48 @@ "https://www.googleapis.com/auth/compute" ] }, + "bulkInsert": { + "description": "Bulk create a set of disks.", + "flatPath": "projects/{project}/regions/{region}/disks/bulkInsert", + "httpMethod": "POST", + "id": "compute.regionDisks.bulkInsert", + "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": "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}/disks/bulkInsert", + "request": { + "$ref": "BulkInsertDiskResource" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "createSnapshot": { "description": "Creates a snapshot of a specified persistent disk. For regular snapshot creation, consider using snapshots.insert instead, as that method supports more features, such as creating snapshots in a project different from the source disk project.", "flatPath": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot", @@ -18916,7 +20903,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -18953,7 +20940,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" } @@ -19163,6 +21150,145 @@ "https://www.googleapis.com/auth/compute" ] }, + "startAsyncReplication": { + "description": "Starts asynchronous replication. Must be invoked on the primary disk.", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/startAsyncReplication", + "httpMethod": "POST", + "id": "compute.regionDisks.startAsyncReplication", + "parameterOrder": [ + "project", + "region", + "disk" + ], + "parameters": { + "disk": { + "description": "The name of the persistent disk.", + "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}/disks/{disk}/startAsyncReplication", + "request": { + "$ref": "RegionDisksStartAsyncReplicationRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "stopAsyncReplication": { + "description": "Stops asynchronous replication. Can be invoked either on the primary or on the secondary disk.", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/stopAsyncReplication", + "httpMethod": "POST", + "id": "compute.regionDisks.stopAsyncReplication", + "parameterOrder": [ + "project", + "region", + "disk" + ], + "parameters": { + "disk": { + "description": "The name of the persistent disk.", + "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}/disks/{disk}/stopAsyncReplication", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "stopGroupAsyncReplication": { + "description": "Stops asynchronous replication for a consistency group of disks. Can be invoked either in the primary or secondary scope.", + "flatPath": "projects/{project}/regions/{region}/disks/stopGroupAsyncReplication", + "httpMethod": "POST", + "id": "compute.regionDisks.stopGroupAsyncReplication", + "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": "The name of the region for this request. This must be the region of the primary or secondary disks in the consistency group.", + "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}/disks/stopGroupAsyncReplication", + "request": { + "$ref": "DisksStopGroupAsyncReplicationResource" + }, + "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}/disks/{resource}/testIamPermissions", @@ -19208,6 +21334,67 @@ "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] + }, + "update": { + "description": "Update the specified disk with the data included in the request. Update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: user_license.", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}", + "httpMethod": "PATCH", + "id": "compute.regionDisks.update", + "parameterOrder": [ + "project", + "region", + "disk" + ], + "parameters": { + "disk": { + "description": "The disk 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" + }, + "paths": { + "location": "query", + "repeated": 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" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/disks/{disk}", + "request": { + "$ref": "Disk" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, @@ -19354,7 +21541,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -19391,7 +21578,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" } @@ -19507,7 +21694,7 @@ ] }, "get": { - "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.", + "description": "Returns the specified HealthCheck resource.", "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", "httpMethod": "GET", "id": "compute.regionHealthChecks.get", @@ -19602,7 +21789,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -19639,7 +21826,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" } @@ -20126,7 +22313,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -20162,7 +22349,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" } @@ -20189,7 +22376,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -20231,7 +22418,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" } @@ -20247,7 +22434,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", @@ -20258,7 +22445,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -20300,7 +22487,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" } @@ -20327,7 +22514,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -20369,7 +22556,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" } @@ -20782,7 +22969,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -20818,7 +23005,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" } @@ -20845,7 +23032,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -20887,7 +23074,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" } @@ -20955,6 +23142,205 @@ } } }, + "regionInstanceTemplates": { + "methods": { + "delete": { + "description": "Deletes the specified instance template. Deleting an instance template is permanent and cannot be undone.", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", + "httpMethod": "DELETE", + "id": "compute.regionInstanceTemplates.delete", + "parameterOrder": [ + "project", + "region", + "instanceTemplate" + ], + "parameters": { + "instanceTemplate": { + "description": "The name of the instance template 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}/instanceTemplates/{instanceTemplate}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified instance template.", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", + "httpMethod": "GET", + "id": "compute.regionInstanceTemplates.get", + "parameterOrder": [ + "project", + "region", + "instanceTemplate" + ], + "parameters": { + "instanceTemplate": { + "description": "The name of the instance template.", + "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}/instanceTemplates/{instanceTemplate}", + "response": { + "$ref": "InstanceTemplate" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates an instance template in the specified project and region using the global instance template whose URL is included in the request.", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates", + "httpMethod": "POST", + "id": "compute.regionInstanceTemplates.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": "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}/instanceTemplates", + "request": { + "$ref": "InstanceTemplate" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves a list of instance templates that are contained within the specified project and region.", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates", + "httpMethod": "GET", + "id": "compute.regionInstanceTemplates.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 regions 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}/instanceTemplates", + "response": { + "$ref": "InstanceTemplateList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, "regionInstances": { "methods": { "bulkInsert": { @@ -21001,8 +23387,445 @@ } } }, + "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": { + "description": "Attach a list of network endpoints to the specified network endpoint group.", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "httpMethod": "POST", + "id": "compute.regionNetworkEndpointGroups.attachNetworkEndpoints", + "parameterOrder": [ + "project", + "region", + "networkEndpointGroup" + ], + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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 where you want to create the network endpoint group. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "request": { + "$ref": "RegionNetworkEndpointGroupsAttachEndpointsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "delete": { "description": "Deletes the specified network endpoint group. Note that the NEG cannot be deleted if it is configured as a backend of a backend service.", "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", @@ -21048,8 +23871,56 @@ "https://www.googleapis.com/auth/compute" ] }, + "detachNetworkEndpoints": { + "description": "Detach the network endpoint from the specified network endpoint group.", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "httpMethod": "POST", + "id": "compute.regionNetworkEndpointGroups.detachNetworkEndpoints", + "parameterOrder": [ + "project", + "region", + "networkEndpointGroup" + ], + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group you are detaching network endpoints from. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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 where the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "request": { + "$ref": "RegionNetworkEndpointGroupsDetachEndpointsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "get": { - "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.", + "description": "Returns the specified network endpoint group.", "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", "httpMethod": "GET", "id": "compute.regionNetworkEndpointGroups.get", @@ -21141,7 +24012,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -21177,7 +24048,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" } @@ -21191,6 +24062,75 @@ "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] + }, + "listNetworkEndpoints": { + "description": "Lists the network endpoints in the specified network endpoint group.", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "httpMethod": "POST", + "id": "compute.regionNetworkEndpointGroups.listNetworkEndpoints", + "parameterOrder": [ + "project", + "region", + "networkEndpointGroup" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" + }, + "networkEndpointGroup": { + "description": "The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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 where the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "response": { + "$ref": "NetworkEndpointGroupsListNetworkEndpoints" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] } } }, @@ -21696,7 +24636,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -21733,7 +24673,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" } @@ -22197,7 +25137,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -22234,7 +25174,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" } @@ -22346,7 +25286,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -22383,7 +25323,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" } @@ -22445,6 +25385,56 @@ }, "regionSecurityPolicies": { "methods": { + "addRule": { + "description": "Inserts a rule into a security policy.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule", + "httpMethod": "POST", + "id": "compute.regionSecurityPolicies.addRule", + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule", + "request": { + "$ref": "SecurityPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "delete": { "description": "Deletes the specified policy.", "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", @@ -22535,6 +25525,55 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "getRule": { + "description": "Gets a rule at the specified priority.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/getRule", + "httpMethod": "GET", + "id": "compute.regionSecurityPolicies.getRule", + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "parameters": { + "priority": { + "description": "The priority of the rule to get from the security policy.", + "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": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to which the queried rule belongs.", + "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}/securityPolicies/{securityPolicy}/getRule", + "response": { + "$ref": "SecurityPolicyRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "insert": { "description": "Creates a new policy in the specified project using the data included in the request.", "flatPath": "projects/{project}/regions/{region}/securityPolicies", @@ -22593,7 +25632,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -22630,7 +25669,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" } @@ -22646,7 +25685,7 @@ ] }, "patch": { - "description": "Patches the specified policy with the data included in the request. To clear fields in the rule, 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.", + "description": "Patches the specified policy with the data included in the request. To clear fields in the policy, leave the fields empty and specify them in the updateMask. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead.", "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", "httpMethod": "PATCH", "id": "compute.regionSecurityPolicies.patch", @@ -22681,6 +25720,12 @@ "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" + }, + "updateMask": { + "description": "Indicates fields to be cleared as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" } }, "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", @@ -22694,6 +25739,116 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] + }, + "patchRule": { + "description": "Patches a rule at the specified priority. To clear fields in the rule, leave the fields empty and specify them in the updateMask.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule", + "httpMethod": "POST", + "id": "compute.regionSecurityPolicies.patchRule", + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "parameters": { + "priority": { + "description": "The priority of the rule to patch.", + "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": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Indicates fields to be cleared as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule", + "request": { + "$ref": "SecurityPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "removeRule": { + "description": "Deletes a rule at the specified priority.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule", + "httpMethod": "POST", + "id": "compute.regionSecurityPolicies.removeRule", + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "parameters": { + "priority": { + "description": "The priority of the rule to remove from the security policy.", + "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": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, @@ -22842,7 +25997,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -22879,7 +26034,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" } @@ -23039,7 +26194,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -23076,7 +26231,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" } @@ -23102,7 +26257,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -23139,7 +26294,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" } @@ -23255,7 +26410,7 @@ ] }, "get": { - "description": "Returns the specified TargetHttpProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.", + "description": "Returns the specified TargetHttpProxy resource in the specified region.", "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", "httpMethod": "GET", "id": "compute.regionTargetHttpProxies.get", @@ -23350,7 +26505,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -23387,7 +26542,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" } @@ -23504,7 +26659,7 @@ ] }, "get": { - "description": "Returns the specified TargetHttpsProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.", + "description": "Returns the specified TargetHttpsProxy resource in the specified region.", "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", "httpMethod": "GET", "id": "compute.regionTargetHttpsProxies.get", @@ -23599,7 +26754,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -23636,7 +26791,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" } @@ -23948,7 +27103,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -23985,7 +27140,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" } @@ -24052,7 +27207,7 @@ ] }, "get": { - "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.", + "description": "Returns the specified UrlMap resource.", "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", "httpMethod": "GET", "id": "compute.regionUrlMaps.get", @@ -24147,7 +27302,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -24184,7 +27339,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" } @@ -24346,10 +27501,77 @@ } } }, + "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": { - "description": "Returns the specified Region resource. Gets a list of available regions by making a list() request. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the `quotas` field). To exclude one or more fields, set your request's `fields` query parameter to only include the fields you need. For example, to only include the `id` and `selfLink` fields, add the query parameter `?fields=id,selfLink` to your request.", + "description": "Returns the specified Region resource. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the `quotas` field). To exclude one or more fields, set your request's `fields` query parameter to only include the fields you need. For example, to only include the `id` and `selfLink` fields, add the query parameter `?fields=id,selfLink` to your request.", "flatPath": "projects/{project}/regions/{region}", "httpMethod": "GET", "id": "compute.regions.get", @@ -24393,7 +27615,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -24423,7 +27645,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" } @@ -24443,7 +27665,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", @@ -24452,7 +27674,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -24487,9 +27709,15 @@ "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/reservations", @@ -24694,7 +27922,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -24724,7 +27952,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" }, @@ -24953,7 +28181,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", @@ -24962,7 +28190,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -24997,9 +28225,15 @@ "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/resourcePolicies", @@ -25204,7 +28438,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -25241,7 +28475,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" } @@ -25256,6 +28490,62 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "patch": { + "description": "Modify the specified resource policy.", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", + "httpMethod": "PATCH", + "id": "compute.resourcePolicies.patch", + "parameterOrder": [ + "project", + "region", + "resourcePolicy" + ], + "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" + }, + "resourcePolicy": { + "description": "Id of the resource policy 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" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", + "request": { + "$ref": "ResourcePolicy" + }, + "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}/regions/{region}/resourcePolicies/{resource}/setIamPolicy", @@ -25352,7 +28642,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", @@ -25361,7 +28651,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -25396,9 +28686,15 @@ "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/routers", @@ -25459,7 +28755,7 @@ ] }, "get": { - "description": "Returns the specified Router resource. Gets a list of available routers by making a list() request.", + "description": "Returns the specified Router resource.", "flatPath": "projects/{project}/regions/{region}/routers/{router}", "httpMethod": "GET", "id": "compute.routers.get", @@ -25501,6 +28797,53 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "getNatIpInfo": { + "description": "Retrieves runtime NAT IP information.", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatIpInfo", + "httpMethod": "GET", + "id": "compute.routers.getNatIpInfo", + "parameterOrder": [ + "project", + "region", + "router" + ], + "parameters": { + "natName": { + "description": "Name of the nat service to filter the NAT IP information. If it is omitted, all nats for this router will be returned. Name should conform to RFC1035.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-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" + }, + "router": { + "description": "Name of the Router resource to query for Nat IP information. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/routers/{router}/getNatIpInfo", + "response": { + "$ref": "NatIpInfoResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "getNatMappingInfo": { "description": "Retrieves runtime Nat mapping information of VM endpoints.", "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo", @@ -25513,7 +28856,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -25525,6 +28868,11 @@ "minimum": "0", "type": "integer" }, + "natName": { + "description": "Name of the nat service to filter the Nat Mapping information. If it is omitted, all nats for this router will be returned. Name should conform to RFC1035.", + "location": "query", + "type": "string" + }, "orderBy": { "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", "location": "query", @@ -25550,7 +28898,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" }, @@ -25668,7 +29016,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -25705,7 +29053,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" } @@ -25910,7 +29258,7 @@ ] }, "get": { - "description": "Returns the specified Route resource. Gets a list of available routes by making a list() request.", + "description": "Returns the specified Route resource.", "flatPath": "projects/{project}/global/routes/{route}", "httpMethod": "GET", "id": "compute.routes.get", @@ -25988,7 +29336,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -26018,7 +29366,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" } @@ -26080,7 +29428,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", @@ -26089,7 +29437,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -26124,9 +29472,15 @@ "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/securityPolicies", @@ -26303,7 +29657,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -26333,7 +29687,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" } @@ -26358,7 +29712,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -26388,7 +29742,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" } @@ -26404,7 +29758,7 @@ ] }, "patch": { - "description": "Patches the specified policy with the data included in the request. To clear fields in the rule, 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.", + "description": "Patches the specified policy with the data included in the request. To clear fields in the policy, leave the fields empty and specify them in the updateMask. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead.", "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", "httpMethod": "PATCH", "id": "compute.securityPolicies.patch", @@ -26431,6 +29785,12 @@ "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" + }, + "updateMask": { + "description": "Indicates fields to be cleared as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" } }, "path": "projects/{project}/global/securityPolicies/{securityPolicy}", @@ -26446,7 +29806,7 @@ ] }, "patchRule": { - "description": "Patches a rule at the specified priority.", + "description": "Patches a rule at the specified priority. To clear fields in the rule, leave the fields empty and specify them in the updateMask.", "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule", "httpMethod": "POST", "id": "compute.securityPolicies.patchRule", @@ -26475,6 +29835,12 @@ "required": true, "type": "string" }, + "updateMask": { + "description": "Indicates fields to be cleared as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, "validateOnly": { "description": "If true, the request will not be committed.", "location": "query", @@ -26575,7 +29941,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", @@ -26584,7 +29950,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -26619,9 +29985,15 @@ "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/serviceAttachments", @@ -26826,7 +30198,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -26863,7 +30235,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" } @@ -27019,6 +30391,77 @@ } } }, + "snapshotSettings": { + "methods": { + "get": { + "description": "Get snapshot settings.", + "flatPath": "projects/{project}/global/snapshotSettings", + "httpMethod": "GET", + "id": "compute.snapshotSettings.get", + "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" + } + }, + "path": "projects/{project}/global/snapshotSettings", + "response": { + "$ref": "SnapshotSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patch snapshot settings.", + "flatPath": "projects/{project}/global/snapshotSettings", + "httpMethod": "PATCH", + "id": "compute.snapshotSettings.patch", + "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" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/snapshotSettings", + "request": { + "$ref": "SnapshotSettings" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, "snapshots": { "methods": { "delete": { @@ -27061,7 +30504,7 @@ ] }, "get": { - "description": "Returns the specified Snapshot resource. Gets a list of available snapshots by making a list() request.", + "description": "Returns the specified Snapshot resource.", "flatPath": "projects/{project}/global/snapshots/{snapshot}", "httpMethod": "GET", "id": "compute.snapshots.get", @@ -27180,7 +30623,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -27210,7 +30653,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" } @@ -27342,7 +30785,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", @@ -27351,7 +30794,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -27386,9 +30829,15 @@ "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/sslCertificates", @@ -27441,7 +30890,7 @@ ] }, "get": { - "description": "Returns the specified SslCertificate resource. Gets a list of available SSL certificates by making a list() request.", + "description": "Returns the specified SslCertificate resource.", "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}", "httpMethod": "GET", "id": "compute.sslCertificates.get", @@ -27519,7 +30968,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -27549,7 +30998,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" } @@ -27569,7 +31018,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", @@ -27578,7 +31027,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -27613,9 +31062,15 @@ "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/sslPolicies", @@ -27701,7 +31156,7 @@ ] }, "insert": { - "description": "Returns the specified SSL policy resource. Gets a list of available SSL policies by making a list() request.", + "description": "Returns the specified SSL policy resource.", "flatPath": "projects/{project}/global/sslPolicies", "httpMethod": "POST", "id": "compute.sslPolicies.insert", @@ -27744,7 +31199,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -27774,7 +31229,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" } @@ -27799,7 +31254,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -27829,7 +31284,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" } @@ -27890,7 +31345,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", @@ -27899,7 +31354,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -27934,9 +31389,15 @@ "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/subnetworks", @@ -28047,7 +31508,7 @@ ] }, "get": { - "description": "Returns the specified subnetwork. Gets a list of available subnetworks list() request.", + "description": "Returns the specified subnetwork.", "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", "httpMethod": "GET", "id": "compute.subnetworks.get", @@ -28191,7 +31652,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -28228,7 +31689,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" } @@ -28253,7 +31714,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -28283,7 +31744,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" } @@ -28617,7 +32078,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -28647,7 +32108,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" } @@ -28709,7 +32170,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", @@ -28718,7 +32179,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -28753,9 +32214,15 @@ "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/targetHttpProxies", @@ -28808,7 +32275,7 @@ ] }, "get": { - "description": "Returns the specified TargetHttpProxy resource. Gets a list of available target HTTP proxies by making a list() request.", + "description": "Returns the specified TargetHttpProxy resource.", "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", "httpMethod": "GET", "id": "compute.targetHttpProxies.get", @@ -28886,7 +32353,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -28916,7 +32383,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" } @@ -29020,7 +32487,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", @@ -29029,7 +32496,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -29064,9 +32531,15 @@ "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/targetHttpsProxies", @@ -29119,7 +32592,7 @@ ] }, "get": { - "description": "Returns the specified TargetHttpsProxy resource. Gets a list of available target HTTPS proxies by making a list() request.", + "description": "Returns the specified TargetHttpsProxy resource.", "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", "httpMethod": "GET", "id": "compute.targetHttpsProxies.get", @@ -29197,7 +32670,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -29227,7 +32700,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" } @@ -29496,7 +32969,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", @@ -29505,7 +32978,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -29540,9 +33013,15 @@ "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/targetInstances", @@ -29603,7 +33082,7 @@ ] }, "get": { - "description": "Returns the specified TargetInstance resource. Gets a list of available target instances by making a list() request.", + "description": "Returns the specified TargetInstance resource.", "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", "httpMethod": "GET", "id": "compute.targetInstances.get", @@ -29698,7 +33177,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -29728,7 +33207,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" }, @@ -29749,6 +33228,55 @@ "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] + }, + "setSecurityPolicy": { + "description": "Sets the Google Cloud Armor security policy for the specified target instance. For more information, see Google Cloud Armor Overview", + "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}/setSecurityPolicy", + "httpMethod": "POST", + "id": "compute.targetInstances.setSecurityPolicy", + "parameterOrder": [ + "project", + "zone", + "targetInstance" + ], + "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" + }, + "targetInstance": { + "description": "Name of the TargetInstance resource to which the security policy should be set. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}/setSecurityPolicy", + "request": { + "$ref": "SecurityPolicyReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, @@ -29855,7 +33383,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", @@ -29864,7 +33392,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -29899,9 +33427,15 @@ "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/targetPools", @@ -29962,7 +33496,7 @@ ] }, "get": { - "description": "Returns the specified target pool. Gets a list of available target pools by making a list() request.", + "description": "Returns the specified target pool.", "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}", "httpMethod": "GET", "id": "compute.targetPools.get", @@ -30103,7 +33637,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -30140,7 +33674,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" } @@ -30310,6 +33844,55 @@ "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 target pool. For more information, see Google Cloud Armor Overview", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/setSecurityPolicy", + "httpMethod": "POST", + "id": "compute.targetPools.setSecurityPolicy", + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "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 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" + }, + "targetPool": { + "description": "Name of the TargetPool resource to which the security policy should be set. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setSecurityPolicy", + "request": { + "$ref": "SecurityPolicyReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, @@ -30355,7 +33938,7 @@ ] }, "get": { - "description": "Returns the specified TargetSslProxy resource. Gets a list of available target SSL proxies by making a list() request.", + "description": "Returns the specified TargetSslProxy resource.", "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}", "httpMethod": "GET", "id": "compute.targetSslProxies.get", @@ -30433,7 +34016,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -30463,7 +34046,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" } @@ -30646,7 +34229,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", @@ -30691,7 +34274,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", @@ -30700,7 +34283,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -30735,9 +34318,15 @@ "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/targetTcpProxies", @@ -30790,7 +34379,7 @@ ] }, "get": { - "description": "Returns the specified TargetTcpProxy resource. Gets a list of available target TCP proxies by making a list() request.", + "description": "Returns the specified TargetTcpProxy resource.", "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", "httpMethod": "GET", "id": "compute.targetTcpProxies.get", @@ -30868,7 +34457,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -30898,7 +34487,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" } @@ -31002,7 +34591,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", @@ -31011,7 +34600,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -31046,9 +34635,15 @@ "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/targetVpnGateways", @@ -31109,7 +34704,7 @@ ] }, "get": { - "description": "Returns the specified target VPN gateway. Gets a list of available target VPN gateways by making a list() request.", + "description": "Returns the specified target VPN gateway.", "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", "httpMethod": "GET", "id": "compute.targetVpnGateways.get", @@ -31204,7 +34799,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -31241,7 +34836,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" } @@ -31311,7 +34906,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", @@ -31320,7 +34915,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -31355,9 +34950,15 @@ "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/urlMaps", @@ -31410,7 +35011,7 @@ ] }, "get": { - "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.", + "description": "Returns the specified UrlMap resource.", "flatPath": "projects/{project}/global/urlMaps/{urlMap}", "httpMethod": "GET", "id": "compute.urlMaps.get", @@ -31530,7 +35131,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -31560,7 +35161,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" } @@ -31701,7 +35302,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", @@ -31710,7 +35311,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -31745,9 +35346,15 @@ "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/vpnGateways", @@ -31808,7 +35415,7 @@ ] }, "get": { - "description": "Returns the specified VPN gateway. Gets a list of available VPN gateways by making a list() request.", + "description": "Returns the specified VPN gateway.", "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", "httpMethod": "GET", "id": "compute.vpnGateways.get", @@ -31946,7 +35553,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -31983,7 +35590,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" } @@ -32099,7 +35706,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", @@ -32108,7 +35715,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -32143,9 +35750,15 @@ "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/vpnTunnels", @@ -32206,7 +35819,7 @@ ] }, "get": { - "description": "Returns the specified VpnTunnel resource. Gets a list of available VPN tunnels by making a list() request.", + "description": "Returns the specified VpnTunnel resource.", "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", "httpMethod": "GET", "id": "compute.vpnTunnels.get", @@ -32301,7 +35914,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -32338,7 +35951,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" } @@ -32500,7 +36113,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -32530,7 +36143,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" }, @@ -32600,7 +36213,7 @@ "zones": { "methods": { "get": { - "description": "Returns the specified Zone resource. Gets a list of available zones by making a list() request.", + "description": "Returns the specified Zone resource.", "flatPath": "projects/{project}/zones/{zone}", "httpMethod": "GET", "id": "compute.zones.get", @@ -32644,7 +36257,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -32674,7 +36287,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" } @@ -32692,9 +36305,32 @@ } } }, - "revision": "20230103", + "revision": "20240218", "rootUrl": "https://compute.googleapis.com/", "schemas": { + "AWSV4Signature": { + "description": "Contains the configurations necessary to generate a signature for access to private storage buckets that support Signature Version 4 for authentication. The service name for generating the authentication header will always default to 's3'.", + "id": "AWSV4Signature", + "properties": { + "accessKey": { + "description": "The access key used for s3 bucket authentication. Required for updating or creating a backend that uses AWS v4 signature authentication, but will not be returned as part of the configuration when queried with a REST API GET request. @InputOnly", + "type": "string" + }, + "accessKeyId": { + "description": "The identifier of an access key used for s3 bucket authentication.", + "type": "string" + }, + "accessKeyVersion": { + "description": "The optional version identifier for the access key. You can use this to keep track of different iterations of your access key.", + "type": "string" + }, + "originRegion": { + "description": "The name of the cloud region of your origin. This is a free-form field with the name of the region your cloud uses to host your origin. For example, \"us-east-1\" for AWS or \"us-ashburn-1\" for OCI.", + "type": "string" + } + }, + "type": "object" + }, "AcceleratorConfig": { "description": "A specification of the type and number of accelerator cards attached to the instance.", "id": "AcceleratorConfig", @@ -32809,6 +36445,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -32827,6 +36464,36 @@ "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.", @@ -32838,6 +36505,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -32929,6 +36597,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -32947,6 +36616,36 @@ "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.", @@ -32958,6 +36657,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -33031,6 +36731,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -33049,6 +36750,36 @@ "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.", @@ -33060,6 +36791,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -33112,11 +36844,11 @@ "id": "AccessConfig", "properties": { "externalIpv6": { - "description": "The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.", + "description": "Applies to ipv6AccessConfigs only. The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.", "type": "string" }, "externalIpv6PrefixLength": { - "description": "The prefix length of the external IPv6 range.", + "description": "Applies to ipv6AccessConfigs only. The prefix length of the external IPv6 range.", "format": "int32", "type": "integer" }, @@ -33126,11 +36858,11 @@ "type": "string" }, "name": { - "description": "The name of this access configuration. The default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access.", + "description": "The name of this access configuration. In accessConfigs (IPv4), the default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access. In ipv6AccessConfigs, the recommend name is External IPv6.", "type": "string" }, "natIP": { - "description": "An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.", + "description": "Applies to accessConfigs (IPv4) only. An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.", "type": "string" }, "networkTier": { @@ -33153,13 +36885,16 @@ "description": "The DNS domain name for the public PTR record. You can set this field only if the `setPublicPtr` field is enabled in accessConfig. If this field is unspecified in ipv6AccessConfig, a default PTR record will be createc for first IP in associated external IPv6 range.", "type": "string" }, + "securityPolicy": { + "description": "[Output Only] The resource URL for the security policy associated with this access config.", + "type": "string" + }, "setPublicPtr": { "description": "Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name. This field is not used in ipv6AccessConfig. A default PTR record will be created if the VM has external IPv6 range associated.", "type": "boolean" }, "type": { - "default": "ONE_TO_ONE_NAT", - "description": "The type of configuration. The default and only option is ONE_TO_ONE_NAT.", + "description": "The type of configuration. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is DIRECT_IPV6.", "enum": [ "DIRECT_IPV6", "ONE_TO_ONE_NAT" @@ -33209,7 +36944,7 @@ "type": "string" }, "ipVersion": { - "description": "The IP version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.", + "description": "The IP version that will be used by this address. Valid options are IPV4 or IPV6.", "enum": [ "IPV4", "IPV6", @@ -33239,6 +36974,18 @@ "description": "[Output Only] Type of the resource. Always compute#address for addresses.", "type": "string" }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this Address, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an Address.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object" + }, "name": { "annotations": { "required": [ @@ -33385,6 +37132,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -33403,6 +37151,36 @@ "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.", @@ -33414,6 +37192,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -33505,6 +37284,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -33523,6 +37303,36 @@ "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.", @@ -33534,6 +37344,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -33607,6 +37418,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -33625,6 +37437,36 @@ "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.", @@ -33636,6 +37478,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -33723,19 +37566,97 @@ }, "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", "properties": { "specificSkuAllocation": { - "$ref": "AllocationResourceStatusSpecificSKUAllocation" + "$ref": "AllocationResourceStatusSpecificSKUAllocation", + "description": "Allocation Properties of this reservation." } }, "type": "object" }, "AllocationResourceStatusSpecificSKUAllocation": { + "description": "Contains Properties set for the reservation.", "id": "AllocationResourceStatusSpecificSKUAllocation", "properties": { "sourceInstanceTemplateId": { + "description": "ID of the instance template used to populate reservation properties.", "type": "string" } }, @@ -33922,6 +37843,18 @@ ], "type": "string" }, + "savedState": { + "description": "For LocalSSD disks on VM Instances in STOPPED or SUSPENDED state, this field is set to PRESERVED if the LocalSSD data has been saved to a persistent location by customer request. (see the discard_local_ssd option on Stop/Suspend). Read-only in the api.", + "enum": [ + "DISK_SAVED_STATE_UNSPECIFIED", + "PRESERVED" + ], + "enumDescriptions": [ + "*[Default]* Disk state has not been preserved.", + "Disk state has been preserved." + ], + "type": "string" + }, "shieldedInstanceInitialState": { "$ref": "InitialStateConfig", "description": "[Output Only] shielded vm initial state stored on disk" @@ -33980,6 +37913,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" @@ -34013,6 +37950,18 @@ "format": "int64", "type": "string" }, + "provisionedThroughput": { + "description": "Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must greater than or equal to 1.", + "format": "int64", + "type": "string" + }, + "replicaZones": { + "description": "Required for each regional disk associated with the instance. Specify the URLs of the zones where the disk should be replicated to. You must provide exactly two replica zones, and one zone must be the same as the instance zone.", + "items": { + "type": "string" + }, + "type": "array" + }, "resourceManagerTags": { "additionalProperties": { "type": "string" @@ -34271,6 +38220,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -34289,6 +38239,36 @@ "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.", @@ -34300,6 +38280,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -34391,6 +38372,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -34409,6 +38391,36 @@ "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.", @@ -34420,6 +38432,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -34551,6 +38564,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -34569,6 +38583,36 @@ "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.", @@ -34580,6 +38624,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -34632,7 +38677,7 @@ "id": "AutoscalingPolicy", "properties": { "coolDownPeriodSec": { - "description": "The number of seconds that the autoscaler waits before it starts collecting information from a new instance. This prevents the autoscaler from collecting information when the instance is initializing, during which the collected usage would not be reliable. The default time autoscaler waits is 60 seconds. Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process.", + "description": "The number of seconds that your application takes to initialize on a VM instance. This is referred to as the [initialization period](/compute/docs/autoscaler#cool_down_period). Specifying an accurate initialization period improves autoscaler decisions. For example, when scaling out, the autoscaler ignores data from VMs that are still initializing because those VMs might not yet represent normal usage of your application. The default initialization period is 60 seconds. Initialization periods might vary because of numerous factors. We recommend that you test how long your application takes to initialize. To do this, create a VM and time your application's startup process.", "format": "int32", "type": "integer" }, @@ -34662,7 +38707,7 @@ "type": "integer" }, "mode": { - "description": "Defines operating mode for this policy.", + "description": "Defines the operating mode for this policy. The following modes are available: - OFF: Disables the autoscaler but maintains its configuration. - ONLY_SCALE_OUT: Restricts the autoscaler to add VM instances only. - ON: Enables all autoscaler activities according to its policy. For more information, see \"Turning off or restricting an autoscaler\"", "enum": [ "OFF", "ON", @@ -34808,7 +38853,7 @@ "type": "string" }, "timeZone": { - "description": "The time zone to use when interpreting the schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database. This field is assigned a default value of \u201cUTC\u201d if left empty.", + "description": "The time zone to use when interpreting the schedule. The value of this field must be a time zone name from the tz database: https://en.wikipedia.org/wiki/Tz_database. This field is assigned a default value of \"UTC\" if left empty.", "type": "string" } }, @@ -34883,6 +38928,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" @@ -34916,7 +38975,7 @@ "type": "string" }, "customResponseHeaders": { - "description": "Headers that the HTTP/S load balancer should add to proxied responses.", + "description": "Headers that the Application Load Balancer should add to proxied responses.", "items": { "type": "string" }, @@ -35130,6 +39189,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -35148,6 +39208,36 @@ "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.", @@ -35159,6 +39249,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -35211,7 +39302,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" }, @@ -35246,7 +39337,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", @@ -35279,12 +39370,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.", @@ -35300,7 +39391,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.", @@ -35323,24 +39414,24 @@ "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.", "" ], "type": "string" }, "localityLbPolicies": { - "description": "A list of locality load balancing policies to be used in order of preference. Either the policy or the customPolicy field should be set. Overrides any value set in the localityLbPolicy field. localityLbPolicies is only supported when the BackendService is referenced by a URL Map that is referenced by a target gRPC proxy that has the validateForProxyless field set to true.", + "description": "A list of locality load-balancing policies to be used in order of preference. When you use localityLbPolicies, you must set at least one value for either the localityLbPolicies[].policy or the localityLbPolicies[].customPolicy field. localityLbPolicies overrides any value set in the localityLbPolicy field. For an example of how to use this field, see Define a list of preferred policies. Caution: This field and its children are intended for use in a service mesh that includes gRPC clients only. Envoy proxies can't use backend services that have this configuration.", "items": { "$ref": "BackendServiceLocalityLoadBalancingPolicyConfig" }, "type": "array" }, "localityLbPolicy": { - "description": "The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED. If sessionAffinity is not NONE, and this field is not set to MAGLEV or RING_HASH, session affinity settings will not take effect. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", + "description": "The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not NONE, and this field is not set to MAGLEV or RING_HASH, session affinity settings will not take effect. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", "enum": [ "INVALID_LB_POLICY", "LEAST_REQUEST", @@ -35348,7 +39439,8 @@ "ORIGINAL_DESTINATION", "RANDOM", "RING_HASH", - "ROUND_ROBIN" + "ROUND_ROBIN", + "WEIGHTED_MAGLEV" ], "enumDescriptions": [ "", @@ -35357,7 +39449,8 @@ "Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.", "The load balancer selects a random healthy host.", "The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.", - "This is a simple policy in which each healthy backend is selected in round robin order. This is the default." + "This is a simple policy in which each healthy backend is selected in round robin order. This is the default.", + "Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing." ], "type": "string" }, @@ -35369,6 +39462,13 @@ "$ref": "Duration", "description": "Specifies the default maximum duration (timeout) for streams to this service. Duration is computed from the beginning of the stream until the response has been completely processed, including all retries. A stream that does not complete in this duration is closed. If not specified, there will be no timeout limit, i.e. the maximum duration is infinite. This value can be overridden in the PathMatcher configuration of the UrlMap that references this backend service. This field is only allowed when the loadBalancingScheme of the backend service is INTERNAL_SELF_MANAGED." }, + "metadatas": { + "additionalProperties": { + "type": "string" + }, + "description": "Deployment metadata associated with the resource to be set by a GKE hub controller and read by the backend RCTH", + "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])?", @@ -35380,15 +39480,16 @@ }, "outlierDetection": { "$ref": "OutlierDetection", - "description": "Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. If not set, this feature is considered disabled. This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, HTTP2, or GRPC, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED. " + "description": "Settings controlling the ejection of unhealthy backend endpoints from the load balancing pool of each individual proxy instance that processes the traffic for the given backend service. If not set, this feature is considered disabled. Results of the outlier detection algorithm (ejection of endpoints from the load balancing pool and returning them back to the pool) are executed independently by each proxy instance of the load balancer. In most cases, more than one proxy instance handles the traffic received by a backend service. Thus, it is possible that an unhealthy endpoint is detected and ejected by only some of the proxies, and while this happens, other proxies may continue to send requests to the same unhealthy endpoint until they detect and eject the unhealthy endpoint. Applicable backend endpoints can be: - VM instances in an Instance Group - Endpoints in a Zonal NEG (GCE_VM_IP, GCE_VM_IP_PORT) - Endpoints in a Hybrid Connectivity NEG (NON_GCP_PRIVATE_IP_PORT) - Serverless NEGs, that resolve to Cloud Run, App Engine, or Cloud Functions Services - Private Service Connect NEGs, that resolve to Google-managed regional API endpoints or managed services published using Private Service Connect Applicable backend service types can be: - A global backend service with the loadBalancingScheme set to INTERNAL_SELF_MANAGED or EXTERNAL_MANAGED. - A regional backend service with the serviceProtocol set to HTTP, HTTPS, or HTTP2, and loadBalancingScheme set to INTERNAL_MANAGED or EXTERNAL_MANAGED. Not supported for Serverless NEGs. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true." }, "port": { - "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.", + "deprecated": true, + "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": { @@ -35438,6 +39539,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": [ @@ -35469,6 +39574,12 @@ "description": "The backend service timeout has a different meaning depending on the type of load balancer. For more information see, Backend service settings. The default is 30 seconds. The full range of timeout values allowed goes from 1 through 2,147,483,647 seconds. This value can be overridden in the PathMatcher configuration of the UrlMap that references this backend service. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. Instead, use maxStreamDuration.", "format": "int32", "type": "integer" + }, + "usedBy": { + "items": { + "$ref": "BackendServiceUsedBy" + }, + "type": "array" } }, "type": "object" @@ -35525,6 +39636,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -35543,6 +39655,36 @@ "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.", @@ -35554,6 +39696,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -35729,11 +39872,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" }, @@ -35755,7 +39898,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": { @@ -35763,7 +39906,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": { @@ -35804,7 +39947,7 @@ "id": "BackendServiceIAP", "properties": { "enabled": { - "description": "Whether the serving infrastructure will authenticate and authorize all incoming requests. If true, the oauth2ClientId and oauth2ClientSecret fields must be non-empty.", + "description": "Whether the serving infrastructure will authenticate and authorize all incoming requests.", "type": "boolean" }, "oauth2ClientId": { @@ -35866,6 +40009,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -35884,6 +40028,36 @@ "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.", @@ -35895,6 +40069,159 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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" + }, + "BackendServiceListUsable": { + "description": "Contains a list of usable BackendService resources.", + "id": "BackendServiceListUsable", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of BackendService resources.", + "items": { + "$ref": "BackendService" + }, + "type": "array" + }, + "kind": { + "default": "compute#usableBackendServiceList", + "description": "[Output Only] Type of resource. Always compute#usableBackendServiceList for lists of usable backend services.", + "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.", @@ -35964,7 +40291,7 @@ "type": "string" }, "name": { - "description": "Identifies the custom policy. The value should match the type the custom implementation is registered with on the gRPC clients. It should follow protocol buffer message naming conventions and include the full path (e.g. myorg.CustomLbPolicy). The maximum length is 256 characters. Note that specifying the same custom policy more than once for a backend is not a valid configuration and will be rejected.", + "description": "Identifies the custom policy. The value should match the name of a custom implementation registered on the gRPC clients. It should follow protocol buffer message naming conventions and include the full path (for example, myorg.CustomLbPolicy). The maximum length is 256 characters. Do not specify the same custom policy more than once for a backend. If you do, the configuration is rejected. For an example of how to use this field, see Use a custom policy.", "type": "string" } }, @@ -35975,7 +40302,7 @@ "id": "BackendServiceLocalityLoadBalancingPolicyConfigPolicy", "properties": { "name": { - "description": "The name of a locality load balancer policy to be used. The value should be one of the predefined ones as supported by localityLbPolicy, although at the moment only ROUND_ROBIN is supported. This field should only be populated when the customPolicy field is not used. Note that specifying the same policy more than once for a backend is not a valid configuration and will be rejected.", + "description": "The name of a locality load-balancing policy. Valid values include ROUND_ROBIN and, for Java clients, LEAST_REQUEST. For information about these values, see the description of localityLbPolicy. Do not specify the same policy more than once for a backend. If you do, the configuration is rejected.", "enum": [ "INVALID_LB_POLICY", "LEAST_REQUEST", @@ -35983,7 +40310,8 @@ "ORIGINAL_DESTINATION", "RANDOM", "RING_HASH", - "ROUND_ROBIN" + "ROUND_ROBIN", + "WEIGHTED_MAGLEV" ], "enumDescriptions": [ "", @@ -35992,7 +40320,8 @@ "Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.", "The load balancer selects a random healthy host.", "The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.", - "This is a simple policy in which each healthy backend is selected in round robin order. This is the default." + "This is a simple policy in which each healthy backend is selected in round robin order. This is the default.", + "Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing." ], "type": "string" } @@ -36007,6 +40336,27 @@ "description": "Denotes whether to enable logging for the load balancer traffic served by this backend service. The default value is false.", "type": "boolean" }, + "optionalFields": { + "description": "This field can only be specified if logging is enabled for this backend service and \"logConfig.optionalMode\" was set to CUSTOM. Contains a list of optional fields you want to include in the logs. For example: serverInstance, serverGkeDetails.cluster, serverGkeDetails.pod.podNamespace", + "items": { + "type": "string" + }, + "type": "array" + }, + "optionalMode": { + "description": "This field can only be specified if logging is enabled for this backend service. Configures whether all, none or a subset of optional fields should be added to the reported logs. One of [INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM]. Default is EXCLUDE_ALL_OPTIONAL.", + "enum": [ + "CUSTOM", + "EXCLUDE_ALL_OPTIONAL", + "INCLUDE_ALL_OPTIONAL" + ], + "enumDescriptions": [ + "A subset of optional fields.", + "None optional fields.", + "All optional fields." + ], + "type": "string" + }, "sampleRate": { "description": "This field can only be specified if logging is enabled for this backend service. The value of the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0.", "format": "float", @@ -36024,6 +40374,15 @@ }, "type": "object" }, + "BackendServiceUsedBy": { + "id": "BackendServiceUsedBy", + "properties": { + "reference": { + "type": "string" + } + }, + "type": "object" + }, "BackendServicesScopedList": { "id": "BackendServicesScopedList", "properties": { @@ -36050,6 +40409,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -36068,6 +40428,36 @@ "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.", @@ -36079,6 +40469,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -36382,14 +40773,25 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" + }, + "BulkInsertDiskResource": { + "description": "A transient resource used in compute.disks.bulkInsert and compute.regionDisks.bulkInsert. It is only used to process requests and is not persisted.", + "id": "BulkInsertDiskResource", + "properties": { + "sourceConsistencyGroupPolicy": { + "description": "The URL of the DiskConsistencyGroupPolicy for the group of disks to clone. This may be a full or partial URL, such as: - https://www.googleapis.com/compute/v1/projects/project/regions/region /resourcePolicies/resourcePolicy - projects/project/regions/region/resourcePolicies/resourcePolicy - regions/region/resourcePolicies/resourcePolicy ", "type": "string" } }, @@ -36439,6 +40841,10 @@ "description": "Per-instance properties to be set on individual instances. To be extended in the future.", "id": "BulkInsertInstanceResourcePerInstanceProperties", "properties": { + "hostname": { + "description": "Specifies the hostname of the instance. More details in: https://cloud.google.com/compute/docs/instances/custom-hostname-vm#naming_convention", + "type": "string" + }, "name": { "description": "This field is only temporary. It will be removed. Do not use it.", "type": "string" @@ -36446,6 +40852,48 @@ }, "type": "object" }, + "BulkInsertOperationStatus": { + "id": "BulkInsertOperationStatus", + "properties": { + "createdVmCount": { + "description": "[Output Only] Count of VMs successfully created so far.", + "format": "int32", + "type": "integer" + }, + "deletedVmCount": { + "description": "[Output Only] Count of VMs that got deleted during rollback.", + "format": "int32", + "type": "integer" + }, + "failedToCreateVmCount": { + "description": "[Output Only] Count of VMs that started creating but encountered an error.", + "format": "int32", + "type": "integer" + }, + "status": { + "description": "[Output Only] Creation status of BulkInsert operation - information if the flow is rolling forward or rolling back.", + "enum": [ + "CREATING", + "DONE", + "ROLLING_BACK", + "STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "Rolling forward - creating VMs.", + "Done", + "Rolling back - cleaning up after an error.", + "" + ], + "type": "string" + }, + "targetVmCount": { + "description": "[Output Only] Count of VMs originally planned to be created.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "CacheInvalidationRule": { "id": "CacheInvalidationRule", "properties": { @@ -36572,6 +41020,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", @@ -36617,7 +41072,7 @@ "type": "string" }, "reservations": { - "description": "List of reservations in this commitment.", + "description": "List of create-on-create reservations for this commitment.", "items": { "$ref": "Reservation" }, @@ -36635,7 +41090,7 @@ "type": "string" }, "splitSourceCommitment": { - "description": "Source commitment to be splitted into a new commitment.", + "description": "Source commitment to be split into a new commitment.", "type": "string" }, "startTimestamp": { @@ -36653,7 +41108,7 @@ ], "enumDescriptions": [ "", - "", + "Deprecate CANCELED status. Will use separate status to differentiate cancel by mergeCud or manual cancellation.", "", "", "" @@ -36668,15 +41123,21 @@ "description": "The type of commitment, which affects the discount rate and the eligible resources. Type MEMORY_OPTIMIZED specifies a commitment that will only apply to memory optimized machines. Type ACCELERATOR_OPTIMIZED specifies a commitment that will only apply to accelerator optimized machines.", "enum": [ "ACCELERATOR_OPTIMIZED", + "ACCELERATOR_OPTIMIZED_A3", "COMPUTE_OPTIMIZED", "COMPUTE_OPTIMIZED_C2D", + "COMPUTE_OPTIMIZED_C3", + "COMPUTE_OPTIMIZED_C3D", + "COMPUTE_OPTIMIZED_H3", "GENERAL_PURPOSE", "GENERAL_PURPOSE_E2", "GENERAL_PURPOSE_N2", "GENERAL_PURPOSE_N2D", "GENERAL_PURPOSE_T2D", + "GRAPHICS_OPTIMIZED", "MEMORY_OPTIMIZED", "MEMORY_OPTIMIZED_M3", + "STORAGE_OPTIMIZED_Z3", "TYPE_UNSPECIFIED" ], "enumDescriptions": [ @@ -36690,6 +41151,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ], "type": "string" @@ -36748,6 +41215,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -36766,6 +41234,36 @@ "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.", @@ -36777,6 +41275,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -36868,6 +41367,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -36886,6 +41386,36 @@ "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.", @@ -36897,6 +41427,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -36970,6 +41501,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -36988,6 +41520,36 @@ "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.", @@ -36999,6 +41561,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -37247,7 +41810,7 @@ "id": "CustomerEncryptionKey", "properties": { "kmsKeyName": { - "description": "The name of the encryption key that is stored in Google Cloud KMS. For example: \"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key ", + "description": "The name of the encryption key that is stored in Google Cloud KMS. For example: \"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key The fully-qualifed key name may be returned for resource GET requests. For example: \"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key /cryptoKeyVersions/1 ", "type": "string" }, "kmsKeyServiceAccount": { @@ -37340,6 +41903,17 @@ ], "type": "string" }, + "asyncPrimaryDisk": { + "$ref": "DiskAsyncReplication", + "description": "Disk asynchronously replicated into this disk." + }, + "asyncSecondaryDisks": { + "additionalProperties": { + "$ref": "DiskAsyncReplicationList" + }, + "description": "[Output Only] A list of disks this disk is asynchronously replicated to.", + "type": "object" + }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -37352,6 +41926,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": { @@ -37436,6 +42014,11 @@ "format": "int64", "type": "string" }, + "provisionedThroughput": { + "description": "Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must be greater than or equal to 1.", + "format": "int64", + "type": "string" + }, "region": { "description": "[Output Only] URL of the region where the disk resides. Only applicable for regional resources. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", "type": "string" @@ -37454,6 +42037,15 @@ }, "type": "array" }, + "resourceStatus": { + "$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" @@ -37463,10 +42055,18 @@ "type": "string" }, "sizeGb": { - "description": "Size, in GB, of the persistent disk. You can specify this field when creating a persistent disk using the sourceImage, sourceSnapshot, or sourceDisk parameter, or specify it alone to create an empty persistent disk. If you specify this field along with a source, the value of sizeGb must not be less than the size of the source. Acceptable values are 1 to 65536, inclusive.", + "description": "Size, in GB, of the persistent disk. You can specify this field when creating a persistent disk using the sourceImage, sourceSnapshot, or sourceDisk parameter, or specify it alone to create an empty persistent disk. If you specify this field along with a source, the value of sizeGb must not be less than the size of the source. Acceptable values are greater than 0.", "format": "int64", "type": "string" }, + "sourceConsistencyGroupPolicy": { + "description": "[Output Only] URL of the DiskConsistencyGroupPolicy for a secondary disk that was created using a consistency group.", + "type": "string" + }, + "sourceConsistencyGroupPolicyId": { + "description": "[Output Only] ID of the DiskConsistencyGroupPolicy for a secondary disk that was created using a consistency group.", + "type": "string" + }, "sourceDisk": { "description": "The source disk used to create this disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk ", "type": "string" @@ -37487,6 +42087,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" @@ -37590,6 +42198,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -37608,6 +42217,36 @@ "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.", @@ -37619,6 +42258,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -37666,6 +42306,37 @@ }, "type": "object" }, + "DiskAsyncReplication": { + "id": "DiskAsyncReplication", + "properties": { + "consistencyGroupPolicy": { + "description": "[Output Only] URL of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group.", + "type": "string" + }, + "consistencyGroupPolicyId": { + "description": "[Output Only] ID of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group.", + "type": "string" + }, + "disk": { + "description": "The other disk asynchronously replicated to or from the current disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk ", + "type": "string" + }, + "diskId": { + "description": "[Output Only] The unique ID of the other disk asynchronously replicated to or from the current disk. This value identifies the exact disk that was used to create this replication. For example, if you started replicating the persistent disk from a disk that was later deleted and recreated under the same name, the disk ID would identify the exact version of the disk that was used.", + "type": "string" + } + }, + "type": "object" + }, + "DiskAsyncReplicationList": { + "id": "DiskAsyncReplicationList", + "properties": { + "asyncReplicationDisk": { + "$ref": "DiskAsyncReplication" + } + }, + "type": "object" + }, "DiskInstantiationConfig": { "description": "A specification of the desired way to instantiate a disk in the instance template when its created from a source instance.", "id": "DiskInstantiationConfig", @@ -37751,6 +42422,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -37769,6 +42441,36 @@ "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.", @@ -37780,6 +42482,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -37855,6 +42558,47 @@ }, "type": "object" }, + "DiskResourceStatus": { + "id": "DiskResourceStatus", + "properties": { + "asyncPrimaryDisk": { + "$ref": "DiskResourceStatusAsyncReplicationStatus" + }, + "asyncSecondaryDisks": { + "additionalProperties": { + "$ref": "DiskResourceStatusAsyncReplicationStatus" + }, + "description": "Key: disk, value: AsyncReplicationStatus message", + "type": "object" + } + }, + "type": "object" + }, + "DiskResourceStatusAsyncReplicationStatus": { + "id": "DiskResourceStatusAsyncReplicationStatus", + "properties": { + "state": { + "enum": [ + "ACTIVE", + "CREATED", + "STARTING", + "STATE_UNSPECIFIED", + "STOPPED", + "STOPPING" + ], + "enumDescriptions": [ + "Replication is active.", + "Secondary disk is created and is waiting for replication to start.", + "Replication is starting.", + "", + "Replication is stopped.", + "Replication is stopping." + ], + "type": "string" + } + }, + "type": "object" + }, "DiskType": { "description": "Represents a Disk Type resource. Google Compute Engine has two Disk Type resources: * [Regional](/compute/docs/reference/rest/v1/regionDiskTypes) * [Zonal](/compute/docs/reference/rest/v1/diskTypes) You can choose from a variety of disk types based on your needs. For more information, read Storage options. The diskTypes resource represents disk types for a zonal persistent disk. For more information, read Zonal persistent disks. The regionDiskTypes resource represents disk types for a regional persistent disk. For more information, read Regional persistent disks.", "id": "DiskType", @@ -37961,6 +42705,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -37979,6 +42724,36 @@ "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.", @@ -37990,6 +42765,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -38081,6 +42857,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -38099,6 +42876,36 @@ "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.", @@ -38110,6 +42917,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -38183,6 +42991,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -38201,6 +43010,36 @@ "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.", @@ -38212,6 +43051,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -38322,6 +43162,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -38340,6 +43181,36 @@ "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.", @@ -38351,6 +43222,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -38398,6 +43270,27 @@ }, "type": "object" }, + "DisksStartAsyncReplicationRequest": { + "id": "DisksStartAsyncReplicationRequest", + "properties": { + "asyncSecondaryDisk": { + "description": "The secondary disk to start asynchronous replication to. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk ", + "type": "string" + } + }, + "type": "object" + }, + "DisksStopGroupAsyncReplicationResource": { + "description": "A transient resource used in compute.disks.stopGroupAsyncReplication and compute.regionDisks.stopGroupAsyncReplication. It is only used to process requests and is not persisted.", + "id": "DisksStopGroupAsyncReplicationResource", + "properties": { + "resourcePolicy": { + "description": "The URL of the DiskConsistencyGroupPolicy for the group of disks to stop. This may be a full or partial URL, such as: - https://www.googleapis.com/compute/v1/projects/project/regions/region /resourcePolicies/resourcePolicy - projects/project/regions/region/resourcePolicies/resourcePolicy - regions/region/resourcePolicies/resourcePolicy ", + "type": "string" + } + }, + "type": "object" + }, "DisplayDevice": { "description": "A set of Display Device options", "id": "DisplayDevice", @@ -38416,11 +43309,13 @@ "description": "The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType).", "enum": [ "ANY", + "ANY_SINGLE_ZONE", "BALANCED", "EVEN" ], "enumDescriptions": [ "The group picks zones for creating VM instances to fulfill the requested number of VMs within present resource constraints and to maximize utilization of unused zonal reservations. Recommended for batch workloads that do not require high availability.", + "The group creates all VM instances within a single zone. The zone is selected based on the present resource constraints and to maximize utilization of unused zonal reservations. Recommended for batch workloads with heavy interprocess communication.", "The group prioritizes acquisition of resources, scheduling VMs in zones where resources are available while distributing VMs as evenly as possible across selected zones to minimize the impact of zonal failure. Recommended for highly available serving workloads.", "The group schedules VM instance creation and deletion to achieve and maintain an even number of managed instances across the selected zones. The distribution is even when the number of managed instances does not differ by more than 1 between any two zones. Recommended for highly available serving workloads." ], @@ -38570,6 +43465,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -38588,6 +43484,36 @@ "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.", @@ -38599,6 +43525,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -38753,6 +43680,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" @@ -38804,6 +43735,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -38822,6 +43754,36 @@ "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.", @@ -38833,6 +43795,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -39100,6 +44063,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -39118,6 +44082,36 @@ "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.", @@ -39129,6 +44123,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -39237,6 +44232,7 @@ "type": "string" }, "displayName": { + "deprecated": true, "description": "Deprecated, please use short name instead. User-provided name of the Organization firewall policy. The name should be unique in the organization in which the firewall policy is created. This field is not applicable to network firewall policies. This name must be set on creation and cannot be changed. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" @@ -39304,6 +44300,7 @@ "type": "string" }, "displayName": { + "deprecated": true, "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy of the association.", "type": "string" }, @@ -39361,6 +44358,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -39379,6 +44377,36 @@ "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.", @@ -39390,6 +44418,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -39492,6 +44521,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": { @@ -39512,6 +44545,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" @@ -39520,6 +44557,20 @@ "description": "Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified.", "id": "FirewallPolicyRuleMatcher", "properties": { + "destAddressGroups": { + "description": "Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10.", + "items": { + "type": "string" + }, + "type": "array" + }, + "destFqdns": { + "description": "Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100.", + "items": { + "type": "string" + }, + "type": "array" + }, "destIpRanges": { "description": "CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.", "items": { @@ -39527,6 +44578,20 @@ }, "type": "array" }, + "destRegionCodes": { + "description": "Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex.\"US\" Maximum number of dest region codes allowed is 5000.", + "items": { + "type": "string" + }, + "type": "array" + }, + "destThreatIntelligences": { + "description": "Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination.", + "items": { + "type": "string" + }, + "type": "array" + }, "layer4Configs": { "description": "Pairs of IP protocols and ports that the rule should match.", "items": { @@ -39534,6 +44599,20 @@ }, "type": "array" }, + "srcAddressGroups": { + "description": "Address groups which should be matched against the traffic source. Maximum number of source address groups is 10.", + "items": { + "type": "string" + }, + "type": "array" + }, + "srcFqdns": { + "description": "Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100.", + "items": { + "type": "string" + }, + "type": "array" + }, "srcIpRanges": { "description": "CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.", "items": { @@ -39541,12 +44620,26 @@ }, "type": "array" }, + "srcRegionCodes": { + "description": "Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex.\"US\" Maximum number of source region codes allowed is 5000.", + "items": { + "type": "string" + }, + "type": "array" + }, "srcSecureTags": { "description": "List of secure tag values, which should be matched at the source of the traffic. For INGRESS rule, if all the srcSecureTag are INEFFECTIVE, and there is no srcIpRange, this rule will be ignored. Maximum number of source tag values allowed is 256.", "items": { "$ref": "FirewallPolicyRuleSecureTag" }, "type": "array" + }, + "srcThreatIntelligences": { + "description": "Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -39614,7 +44707,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": { @@ -39644,15 +44737,23 @@ "type": "string" }, "allPorts": { - "description": "This field can only be used: - If IPProtocol is one of TCP, UDP, or SCTP. - By internal TCP/UDP load balancers, backend service-based network load balancers, and internal and external protocol forwarding. Set this field to true to allow packets addressed to any port or packets lacking destination port information (for example, UDP fragments after the first fragment) to be forwarded to the backends configured with this forwarding rule. The ports, port_range, and allPorts fields are mutually exclusive.", + "description": "The ports, portRange, and allPorts fields are mutually exclusive. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The allPorts field has the following limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, SCTP, or L3_DEFAULT. - It's applicable only to the following products: internal passthrough Network Load Balancers, backend service-based external passthrough Network Load Balancers, and internal and external protocol forwarding. - Set this field to true to allow packets addressed to any port or packets lacking destination port information (for example, UDP fragments after the first fragment) to be forwarded to the backends configured with this forwarding rule. The L3_DEFAULT protocol requires allPorts be set to true. ", "type": "boolean" }, "allowGlobalAccess": { - "description": "This field is used along with the backend_service field for internal load balancing or with the target field for internal TargetInstance. If the field is set to TRUE, clients can access ILB from all regions. Otherwise only allows access from clients in the same region as the internal load balancer.", + "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": { + "description": "This is used in PSC consumer ForwardingRule to control whether the PSC endpoint can be accessed from another region.", "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.", "type": "string" }, "creationTimestamp": { @@ -39693,7 +44794,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": { @@ -39741,7 +44842,7 @@ "type": "string" }, "network": { - "description": "This field is not used for external load balancing. For Internal TCP/UDP Load Balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used. For Private Service Connect forwarding rules that forward traffic to Google APIs, a network must be provided.", + "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": { @@ -39761,22 +44862,22 @@ "type": "string" }, "noAutomateDnsZone": { - "description": "This is used in PSC consumer ForwardingRule to control whether it should try to auto-generate a DNS zone or not. Non-PSC forwarding rules do not use this field.", + "description": "This is used in PSC consumer ForwardingRule to control whether it should try to auto-generate a DNS zone or not. Non-PSC forwarding rules do not use this field. Once set, this field is not mutable.", "type": "boolean" }, "portRange": { - "description": "This field can only be used: - If IPProtocol is one of TCP, UDP, or SCTP. - By backend service-based network load balancers, target pool-based network load balancers, internal proxy load balancers, external proxy load balancers, Traffic Director, external protocol forwarding, and Classic VPN. Some products have restrictions on what ports can be used. See port specifications for details. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The ports, port_range, and allPorts fields are mutually exclusive. For external forwarding rules, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. For internal forwarding rules within the same VPC network, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. @pattern: \\\\d+(?:-\\\\d+)?", + "description": "The ports, portRange, and allPorts fields are mutually exclusive. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The portRange field has the following limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, or SCTP, and - It's applicable only to the following products: external passthrough Network Load Balancers, internal and external proxy Network Load Balancers, internal and external Application Load Balancers, external protocol forwarding, and Classic VPN. - Some products have restrictions on what ports can be used. See port specifications for details. For external forwarding rules, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. For internal forwarding rules within the same VPC network, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. @pattern: \\\\d+(?:-\\\\d+)?", "type": "string" }, "ports": { - "description": "This field can only be used: - If IPProtocol is one of TCP, UDP, or SCTP. - By internal TCP/UDP load balancers, backend service-based network load balancers, and internal protocol forwarding. You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. For external forwarding rules, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot share any values defined in ports. For internal forwarding rules within the same VPC network, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot share any values defined in ports. The ports, port_range, and allPorts fields are mutually exclusive. @pattern: \\\\d+(?:-\\\\d+)?", + "description": "The ports, portRange, and allPorts fields are mutually exclusive. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The ports field has the following limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, or SCTP, and - It's applicable only to the following products: internal passthrough Network Load Balancers, backend service-based external passthrough Network Load Balancers, and internal protocol forwarding. - You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. For external forwarding rules, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair if they share at least one port number. For internal forwarding rules within the same VPC network, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair if they share at least one port number. @pattern: \\\\d+(?:-\\\\d+)?", "items": { "type": "string" }, "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" }, @@ -39815,20 +44916,27 @@ "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).", + "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": { - "description": "The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must be in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. - For load balancers, see the \"Target\" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). - For Private Service Connect forwarding rules that forward traffic to Google APIs, provide the name of a supported Google API bundle: - vpc-sc - APIs that support VPC Service Controls. - all-apis - All supported Google APIs. - For Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment. ", + "description": "The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must be in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. - For load balancers, see the \"Target\" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). - For Private Service Connect forwarding rules that forward traffic to Google APIs, provide the name of a supported Google API bundle: - vpc-sc - APIs that support VPC Service Controls. - all-apis - All supported Google APIs. - For Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment. The target is not mutable once set as a service attachment. ", "type": "string" } }, @@ -39885,6 +44993,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -39903,6 +45012,36 @@ "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.", @@ -39914,6 +45053,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -40005,6 +45145,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -40023,6 +45164,36 @@ "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.", @@ -40034,6 +45205,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -40091,7 +45263,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": { @@ -40103,7 +45275,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" } }, @@ -40135,6 +45307,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -40153,6 +45326,36 @@ "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.", @@ -40164,6 +45367,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -40228,7 +45432,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", @@ -40244,6 +45448,20 @@ }, "type": "object" }, + "GlobalAddressesMoveRequest": { + "id": "GlobalAddressesMoveRequest", + "properties": { + "description": { + "description": "An optional destination address description if intended to be different from the source.", + "type": "string" + }, + "destinationAddress": { + "description": "The URL of the destination address to move to. This can be a full or partial URL. For example, the following are all valid URLs to a address: - https://www.googleapis.com/compute/v1/projects/project /global/addresses/address - projects/project/global/addresses/address Note that destination project must be different from the source project. So /global/addresses/address is not valid partial url.", + "type": "string" + } + }, + "type": "object" + }, "GlobalNetworkEndpointGroupsAttachEndpointsRequest": { "id": "GlobalNetworkEndpointGroupsAttachEndpointsRequest", "properties": { @@ -40401,13 +45619,16 @@ "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_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", + "SEV_LIVE_MIGRATABLE", + "SEV_LIVE_MIGRATABLE_V2", "SEV_SNP_CAPABLE", "UEFI_COMPATIBLE", "VIRTIO_SCSI_MULTIQUEUE", @@ -40422,6 +45643,9 @@ "", "", "", + "", + "", + "", "" ], "type": "string" @@ -40446,7 +45670,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", @@ -40499,7 +45723,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", @@ -40552,7 +45776,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", @@ -40589,7 +45813,7 @@ "type": "object" }, "HealthCheck": { - "description": "Represents a Health Check resource. Google Compute Engine has two Health Check resources: * [Global](/compute/docs/reference/rest/v1/healthChecks) * [Regional](/compute/docs/reference/rest/v1/regionHealthChecks) Internal HTTP(S) load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Traffic Director must use global health checks (`compute.v1.HealthChecks`). Internal TCP/UDP load balancers can use either regional or global health checks (`compute.v1.regionHealthChecks` or `compute.v1.HealthChecks`). External HTTP(S), TCP proxy, and SSL proxy load balancers as well as managed instance group auto-healing must use global health checks (`compute.v1.HealthChecks`). Backend service-based network load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Target pool-based network load balancers must use legacy HTTP health checks (`compute.v1.httpHealthChecks`). For more information, see Health checks overview.", + "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": { @@ -40734,6 +45958,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -40752,6 +45977,36 @@ "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.", @@ -40763,6 +46018,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -40960,6 +46216,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -40978,6 +46235,36 @@ "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.", @@ -40989,6 +46276,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -41087,6 +46375,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -41105,6 +46394,36 @@ "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.", @@ -41116,6 +46435,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -41189,6 +46509,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -41207,6 +46528,36 @@ "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.", @@ -41218,6 +46569,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -41284,7 +46636,7 @@ "type": "string" }, "healthState": { - "description": "Health state of the instance.", + "description": "Health state of the IPv4 address of the instance.", "enum": [ "HEALTHY", "UNHEALTHY" @@ -41357,10 +46709,10 @@ "UNKNOWN" ], "enumDescriptions": [ - "", - "", - "", - "" + "Endpoint is being drained.", + "Endpoint is healthy.", + "Endpoint is unhealthy.", + "Health status of the endpoint is unknown." ], "type": "string" } @@ -41606,7 +46958,7 @@ "type": "integer" }, "requestPath": { - "description": "The request path of the HTTP health check request. The default value is /. This field does not support query parameters.", + "description": "The request path of the HTTP health check request. The default value is /. This field does not support query parameters. Must comply with RFC3986.", "type": "string" }, "selfLink": { @@ -41670,6 +47022,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -41688,6 +47041,36 @@ "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.", @@ -41699,6 +47082,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -41846,7 +47230,7 @@ }, "faultInjectionPolicy": { "$ref": "HttpFaultInjection", - "description": "The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: Routing and traffic management features." + "description": "The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the classic Application Load Balancer . To see which load balancers support fault injection, see Load balancing: Routing and traffic management features." }, "maxStreamDuration": { "$ref": "Duration", @@ -41866,7 +47250,7 @@ }, "urlRewrite": { "$ref": "UrlRewrite", - "description": "The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." + "description": "The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for classic Application Load Balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." }, "weightedBackendServices": { "description": "A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.", @@ -41904,7 +47288,7 @@ }, "routeAction": { "$ref": "HttpRouteAction", - "description": "In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a route rule's routeAction." + "description": "In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a route rule's routeAction." }, "service": { "description": "The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.", @@ -41943,6 +47327,10 @@ }, "type": "array" }, + "pathTemplateMatch": { + "description": "If specified, the route is a pattern match expression that must match the :path header once the query string is removed. A pattern match allows you to match - The value must be between 1 and 1024 characters - The pattern must start with a leading slash (\"/\") - There may be no more than 5 operators in pattern Precisely one of prefix_match, full_path_match, regex_match or path_template_match must be set.", + "type": "string" + }, "prefixMatch": { "description": "For satisfying the matchRule condition, the request's path must begin with the specified prefixMatch. prefixMatch must begin with a /. The value must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified.", "type": "string" @@ -42008,7 +47396,7 @@ "type": "integer" }, "requestPath": { - "description": "The request path of the HTTPS health check request. The default value is \"/\".", + "description": "The request path of the HTTPS health check request. The default value is \"/\". Must comply with RFC3986.", "type": "string" }, "selfLink": { @@ -42072,6 +47460,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -42090,6 +47479,36 @@ "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.", @@ -42101,6 +47520,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -42188,8 +47608,12 @@ "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. You can create disks by specifying an image family instead of a specific image name. The image family always returns its latest image that is not deprecated. The name of the image family must comply with RFC1035.", + "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" }, "guestOsFeatures": { @@ -42264,6 +47688,7 @@ "type": "string" }, "sha1Checksum": { + "deprecated": true, "description": "[Deprecated] This field is deprecated. An optional SHA1 checksum of the disk image before unpackaging provided by the client when the disk image is created.", "pattern": "[a-f0-9]{40}", "type": "string" @@ -42275,6 +47700,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" @@ -42414,6 +47844,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -42432,6 +47863,36 @@ "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.", @@ -42443,6 +47904,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -42585,6 +48047,10 @@ "format": "uint64", "type": "string" }, + "instanceEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "Encrypts suspended data for an instance with a customer-managed encryption key. If you are creating a new instance, this field will encrypt the local SSD and in-memory contents of the instance during the suspend operation. If you do not provide an encryption key when creating the instance, then the local SSD and in-memory contents will be encrypted using an automatically generated key during the suspend operation." + }, "keyRevocationActionType": { "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", "enum": [ @@ -42629,11 +48095,6 @@ "type": "string" }, "machineType": { - "annotations": { - "required": [ - "compute.instances.insert" - ] - }, "description": "Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type: zones/us-central1-f/machineTypes/n1-standard-1 To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB): zones/zone/machineTypes/custom-CPUS-MEMORY For example: zones/us-central1-f/machineTypes/custom-4-5120 For a full list of restrictions, read the Specifications for custom machine types.", "type": "string" }, @@ -42698,6 +48159,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" @@ -42750,7 +48215,7 @@ "TERMINATED" ], "enumDescriptions": [ - "The Nanny is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", + "The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", "Resources are being allocated for the instance.", "The instance is in repair.", "The instance is running.", @@ -42829,6 +48294,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -42847,6 +48313,36 @@ "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.", @@ -42858,6 +48354,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -43068,6 +48565,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -43086,6 +48584,36 @@ "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.", @@ -43097,6 +48625,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -43188,6 +48717,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -43206,6 +48736,36 @@ "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.", @@ -43217,6 +48777,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -43268,6 +48829,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": { @@ -43276,11 +48841,6 @@ "type": "array" }, "baseInstanceName": { - "annotations": { - "required": [ - "compute.instanceGroupManagers.insert" - ] - }, "description": "The base instance name to use for instances in this group. The value must be 1-58 characters long. Instances are named by appending a hyphen and a random four-character string to the base instance name. The base instance name must comply with RFC1035.", "pattern": "[a-z][-a-z0-9]{0,57}", "type": "string" @@ -43315,6 +48875,10 @@ "description": "[Output Only] The URL of the Instance Group resource.", "type": "string" }, + "instanceLifecyclePolicy": { + "$ref": "InstanceGroupManagerInstanceLifecyclePolicy", + "description": "The repair policy for this managed instance group." + }, "instanceTemplate": { "description": "The URL of the instance template that is specified for this managed instance group. The group uses this template to create all new instances in the managed instance group. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE.", "type": "string" @@ -43528,6 +49092,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -43546,6 +49111,36 @@ "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.", @@ -43557,6 +49152,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -43604,6 +49200,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": { @@ -43612,13 +49218,43 @@ "type": "string" }, "initialDelaySec": { - "description": "The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600].", + "description": "The initial delay is the number of seconds that a new VM takes to initialize and run its startup script. During a VM's initial delay period, the MIG ignores unsuccessful health checks because the VM might be in the startup process. This prevents the MIG from prematurely recreating a VM. If the health check receives a healthy response during the initial delay, it indicates that the startup process is complete and the VM is ready. The value of initial delay must be between 0 and 3600 seconds. The default value is 0.", "format": "int32", "type": "integer" } }, "type": "object" }, + "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": [ + "NO", + "YES" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, "InstanceGroupManagerList": { "description": "[Output Only] A list of managed instance groups.", "id": "InstanceGroupManagerList", @@ -43663,6 +49299,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -43681,6 +49318,36 @@ "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.", @@ -43692,6 +49359,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -43742,6 +49410,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" @@ -43761,6 +49433,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": { @@ -43828,14 +49514,14 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" }, "mostDisruptiveAllowedAction": { - "description": "Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.", + "description": "Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to avoid restarting the VM and to limit disruption as much as possible. RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.", "enum": [ "NONE", "REFRESH", @@ -43844,9 +49530,9 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" }, @@ -43863,14 +49549,14 @@ "type": "string" }, "type": { - "description": "The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).", + "description": "The type of update process. You can specify either PROACTIVE so that the MIG automatically updates VMs to the latest configurations or OPPORTUNISTIC so that you can select the VMs that you want to update.", "enum": [ "OPPORTUNISTIC", "PROACTIVE" ], "enumDescriptions": [ - "No action is being proactively performed in order to bring this IGM to its target version distribution (regardless of whether this distribution is expressed using instanceTemplate or versions field).", - "This IGM will actively converge to its target version distribution (regardless of whether this distribution is expressed using instanceTemplate or versions field)." + "MIG will apply new configurations to existing VMs only when you selectively target specific or all VMs to be updated.", + "MIG will automatically apply new configurations to all or a subset of existing VMs and also to new VMs that are added to the group." ], "type": "string" } @@ -43924,7 +49610,7 @@ "type": "array" }, "minimalAction": { - "description": "The minimal action that you want to perform on each instance during the update: - REPLACE: At minimum, delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt the instance at all. By default, the minimum action is NONE. If your update requires a more disruptive action than you set with this flag, the necessary action is performed to execute the update.", + "description": "The minimal action that you want to perform on each instance during the update: - REPLACE: At minimum, delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the minimum action is NONE. If your update requires a more disruptive action than you set with this flag, the necessary action is performed to execute the update.", "enum": [ "NONE", "REFRESH", @@ -43933,14 +49619,14 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" }, "mostDisruptiveAllowedAction": { - "description": "The most disruptive action that you want to perform on each instance during the update: - REPLACE: Delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt the instance at all. By default, the most disruptive allowed action is REPLACE. If your update requires a more disruptive action than you set with this flag, the update request will fail.", + "description": "The most disruptive action that you want to perform on each instance during the update: - REPLACE: Delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the most disruptive allowed action is REPLACE. If your update requires a more disruptive action than you set with this flag, the update request will fail.", "enum": [ "NONE", "REFRESH", @@ -43949,9 +49635,9 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" } @@ -43976,7 +49662,7 @@ "id": "InstanceGroupManagersDeleteInstancesRequest", "properties": { "instances": { - "description": "The URLs of one or more instances to delete. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "description": "The URLs of one or more instances to delete. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. Queued instances do not have URL and can be deleted only by name. One cannot specify both URLs and names in a single request.", "items": { "type": "string" }, @@ -44067,6 +49753,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -44085,6 +49772,36 @@ "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.", @@ -44096,6 +49813,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -44196,6 +49914,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -44214,6 +49933,36 @@ "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.", @@ -44225,6 +49974,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -44370,6 +50120,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -44388,6 +50139,36 @@ "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.", @@ -44399,6 +50180,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -44503,6 +50285,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -44521,6 +50304,36 @@ "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.", @@ -44532,6 +50345,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -44641,6 +50455,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -44659,6 +50474,36 @@ "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.", @@ -44670,6 +50515,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -44761,6 +50607,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -44779,6 +50626,36 @@ "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.", @@ -44790,6 +50667,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -45081,6 +50959,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": { @@ -45092,7 +50991,7 @@ "type": "object" }, "InstanceTemplate": { - "description": "Represents an Instance Template resource. You can use instance templates to create VM instances and managed instance groups. For more information, read Instance Templates.", + "description": "Represents an Instance Template resource. Google Compute Engine has two Instance Template resources: * [Global](/compute/docs/reference/rest/v1/instanceTemplates) * [Regional](/compute/docs/reference/rest/v1/regionInstanceTemplates) You can reuse a global instance template in different regions whereas you can use a regional instance template in a specified region only. If you want to reduce cross-region dependency or achieve data residency, use a regional instance template. To create VMs, managed instance groups, and reservations, you can use either global or regional instance templates. For more information, read Instance Templates.", "id": "InstanceTemplate", "properties": { "creationTimestamp": { @@ -45127,6 +51026,10 @@ "$ref": "InstanceProperties", "description": "The instance properties for this instance template." }, + "region": { + "description": "[Output Only] URL of the region where the instance template resides. Only applicable for regional resources.", + "type": "string" + }, "selfLink": { "description": "[Output Only] The URL for this instance template. The server defines this URL.", "type": "string" @@ -45142,6 +51045,159 @@ }, "type": "object" }, + "InstanceTemplateAggregatedList": { + "description": "Contains a list of InstanceTemplatesScopedList.", + "id": "InstanceTemplateAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "InstanceTemplatesScopedList", + "description": "The name of the scope that contains this set of instance templates." + }, + "description": "A list of InstanceTemplatesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#instanceTemplateAggregatedList", + "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" + }, "InstanceTemplateList": { "description": "A list of instance templates.", "id": "InstanceTemplateList", @@ -45186,6 +51242,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -45204,6 +51261,36 @@ "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.", @@ -45215,6 +51302,141 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of 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" + }, + "InstanceTemplatesScopedList": { + "id": "InstanceTemplatesScopedList", + "properties": { + "instanceTemplates": { + "description": "[Output Only] A list of instance templates that are contained within the specified project and zone.", + "items": { + "$ref": "InstanceTemplate" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] An informational warning that replaces the list of instance templates 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.", @@ -45291,7 +51513,7 @@ "TERMINATED" ], "enumDescriptions": [ - "The Nanny is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", + "The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", "Resources are being allocated for the instance.", "The instance is in repair.", "The instance is running.", @@ -45320,6 +51542,19 @@ }, "type": "object" }, + "InstancesBulkInsertOperationMetadata": { + "id": "InstancesBulkInsertOperationMetadata", + "properties": { + "perLocationStatus": { + "additionalProperties": { + "$ref": "BulkInsertOperationStatus" + }, + "description": "Status information per location (location name is key). Example key: zones/us-central1-a", + "type": "object" + } + }, + "type": "object" + }, "InstancesGetEffectiveFirewallsResponse": { "id": "InstancesGetEffectiveFirewallsResponse", "properties": { @@ -45344,6 +51579,7 @@ "id": "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy", "properties": { "displayName": { + "deprecated": true, "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy.", "type": "string" }, @@ -45420,6 +51656,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -45438,6 +51675,36 @@ "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.", @@ -45449,6 +51716,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -45546,6 +51814,37 @@ }, "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": { @@ -45576,6 +51875,576 @@ }, "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": { + "storageSizeBytes": { + "description": "[Output Only] The storage size of this instant snapshot.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "InstantSnapshotsScopedList": { + "id": "InstantSnapshotsScopedList", + "properties": { + "instantSnapshots": { + "description": "[Output Only] A list of instantSnapshots contained in this scope.", + "items": { + "$ref": "InstantSnapshot" + }, + "type": "array" + }, + "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": "object" + } + }, + "type": "object" + }, "Int64RangeMatch": { "description": "HttpRouteRuleMatch criteria for field values that must stay within the specified integer range.", "id": "Int64RangeMatch", @@ -45594,13 +52463,26 @@ "type": "object" }, "Interconnect": { - "description": "Represents an Interconnect resource. An Interconnect resource is a dedicated connection between the GCP network and your on-premises network. For more information, read the Dedicated Interconnect Overview.", + "description": "Represents an Interconnect resource. An Interconnect resource is a dedicated connection between the Google Cloud network and your on-premises network. For more information, read the Dedicated Interconnect Overview.", "id": "Interconnect", "properties": { "adminEnabled": { "description": "Administrative status of the interconnect. When this is set to true, the Interconnect is functional and can carry traffic. When set to false, no packets can be carried over the interconnect and no BGP routes are exchanged over it. By default, the status is set to true.", "type": "boolean" }, + "availableFeatures": { + "description": "[Output only] List of features available for this Interconnect connection, which can take one of the following values: - MACSEC If present then the Interconnect connection is provisioned on MACsec capable hardware ports. If not present then the Interconnect connection is provisioned on non-MACsec capable ports and MACsec isn't supported and enabling MACsec fails.", + "items": { + "enum": [ + "IF_MACSEC" + ], + "enumDescriptions": [ + "Media Access Control security (MACsec)" + ], + "type": "string" + }, + "type": "array" + }, "circuitInfos": { "description": "[Output Only] A list of CircuitInfo objects, that describe the individual circuits in this LAG.", "items": { @@ -45666,6 +52548,18 @@ "description": "[Output Only] Type of the resource. Always compute#interconnect for interconnects.", "type": "string" }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this Interconnect, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an Interconnect.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object" + }, "linkType": { "description": "Type of link requested, which can take one of the following values: - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note that this field indicates the speed of each of the links in the bundle, not the speed of the entire bundle.", "enum": [ @@ -45682,6 +52576,14 @@ "description": "URL of the InterconnectLocation object that represents where this connection is to be provisioned.", "type": "string" }, + "macsec": { + "$ref": "InterconnectMacsec", + "description": "Configuration that enables Media Access Control security (MACsec) on the Cloud Interconnect connection between Google and your on-premises router." + }, + "macsecEnabled": { + "description": "Enable or disable MACsec on this Interconnect connection. MACsec enablement fails if the MACsec object is not specified.", + "type": "boolean" + }, "name": { "annotations": { "required": [ @@ -45717,13 +52619,30 @@ "format": "int32", "type": "integer" }, + "remoteLocation": { + "description": "Indicates that this is a Cross-Cloud Interconnect. This field specifies the location outside of Google's network that the interconnect is connected to.", + "type": "string" + }, + "requestedFeatures": { + "description": "Optional. List of features requested for this Interconnect connection, which can take one of the following values: - MACSEC If specified then the connection is created on MACsec capable hardware ports. If not specified, the default value is false, which allocates non-MACsec capable ports first if available. This parameter can be provided only with Interconnect INSERT. It isn't valid for Interconnect PATCH.", + "items": { + "enum": [ + "IF_MACSEC" + ], + "enumDescriptions": [ + "Media Access Control security (MACsec)" + ], + "type": "string" + }, + "type": "array" + }, "requestedLinkCount": { "description": "Target number of physical links in the link bundle, as requested by the customer.", "format": "int32", "type": "integer" }, "satisfiesPzs": { - "description": "[Output Only] Set to true if the resource satisfies the zone separation organization policy constraints and false otherwise. Defaults to false if the field is not present.", + "description": "[Output Only] Reserved for future use.", "type": "boolean" }, "selfLink": { @@ -45811,6 +52730,10 @@ "description": "This field is not available.", "type": "string" }, + "configurationConstraints": { + "$ref": "InterconnectAttachmentConfigurationConstraints", + "description": "[Output Only] Constraints for this attachment, if any. The attachment does not work if these constraints are not met." + }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -45863,6 +52786,7 @@ "type": "string" }, "googleReferenceId": { + "deprecated": true, "description": "[Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.", "type": "string" }, @@ -45876,7 +52800,7 @@ "type": "string" }, "ipsecInternalAddresses": { - "description": "A list of URLs of addresses that have been reserved for the VLAN attachment. Used only for the VLAN attachment that has the encryption option as IPSEC. The addresses must be regional internal IP address ranges. When creating an HA VPN gateway over the VLAN attachment, if the attachment is configured to use a regional internal IP address, then the VPN gateway's IP address is allocated from the IP address range specified here. For example, if the HA VPN gateway's interface 0 is paired to this VLAN attachment, then a regional internal IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this VLAN attachment. If this field is not specified when creating the VLAN attachment, then later on when creating an HA VPN gateway on this VLAN attachment, the HA VPN gateway's IP address is allocated from the regional external IP address pool. Not currently available publicly. ", + "description": "A list of URLs of addresses that have been reserved for the VLAN attachment. Used only for the VLAN attachment that has the encryption option as IPSEC. The addresses must be regional internal IP address ranges. When creating an HA VPN gateway over the VLAN attachment, if the attachment is configured to use a regional internal IP address, then the VPN gateway's IP address is allocated from the IP address range specified here. For example, if the HA VPN gateway's interface 0 is paired to this VLAN attachment, then a regional internal IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this VLAN attachment. If this field is not specified when creating the VLAN attachment, then later on when creating an HA VPN gateway on this VLAN attachment, the HA VPN gateway's IP address is allocated from the regional external IP address pool.", "items": { "type": "string" }, @@ -45887,6 +52811,18 @@ "description": "[Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.", "type": "string" }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this InterconnectAttachment, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an InterconnectAttachment.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object" + }, "mtu": { "description": "Maximum Transmission Unit (MTU), in bytes, of packets passing through this interconnect attachment. Only 1440 and 1500 are allowed. If not specified, the value will default to 1440.", "format": "int32", @@ -45910,7 +52846,7 @@ "type": "string" }, "pairingKey": { - "description": "[Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier of an PARTNER attachment used to initiate provisioning with a selected partner. Of the form \"XXXXX/region/domain\"", + "description": "[Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier of a PARTNER attachment used to initiate provisioning with a selected partner. Of the form \"XXXXX/region/domain\"", "type": "string" }, "partnerAsn": { @@ -45920,7 +52856,7 @@ }, "partnerMetadata": { "$ref": "InterconnectAttachmentPartnerMetadata", - "description": "Informational metadata about Partner attachments from Partners to display to customers. Output only for for PARTNER type, mutable for PARTNER_PROVIDER, not available for DEDICATED." + "description": "Informational metadata about Partner attachments from Partners to display to customers. Output only for PARTNER type, mutable for PARTNER_PROVIDER, not available for DEDICATED." }, "privateInterconnectInfo": { "$ref": "InterconnectAttachmentPrivateInfo", @@ -45930,12 +52866,16 @@ "description": "[Output Only] URL of the region where the regional interconnect attachment resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", "type": "string" }, + "remoteService": { + "description": "[Output Only] If the attachment is on a Cross-Cloud Interconnect connection, this field contains the interconnect's remote location service provider. Example values: \"Amazon Web Services\" \"Microsoft Azure\". The field is set only for attachments on Cross-Cloud Interconnect connections. Its value is copied from the InterconnectRemoteLocation remoteService field.", + "type": "string" + }, "router": { "description": "URL of the Cloud Router to be used for dynamic routing. This router must be in the same region as this InterconnectAttachment. The InterconnectAttachment will automatically connect the Interconnect to the network & region within which the Cloud Router is configured.", "type": "string" }, "satisfiesPzs": { - "description": "[Output Only] Set to true if the resource satisfies the zone separation organization policy constraints and false otherwise. Defaults to false if the field is not present.", + "description": "[Output Only] Reserved for future use.", "type": "boolean" }, "selfLink": { @@ -45976,6 +52916,11 @@ ], "type": "string" }, + "subnetLength": { + "description": "Length of the IPv4 subnet mask. Allowed values: - 29 (default) - 30 The default value is 29, except for Cross-Cloud Interconnect connections that use an InterconnectRemoteLocation with a constraints.subnetLengthRange.min equal to 30. For example, connections that use an Azure remote location fall into this category. In these cases, the default value is 30, and requesting 29 returns an error. Where both 29 and 30 are allowed, 29 is preferred, because it gives Google Cloud Support more debugging visibility. ", + "format": "int32", + "type": "integer" + }, "type": { "description": "The type of interconnect attachment this is, which can take one of the following values: - DEDICATED: an attachment to a Dedicated Interconnect. - PARTNER: an attachment to a Partner Interconnect, created by the customer. - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created by the partner. ", "enum": [ @@ -45991,7 +52936,7 @@ "type": "string" }, "vlanTag8021q": { - "description": "The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4094. Only specified at creation time.", + "description": "The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4093. Only specified at creation time.", "format": "int32", "type": "integer" } @@ -46049,6 +52994,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -46067,6 +53013,36 @@ "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.", @@ -46078,6 +53054,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -46125,6 +53102,47 @@ }, "type": "object" }, + "InterconnectAttachmentConfigurationConstraints": { + "id": "InterconnectAttachmentConfigurationConstraints", + "properties": { + "bgpMd5": { + "description": "[Output Only] Whether the attachment's BGP session requires/allows/disallows BGP MD5 authentication. This can take one of the following values: MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED. For example, a Cross-Cloud Interconnect connection to a remote cloud provider that requires BGP MD5 authentication has the interconnectRemoteLocation attachment_configuration_constraints.bgp_md5 field set to MD5_REQUIRED, and that property is propagated to the attachment. Similarly, if BGP MD5 is MD5_UNSUPPORTED, an error is returned if MD5 is requested.", + "enum": [ + "MD5_OPTIONAL", + "MD5_REQUIRED", + "MD5_UNSUPPORTED" + ], + "enumDescriptions": [ + "MD5_OPTIONAL: BGP MD5 authentication is supported and can optionally be configured.", + "MD5_REQUIRED: BGP MD5 authentication must be configured.", + "MD5_UNSUPPORTED: BGP MD5 authentication must not be configured" + ], + "type": "string" + }, + "bgpPeerAsnRanges": { + "description": "[Output Only] List of ASN ranges that the remote location is known to support. Formatted as an array of inclusive ranges {min: min-value, max: max-value}. For example, [{min: 123, max: 123}, {min: 64512, max: 65534}] allows the peer ASN to be 123 or anything in the range 64512-65534. This field is only advisory. Although the API accepts other ranges, these are the ranges that we recommend.", + "items": { + "$ref": "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange" + }, + "type": "array" + } + }, + "type": "object" + }, + "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange": { + "id": "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange", + "properties": { + "max": { + "format": "uint32", + "type": "integer" + }, + "min": { + "format": "uint32", + "type": "integer" + } + }, + "type": "object" + }, "InterconnectAttachmentList": { "description": "Response to the list request, and contains a list of interconnect attachments.", "id": "InterconnectAttachmentList", @@ -46169,6 +53187,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -46187,6 +53206,36 @@ "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.", @@ -46198,6 +53247,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -46302,6 +53352,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -46320,6 +53371,36 @@ "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.", @@ -46331,6 +53412,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -46398,7 +53480,7 @@ "type": "object" }, "InterconnectDiagnostics": { - "description": "Diagnostics information about interconnect, contains detailed and current technical information about Google's side of the connection.", + "description": "Diagnostics information about the Interconnect connection, which contains detailed and current technical information about Google's side of the connection.", "id": "InterconnectDiagnostics", "properties": { "arpCaches": { @@ -46537,6 +53619,10 @@ "lacpStatus": { "$ref": "InterconnectDiagnosticsLinkLACPStatus" }, + "macsec": { + "$ref": "InterconnectDiagnosticsMacsecStatus", + "description": "Describes the status of MACsec encryption on this link." + }, "operationalStatus": { "description": "The operational status of the link.", "enum": [ @@ -46560,6 +53646,21 @@ }, "type": "object" }, + "InterconnectDiagnosticsMacsecStatus": { + "description": "Describes the status of MACsec encryption on the link.", + "id": "InterconnectDiagnosticsMacsecStatus", + "properties": { + "ckn": { + "description": "Indicates the Connectivity Association Key Name (CKN) currently being used if MACsec is operational.", + "type": "string" + }, + "operational": { + "description": "Indicates whether or not MACsec is operational on this link.", + "type": "boolean" + } + }, + "type": "object" + }, "InterconnectList": { "description": "Response to the list request, and contains a list of interconnects.", "id": "InterconnectList", @@ -46604,6 +53705,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -46622,6 +53724,36 @@ "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.", @@ -46633,6 +53765,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -46692,6 +53825,34 @@ "description": "[Output Only] Availability zone for this InterconnectLocation. Within a metropolitan area (metro), maintenance will not be simultaneously scheduled in more than one availability zone. Example: \"zone1\" or \"zone2\".", "type": "string" }, + "availableFeatures": { + "description": "[Output only] List of features available at this InterconnectLocation, which can take one of the following values: - MACSEC ", + "items": { + "enum": [ + "IF_MACSEC" + ], + "enumDescriptions": [ + "Media Access Control security (MACsec)" + ], + "type": "string" + }, + "type": "array" + }, + "availableLinkTypes": { + "description": "[Output only] List of link types available at this InterconnectLocation, which can take one of the following values: - LINK_TYPE_ETHERNET_10G_LR - LINK_TYPE_ETHERNET_100G_LR ", + "items": { + "enum": [ + "LINK_TYPE_ETHERNET_100G_LR", + "LINK_TYPE_ETHERNET_10G_LR" + ], + "enumDescriptions": [ + "100G Ethernet, LR Optics.", + "10G Ethernet, LR Optics. [(rate_bps) = 10000000000];" + ], + "type": "string" + }, + "type": "array" + }, "city": { "description": "[Output Only] Metropolitan area designator that indicates which city an interconnect is located. For example: \"Chicago, IL\", \"Amsterdam, Netherlands\".", "type": "string" @@ -46782,7 +53943,7 @@ "type": "string" }, "supportsPzs": { - "description": "[Output Only] Set to true for locations that support physical zone separation. Defaults to false if the field is not present.", + "description": "[Output Only] Reserved for future use.", "type": "boolean" } }, @@ -46832,6 +53993,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -46850,6 +54012,36 @@ "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.", @@ -46861,6 +54053,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -46940,6 +54133,76 @@ }, "type": "object" }, + "InterconnectMacsec": { + "description": "Configuration information for enabling Media Access Control security (MACsec) on this Cloud Interconnect connection between Google and your on-premises router.", + "id": "InterconnectMacsec", + "properties": { + "failOpen": { + "description": "If set to true, the Interconnect connection is configured with a should-secure MACsec security policy, that allows the Google router to fallback to cleartext traffic if the MKA session cannot be established. By default, the Interconnect connection is configured with a must-secure security policy that drops all traffic if the MKA session cannot be established with your router.", + "type": "boolean" + }, + "preSharedKeys": { + "description": "Required. A keychain placeholder describing a set of named key objects along with their start times. A MACsec CKN/CAK is generated for each key in the key chain. Google router automatically picks the key with the most recent startTime when establishing or re-establishing a MACsec secure link.", + "items": { + "$ref": "InterconnectMacsecPreSharedKey" + }, + "type": "array" + } + }, + "type": "object" + }, + "InterconnectMacsecConfig": { + "description": "MACsec configuration information for the Interconnect connection. Contains the generated Connectivity Association Key Name (CKN) and the key (CAK) for this Interconnect connection.", + "id": "InterconnectMacsecConfig", + "properties": { + "preSharedKeys": { + "description": "A keychain placeholder describing a set of named key objects along with their start times. A MACsec CKN/CAK is generated for each key in the key chain. Google router automatically picks the key with the most recent startTime when establishing or re-establishing a MACsec secure link.", + "items": { + "$ref": "InterconnectMacsecConfigPreSharedKey" + }, + "type": "array" + } + }, + "type": "object" + }, + "InterconnectMacsecConfigPreSharedKey": { + "description": "Describes a pre-shared key used to setup MACsec in static connectivity association key (CAK) mode.", + "id": "InterconnectMacsecConfigPreSharedKey", + "properties": { + "cak": { + "description": "An auto-generated Connectivity Association Key (CAK) for this key.", + "type": "string" + }, + "ckn": { + "description": "An auto-generated Connectivity Association Key Name (CKN) for this key.", + "type": "string" + }, + "name": { + "description": "User provided name for this pre-shared key.", + "type": "string" + }, + "startTime": { + "description": "User provided timestamp on or after which this key is valid.", + "type": "string" + } + }, + "type": "object" + }, + "InterconnectMacsecPreSharedKey": { + "description": "Describes a pre-shared key used to setup MACsec in static connectivity association key (CAK) mode.", + "id": "InterconnectMacsecPreSharedKey", + "properties": { + "name": { + "description": "Required. A name for this pre-shared key. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "type": "string" + }, + "startTime": { + "description": "A RFC3339 timestamp on or after which the key is valid. startTime can be in the future. If the keychain has a single key, startTime can be omitted. If the keychain has multiple keys, startTime is mandatory for each key. The start times of keys must be in increasing order. The start times of two consecutive keys must be at least 6 hours apart.", + "type": "string" + } + }, + "type": "object" + }, "InterconnectOutageNotification": { "description": "Description of a planned outage on this Interconnect.", "id": "InterconnectOutageNotification", @@ -47018,6 +54281,340 @@ }, "type": "object" }, + "InterconnectRemoteLocation": { + "description": "Represents a Cross-Cloud Interconnect Remote Location resource. You can use this resource to find remote location details about an Interconnect attachment (VLAN).", + "id": "InterconnectRemoteLocation", + "properties": { + "address": { + "description": "[Output Only] The postal address of the Point of Presence, each line in the address is separated by a newline character.", + "type": "string" + }, + "attachmentConfigurationConstraints": { + "$ref": "InterconnectAttachmentConfigurationConstraints", + "description": "[Output Only] Subset of fields from InterconnectAttachment's |configurationConstraints| field that apply to all attachments for this remote location." + }, + "city": { + "description": "[Output Only] Metropolitan area designator that indicates which city an interconnect is located. For example: \"Chicago, IL\", \"Amsterdam, Netherlands\".", + "type": "string" + }, + "constraints": { + "$ref": "InterconnectRemoteLocationConstraints", + "description": "[Output Only] Constraints on the parameters for creating Cross-Cloud Interconnect and associated InterconnectAttachments." + }, + "continent": { + "description": "[Output Only] Continent for this location, which can take one of the following values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA - SOUTH_AMERICA ", + "enum": [ + "AFRICA", + "ASIA_PAC", + "EUROPE", + "NORTH_AMERICA", + "SOUTH_AMERICA" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "description": { + "description": "[Output Only] An optional description of the resource.", + "type": "string" + }, + "facilityProvider": { + "description": "[Output Only] The name of the provider for this facility (e.g., EQUINIX).", + "type": "string" + }, + "facilityProviderFacilityId": { + "description": "[Output Only] A provider-assigned Identifier for this facility (e.g., Ashburn-DC1).", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#interconnectRemoteLocation", + "description": "[Output Only] Type of the resource. Always compute#interconnectRemoteLocation for interconnect remote locations.", + "type": "string" + }, + "lacp": { + "description": "[Output Only] Link Aggregation Control Protocol (LACP) constraints, which can take one of the following values: LACP_SUPPORTED, LACP_UNSUPPORTED", + "enum": [ + "LACP_SUPPORTED", + "LACP_UNSUPPORTED" + ], + "enumDescriptions": [ + "LACP_SUPPORTED: LACP is supported, and enabled by default on the Cross-Cloud Interconnect.", + "LACP_UNSUPPORTED: LACP is not supported and is not be enabled on this port. GetDiagnostics shows bundleAggregationType as \"static\". GCP does not support LAGs without LACP, so requestedLinkCount must be 1." + ], + "type": "string" + }, + "maxLagSize100Gbps": { + "description": "[Output Only] The maximum number of 100 Gbps ports supported in a link aggregation group (LAG). When linkType is 100 Gbps, requestedLinkCount cannot exceed max_lag_size_100_gbps.", + "format": "int32", + "type": "integer" + }, + "maxLagSize10Gbps": { + "description": "[Output Only] The maximum number of 10 Gbps ports supported in a link aggregation group (LAG). When linkType is 10 Gbps, requestedLinkCount cannot exceed max_lag_size_10_gbps.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "[Output Only] Name of the resource.", + "type": "string" + }, + "peeringdbFacilityId": { + "description": "[Output Only] The peeringdb identifier for this facility (corresponding with a netfac type in peeringdb).", + "type": "string" + }, + "permittedConnections": { + "description": "[Output Only] Permitted connections.", + "items": { + "$ref": "InterconnectRemoteLocationPermittedConnections" + }, + "type": "array" + }, + "remoteService": { + "description": "[Output Only] Indicates the service provider present at the remote location. Example values: \"Amazon Web Services\", \"Microsoft Azure\".", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "status": { + "description": "[Output Only] The status of this InterconnectRemoteLocation, which can take one of the following values: - CLOSED: The InterconnectRemoteLocation is closed and is unavailable for provisioning new Cross-Cloud Interconnects. - AVAILABLE: The InterconnectRemoteLocation is available for provisioning new Cross-Cloud Interconnects. ", + "enum": [ + "AVAILABLE", + "CLOSED" + ], + "enumDescriptions": [ + "The InterconnectRemoteLocation is available for provisioning new Cross-Cloud Interconnects.", + "The InterconnectRemoteLocation is closed for provisioning new Cross-Cloud Interconnects." + ], + "type": "string" + } + }, + "type": "object" + }, + "InterconnectRemoteLocationConstraints": { + "id": "InterconnectRemoteLocationConstraints", + "properties": { + "portPairRemoteLocation": { + "description": "[Output Only] Port pair remote location constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, PORT_PAIR_MATCHING_REMOTE_LOCATION. GCP's API refers only to individual ports, but the UI uses this field when ordering a pair of ports, to prevent users from accidentally ordering something that is incompatible with their cloud provider. Specifically, when ordering a redundant pair of Cross-Cloud Interconnect ports, and one of them uses a remote location with portPairMatchingRemoteLocation set to matching, the UI requires that both ports use the same remote location.", + "enum": [ + "PORT_PAIR_MATCHING_REMOTE_LOCATION", + "PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION" + ], + "enumDescriptions": [ + "If PORT_PAIR_MATCHING_REMOTE_LOCATION, the remote cloud provider allocates ports in pairs, and the user should choose the same remote location for both ports.", + "If PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, a user may opt to provision a redundant pair of Cross-Cloud Interconnects using two different remote locations in the same city." + ], + "type": "string" + }, + "portPairVlan": { + "description": "[Output Only] Port pair VLAN constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_VLAN, PORT_PAIR_MATCHING_VLAN", + "enum": [ + "PORT_PAIR_MATCHING_VLAN", + "PORT_PAIR_UNCONSTRAINED_VLAN" + ], + "enumDescriptions": [ + "If PORT_PAIR_MATCHING_VLAN, the Interconnect for this attachment is part of a pair of ports that should have matching VLAN allocations. This occurs with Cross-Cloud Interconnect to Azure remote locations. While GCP's API does not explicitly group pairs of ports, the UI uses this field to ensure matching VLAN ids when configuring a redundant VLAN pair.", + "PORT_PAIR_UNCONSTRAINED_VLAN means there is no constraint." + ], + "type": "string" + }, + "subnetLengthRange": { + "$ref": "InterconnectRemoteLocationConstraintsSubnetLengthRange", + "description": "[Output Only] [min-length, max-length] The minimum and maximum value (inclusive) for the IPv4 subnet length. For example, an interconnectRemoteLocation for Azure has {min: 30, max: 30} because Azure requires /30 subnets. This range specifies the values supported by both cloud providers. Interconnect currently supports /29 and /30 IPv4 subnet lengths. If a remote cloud has no constraint on IPv4 subnet length, the range would thus be {min: 29, max: 30}. " + } + }, + "type": "object" + }, + "InterconnectRemoteLocationConstraintsSubnetLengthRange": { + "id": "InterconnectRemoteLocationConstraintsSubnetLengthRange", + "properties": { + "max": { + "format": "int32", + "type": "integer" + }, + "min": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "InterconnectRemoteLocationList": { + "description": "Response to the list request, and contains a list of interconnect remote locations.", + "id": "InterconnectRemoteLocationList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of InterconnectRemoteLocation resources.", + "items": { + "$ref": "InterconnectRemoteLocation" + }, + "type": "array" + }, + "kind": { + "default": "compute#interconnectRemoteLocationList", + "description": "[Output Only] Type of resource. Always compute#interconnectRemoteLocationList for lists of interconnect remote locations.", + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token lets you get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[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" + }, + "InterconnectRemoteLocationPermittedConnections": { + "id": "InterconnectRemoteLocationPermittedConnections", + "properties": { + "interconnectLocation": { + "description": "[Output Only] URL of an Interconnect location that is permitted to connect to this Interconnect remote location.", + "type": "string" + } + }, + "type": "object" + }, "InterconnectsGetDiagnosticsResponse": { "description": "Response for the InterconnectsGetDiagnosticsRequest.", "id": "InterconnectsGetDiagnosticsResponse", @@ -47028,6 +54625,20 @@ }, "type": "object" }, + "InterconnectsGetMacsecConfigResponse": { + "description": "Response for the InterconnectsGetMacsecConfigRequest.", + "id": "InterconnectsGetMacsecConfigResponse", + "properties": { + "etag": { + "description": "end_interface: MixerGetResponseWithEtagBuilder", + "type": "string" + }, + "result": { + "$ref": "InterconnectMacsecConfig" + } + }, + "type": "object" + }, "License": { "description": "Represents a License resource. A License represents billing and aggregate usage data for public and marketplace images. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", "id": "License", @@ -47239,6 +54850,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -47257,6 +54869,36 @@ "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.", @@ -47268,6 +54910,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -47558,6 +55201,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" @@ -47665,6 +55313,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -47683,6 +55332,36 @@ "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.", @@ -47694,6 +55373,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -47755,7 +55435,7 @@ "type": "integer" }, "guestAcceleratorType": { - "description": "The accelerator type resource name, not a full URL, e.g. 'nvidia-tesla-k80'.", + "description": "The accelerator type resource name, not a full URL, e.g. nvidia-tesla-t4.", "type": "string" } }, @@ -47895,6 +55575,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -47913,6 +55594,36 @@ "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.", @@ -47924,6 +55635,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -48015,6 +55727,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -48033,6 +55746,36 @@ "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.", @@ -48044,6 +55787,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -48117,6 +55861,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -48135,6 +55880,36 @@ "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.", @@ -48146,6 +55921,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -48262,7 +56038,7 @@ "TERMINATED" ], "enumDescriptions": [ - "The Nanny is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", + "The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", "Resources are being allocated for the instance.", "The instance is in repair.", "The instance is running.", @@ -48279,6 +56055,10 @@ "$ref": "ManagedInstanceLastAttempt", "description": "[Output Only] Information about the last attempt to create or delete the instance." }, + "name": { + "description": "[Output Only] The name of the instance. The name always exists even if the instance has not yet been created.", + "type": "string" + }, "preservedStateFromConfig": { "$ref": "PreservedState", "description": "[Output Only] Preserved state applied from per-instance config for this instance." @@ -48497,11 +56277,78 @@ }, "type": "object" }, + "NatIpInfo": { + "description": "Contains NAT IP information of a NAT config (i.e. usage status, mode).", + "id": "NatIpInfo", + "properties": { + "natIpInfoMappings": { + "description": "A list of all NAT IPs assigned to this NAT config.", + "items": { + "$ref": "NatIpInfoNatIpInfoMapping" + }, + "type": "array" + }, + "natName": { + "description": "Name of the NAT config which the NAT IP belongs to.", + "type": "string" + } + }, + "type": "object" + }, + "NatIpInfoNatIpInfoMapping": { + "description": "Contains information of a NAT IP.", + "id": "NatIpInfoNatIpInfoMapping", + "properties": { + "mode": { + "description": "Specifies whether NAT IP is auto or manual.", + "enum": [ + "AUTO", + "MANUAL" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "natIp": { + "description": "NAT IP address. For example: 203.0.113.11.", + "type": "string" + }, + "usage": { + "description": "Specifies whether NAT IP is currently serving at least one endpoint or not.", + "enum": [ + "IN_USE", + "UNUSED" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "NatIpInfoResponse": { + "id": "NatIpInfoResponse", + "properties": { + "result": { + "description": "[Output Only] A list of NAT IP information.", + "items": { + "$ref": "NatIpInfo" + }, + "type": "array" + } + }, + "type": "object" + }, "Network": { "description": "Represents a VPC Network resource. Networks connect resources to each other and to the internet. For more information, read Virtual Private Cloud (VPC) Network.", "id": "Network", "properties": { "IPv4Range": { + "deprecated": true, "description": "Deprecated in favor of subnet mode networks. The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16. Provided by the client when the network is created.", "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}/[0-9]{1,2}", "type": "string" @@ -48527,7 +56374,7 @@ "type": "string" }, "gatewayIPv4": { - "description": "[Output Only] The gateway address for default routing out of the network, selected by GCP.", + "description": "[Output Only] The gateway address for default routing out of the network, selected by Google Cloud.", "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}", "type": "string" }, @@ -48634,7 +56481,7 @@ "type": "string" }, "fingerprint": { - "description": "[Output Only] Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. An up-to-date fingerprint must be provided in order to patch.", + "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. An up-to-date fingerprint must be provided in order to patch.", "format": "byte", "type": "string" }, @@ -48659,7 +56506,7 @@ "type": "string" }, "network": { - "description": "[Output Only] The URL of the network which the Network Attachment belongs to.", + "description": "[Output Only] The URL of the network which the Network Attachment belongs to. Practically it is inferred by fetching the network of the first subnetwork associated. Because it is required that all the subnetworks must be from the same network, it is assured that the Network Attachment belongs to the same network as all the subnetworks.", "type": "string" }, "producerAcceptLists": { @@ -48742,6 +56589,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -48760,6 +56608,36 @@ "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.", @@ -48771,6 +56649,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -48823,7 +56702,11 @@ "id": "NetworkAttachmentConnectedEndpoint", "properties": { "ipAddress": { - "description": "The IP address assigned to the producer instance network interface. This value will be a range in case of Serverless.", + "description": "The IPv4 address assigned to the producer instance network interface. This value will be a range in case of Serverless.", + "type": "string" + }, + "ipv6Address": { + "description": "The IPv6 address assigned to the producer instance network interface. This is only assigned when the stack types of both the instance network interface and the consumer subnet are IPv4_IPv6.", "type": "string" }, "projectIdOrNum": { @@ -48831,7 +56714,7 @@ "type": "string" }, "secondaryIpCidrRanges": { - "description": "Alias IP ranges from the same subnetwork", + "description": "Alias IP ranges from the same subnetwork.", "items": { "type": "string" }, @@ -48860,6 +56743,10 @@ "subnetwork": { "description": "The subnetwork used to assign the IP to the producer instance network interface.", "type": "string" + }, + "subnetworkCidrRange": { + "description": "[Output Only] The CIDR range of the subnet from which the IPv4 internal IP was allocated from.", + "type": "string" } }, "type": "object" @@ -48906,6 +56793,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -48924,6 +56812,36 @@ "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.", @@ -48935,6 +56853,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -49008,6 +56927,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -49026,6 +56946,36 @@ "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.", @@ -49037,6 +56987,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -49189,6 +57140,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -49207,6 +57159,36 @@ "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.", @@ -49218,6 +57200,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -49291,6 +57274,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -49309,6 +57293,36 @@ "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.", @@ -49320,6 +57334,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -49383,15 +57398,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" } @@ -49399,7 +57414,7 @@ "type": "object" }, "NetworkEndpointGroup": { - "description": "Represents a collection of network endpoints. A network endpoint group (NEG) defines how a set of endpoints should be reached, whether they are reachable, and where they are located. For more information about using NEGs, see Setting up external HTTP(S) Load Balancing with internet NEGs, Setting up zonal NEGs, or Setting up external HTTP(S) Load Balancing with serverless NEGs.", + "description": "Represents a collection of network endpoints. A network endpoint group (NEG) defines how a set of endpoints should be reached, whether they are reachable, and where they are located. For more information about using NEGs for different use cases, see Network endpoint groups overview.", "id": "NetworkEndpointGroup", "properties": { "annotations": { @@ -49411,22 +57426,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" }, @@ -49449,7 +57464,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": { @@ -49478,7 +57493,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": { @@ -49556,6 +57571,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -49574,6 +57590,36 @@ "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.", @@ -49585,6 +57631,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -49637,15 +57684,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" } }, @@ -49656,11 +57703,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" } }, @@ -49679,7 +57726,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" } }, @@ -49728,6 +57775,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -49746,6 +57794,36 @@ "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.", @@ -49757,6 +57835,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -49923,6 +58002,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -49941,6 +58021,36 @@ "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.", @@ -49952,6 +58062,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -50025,6 +58136,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -50043,6 +58155,36 @@ "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.", @@ -50054,6 +58196,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -50166,7 +58309,7 @@ "type": "string" }, "ipv6Address": { - "description": "An IPv6 internal network address for this network interface.", + "description": "An IPv6 internal network address for this network interface. To use a static internal IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.", "type": "string" }, "kind": { @@ -50210,7 +58353,7 @@ "type": "integer" }, "stackType": { - "description": "The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used. This field can be both set at instance creation and update network interface operations.", + "description": "The stack type for this network interface. To assign only IPv4 addresses, use IPV4_ONLY. To assign both IPv4 and IPv6 addresses, use IPV4_IPV6. If not specified, IPV4_ONLY is used. This field can be both set at instance creation and update network interface operations.", "enum": [ "IPV4_IPV6", "IPV4_ONLY" @@ -50272,6 +58415,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -50290,6 +58434,36 @@ "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.", @@ -50301,6 +58475,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -50507,6 +58682,7 @@ "id": "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy", "properties": { "displayName": { + "deprecated": true, "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy.", "type": "string" }, @@ -50708,6 +58884,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -50726,6 +58903,36 @@ "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.", @@ -50737,6 +58944,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -50860,6 +59068,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -50878,6 +59087,36 @@ "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.", @@ -50889,6 +59128,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -51111,6 +59351,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -51129,6 +59370,36 @@ "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.", @@ -51140,6 +59411,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -51213,6 +59485,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -51231,6 +59504,36 @@ "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.", @@ -51242,6 +59545,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -51299,6 +59603,19 @@ }, "type": "object" }, + "NodeGroupsSimulateMaintenanceEventRequest": { + "id": "NodeGroupsSimulateMaintenanceEventRequest", + "properties": { + "nodes": { + "description": "Names of the nodes to go under maintenance simulation.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "NodeTemplate": { "description": "Represent a sole-tenant Node Template resource. You can use a template to define properties for nodes in a node group. For more information, read Creating node groups and instances.", "id": "NodeTemplate", @@ -51364,7 +59681,7 @@ }, "nodeTypeFlexibility": { "$ref": "NodeTemplateNodeTypeFlexibility", - "description": "The flexible properties of the desired node type. Node groups that use this node template will create nodes of a type that matches these properties. This field is mutually exclusive with the node_type property; you can only define one or the other, but not both." + "description": "Do not use. Instead, use the node_type property." }, "region": { "description": "[Output Only] The name of the region where the node template resides, such as us-central1.", @@ -51452,6 +59769,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -51470,6 +59788,36 @@ "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.", @@ -51481,6 +59829,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -51572,6 +59921,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -51590,6 +59940,36 @@ "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.", @@ -51601,6 +59981,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -51689,6 +60070,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -51707,6 +60089,36 @@ "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.", @@ -51718,6 +60130,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -51877,6 +60290,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -51895,6 +60309,36 @@ "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.", @@ -51906,6 +60350,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -51997,6 +60442,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -52015,6 +60461,36 @@ "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.", @@ -52026,6 +60502,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -52099,6 +60576,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -52117,6 +60595,36 @@ "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.", @@ -52128,6 +60636,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -52288,6 +60797,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -52306,6 +60816,36 @@ "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.", @@ -52317,6 +60857,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -52365,7 +60906,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 `zonalOperations` 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": { @@ -52450,6 +60991,9 @@ "description": "[Output Only] The time that this operation was requested. This value is in RFC3339 text format.", "type": "string" }, + "instancesBulkInsertOperationMetadata": { + "$ref": "InstancesBulkInsertOperationMetadata" + }, "kind": { "default": "compute#operation", "description": "[Output Only] Type of the resource. Always `compute#operation` for Operation resources.", @@ -52480,6 +61024,10 @@ "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, + "setCommonInstanceMetadataOperationMetadata": { + "$ref": "SetCommonInstanceMetadataOperationMetadata", + "description": "[Output Only] If the operation is for projects.setCommonInstanceMetadata, this field will contain information on all underlying zonal actions and their state." + }, "startTime": { "description": "[Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.", "type": "string" @@ -52512,7 +61060,7 @@ "type": "string" }, "user": { - "description": "[Output Only] User who requested the operation, for example: `user@example.com`.", + "description": "[Output Only] User who requested the operation, for example: `user@example.com` or `alice_smith_identifier (global/workforcePools/example-com-us-employees)`.", "type": "string" }, "warnings": { @@ -52532,6 +61080,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -52550,6 +61099,36 @@ "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.", @@ -52561,6 +61140,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -52665,6 +61245,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -52683,6 +61264,36 @@ "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.", @@ -52694,6 +61305,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -52785,6 +61397,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -52803,6 +61416,36 @@ "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.", @@ -52814,6 +61457,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -52887,6 +61531,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -52905,6 +61550,36 @@ "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.", @@ -52916,6 +61591,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -52969,54 +61645,54 @@ "properties": { "baseEjectionTime": { "$ref": "Duration", - "description": "The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s." + "description": "The base time that a backend endpoint is ejected for. Defaults to 30000ms or 30s. After a backend endpoint is returned back to the load balancing pool, it can be ejected again in another ejection analysis. Thus, the total ejection time is equal to the base ejection time multiplied by the number of times the backend endpoint has been ejected. Defaults to 30000ms or 30s." }, "consecutiveErrors": { - "description": "Number of errors before a host is ejected from the connection pool. When the backend host is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5. 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": "Number of consecutive errors before a backend endpoint is ejected from the load balancing pool. When the backend endpoint is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5.", "format": "int32", "type": "integer" }, "consecutiveGatewayFailure": { - "description": "The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3. 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": "The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3.", "format": "int32", "type": "integer" }, "enforcingConsecutiveErrors": { - "description": "The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0. 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": "The percentage chance that a backend endpoint will be ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0.", "format": "int32", "type": "integer" }, "enforcingConsecutiveGatewayFailure": { - "description": "The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. 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": "The percentage chance that a backend endpoint will be ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.", "format": "int32", "type": "integer" }, "enforcingSuccessRate": { - "description": "The percentage chance that a host will be actually ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.", + "description": "The percentage chance that a backend endpoint will be ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. Not supported when the backend service uses Serverless NEG.", "format": "int32", "type": "integer" }, "interval": { "$ref": "Duration", - "description": "Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second." + "description": "Time interval between ejection analysis sweeps. This can result in both new ejections and backend endpoints being returned to service. The interval is equal to the number of seconds as defined in outlierDetection.interval.seconds plus the number of nanoseconds as defined in outlierDetection.interval.nanos. Defaults to 1 second." }, "maxEjectionPercent": { - "description": "Maximum percentage of hosts in the load balancing pool for the backend service that can be ejected. Defaults to 50%.", + "description": "Maximum percentage of backend endpoints in the load balancing pool for the backend service that can be ejected if the ejection conditions are met. Defaults to 50%.", "format": "int32", "type": "integer" }, "successRateMinimumHosts": { - "description": "The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. Defaults to 5.", + "description": "The number of backend endpoints in the load balancing pool that must have enough request volume to detect success rate outliers. If the number of backend endpoints is fewer than this setting, outlier detection via success rate statistics is not performed for any backend endpoint in the load balancing pool. Defaults to 5. Not supported when the backend service uses Serverless NEG.", "format": "int32", "type": "integer" }, "successRateRequestVolume": { - "description": "The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. Defaults to 100.", + "description": "The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this backend endpoint in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that backend endpoint. Defaults to 100. Not supported when the backend service uses Serverless NEG.", "format": "int32", "type": "integer" }, "successRateStdevFactor": { - "description": "This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900.", + "description": "This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * successRateStdevFactor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900. Not supported when the backend service uses Serverless NEG.", "format": "int32", "type": "integer" } @@ -53215,6 +61891,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -53233,6 +61910,36 @@ "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.", @@ -53244,6 +61951,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -53295,14 +62003,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" }, @@ -53383,6 +62091,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -53401,6 +62110,36 @@ "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.", @@ -53412,6 +62151,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -53554,6 +62294,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -53572,6 +62313,36 @@ "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.", @@ -53583,6 +62354,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -53636,7 +62408,7 @@ "properties": { "defaultRouteAction": { "$ref": "HttpRouteAction", - "description": "defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a path matcher's defaultRouteAction." + "description": "defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path matcher's defaultRouteAction." }, "defaultService": { "description": "The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use ", @@ -53688,7 +62460,7 @@ }, "routeAction": { "$ref": "HttpRouteAction", - "description": "In response to a matching path, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of routeAction or urlRedirect must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a path rule's routeAction." + "description": "In response to a matching path, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of routeAction or urlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path rule's routeAction." }, "service": { "description": "The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.", @@ -53741,7 +62513,7 @@ "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/).", + "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": { @@ -53802,6 +62574,20 @@ "description": "Preserved disks defined for this instance. This map is keyed with the device names of the disks.", "type": "object" }, + "externalIPs": { + "additionalProperties": { + "$ref": "PreservedStatePreservedNetworkIp" + }, + "description": "Preserved external IPs defined for this instance. This map is keyed with the name of the network interface.", + "type": "object" + }, + "internalIPs": { + "additionalProperties": { + "$ref": "PreservedStatePreservedNetworkIp" + }, + "description": "Preserved internal IPs defined for this instance. This map is keyed with the name of the network interface.", + "type": "object" + }, "metadata": { "additionalProperties": { "type": "string" @@ -53846,10 +62632,60 @@ }, "type": "object" }, + "PreservedStatePreservedNetworkIp": { + "id": "PreservedStatePreservedNetworkIp", + "properties": { + "autoDelete": { + "description": "These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.", + "enum": [ + "NEVER", + "ON_PERMANENT_INSTANCE_DELETION" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "ipAddress": { + "$ref": "PreservedStatePreservedNetworkIpIpAddress", + "description": "Ip address representation" + } + }, + "type": "object" + }, + "PreservedStatePreservedNetworkIpIpAddress": { + "id": "PreservedStatePreservedNetworkIpIpAddress", + "properties": { + "address": { + "description": "The URL of the reservation for this IP address.", + "type": "string" + }, + "literal": { + "description": "An IPv4 internal network address to assign to the instance for this network interface.", + "type": "string" + } + }, + "type": "object" + }, "Project": { "description": "Represents a Project resource. A project is used to organize resources in a Google Cloud Platform environment. For more information, read about the Resource Hierarchy.", "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." @@ -54001,6 +62837,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": { @@ -54027,6 +62883,18 @@ "description": "A public advertised prefix represents an aggregated IP prefix or netblock which customers bring to cloud. The IP prefix is a single unit of route advertisement and is announced globally to the internet.", "id": "PublicAdvertisedPrefix", "properties": { + "byoipApiVersion": { + "description": "[Output Only] The version of BYOIP API.", + "enum": [ + "V1", + "V2" + ], + "enumDescriptions": [ + "This public advertised prefix can be used to create both regional and global public delegated prefixes. It usually takes 4 weeks to create or delete a public delegated prefix. The BGP status cannot be changed.", + "This public advertised prefix can only be used to create regional public delegated prefixes. Public delegated prefix creation and deletion takes minutes and the BGP status can be modified." + ], + "type": "string" + }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -54036,7 +62904,7 @@ "type": "string" }, "dnsVerificationIp": { - "description": "The IPv4 address to be used for reverse DNS verification.", + "description": "The address to be used for reverse DNS verification.", "type": "string" }, "fingerprint": { @@ -54050,7 +62918,7 @@ "type": "string" }, "ipCidrRange": { - "description": "The IPv4 address range, in CIDR format, represented by this public advertised prefix.", + "description": "The address range, in CIDR format, represented by this public advertised prefix.", "type": "string" }, "kind": { @@ -54068,6 +62936,20 @@ "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, + "pdpScope": { + "description": "Specifies how child public delegated prefix will be scoped. It could be one of following values: - `REGIONAL`: The public delegated prefix is regional only. The provisioning will take a few minutes. - `GLOBAL`: The public delegated prefix is global only. The provisioning will take ~4 weeks. - `GLOBAL_AND_REGIONAL` [output only]: The public delegated prefixes is BYOIP V1 legacy prefix. This is output only value and no longer supported in BYOIP V2. ", + "enum": [ + "GLOBAL", + "GLOBAL_AND_REGIONAL", + "REGIONAL" + ], + "enumDescriptions": [ + "The public delegated prefix is global only. The provisioning will take ~4 weeks.", + "The public delegated prefixes is BYOIP V1 legacy prefix. This is output only value and no longer supported in BYOIP V2.", + "The public delegated prefix is regional only. The provisioning will take a few minutes." + ], + "type": "string" + }, "publicDelegatedPrefixs": { "description": "[Output Only] The list of public delegated prefixes that exist for this public advertised prefix.", "items": { @@ -54086,20 +62968,24 @@ "status": { "description": "The status of the public advertised prefix. Possible values include: - `INITIAL`: RPKI validation is complete. - `PTR_CONFIGURED`: User has configured the PTR. - `VALIDATED`: Reverse DNS lookup is successful. - `REVERSE_DNS_LOOKUP_FAILED`: Reverse DNS lookup failed. - `PREFIX_CONFIGURATION_IN_PROGRESS`: The prefix is being configured. - `PREFIX_CONFIGURATION_COMPLETE`: The prefix is fully configured. - `PREFIX_REMOVAL_IN_PROGRESS`: The prefix is being removed. ", "enum": [ + "ANNOUNCED_TO_INTERNET", "INITIAL", "PREFIX_CONFIGURATION_COMPLETE", "PREFIX_CONFIGURATION_IN_PROGRESS", "PREFIX_REMOVAL_IN_PROGRESS", "PTR_CONFIGURED", + "READY_TO_ANNOUNCE", "REVERSE_DNS_LOOKUP_FAILED", "VALIDATED" ], "enumDescriptions": [ + "The prefix is announced to Internet.", "RPKI validation is complete.", "The prefix is fully configured.", "The prefix is being configured.", "The prefix is being removed.", "User has configured the PTR.", + "The prefix is currently withdrawn but ready to be announced.", "Reverse DNS lookup failed.", "Reverse DNS lookup is successful." ], @@ -54151,6 +63037,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -54169,6 +63056,36 @@ "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.", @@ -54180,6 +63097,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -54258,6 +63176,18 @@ "description": "A PublicDelegatedPrefix resource represents an IP block within a PublicAdvertisedPrefix that is configured within a single cloud scope (global or region). IPs in the block can be allocated to resources within that scope. Public delegated prefixes may be further broken up into smaller IP blocks in the same scope as the parent block.", "id": "PublicDelegatedPrefix", "properties": { + "byoipApiVersion": { + "description": "[Output Only] The version of BYOIP API.", + "enum": [ + "V1", + "V2" + ], + "enumDescriptions": [ + "This public delegated prefix usually takes 4 weeks to delete, and the BGP status cannot be changed. Announce and Withdraw APIs can not be used on this prefix.", + "This public delegated prefix takes minutes to delete. Announce and Withdraw APIs can be used on this prefix to change the BGP status." + ], + "type": "string" + }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -54277,7 +63207,7 @@ "type": "string" }, "ipCidrRange": { - "description": "The IPv4 address range, in CIDR format, represented by this public delegated prefix.", + "description": "The IP address range, in CIDR format, represented by this public delegated prefix.", "type": "string" }, "isLiveMigration": { @@ -54322,12 +63252,16 @@ "description": "[Output Only] The status of the public delegated prefix, which can be one of following values: - `INITIALIZING` The public delegated prefix is being initialized and addresses cannot be created yet. - `READY_TO_ANNOUNCE` The public delegated prefix is a live migration prefix and is active. - `ANNOUNCED` The public delegated prefix is active. - `DELETING` The public delegated prefix is being deprovsioned. ", "enum": [ "ANNOUNCED", + "ANNOUNCED_TO_GOOGLE", + "ANNOUNCED_TO_INTERNET", "DELETING", "INITIALIZING", "READY_TO_ANNOUNCE" ], "enumDescriptions": [ "The public delegated prefix is active.", + "The prefix is announced within Google network.", + "The prefix is announced to Internet and within Google.", "The public delegated prefix is being deprovsioned.", "The public delegated prefix is being initialized and addresses cannot be created yet.", "The public delegated prefix is currently withdrawn but ready to be announced." @@ -54388,6 +63322,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -54406,6 +63341,36 @@ "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.", @@ -54417,6 +63382,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -54507,6 +63473,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -54525,6 +63492,36 @@ "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.", @@ -54536,6 +63533,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -54596,7 +63594,7 @@ "type": "string" }, "ipCidrRange": { - "description": "The IPv4 address range, in CIDR format, represented by this sub public delegated prefix.", + "description": "The IP address range, in CIDR format, represented by this sub public delegated prefix.", "type": "string" }, "isAddress": { @@ -54652,6 +63650,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -54670,6 +63669,36 @@ "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.", @@ -54681,6 +63710,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -54764,13 +63794,16 @@ "COMMITTED_N2_CPUS", "COMMITTED_NVIDIA_A100_80GB_GPUS", "COMMITTED_NVIDIA_A100_GPUS", + "COMMITTED_NVIDIA_H100_GPUS", "COMMITTED_NVIDIA_K80_GPUS", + "COMMITTED_NVIDIA_L4_GPUS", "COMMITTED_NVIDIA_P100_GPUS", "COMMITTED_NVIDIA_P4_GPUS", "COMMITTED_NVIDIA_T4_GPUS", "COMMITTED_NVIDIA_V100_GPUS", "COMMITTED_T2A_CPUS", "COMMITTED_T2D_CPUS", + "COMMITTED_Z3_CPUS", "CPUS", "CPUS_ALL_REGIONS", "DISKS_TOTAL_GB", @@ -54813,13 +63846,18 @@ "N2D_CPUS", "N2_CPUS", "NETWORKS", + "NETWORK_ATTACHMENTS", "NETWORK_ENDPOINT_GROUPS", "NETWORK_FIREWALL_POLICIES", + "NET_LB_SECURITY_POLICIES_PER_REGION", + "NET_LB_SECURITY_POLICY_RULES_PER_REGION", + "NET_LB_SECURITY_POLICY_RULE_ATTRIBUTES_PER_REGION", "NODE_GROUPS", "NODE_TEMPLATES", "NVIDIA_A100_80GB_GPUS", "NVIDIA_A100_GPUS", "NVIDIA_K80_GPUS", + "NVIDIA_L4_GPUS", "NVIDIA_P100_GPUS", "NVIDIA_P100_VWS_GPUS", "NVIDIA_P4_GPUS", @@ -54833,7 +63871,9 @@ "PREEMPTIBLE_LOCAL_SSD_GB", "PREEMPTIBLE_NVIDIA_A100_80GB_GPUS", "PREEMPTIBLE_NVIDIA_A100_GPUS", + "PREEMPTIBLE_NVIDIA_H100_GPUS", "PREEMPTIBLE_NVIDIA_K80_GPUS", + "PREEMPTIBLE_NVIDIA_L4_GPUS", "PREEMPTIBLE_NVIDIA_P100_GPUS", "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS", "PREEMPTIBLE_NVIDIA_P4_GPUS", @@ -54841,6 +63881,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", @@ -54857,6 +63900,7 @@ "ROUTES", "SECURITY_POLICIES", "SECURITY_POLICIES_PER_REGION", + "SECURITY_POLICY_ADVANCED_RULES_PER_REGION", "SECURITY_POLICY_CEVAL_RULES", "SECURITY_POLICY_RULES", "SECURITY_POLICY_RULES_PER_REGION", @@ -54877,6 +63921,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", @@ -54914,6 +63961,9 @@ "", "", "", + "", + "", + "", "Guest CPUs", "", "", @@ -55004,6 +64054,17 @@ "", "", "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", "The total number of snapshots allowed for a single project.", "", "", @@ -55023,6 +64084,9 @@ "", "", "", + "", + "", + "", "" ], "type": "string" @@ -55050,6 +64114,11 @@ "description": "The map holding related quota dimensions.", "type": "object" }, + "futureLimit": { + "description": "Future quota limit being rolled out. The limit's unit depends on the quota type or metric.", + "format": "double", + "type": "number" + }, "limit": { "description": "Current effective quota limit. The limit's unit depends on the quota type or metric.", "format": "double", @@ -55062,6 +64131,18 @@ "metricName": { "description": "The Compute Engine quota metric name.", "type": "string" + }, + "rolloutStatus": { + "description": "Rollout status of the future quota limit.", + "enum": [ + "IN_PROGRESS", + "ROLLOUT_STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "IN_PROGRESS - A rollout is in process which will change the limit value to future limit.", + "ROLLOUT_STATUS_UNSPECIFIED - Rollout status is not specified. The default value." + ], + "type": "string" } }, "type": "object" @@ -55157,6 +64238,20 @@ }, "type": "object" }, + "RegionAddressesMoveRequest": { + "id": "RegionAddressesMoveRequest", + "properties": { + "description": { + "description": "An optional destination address description if intended to be different from the source.", + "type": "string" + }, + "destinationAddress": { + "description": "The URL of the destination address to move to. This can be a full or partial URL. For example, the following are all valid URLs to a address: - https://www.googleapis.com/compute/v1/projects/project/regions/region /addresses/address - projects/project/regions/region/addresses/address Note that destination project must be different from the source project. So /regions/region/addresses/address is not valid partial url.", + "type": "string" + } + }, + "type": "object" + }, "RegionAutoscalerList": { "description": "Contains a list of autoscalers.", "id": "RegionAutoscalerList", @@ -55201,6 +64296,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -55219,6 +64315,36 @@ "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.", @@ -55230,6 +64356,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -55320,6 +64447,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -55338,6 +64466,36 @@ "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.", @@ -55349,6 +64507,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -55433,6 +64592,16 @@ }, "type": "object" }, + "RegionDisksStartAsyncReplicationRequest": { + "id": "RegionDisksStartAsyncReplicationRequest", + "properties": { + "asyncSecondaryDisk": { + "description": "The secondary disk to start asynchronous replication to. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk ", + "type": "string" + } + }, + "type": "object" + }, "RegionInstanceGroupList": { "description": "Contains a list of InstanceGroup resources.", "id": "RegionInstanceGroupList", @@ -55477,6 +64646,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -55495,6 +64665,36 @@ "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.", @@ -55506,6 +64706,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -55611,6 +64812,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -55629,6 +64831,36 @@ "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.", @@ -55640,6 +64872,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -55744,7 +64977,7 @@ "type": "array" }, "minimalAction": { - "description": "The minimal action that you want to perform on each instance during the update: - REPLACE: At minimum, delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt the instance at all. By default, the minimum action is NONE. If your update requires a more disruptive action than you set with this flag, the necessary action is performed to execute the update.", + "description": "The minimal action that you want to perform on each instance during the update: - REPLACE: At minimum, delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the minimum action is NONE. If your update requires a more disruptive action than you set with this flag, the necessary action is performed to execute the update.", "enum": [ "NONE", "REFRESH", @@ -55753,14 +64986,14 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" }, "mostDisruptiveAllowedAction": { - "description": "The most disruptive action that you want to perform on each instance during the update: - REPLACE: Delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt the instance at all. By default, the most disruptive allowed action is REPLACE. If your update requires a more disruptive action than you set with this flag, the update request will fail.", + "description": "The most disruptive action that you want to perform on each instance during the update: - REPLACE: Delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the most disruptive allowed action is REPLACE. If your update requires a more disruptive action than you set with this flag, the update request will fail.", "enum": [ "NONE", "REFRESH", @@ -55769,9 +65002,9 @@ ], "enumDescriptions": [ "Do not perform any action.", - "Updates applied in runtime, instances will not be disrupted.", - "Old instances will be deleted. New instances will be created from the target template.", - "Every instance will be restarted." + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], "type": "string" } @@ -55856,6 +65089,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -55874,6 +65108,36 @@ "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.", @@ -55885,6 +65149,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -56033,6 +65298,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -56051,6 +65317,36 @@ "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.", @@ -56062,6 +65358,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -56194,6 +65491,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -56212,6 +65510,36 @@ "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.", @@ -56223,6 +65551,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -56270,6 +65599,32 @@ }, "type": "object" }, + "RegionNetworkEndpointGroupsAttachEndpointsRequest": { + "id": "RegionNetworkEndpointGroupsAttachEndpointsRequest", + "properties": { + "networkEndpoints": { + "description": "The list of network endpoints to be attached.", + "items": { + "$ref": "NetworkEndpoint" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionNetworkEndpointGroupsDetachEndpointsRequest": { + "id": "RegionNetworkEndpointGroupsDetachEndpointsRequest", + "properties": { + "networkEndpoints": { + "description": "The list of network endpoints to be detached.", + "items": { + "$ref": "NetworkEndpoint" + }, + "type": "array" + } + }, + "type": "object" + }, "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse": { "id": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse", "properties": { @@ -56405,6 +65760,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" @@ -56437,6 +65796,13 @@ "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, + "resourcePolicies": { + "additionalProperties": { + "type": "string" + }, + "description": "Resource policies to be added to this reservation. The key is defined by user, and the value is resource policy url. This is to define placement policy with reservation.", + "type": "object" + }, "resourceStatus": { "$ref": "AllocationResourceStatus", "description": "[Output Only] Status information for Reservation resource." @@ -56572,6 +65938,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -56590,6 +65957,36 @@ "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.", @@ -56601,6 +65998,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -56691,6 +66089,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -56709,6 +66108,36 @@ "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.", @@ -56720,6 +66149,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -56804,6 +66234,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -56822,6 +66253,36 @@ "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.", @@ -56833,6 +66294,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -56950,6 +66412,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -56968,6 +66431,36 @@ "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.", @@ -56979,6 +66472,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -57037,6 +66531,10 @@ "description": { "type": "string" }, + "diskConsistencyGroupPolicy": { + "$ref": "ResourcePolicyDiskConsistencyGroupPolicy", + "description": "Resource policy for disk consistency groups." + }, "groupPlacementPolicy": { "$ref": "ResourcePolicyGroupPlacementPolicy", "description": "Resource policy for instances for placement configuration." @@ -57156,6 +66654,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -57174,6 +66673,36 @@ "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.", @@ -57185,6 +66714,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -57252,6 +66782,12 @@ }, "type": "object" }, + "ResourcePolicyDiskConsistencyGroupPolicy": { + "description": "Resource policy for disk consistency groups.", + "id": "ResourcePolicyDiskConsistencyGroupPolicy", + "properties": {}, + "type": "object" + }, "ResourcePolicyGroupPlacementPolicy": { "description": "A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation as well as network locality", "id": "ResourcePolicyGroupPlacementPolicy", @@ -57314,7 +66850,7 @@ "type": "string" }, "timeZone": { - "description": "Specifies the time zone to be used in interpreting Schedule.schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database.", + "description": "Specifies the time zone to be used in interpreting Schedule.schedule. The value of this field must be a time zone name from the tz database: https://wikipedia.org/wiki/Tz_database.", "type": "string" }, "vmStartSchedule": { @@ -57385,6 +66921,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -57403,6 +66940,36 @@ "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.", @@ -57414,6 +66981,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -57635,6 +67203,9 @@ "physicalHost": { "description": "[Output Only] An opaque ID of the host on which the VM is running.", "type": "string" + }, + "upcomingMaintenance": { + "$ref": "UpcomingMaintenance" } }, "type": "object" @@ -57664,7 +67235,7 @@ "compute.routes.insert" ] }, - "description": "The destination range of outgoing packets that this route applies to. Both IPv4 and IPv6 are supported.", + "description": "The destination range of outgoing packets that this route applies to. Both IPv4 and IPv6 are supported. Must specify an IPv4 range (e.g. 192.0.2.0/24) or an IPv6 range in RFC 4291 format (e.g. 2001:db8::/32). IPv6 range will be displayed using RFC 5952 compressed format.", "type": "string" }, "id": { @@ -57700,6 +67271,10 @@ "description": "The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL: projects/ project/global/gateways/default-internet-gateway", "type": "string" }, + "nextHopHub": { + "description": "[Output Only] The full resource name of the Network Connectivity Center hub that will handle matching packets.", + "type": "string" + }, "nextHopIlb": { "description": "The URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should handle matching packets or the IP address of the forwarding Rule. For example, the following are all valid URLs: - 10.128.0.56 - https://www.googleapis.com/compute/v1/projects/project/regions/region /forwardingRules/forwardingRule - regions/region/forwardingRules/forwardingRule ", "type": "string" @@ -57709,7 +67284,7 @@ "type": "string" }, "nextHopIp": { - "description": "The network IP address of an instance that should handle matching packets. Only IPv4 is supported.", + "description": "The network IP address of an instance that should handle matching packets. Both IPv6 address and IPv4 addresses are supported. Must specify an IPv4 address in dot-decimal notation (e.g. 192.0.2.99) or an IPv6 address in RFC 4291 format (e.g. 2001:db8::2d9:51:0:0 or 2001:db8:0:0:2d9:51:0:0). IPv6 addresses will be displayed using RFC 5952 compressed format (e.g. 2001:db8::2d9:51:0:0). Should never be an IPv4-mapped IPv6 address.", "type": "string" }, "nextHopNetwork": { @@ -57799,6 +67374,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -57817,6 +67393,36 @@ "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.", @@ -57828,6 +67434,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -57951,6 +67558,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -57969,6 +67577,36 @@ "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.", @@ -57980,6 +67618,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -58060,7 +67699,7 @@ "type": "string" }, "interfaces": { - "description": "Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.", + "description": "Router interfaces. To create a BGP peer that uses a router interface, the interface must have one of the following fields specified: - linkedVpnTunnel - linkedInterconnectAttachment - subnetwork You can create a router interface without any of these fields specified. However, you cannot create a BGP peer that uses that interface.", "items": { "$ref": "RouterInterface" }, @@ -58183,6 +67822,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -58201,6 +67841,36 @@ "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.", @@ -58212,6 +67882,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -58323,7 +67994,7 @@ "type": "string" }, "advertisedGroups": { - "description": "User-specified list of prefix groups to advertise in custom mode, which can take one of the following options: - ALL_SUBNETS: Advertises all available subnets, including peer VPC subnets. - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets. Note that this field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the \"bgp\" message). These groups are advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.", + "description": "User-specified list of prefix groups to advertise in custom mode, which currently supports the following option: - ALL_SUBNETS: Advertises all of the router's own VPC subnets. This excludes any routes learned for subnets that use VPC Network Peering. Note that this field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the \"bgp\" message). These groups are advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.", "items": { "enum": [ "ALL_SUBNETS" @@ -58351,6 +68022,18 @@ "$ref": "RouterBgpPeerBfd", "description": "BFD configuration for the BGP peering." }, + "customLearnedIpRanges": { + "description": "A list of user-defined custom learned route IP address ranges for a BGP session.", + "items": { + "$ref": "RouterBgpPeerCustomLearnedIpRange" + }, + "type": "array" + }, + "customLearnedRoutePriority": { + "description": "The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route ranges for the session. You can choose a value from `0` to `65335`. If you don't provide a value, Google Cloud assigns a priority of `100` to the ranges.", + "format": "int32", + "type": "integer" + }, "enable": { "description": "The status of the BGP peer connection. If set to FALSE, any active session with the peer is terminated and all associated routing information is removed. If set to TRUE, the peer connection can be established with routing information. The default is TRUE.", "enum": [ @@ -58465,6 +68148,16 @@ }, "type": "object" }, + "RouterBgpPeerCustomLearnedIpRange": { + "id": "RouterBgpPeerCustomLearnedIpRange", + "properties": { + "range": { + "description": "The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, a `/32` singular IP address range, and, for IPv6, `/128`.", + "type": "string" + } + }, + "type": "object" + }, "RouterInterface": { "id": "RouterInterface", "properties": { @@ -58473,11 +68166,11 @@ "type": "string" }, "linkedInterconnectAttachment": { - "description": "URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a virtual machine instance.", + "description": "URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a subnetwork.", "type": "string" }, "linkedVpnTunnel": { - "description": "URI of the linked VPN tunnel, which must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a virtual machine instance.", + "description": "URI of the linked VPN tunnel, which must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a subnetwork.", "type": "string" }, "managementType": { @@ -58562,6 +68255,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -58580,6 +68274,36 @@ "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.", @@ -58591,6 +68315,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -58657,7 +68382,7 @@ "compute.routers.update" ] }, - "description": "Name used to identify the key. Must be unique within a router. Must be referenced by at least one bgpPeer. Must comply with RFC1035.", + "description": "Name used to identify the key. Must be unique within a router. Must be referenced by exactly one bgpPeer. Must comply with RFC1035.", "type": "string" } }, @@ -58667,6 +68392,22 @@ "description": "Represents a Nat resource. It enables the VMs within the specified subnetworks to access Internet without external IP addresses. It specifies a list of subnetworks (and the ranges within) that want to use NAT. Customers can also provide the external IPs that would be used for NAT. GCP would auto-allocate ephemeral IPs if no external IPs are provided.", "id": "RouterNat", "properties": { + "autoNetworkTier": { + "description": "The network tier to use when automatically reserving NAT IP addresses. Must be one of: PREMIUM, STANDARD. If not specified, then the current project-level default tier is used.", + "enum": [ + "FIXED_STANDARD", + "PREMIUM", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" + ], + "enumDescriptions": [ + "Public internet quality with fixed bandwidth.", + "High quality, Google-grade network tier, support for all networking products.", + "Public internet quality, only limited support for other networking products.", + "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." + ], + "type": "string" + }, "drainNatIps": { "description": "A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT only.", "items": { @@ -58685,10 +68426,12 @@ "description": "List of NAT-ted endpoint types supported by the Nat Gateway. If the list is empty, then it will be equivalent to include ENDPOINT_TYPE_VM", "items": { "enum": [ + "ENDPOINT_TYPE_MANAGED_PROXY_LB", "ENDPOINT_TYPE_SWG", "ENDPOINT_TYPE_VM" ], "enumDescriptions": [ + "This is used for regional Application Load Balancers (internal and external) and regional proxy Network Load Balancers (internal and external) endpoints.", "This is used for Secure Web Gateway endpoints.", "This is the default." ], @@ -58747,7 +68490,7 @@ "type": "array" }, "sourceSubnetworkIpRangesToNat": { - "description": "Specify the Nat option, which can take one of the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field subnetwork below) The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES or ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other Router.Nat section in any Router for this network in this region.", + "description": "Specify the Nat option, which can take one of the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field subnetwork below) The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES then there should not be any other Router.Nat section in any Router for this network in this region.", "enum": [ "ALL_SUBNETWORKS_ALL_IP_RANGES", "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES", @@ -58782,6 +68525,18 @@ "format": "int32", "type": "integer" }, + "type": { + "description": "Indicates whether this NAT is used for public or private IP translation. If unspecified, it defaults to PUBLIC.", + "enum": [ + "PRIVATE", + "PUBLIC" + ], + "enumDescriptions": [ + "NAT used for private IP translation.", + "NAT used for public IP translation. This is the default." + ], + "type": "string" + }, "udpIdleTimeoutSec": { "description": "Timeout (in seconds) for UDP connections. Defaults to 30s if not set.", "format": "int32", @@ -58827,7 +68582,7 @@ "type": "string" }, "match": { - "description": "CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. If it evaluates to true, the corresponding `action` is enforced. The following examples are valid match expressions for public NAT: \"inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')\" \"destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'\" The following example is a valid match expression for private NAT: \"nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'\"", + "description": "CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. If it evaluates to true, the corresponding `action` is enforced. The following examples are valid match expressions for public NAT: \"inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')\" \"destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'\" The following example is a valid match expression for private NAT: \"nexthop.hub == '//networkconnectivity.googleapis.com/projects/my-project/locations/global/hubs/hub-1'\"", "type": "string" }, "ruleNumber": { @@ -58848,12 +68603,26 @@ }, "type": "array" }, + "sourceNatActiveRanges": { + "description": "A list of URLs of the subnetworks used as source ranges for this NAT Rule. These subnetworks must have purpose set to PRIVATE_NAT. This field is used for private NAT.", + "items": { + "type": "string" + }, + "type": "array" + }, "sourceNatDrainIps": { "description": "A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT.", "items": { "type": "string" }, "type": "array" + }, + "sourceNatDrainRanges": { + "description": "A list of URLs of subnetworks representing source ranges to be drained. This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. This field is used for private NAT.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -59173,6 +68942,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -59191,6 +68961,36 @@ "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.", @@ -59202,6 +69002,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -59328,7 +69129,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", @@ -59576,6 +69377,10 @@ ], "type": "string" }, + "localSsdRecoveryTimeout": { + "$ref": "Duration", + "description": "Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour." + }, "locationHint": { "description": "An opaque location hint used to place the instance close to other resources. This field is for use by internal tools that use the public API.", "type": "string" @@ -59725,6 +69530,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -59743,6 +69549,36 @@ "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.", @@ -59754,6 +69590,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -59836,6 +69673,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -59854,6 +69692,36 @@ "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.", @@ -59865,6 +69733,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -59957,6 +69826,18 @@ "description": "[Output only] Type of the resource. Always compute#securityPolicyfor security policies", "type": "string" }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this security policy, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels. To see the latest fingerprint, make get() request to the security policy.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "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])?", @@ -59981,7 +69862,7 @@ "type": "string" }, "type": { - "description": "The type indicates the intended use of the security policy. - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can be configured to filter incoming HTTP requests targeting backend services (including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They filter requests before the request is served from Google's cache. - CLOUD_ARMOR_INTERNAL_SERVICE: Cloud Armor internal service policies can be configured to filter HTTP requests targeting services managed by Traffic Director in a service mesh. They filter requests before the request is served from the application. This field can be set only at resource creation time.", + "description": "The type indicates the intended use of the security policy. - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can be configured to filter incoming HTTP requests targeting backend services (including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They filter requests before the request is served from Google's cache. - CLOUD_ARMOR_INTERNAL_SERVICE: Cloud Armor internal service policies can be configured to filter HTTP requests targeting services managed by Traffic Director in a service mesh. They filter requests before the request is served from the application. - CLOUD_ARMOR_NETWORK: Cloud Armor network policies can be configured to filter packets targeting network load balancing resources such as backend services, target pools, target instances, and instances with external IPs. They filter requests before the request is served from the application. This field can be set only at resource creation time.", "enum": [ "CLOUD_ARMOR", "CLOUD_ARMOR_EDGE", @@ -59993,6 +69874,13 @@ "" ], "type": "string" + }, + "userDefinedFields": { + "description": "Definitions of user-defined fields for CLOUD_ARMOR_NETWORK policies. A user-defined field consists of up to 4 bytes extracted from a fixed offset in the packet, relative to the IPv4, IPv6, TCP, or UDP header, with an optional mask to select certain bits. Rules may then specify matching values for these fields. Example: userDefinedFields: - name: \"ipv4_fragment_offset\" base: IPV4 offset: 6 size: 2 mask: \"0x1fff\"", + "items": { + "$ref": "SecurityPolicyUserDefinedField" + }, + "type": "array" } }, "type": "object" @@ -60009,15 +69897,15 @@ "type": "object" }, "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig": { - "description": "Configuration options for L7 DDoS detection.", + "description": "Configuration options for L7 DDoS detection. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig", "properties": { "enable": { - "description": "If set to true, enables CAAP for L7 DDoS detection.", + "description": "If set to true, enables CAAP for L7 DDoS detection. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", "type": "boolean" }, "ruleVisibility": { - "description": "Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules.", + "description": "Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", "enum": [ "PREMIUM", "STANDARD" @@ -60027,6 +69915,40 @@ "" ], "type": "string" + }, + "thresholdConfigs": { + "description": "Configuration options for layer7 adaptive protection for various customizable thresholds.", + "items": { + "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig": { + "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig", + "properties": { + "autoDeployConfidenceThreshold": { + "format": "float", + "type": "number" + }, + "autoDeployExpirationSec": { + "format": "int32", + "type": "integer" + }, + "autoDeployImpactedBaselineThreshold": { + "format": "float", + "type": "number" + }, + "autoDeployLoadThreshold": { + "format": "float", + "type": "number" + }, + "name": { + "description": "The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the security policy.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" } }, "type": "object" @@ -60041,9 +69963,11 @@ "jsonParsing": { "enum": [ "DISABLED", - "STANDARD" + "STANDARD", + "STANDARD_WITH_GRAPHQL" ], "enumDescriptions": [ + "", "", "" ], @@ -60059,6 +69983,13 @@ "" ], "type": "string" + }, + "userIpRequestHeaders": { + "description": "An optional list of case-insensitive request header names to use for resolving the callers client IP address.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -60132,6 +70063,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -60150,6 +70082,36 @@ "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.", @@ -60161,6 +70123,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -60212,7 +70175,7 @@ "id": "SecurityPolicyRecaptchaOptionsConfig", "properties": { "redirectSiteKey": { - "description": "An optional field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used.", + "description": "An optional field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", "type": "string" } }, @@ -60232,7 +70195,7 @@ "id": "SecurityPolicyRule", "properties": { "action": { - "description": "The Action to perform when the rule is matched. The following are the valid actions: - allow: allow access to target. - deny(): deny access to target, returns the HTTP response code specified (valid values are 403, 404, and 502). - rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rate_limit_options to be set. - redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. - throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rate_limit_options to be set for this. ", + "description": "The Action to perform when the rule is matched. The following are the valid actions: - allow: allow access to target. - deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for `STATUS` are 403, 404, and 502. - rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rate_limit_options to be set. - redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. - throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rate_limit_options to be set for this. ", "type": "string" }, "description": { @@ -60241,7 +70204,7 @@ }, "headerAction": { "$ref": "SecurityPolicyRuleHttpHeaderAction", - "description": "Optional, additional actions that are performed on headers." + "description": "Optional, additional actions that are performed on headers. This field is only supported in Global Security Policies of type CLOUD_ARMOR." }, "kind": { "default": "compute#securityPolicyRule", @@ -60252,6 +70215,14 @@ "$ref": "SecurityPolicyRuleMatcher", "description": "A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced." }, + "networkMatch": { + "$ref": "SecurityPolicyRuleNetworkMatcher", + "description": "A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. Example: networkMatch: srcIpRanges: - \"192.0.2.0/24\" - \"198.51.100.0/24\" userDefinedFields: - name: \"ipv4_fragment_offset\" values: - \"1-0x1fff\" The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named \"ipv4_fragment_offset\" with a value between 1 and 0x1fff inclusive." + }, + "preconfiguredWafConfig": { + "$ref": "SecurityPolicyRulePreconfiguredWafConfig", + "description": "Preconfigured WAF configuration to be applied for the rule. If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect." + }, "preview": { "description": "If set to true, the specified action is not enforced.", "type": "boolean" @@ -60267,7 +70238,7 @@ }, "redirectOptions": { "$ref": "SecurityPolicyRuleRedirectOptions", - "description": "Parameters defining the redirect action. Cannot be specified for any other actions." + "description": "Parameters defining the redirect action. Cannot be specified for any other actions. This field is only supported in Global Security Policies of type CLOUD_ARMOR." } }, "type": "object" @@ -60309,7 +70280,11 @@ }, "expr": { "$ref": "Expr", - "description": "User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header." + "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.", @@ -60337,6 +70312,203 @@ }, "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", + "properties": { + "destIpRanges": { + "description": "Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format.", + "items": { + "type": "string" + }, + "type": "array" + }, + "destPorts": { + "description": "Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. \"80\") or range (e.g. \"0-1023\").", + "items": { + "type": "string" + }, + "type": "array" + }, + "ipProtocols": { + "description": "IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. \"6\"), range (e.g. \"253-254\"), or one of the following protocol names: \"tcp\", \"udp\", \"icmp\", \"esp\", \"ah\", \"ipip\", or \"sctp\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "srcAsns": { + "description": "BGP Autonomous System Number associated with the source IP address.", + "items": { + "format": "uint32", + "type": "integer" + }, + "type": "array" + }, + "srcIpRanges": { + "description": "Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format.", + "items": { + "type": "string" + }, + "type": "array" + }, + "srcPorts": { + "description": "Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. \"80\") or range (e.g. \"0-1023\").", + "items": { + "type": "string" + }, + "type": "array" + }, + "srcRegionCodes": { + "description": "Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address.", + "items": { + "type": "string" + }, + "type": "array" + }, + "userDefinedFields": { + "description": "User-defined fields. Each element names a defined field and lists the matching values for that field.", + "items": { + "$ref": "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch" + }, + "type": "array" + } + }, + "type": "object" + }, + "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch": { + "id": "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch", + "properties": { + "name": { + "description": "Name of the user-defined field, as given in the definition.", + "type": "string" + }, + "values": { + "description": "Matching values of the field. Each element can be a 32-bit unsigned decimal or hexadecimal (starting with \"0x\") number (e.g. \"64\") or range (e.g. \"0x400-0x7ff\").", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "SecurityPolicyRulePreconfiguredWafConfig": { + "id": "SecurityPolicyRulePreconfiguredWafConfig", + "properties": { + "exclusions": { + "description": "A list of exclusions to apply during preconfigured WAF evaluation.", + "items": { + "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusion" + }, + "type": "array" + } + }, + "type": "object" + }, + "SecurityPolicyRulePreconfiguredWafConfigExclusion": { + "id": "SecurityPolicyRulePreconfiguredWafConfigExclusion", + "properties": { + "requestCookiesToExclude": { + "description": "A list of request cookie names whose value will be excluded from inspection during preconfigured WAF evaluation.", + "items": { + "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" + }, + "type": "array" + }, + "requestHeadersToExclude": { + "description": "A list of request header names whose value will be excluded from inspection during preconfigured WAF evaluation.", + "items": { + "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" + }, + "type": "array" + }, + "requestQueryParamsToExclude": { + "description": "A list of request query parameter names whose value will be excluded from inspection during preconfigured WAF evaluation. Note that the parameter can be in the query string or in the POST body.", + "items": { + "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" + }, + "type": "array" + }, + "requestUrisToExclude": { + "description": "A list of request URIs from the request line to be excluded from inspection during preconfigured WAF evaluation. When specifying this field, the query or fragment part should be excluded.", + "items": { + "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" + }, + "type": "array" + }, + "targetRuleIds": { + "description": "A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. If omitted, it refers to all the rule IDs under the WAF rule set.", + "items": { + "type": "string" + }, + "type": "array" + }, + "targetRuleSet": { + "description": "Target WAF rule set to apply the preconfigured WAF exclusion.", + "type": "string" + } + }, + "type": "object" + }, + "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams": { + "id": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams", + "properties": { + "op": { + "description": "The match operator for the field.", + "enum": [ + "CONTAINS", + "ENDS_WITH", + "EQUALS", + "EQUALS_ANY", + "STARTS_WITH" + ], + "enumDescriptions": [ + "The operator matches if the field value contains the specified value.", + "The operator matches if the field value ends with the specified value.", + "The operator matches if the field value equals the specified value.", + "The operator matches if the field value is any value.", + "The operator matches if the field value starts with the specified value." + ], + "type": "string" + }, + "val": { + "description": "The value of the field.", + "type": "string" + } + }, + "type": "object" + }, "SecurityPolicyRuleRateLimitOptions": { "id": "SecurityPolicyRuleRateLimitOptions", "properties": { @@ -60354,7 +70526,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", @@ -60363,6 +70535,8 @@ "IP", "REGION_CODE", "SNI", + "TLS_JA3_FINGERPRINT", + "USER_IP", "XFF_IP" ], "enumDescriptions": [ @@ -60373,21 +70547,30 @@ "", "", "", + "", + "", "" ], "type": "string" }, + "enforceOnKeyConfigs": { + "description": "If specified, any combination of values of enforce_on_key_type/enforce_on_key_name is treated as the key on which ratelimit threshold/action is enforced. You can specify up to 3 enforce_on_key_configs. If enforce_on_key_configs is specified, enforce_on_key must not be specified.", + "items": { + "$ref": "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig" + }, + "type": "array" + }, "enforceOnKeyName": { "description": "Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.", "type": "string" }, "exceedAction": { - "description": "Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are \"deny(status)\", where valid values for status are 403, 404, 429, and 502, and \"redirect\" where the redirect parameters come from exceedRedirectOptions below.", + "description": "Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are `deny(STATUS)`, where valid values for `STATUS` are 403, 404, 429, and 502, and `redirect`, where the redirect parameters come from `exceedRedirectOptions` below. The `redirect` action is only supported in Global Security Policies of type CLOUD_ARMOR.", "type": "string" }, "exceedRedirectOptions": { "$ref": "SecurityPolicyRuleRedirectOptions", - "description": "Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect." + "description": "Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR." }, "rateLimitThreshold": { "$ref": "SecurityPolicyRuleRateLimitOptionsThreshold", @@ -60396,6 +70579,44 @@ }, "type": "object" }, + "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig": { + "id": "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig", + "properties": { + "enforceOnKeyName": { + "description": "Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.", + "type": "string" + }, + "enforceOnKeyType": { + "description": "Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if \"enforceOnKeyConfigs\" is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The country/region from which the request originates. - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. - USER_IP: The IP address of the originating client, which is resolved based on \"userIpRequestHeaders\" configured with the security policy. If there is no \"userIpRequestHeaders\" configuration or an IP address cannot be resolved from it, the key type defaults to IP. ", + "enum": [ + "ALL", + "HTTP_COOKIE", + "HTTP_HEADER", + "HTTP_PATH", + "IP", + "REGION_CODE", + "SNI", + "TLS_JA3_FINGERPRINT", + "USER_IP", + "XFF_IP" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, "SecurityPolicyRuleRateLimitOptionsThreshold": { "id": "SecurityPolicyRuleRateLimitOptionsThreshold", "properties": { @@ -60434,16 +70655,60 @@ }, "type": "object" }, + "SecurityPolicyUserDefinedField": { + "id": "SecurityPolicyUserDefinedField", + "properties": { + "base": { + "description": "The base relative to which 'offset' is measured. Possible values are: - IPV4: Points to the beginning of the IPv4 header. - IPV6: Points to the beginning of the IPv6 header. - TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. - UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. required", + "enum": [ + "IPV4", + "IPV6", + "TCP", + "UDP" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "mask": { + "description": "If specified, apply this mask (bitwise AND) to the field to ignore bits before matching. Encoded as a hexadecimal number (starting with \"0x\"). The last byte of the field (in network byte order) corresponds to the least significant byte of the mask.", + "type": "string" + }, + "name": { + "description": "The name of this field. Must be unique within the policy.", + "type": "string" + }, + "offset": { + "description": "Offset of the first byte of the field (in network byte order) relative to 'base'.", + "format": "int32", + "type": "integer" + }, + "size": { + "description": "Size of the field in bytes. Valid values: 1-4.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "SecuritySettings": { "description": "The authentication and authorization settings for a BackendService.", "id": "SecuritySettings", "properties": { + "awsV4Authentication": { + "$ref": "AWSV4Signature", + "description": "The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends." + }, "clientTlsPolicy": { - "description": "Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that describes how clients should authenticate with this service's backends. clientTlsPolicy only applies to a global BackendService with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted. Note: This field currently has no impact.", + "description": "Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that describes how clients should authenticate with this service's backends. clientTlsPolicy only applies to a global BackendService with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted.", "type": "string" }, "subjectAltNames": { - "description": "Optional. A list of Subject Alternative Names (SANs) that the client verifies during a mutual TLS handshake with an server/endpoint for this BackendService. When the server presents its X.509 certificate to the client, the client inspects the certificate's subjectAltName field. If the field contains one of the specified values, the communication continues. Otherwise, it fails. This additional check enables the client to verify that the server is authorized to run the requested service. Note that the contents of the server certificate's subjectAltName field are configured by the Public Key Infrastructure which provisions server identities. Only applies to a global BackendService with loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached clientTlsPolicy with clientCertificate (mTLS mode). Note: This field currently has no impact.", + "description": "Optional. A list of Subject Alternative Names (SANs) that the client verifies during a mutual TLS handshake with an server/endpoint for this BackendService. When the server presents its X.509 certificate to the client, the client inspects the certificate's subjectAltName field. If the field contains one of the specified values, the communication continues. Otherwise, it fails. This additional check enables the client to verify that the server is authorized to run the requested service. Note that the contents of the server certificate's subjectAltName field are configured by the Public Key Infrastructure which provisions server identities. Only applies to a global BackendService with loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached clientTlsPolicy with clientCertificate (mTLS mode).", "items": { "type": "string" }, @@ -60520,7 +70785,7 @@ "type": "object" }, "ServiceAttachment": { - "description": "Represents a ServiceAttachment resource. A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 20", + "description": "Represents a ServiceAttachment resource. A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service.", "id": "ServiceAttachment", "properties": { "connectedEndpoints": { @@ -60610,6 +70875,7 @@ "type": "array" }, "producerForwardingRule": { + "deprecated": true, "description": "The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is serving the endpoint identified by this service attachment.", "type": "string" }, @@ -60617,6 +70883,10 @@ "$ref": "Uint128", "description": "[Output Only] An 128-bit global unique ID of the PSC service attachment." }, + "reconcileConnections": { + "description": "This flag determines whether a consumer accept/reject list change can reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints. - If false, connection policy update will only affect existing PENDING PSC endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched regardless how the connection policy is modified . - If true, update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to the reject list. For newly created service attachment, this boolean defaults to false.", + "type": "boolean" + }, "region": { "description": "[Output Only] URL of the region where the service attachment resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", "type": "string" @@ -60684,6 +70954,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -60702,6 +70973,36 @@ "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.", @@ -60713,6 +71014,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -60764,6 +71066,10 @@ "description": "[Output Only] A connection connected to this service attachment.", "id": "ServiceAttachmentConnectedEndpoint", "properties": { + "consumerNetwork": { + "description": "The url of the consumer network.", + "type": "string" + }, "endpoint": { "description": "The url of a connected endpoint.", "type": "string" @@ -60858,6 +71164,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -60876,6 +71183,36 @@ "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.", @@ -60887,6 +71224,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -60960,6 +71298,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -60978,6 +71317,36 @@ "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.", @@ -60989,6 +71358,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -61036,6 +71406,53 @@ }, "type": "object" }, + "SetCommonInstanceMetadataOperationMetadata": { + "id": "SetCommonInstanceMetadataOperationMetadata", + "properties": { + "clientOperationId": { + "description": "[Output Only] The client operation id.", + "type": "string" + }, + "perLocationOperations": { + "additionalProperties": { + "$ref": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo" + }, + "description": "[Output Only] Status information per location (location name is key). Example key: zones/us-central1-a", + "type": "object" + } + }, + "type": "object" + }, + "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo": { + "id": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo", + "properties": { + "error": { + "$ref": "Status", + "description": "[Output Only] If state is `ABANDONED` or `FAILED`, this field is populated." + }, + "state": { + "description": "[Output Only] Status of the action, which can be one of the following: `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.", + "enum": [ + "ABANDONED", + "DONE", + "FAILED", + "PROPAGATED", + "PROPAGATING", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "Operation not tracked in this location e.g. zone is marked as DOWN.", + "Operation has completed successfully.", + "Operation is in an error state.", + "Operation is confirmed to be in the location.", + "Operation is not yet confirmed to have been created in the location.", + "" + ], + "type": "string" + } + }, + "type": "object" + }, "ShareSettings": { "description": "The share setting for reservations and sole tenancy node groups.", "id": "ShareSettings", @@ -61207,6 +71624,17 @@ "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": { + "$ref": "GuestOsFeature" + }, + "type": "array" + }, "id": { "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", "format": "uint64", @@ -61251,6 +71679,7 @@ "name": { "annotations": { "required": [ + "compute.disks.createSnapshot", "compute.snapshots.insert" ] }, @@ -61258,6 +71687,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" @@ -61290,10 +71724,26 @@ "$ref": "CustomerEncryptionKey", "description": "The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key." }, + "sourceDiskForRecoveryCheckpoint": { + "description": "The source disk whose recovery checkpoint will be used to create this snapshot.", + "type": "string" + }, "sourceDiskId": { "description": "[Output Only] The ID value of the disk used to create this snapshot. This value may be used to determine whether the snapshot was taken from the current or a previous instance of a given disk name.", "type": "string" }, + "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" @@ -61391,6 +71841,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -61409,6 +71860,36 @@ "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.", @@ -61420,6 +71901,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -61467,6 +71949,56 @@ }, "type": "object" }, + "SnapshotSettings": { + "id": "SnapshotSettings", + "properties": { + "storageLocation": { + "$ref": "SnapshotSettingsStorageLocationSettings", + "description": "Policy of which storage location is going to be resolved, and additional data that particularizes how the policy is going to be carried out." + } + }, + "type": "object" + }, + "SnapshotSettingsStorageLocationSettings": { + "id": "SnapshotSettingsStorageLocationSettings", + "properties": { + "locations": { + "additionalProperties": { + "$ref": "SnapshotSettingsStorageLocationSettingsStorageLocationPreference" + }, + "description": "When the policy is SPECIFIC_LOCATIONS, snapshots will be stored in the locations listed in this field. Keys are GCS bucket locations.", + "type": "object" + }, + "policy": { + "description": "The chosen location policy.", + "enum": [ + "LOCAL_REGION", + "NEAREST_MULTI_REGION", + "SPECIFIC_LOCATIONS", + "STORAGE_LOCATION_POLICY_UNSPECIFIED" + ], + "enumDescriptions": [ + "Store snapshot in the same region as with the originating disk. No additional parameters are needed.", + "Store snapshot to the nearest multi region GCS bucket, relative to the originating disk. No additional parameters are needed.", + "Store snapshot in the specific locations, as specified by the user. The list of regions to store must be defined under the `locations` field.", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "SnapshotSettingsStorageLocationSettingsStorageLocationPreference": { + "description": "A structure for specifying storage locations.", + "id": "SnapshotSettingsStorageLocationSettingsStorageLocationPreference", + "properties": { + "name": { + "description": "Name of the location. It should be one of the GCS buckets.", + "type": "string" + } + }, + "type": "object" + }, "SourceDiskEncryptionKey": { "id": "SourceDiskEncryptionKey", "properties": { @@ -61584,7 +72116,7 @@ "type": "object" }, "SslCertificate": { - "description": "Represents an SSL Certificate resource. Google Compute Engine has two SSL Certificate resources: * [Global](/compute/docs/reference/rest/v1/sslCertificates) * [Regional](/compute/docs/reference/rest/v1/regionSslCertificates) The sslCertificates are used by: - external HTTPS load balancers - SSL proxy load balancers The regionSslCertificates are used by internal HTTPS load balancers. Optionally, certificate file contents that you upload can contain a set of up to five PEM-encoded certificates. The API call creates an object (sslCertificate) that holds this data. You can use SSL keys and certificates to secure connections to a load balancer. For more information, read Creating and using SSL certificates, SSL certificates quotas and limits, and Troubleshooting SSL certificates.", + "description": "Represents an SSL certificate resource. Google Compute Engine has two SSL certificate resources: * [Global](/compute/docs/reference/rest/v1/sslCertificates) * [Regional](/compute/docs/reference/rest/v1/regionSslCertificates) The global SSL certificates (sslCertificates) are used by: - Global external Application Load Balancers - Classic Application Load Balancers - Proxy Network Load Balancers (with target SSL proxies) The regional SSL certificates (regionSslCertificates) are used by: - Regional external Application Load Balancers - Regional internal Application Load Balancers Optionally, certificate file contents that you upload can contain a set of up to five PEM-encoded certificates. The API call creates an object (sslCertificate) that holds this data. You can use SSL keys and certificates to secure connections to a load balancer. For more information, read Creating and using SSL certificates, SSL certificates quotas and limits, and Troubleshooting SSL certificates.", "id": "SslCertificate", "properties": { "certificate": { @@ -61713,6 +72245,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -61731,6 +72264,36 @@ "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.", @@ -61742,6 +72305,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -61833,6 +72397,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -61851,6 +72416,36 @@ "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.", @@ -61862,6 +72457,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -62009,6 +72605,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -62027,6 +72624,36 @@ "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.", @@ -62038,6 +72665,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -62139,6 +72767,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -62157,6 +72786,36 @@ "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.", @@ -62168,6 +72827,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -62258,6 +72918,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -62276,6 +72937,36 @@ "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.", @@ -62287,6 +72978,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -62372,6 +73064,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -62390,6 +73083,36 @@ "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.", @@ -62401,6 +73124,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -62449,7 +73173,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": { @@ -62549,6 +73273,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -62567,6 +73292,36 @@ "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.", @@ -62578,6 +73333,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -62656,6 +73412,20 @@ }, "description": "Disks created on the instances that will be preserved on instance delete, update, etc. This map is keyed with the device names of the disks.", "type": "object" + }, + "externalIPs": { + "additionalProperties": { + "$ref": "StatefulPolicyPreservedStateNetworkIp" + }, + "description": "External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name.", + "type": "object" + }, + "internalIPs": { + "additionalProperties": { + "$ref": "StatefulPolicyPreservedStateNetworkIp" + }, + "description": "Internal network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name.", + "type": "object" } }, "type": "object" @@ -62678,6 +73448,51 @@ }, "type": "object" }, + "StatefulPolicyPreservedStateNetworkIp": { + "id": "StatefulPolicyPreservedStateNetworkIp", + "properties": { + "autoDelete": { + "description": "These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.", + "enum": [ + "NEVER", + "ON_PERMANENT_INSTANCE_DELETION" + ], + "enumDescriptions": [ + "", + "" + ], + "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" + }, "Subnetwork": { "description": "Represents a Subnetwork resource. A subnetwork (also known as a subnet) is a logical partition of a Virtual Private Cloud network with one primary IP range and zero or more secondary IP ranges. For more information, read Virtual Private Cloud (VPC) Network.", "id": "Subnetwork", @@ -62691,7 +73506,7 @@ "type": "string" }, "enableFlowLogs": { - "description": "Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. This field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.", + "description": "Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. This field isn't supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.", "type": "boolean" }, "externalIpv6Prefix": { @@ -62773,20 +73588,24 @@ "type": "string" }, "purpose": { - "description": "The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.", + "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", "PRIVATE", + "PRIVATE_NAT", "PRIVATE_RFC_1918", "PRIVATE_SERVICE_CONNECT", "REGIONAL_MANAGED_PROXY" ], "enumDescriptions": [ - "Subnet reserved for Internal HTTP(S) Load Balancing.", + "Subnet reserved for Global Envoy-based Load Balancing.", + "Subnet reserved for Internal HTTP(S) Load Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY instead.", "Regular user created or automatically created subnet.", + "Subnetwork used as source range for Private NAT Gateways.", "Regular user created or automatically created subnet.", "Subnetworks created for Private Service Connect in the producer network.", - "Subnetwork used for Regional Internal/External HTTP(S) Load Balancing." + "Subnetwork used for Regional Envoy-based Load Balancing." ], "type": "string" }, @@ -62794,8 +73613,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 = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.", + "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" @@ -62895,6 +73718,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -62913,6 +73737,36 @@ "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.", @@ -62924,6 +73778,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -63015,6 +73870,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -63033,6 +73889,36 @@ "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.", @@ -63044,6 +73930,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -63116,7 +74003,7 @@ "type": "string" }, "enable": { - "description": "Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled.", + "description": "Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. Flow logging isn't supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.", "type": "boolean" }, "filterExpr": { @@ -63163,6 +74050,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" @@ -63203,6 +74094,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -63221,6 +74113,36 @@ "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.", @@ -63232,6 +74154,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -63319,7 +74242,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", @@ -63474,6 +74397,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -63492,6 +74416,36 @@ "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.", @@ -63503,6 +74457,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -63576,6 +74531,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -63594,6 +74550,36 @@ "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.", @@ -63605,6 +74591,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -63653,7 +74640,7 @@ "type": "object" }, "TargetHttpProxy": { - "description": "Represents a Target HTTP Proxy resource. Google Compute Engine has two Target HTTP Proxy resources: * [Global](/compute/docs/reference/rest/v1/targetHttpProxies) * [Regional](/compute/docs/reference/rest/v1/regionTargetHttpProxies) A target HTTP proxy is a component of GCP HTTP load balancers. * targetHttpProxies are used by external HTTP load balancers and Traffic Director. * regionTargetHttpProxies are used by internal HTTP load balancers. Forwarding rules reference a target HTTP proxy, and the target proxy then references a URL map. For more information, read Using Target Proxies and Forwarding rule concepts.", + "description": "Represents a Target HTTP Proxy resource. Google Compute Engine has two Target HTTP Proxy resources: * [Global](/compute/docs/reference/rest/v1/targetHttpProxies) * [Regional](/compute/docs/reference/rest/v1/regionTargetHttpProxies) A target HTTP proxy is a component of Google Cloud HTTP load balancers. * targetHttpProxies are used by global external Application Load Balancers, classic Application Load Balancers, cross-region internal Application Load Balancers, and Traffic Director. * regionTargetHttpProxies are used by regional internal Application Load Balancers and regional external Application Load Balancers. Forwarding rules reference a target HTTP proxy, and the target proxy then references a URL map. For more information, read Using Target Proxies and Forwarding rule concepts.", "id": "TargetHttpProxy", "properties": { "creationTimestamp": { @@ -63669,6 +74656,11 @@ "format": "byte", "type": "string" }, + "httpKeepAliveTimeoutSec": { + "description": "Specifies how long to keep a connection open, after completing a response, while there is no matching traffic (in seconds). If an HTTP keep-alive is not specified, a default value (610 seconds) will be used. For global external Application Load Balancers, the minimum allowed value is 5 seconds and the maximum allowed value is 1200 seconds. For classic Application Load Balancers, this option is not supported.", + "format": "int32", + "type": "integer" + }, "id": { "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", "format": "uint64", @@ -63785,6 +74777,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -63803,6 +74796,36 @@ "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.", @@ -63814,6 +74837,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -63887,6 +74911,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -63905,6 +74930,36 @@ "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.", @@ -63916,6 +74971,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -63967,7 +75023,7 @@ "id": "TargetHttpsProxiesSetCertificateMapRequest", "properties": { "certificateMap": { - "description": "URL of the Certificate Map to associate with this TargetHttpsProxy.", + "description": "URL of the Certificate Map to associate with this TargetHttpsProxy. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" } }, @@ -64007,7 +75063,7 @@ "type": "object" }, "TargetHttpsProxy": { - "description": "Represents a Target HTTPS Proxy resource. Google Compute Engine has two Target HTTPS Proxy resources: * [Global](/compute/docs/reference/rest/v1/targetHttpsProxies) * [Regional](/compute/docs/reference/rest/v1/regionTargetHttpsProxies) A target HTTPS proxy is a component of GCP HTTPS load balancers. * targetHttpsProxies are used by external HTTPS load balancers. * regionTargetHttpsProxies are used by internal HTTPS load balancers. Forwarding rules reference a target HTTPS proxy, and the target proxy then references a URL map. For more information, read Using Target Proxies and Forwarding rule concepts.", + "description": "Represents a Target HTTPS Proxy resource. Google Compute Engine has two Target HTTPS Proxy resources: * [Global](/compute/docs/reference/rest/v1/targetHttpsProxies) * [Regional](/compute/docs/reference/rest/v1/regionTargetHttpsProxies) A target HTTPS proxy is a component of GCP HTTPS load balancers. * targetHttpProxies are used by global external Application Load Balancers, classic Application Load Balancers, cross-region internal Application Load Balancers, and Traffic Director. * regionTargetHttpProxies are used by regional internal Application Load Balancers and regional external Application Load Balancers. Forwarding rules reference a target HTTPS proxy, and the target proxy then references a URL map. For more information, read Using Target Proxies and Forwarding rule concepts.", "id": "TargetHttpsProxy", "properties": { "authorizationPolicy": { @@ -64015,7 +75071,7 @@ "type": "string" }, "certificateMap": { - "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored.", + "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" }, "creationTimestamp": { @@ -64031,6 +75087,11 @@ "format": "byte", "type": "string" }, + "httpKeepAliveTimeoutSec": { + "description": "Specifies how long to keep a connection open, after completing a response, while there is no matching traffic (in seconds). If an HTTP keep-alive is not specified, a default value (610 seconds) will be used. For global external Application Load Balancers, the minimum allowed value is 5 seconds and the maximum allowed value is 1200 seconds. For classic Application Load Balancers, this option is not supported.", + "format": "int32", + "type": "integer" + }, "id": { "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", "format": "uint64", @@ -64073,7 +75134,7 @@ "type": "string" }, "serverTlsPolicy": { - "description": "Optional. A URL referring to a networksecurity.ServerTlsPolicy resource that describes how the proxy should authenticate inbound traffic. serverTlsPolicy only applies to a global TargetHttpsProxy attached to globalForwardingRules with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted. Note: This field currently has no impact.", + "description": "Optional. A URL referring to a networksecurity.ServerTlsPolicy resource that describes how the proxy should authenticate inbound traffic. serverTlsPolicy only applies to a global TargetHttpsProxy attached to globalForwardingRules with the loadBalancingScheme set to INTERNAL_SELF_MANAGED or EXTERNAL or EXTERNAL_MANAGED. For details which ServerTlsPolicy resources are accepted with INTERNAL_SELF_MANAGED and which with EXTERNAL, EXTERNAL_MANAGED loadBalancingScheme consult ServerTlsPolicy documentation. If left blank, communications are not encrypted.", "type": "string" }, "sslCertificates": { @@ -64145,6 +75206,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -64163,6 +75225,36 @@ "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.", @@ -64174,6 +75266,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -64265,6 +75358,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -64283,6 +75377,36 @@ "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.", @@ -64294,6 +75418,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -64386,6 +75511,10 @@ "description": "The URL of the network this target instance uses to forward traffic. If not specified, the traffic will be forwarded to the network that the default network interface belongs to.", "type": "string" }, + "securityPolicy": { + "description": "[Output Only] The resource URL for the security policy associated with this target instance.", + "type": "string" + }, "selfLink": { "description": "[Output Only] Server-defined URL for the resource.", "type": "string" @@ -64448,6 +75577,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -64466,6 +75596,36 @@ "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.", @@ -64477,6 +75637,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -64568,6 +75729,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -64586,6 +75748,36 @@ "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.", @@ -64597,6 +75789,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -64670,6 +75863,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -64688,6 +75882,36 @@ "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.", @@ -64699,6 +75923,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -64747,7 +75972,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": { @@ -64800,6 +76025,10 @@ "description": "[Output Only] URL of the region where the target pool resides.", "type": "string" }, + "securityPolicy": { + "description": "[Output Only] The resource URL for the security policy associated with this target pool.", + "type": "string" + }, "selfLink": { "description": "[Output Only] Server-defined URL for the resource.", "type": "string" @@ -64882,6 +76111,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -64900,6 +76130,36 @@ "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.", @@ -64911,6 +76171,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -65019,6 +76280,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -65037,6 +76299,36 @@ "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.", @@ -65048,6 +76340,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -65173,6 +76466,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -65191,6 +76485,36 @@ "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.", @@ -65202,6 +76526,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -65272,7 +76597,7 @@ "id": "TargetSslProxiesSetCertificateMapRequest", "properties": { "certificateMap": { - "description": "URL of the Certificate Map to associate with this TargetSslProxy.", + "description": "URL of the Certificate Map to associate with this TargetSslProxy. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" } }, @@ -65310,11 +76635,11 @@ "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": { - "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored.", + "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" }, "creationTimestamp": { @@ -65418,6 +76743,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -65436,6 +76762,36 @@ "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.", @@ -65447,6 +76803,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -65520,6 +76877,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -65538,6 +76896,36 @@ "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.", @@ -65549,6 +76937,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -65625,7 +77014,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": { @@ -65733,6 +77122,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -65751,6 +77141,36 @@ "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.", @@ -65762,6 +77182,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -65853,6 +77274,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -65871,6 +77293,36 @@ "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.", @@ -65882,6 +77334,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -65958,6 +77411,18 @@ "description": "[Output Only] Type of resource. Always compute#targetVpnGateway for target VPN gateways.", "type": "string" }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this TargetVpnGateway, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a TargetVpnGateway.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object" + }, "name": { "annotations": { "required": [ @@ -66062,6 +77527,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -66080,6 +77546,36 @@ "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.", @@ -66091,6 +77587,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -66182,6 +77679,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -66200,6 +77698,36 @@ "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.", @@ -66211,6 +77739,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -66284,6 +77813,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -66302,6 +77832,36 @@ "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.", @@ -66313,6 +77873,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -66447,8 +78008,58 @@ }, "type": "object" }, + "UpcomingMaintenance": { + "description": "Upcoming Maintenance notification information.", + "id": "UpcomingMaintenance", + "properties": { + "canReschedule": { + "description": "Indicates if the maintenance can be customer triggered.", + "type": "boolean" + }, + "latestWindowStartTime": { + "description": "The latest time for the planned maintenance window to start. This timestamp value is in RFC3339 text format.", + "type": "string" + }, + "maintenanceStatus": { + "enum": [ + "ONGOING", + "PENDING", + "UNKNOWN" + ], + "enumDescriptions": [ + "There is ongoing maintenance on this VM.", + "There is pending maintenance.", + "Unknown maintenance status. Do not use this value." + ], + "type": "string" + }, + "type": { + "description": "Defines the type of maintenance.", + "enum": [ + "SCHEDULED", + "UNKNOWN_TYPE", + "UNSCHEDULED" + ], + "enumDescriptions": [ + "Scheduled maintenance (e.g. maintenance after uptime guarantee is complete).", + "No type specified. Do not use this value.", + "Unscheduled maintenance (e.g. emergency maintenance during uptime guarantee)." + ], + "type": "string" + }, + "windowEndTime": { + "description": "The time by which the maintenance disruption will be completed. This timestamp value is in RFC3339 text format.", + "type": "string" + }, + "windowStartTime": { + "description": "The current start time of the maintenance window. This timestamp value is in RFC3339 text format.", + "type": "string" + } + }, + "type": "object" + }, "UrlMap": { - "description": "Represents a URL Map resource. Compute Engine has two URL Map resources: * [Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain types of cloud load balancers and Traffic Director: * urlMaps are used by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used by internal HTTP(S) load balancers. For a list of supported URL map features by the load balancer type, see the Load balancing features: Routing and traffic management table. For a list of supported URL map features for Traffic Director, see the Traffic Director features: Routing and traffic management table. This resource defines mappings from hostnames and URL paths to either a backend service or a backend bucket. To use the global urlMaps resource, the backend service must have a loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For more information, read URL Map Concepts.", + "description": "Represents a URL Map resource. Compute Engine has two URL Map resources: * [Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain types of cloud load balancers and Traffic Director: * urlMaps are used by global external Application Load Balancers, classic Application Load Balancers, and cross-region internal Application Load Balancers. * regionUrlMaps are used by internal Application Load Balancers, regional external Application Load Balancers and regional internal Application Load Balancers. For a list of supported URL map features by the load balancer type, see the Load balancing features: Routing and traffic management table. For a list of supported URL map features for Traffic Director, see the Traffic Director features: Routing and traffic management table. This resource defines mappings from hostnames and URL paths to either a backend service or a backend bucket. To use the global urlMaps resource, the backend service must have a loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For more information, read URL Map Concepts.", "id": "UrlMap", "properties": { "creationTimestamp": { @@ -66457,7 +78068,7 @@ }, "defaultRouteAction": { "$ref": "HttpRouteAction", - "description": "defaultRouteAction takes effect when none of the hostRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within defaultRouteAction. defaultRouteAction has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." + "description": "defaultRouteAction takes effect when none of the hostRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within defaultRouteAction. defaultRouteAction has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." }, "defaultService": { "description": "The full or partial URL of the defaultService resource to which traffic is directed if none of the hostRules match. If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. defaultService has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", @@ -66571,6 +78182,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -66589,6 +78201,36 @@ "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.", @@ -66600,6 +78242,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -66788,6 +78431,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -66806,6 +78450,36 @@ "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.", @@ -66817,6 +78491,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -66890,6 +78565,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -66908,6 +78584,36 @@ "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.", @@ -66919,6 +78625,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -66970,7 +78677,7 @@ "id": "UrlMapsValidateRequest", "properties": { "loadBalancingSchemes": { - "description": "Specifies the load balancer type(s) this validation request is for. Use EXTERNAL_MANAGED for HTTP/HTTPS External Global Load Balancer with Advanced Traffic Management. Use EXTERNAL for Classic HTTP/HTTPS External Global Load Balancer. Other load balancer types are not supported. For more information, refer to Choosing a load balancer. If unspecified, the load balancing scheme will be inferred from the backend service resources this URL map references. If that can not be inferred (for example, this URL map only references backend buckets, or this Url map is for rewrites and redirects only and doesn't reference any backends), EXTERNAL will be used as the default type. If specified, the scheme(s) must not conflict with the load balancing scheme of the backend service resources this Url map references.", + "description": "Specifies the load balancer type(s) this validation request is for. Use EXTERNAL_MANAGED for global external Application Load Balancers and regional external Application Load Balancers. Use EXTERNAL for classic Application Load Balancers. Use INTERNAL_MANAGED for internal Application Load Balancers. For more information, refer to Choosing a load balancer. If unspecified, the load balancing scheme will be inferred from the backend service resources this URL map references. If that can not be inferred (for example, this URL map only references backend buckets, or this Url map is for rewrites and redirects only and doesn't reference any backends), EXTERNAL will be used as the default type. If specified, the scheme(s) must not conflict with the load balancing scheme of the backend service resources this Url map references.", "items": { "enum": [ "EXTERNAL", @@ -66978,9 +78685,9 @@ "LOAD_BALANCING_SCHEME_UNSPECIFIED" ], "enumDescriptions": [ - "Signifies that this will be used for Classic L7 External Load Balancing.", - "Signifies that this will be used for Envoy-based L7 External Load Balancing.", - "If unspecified, the validation will try to infer the scheme from the backend service resources this Url map references. If the inferrence is not possible, EXTERNAL will be used as the default type." + "Signifies that this will be used for classic Application Load Balancers.", + "Signifies that this will be used for Envoy-based global external Application Load Balancers.", + "If unspecified, the validation will try to infer the scheme from the backend service resources this Url map references. If the inference is not possible, EXTERNAL will be used as the default type." ], "type": "string" }, @@ -67013,6 +78720,10 @@ "pathPrefixRewrite": { "description": "Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. The value must be from 1 to 1024 characters.", "type": "string" + }, + "pathTemplateRewrite": { + "description": " If specified, the pattern rewrites the URL path (based on the :path header) using the HTTP template syntax. A corresponding path_template_match must be specified. Any template variables must exist in the path_template_match field. - -At least one variable must be specified in the path_template_match field - You can omit variables from the rewritten URL - The * and ** operators cannot be matched unless they have a corresponding variable name - e.g. {format=*} or {var=**}. For example, a path_template_match of /static/{format=**} could be rewritten as /static/content/{format} to prefix /content to the URL. Variables can also be re-ordered in a rewrite, so that /{country}/{format}/{suffix=**} can be rewritten as /content/{format}/{country}/{suffix}. At least one non-empty routeRules[].matchRules[].path_template_match is required. Only one of path_prefix_rewrite or path_template_rewrite may be specified.", + "type": "string" } }, "type": "object" @@ -67050,25 +78761,29 @@ "type": "string" }, "purpose": { - "description": "The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.", + "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", "PRIVATE", + "PRIVATE_NAT", "PRIVATE_RFC_1918", "PRIVATE_SERVICE_CONNECT", "REGIONAL_MANAGED_PROXY" ], "enumDescriptions": [ - "Subnet reserved for Internal HTTP(S) Load Balancing.", + "Subnet reserved for Global Envoy-based Load Balancing.", + "Subnet reserved for Internal HTTP(S) Load Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY instead.", "Regular user created or automatically created subnet.", + "Subnetwork used as source range for Private NAT Gateways.", "Regular user created or automatically created subnet.", "Subnetworks created for Private Service Connect in the producer network.", - "Subnetwork used for Regional Internal/External HTTP(S) Load Balancing." + "Subnetwork used for Regional Envoy-based Load Balancing." ], "type": "string" }, "role": { - "description": "The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.", + "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" @@ -67163,6 +78878,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -67181,6 +78897,36 @@ "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.", @@ -67192,6 +78938,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -67397,6 +79144,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -67415,6 +79163,36 @@ "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.", @@ -67426,6 +79204,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -67485,6 +79264,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", @@ -67496,7 +79287,7 @@ "type": "string" }, "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this VpnGateway, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an VpnGateway.", + "description": "A fingerprint for the labels being applied to this VpnGateway, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a VpnGateway.", "format": "byte", "type": "string" }, @@ -67607,6 +79398,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -67625,6 +79417,36 @@ "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.", @@ -67636,6 +79458,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -67727,6 +79550,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -67745,6 +79569,36 @@ "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.", @@ -67756,6 +79610,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -67855,7 +79710,7 @@ "type": "integer" }, "peerGatewayInterface": { - "description": "The peer gateway interface this VPN tunnel is connected to, the peer gateway could either be an external VPN gateway or GCP VPN gateway.", + "description": "The peer gateway interface this VPN tunnel is connected to, the peer gateway could either be an external VPN gateway or a Google Cloud VPN gateway.", "format": "uint32", "type": "integer" }, @@ -67867,7 +79722,7 @@ "type": "object" }, "VpnGatewayStatusVpnConnection": { - "description": "A VPN connection contains all VPN tunnels connected from this VpnGateway to the same peer gateway. The peer gateway could either be a external VPN gateway or GCP VPN gateway.", + "description": "A VPN connection contains all VPN tunnels connected from this VpnGateway to the same peer gateway. The peer gateway could either be an external VPN gateway or a Google Cloud VPN gateway.", "id": "VpnGatewayStatusVpnConnection", "properties": { "peerExternalGateway": { @@ -67908,6 +79763,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" @@ -67947,6 +79806,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -67965,6 +79825,36 @@ "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.", @@ -67976,6 +79866,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -68054,6 +79945,18 @@ "description": "[Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.", "type": "string" }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this VpnTunnel, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a VpnTunnel.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object" + }, "localTrafficSelector": { "description": "Local traffic selector to use when establishing the VPN tunnel with the peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges must be disjoint. Only IPv4 is supported.", "items": { @@ -68081,7 +79984,7 @@ "type": "integer" }, "peerGcpGateway": { - "description": "URL of the peer side HA GCP VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created. This field can be used when creating highly available VPN from VPC network to VPC network, the field is exclusive with the field peerExternalGateway. If provided, the VPN tunnel will automatically use the same vpnGatewayInterface ID in the peer GCP VPN gateway.", + "description": "URL of the peer side HA VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created. This field can be used when creating highly available VPN from VPC network to VPC network, the field is exclusive with the field peerExternalGateway. If provided, the VPN tunnel will automatically use the same vpnGatewayInterface ID in the peer Google Cloud VPN gateway.", "type": "string" }, "peerIp": { @@ -68216,6 +80119,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -68234,6 +80138,36 @@ "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.", @@ -68245,6 +80179,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -68336,6 +80271,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -68354,6 +80290,36 @@ "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.", @@ -68365,6 +80331,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -68438,6 +80405,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -68456,6 +80424,36 @@ "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.", @@ -68467,6 +80465,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -68544,6 +80543,11 @@ "id": { "description": "Expression ID should uniquely identify the origin of the expression. E.g. owasp-crs-v020901-id973337 identifies Owasp core rule set version 2.9.1 rule id 973337. The ID could be used to determine the individual attack definition that has been detected. It could also be used to exclude it from the policy in case of false positive. required", "type": "string" + }, + "sensitivity": { + "description": "The sensitivity value associated with the WAF rule ID. This corresponds to the ModSecurity paranoia level, ranging from 1 to 4. 0 is reserved for opt-in only rules.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -68611,6 +80615,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -68629,6 +80634,36 @@ "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.", @@ -68640,6 +80675,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", @@ -68818,6 +80854,7 @@ "INJECTED_KERNELS_DEPRECATED", "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", @@ -68836,6 +80873,36 @@ "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.", @@ -68847,6 +80914,7 @@ "The operation involved use of an injected kernel, which is deprecated.", "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", diff --git a/etc/api/connectors/v1/connectors-api.json b/etc/api/connectors/v1/connectors-api.json index f103cd0411..1ff6c1db29 100644 --- a/etc/api/connectors/v1/connectors-api.json +++ b/etc/api/connectors/v1/connectors-api.json @@ -134,6 +134,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getRegionalSettings": { + "description": "GetRegionalSettings gets settings of a region. RegionalSettings is a singleton resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/regionalSettings", + "httpMethod": "GET", + "id": "connectors.projects.locations.getRegionalSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the Regional Settings.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/regionalSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "RegionalSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getRuntimeConfig": { "description": "Gets the runtimeConfig of a location. RuntimeConfig is a singleton resource for each location.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/runtimeConfig", @@ -199,6 +224,40 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "updateRegionalSettings": { + "description": "Update the settings of a region.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/regionalSettings", + "httpMethod": "PATCH", + "id": "connectors.projects.locations.updateRegionalSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. Resource name of the Connection. Format: projects/{project}/locations/{location}/regionalSettings", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/regionalSettings$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to update.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "RegionalSettings" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { @@ -419,6 +478,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}", @@ -436,7 +523,7 @@ "type": "string" }, "updateMask": { - "description": "Required. You can modify only the fields listed below. To lock/unlock a connection: * `lock_config` To suspend/resume a connection: * `suspended` To update the connection details: * `description` * `labels` * `connector_version` * `config_variables` * `auth_config` * `destination_configs` * `node_config`", + "description": "Required. You can modify only the fields listed below. To lock/unlock a connection: * `lock_config` To suspend/resume a connection: * `suspended` To update the connection details: * `description` * `labels` * `connector_version` * `config_variables` * `auth_config` * `destination_configs` * `node_config` * `log_config` * `ssl_config` * `eventing_enablement_type` * `eventing_config`", "format": "google-fieldmask", "location": "query", "type": "string" @@ -453,6 +540,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "repairEventing": { + "description": "RepaiEventing tries to repair eventing related event subscriptions.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:repairEventing", + "httpMethod": "POST", + "id": "connectors.projects.locations.connections.repairEventing", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the form: `projects/*/locations/*/connections/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:repairEventing", + "request": { + "$ref": "RepairEventingRequest" + }, + "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}/connections/{connectionsId}:setIamPolicy", @@ -513,6 +628,174 @@ "resources": { "connectionSchemaMetadata": { "methods": { + "getAction": { + "description": "Get action.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/connectionSchemaMetadata:getAction", + "httpMethod": "GET", + "id": "connectors.projects.locations.connections.connectionSchemaMetadata.getAction", + "parameterOrder": [ + "name" + ], + "parameters": { + "actionId": { + "description": "Required. Id of the action.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. Resource name format: projects/{project}/locations/{location}/connections/{connection}/connectionSchemaMetadata", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+/connectionSchemaMetadata$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:getAction", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getEntityType": { + "description": "Get entity type.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/connectionSchemaMetadata:getEntityType", + "httpMethod": "GET", + "id": "connectors.projects.locations.connections.connectionSchemaMetadata.getEntityType", + "parameterOrder": [ + "name" + ], + "parameters": { + "entityId": { + "description": "Required. Id of the entity type.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. Resource name format: projects/{project}/locations/{location}/connections/{connection}/connectionSchemaMetadata", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+/connectionSchemaMetadata$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:getEntityType", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "listActions": { + "description": "List actions.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/connectionSchemaMetadata:listActions", + "httpMethod": "GET", + "id": "connectors.projects.locations.connections.connectionSchemaMetadata.listActions", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "Required. Filter Wildcards are not supported in the filter currently.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. Resource name format. projects/{project}/locations/{location}/connections/{connection}/connectionSchemaMetadata", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+/connectionSchemaMetadata$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Page size. If unspecified, at most 50 actions will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token.", + "location": "query", + "type": "string" + }, + "view": { + "description": "Specifies which fields are returned in response. Defaults to BASIC view.", + "enum": [ + "VIEW_UNSPECIFIED", + "BASIC" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}:listActions", + "response": { + "$ref": "ListActionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "listEntityTypes": { + "description": "List entity types.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/connectionSchemaMetadata:listEntityTypes", + "httpMethod": "GET", + "id": "connectors.projects.locations.connections.connectionSchemaMetadata.listEntityTypes", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "Required. Filter Wildcards are not supported in the filter currently.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. Resource name format: projects/{project}/locations/{location}/connections/{connection}/connectionSchemaMetadata", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+/connectionSchemaMetadata$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Page size. If unspecified, at most 50 entity types will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token.", + "location": "query", + "type": "string" + }, + "view": { + "description": "Specifies which fields are returned in response. Defaults to BASIC view.", + "enum": [ + "VIEW_UNSPECIFIED", + "BASIC" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}:listEntityTypes", + "response": { + "$ref": "ListEntityTypesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "refresh": { "description": "Refresh runtime schema of a connection.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/connectionSchemaMetadata:refresh", @@ -543,6 +826,201 @@ } } }, + "eventSubscriptions": { + "methods": { + "create": { + "description": "Creates a new EventSubscription in a given project,location and connection.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/eventSubscriptions", + "httpMethod": "POST", + "id": "connectors.projects.locations.connections.eventSubscriptions.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "eventSubscriptionId": { + "description": "Required. Identifier to assign to the Event Subscription. Must be unique within scope of the parent resource.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent resource of the EventSubscription, of the form: `projects/*/locations/*/connections/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/eventSubscriptions", + "request": { + "$ref": "EventSubscription" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single EventSubscription.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/eventSubscriptions/{eventSubscriptionsId}", + "httpMethod": "DELETE", + "id": "connectors.projects.locations.connections.eventSubscriptions.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the form: `projects/*/locations/*/connections/*/eventsubscriptions/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+/eventSubscriptions/[^/]+$", + "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 EventSubscription.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/eventSubscriptions/{eventSubscriptionsId}", + "httpMethod": "GET", + "id": "connectors.projects.locations.connections.eventSubscriptions.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the form: `projects/*/locations/*/connections/*/eventSubscriptions/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+/eventSubscriptions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "EventSubscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "List EventSubscriptions in a given project,location and connection.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/eventSubscriptions", + "httpMethod": "GET", + "id": "connectors.projects.locations.connections.eventSubscriptions.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Filter.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Order by parameters.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent resource of the EventSubscription, of the form: `projects/*/locations/*/connections/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/eventSubscriptions", + "response": { + "$ref": "ListEventSubscriptionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single EventSubscription.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/eventSubscriptions/{eventSubscriptionsId}", + "httpMethod": "PATCH", + "id": "connectors.projects.locations.connections.eventSubscriptions.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the EventSubscription. Format: projects/{project}/locations/{location}/connections/{connection}/eventSubscriptions/{event_subscription}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+/eventSubscriptions/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to update. Fields are specified relative to the Subscription. A field will be overwritten if it is in the mask. You can modify only the fields listed below. To update the EventSubscription details: * `serviceAccount`", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "EventSubscription" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "retry": { + "description": "RetryEventSubscription retries the registration of Subscription.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/eventSubscriptions/{eventSubscriptionsId}:retry", + "httpMethod": "POST", + "id": "connectors.projects.locations.connections.eventSubscriptions.retry", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the form: `projects/*/locations/*/connections/*/eventSubscriptions/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+/eventSubscriptions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:retry", + "request": { + "$ref": "RetryEventSubscriptionRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "runtimeActionSchemas": { "methods": { "list": { @@ -635,6 +1113,731 @@ } } }, + "endpointAttachments": { + "methods": { + "create": { + "description": "Creates a new EndpointAttachment in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/endpointAttachments", + "httpMethod": "POST", + "id": "connectors.projects.locations.endpointAttachments.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "endpointAttachmentId": { + "description": "Required. Identifier to assign to the EndpointAttachment. Must be unique within scope of the parent resource.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent resource of the EndpointAttachment, of the form: `projects/*/locations/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/endpointAttachments", + "request": { + "$ref": "EndpointAttachment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single EndpointAttachment.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/endpointAttachments/{endpointAttachmentsId}", + "httpMethod": "DELETE", + "id": "connectors.projects.locations.endpointAttachments.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the form: `projects/*/locations/*/endpointAttachments/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/endpointAttachments/[^/]+$", + "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 EndpointAttachment.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/endpointAttachments/{endpointAttachmentsId}", + "httpMethod": "GET", + "id": "connectors.projects.locations.endpointAttachments.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the form: `projects/*/locations/*/endpointAttachments/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/endpointAttachments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "EndpointAttachment" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "List EndpointAttachments in a given project", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/endpointAttachments", + "httpMethod": "GET", + "id": "connectors.projects.locations.endpointAttachments.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Filter.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Order by parameters.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent resource od the EndpointAttachment, of the form: `projects/*/locations/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/endpointAttachments", + "response": { + "$ref": "ListEndpointAttachmentsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single EndpointAttachment.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/endpointAttachments/{endpointAttachmentsId}", + "httpMethod": "PATCH", + "id": "connectors.projects.locations.endpointAttachments.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. Resource name of the Endpoint Attachment. Format: projects/{project}/locations/{location}/endpointAttachments/{endpoint_attachment}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/endpointAttachments/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to update. Fields are specified relative to the endpointAttachment. A field will be overwritten if it is in the mask. You can modify only the fields listed below. To update the endpointAttachment details: * `description` * `labels`", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "EndpointAttachment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "global": { + "methods": { + "getSettings": { + "description": "GetGlobalSettings gets settings of a project. GlobalSettings is a singleton resource.", + "flatPath": "v1/projects/{projectsId}/locations/global/settings", + "httpMethod": "GET", + "id": "connectors.projects.locations.global.getSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the Settings.", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/settings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Settings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "updateSettings": { + "description": "Update the global settings of a project.", + "flatPath": "v1/projects/{projectsId}/locations/global/settings", + "httpMethod": "PATCH", + "id": "connectors.projects.locations.global.updateSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. Resource name of the Connection. Format: projects/{project}/locations/global/settings}", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/settings$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to update.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Settings" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "customConnectors": { + "methods": { + "create": { + "description": "Creates a new CustomConnector in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/global/customConnectors", + "httpMethod": "POST", + "id": "connectors.projects.locations.global.customConnectors.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "customConnectorId": { + "description": "Required. Identifier to assign to the CreateCustomConnector. Must be unique within scope of the parent resource.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent resource of the CreateCustomConnector, of the form: `projects/{project}/locations/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/global$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customConnectors", + "request": { + "$ref": "CustomConnector" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single CustomConnector.", + "flatPath": "v1/projects/{projectsId}/locations/global/customConnectors/{customConnectorsId}", + "httpMethod": "DELETE", + "id": "connectors.projects.locations.global.customConnectors.delete", + "parameterOrder": [ + "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", + "pattern": "^projects/[^/]+/locations/global/customConnectors/[^/]+$", + "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 CustomConnector.", + "flatPath": "v1/projects/{projectsId}/locations/global/customConnectors/{customConnectorsId}", + "httpMethod": "GET", + "id": "connectors.projects.locations.global.customConnectors.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the form: `projects/*/locations/*/customConnectors/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/customConnectors/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "CustomConnector" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "List CustomConnectorVersions in a given project", + "flatPath": "v1/projects/{projectsId}/locations/global/customConnectors", + "httpMethod": "GET", + "id": "connectors.projects.locations.global.customConnectors.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Filter string.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent resource of the custom connectors, of the form: `projects/*/locations/*` Only global location is supported for CustomConnector resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/global$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customConnectors", + "response": { + "$ref": "ListCustomConnectorsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a CustomConnector.", + "flatPath": "v1/projects/{projectsId}/locations/global/customConnectors/{customConnectorsId}", + "httpMethod": "PATCH", + "id": "connectors.projects.locations.global.customConnectors.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Identifier. Resource name of the CustomConnector. Format: projects/{project}/locations/{location}/customConnectors/{connector}", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/customConnectors/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Field mask is used to specify the fields to be overwritten in the Connector 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. Set the mask as \"*\" for full replacement, which means all fields will be overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "CustomConnector" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "customConnectorVersions": { + "methods": { + "create": { + "description": "Creates a new CustomConnectorVersion in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/global/customConnectors/{customConnectorsId}/customConnectorVersions", + "httpMethod": "POST", + "id": "connectors.projects.locations.global.customConnectors.customConnectorVersions.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "customConnectorVersionId": { + "description": "Required. Identifier to assign to the CreateCustomConnectorVersion. Must be unique within scope of the parent resource.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent resource of the CreateCustomConnector, of the form: `projects/{project}/locations/{location}/customConnectors/{custom_connector}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/customConnectors/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customConnectorVersions", + "request": { + "$ref": "CustomConnectorVersion" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single CustomConnectorVersion.", + "flatPath": "v1/projects/{projectsId}/locations/global/customConnectors/{customConnectorsId}/customConnectorVersions/{customConnectorVersionsId}", + "httpMethod": "DELETE", + "id": "connectors.projects.locations.global.customConnectors.customConnectorVersions.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the form: `projects/{project}/locations/{location}/customConnectors/{custom_connector}/customConnectorVersions/{custom_connector_version}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/customConnectors/[^/]+/customConnectorVersions/[^/]+$", + "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 CustomConnectorVersion.", + "flatPath": "v1/projects/{projectsId}/locations/global/customConnectors/{customConnectorsId}/customConnectorVersions/{customConnectorVersionsId}", + "httpMethod": "GET", + "id": "connectors.projects.locations.global.customConnectors.customConnectorVersions.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the form: `projects/*/locations/{location}/customConnectors/*/customConnectorVersions/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/customConnectors/[^/]+/customConnectorVersions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "CustomConnectorVersion" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "List CustomConnectorVersions in a given project", + "flatPath": "v1/projects/{projectsId}/locations/global/customConnectors/{customConnectorsId}/customConnectorVersions", + "httpMethod": "GET", + "id": "connectors.projects.locations.global.customConnectors.customConnectorVersions.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent resource of the connectors, of the form: `projects/*/locations/{location}/customConnectors/*/customConnectorVersions/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/customConnectors/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customConnectorVersions", + "response": { + "$ref": "ListCustomConnectorVersionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a CustomConnectorVersion.", + "flatPath": "v1/projects/{projectsId}/locations/global/customConnectors/{customConnectorsId}/customConnectorVersions/{customConnectorVersionsId}", + "httpMethod": "PATCH", + "id": "connectors.projects.locations.global.customConnectors.customConnectorVersions.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. Identifier. Resource name of the Version. Format: projects/{project}/locations/{location}/customConnectors/{custom_connector}/customConnectorVersions/{custom_connector_version}", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/customConnectors/[^/]+/customConnectorVersions/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Field mask is used to specify the fields to be overwritten in the Connector 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. Set the mask as \"*\" for full replacement, which means all fields will be overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "CustomConnectorVersion" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, + "managedZones": { + "methods": { + "create": { + "description": "Creates a new ManagedZone in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/global/managedZones", + "httpMethod": "POST", + "id": "connectors.projects.locations.global.managedZones.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "managedZoneId": { + "description": "Required. Identifier to assign to the ManagedZone. Must be unique within scope of the parent resource.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent resource of the ManagedZone, of the form: `projects/*/locations/global`", + "location": "path", + "pattern": "^projects/[^/]+/locations/global$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/managedZones", + "request": { + "$ref": "ManagedZone" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single ManagedZone.", + "flatPath": "v1/projects/{projectsId}/locations/global/managedZones/{managedZonesId}", + "httpMethod": "DELETE", + "id": "connectors.projects.locations.global.managedZones.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the form: `projects/*/locations/global/managedZones/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/managedZones/[^/]+$", + "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 ManagedZone.", + "flatPath": "v1/projects/{projectsId}/locations/global/managedZones/{managedZonesId}", + "httpMethod": "GET", + "id": "connectors.projects.locations.global.managedZones.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the form: `projects/*/locations/global/managedZones/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/managedZones/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ManagedZone" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "List ManagedZones in a given project", + "flatPath": "v1/projects/{projectsId}/locations/global/managedZones", + "httpMethod": "GET", + "id": "connectors.projects.locations.global.managedZones.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Filter.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Order by parameters.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent resource of the Managed Zone, of the form: `projects/*/locations/global`", + "location": "path", + "pattern": "^projects/[^/]+/locations/global$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/managedZones", + "response": { + "$ref": "ListManagedZonesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single ManagedZone.", + "flatPath": "v1/projects/{projectsId}/locations/global/managedZones/{managedZonesId}", + "httpMethod": "PATCH", + "id": "connectors.projects.locations.global.managedZones.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. Resource name of the Managed Zone. Format: projects/{project}/locations/global/managedZones/{managed_zone}", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/managedZones/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to update. Fields are specified relative to the managedZone. A field will be overwritten if it is in the mask. You can modify only the fields listed below. To update the managedZone details: * `description` * `labels` * `target_project` * `target_network`", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "ManagedZone" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "operations": { "methods": { "cancel": { @@ -716,7 +1919,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "connectors.projects.locations.operations.list", @@ -946,6 +2149,11 @@ "parent" ], "parameters": { + "filter": { + "description": "Filter string.", + "location": "query", + "type": "string" + }, "pageSize": { "description": "Page size.", "format": "int32", @@ -1068,6 +2276,73 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "eventtypes": { + "methods": { + "get": { + "description": "Gets details of a single event type.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/providers/{providersId}/connectors/{connectorsId}/versions/{versionsId}/eventtypes/{eventtypesId}", + "httpMethod": "GET", + "id": "connectors.projects.locations.providers.connectors.versions.eventtypes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the form: `projects/*/locations/*/providers/*/connectors/*/versions/*/eventtypes/*` Only global location is supported for EventType resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/providers/[^/]+/connectors/[^/]+/versions/[^/]+/eventtypes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "EventType" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Event Types in a given Connector Version.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/providers/{providersId}/connectors/{connectorsId}/versions/{versionsId}/eventtypes", + "httpMethod": "GET", + "id": "connectors.projects.locations.providers.connectors.versions.eventtypes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent resource of the connectors, of the form: `projects/*/locations/*/providers/*/connectors/*/versions/*` Only global location is supported for EventType resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/providers/[^/]+/connectors/[^/]+/versions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/eventtypes", + "response": { + "$ref": "ListEventTypesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } } } @@ -1079,7 +2354,7 @@ } } }, - "revision": "20230103", + "revision": "20240221", "rootUrl": "https://connectors.googleapis.com/", "schemas": { "AuditConfig": { @@ -1141,6 +2416,10 @@ }, "type": "array" }, + "authKey": { + "description": "Identifier key for auth config", + "type": "string" + }, "authType": { "description": "The type of authentication configured.", "enum": [ @@ -1149,7 +2428,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.", @@ -1157,10 +2437,15 @@ "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" }, + "oauth2AuthCodeFlow": { + "$ref": "Oauth2AuthCodeFlow", + "description": "Oauth2AuthCodeFlow." + }, "oauth2ClientCredentials": { "$ref": "Oauth2ClientCredentials", "description": "Oauth2ClientCredentials." @@ -1184,6 +2469,10 @@ "description": "AuthConfigTemplate defines required field over an authentication type.", "id": "AuthConfigTemplate", "properties": { + "authKey": { + "description": "Identifier key for auth config", + "type": "string" + }, "authType": { "description": "The type of authentication configured.", "enum": [ @@ -1192,7 +2481,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.", @@ -1200,7 +2490,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" }, @@ -1210,6 +2501,14 @@ "$ref": "ConfigVariableTemplate" }, "type": "array" + }, + "description": { + "description": "Connector specific description for an authentication template.", + "type": "string" + }, + "displayName": { + "description": "Display name for authentication template.", + "type": "string" } }, "type": "object" @@ -1219,7 +2518,7 @@ "id": "AuthorizationCodeLink", "properties": { "clientId": { - "description": "The client ID assigned to the GCP Connectors OAuth app for the connector data source.", + "description": "The client ID assigned to the Google Cloud Connectors OAuth app for the connector data source.", "type": "string" }, "enablePkce": { @@ -1227,7 +2526,7 @@ "type": "boolean" }, "scopes": { - "description": "The scopes for which the user will authorize GCP Connectors on the connector data source.", + "description": "The scopes for which the user will authorize Google Cloud Connectors on the connector data source.", "items": { "type": "string" }, @@ -1249,14 +2548,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1276,6 +2575,10 @@ "description": "Value is a bool.", "type": "boolean" }, + "encryptionKeyValue": { + "$ref": "EncryptionKey", + "description": "Value is a Encryption Key." + }, "intValue": { "description": "Value is an integer", "format": "int64", @@ -1319,14 +2622,40 @@ }, "type": "array" }, + "isAdvanced": { + "description": "Indicates if current template is part of advanced settings", + "type": "boolean" + }, "key": { "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" }, + "requiredCondition": { + "$ref": "LogicalExpression", + "description": "Condition under which a field would be required. The condition can be represented in the form of a logical expression." + }, "roleGrant": { "$ref": "RoleGrant", "description": "Role grant configuration for the config variable." @@ -1358,7 +2687,8 @@ "BOOL", "SECRET", "ENUM", - "AUTHORIZATION_CODE" + "AUTHORIZATION_CODE", + "ENCRYPTION_KEY" ], "enumDescriptions": [ "Value type is not specified.", @@ -1367,7 +2697,8 @@ "Value type is boolean.", "Value type is secret.", "Value type is enum.", - "Value type is authorization code." + "Value type is authorization code.", + "Encryption Key." ], "type": "string" } @@ -1389,10 +2720,40 @@ }, "type": "array" }, + "connectionRevision": { + "description": "Output only. Connection revision. This field is only updated when the connection is created or updated by User.", + "format": "int64", + "readOnly": true, + "type": "string" + }, "connectorVersion": { "description": "Required. Connector version on which the connection is created. The format is: projects/*/locations/*/providers/*/connectors/*/versions/* Only global location is supported for ConnectorVersion resource.", "type": "string" }, + "connectorVersionInfraConfig": { + "$ref": "ConnectorVersionInfraConfig", + "description": "Output only. Infra configs supported by Connector Version.", + "readOnly": true + }, + "connectorVersionLaunchStage": { + "description": "Output only. Flag to mark the version indicating the launch stage.", + "enum": [ + "LAUNCH_STAGE_UNSPECIFIED", + "PREVIEW", + "GA", + "DEPRECATED", + "PRIVATE_PREVIEW" + ], + "enumDescriptions": [ + "LAUNCH_STAGE_UNSPECIFIED.", + "PREVIEW.", + "GA.", + "DEPRECATED.", + "PRIVATE_PREVIEW." + ], + "readOnly": true, + "type": "string" + }, "createTime": { "description": "Output only. Created time.", "format": "google-datetime", @@ -1415,11 +2776,39 @@ "readOnly": true, "type": "string" }, + "eventingConfig": { + "$ref": "EventingConfig", + "description": "Optional. Eventing config of a connection" + }, + "eventingEnablementType": { + "description": "Optional. Eventing enablement type. Will be nil if eventing is not enabled.", + "enum": [ + "EVENTING_ENABLEMENT_TYPE_UNSPECIFIED", + "EVENTING_AND_CONNECTION", + "ONLY_EVENTING" + ], + "enumDescriptions": [ + "Eventing Enablement Type Unspecifeied.", + "Both connection and eventing.", + "Only Eventing." + ], + "type": "string" + }, + "eventingRuntimeData": { + "$ref": "EventingRuntimeData", + "description": "Output only. Eventing Runtime Data.", + "readOnly": true + }, "imageLocation": { "description": "Output only. GCR location where the runtime image is stored. formatted like: gcr.io/{bucketName}/{imageName}", "readOnly": true, "type": "string" }, + "isTrustedTester": { + "description": "Output only. Is trusted tester program enabled for the project.", + "readOnly": true, + "type": "boolean" + }, "labels": { "additionalProperties": { "type": "string" @@ -1431,6 +2820,10 @@ "$ref": "LockConfig", "description": "Optional. Configuration that indicates whether or not the Connection can be edited." }, + "logConfig": { + "$ref": "ConnectorsLogConfig", + "description": "Optional. Log configuration for the connection." + }, "name": { "description": "Output only. Resource name of the Connection. Format: projects/{project}/locations/{location}/connections/{connection}", "readOnly": true, @@ -1441,7 +2834,7 @@ "description": "Optional. Node configuration for the connection." }, "serviceAccount": { - "description": "Optional. Service account needed for runtime plane to access GCP resources.", + "description": "Optional. Service account needed for runtime plane to access Google Cloud resources.", "type": "string" }, "serviceDirectory": { @@ -1449,11 +2842,30 @@ "readOnly": true, "type": "string" }, + "sslConfig": { + "$ref": "SslConfig", + "description": "Optional. Ssl config of a connection" + }, "status": { "$ref": "ConnectionStatus", "description": "Output only. Current status of the connection.", "readOnly": true }, + "subscriptionType": { + "description": "Output only. This subscription type enum states the subscription type of the project.", + "enum": [ + "SUBSCRIPTION_TYPE_UNSPECIFIED", + "PAY_G", + "PAID" + ], + "enumDescriptions": [ + "Unspecified subscription type.", + "PayG subscription.", + "Paid Subscription." + ], + "readOnly": true, + "type": "string" + }, "suspended": { "description": "Optional. Suspended indicates if a user has suspended a connection or not.", "type": "boolean" @@ -1487,6 +2899,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, @@ -1503,12 +2919,22 @@ "enum": [ "STATE_UNSPECIFIED", "REFRESHING", - "UPDATED" + "UPDATED", + "REFRESHING_SCHEMA_METADATA", + "UPDATED_SCHEMA_METADATA", + "REFRESH_SCHEMA_METADATA_FAILED", + "REFRESHING_FULL_SCHEMA", + "UPDATED_FULL_SCHEMA" ], "enumDescriptions": [ "Default state.", "Schema refresh is in progress.", - "Schema has been updated." + "Schema has been updated.", + "Schema refresh for metadata is in progress.", + "Schema metadata has been updated.", + "Failed to refresh schema metadata", + "Triggered full schema refresh", + "Updated full schema" ], "readOnly": true, "type": "string" @@ -1539,7 +2965,8 @@ "INACTIVE", "DELETING", "UPDATING", - "ERROR" + "ERROR", + "AUTHORIZATION_REQUIRED" ], "enumDescriptions": [ "Connection does not have a state yet.", @@ -1548,7 +2975,8 @@ "Connection is stopped.", "Connection is being deleted.", "Connection is being updated.", - "Connection is not running due to an error." + "Connection is not running due to an error.", + "Connection is not running because the authorization configuration is not complete." ], "type": "string" }, @@ -1584,6 +3012,11 @@ "readOnly": true, "type": "string" }, + "eventingDetails": { + "$ref": "EventingDetails", + "description": "Output only. Eventing details. Will be null if eventing is not supported.", + "readOnly": true + }, "externalUri": { "description": "Output only. Link to external page.", "readOnly": true, @@ -1635,6 +3068,58 @@ }, "type": "object" }, + "ConnectorInfraConfig": { + "description": "This cofiguration provides infra configs like rate limit threshold which need to be configurable for every connector version", + "id": "ConnectorInfraConfig", + "properties": { + "connectionRatelimitWindowSeconds": { + "description": "The window used for ratelimiting runtime requests to connections.", + "format": "int64", + "type": "string" + }, + "deploymentModel": { + "description": "Indicate 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": "HPA autoscaling config." + }, + "internalclientRatelimitThreshold": { + "description": "Max QPS supported for internal requests originating from Connd.", + "format": "int64", + "type": "string" + }, + "ratelimitThreshold": { + "description": "Max QPS supported by the connector version before throttling of requests.", + "format": "int64", + "type": "string" + }, + "resourceLimits": { + "$ref": "ResourceLimits", + "description": "System resource limits." + }, + "resourceRequests": { + "$ref": "ResourceRequests", + "description": "System resource requests." + }, + "sharedDeployment": { + "description": "The name of shared connector deployment.", + "type": "string" + } + }, + "type": "object" + }, "ConnectorVersion": { "description": "ConnectorVersion indicates a specific version of a connector.", "id": "ConnectorVersion", @@ -1655,12 +3140,25 @@ "readOnly": true, "type": "array" }, + "connectorInfraConfig": { + "$ref": "ConnectorInfraConfig", + "description": "Output only. Infra configs supported by Connector.", + "readOnly": true + }, "createTime": { "description": "Output only. Created time.", "format": "google-datetime", "readOnly": true, "type": "string" }, + "destinationConfigTemplates": { + "description": "Output only. List of destination configs needed to create a connection.", + "items": { + "$ref": "DestinationConfigTemplate" + }, + "readOnly": true, + "type": "array" + }, "displayName": { "description": "Output only. Display name.", "readOnly": true, @@ -1671,6 +3169,11 @@ "description": "Output only. Configuration for Egress Control.", "readOnly": true }, + "eventingConfigTemplate": { + "$ref": "EventingConfigTemplate", + "description": "Output only. Eventing configuration supported by the Connector.", + "readOnly": true + }, "labels": { "additionalProperties": { "type": "string" @@ -1721,11 +3224,36 @@ "readOnly": true, "type": "array" }, + "sslConfigTemplate": { + "$ref": "SslConfigTemplate", + "description": "Output only. Ssl configuration supported by the Connector.", + "readOnly": true + }, "supportedRuntimeFeatures": { "$ref": "SupportedRuntimeFeatures", "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", @@ -1735,6 +3263,287 @@ }, "type": "object" }, + "ConnectorVersionInfraConfig": { + "description": "This cofiguration provides infra configs like rate limit threshold which need to be configurable for every connector version", + "id": "ConnectorVersionInfraConfig", + "properties": { + "connectionRatelimitWindowSeconds": { + "description": "Output only. The window used for ratelimiting runtime requests to connections.", + "format": "int64", + "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.", + "readOnly": true + }, + "internalclientRatelimitThreshold": { + "description": "Output only. Max QPS supported for internal requests originating from Connd.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "ratelimitThreshold": { + "description": "Output only. Max QPS supported by the connector version before throttling of requests.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "resourceLimits": { + "$ref": "ResourceLimits", + "description": "Output only. System resource limits.", + "readOnly": true + }, + "resourceRequests": { + "$ref": "ResourceRequests", + "description": "Output only. System resource requests.", + "readOnly": true + }, + "sharedDeployment": { + "description": "Output only. The name of shared connector deployment.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ConnectorsLogConfig": { + "description": "Log configuration for the connection.", + "id": "ConnectorsLogConfig", + "properties": { + "enabled": { + "description": "Enabled represents whether logging is enabled or not for a connection.", + "type": "boolean" + } + }, + "type": "object" + }, + "CustomConnector": { + "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", + "readOnly": true, + "type": "string" + }, + "customConnectorType": { + "description": "Required. Type of the custom connector.", + "enum": [ + "CUSTOM_CONNECTOR_TYPE_UNSPECIFIED", + "OPEN_API", + "PROTO" + ], + "enumDescriptions": [ + "Connector type is not specified.", + "OpenAPI connector.", + "Proto connector." + ], + "type": "string" + }, + "description": { + "description": "Optional. Description of the resource.", + "type": "string" + }, + "displayName": { + "description": "Optional. Display name.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "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" + }, + "logo": { + "description": "Optional. Logo of the resource.", + "type": "string" + }, + "name": { + "description": "Identifier. Resource name of the CustomConnector. Format: projects/{project}/locations/{location}/customConnectors/{connector}", + "type": "string" + }, + "updateTime": { + "description": "Output only. Updated time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "CustomConnectorVersion": { + "description": "CustomConnectorVersion indicates a specific version of a connector.", + "id": "CustomConnectorVersion", + "properties": { + "authConfig": { + "$ref": "AuthConfig", + "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.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "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. When enabled, the connector will be a facade/ proxy, and connects to the destination provided during connection creation.", + "type": "boolean" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "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" + }, + "name": { + "description": "Output only. Identifier. Resource name of the Version. Format: projects/{project}/locations/{location}/customConnectors/{custom_connector}/customConnectorVersions/{custom_connector_version}", + "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. The location can be either a public url like `https://public-url.com/spec` Or a Google Cloud Storage location like `gs:///`", + "type": "string" + }, + "state": { + "description": "Output only. State of the custom connector version.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "DEPRECATED" + ], + "enumDescriptions": [ + "State Unspecified.", + "Active state. By default we set the state to Active.", + "Deprecated state." + ], + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Updated time.", + "format": "google-datetime", + "readOnly": true, + "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" + }, + "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": { @@ -1748,6 +3557,7 @@ "type": "integer" }, "serviceAttachment": { + "deprecated": true, "description": "PSC service attachments. Format: projects/*/regions/*/serviceAttachments/*", "type": "string" } @@ -1772,6 +3582,64 @@ }, "type": "object" }, + "DestinationConfigTemplate": { + "description": "DestinationConfigTemplate defines required destinations supported by the Connector.", + "id": "DestinationConfigTemplate", + "properties": { + "defaultPort": { + "description": "The default port.", + "format": "int32", + "type": "integer" + }, + "description": { + "description": "Description.", + "type": "string" + }, + "displayName": { + "description": "Display name of the parameter.", + "type": "string" + }, + "isAdvanced": { + "description": "Whether the current destination tempalate is part of Advanced settings", + "type": "boolean" + }, + "key": { + "description": "Key of the destination.", + "type": "string" + }, + "max": { + "description": "The maximum number of destinations supported for this key.", + "format": "int32", + "type": "integer" + }, + "min": { + "description": "The minimum number of destinations supported for this key.", + "format": "int32", + "type": "integer" + }, + "portFieldType": { + "description": "Whether port number should be provided by customers.", + "enum": [ + "FIELD_TYPE_UNSPECIFIED", + "REQUIRED", + "OPTIONAL", + "NOT_USED" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "regexPattern": { + "description": "Regex pattern for host.", + "type": "string" + } + }, + "type": "object" + }, "EgressControlConfig": { "description": "Egress control config for connector runtime. These configurations define the rules to identify which outbound domains/hosts needs to be whitelisted. It may be a static information for a particular connector version or it is derived from the configurations provided by the customer in Connection resource.", "id": "EgressControlConfig", @@ -1793,6 +3661,118 @@ "properties": {}, "type": "object" }, + "EncryptionConfig": { + "description": "Regional encryption config for CMEK details.", + "id": "EncryptionConfig", + "properties": { + "encryptionType": { + "description": "Optional. Encryption type for the region.", + "enum": [ + "ENCRYPTION_TYPE_UNSPECIFIED", + "GMEK", + "CMEK" + ], + "enumDescriptions": [ + "Encryption type unspecified.", + "Google managed encryption keys", + "Customer managed encryption keys." + ], + "type": "string" + }, + "kmsKeyName": { + "description": "Optional. KMS crypto key. This field accepts identifiers of the form `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/ {crypto_key}`", + "type": "string" + } + }, + "type": "object" + }, + "EncryptionKey": { + "description": "Encryption Key value.", + "id": "EncryptionKey", + "properties": { + "kmsKeyName": { + "description": "The [KMS key name] with which the content of the Operation is encrypted. The expected format: `projects/*/locations/*/keyRings/*/cryptoKeys/*`. Will be empty string if google managed.", + "type": "string" + }, + "type": { + "description": "Type.", + "enum": [ + "TYPE_UNSPECIFIED", + "GOOGLE_MANAGED", + "CUSTOMER_MANAGED" + ], + "enumDescriptions": [ + "Value type is not specified.", + "Google Managed.", + "Customer Managed." + ], + "type": "string" + } + }, + "type": "object" + }, + "EndPoint": { + "description": "Endpoint message includes details of the Destination endpoint.", + "id": "EndPoint", + "properties": { + "endpointUri": { + "description": "The URI of the Endpoint.", + "type": "string" + }, + "headers": { + "description": "List of Header to be added to the Endpoint.", + "items": { + "$ref": "Header" + }, + "type": "array" + } + }, + "type": "object" + }, + "EndpointAttachment": { + "description": "represents the Connector's Endpoint Attachment resource", + "id": "EndpointAttachment", + "properties": { + "createTime": { + "description": "Output only. Created time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Description of the resource.", + "type": "string" + }, + "endpointIp": { + "description": "Output only. The Private Service Connect connection endpoint ip", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "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" + }, + "name": { + "description": "Output only. Resource name of the Endpoint Attachment. Format: projects/{project}/locations/{location}/endpointAttachments/{endpoint_attachment}", + "readOnly": true, + "type": "string" + }, + "serviceAttachment": { + "description": "Required. The path of the service attachment", + "type": "string" + }, + "updateTime": { + "description": "Output only. Updated time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "EnumOption": { "description": "EnumOption definition", "id": "EnumOption", @@ -1808,6 +3788,417 @@ }, "type": "object" }, + "EventSubscription": { + "description": "represents the Connector's EventSubscription resource", + "id": "EventSubscription", + "properties": { + "createTime": { + "description": "Output only. Created time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "destinations": { + "$ref": "EventSubscriptionDestination", + "description": "Optional. The destination to hit when we receive an event" + }, + "eventTypeId": { + "description": "Optional. Event type id of the event of current EventSubscription.", + "type": "string" + }, + "jms": { + "$ref": "JMS", + "description": "Optional. JMS is the source for the event listener." + }, + "name": { + "description": "Required. Resource name of the EventSubscription. Format: projects/{project}/locations/{location}/connections/{connection}/eventSubscriptions/{event_subscription}", + "type": "string" + }, + "status": { + "$ref": "EventSubscriptionStatus", + "description": "Optional. Status indicates the status of the event subscription resource" + }, + "subscriber": { + "description": "Optional. name of the Subscriber for the current EventSubscription.", + "type": "string" + }, + "subscriberLink": { + "description": "Optional. Link for Subscriber of the current EventSubscription.", + "type": "string" + }, + "updateTime": { + "description": "Output only. Updated time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "EventSubscriptionDestination": { + "description": "Message for EventSubscription Destination to act on receiving an event", + "id": "EventSubscriptionDestination", + "properties": { + "endpoint": { + "$ref": "EndPoint", + "description": "OPTION 1: Hit an endpoint when we receive an event." + }, + "serviceAccount": { + "description": "Service account needed for runtime plane to trigger IP workflow.", + "type": "string" + }, + "type": { + "description": "type of the destination", + "enum": [ + "TYPE_UNSPECIFIED", + "ENDPOINT" + ], + "enumDescriptions": [ + "Default state.", + "Endpoint - Hit the value of endpoint when event is received" + ], + "type": "string" + } + }, + "type": "object" + }, + "EventSubscriptionStatus": { + "description": "EventSubscription Status denotes the status of the EventSubscription resource.", + "id": "EventSubscriptionStatus", + "properties": { + "description": { + "description": "Output only. Description of the state.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. State of Event Subscription resource.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "UPDATING", + "ACTIVE", + "SUSPENDED", + "ERROR" + ], + "enumDescriptions": [ + "Default state.", + "EventSubscription creation is in progress.", + "EventSubscription is in Updating status.", + "EventSubscription is in Active state and is ready to receive events.", + "EventSubscription is currently suspended.", + "EventSubscription is in Error state." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "EventType": { + "description": "EventType includes fields.", + "id": "EventType", + "properties": { + "createTime": { + "description": "Output only. Created time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "enrichedEventPayloadSchema": { + "description": "Output only. Schema of the event payload after enriched. Will be null if read before send is not supported.", + "readOnly": true, + "type": "string" + }, + "entityType": { + "description": "Output only. Runtime entity type name. Will be null if entity type map is not available. Used for read before send feature.", + "readOnly": true, + "type": "string" + }, + "eventPayloadSchema": { + "description": "Output only. Schema of webhook event payload.", + "readOnly": true, + "type": "string" + }, + "eventTypeId": { + "description": "Output only. Event type id. Example: `ticket.created`.", + "readOnly": true, + "type": "string" + }, + "idPath": { + "description": "Output only. Id path denotes the path of id in webhook payload.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. Resource name of the eventtype. Format: projects/{project}/locations/{location}/providers/{provider}/connectors/{connector}/versions/{version}/eventtypes/{eventtype} Only global location is supported for Connector resource.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Updated time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "EventingConfig": { + "description": "Eventing Configuration of a connection", + "id": "EventingConfig", + "properties": { + "additionalVariables": { + "description": "Additional eventing related field values", + "items": { + "$ref": "ConfigVariable" + }, + "type": "array" + }, + "authConfig": { + "$ref": "AuthConfig", + "description": "Auth details for the webhook adapter." + }, + "deadLetterConfig": { + "$ref": "DeadLetterConfig", + "description": "Optional. Dead letter configuration for eventing of a connection." + }, + "enrichmentEnabled": { + "description": "Enrichment Enabled.", + "type": "boolean" + }, + "eventsListenerIngressEndpoint": { + "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" + }, + "EventingConfigTemplate": { + "description": "Eventing Config details of a connector version.", + "id": "EventingConfigTemplate", + "properties": { + "additionalVariables": { + "description": "Additional fields that need to be rendered.", + "items": { + "$ref": "ConfigVariableTemplate" + }, + "type": "array" + }, + "authConfigTemplates": { + "description": "AuthConfigTemplates represents the auth values for the webhook adapter.", + "items": { + "$ref": "AuthConfigTemplate" + }, + "type": "array" + }, + "autoRefresh": { + "description": "Auto refresh to extend webhook life.", + "type": "boolean" + }, + "autoRegistrationSupported": { + "description": "Auto Registration supported.", + "type": "boolean" + }, + "encryptionKeyTemplate": { + "$ref": "ConfigVariableTemplate", + "description": "Encryption key (can be either Google managed or CMEK)." + }, + "enrichmentSupported": { + "description": "Enrichment Supported.", + "type": "boolean" + }, + "eventListenerType": { + "description": "The type of the event listener for a specific connector.", + "enum": [ + "EVENT_LISTENER_TYPE_UNSPECIFIED", + "WEBHOOK_LISTENER", + "JMS_LISTENER" + ], + "enumDescriptions": [ + "Default value.", + "Webhook listener. e.g. Jira, Zendesk, Servicenow etc.,", + "JMS Listener. e.g. IBM MQ, Rabbit MQ etc.," + ], + "type": "string" + }, + "isEventingSupported": { + "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" + }, + "EventingDetails": { + "description": "Eventing Details message.", + "id": "EventingDetails", + "properties": { + "customEventTypes": { + "description": "Output only. Custom Event Types.", + "readOnly": true, + "type": "boolean" + }, + "description": { + "description": "Output only. Description.", + "readOnly": true, + "type": "string" + }, + "documentationLink": { + "description": "Output only. Link to public documentation.", + "readOnly": true, + "type": "string" + }, + "iconLocation": { + "description": "Output only. Cloud storage location of the icon.", + "readOnly": true, + "type": "string" + }, + "launchStage": { + "description": "Output only. Eventing Launch Stage.", + "enum": [ + "LAUNCH_STAGE_UNSPECIFIED", + "PREVIEW", + "GA", + "DEPRECATED", + "PRIVATE_PREVIEW" + ], + "enumDescriptions": [ + "LAUNCH_STAGE_UNSPECIFIED.", + "PREVIEW.", + "GA.", + "DEPRECATED.", + "PRIVATE_PREVIEW." + ], + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. Name of the Eventing trigger.", + "readOnly": true, + "type": "string" + }, + "searchTags": { + "description": "Output only. Array of search keywords.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "type": { + "description": "Output only. The type of the event listener for a specific connector.", + "enum": [ + "TYPE_UNSPECIFIED", + "WEBHOOK", + "JMS" + ], + "enumDescriptions": [ + "Default value.", + "Webhook listener. e.g. Jira, Zendesk, Servicenow etc.,", + "JMS Listener. e.g. IBM MQ, Rabbit MQ etc.," + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "EventingRuntimeData": { + "description": "Eventing runtime data has the details related to eventing managed by the system.", + "id": "EventingRuntimeData", + "properties": { + "eventsListenerEndpoint": { + "description": "Output only. Events listener endpoint. The value will populated after provisioning the events listener.", + "readOnly": true, + "type": "string" + }, + "eventsListenerPscSa": { + "description": "Output only. Events listener PSC Service attachment. The value will be populated after provisioning the events listener with private connectivity enabled.", + "readOnly": true, + "type": "string" + }, + "status": { + "$ref": "EventingStatus", + "description": "Output only. Current status of eventing.", + "readOnly": true + } + }, + "type": "object" + }, + "EventingStatus": { + "description": "EventingStatus indicates the state of eventing.", + "id": "EventingStatus", + "properties": { + "description": { + "description": "Output only. Description of error if State is set to \"ERROR\".", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. State.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "ERROR", + "INGRESS_ENDPOINT_REQUIRED" + ], + "enumDescriptions": [ + "Default state.", + "Eventing is enabled and ready to receive events.", + "Eventing is not active due to an error.", + "Ingress endpoint required." + ], + "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", @@ -1921,6 +4312,53 @@ "DATA_TYPE_TIME_WITH_TIMEZONE", "DATA_TYPE_TIMESTAMP_WITH_TIMEZONE" ], + "enumDeprecated": [ + false, + true, + false, + false, + false, + true, + false, + true, + true, + false, + false, + 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 + ], "enumDescriptions": [ "Data type is not specified.", "DEPRECATED! Use DATA_TYPE_INTEGER.", @@ -1982,6 +4420,10 @@ "description": "Name of the Field.", "type": "string" }, + "jsonSchema": { + "$ref": "JsonSchema", + "description": "JsonSchema representation of this entity's schema" + }, "key": { "description": "The following boolean field specifies if the current Field acts as a primary key or id if the parent is of type entity.", "type": "boolean" @@ -1997,6 +4439,78 @@ }, "type": "object" }, + "FieldComparison": { + "description": "Field that needs to be compared.", + "id": "FieldComparison", + "properties": { + "boolValue": { + "description": "Boolean value", + "type": "boolean" + }, + "comparator": { + "description": "Comparator to use for comparing the field value.", + "enum": [ + "COMPARATOR_UNSPECIFIED", + "EQUALS", + "NOT_EQUALS" + ], + "enumDescriptions": [ + "The default value.", + "The field value must be equal to the specified value.", + "The field value must not be equal to the specified value." + ], + "type": "string" + }, + "intValue": { + "description": "Integer value", + "format": "int64", + "type": "string" + }, + "key": { + "description": "Key of the field.", + "type": "string" + }, + "stringValue": { + "description": "String value", + "type": "string" + } + }, + "type": "object" + }, + "HPAConfig": { + "description": "Autoscaling config for connector deployment system metrics.", + "id": "HPAConfig", + "properties": { + "cpuUtilizationThreshold": { + "description": "Output only. Percent CPU utilization where HPA triggers autoscaling.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "memoryUtilizationThreshold": { + "description": "Output only. Percent Memory utilization where HPA triggers autoscaling.", + "format": "int64", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "Header": { + "description": "Header details for a given header to be added to Endpoint.", + "id": "Header", + "properties": { + "key": { + "description": "Key of Header.", + "type": "string" + }, + "value": { + "description": "Value of Header.", + "type": "string" + } + }, + "type": "object" + }, "InputParameter": { "description": "Metadata of an input parameter.", "id": "InputParameter", @@ -2050,6 +4564,53 @@ "DATA_TYPE_TIME_WITH_TIMEZONE", "DATA_TYPE_TIMESTAMP_WITH_TIMEZONE" ], + "enumDeprecated": [ + false, + true, + false, + false, + false, + true, + false, + true, + true, + false, + false, + 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 + ], "enumDescriptions": [ "Data type is not specified.", "DEPRECATED! Use DATA_TYPE_INTEGER.", @@ -2107,6 +4668,10 @@ "description": "A brief description of the Parameter.", "type": "string" }, + "jsonSchema": { + "$ref": "JsonSchema", + "description": "JsonSchema representation of this action's parameter" + }, "nullable": { "description": "Specifies whether a null value is allowed.", "type": "boolean" @@ -2118,6 +4683,350 @@ }, "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", + "properties": { + "name": { + "description": "Optional. Name of the JMS source. i.e. queueName or topicName", + "type": "string" + }, + "type": { + "description": "Optional. Type of the JMS Source. i.e. Queue or Topic", + "enum": [ + "TYPE_UNSPECIFIED", + "QUEUE", + "TOPIC" + ], + "enumDescriptions": [ + "Default state.", + "JMS Queue.", + "JMS Topic." + ], + "type": "string" + } + }, + "type": "object" + }, + "JsonSchema": { + "description": "JsonSchema representation of schema metadata", + "id": "JsonSchema", + "properties": { + "default": { + "description": "The default value of the field or object described by this schema.", + "type": "any" + }, + "description": { + "description": "A description of this schema.", + "type": "string" + }, + "enum": { + "description": "Possible values for an enumeration. This works in conjunction with `type` to represent types with a fixed set of legal values", + "items": { + "type": "any" + }, + "type": "array" + }, + "format": { + "description": "Format of the value as per https://json-schema.org/understanding-json-schema/reference/string.html#format", + "type": "string" + }, + "items": { + "$ref": "JsonSchema", + "description": "Schema that applies to array values, applicable only if this is of type `array`." + }, + "jdbcType": { + "description": "JDBC datatype of the field.", + "enum": [ + "DATA_TYPE_UNSPECIFIED", + "DATA_TYPE_INT", + "DATA_TYPE_SMALLINT", + "DATA_TYPE_DOUBLE", + "DATA_TYPE_DATE", + "DATA_TYPE_DATETIME", + "DATA_TYPE_TIME", + "DATA_TYPE_STRING", + "DATA_TYPE_LONG", + "DATA_TYPE_BOOLEAN", + "DATA_TYPE_DECIMAL", + "DATA_TYPE_UUID", + "DATA_TYPE_BLOB", + "DATA_TYPE_BIT", + "DATA_TYPE_TINYINT", + "DATA_TYPE_INTEGER", + "DATA_TYPE_BIGINT", + "DATA_TYPE_FLOAT", + "DATA_TYPE_REAL", + "DATA_TYPE_NUMERIC", + "DATA_TYPE_CHAR", + "DATA_TYPE_VARCHAR", + "DATA_TYPE_LONGVARCHAR", + "DATA_TYPE_TIMESTAMP", + "DATA_TYPE_NCHAR", + "DATA_TYPE_NVARCHAR", + "DATA_TYPE_LONGNVARCHAR", + "DATA_TYPE_NULL", + "DATA_TYPE_OTHER", + "DATA_TYPE_JAVA_OBJECT", + "DATA_TYPE_DISTINCT", + "DATA_TYPE_STRUCT", + "DATA_TYPE_ARRAY", + "DATA_TYPE_CLOB", + "DATA_TYPE_REF", + "DATA_TYPE_DATALINK", + "DATA_TYPE_ROWID", + "DATA_TYPE_BINARY", + "DATA_TYPE_VARBINARY", + "DATA_TYPE_LONGVARBINARY", + "DATA_TYPE_NCLOB", + "DATA_TYPE_SQLXML", + "DATA_TYPE_REF_CURSOR", + "DATA_TYPE_TIME_WITH_TIMEZONE", + "DATA_TYPE_TIMESTAMP_WITH_TIMEZONE" + ], + "enumDeprecated": [ + false, + true, + false, + false, + false, + true, + false, + true, + true, + false, + false, + 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 + ], + "enumDescriptions": [ + "Data type is not specified.", + "DEPRECATED! Use DATA_TYPE_INTEGER.", + "Short integer(int16) data type.", + "Double data type.", + "Date data type.", + "DEPRECATED! Use DATA_TYPE_TIMESTAMP.", + "Time data type.", + "DEPRECATED! Use DATA_TYPE_VARCHAR.", + "DEPRECATED! Use DATA_TYPE_BIGINT.", + "Boolean data type.", + "Decimal data type.", + "DEPRECATED! Use DATA_TYPE_VARCHAR.", + "UNSUPPORTED! Binary data type.", + "Bit data type.", + "Small integer(int8) data type.", + "Integer(int32) data type.", + "Long integer(int64) data type.", + "Float data type.", + "Real data type.", + "Numeric data type.", + "Char data type.", + "Varchar data type.", + "Longvarchar data type.", + "Timestamp data type.", + "Nchar data type.", + "Nvarchar data type.", + "Longnvarchar data type.", + "Null data type.", + "UNSUPPORTED! Binary data type.", + "UNSUPPORTED! Binary data type.", + "UNSUPPORTED! Binary data type.", + "UNSUPPORTED! Binary data type.", + "UNSUPPORTED! Binary data type.", + "UNSUPPORTED! Binary data type.", + "UNSUPPORTED! Binary data type.", + "UNSUPPORTED! Binary data type.", + "UNSUPPORTED! Row id data type.", + "UNSUPPORTED! Binary data type.", + "UNSUPPORTED! Variable binary data type.", + "UNSUPPORTED! Long variable binary data type.", + "UNSUPPORTED! NCLOB data type.", + "UNSUPPORTED! SQL XML data type is not supported.", + "UNSUPPORTED! Cursor reference type is not supported.", + "UNSUPPORTED! Use TIME or TIMESTAMP instead.", + "UNSUPPORTED! Use TIMESTAMP instead." + ], + "type": "string" + }, + "properties": { + "additionalProperties": { + "$ref": "JsonSchema" + }, + "description": "The child schemas, applicable only if this is of type `object`. The key is the name of the property and the value is the json schema that describes that property", + "type": "object" + }, + "required": { + "description": "Whether this property is required.", + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "description": "JSON Schema Validation: A Vocabulary for Structural Validation of JSON", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "JwtClaims": { "description": "JWT claims used for the jwt-bearer authorization grant.", "id": "JwtClaims", @@ -2137,6 +5046,24 @@ }, "type": "object" }, + "ListActionsResponse": { + "description": "Response message for ListActions API", + "id": "ListActionsResponse", + "properties": { + "actions": { + "description": "list of actions", + "items": { + "$ref": "RuntimeActionSchema" + }, + "type": "array" + }, + "nextPageToken": { + "description": "token for next page", + "type": "string" + } + }, + "type": "object" + }, "ListConnectionsResponse": { "description": "Response message for ConnectorsService.ListConnections", "id": "ListConnectionsResponse", @@ -2212,6 +5139,142 @@ }, "type": "object" }, + "ListCustomConnectorVersionsResponse": { + "description": "Response message for Connectors.ListCustomConnectorVersions.", + "id": "ListCustomConnectorVersionsResponse", + "properties": { + "customConnectorVersions": { + "description": "A list of connector versions.", + "items": { + "$ref": "CustomConnectorVersion" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Next page token.", + "type": "string" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListCustomConnectorsResponse": { + "description": "Response message for Connectors.ListCustomConnectors.", + "id": "ListCustomConnectorsResponse", + "properties": { + "customConnectors": { + "description": "A list of customConnectors.", + "items": { + "$ref": "CustomConnector" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Next page token.", + "type": "string" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListEndpointAttachmentsResponse": { + "description": "Response message for ConnectorsService.ListEndpointAttachments", + "id": "ListEndpointAttachmentsResponse", + "properties": { + "endpointAttachments": { + "description": "EndpointAttachments.", + "items": { + "$ref": "EndpointAttachment" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Next page token.", + "type": "string" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListEntityTypesResponse": { + "description": "Response message for ListEntityTypes API", + "id": "ListEntityTypesResponse", + "properties": { + "entityTypes": { + "description": "list of entity types", + "items": { + "$ref": "RuntimeEntitySchema" + }, + "type": "array" + }, + "nextPageToken": { + "description": "token for next page", + "type": "string" + } + }, + "type": "object" + }, + "ListEventSubscriptionsResponse": { + "description": "Response message for ConnectorsService.ListEventSubscriptions", + "id": "ListEventSubscriptionsResponse", + "properties": { + "eventSubscriptions": { + "description": "Subscriptions.", + "items": { + "$ref": "EventSubscription" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Next page token.", + "type": "string" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListEventTypesResponse": { + "description": "Response message for Connectors.ListEventTypes.", + "id": "ListEventTypesResponse", + "properties": { + "eventTypes": { + "description": "A list of connector versions.", + "items": { + "$ref": "EventType" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Next page token.", + "type": "string" + } + }, + "type": "object" + }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -2230,6 +5293,24 @@ }, "type": "object" }, + "ListManagedZonesResponse": { + "description": "Response message for ConnectorsService.ListManagedZones", + "id": "ListManagedZonesResponse", + "properties": { + "managedZones": { + "description": "ManagedZones.", + "items": { + "$ref": "ManagedZone" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Next page token.", + "type": "string" + } + }, + "type": "object" + }, "ListOperationsResponse": { "description": "The response message for Operations.ListOperations.", "id": "ListOperationsResponse", @@ -2309,8 +5390,29 @@ }, "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 Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -2358,6 +5460,235 @@ }, "type": "object" }, + "LogicalExpression": { + "description": "Struct for representing boolean expressions.", + "id": "LogicalExpression", + "properties": { + "fieldComparisons": { + "description": "A list of fields to be compared.", + "items": { + "$ref": "FieldComparison" + }, + "type": "array" + }, + "logicalExpressions": { + "description": "A list of nested conditions to be compared.", + "items": { + "$ref": "LogicalExpression" + }, + "type": "array" + }, + "logicalOperator": { + "description": "The logical operator to use between the fields and conditions.", + "enum": [ + "OPERATOR_UNSPECIFIED", + "AND", + "OR" + ], + "enumDescriptions": [ + "The default value.", + "AND operator; The conditions must all be true.", + "OR operator; At least one of the conditions must be true." + ], + "type": "string" + } + }, + "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", + "properties": { + "createTime": { + "description": "Output only. Created time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Description of the resource.", + "type": "string" + }, + "dns": { + "description": "Required. DNS Name of the resource", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "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" + }, + "name": { + "description": "Output only. Resource name of the Managed Zone. Format: projects/{project}/locations/global/managedZones/{managed_zone}", + "readOnly": true, + "type": "string" + }, + "targetProject": { + "description": "Required. The name of the Target Project", + "type": "string" + }, + "targetVpc": { + "description": "Required. The name of the Target Project VPC Network", + "type": "string" + }, + "updateTime": { + "description": "Output only. Updated time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfig": { + "description": "Regional Network Config.", + "id": "NetworkConfig", + "properties": { + "egressIps": { + "description": "Output only. Egress IPs", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "egressMode": { + "description": "Optional. Egress mode for the network.", + "enum": [ + "NETWORK_EGRESS_MODE_UNSPECIFIED", + "AUTO_IP", + "STATIC_IP" + ], + "enumDescriptions": [ + "Egress mode unspecified.", + "Network egress through auto assigned IPs.", + "Network egress through static IPs." + ], + "type": "string" + } + }, + "type": "object" + }, "NodeConfig": { "description": "Node configuration for the connection.", "id": "NodeConfig", @@ -2375,6 +5706,81 @@ }, "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", + "properties": { + "authCode": { + "description": "Authorization code to be exchanged for access and refresh tokens.", + "type": "string" + }, + "authUri": { + "description": "Auth URL for Authorization Code Flow", + "type": "string" + }, + "clientId": { + "description": "Client ID for user-provided OAuth app.", + "type": "string" + }, + "clientSecret": { + "$ref": "Secret", + "description": "Client secret for user-provided OAuth app." + }, + "enablePkce": { + "description": "Whether to enable PKCE when the user performs the auth code flow.", + "type": "boolean" + }, + "pkceVerifier": { + "description": "PKCE verifier to be used during the auth code exchange.", + "type": "string" + }, + "redirectUri": { + "description": "Redirect URI to be provided during the auth code exchange.", + "type": "string" + }, + "scopes": { + "description": "Scopes the connection will request when the user performs the auth code flow.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "Oauth2ClientCredentials": { "description": "Parameters to support Oauth 2.0 Client Credentials Grant Authentication. See https://tools.ietf.org/html/rfc6749#section-1.3.4 for more details.", "id": "Oauth2ClientCredentials", @@ -2434,7 +5840,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" } }, @@ -2484,8 +5890,22 @@ }, "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/).", + "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": { @@ -2591,18 +6011,64 @@ }, "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", "properties": {}, "type": "object" }, + "RegionalSettings": { + "description": "Regional Settings details.", + "id": "RegionalSettings", + "properties": { + "encryptionConfig": { + "$ref": "EncryptionConfig", + "description": "Optional. Regional encryption config to hold CMEK details." + }, + "name": { + "description": "Output only. Resource name of the Connection. Format: projects/{project}/locations/{location}/regionalSettings", + "readOnly": true, + "type": "string" + }, + "networkConfig": { + "$ref": "NetworkConfig", + "description": "Optional. Regional network config." + }, + "provisioned": { + "description": "Output only. Specifies whether the region is provisioned.", + "readOnly": true, + "type": "boolean" + } + }, + "type": "object" + }, + "RepairEventingRequest": { + "description": "Request message for ConnectorsService.RepairEventing", + "id": "RepairEventingRequest", + "properties": {}, + "type": "object" + }, "Resource": { "description": "Resource definition", "id": "Resource", "properties": { "pathTemplate": { - "description": "Template to uniquely represent a GCP resource in a format IAM expects This is a template that can have references to other values provided in the config variable template.", + "description": "Template to uniquely represent a Google Cloud resource in a format IAM expects This is a template that can have references to other values provided in the config variable template.", "type": "string" }, "type": { @@ -2616,16 +6082,50 @@ ], "enumDescriptions": [ "Value type is not specified.", - "GCP Project Resource.", - "Any GCP Resource which is identified uniquely by IAM.", - "GCP Secret Resource.", - "GCP Secret Version Resource." + "Google Cloud Project Resource.", + "Any Google Cloud Resource which is identified uniquely by IAM.", + "Google Cloud Secret Resource.", + "Google Cloud Secret Version Resource." ], "type": "string" } }, "type": "object" }, + "ResourceLimits": { + "description": "Resource limits defined for connection pods of a given connector type.", + "id": "ResourceLimits", + "properties": { + "cpu": { + "description": "Output only. CPU limit.", + "readOnly": true, + "type": "string" + }, + "memory": { + "description": "Output only. Memory limit.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ResourceRequests": { + "description": "Resource requests defined for connection pods of a given connector type.", + "id": "ResourceRequests", + "properties": { + "cpu": { + "description": "Output only. CPU request.", + "readOnly": true, + "type": "string" + }, + "memory": { + "description": "Output only. Memory request.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "ResultMetadata": { "description": "Metadata of result field.", "id": "ResultMetadata", @@ -2679,6 +6179,53 @@ "DATA_TYPE_TIME_WITH_TIMEZONE", "DATA_TYPE_TIMESTAMP_WITH_TIMEZONE" ], + "enumDeprecated": [ + false, + true, + false, + false, + false, + true, + false, + true, + true, + false, + false, + 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 + ], "enumDescriptions": [ "Data type is not specified.", "DEPRECATED! Use DATA_TYPE_INTEGER.", @@ -2735,12 +6282,22 @@ "field": { "description": "Name of the result field.", "type": "string" + }, + "jsonSchema": { + "$ref": "JsonSchema", + "description": "JsonSchema representation of this action's result" } }, "type": "object" }, + "RetryEventSubscriptionRequest": { + "description": "Request message for ConnectorsService.RefreshEventSubscription", + "id": "RetryEventSubscriptionRequest", + "properties": {}, + "type": "object" + }, "RoleGrant": { - "description": "This configuration defines all the Cloud IAM roles that needs to be granted to a particular GCP resource for the selected prinicpal like service account. These configurations will let UI display to customers what IAM roles need to be granted by them. Or these configurations can be used by the UI to render a 'grant' button to do the same on behalf of the user.", + "description": "This configuration defines all the Cloud IAM roles that needs to be granted to a particular Google Cloud resource for the selected principal like service account. These configurations will let UI display to customers what IAM roles need to be granted by them. Or these configurations can be used by the UI to render a 'grant' button to do the same on behalf of the user.", "id": "RoleGrant", "properties": { "helperTextTemplate": { @@ -2782,6 +6339,21 @@ "readOnly": true, "type": "string" }, + "description": { + "description": "Output only. Brief Description of action", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Output only. Display Name of action to be shown on client side", + "readOnly": true, + "type": "string" + }, + "inputJsonSchema": { + "$ref": "JsonSchema", + "description": "Output only. JsonSchema representation of this action's input metadata", + "readOnly": true + }, "inputParameters": { "description": "Output only. List of input parameter metadata for the action.", "items": { @@ -2790,6 +6362,11 @@ "readOnly": true, "type": "array" }, + "resultJsonSchema": { + "$ref": "JsonSchema", + "description": "Output only. JsonSchema representation of this action's result metadata", + "readOnly": true + }, "resultMetadata": { "description": "Output only. List of result field metadata.", "items": { @@ -2861,6 +6438,15 @@ "DELETING", "UPDATING" ], + "enumDeprecated": [ + false, + true, + true, + false, + false, + false, + false + ], "enumDescriptions": [ "STATE_UNSPECIFIED.", "INACTIVE.", @@ -2892,6 +6478,51 @@ }, "readOnly": true, "type": "array" + }, + "jsonSchema": { + "$ref": "JsonSchema", + "description": "Output only. JsonSchema representation of this entity's metadata", + "readOnly": true + } + }, + "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" @@ -2923,6 +6554,69 @@ }, "type": "object" }, + "Settings": { + "description": "Global Settings details.", + "id": "Settings", + "properties": { + "name": { + "description": "Output only. Resource name of the Connection. Format: projects/{project}/locations/global/settings}", + "readOnly": true, + "type": "string" + }, + "payg": { + "description": "Output only. Flag indicates if user is in PayG model", + "readOnly": true, + "type": "boolean" + }, + "tenantProjectId": { + "description": "Output only. Tenant project id of the consumer project.", + "readOnly": true, + "type": "string" + }, + "vpcsc": { + "description": "Optional. Flag indicates whether vpc-sc is enabled.", + "type": "boolean" + } + }, + "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", @@ -2969,6 +6663,154 @@ }, "type": "object" }, + "SslConfig": { + "description": "SSL Configuration of a connection", + "id": "SslConfig", + "properties": { + "additionalVariables": { + "description": "Additional SSL related field values", + "items": { + "$ref": "ConfigVariable" + }, + "type": "array" + }, + "clientCertType": { + "description": "Type of Client Cert (PEM/JKS/.. etc.)", + "enum": [ + "CERT_TYPE_UNSPECIFIED", + "PEM" + ], + "enumDescriptions": [ + "Cert type unspecified.", + "Privacy Enhanced Mail (PEM) Type" + ], + "type": "string" + }, + "clientCertificate": { + "$ref": "Secret", + "description": "Client Certificate" + }, + "clientPrivateKey": { + "$ref": "Secret", + "description": "Client Private Key" + }, + "clientPrivateKeyPass": { + "$ref": "Secret", + "description": "Secret containing the passphrase protecting the Client Private Key" + }, + "privateServerCertificate": { + "$ref": "Secret", + "description": "Private Server Certificate. Needs to be specified if trust model is `PRIVATE`." + }, + "serverCertType": { + "description": "Type of Server Cert (PEM/JKS/.. etc.)", + "enum": [ + "CERT_TYPE_UNSPECIFIED", + "PEM" + ], + "enumDescriptions": [ + "Cert type unspecified.", + "Privacy Enhanced Mail (PEM) Type" + ], + "type": "string" + }, + "trustModel": { + "description": "Trust Model of the SSL connection", + "enum": [ + "PUBLIC", + "PRIVATE", + "INSECURE" + ], + "enumDescriptions": [ + "Public Trust Model. Takes the Default Java trust store.", + "Private Trust Model. Takes custom/private trust store.", + "Insecure Trust Model. Accept all certificates." + ], + "type": "string" + }, + "type": { + "description": "Controls the ssl type for the given connector version.", + "enum": [ + "SSL_TYPE_UNSPECIFIED", + "TLS", + "MTLS" + ], + "enumDescriptions": [ + "No SSL configuration required.", + "TLS Handshake", + "mutual TLS (MTLS) Handshake" + ], + "type": "string" + }, + "useSsl": { + "description": "Bool for enabling SSL", + "type": "boolean" + } + }, + "type": "object" + }, + "SslConfigTemplate": { + "description": "Ssl config details of a connector version", + "id": "SslConfigTemplate", + "properties": { + "additionalVariables": { + "description": "Any additional fields that need to be rendered", + "items": { + "$ref": "ConfigVariableTemplate" + }, + "type": "array" + }, + "clientCertType": { + "description": "List of supported Client Cert Types", + "items": { + "enum": [ + "CERT_TYPE_UNSPECIFIED", + "PEM" + ], + "enumDescriptions": [ + "Cert type unspecified.", + "Privacy Enhanced Mail (PEM) Type" + ], + "type": "string" + }, + "type": "array" + }, + "isTlsMandatory": { + "description": "Boolean for determining if the connector version mandates TLS.", + "type": "boolean" + }, + "serverCertType": { + "description": "List of supported Server Cert Types", + "items": { + "enum": [ + "CERT_TYPE_UNSPECIFIED", + "PEM" + ], + "enumDescriptions": [ + "Cert type unspecified.", + "Privacy Enhanced Mail (PEM) Type" + ], + "type": "string" + }, + "type": "array" + }, + "sslType": { + "description": "Controls the ssl type for the given connector version", + "enum": [ + "SSL_TYPE_UNSPECIFIED", + "TLS", + "MTLS" + ], + "enumDescriptions": [ + "No SSL configuration required.", + "TLS Handshake", + "mutual TLS (MTLS) Handshake" + ], + "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", @@ -2997,7 +6839,7 @@ "type": "object" }, "SupportedRuntimeFeatures": { - "description": "Supported runtime features of a connector version. This is passed to the management layer to add a new connector version by the connector developer. Details about how this proto is passed to the management layer is covered in this doc - go/runtime-manifest.", + "description": "Supported runtime features of a connector version.", "id": "SupportedRuntimeFeatures", "properties": { "actionApis": { @@ -3043,6 +6885,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", @@ -3057,6 +6964,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" } }, "servicePath": "", diff --git a/etc/api/contactcenterinsights/v1/contactcenterinsights-api.json b/etc/api/contactcenterinsights/v1/contactcenterinsights-api.json index ca214da17b..12454261dd 100644 --- a/etc/api/contactcenterinsights/v1/contactcenterinsights-api.json +++ b/etc/api/contactcenterinsights/v1/contactcenterinsights-api.json @@ -200,6 +200,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "bulkDelete": { + "description": "Deletes multiple conversations in a single request.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversations:bulkDelete", + "httpMethod": "POST", + "id": "contactcenterinsights.projects.locations.conversations.bulkDelete", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource to delete conversations from. Format: projects/{project}/locations/{location}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/conversations:bulkDelete", + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "calculateStats": { "description": "Gets conversation statistics.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversations:calculateStats", @@ -375,6 +403,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", @@ -450,6 +483,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "upload": { + "description": "Create a longrunning conversation upload operation. This method differs from CreateConversation by allowing audio transcription and optional DLP redaction.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversations:upload", + "httpMethod": "POST", + "id": "contactcenterinsights.projects.locations.conversations.upload", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the conversation.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/conversations:upload", + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1UploadConversationRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { @@ -718,6 +779,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}", @@ -743,6 +832,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", @@ -1000,7 +1117,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "contactcenterinsights.projects.locations.operations.list", @@ -1356,7 +1473,7 @@ } } }, - "revision": "20230115", + "revision": "20240226", "rootUrl": "https://contactcenterinsights.googleapis.com/", "schemas": { "GoogleCloudContactcenterinsightsV1Analysis": { @@ -1515,6 +1632,37 @@ "runSilenceAnnotator": { "description": "Whether to run the silence annotator.", "type": "boolean" + }, + "runSummarizationAnnotator": { + "description": "Whether to run the summarization annotator.", + "type": "boolean" + }, + "summarizationConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1AnnotatorSelectorSummarizationConfig", + "description": "Configuration for the summarization annotator." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1AnnotatorSelectorSummarizationConfig": { + "description": "Configuration for summarization.", + "id": "GoogleCloudContactcenterinsightsV1AnnotatorSelectorSummarizationConfig", + "properties": { + "conversationProfile": { + "description": "Resource name of the Dialogflow conversation profile. Format: projects/{project}/locations/{location}/conversationProfiles/{conversation_profile}", + "type": "string" + }, + "summarizationModel": { + "description": "Default summarization model to be used.", + "enum": [ + "SUMMARIZATION_MODEL_UNSPECIFIED", + "BASELINE_MODEL" + ], + "enumDescriptions": [ + "Unspecified summarization model.", + "The CCAI baseline model." + ], + "type": "string" } }, "type": "object" @@ -1609,6 +1757,14 @@ "format": "int32", "type": "integer" }, + "partialErrors": { + "description": "Output only. Partial errors during bulk analyze operation that might cause the operation output to be incomplete.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "readOnly": true, + "type": "array" + }, "request": { "$ref": "GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsRequest", "description": "The original request for bulk analyze." @@ -1662,6 +1818,64 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1BulkDeleteConversationsMetadata": { + "description": "The metadata for a bulk delete conversations operation.", + "id": "GoogleCloudContactcenterinsightsV1BulkDeleteConversationsMetadata", + "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" + }, + "partialErrors": { + "description": "Partial errors during bulk delete conversations operation that might cause the operation output to be incomplete.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + }, + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest", + "description": "The original request for bulk delete." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest": { + "description": "The request to delete conversations in bulk.", + "id": "GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest", + "properties": { + "filter": { + "description": "Filter used to select the subset of conversations to delete.", + "type": "string" + }, + "force": { + "description": "If set to true, all of this conversation's analyses will also be deleted. Otherwise, the request will only succeed if the conversation has no analyses.", + "type": "boolean" + }, + "maxDeleteCount": { + "description": "Maximum number of conversations to delete.", + "format": "int32", + "type": "integer" + }, + "parent": { + "description": "Required. The parent resource to delete conversations from. Format: projects/{project}/locations/{location}", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1BulkDeleteConversationsResponse": { + "description": "The response for a bulk delete conversations operation.", + "id": "GoogleCloudContactcenterinsightsV1BulkDeleteConversationsResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1CalculateIssueModelStatsResponse": { "description": "Response of querying an issue model's statistics.", "id": "GoogleCloudContactcenterinsightsV1CalculateIssueModelStatsResponse", @@ -1709,6 +1923,7 @@ "format": "int32", "type": "integer" }, + "deprecated": true, "description": "A map associating each issue resource name with its respective number of matches in the set of conversations. Key has the format: `projects//locations//issueModels//issues/` Deprecated, use `issue_matches_stats` field instead.", "type": "object" }, @@ -1875,6 +2090,11 @@ "description": "Output only. The conversation's latest analysis, if one exists.", "readOnly": true }, + "latestSummary": { + "$ref": "GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData", + "description": "Output only. Latest summary of the conversation.", + "readOnly": true + }, "medium": { "description": "Immutable. The conversation medium, if unspecified will default to PHONE_CALL.", "enum": [ @@ -1897,6 +2117,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": { @@ -1988,6 +2212,7 @@ "id": "GoogleCloudContactcenterinsightsV1ConversationParticipant", "properties": { "dialogflowParticipant": { + "deprecated": true, "description": "Deprecated. Use `dialogflow_participant_name` instead. The name of the Dialogflow participant. Format: projects/{project}/locations/{location}/conversations/{conversation}/participants/{participant}", "type": "string" }, @@ -2024,6 +2249,95 @@ }, "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", + "properties": { + "answerRecord": { + "description": "The name of the answer record. Format: projects/{project}/locations/{location}/answerRecords/{answer_record}", + "type": "string" + }, + "confidence": { + "description": "The confidence score of the summarization.", + "format": "float", + "type": "number" + }, + "conversationModel": { + "description": "The name of the model that generates this summary. Format: projects/{project}/locations/{location}/conversationModels/{conversation_model}", + "type": "string" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "A map that contains metadata about the summarization and the document from which it originates.", + "type": "object" + }, + "text": { + "description": "The summarization content that is concatenated into one string.", + "type": "string" + }, + "textSections": { + "additionalProperties": { + "type": "string" + }, + "description": "The summarization content that is divided into sections. The key is the section's name and the value is the section's content. There is no specific format for the key or value.", + "type": "object" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1ConversationTranscript": { "description": "A message representing the transcript of a conversation.", "id": "GoogleCloudContactcenterinsightsV1ConversationTranscript", @@ -2501,6 +2815,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", @@ -2557,6 +2924,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", @@ -2573,6 +2997,11 @@ "readOnly": true, "type": "string" }, + "ingestConversationsStats": { + "$ref": "GoogleCloudContactcenterinsightsV1IngestConversationsMetadataIngestConversationsStats", + "description": "Output only. Statistics for IngestConversations operation.", + "readOnly": true + }, "partialErrors": { "description": "Output only. Partial errors during ingest operation that might cause the operation output to be incomplete.", "items": { @@ -2589,6 +3018,37 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1IngestConversationsMetadataIngestConversationsStats": { + "description": "Statistics for IngestConversations operation.", + "id": "GoogleCloudContactcenterinsightsV1IngestConversationsMetadataIngestConversationsStats", + "properties": { + "duplicatesSkippedCount": { + "description": "Output only. The number of objects skipped because another conversation with the same transcript uri had already been ingested.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "failedIngestCount": { + "description": "Output only. The number of objects which were unable to be ingested due to errors. The errors are populated in the partial_errors field.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "processedObjectCount": { + "description": "Output only. The number of objects processed during the ingest operation.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "successfulIngestCount": { + "description": "Output only. The number of new conversations added during this ingest operation.", + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1IngestConversationsRequest": { "description": "The request to ingest conversations.", "id": "GoogleCloudContactcenterinsightsV1IngestConversationsRequest", @@ -2599,12 +3059,20 @@ }, "gcsSource": { "$ref": "GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource", - "description": "A cloud storage bucket source." + "description": "A cloud storage bucket source. Note that any previously ingested objects from the source will be skipped to avoid duplication." }, "parent": { "description": "Required. The parent resource for new conversations.", "type": "string" }, + "redactionConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1RedactionConfig", + "description": "Optional. DLP settings for transcript redaction. Optional, 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." + }, "transcriptObjectConfig": { "$ref": "GoogleCloudContactcenterinsightsV1IngestConversationsRequestTranscriptObjectConfig", "description": "Configuration for when `source` contains conversation transcripts." @@ -2616,9 +3084,19 @@ "description": "Configuration that applies to all conversations.", "id": "GoogleCloudContactcenterinsightsV1IngestConversationsRequestConversationConfig", "properties": { + "agentChannel": { + "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" + }, "agentId": { "description": "An opaque, user-specified string representing the human agent who handled the conversations.", "type": "string" + }, + "customerChannel": { + "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" } }, "type": "object" @@ -2627,9 +3105,34 @@ "description": "Configuration for Cloud Storage bucket sources.", "id": "GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource", "properties": { + "bucketObjectType": { + "description": "Optional. Specifies the type of the objects in `bucket_uri`.", + "enum": [ + "BUCKET_OBJECT_TYPE_UNSPECIFIED", + "TRANSCRIPT", + "AUDIO" + ], + "enumDescriptions": [ + "The object type is unspecified and will default to `TRANSCRIPT`.", + "The object is a transcript.", + "The object is an audio file." + ], + "type": "string" + }, "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" @@ -2783,6 +3286,24 @@ "readOnly": true, "type": "string" }, + "languageCode": { + "description": "Language of the model.", + "type": "string" + }, + "modelType": { + "description": "Type of the model.", + "enum": [ + "MODEL_TYPE_UNSPECIFIED", + "TYPE_V1", + "TYPE_V2" + ], + "enumDescriptions": [ + "Unspecified model type.", + "Type V1.", + "Type V2." + ], + "type": "string" + }, "name": { "description": "Immutable. The resource name of the issue model. Format: projects/{project}/locations/{location}/issueModels/{issue_model}", "type": "string" @@ -2831,6 +3352,7 @@ "type": "string" }, "medium": { + "deprecated": true, "description": "Medium of conversations used in training data. This field is being deprecated. To specify the medium to be used in training a new issue model, set the `medium` field on `filter`.", "enum": [ "MEDIUM_UNSPECIFIED", @@ -3065,7 +3587,7 @@ "id": "GoogleCloudContactcenterinsightsV1PhraseMatchRuleGroup", "properties": { "phraseMatchRules": { - "description": "A list of phase match rules that are included in this group.", + "description": "A list of phrase match rules that are included in this group.", "items": { "$ref": "GoogleCloudContactcenterinsightsV1PhraseMatchRule" }, @@ -3173,6 +3695,21 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1RedactionConfig": { + "description": "DLP resources used for redaction while ingesting conversations.", + "id": "GoogleCloudContactcenterinsightsV1RedactionConfig", + "properties": { + "deidentifyTemplate": { + "description": "The fully-qualified DLP deidentify template resource name. Format: `projects/{project}/deidentifyTemplates/{template}`", + "type": "string" + }, + "inspectTemplate": { + "description": "The fully-qualified DLP inspect template resource name. Format: `projects/{project}/locations/{location}/inspectTemplates/{template}`", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1RuntimeAnnotation": { "description": "An annotation that was generated during the customer and agent interaction.", "id": "GoogleCloudContactcenterinsightsV1RuntimeAnnotation", @@ -3189,6 +3726,10 @@ "$ref": "GoogleCloudContactcenterinsightsV1ArticleSuggestionData", "description": "Agent Assist Article Suggestion data." }, + "conversationSummarizationSuggestion": { + "$ref": "GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData", + "description": "Conversation summarization suggestion data." + }, "createTime": { "description": "The time at which this annotation was created.", "format": "google-datetime", @@ -3269,9 +3810,17 @@ "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": { + "$ref": "GoogleCloudContactcenterinsightsV1RedactionConfig", + "description": "Default DLP redaction resources to be applied while ingesting conversations." + }, + "speechConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1SpeechConfig", + "description": "Optional. Default Speech-to-Text resources to be used while ingesting audio files. Optional, CCAI Insights will create a default if not provided." + }, "updateTime": { "description": "Output only. The time at which the settings were last updated.", "format": "google-datetime", @@ -3293,6 +3842,11 @@ "description": "Percentage of conversations created using Dialogflow runtime integration to analyze automatically, between [0, 100].", "format": "double", "type": "number" + }, + "uploadConversationAnalysisPercentage": { + "description": "Percentage of conversations created using the UploadConversation endpoint to analyze automatically, between [0, 100].", + "format": "double", + "type": "number" } }, "type": "object" @@ -3357,6 +3911,17 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1SpeechConfig": { + "description": "Speech-to-Text configuration.", + "id": "GoogleCloudContactcenterinsightsV1SpeechConfig", + "properties": { + "speechRecognizer": { + "description": "The fully-qualified Speech Recognizer resource name. Format: `projects/{project_id}/locations/{location}/recognizer/{recognizer}`", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1UndeployIssueModelMetadata": { "description": "Metadata for undeploying an issue model.", "id": "GoogleCloudContactcenterinsightsV1UndeployIssueModelMetadata", @@ -3397,6 +3962,67 @@ "properties": {}, "type": "object" }, + "GoogleCloudContactcenterinsightsV1UploadConversationMetadata": { + "description": "The metadata for an UploadConversation operation.", + "id": "GoogleCloudContactcenterinsightsV1UploadConversationMetadata", + "properties": { + "analysisOperation": { + "description": "Output only. The operation name for a successfully created analysis operation, if any.", + "readOnly": true, + "type": "string" + }, + "appliedRedactionConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1RedactionConfig", + "description": "Output only. The redaction config applied to the uploaded conversation.", + "readOnly": true + }, + "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" + }, + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1UploadConversationRequest", + "description": "Output only. The original request.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1UploadConversationRequest": { + "description": "Request to upload a conversation.", + "id": "GoogleCloudContactcenterinsightsV1UploadConversationRequest", + "properties": { + "conversation": { + "$ref": "GoogleCloudContactcenterinsightsV1Conversation", + "description": "Required. The conversation resource to create." + }, + "conversationId": { + "description": "Optional. A unique ID for the new conversation. This ID will become the final component of the conversation's resource name. If no ID is specified, a server-generated ID will be used. This value should be 4-64 characters and must match the regular expression `^[a-z0-9-]{4,64}$`. Valid characters are `a-z-`", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the conversation.", + "type": "string" + }, + "redactionConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1RedactionConfig", + "description": "Optional. DLP settings for transcript redaction. Will default to the config specified in Settings." + }, + "speechConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1SpeechConfig", + "description": "Optional. Speech-to-Text configuration. Will default to the config specified in Settings." + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1View": { "description": "The View resource.", "id": "GoogleCloudContactcenterinsightsV1View", @@ -3428,6 +4054,117 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1Analysis": { + "description": "The analysis resource.", + "id": "GoogleCloudContactcenterinsightsV1alpha1Analysis", + "properties": { + "analysisResult": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1AnalysisResult", + "description": "Output only. The result of the analysis, which is populated when the analysis finishes.", + "readOnly": true + }, + "annotatorSelector": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelector", + "description": "To select the annotators to run and the phrase matchers to use (if any). If not specified, all annotators will be run." + }, + "createTime": { + "description": "Output only. The time at which the analysis was created, which occurs when the long-running operation completes.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Immutable. The resource name of the analysis. Format: projects/{project}/locations/{location}/conversations/{conversation}/analyses/{analysis}", + "type": "string" + }, + "requestTime": { + "description": "Output only. The time at which the analysis was requested.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1AnalysisResult": { + "description": "The result of an analysis.", + "id": "GoogleCloudContactcenterinsightsV1alpha1AnalysisResult", + "properties": { + "callAnalysisMetadata": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1AnalysisResultCallAnalysisMetadata", + "description": "Call-specific metadata created by the analysis." + }, + "endTime": { + "description": "The time at which the analysis ended.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1AnalysisResultCallAnalysisMetadata": { + "description": "Call-specific metadata created during analysis.", + "id": "GoogleCloudContactcenterinsightsV1alpha1AnalysisResultCallAnalysisMetadata", + "properties": { + "annotations": { + "description": "A list of call annotations that apply to this call.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1CallAnnotation" + }, + "type": "array" + }, + "entities": { + "additionalProperties": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1Entity" + }, + "description": "All the entities in the call.", + "type": "object" + }, + "intents": { + "additionalProperties": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1Intent" + }, + "description": "All the matched intents in the call.", + "type": "object" + }, + "issueModelResult": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1IssueModelResult", + "description": "Overall conversation-level issue modeling result." + }, + "phraseMatchers": { + "additionalProperties": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1PhraseMatchData" + }, + "description": "All the matched phrase matchers in the call.", + "type": "object" + }, + "sentiments": { + "description": "Overall conversation-level sentiment for each channel of the call.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ConversationLevelSentiment" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1AnnotationBoundary": { + "description": "A point in a conversation that marks the start or the end of an annotation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1AnnotationBoundary", + "properties": { + "transcriptIndex": { + "description": "The index in the sequence of transcribed pieces of the conversation where the boundary is located. This index starts at zero.", + "format": "int32", + "type": "integer" + }, + "wordIndex": { + "description": "The word index of this boundary with respect to the first word in the transcript piece. This index starts at zero.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelector": { "description": "Selector of all available annotators and phrase matchers to run.", "id": "GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelector", @@ -3473,6 +4210,103 @@ "runSilenceAnnotator": { "description": "Whether to run the silence annotator.", "type": "boolean" + }, + "runSummarizationAnnotator": { + "description": "Whether to run the summarization annotator.", + "type": "boolean" + }, + "summarizationConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelectorSummarizationConfig", + "description": "Configuration for the summarization annotator." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelectorSummarizationConfig": { + "description": "Configuration for summarization.", + "id": "GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelectorSummarizationConfig", + "properties": { + "conversationProfile": { + "description": "Resource name of the Dialogflow conversation profile. Format: projects/{project}/locations/{location}/conversationProfiles/{conversation_profile}", + "type": "string" + }, + "summarizationModel": { + "description": "Default summarization model to be used.", + "enum": [ + "SUMMARIZATION_MODEL_UNSPECIFIED", + "BASELINE_MODEL" + ], + "enumDescriptions": [ + "Unspecified summarization model.", + "The CCAI baseline model." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1AnswerFeedback": { + "description": "The feedback that the customer has about a certain answer in the conversation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1AnswerFeedback", + "properties": { + "clicked": { + "description": "Indicates whether an answer or item was clicked by the human agent.", + "type": "boolean" + }, + "correctnessLevel": { + "description": "The correctness level of an answer.", + "enum": [ + "CORRECTNESS_LEVEL_UNSPECIFIED", + "NOT_CORRECT", + "PARTIALLY_CORRECT", + "FULLY_CORRECT" + ], + "enumDescriptions": [ + "Correctness level unspecified.", + "Answer is totally wrong.", + "Answer is partially correct.", + "Answer is fully correct." + ], + "type": "string" + }, + "displayed": { + "description": "Indicates whether an answer or item was displayed to the human agent in the agent desktop UI.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1ArticleSuggestionData": { + "description": "Agent Assist Article Suggestion data.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ArticleSuggestionData", + "properties": { + "confidenceScore": { + "description": "The system's confidence score that this article is a good match for this conversation, ranging from 0.0 (completely uncertain) to 1.0 (completely certain).", + "format": "float", + "type": "number" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Map that contains metadata about the Article Suggestion and the document that it originates from.", + "type": "object" + }, + "queryRecord": { + "description": "The name of the answer record. Format: projects/{project}/locations/{location}/answerRecords/{answer_record}", + "type": "string" + }, + "source": { + "description": "The knowledge document that this answer was extracted from. Format: projects/{project}/knowledgeBases/{knowledge_base}/documents/{document}", + "type": "string" + }, + "title": { + "description": "Article title.", + "type": "string" + }, + "uri": { + "description": "Article URI.", + "type": "string" } }, "type": "object" @@ -3501,6 +4335,14 @@ "format": "int32", "type": "integer" }, + "partialErrors": { + "description": "Output only. Partial errors during bulk analyze operation that might cause the operation output to be incomplete.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "readOnly": true, + "type": "array" + }, "request": { "$ref": "GoogleCloudContactcenterinsightsV1alpha1BulkAnalyzeConversationsRequest", "description": "The original request for bulk analyze." @@ -3554,6 +4396,521 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsMetadata": { + "description": "The metadata for a bulk delete conversations operation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsMetadata", + "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" + }, + "partialErrors": { + "description": "Partial errors during bulk delete conversations operation that might cause the operation output to be incomplete.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + }, + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsRequest", + "description": "The original request for bulk delete." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsRequest": { + "description": "The request to delete conversations in bulk.", + "id": "GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsRequest", + "properties": { + "filter": { + "description": "Filter used to select the subset of conversations to delete.", + "type": "string" + }, + "force": { + "description": "If set to true, all of this conversation's analyses will also be deleted. Otherwise, the request will only succeed if the conversation has no analyses.", + "type": "boolean" + }, + "maxDeleteCount": { + "description": "Maximum number of conversations to delete.", + "format": "int32", + "type": "integer" + }, + "parent": { + "description": "Required. The parent resource to delete conversations from. Format: projects/{project}/locations/{location}", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsResponse": { + "description": "The response for a bulk delete conversations operation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1CallAnnotation": { + "description": "A piece of metadata that applies to a window of a call.", + "id": "GoogleCloudContactcenterinsightsV1alpha1CallAnnotation", + "properties": { + "annotationEndBoundary": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1AnnotationBoundary", + "description": "The boundary in the conversation where the annotation ends, inclusive." + }, + "annotationStartBoundary": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1AnnotationBoundary", + "description": "The boundary in the conversation where the annotation starts, inclusive." + }, + "channelTag": { + "description": "The channel of the audio where the annotation occurs. For single-channel audio, this field is not populated.", + "format": "int32", + "type": "integer" + }, + "entityMentionData": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1EntityMentionData", + "description": "Data specifying an entity mention." + }, + "holdData": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1HoldData", + "description": "Data specifying a hold." + }, + "intentMatchData": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1IntentMatchData", + "description": "Data specifying an intent match." + }, + "interruptionData": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1InterruptionData", + "description": "Data specifying an interruption." + }, + "issueMatchData": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1IssueMatchData", + "description": "Data specifying an issue match." + }, + "phraseMatchData": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1PhraseMatchData", + "description": "Data specifying a phrase match." + }, + "sentimentData": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1SentimentData", + "description": "Data specifying sentiment." + }, + "silenceData": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1SilenceData", + "description": "Data specifying silence." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1Conversation": { + "description": "The conversation resource.", + "id": "GoogleCloudContactcenterinsightsV1alpha1Conversation", + "properties": { + "agentId": { + "description": "An opaque, user-specified string representing the human agent who handled the conversation.", + "type": "string" + }, + "callMetadata": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ConversationCallMetadata", + "description": "Call-specific metadata." + }, + "createTime": { + "description": "Output only. The time at which the conversation was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "dataSource": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ConversationDataSource", + "description": "The source of the audio and transcription for the conversation." + }, + "dialogflowIntents": { + "additionalProperties": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1DialogflowIntent" + }, + "description": "Output only. All the matched Dialogflow intents in the call. The key corresponds to a Dialogflow intent, format: projects/{project}/agent/{agent}/intents/{intent}", + "readOnly": true, + "type": "object" + }, + "duration": { + "description": "Output only. The duration of the conversation.", + "format": "google-duration", + "readOnly": true, + "type": "string" + }, + "expireTime": { + "description": "The time at which this conversation should expire. After this time, the conversation data and any associated analyses will be deleted.", + "format": "google-datetime", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "A map for the user to specify any custom fields. A maximum of 20 labels per conversation is allowed, with a maximum of 256 characters per entry.", + "type": "object" + }, + "languageCode": { + "description": "A user-specified language code for the conversation.", + "type": "string" + }, + "latestAnalysis": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1Analysis", + "description": "Output only. The conversation's latest analysis, if one exists.", + "readOnly": true + }, + "latestSummary": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ConversationSummarizationSuggestionData", + "description": "Output only. Latest summary of the conversation.", + "readOnly": true + }, + "medium": { + "description": "Immutable. The conversation medium, if unspecified will default to PHONE_CALL.", + "enum": [ + "MEDIUM_UNSPECIFIED", + "PHONE_CALL", + "CHAT" + ], + "enumDescriptions": [ + "Default value, if unspecified will default to PHONE_CALL.", + "The format for conversations that took place over the phone.", + "The format for conversations that took place over chat." + ], + "type": "string" + }, + "name": { + "description": "Immutable. The resource name of the conversation. Format: projects/{project}/locations/{location}/conversations/{conversation}", + "type": "string" + }, + "obfuscatedUserId": { + "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": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1RuntimeAnnotation" + }, + "readOnly": true, + "type": "array" + }, + "startTime": { + "description": "The time at which the conversation started.", + "format": "google-datetime", + "type": "string" + }, + "transcript": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ConversationTranscript", + "description": "Output only. The conversation transcript.", + "readOnly": true + }, + "ttl": { + "description": "Input only. The TTL for this resource. If specified, then this TTL will be used to calculate the expire time.", + "format": "google-duration", + "type": "string" + }, + "turnCount": { + "description": "Output only. The number of turns in the conversation.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "updateTime": { + "description": "Output only. The most recent time at which the conversation was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1ConversationCallMetadata": { + "description": "Call-specific metadata.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ConversationCallMetadata", + "properties": { + "agentChannel": { + "description": "The audio channel that contains the agent.", + "format": "int32", + "type": "integer" + }, + "customerChannel": { + "description": "The audio channel that contains the customer.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1ConversationDataSource": { + "description": "The conversation source, which is a combination of transcript and audio.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ConversationDataSource", + "properties": { + "dialogflowSource": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1DialogflowSource", + "description": "The source when the conversation comes from Dialogflow." + }, + "gcsSource": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1GcsSource", + "description": "A Cloud Storage location specification for the audio and transcript." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1ConversationLevelSentiment": { + "description": "One channel of conversation-level sentiment data.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ConversationLevelSentiment", + "properties": { + "channelTag": { + "description": "The channel of the audio that the data applies to.", + "format": "int32", + "type": "integer" + }, + "sentimentData": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1SentimentData", + "description": "Data specifying sentiment." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1ConversationParticipant": { + "description": "The call participant speaking for a given utterance.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ConversationParticipant", + "properties": { + "dialogflowParticipant": { + "deprecated": true, + "description": "Deprecated. Use `dialogflow_participant_name` instead. The name of the Dialogflow participant. Format: projects/{project}/locations/{location}/conversations/{conversation}/participants/{participant}", + "type": "string" + }, + "dialogflowParticipantName": { + "description": "The name of the participant provided by Dialogflow. Format: projects/{project}/locations/{location}/conversations/{conversation}/participants/{participant}", + "type": "string" + }, + "obfuscatedExternalUserId": { + "description": "Obfuscated user ID from Dialogflow.", + "type": "string" + }, + "role": { + "description": "The role of the participant.", + "enum": [ + "ROLE_UNSPECIFIED", + "HUMAN_AGENT", + "AUTOMATED_AGENT", + "END_USER", + "ANY_AGENT" + ], + "enumDescriptions": [ + "Participant's role is not set.", + "Participant is a human agent.", + "Participant is an automated agent.", + "Participant is an end user who conversed with the contact center.", + "Participant is either a human or automated agent." + ], + "type": "string" + }, + "userId": { + "description": "A user-specified ID representing the participant.", + "type": "string" + } + }, + "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", + "properties": { + "answerRecord": { + "description": "The name of the answer record. Format: projects/{project}/locations/{location}/answerRecords/{answer_record}", + "type": "string" + }, + "confidence": { + "description": "The confidence score of the summarization.", + "format": "float", + "type": "number" + }, + "conversationModel": { + "description": "The name of the model that generates this summary. Format: projects/{project}/locations/{location}/conversationModels/{conversation_model}", + "type": "string" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "A map that contains metadata about the summarization and the document from which it originates.", + "type": "object" + }, + "text": { + "description": "The summarization content that is concatenated into one string.", + "type": "string" + }, + "textSections": { + "additionalProperties": { + "type": "string" + }, + "description": "The summarization content that is divided into sections. The key is the section's name and the value is the section's content. There is no specific format for the key or value.", + "type": "object" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1ConversationTranscript": { + "description": "A message representing the transcript of a conversation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ConversationTranscript", + "properties": { + "transcriptSegments": { + "description": "A list of sequential transcript segments that comprise the conversation.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ConversationTranscriptTranscriptSegment" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1ConversationTranscriptTranscriptSegment": { + "description": "A segment of a full transcript.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ConversationTranscriptTranscriptSegment", + "properties": { + "channelTag": { + "description": "For conversations derived from multi-channel audio, this is the channel number corresponding to the audio from that channel. For audioChannelCount = N, its output values can range from '1' to 'N'. A channel tag of 0 indicates that the audio is mono.", + "format": "int32", + "type": "integer" + }, + "confidence": { + "description": "A confidence estimate between 0.0 and 1.0 of the fidelity of this segment. A default value of 0.0 indicates that the value is unset.", + "format": "float", + "type": "number" + }, + "dialogflowSegmentMetadata": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ConversationTranscriptTranscriptSegmentDialogflowSegmentMetadata", + "description": "CCAI metadata relating to the current transcript segment." + }, + "languageCode": { + "description": "The language code of this segment as a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. Example: \"en-US\".", + "type": "string" + }, + "messageTime": { + "description": "The time that the message occurred, if provided.", + "format": "google-datetime", + "type": "string" + }, + "segmentParticipant": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ConversationParticipant", + "description": "The participant of this segment." + }, + "sentiment": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1SentimentData", + "description": "The sentiment for this transcript segment." + }, + "text": { + "description": "The text of this segment.", + "type": "string" + }, + "words": { + "description": "A list of the word-specific information for each word in the segment.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ConversationTranscriptTranscriptSegmentWordInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1ConversationTranscriptTranscriptSegmentDialogflowSegmentMetadata": { + "description": "Metadata from Dialogflow relating to the current transcript segment.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ConversationTranscriptTranscriptSegmentDialogflowSegmentMetadata", + "properties": { + "smartReplyAllowlistCovered": { + "description": "Whether the transcript segment was covered under the configured smart reply allowlist in Agent Assist.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1ConversationTranscriptTranscriptSegmentWordInfo": { + "description": "Word-level info for words in a transcript.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ConversationTranscriptTranscriptSegmentWordInfo", + "properties": { + "confidence": { + "description": "A confidence estimate between 0.0 and 1.0 of the fidelity of this word. A default value of 0.0 indicates that the value is unset.", + "format": "float", + "type": "number" + }, + "endOffset": { + "description": "Time offset of the end of this word relative to the beginning of the total conversation.", + "format": "google-duration", + "type": "string" + }, + "startOffset": { + "description": "Time offset of the start of this word relative to the beginning of the total conversation.", + "format": "google-duration", + "type": "string" + }, + "word": { + "description": "The word itself. Includes punctuation marks that surround the word.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1CreateAnalysisOperationMetadata": { "description": "Metadata for a create analysis operation.", "id": "GoogleCloudContactcenterinsightsV1alpha1CreateAnalysisOperationMetadata", @@ -3695,6 +5052,139 @@ "properties": {}, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1DialogflowIntent": { + "description": "The data for a Dialogflow intent. Represents a detected intent in the conversation, e.g. MAKES_PROMISE.", + "id": "GoogleCloudContactcenterinsightsV1alpha1DialogflowIntent", + "properties": { + "displayName": { + "description": "The human-readable name of the intent.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1DialogflowInteractionData": { + "description": "Dialogflow interaction data.", + "id": "GoogleCloudContactcenterinsightsV1alpha1DialogflowInteractionData", + "properties": { + "confidence": { + "description": "The confidence of the match ranging from 0.0 (completely uncertain) to 1.0 (completely certain).", + "format": "float", + "type": "number" + }, + "dialogflowIntentId": { + "description": "The Dialogflow intent resource path. Format: projects/{project}/agent/{agent}/intents/{intent}", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1DialogflowSource": { + "description": "A Dialogflow source of conversation data.", + "id": "GoogleCloudContactcenterinsightsV1alpha1DialogflowSource", + "properties": { + "audioUri": { + "description": "Cloud Storage URI that points to a file that contains the conversation audio.", + "type": "string" + }, + "dialogflowConversation": { + "description": "Output only. The name of the Dialogflow conversation that this conversation resource is derived from. Format: projects/{project}/locations/{location}/conversations/{conversation}", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1Entity": { + "description": "The data for an entity annotation. Represents a phrase in the conversation that is a known entity, such as a person, an organization, or location.", + "id": "GoogleCloudContactcenterinsightsV1alpha1Entity", + "properties": { + "displayName": { + "description": "The representative name for the entity.", + "type": "string" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Metadata associated with the entity. For most entity types, the metadata is a Wikipedia URL (`wikipedia_url`) and Knowledge Graph MID (`mid`), if they are available. For the metadata associated with other entity types, see the Type table below.", + "type": "object" + }, + "salience": { + "description": "The salience score associated with the entity in the [0, 1.0] range. The salience score for an entity provides information about the importance or centrality of that entity to the entire document text. Scores closer to 0 are less salient, while scores closer to 1.0 are highly salient.", + "format": "float", + "type": "number" + }, + "sentiment": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1SentimentData", + "description": "The aggregate sentiment expressed for this entity in the conversation." + }, + "type": { + "description": "The entity type.", + "enum": [ + "TYPE_UNSPECIFIED", + "PERSON", + "LOCATION", + "ORGANIZATION", + "EVENT", + "WORK_OF_ART", + "CONSUMER_GOOD", + "OTHER", + "PHONE_NUMBER", + "ADDRESS", + "DATE", + "NUMBER", + "PRICE" + ], + "enumDescriptions": [ + "Unspecified.", + "Person.", + "Location.", + "Organization.", + "Event.", + "Artwork.", + "Consumer product.", + "Other types of entities.", + "Phone number. The metadata lists the phone number (formatted according to local convention), plus whichever additional elements appear in the text: * `number` - The actual number, broken down into sections according to local convention. * `national_prefix` - Country code, if detected. * `area_code` - Region or area code, if detected. * `extension` - Phone extension (to be dialed after connection), if detected.", + "Address. The metadata identifies the street number and locality plus whichever additional elements appear in the text: * `street_number` - Street number. * `locality` - City or town. * `street_name` - Street/route name, if detected. * `postal_code` - Postal code, if detected. * `country` - Country, if detected. * `broad_region` - Administrative area, such as the state, if detected. * `narrow_region` - Smaller administrative area, such as county, if detected. * `sublocality` - Used in Asian addresses to demark a district within a city, if detected.", + "Date. The metadata identifies the components of the date: * `year` - Four digit year, if detected. * `month` - Two digit month number, if detected. * `day` - Two digit day number, if detected.", + "Number. The metadata is the number itself.", + "Price. The metadata identifies the `value` and `currency`." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1EntityMentionData": { + "description": "The data for an entity mention annotation. This represents a mention of an `Entity` in the conversation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1EntityMentionData", + "properties": { + "entityUniqueId": { + "description": "The key of this entity in conversation entities. Can be used to retrieve the exact `Entity` this mention is attached to.", + "type": "string" + }, + "sentiment": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1SentimentData", + "description": "Sentiment expressed for this mention of the entity." + }, + "type": { + "description": "The type of the entity mention.", + "enum": [ + "MENTION_TYPE_UNSPECIFIED", + "PROPER", + "COMMON" + ], + "enumDescriptions": [ + "Unspecified.", + "Proper noun.", + "Common noun (or noun compound)." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1ExportInsightsDataMetadata": { "description": "Metadata for an export insights operation.", "id": "GoogleCloudContactcenterinsightsV1alpha1ExportInsightsDataMetadata", @@ -3787,6 +5277,172 @@ "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", + "properties": { + "answer": { + "description": "The piece of text from the `source` knowledge base document.", + "type": "string" + }, + "confidenceScore": { + "description": "The system's confidence score that this answer is a good match for this conversation, ranging from 0.0 (completely uncertain) to 1.0 (completely certain).", + "format": "float", + "type": "number" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Map that contains metadata about the FAQ answer and the document that it originates from.", + "type": "object" + }, + "queryRecord": { + "description": "The name of the answer record. Format: projects/{project}/locations/{location}/answerRecords/{answer_record}", + "type": "string" + }, + "question": { + "description": "The corresponding FAQ question.", + "type": "string" + }, + "source": { + "description": "The knowledge document that this answer was extracted from. Format: projects/{project}/knowledgeBases/{knowledge_base}/documents/{document}.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1GcsSource": { + "description": "A Cloud Storage source of conversation data.", + "id": "GoogleCloudContactcenterinsightsV1alpha1GcsSource", + "properties": { + "audioUri": { + "description": "Cloud Storage URI that points to a file that contains the conversation audio.", + "type": "string" + }, + "transcriptUri": { + "description": "Immutable. Cloud Storage URI that points to a file that contains the conversation transcript.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1HoldData": { + "description": "The data for a hold annotation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1HoldData", + "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", @@ -3803,6 +5459,11 @@ "readOnly": true, "type": "string" }, + "ingestConversationsStats": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsMetadataIngestConversationsStats", + "description": "Output only. Statistics for IngestConversations operation.", + "readOnly": true + }, "partialErrors": { "description": "Output only. Partial errors during ingest operation that might cause the operation output to be incomplete.", "items": { @@ -3819,6 +5480,37 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsMetadataIngestConversationsStats": { + "description": "Statistics for IngestConversations operation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsMetadataIngestConversationsStats", + "properties": { + "duplicatesSkippedCount": { + "description": "Output only. The number of objects skipped because another conversation with the same transcript uri had already been ingested.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "failedIngestCount": { + "description": "Output only. The number of objects which were unable to be ingested due to errors. The errors are populated in the partial_errors field.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "processedObjectCount": { + "description": "Output only. The number of objects processed during the ingest operation.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "successfulIngestCount": { + "description": "Output only. The number of new conversations added during this ingest operation.", + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequest": { "description": "The request to ingest conversations.", "id": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequest", @@ -3829,12 +5521,20 @@ }, "gcsSource": { "$ref": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestGcsSource", - "description": "A cloud storage bucket source." + "description": "A cloud storage bucket source. Note that any previously ingested objects from the source will be skipped to avoid duplication." }, "parent": { "description": "Required. The parent resource for new conversations.", "type": "string" }, + "redactionConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1RedactionConfig", + "description": "Optional. DLP settings for transcript redaction. Optional, 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." + }, "transcriptObjectConfig": { "$ref": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestTranscriptObjectConfig", "description": "Configuration for when `source` contains conversation transcripts." @@ -3846,9 +5546,19 @@ "description": "Configuration that applies to all conversations.", "id": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestConversationConfig", "properties": { + "agentChannel": { + "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" + }, "agentId": { "description": "An opaque, user-specified string representing the human agent who handled the conversations.", "type": "string" + }, + "customerChannel": { + "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" } }, "type": "object" @@ -3857,9 +5567,34 @@ "description": "Configuration for Cloud Storage bucket sources.", "id": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestGcsSource", "properties": { + "bucketObjectType": { + "description": "Optional. Specifies the type of the objects in `bucket_uri`.", + "enum": [ + "BUCKET_OBJECT_TYPE_UNSPECIFIED", + "TRANSCRIPT", + "AUDIO" + ], + "enumDescriptions": [ + "The object type is unspecified and will default to `TRANSCRIPT`.", + "The object is a transcript.", + "The object is an audio file." + ], + "type": "string" + }, "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" @@ -3891,6 +5626,69 @@ "properties": {}, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1Intent": { + "description": "The data for an intent. Represents a detected intent in the conversation, for example MAKES_PROMISE.", + "id": "GoogleCloudContactcenterinsightsV1alpha1Intent", + "properties": { + "displayName": { + "description": "The human-readable name of the intent.", + "type": "string" + }, + "id": { + "description": "The unique identifier of the intent.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1IntentMatchData": { + "description": "The data for an intent match. Represents an intent match for a text segment in the conversation. A text segment can be part of a sentence, a complete sentence, or an utterance with multiple sentences.", + "id": "GoogleCloudContactcenterinsightsV1alpha1IntentMatchData", + "properties": { + "intentUniqueId": { + "description": "The id of the matched intent. Can be used to retrieve the corresponding intent information.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1InterruptionData": { + "description": "The data for an interruption annotation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1InterruptionData", + "properties": {}, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1IssueAssignment": { + "description": "Information about the issue.", + "id": "GoogleCloudContactcenterinsightsV1alpha1IssueAssignment", + "properties": { + "displayName": { + "description": "Immutable. Display name of the assigned issue. This field is set at time of analyis and immutable since then.", + "type": "string" + }, + "issue": { + "description": "Resource name of the assigned issue.", + "type": "string" + }, + "score": { + "description": "Score indicating the likelihood of the issue assignment. currently bounded on [0,1].", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1IssueMatchData": { + "description": "The data for an issue match annotation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1IssueMatchData", + "properties": { + "issueAssignment": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1IssueAssignment", + "description": "Information about the issue's assignment." + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1IssueModel": { "description": "The issue model resource.", "id": "GoogleCloudContactcenterinsightsV1alpha1IssueModel", @@ -3915,6 +5713,24 @@ "readOnly": true, "type": "string" }, + "languageCode": { + "description": "Language of the model.", + "type": "string" + }, + "modelType": { + "description": "Type of the model.", + "enum": [ + "MODEL_TYPE_UNSPECIFIED", + "TYPE_V1", + "TYPE_V2" + ], + "enumDescriptions": [ + "Unspecified model type.", + "Type V1.", + "Type V2." + ], + "type": "string" + }, "name": { "description": "Immutable. The resource name of the issue model. Format: projects/{project}/locations/{location}/issueModels/{issue_model}", "type": "string" @@ -3963,6 +5779,7 @@ "type": "string" }, "medium": { + "deprecated": true, "description": "Medium of conversations used in training data. This field is being deprecated. To specify the medium to be used in training a new issue model, set the `medium` field on `filter`.", "enum": [ "MEDIUM_UNSPECIFIED", @@ -4029,6 +5846,194 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1IssueModelResult": { + "description": "Issue Modeling result on a conversation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1IssueModelResult", + "properties": { + "issueModel": { + "description": "Issue model that generates the result. Format: projects/{project}/locations/{location}/issueModels/{issue_model}", + "type": "string" + }, + "issues": { + "description": "All the matched issues.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1IssueAssignment" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1PhraseMatchData": { + "description": "The data for a matched phrase matcher. Represents information identifying a phrase matcher for a given match.", + "id": "GoogleCloudContactcenterinsightsV1alpha1PhraseMatchData", + "properties": { + "displayName": { + "description": "The human-readable name of the phrase matcher.", + "type": "string" + }, + "phraseMatcher": { + "description": "The unique identifier (the resource name) of the phrase matcher.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1RedactionConfig": { + "description": "DLP resources used for redaction while ingesting conversations.", + "id": "GoogleCloudContactcenterinsightsV1alpha1RedactionConfig", + "properties": { + "deidentifyTemplate": { + "description": "The fully-qualified DLP deidentify template resource name. Format: `projects/{project}/deidentifyTemplates/{template}`", + "type": "string" + }, + "inspectTemplate": { + "description": "The fully-qualified DLP inspect template resource name. Format: `projects/{project}/locations/{location}/inspectTemplates/{template}`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1RuntimeAnnotation": { + "description": "An annotation that was generated during the customer and agent interaction.", + "id": "GoogleCloudContactcenterinsightsV1alpha1RuntimeAnnotation", + "properties": { + "annotationId": { + "description": "The unique identifier of the annotation. Format: projects/{project}/locations/{location}/conversationDatasets/{dataset}/conversationDataItems/{data_item}/conversationAnnotations/{annotation}", + "type": "string" + }, + "answerFeedback": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1AnswerFeedback", + "description": "The feedback that the customer has about the answer in `data`." + }, + "articleSuggestion": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ArticleSuggestionData", + "description": "Agent Assist Article Suggestion data." + }, + "conversationSummarizationSuggestion": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ConversationSummarizationSuggestionData", + "description": "Conversation summarization suggestion data." + }, + "createTime": { + "description": "The time at which this annotation was created.", + "format": "google-datetime", + "type": "string" + }, + "dialogflowInteraction": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1DialogflowInteractionData", + "description": "Dialogflow interaction data." + }, + "endBoundary": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1AnnotationBoundary", + "description": "The boundary in the conversation where the annotation ends, inclusive." + }, + "faqAnswer": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1FaqAnswerData", + "description": "Agent Assist FAQ answer data." + }, + "smartComposeSuggestion": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1SmartComposeSuggestionData", + "description": "Agent Assist Smart Compose suggestion data." + }, + "smartReply": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1SmartReplyData", + "description": "Agent Assist Smart Reply data." + }, + "startBoundary": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1AnnotationBoundary", + "description": "The boundary in the conversation where the annotation starts, inclusive." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1SentimentData": { + "description": "The data for a sentiment annotation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1SentimentData", + "properties": { + "magnitude": { + "description": "A non-negative number from 0 to infinity which represents the abolute magnitude of sentiment regardless of score.", + "format": "float", + "type": "number" + }, + "score": { + "description": "The sentiment score between -1.0 (negative) and 1.0 (positive).", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1SilenceData": { + "description": "The data for a silence annotation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1SilenceData", + "properties": {}, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1SmartComposeSuggestionData": { + "description": "Agent Assist Smart Compose suggestion data.", + "id": "GoogleCloudContactcenterinsightsV1alpha1SmartComposeSuggestionData", + "properties": { + "confidenceScore": { + "description": "The system's confidence score that this suggestion is a good match for this conversation, ranging from 0.0 (completely uncertain) to 1.0 (completely certain).", + "format": "double", + "type": "number" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Map that contains metadata about the Smart Compose suggestion and the document from which it originates.", + "type": "object" + }, + "queryRecord": { + "description": "The name of the answer record. Format: projects/{project}/locations/{location}/answerRecords/{answer_record}", + "type": "string" + }, + "suggestion": { + "description": "The content of the suggestion.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1SmartReplyData": { + "description": "Agent Assist Smart Reply data.", + "id": "GoogleCloudContactcenterinsightsV1alpha1SmartReplyData", + "properties": { + "confidenceScore": { + "description": "The system's confidence score that this reply is a good match for this conversation, ranging from 0.0 (completely uncertain) to 1.0 (completely certain).", + "format": "double", + "type": "number" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Map that contains metadata about the Smart Reply and the document from which it originates.", + "type": "object" + }, + "queryRecord": { + "description": "The name of the answer record. Format: projects/{project}/locations/{location}/answerRecords/{answer_record}", + "type": "string" + }, + "reply": { + "description": "The content of the reply.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1SpeechConfig": { + "description": "Speech-to-Text configuration.", + "id": "GoogleCloudContactcenterinsightsV1alpha1SpeechConfig", + "properties": { + "speechRecognizer": { + "description": "The fully-qualified Speech Recognizer resource name. Format: `projects/{project_id}/locations/{location}/recognizer/{recognizer}`", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1UndeployIssueModelMetadata": { "description": "Metadata for undeploying an issue model.", "id": "GoogleCloudContactcenterinsightsV1alpha1UndeployIssueModelMetadata", @@ -4069,6 +6074,67 @@ "properties": {}, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1UploadConversationMetadata": { + "description": "The metadata for an UploadConversation operation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1UploadConversationMetadata", + "properties": { + "analysisOperation": { + "description": "Output only. The operation name for a successfully created analysis operation, if any.", + "readOnly": true, + "type": "string" + }, + "appliedRedactionConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1RedactionConfig", + "description": "Output only. The redaction config applied to the uploaded conversation.", + "readOnly": true + }, + "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" + }, + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1UploadConversationRequest", + "description": "Output only. The original request.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1UploadConversationRequest": { + "description": "Request to upload a conversation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1UploadConversationRequest", + "properties": { + "conversation": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1Conversation", + "description": "Required. The conversation resource to create." + }, + "conversationId": { + "description": "Optional. A unique ID for the new conversation. This ID will become the final component of the conversation's resource name. If no ID is specified, a server-generated ID will be used. This value should be 4-64 characters and must match the regular expression `^[a-z0-9-]{4,64}$`. Valid characters are `a-z-`", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the conversation.", + "type": "string" + }, + "redactionConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1RedactionConfig", + "description": "Optional. DLP settings for transcript redaction. Will default to the config specified in Settings." + }, + "speechConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1SpeechConfig", + "description": "Optional. Speech-to-Text configuration. Will default to the config specified in Settings." + } + }, + "type": "object" + }, "GoogleLongrunningListOperationsResponse": { "description": "The response message for Operations.ListOperations.", "id": "GoogleLongrunningListOperationsResponse", @@ -4116,7 +6182,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/etc/api/container/v1/container-api.json b/etc/api/container/v1/container-api.json index de9aa8fb3c..61f428af09 100644 --- a/etc/api/container/v1/container-api.json +++ b/etc/api/container/v1/container-api.json @@ -175,11 +175,13 @@ "type": "string" }, "projectId": { + "deprecated": true, "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.", "location": "query", "type": "string" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) to return operations for. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -197,6 +199,31 @@ "resources": { "clusters": { "methods": { + "checkAutopilotCompatibility": { + "description": "Checks the cluster compatibility with Autopilot mode, and returns a list of compatibility issues.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:checkAutopilotCompatibility", + "httpMethod": "GET", + "id": "container.projects.locations.clusters.checkAutopilotCompatibility", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name (project, location, cluster) of the cluster to retrieve. Specified in the format `projects/*/locations/*/clusters/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:checkAutopilotCompatibility", + "response": { + "$ref": "CheckAutopilotCompatibilityResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "completeIpRotation": { "description": "Completes master IP rotation.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:completeIpRotation", @@ -263,6 +290,7 @@ ], "parameters": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster to delete. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -275,11 +303,13 @@ "type": "string" }, "projectId": { + "deprecated": true, "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.", "location": "query", "type": "string" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -303,6 +333,7 @@ ], "parameters": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster to retrieve. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -315,11 +346,13 @@ "type": "string" }, "projectId": { + "deprecated": true, "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.", "location": "query", "type": "string" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -334,7 +367,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", @@ -372,11 +405,13 @@ "type": "string" }, "projectId": { + "deprecated": true, "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 parent field.", "location": "query", "type": "string" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides, or \"-\" for all zones. This field has been deprecated and replaced by the parent field.", "location": "query", "type": "string" @@ -447,6 +482,7 @@ ] }, "setLocations": { + "deprecated": true, "description": "Sets the locations for a specific cluster. Deprecated. Use [projects.locations.clusters.update](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/update) instead.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setLocations", "httpMethod": "POST", @@ -796,6 +832,7 @@ ], "parameters": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -808,16 +845,19 @@ "type": "string" }, "nodePoolId": { + "deprecated": true, "description": "Deprecated. The name of the node pool to delete. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" }, "projectId": { + "deprecated": true, "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.", "location": "query", "type": "string" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -841,6 +881,7 @@ ], "parameters": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -853,16 +894,19 @@ "type": "string" }, "nodePoolId": { + "deprecated": true, "description": "Deprecated. The name of the node pool. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" }, "projectId": { + "deprecated": true, "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.", "location": "query", "type": "string" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -886,6 +930,7 @@ ], "parameters": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the parent field.", "location": "query", "type": "string" @@ -898,11 +943,13 @@ "type": "string" }, "projectId": { + "deprecated": true, "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 parent field.", "location": "query", "type": "string" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the parent field.", "location": "query", "type": "string" @@ -1061,7 +1108,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", @@ -1133,16 +1180,19 @@ "type": "string" }, "operationId": { + "deprecated": true, "description": "Deprecated. The server-assigned `name` of the operation. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" }, "projectId": { + "deprecated": true, "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.", "location": "query", "type": "string" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -1173,11 +1223,13 @@ "type": "string" }, "projectId": { + "deprecated": true, "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 parent field.", "location": "query", "type": "string" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) to return operations for, or `-` for all zones. This field has been deprecated and replaced by the parent field.", "location": "query", "type": "string" @@ -1517,6 +1569,7 @@ ] }, "locations": { + "deprecated": true, "description": "Sets the locations for a specific cluster. Deprecated. Use [projects.locations.clusters.update](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/update) instead.", "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/locations", "httpMethod": "POST", @@ -2487,7 +2540,7 @@ } } }, - "revision": "20230104", + "revision": "20240214", "rootUrl": "https://container.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -2503,6 +2556,10 @@ "description": "The accelerator type resource name. List of supported accelerators [here](https://cloud.google.com/compute/docs/gpus)", "type": "string" }, + "gpuDriverInstallationConfig": { + "$ref": "GPUDriverInstallationConfig", + "description": "The configuration for auto installation of GPU driver." + }, "gpuPartitionSize": { "description": "Size of partitions to create on the GPU. Valid values are described in the NVIDIA [mig user guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).", "type": "string" @@ -2514,6 +2571,62 @@ }, "type": "object" }, + "AdditionalNodeNetworkConfig": { + "description": "AdditionalNodeNetworkConfig is the configuration for additional node networks within the NodeNetworkConfig message", + "id": "AdditionalNodeNetworkConfig", + "properties": { + "network": { + "description": "Name of the VPC where the additional interface belongs", + "type": "string" + }, + "subnetwork": { + "description": "Name of the subnetwork where the additional interface belongs", + "type": "string" + } + }, + "type": "object" + }, + "AdditionalPodNetworkConfig": { + "description": "AdditionalPodNetworkConfig is the configuration for additional pod networks within the NodeNetworkConfig message", + "id": "AdditionalPodNetworkConfig", + "properties": { + "maxPodsPerNode": { + "$ref": "MaxPodsConstraint", + "description": "The maximum number of pods per node which use this pod network" + }, + "secondaryPodRange": { + "description": "The name of the secondary range on the subnet which provides IP address for this pod range", + "type": "string" + }, + "subnetwork": { + "description": "Name of the subnetwork where the additional pod network belongs", + "type": "string" + } + }, + "type": "object" + }, + "AdditionalPodRangesConfig": { + "description": "AdditionalPodRangesConfig is the configuration for additional pod secondary ranges supporting the ClusterUpdate message.", + "id": "AdditionalPodRangesConfig", + "properties": { + "podRangeInfo": { + "description": "Output only. [Output only] Information for additional pod range.", + "items": { + "$ref": "RangeInfo" + }, + "readOnly": true, + "type": "array" + }, + "podRangeNames": { + "description": "Name for pod secondary ipv4 range which has the actual range defined ahead.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AddonsConfig": { "description": "Configuration for the addons that can be automatically spun up in the cluster, enabling additional functionality.", "id": "AddonsConfig", @@ -2538,6 +2651,10 @@ "$ref": "GcpFilestoreCsiDriverConfig", "description": "Configuration for the GCP Filestore CSI driver." }, + "gcsFuseCsiDriverConfig": { + "$ref": "GcsFuseCsiDriverConfig", + "description": "Configuration for the Cloud Storage Fuse CSI driver." + }, "gkeBackupAgentConfig": { "$ref": "GkeBackupAgentConfig", "description": "Configuration for the Backup for GKE agent addon." @@ -2552,11 +2669,47 @@ }, "kubernetesDashboard": { "$ref": "KubernetesDashboard", + "deprecated": true, "description": "Configuration for the Kubernetes Dashboard. This addon is deprecated, and will be disabled in 1.15. It is recommended to use the Cloud Console to manage and monitor your Kubernetes clusters, workloads and applications. For more information, see: https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards" }, "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" + }, + "AdvancedDatapathObservabilityConfig": { + "description": "AdvancedDatapathObservabilityConfig specifies configuration of observability features of advanced datapath.", + "id": "AdvancedDatapathObservabilityConfig", + "properties": { + "enableMetrics": { + "description": "Expose flow metrics on nodes", + "type": "boolean" + }, + "enableRelay": { + "description": "Enable Relay component", + "type": "boolean" + }, + "relayMode": { + "description": "Method used to make Relay available", + "enum": [ + "RELAY_MODE_UNSPECIFIED", + "DISABLED", + "INTERNAL_VPC_LB", + "EXTERNAL_LB" + ], + "enumDescriptions": [ + "Default value. This shouldn't be used.", + "disabled", + "exposed via internal load balancer", + "exposed via external load balancer" + ], + "type": "string" } }, "type": "object" @@ -2610,6 +2763,57 @@ "enabled": { "description": "Enable Autopilot", "type": "boolean" + }, + "workloadPolicyConfig": { + "$ref": "WorkloadPolicyConfig", + "description": "Workload policy configuration for Autopilot." + } + }, + "type": "object" + }, + "AutopilotCompatibilityIssue": { + "description": "AutopilotCompatibilityIssue contains information about a specific compatibility issue with Autopilot mode.", + "id": "AutopilotCompatibilityIssue", + "properties": { + "constraintType": { + "description": "The constraint type of the issue.", + "type": "string" + }, + "description": { + "description": "The description of the issue.", + "type": "string" + }, + "documentationUrl": { + "description": "A URL to a public documnetation, which addresses resolving this issue.", + "type": "string" + }, + "incompatibilityType": { + "description": "The incompatibility type of this issue.", + "enum": [ + "UNSPECIFIED", + "INCOMPATIBILITY", + "ADDITIONAL_CONFIG_REQUIRED", + "PASSED_WITH_OPTIONAL_CONFIG" + ], + "enumDescriptions": [ + "Default value, should not be used.", + "Indicates that the issue is a known incompatibility between the cluster and Autopilot mode.", + "Indicates the issue is an incompatibility if customers take no further action to resolve.", + "Indicates the issue is not an incompatibility, but depending on the workloads business logic, there is a potential that they won't work on Autopilot." + ], + "type": "string" + }, + "lastObservation": { + "description": "The last time when this issue was observed.", + "format": "google-datetime", + "type": "string" + }, + "subjects": { + "description": "The name of the resources which are subject to this issue.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -2632,15 +2836,20 @@ "type": "string" }, "imageType": { - "description": "The image type to use for NAP created node.", + "description": "The image type to use for NAP created node. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types.", "type": "string" }, + "insecureKubeletReadonlyPortEnabled": { + "description": "Enable or disable Kubelet read only port.", + "type": "boolean" + }, "management": { "$ref": "NodeManagement", "description": "Specifies the node management options for NAP created node-pools." }, "minCpuPlatform": { - "description": "Deprecated. Minimum CPU platform to be used for NAP created node pools. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: Intel Haswell or minCpuPlatform: Intel Sandy Bridge. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform). This field is deprecated, min_cpu_platform should be specified using https://cloud.google.com/requested-min-cpu-platform label selector on the pod. To unset the min cpu platform field pass \"automatic\" as field value.", + "deprecated": true, + "description": "Deprecated. Minimum CPU platform to be used for NAP created node pools. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: Intel Haswell or minCpuPlatform: Intel Sandy Bridge. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform). This field is deprecated, min_cpu_platform should be specified using `cloud.google.com/requested-min-cpu-platform` label selector on the pod. To unset the min cpu platform field pass \"automatic\" as field value.", "type": "string" }, "oauthScopes": { @@ -2665,6 +2874,22 @@ }, "type": "object" }, + "BestEffortProvisioning": { + "description": "Best effort provisioning.", + "id": "BestEffortProvisioning", + "properties": { + "enabled": { + "description": "When this is enabled, cluster/node pool creations will ignore non-fatal errors like stockout to best provision as many nodes as possible right now and eventually bring up all target number of nodes", + "type": "boolean" + }, + "minProvisionNodes": { + "description": "Minimum number of nodes to be provisioned to be considered as succeeded, and the rest of nodes will be provisioned gradually and eventually when stockout issue has been resolved.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "BigQueryDestination": { "description": "Parameters for using BigQuery as the destination of resource usage export.", "id": "BigQueryDestination", @@ -2681,6 +2906,7 @@ "id": "BinaryAuthorization", "properties": { "enabled": { + "deprecated": true, "description": "This field is deprecated. Leave this unset and instead configure BinaryAuthorization using evaluation_mode. If evaluation_mode is set to anything other than EVALUATION_MODE_UNSPECIFIED, this field is ignored.", "type": "boolean" }, @@ -2779,20 +3005,41 @@ "type": "string" }, "operationId": { + "deprecated": true, "description": "Deprecated. The server-assigned `name` of the operation. This field has been deprecated and replaced by the name field.", "type": "string" }, "projectId": { + "deprecated": true, "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" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation resides. This field has been deprecated and replaced by the name field.", "type": "string" } }, "type": "object" }, + "CheckAutopilotCompatibilityResponse": { + "description": "CheckAutopilotCompatibilityResponse has a list of compatibility issues.", + "id": "CheckAutopilotCompatibilityResponse", + "properties": { + "issues": { + "description": "The list of issues for the given operation.", + "items": { + "$ref": "AutopilotCompatibilityIssue" + }, + "type": "array" + }, + "summary": { + "description": "The summary of the autopilot compatibility response.", + "type": "string" + } + }, + "type": "object" + }, "CidrBlock": { "description": "CidrBlock contains an optional name and one CIDR block.", "id": "CidrBlock", @@ -2896,11 +3143,13 @@ "type": "string" }, "currentNodeCount": { + "deprecated": true, "description": "[Output only] The number of nodes currently in the cluster. Deprecated. Call Kubernetes API directly to retrieve node information.", "format": "int32", "type": "integer" }, "currentNodeVersion": { + "deprecated": true, "description": "[Output only] Deprecated, use [NodePools.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools) instead. The current version of the node software components. If they are currently at multiple versions because they're in the process of being upgraded, this reflects the minimum version of all nodes.", "type": "string" }, @@ -2916,6 +3165,10 @@ "description": "An optional description of this cluster.", "type": "string" }, + "enableK8sBetaApis": { + "$ref": "K8sBetaAPIConfig", + "description": "Beta APIs Config" + }, "enableKubernetesAlpha": { "description": "Kubernetes alpha features are enabled on this cluster. This includes alpha API groups (e.g. v1alpha1) and features that may not be production ready in the kubernetes version of the master and nodes. The cluster has no SLA for uptime and master/node upgrades are disabled. Alpha enabled clusters are automatically deleted thirty days after creation.", "type": "boolean" @@ -2928,6 +3181,10 @@ "description": "[Output only] The IP address of this cluster's master endpoint. The endpoint can be accessed from the internet at `https://username:password@endpoint/`. See the `masterAuth` property of this resource for username and password information.", "type": "string" }, + "enterpriseConfig": { + "$ref": "EnterpriseConfig", + "description": "GKE Enterprise Configuration." + }, "etag": { "description": "This checksum is computed by the server based on the value of cluster fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding.", "type": "string" @@ -2936,6 +3193,10 @@ "description": "[Output only] The time the cluster will be automatically deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", "type": "string" }, + "fleet": { + "$ref": "Fleet", + "description": "Fleet information for the cluster." + }, "id": { "description": "Output only. Unique id for the cluster.", "readOnly": true, @@ -2950,11 +3211,13 @@ "type": "string" }, "initialNodeCount": { + "deprecated": true, "description": "The number of nodes to create in this cluster. You must ensure that your Compute Engine [resource quota](https://cloud.google.com/compute/quotas) is sufficient for this number of instances. You must also have available firewall and routes quota. For requests, this field should only be used in lieu of a \"node_pool\" object, since this configuration (along with the \"node_config\") will be used to create a \"NodePool\" object with an auto-generated name. Do not use this and a node_pool at the same time. This field is deprecated, use node_pool.initial_node_count instead.", "format": "int32", "type": "integer" }, "instanceGroupUrls": { + "deprecated": true, "description": "Deprecated. Use node_pools.instance_group_urls.", "items": { "type": "string" @@ -3034,6 +3297,7 @@ }, "nodeConfig": { "$ref": "NodeConfig", + "deprecated": true, "description": "Parameters used in creating the cluster's nodes. For requests, this field should only be used in lieu of a \"node_pool\" object, since this configuration (along with the \"initial_node_count\") will be used to create a \"NodePool\" object with an auto-generated name. Do not use this and a node_pool at the same time. For responses, this field will be populated with the node configuration of the first node pool. (For configuration of each node pool, see `node_pool.config`) If unspecified, the defaults are used. This field is deprecated, use node_pool.config instead." }, "nodeIpv4CidrSize": { @@ -3060,13 +3324,17 @@ "$ref": "NotificationConfig", "description": "Notification configuration of the cluster." }, + "parentProductConfig": { + "$ref": "ParentProductConfig", + "description": "The configuration of the parent product of the cluster. This field is used by Google internal products that are built on top of the GKE cluster and take the ownership of the cluster." + }, "privateClusterConfig": { "$ref": "PrivateClusterConfig", "description": "Configuration for private cluster." }, "releaseChannel": { "$ref": "ReleaseChannel", - "description": "Release channel configuration." + "description": "Release channel configuration. If left unspecified on cluster creation and a version is specified, the cluster is enrolled in the most mature release channel where the version is available (first checking STABLE, then REGULAR, and finally RAPID). Otherwise, if no release channel configuration and no version is specified, the cluster is enrolled in the REGULAR channel with its default version." }, "resourceLabels": { "additionalProperties": { @@ -3079,6 +3347,10 @@ "$ref": "ResourceUsageExportConfig", "description": "Configuration for exporting resource usages. Resource usage export is disabled when this config is unspecified." }, + "securityPostureConfig": { + "$ref": "SecurityPostureConfig", + "description": "Enable/Disable Security Posture API features for the cluster." + }, "selfLink": { "description": "[Output only] Server-defined URL for the resource.", "type": "string" @@ -3114,6 +3386,7 @@ "type": "string" }, "statusMessage": { + "deprecated": true, "description": "[Output only] Deprecated. Use conditions instead. Additional information about the current status of this cluster, if available.", "type": "string" }, @@ -3134,6 +3407,7 @@ "description": "Configuration for the use of Kubernetes Service Accounts in GCP IAM policies." }, "zone": { + "deprecated": true, "description": "[Output only] The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field is deprecated, use location instead.", "type": "string" } @@ -3183,10 +3457,33 @@ }, "type": "object" }, + "ClusterNetworkPerformanceConfig": { + "description": "Configuration of network bandwidth tiers", + "id": "ClusterNetworkPerformanceConfig", + "properties": { + "totalEgressBandwidthTier": { + "description": "Specifies the total network bandwidth tier for NodePools in the cluster.", + "enum": [ + "TIER_UNSPECIFIED", + "TIER_1" + ], + "enumDescriptions": [ + "Default value", + "Higher bandwidth, actual values based on VM size." + ], + "type": "string" + } + }, + "type": "object" + }, "ClusterUpdate": { "description": "ClusterUpdate describes an update to the cluster. Exactly one update can be applied to a cluster with each request, so at most one field can be provided.", "id": "ClusterUpdate", "properties": { + "additionalPodRangesConfig": { + "$ref": "AdditionalPodRangesConfig", + "description": "The additional pod ranges to be added to the cluster. These pod ranges can be used by node pools to allocate pod IPs." + }, "desiredAddonsConfig": { "$ref": "AddonsConfig", "description": "Configurations for the various addons available to run in the cluster." @@ -3195,6 +3492,10 @@ "$ref": "AuthenticatorGroupsConfig", "description": "The desired authenticator groups config for the cluster." }, + "desiredAutopilotWorkloadPolicyConfig": { + "$ref": "WorkloadPolicyConfig", + "description": "The desired workload policy configuration for the autopilot cluster." + }, "desiredBinaryAuthorization": { "$ref": "BinaryAuthorization", "description": "The desired configuration options for the Binary Authorization feature." @@ -3233,10 +3534,18 @@ "$ref": "DNSConfig", "description": "DNSConfig contains clusterDNS config for this cluster." }, + "desiredEnableFqdnNetworkPolicy": { + "description": "Enable/Disable FQDN Network Policy for the cluster.", + "type": "boolean" + }, "desiredEnablePrivateEndpoint": { "description": "Enable/Disable private endpoint for the cluster's master.", "type": "boolean" }, + "desiredFleet": { + "$ref": "Fleet", + "description": "The desired fleet configuration for the cluster." + }, "desiredGatewayApiConfig": { "$ref": "GatewayAPIConfig", "description": "The desired config of Gateway API on this cluster." @@ -3253,10 +3562,28 @@ "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." }, + "desiredK8sBetaApis": { + "$ref": "K8sBetaAPIConfig", + "description": "Desired Beta APIs to be enabled for cluster." + }, "desiredL4ilbSubsettingConfig": { "$ref": "ILBSubsettingConfig", "description": "The desired L4 Internal Load Balancer Subsetting configuration." @@ -3296,10 +3623,18 @@ "description": "The monitoring service the cluster should use to write metrics. Currently available options: * \"monitoring.googleapis.com/kubernetes\" - The Cloud Monitoring service with a Kubernetes-native resource model * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no longer available as of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left as an empty string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.", "type": "string" }, + "desiredNetworkPerformanceConfig": { + "$ref": "ClusterNetworkPerformanceConfig", + "description": "The desired network performance config." + }, "desiredNodePoolAutoConfigNetworkTags": { "$ref": "NetworkTags", "description": "The desired network tags that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters." }, + "desiredNodePoolAutoConfigResourceManagerTags": { + "$ref": "ResourceManagerTags", + "description": "The desired resource manager tags that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters." + }, "desiredNodePoolAutoscaling": { "$ref": "NodePoolAutoscaling", "description": "Autoscaler configuration for the node pool specified in desired_node_pool_id. If there is only one pool in the cluster and desired_node_pool_id is not provided then the change applies to that single node pool." @@ -3320,6 +3655,10 @@ "$ref": "NotificationConfig", "description": "The desired notification configuration." }, + "desiredParentProductConfig": { + "$ref": "ParentProductConfig", + "description": "The desired parent product config for the cluster." + }, "desiredPrivateClusterConfig": { "$ref": "PrivateClusterConfig", "description": "The desired private cluster configuration." @@ -3336,7 +3675,7 @@ "Default value. Same as DISABLED", "No private access to or from Google Services", "Enables private IPv6 access to Google Services from GKE", - "Enables priate IPv6 access to and from Google Services" + "Enables private IPv6 access to and from Google Services" ], "type": "string" }, @@ -3348,6 +3687,10 @@ "$ref": "ResourceUsageExportConfig", "description": "The desired configuration for exporting resource usage." }, + "desiredSecurityPostureConfig": { + "$ref": "SecurityPostureConfig", + "description": "Enable/Disable Security Posture API features for the cluster." + }, "desiredServiceExternalIpsConfig": { "$ref": "ServiceExternalIPsConfig", "description": "ServiceExternalIPsConfig specifies the config for the use of Services with ExternalIPs field." @@ -3378,9 +3721,17 @@ "$ref": "WorkloadIdentityConfig", "description": "Configuration for Workload Identity." }, + "enableK8sBetaApis": { + "$ref": "K8sBetaAPIConfig", + "description": "Kubernetes open source beta apis enabled on the cluster. Only beta apis" + }, "etag": { "description": "The current etag of the cluster. If an etag is provided and does not match the current etag of the cluster, update will be blocked and an ABORTED error will be returned.", "type": "string" + }, + "removedAdditionalPodRangesConfig": { + "$ref": "AdditionalPodRangesConfig", + "description": "The additional pod ranges that are to be removed from the cluster. The pod ranges specified here must have been specified earlier in the 'additional_pod_ranges_config' argument." } }, "type": "object" @@ -3390,6 +3741,7 @@ "id": "CompleteIPRotationRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -3398,10 +3750,12 @@ "type": "string" }, "projectId": { + "deprecated": true, "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" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -3471,10 +3825,12 @@ "type": "string" }, "projectId": { + "deprecated": true, "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 parent field.", "type": "string" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the parent field.", "type": "string" } @@ -3486,6 +3842,7 @@ "id": "CreateNodePoolRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the parent field.", "type": "string" }, @@ -3498,10 +3855,12 @@ "type": "string" }, "projectId": { + "deprecated": true, "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 parent field.", "type": "string" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the parent field.", "type": "string" } @@ -3517,12 +3876,14 @@ "enum": [ "PROVIDER_UNSPECIFIED", "PLATFORM_DEFAULT", - "CLOUD_DNS" + "CLOUD_DNS", + "KUBE_DNS" ], "enumDescriptions": [ "Default value", "Use GKE default DNS provider(kube-dns) for DNS resolution.", - "Use CloudDNS for DNS resolution." + "Use CloudDNS for DNS resolution.", + "Use KubeDNS for DNS resolution." ], "type": "string" }, @@ -3571,7 +3932,7 @@ "type": "string" }, "state": { - "description": "Denotes the state of etcd encryption.", + "description": "The desired state of etcd encryption.", "enum": [ "UNKNOWN", "ENCRYPTED", @@ -3615,12 +3976,34 @@ "properties": {}, "type": "object" }, + "EnterpriseConfig": { + "description": "EnterpriseConfig is the cluster enterprise configuration.", + "id": "EnterpriseConfig", + "properties": { + "clusterTier": { + "description": "Output only. [Output only] cluster_tier specifies the premium tier of the cluster.", + "enum": [ + "CLUSTER_TIER_UNSPECIFIED", + "STANDARD", + "ENTERPRISE" + ], + "enumDescriptions": [ + "CLUSTER_TIER_UNSPECIFIED is when cluster_tier is not set.", + "STANDARD indicates a standard GKE cluster.", + "ENTERPRISE indicates a GKE Enterprise cluster." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "EphemeralStorageLocalSsdConfig": { - "description": "EphemeralStorageLocalSsdConfig contains configuration for the node ephemeral storage using Local SSD.", + "description": "EphemeralStorageLocalSsdConfig contains configuration for the node ephemeral storage using Local SSDs.", "id": "EphemeralStorageLocalSsdConfig", "properties": { "localSsdCount": { - "description": "Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. Each local SSD is 375 GB in size. If zero, it means to disable using local SSDs as ephemeral storage. The limit for this value is dependent upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information.", + "description": "Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn't support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info.", "format": "int32", "type": "integer" } @@ -3664,6 +4047,48 @@ }, "type": "object" }, + "Fleet": { + "description": "Fleet is the fleet configuration for the cluster.", + "id": "Fleet", + "properties": { + "membership": { + "description": "[Output only] The full resource name of the registered fleet membership of the cluster, in the format `//gkehub.googleapis.com/projects/*/locations/*/memberships/*`.", + "type": "string" + }, + "preRegistered": { + "description": "[Output only] Whether the cluster has been registered through the fleet API.", + "type": "boolean" + }, + "project": { + "description": "The Fleet host project(project ID or project number) where this cluster will be registered to. This field cannot be changed after the cluster has been registered.", + "type": "string" + } + }, + "type": "object" + }, + "GPUDriverInstallationConfig": { + "description": "GPUDriverInstallationConfig specifies the version of GPU driver to be auto installed.", + "id": "GPUDriverInstallationConfig", + "properties": { + "gpuDriverVersion": { + "description": "Mode for how the GPU driver is installed.", + "enum": [ + "GPU_DRIVER_VERSION_UNSPECIFIED", + "INSTALLATION_DISABLED", + "DEFAULT", + "LATEST" + ], + "enumDescriptions": [ + "Default value is to not install any GPU driver.", + "Disable GPU driver auto installation and needs manual installation", + "\"Default\" GPU driver in COS and Ubuntu.", + "\"Latest\" GPU driver in COS." + ], + "type": "string" + } + }, + "type": "object" + }, "GPUSharingConfig": { "description": "GPUSharingConfig represents the GPU sharing configuration for Hardware Accelerators.", "id": "GPUSharingConfig", @@ -3744,6 +4169,17 @@ }, "type": "object" }, + "GcsFuseCsiDriverConfig": { + "description": "Configuration for the Cloud Storage Fuse CSI driver.", + "id": "GcsFuseCsiDriverConfig", + "properties": { + "enabled": { + "description": "Whether the Cloud Storage Fuse CSI driver is enabled for this cluster.", + "type": "boolean" + } + }, + "type": "object" + }, "GetJSONWebKeysResponse": { "description": "GetJSONWebKeysResponse is a valid JSON Web Key Set as specififed in rfc 7517", "id": "GetJSONWebKeysResponse", @@ -3884,7 +4320,13 @@ "description": "Configuration for controlling how IPs are allocated in the cluster.", "id": "IPAllocationPolicy", "properties": { + "additionalPodRangesConfig": { + "$ref": "AdditionalPodRangesConfig", + "description": "Output only. [Output only] The additional pod ranges that are added to the cluster. These pod ranges can be used by new node pools to allocate pod IPs automatically. Once the range is removed it will not show up in IPAllocationPolicy.", + "readOnly": true + }, "clusterIpv4Cidr": { + "deprecated": true, "description": "This field is deprecated, use cluster_ipv4_cidr_block.", "type": "string" }, @@ -3900,6 +4342,12 @@ "description": "Whether a new subnetwork will be created automatically for the cluster. This field is only applicable when `use_ip_aliases` is true.", "type": "boolean" }, + "defaultPodIpv4RangeUtilization": { + "description": "Output only. [Output only] The utilization of the cluster default IPv4 range for the pod. The ratio is Usage/[Total number of IPs in the secondary range], Usage=numNodes*numZones*podIPsPerNode.", + "format": "double", + "readOnly": true, + "type": "number" + }, "ipv6AccessType": { "description": "The ipv6 access type (internal or external) when create_subnetwork is true", "enum": [ @@ -3915,6 +4363,7 @@ "type": "string" }, "nodeIpv4Cidr": { + "deprecated": true, "description": "This field is deprecated, use node_ipv4_cidr_block.", "type": "string" }, @@ -3922,7 +4371,12 @@ "description": "The IP address range of the instance IPs in this cluster. This is applicable only if `create_subnetwork` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.", "type": "string" }, + "podCidrOverprovisionConfig": { + "$ref": "PodCIDROverprovisionConfig", + "description": "[PRIVATE FIELD] Pod CIDR size overprovisioning config for the cluster. Pod CIDR size per node depends on max_pods_per_node. By default, the value of max_pods_per_node is doubled and then rounded off to next power of 2 to get the size of pod CIDR block per node. Example: max_pods_per_node of 30 would result in 64 IPs (/26). This config can disable the doubling of IPs (we still round off to next power of 2) Example: max_pods_per_node of 30 will result in 32 IPs (/27) when overprovisioning is disabled." + }, "servicesIpv4Cidr": { + "deprecated": true, "description": "This field is deprecated, use services_ipv4_cidr_block.", "type": "string" }, @@ -3930,6 +4384,11 @@ "description": "The IP address range of the services IPs in this cluster. If blank, a range will be automatically chosen with the default size. This field is only applicable when `use_ip_aliases` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.", "type": "string" }, + "servicesIpv6CidrBlock": { + "description": "Output only. [Output only] The services IPv6 CIDR block for the cluster.", + "readOnly": true, + "type": "string" + }, "servicesSecondaryRangeName": { "description": "The name of the secondary range to be used as for the services CIDR block. The secondary range will be used for service ClusterIPs. This must be an existing secondary range associated with the cluster subnetwork. This field is only applicable with use_ip_aliases is true and create_subnetwork is false.", "type": "string" @@ -3948,6 +4407,11 @@ ], "type": "string" }, + "subnetIpv6CidrBlock": { + "description": "Output only. [Output only] The subnet's IPv6 CIDR block used by nodes and pods.", + "readOnly": true, + "type": "string" + }, "subnetworkName": { "description": "A custom subnetwork name to be used if `create_subnetwork` is true. If this field is empty, then an automatic name will be chosen for the new subnetwork.", "type": "string" @@ -4032,6 +4496,20 @@ }, "type": "object" }, + "K8sBetaAPIConfig": { + "description": "K8sBetaAPIConfig , configuration for beta APIs", + "id": "K8sBetaAPIConfig", + "properties": { + "enabledApis": { + "description": "Enabled k8s beta APIs.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "KubernetesDashboard": { "description": "Configuration for the Kubernetes Dashboard.", "id": "KubernetesDashboard", @@ -4157,11 +4635,11 @@ "type": "object" }, "LocalNvmeSsdBlockConfig": { - "description": "LocalNvmeSsdBlockConfig contains configuration for using raw-block local NVMe SSD.", + "description": "LocalNvmeSsdBlockConfig contains configuration for using raw-block local NVMe SSDs", "id": "LocalNvmeSsdBlockConfig", "properties": { "localSsdCount": { - "description": "The number of raw-block local NVMe SSD disks to be attached to the node. Each local SSD is 375 GB in size. If zero, it means no raw-block local NVMe SSD disks to be attached to the node. The limit for this value is dependent upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information.", + "description": "Number of local NVMe SSDs to use. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn't support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info.", "format": "int32", "type": "integer" } @@ -4320,10 +4798,12 @@ "type": "string" }, "password": { + "deprecated": true, "description": "The password to use for HTTP basic authentication to the master endpoint. Because the master endpoint is open to the Internet, you should create a strong password. If a password is provided for cluster creation, username must be non-empty. Warning: basic authentication is deprecated, and will be removed in GKE control plane versions 1.19 and newer. For a list of recommended authentication methods, see: https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication", "type": "string" }, "username": { + "deprecated": true, "description": "The username to use for HTTP basic authentication to the master endpoint. For clusters v1.6.0 and later, basic authentication can be disabled by leaving username unspecified (or setting it to the empty string). Warning: basic authentication is deprecated, and will be removed in GKE control plane versions 1.19 and newer. For a list of recommended authentication methods, see: https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication", "type": "string" } @@ -4412,14 +4892,26 @@ "SYSTEM_COMPONENTS", "APISERVER", "SCHEDULER", - "CONTROLLER_MANAGER" + "CONTROLLER_MANAGER", + "STORAGE", + "HPA", + "POD", + "DAEMONSET", + "DEPLOYMENT", + "STATEFULSET" ], "enumDescriptions": [ "Default value. This shouldn't be used.", "system components", "kube-apiserver", "kube-scheduler", - "kube-controller-manager" + "kube-controller-manager", + "Storage", + "Horizontal Pod Autoscaling", + "Pod", + "DaemonSet", + "Deployment", + "Statefulset" ], "type": "string" }, @@ -4432,6 +4924,10 @@ "description": "MonitoringConfig is cluster monitoring configuration.", "id": "MonitoringConfig", "properties": { + "advancedDatapathObservabilityConfig": { + "$ref": "AdvancedDatapathObservabilityConfig", + "description": "Configuration of Advanced Datapath Observability features." + }, "componentConfig": { "$ref": "MonitoringComponentConfig", "description": "Monitoring components configuration" @@ -4469,6 +4965,10 @@ "$ref": "DNSConfig", "description": "DNSConfig contains clusterDNS config for this cluster." }, + "enableFqdnNetworkPolicy": { + "description": "Whether FQDN Network Policy is enabled on this cluster.", + "type": "boolean" + }, "enableIntraNodeVisibility": { "description": "Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network.", "type": "boolean" @@ -4477,14 +4977,36 @@ "description": "Whether L4ILB Subsetting is enabled for this cluster.", "type": "boolean" }, + "enableMultiNetworking": { + "description": "Whether multi-networking is enabled for this cluster.", + "type": "boolean" + }, "gatewayApiConfig": { "$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" }, + "networkPerformanceConfig": { + "$ref": "ClusterNetworkPerformanceConfig", + "description": "Network bandwidth tier configuration." + }, "privateIpv6GoogleAccess": { "description": "The desired state of IPv6 connectivity to Google Services. By default, no private IPv6 access to or from Google Services (all access will be via IPv4)", "enum": [ @@ -4497,7 +5019,7 @@ "Default value. Same as DISABLED", "No private access to or from Google Services", "Enables private IPv6 access to Google Services from GKE", - "Enables priate IPv6 access to and from Google Services" + "Enables private IPv6 access to and from Google Services" ], "type": "string" }, @@ -4579,6 +5101,38 @@ }, "type": "object" }, + "NodeAffinity": { + "description": "Specifies the NodeAffinity key, values, and affinity operator according to [shared sole tenant node group affinities](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity).", + "id": "NodeAffinity", + "properties": { + "key": { + "description": "Key for NodeAffinity.", + "type": "string" + }, + "operator": { + "description": "Operator for NodeAffinity.", + "enum": [ + "OPERATOR_UNSPECIFIED", + "IN", + "NOT_IN" + ], + "enumDescriptions": [ + "Invalid or unspecified affinity operator.", + "Affinity operator.", + "Anti-affinity operator." + ], + "type": "string" + }, + "values": { + "description": "Values for NodeAffinity.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "NodeConfig": { "description": "Parameters that describe the nodes in a cluster. GKE Autopilot clusters do not recognize parameters in `NodeConfig`. Use AutoprovisioningNodePoolDefaults instead.", "id": "NodeConfig", @@ -4611,6 +5165,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." @@ -4628,7 +5186,7 @@ "description": "Enable or disable gvnic in the node pool." }, "imageType": { - "description": "The image type to use for this node. Note that for a given image type, the latest version of it will be used.", + "description": "The image type to use for this node. Note that for a given image type, the latest version of it will be used. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types.", "type": "string" }, "kubeletConfig": { @@ -4700,10 +5258,21 @@ "description": "The resource labels for the node pool to use to annotate any related Google Compute Engine resources.", "type": "object" }, + "resourceManagerTags": { + "$ref": "ResourceManagerTags", + "description": "A map of resource manager tag keys and values to be attached to the nodes." + }, "sandboxConfig": { "$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" @@ -4712,6 +5281,10 @@ "$ref": "ShieldedInstanceConfig", "description": "Shielded Instance options." }, + "soleTenantConfig": { + "$ref": "SoleTenantConfig", + "description": "Parameters for node pools to be backed by shared sole tenant node groups." + }, "spot": { "description": "Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible flag.", "type": "boolean" @@ -4772,6 +5345,10 @@ "description": "Control the CPU management policy on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. * \"none\": the default, which represents the existing scheduling behavior. * \"static\": allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is 'none' if unspecified.", "type": "string" }, + "insecureKubeletReadonlyPortEnabled": { + "description": "Enable or disable Kubelet read only port.", + "type": "boolean" + }, "podPidsLimit": { "description": "Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304.", "format": "int64", @@ -4817,6 +5394,20 @@ "description": "Parameters for node pool-level network config.", "id": "NodeNetworkConfig", "properties": { + "additionalNodeNetworkConfigs": { + "description": "We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface", + "items": { + "$ref": "AdditionalNodeNetworkConfig" + }, + "type": "array" + }, + "additionalPodNetworkConfigs": { + "description": "We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node", + "items": { + "$ref": "AdditionalPodNetworkConfig" + }, + "type": "array" + }, "createPodRange": { "description": "Input only. Whether to create a new range for pod IPs in this node pool. Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they are not specified. If neither `create_pod_range` or `pod_range` are specified, the cluster-level default (`ip_allocation_policy.cluster_ipv4_cidr_block`) is used. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.", "type": "boolean" @@ -4829,10 +5420,20 @@ "$ref": "NetworkPerformanceConfig", "description": "Network bandwidth tier configuration." }, + "podCidrOverprovisionConfig": { + "$ref": "PodCIDROverprovisionConfig", + "description": "[PRIVATE FIELD] Pod CIDR size overprovisioning config for the nodepool. Pod CIDR size per node depends on max_pods_per_node. By default, the value of max_pods_per_node is rounded off to next power of 2 and we then double that to get the size of pod CIDR block per node. Example: max_pods_per_node of 30 would result in 64 IPs (/26). This config can disable the doubling of IPs (we still round off to next power of 2) Example: max_pods_per_node of 30 will result in 32 IPs (/27) when overprovisioning is disabled." + }, "podIpv4CidrBlock": { "description": "The IP address range for pod IPs in this node pool. Only applicable if `create_pod_range` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) to pick a specific range to use. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.", "type": "string" }, + "podIpv4RangeUtilization": { + "description": "Output only. [Output only] The utilization of the IPv4 range for the pod. The ratio is Usage/[Total number of IPs in the secondary range], Usage=numNodes*numZones*podIPsPerNode.", + "format": "double", + "readOnly": true, + "type": "number" + }, "podRange": { "description": "The ID of the secondary range for pod IPs. If `create_pod_range` is true, this ID is used for the new range. If `create_pod_range` is false, uses an existing secondary range with this ID. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.", "type": "string" @@ -4848,6 +5449,10 @@ "$ref": "NodePoolAutoscaling", "description": "Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present." }, + "bestEffortProvisioning": { + "$ref": "BestEffortProvisioning", + "description": "Enable best effort provisioning for nodes" + }, "conditions": { "description": "Which conditions caused the current node pool state.", "items": { @@ -4907,6 +5512,10 @@ "format": "int32", "type": "integer" }, + "queuedProvisioning": { + "$ref": "QueuedProvisioning", + "description": "Specifies the configuration of queued provisioning." + }, "selfLink": { "description": "[Output only] Server-defined URL for the resource.", "type": "string" @@ -4934,6 +5543,7 @@ "type": "string" }, "statusMessage": { + "deprecated": true, "description": "[Output only] Deprecated. Use conditions instead. Additional information about the current status of this node pool instance, if available.", "type": "string" }, @@ -4947,7 +5557,7 @@ "description": "Upgrade settings control disruption and speed of the upgrade." }, "version": { - "description": "The version of the Kubernetes of this node.", + "description": "The version of Kubernetes running on this NodePool's nodes. If unspecified, it defaults as described [here](https://cloud.google.com/kubernetes-engine/versioning#specifying_node_version).", "type": "string" } }, @@ -4960,6 +5570,10 @@ "networkTags": { "$ref": "NetworkTags", "description": "The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster creation. Each tag within the list must comply with RFC1035." + }, + "resourceManagerTags": { + "$ref": "ResourceManagerTags", + "description": "Resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies." } }, "type": "object" @@ -5036,7 +5650,7 @@ "type": "object" }, "NodeTaint": { - "description": "Kubernetes taint is comprised of three fields: key, value, and effect. Effect can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration) for more information, including usage and the valid values.", + "description": "Kubernetes taint is composed of three fields: key, value, and effect. Effect can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration) for more information, including usage and the valid values.", "id": "NodeTaint", "properties": { "effect": { @@ -5096,6 +5710,7 @@ "id": "Operation", "properties": { "clusterConditions": { + "deprecated": true, "description": "Which conditions caused the current cluster state. Deprecated. Use field error instead.", "items": { "$ref": "StatusCondition" @@ -5123,6 +5738,7 @@ "type": "string" }, "nodepoolConditions": { + "deprecated": true, "description": "Which conditions caused the current node pool state. Deprecated. Use field error instead.", "items": { "$ref": "StatusCondition" @@ -5148,26 +5764,51 @@ "SET_MASTER_AUTH", "SET_NODE_POOL_SIZE", "SET_NETWORK_POLICY", - "SET_MAINTENANCE_POLICY" + "SET_MAINTENANCE_POLICY", + "RESIZE_CLUSTER", + "FLEET_FEATURE_UPGRADE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true, + true, + true, + false, + true, + true, + false, + false ], "enumDescriptions": [ "Not set.", - "Cluster create.", - "Cluster delete.", - "A master upgrade.", - "A node upgrade.", - "Cluster repair.", - "Cluster update.", - "Node pool create.", - "Node pool delete.", - "Set node pool management.", - "Automatic node pool repair.", - "Automatic node upgrade.", - "Set labels.", - "Set/generate master auth materials", - "Set node pool size.", - "Updates network policy for a cluster.", - "Set the maintenance policy." + "The cluster is being created. The cluster should be assumed to be unusable until the operation finishes. In the event of the operation failing, the cluster will enter the ERROR state and eventually be deleted.", + "The cluster is being deleted. The cluster should be assumed to be unusable as soon as this operation starts. In the event of the operation failing, the cluster will enter the ERROR state and the deletion will be automatically retried until completed.", + "The cluster version is being updated. Note that this includes \"upgrades\" to the same version, which are simply a recreation. This also includes [auto-upgrades](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-upgrades#upgrading_automatically). For more details, see [documentation on cluster upgrades](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-upgrades#cluster_upgrades).", + "A node pool is being updated. Despite calling this an \"upgrade\", this includes most forms of updates to node pools. This also includes [auto-upgrades](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-upgrades). This operation sets the progress field and may be canceled. The upgrade strategy depends on [node pool configuration](https://cloud.google.com/kubernetes-engine/docs/concepts/node-pool-upgrade-strategies). The nodes are generally still usable during this operation.", + "A problem has been detected with the control plane and is being repaired. This operation type is initiated by GKE. For more details, see [documentation on repairs](https://cloud.google.com/kubernetes-engine/docs/concepts/maintenance-windows-and-exclusions#repairs).", + "The cluster is being updated. This is a broad category of operations and includes operations that only change metadata as well as those that must recreate the entire cluster. If the control plane must be recreated, this will cause temporary downtime for zonal clusters. Some features require recreating the nodes as well. Those will be recreated as separate operations and the update may not be completely functional until the node pools recreations finish. Node recreations will generally follow [maintenance policies](https://cloud.google.com/kubernetes-engine/docs/concepts/maintenance-windows-and-exclusions). Some GKE-initiated operations use this type. This includes certain types of auto-upgrades and incident mitigations.", + "A node pool is being created. The node pool should be assumed to be unusable until this operation finishes. In the event of an error, the node pool may be partially created. If enabled, [node autoprovisioning](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-provisioning) may have automatically initiated such operations.", + "The node pool is being deleted. The node pool should be assumed to be unusable as soon as this operation starts.", + "The node pool's manamagent field is being updated. These operations only update metadata and may be concurrent with most other operations.", + "A problem has been detected with nodes and [they are being repaired](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-repair). This operation type is initiated by GKE, typically automatically. This operation may be concurrent with other operations and there may be multiple repairs occurring on the same node pool.", + "Unused. Automatic node upgrade uses UPGRADE_NODES.", + "Unused. Updating labels uses UPDATE_CLUSTER.", + "Unused. Updating master auth uses UPDATE_CLUSTER.", + "The node pool is being resized. With the exception of resizing to or from size zero, the node pool is generally usable during this operation.", + "Unused. Updating network policy uses UPDATE_CLUSTER.", + "Unused. Updating maintenance policy uses UPDATE_CLUSTER.", + "The control plane is being resized. This operation type is initiated by GKE. These operations are often performed preemptively to ensure that the control plane has sufficient resources and is not typically an indication of issues. For more details, see [documentation on resizes](https://cloud.google.com/kubernetes-engine/docs/concepts/maintenance-windows-and-exclusions#repairs).", + "Fleet features of GKE Enterprise are being upgraded. The cluster should be assumed to be blocked for other upgrades until the operation finishes." ], "type": "string" }, @@ -5177,7 +5818,7 @@ "readOnly": true }, "selfLink": { - "description": "Server-defined URL for the resource.", + "description": "Server-defined URI for the operation. Example: `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`.", "type": "string" }, "startTime": { @@ -5203,15 +5844,17 @@ "type": "string" }, "statusMessage": { + "deprecated": true, "description": "Output only. If an error has occurred, a textual description of the error. Deprecated. Use the field error instead.", "readOnly": true, "type": "string" }, "targetLink": { - "description": "Server-defined URL for the target of the operation.", + "description": "Server-defined URI for the target of the operation. The format of this is a URI to the resource being modified (such as a cluster, node pool, or node). For node pool repairs, there may be multiple nodes being repaired, but only one will be the target. Examples: - ## `https://container.googleapis.com/v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`", "type": "string" }, "zone": { + "deprecated": true, "description": "The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation is taking place. This field is deprecated, use location instead.", "type": "string" } @@ -5261,10 +5904,36 @@ }, "type": "object" }, + "ParentProductConfig": { + "description": "ParentProductConfig is the configuration of the parent product of the cluster. This field is used by Google internal products that are built on top of a GKE cluster and take the ownership of the cluster.", + "id": "ParentProductConfig", + "properties": { + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels contain the configuration of the parent product.", + "type": "object" + }, + "productName": { + "description": "Name of the parent product associated with the cluster.", + "type": "string" + } + }, + "type": "object" + }, "PlacementPolicy": { "description": "PlacementPolicy defines the placement policy used by the node pool.", "id": "PlacementPolicy", "properties": { + "policyName": { + "description": "If set, refers to the name of a custom resource policy supplied by the user. The resource policy must be in the same project and region as the node pool. If not found, InvalidArgument error is returned.", + "type": "string" + }, + "tpuTopology": { + "description": "Optional. TPU placement topology for pod slice node pool. https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies", + "type": "string" + }, "type": { "description": "The type of placement.", "enum": [ @@ -5280,6 +5949,17 @@ }, "type": "object" }, + "PodCIDROverprovisionConfig": { + "description": "[PRIVATE FIELD] Config for pod CIDR size overprovisioning.", + "id": "PodCIDROverprovisionConfig", + "properties": { + "disable": { + "description": "Whether Pod CIDR overprovisioning is disabled. Note: Pod CIDR overprovisioning is enabled by default.", + "type": "boolean" + } + }, + "type": "object" + }, "PrivateClusterConfig": { "description": "Configuration options for private clusters.", "id": "PrivateClusterConfig", @@ -5349,6 +6029,35 @@ }, "type": "object" }, + "QueuedProvisioning": { + "description": "QueuedProvisioning defines the queued provisioning used by the node pool.", + "id": "QueuedProvisioning", + "properties": { + "enabled": { + "description": "Denotes that this nodepool is QRM specific, meaning nodes can be only obtained through queuing via the Cluster Autoscaler ProvisioningRequest API.", + "type": "boolean" + } + }, + "type": "object" + }, + "RangeInfo": { + "description": "RangeInfo contains the range name and the range utilization by this cluster.", + "id": "RangeInfo", + "properties": { + "rangeName": { + "description": "Output only. [Output only] Name of a range.", + "readOnly": true, + "type": "string" + }, + "utilization": { + "description": "Output only. [Output only] The utilization of the range.", + "format": "double", + "readOnly": true, + "type": "number" + } + }, + "type": "object" + }, "RecurringTimeWindow": { "description": "Represents an arbitrary window of time that recurs.", "id": "RecurringTimeWindow", @@ -5490,6 +6199,20 @@ }, "type": "object" }, + "ResourceManagerTags": { + "description": "A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications in https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values.", + "id": "ResourceManagerTags", + "properties": { + "tags": { + "additionalProperties": { + "type": "string" + }, + "description": "TagKeyValue must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2. `{org_id}/{tag_key_name}={tag_value_name}` 3. `{project_id}/{tag_key_name}={tag_value_name}`", + "type": "object" + } + }, + "type": "object" + }, "ResourceUsageExportConfig": { "description": "Configuration for exporting cluster resource usages.", "id": "ResourceUsageExportConfig", @@ -5514,6 +6237,7 @@ "id": "RollbackNodePoolUpgradeRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster to rollback. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -5522,10 +6246,12 @@ "type": "string" }, "nodePoolId": { + "deprecated": true, "description": "Deprecated. The name of the node pool to rollback. This field has been deprecated and replaced by the name field.", "type": "string" }, "projectId": { + "deprecated": true, "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" }, @@ -5534,6 +6260,7 @@ "type": "boolean" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -5559,6 +6286,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", @@ -5615,6 +6365,43 @@ }, "type": "object" }, + "SecurityPostureConfig": { + "description": "SecurityPostureConfig defines the flags needed to enable/disable features for the Security Posture API.", + "id": "SecurityPostureConfig", + "properties": { + "mode": { + "description": "Sets which mode to use for Security Posture features.", + "enum": [ + "MODE_UNSPECIFIED", + "DISABLED", + "BASIC" + ], + "enumDescriptions": [ + "Default value not specified.", + "Disables Security Posture features on the cluster.", + "Applies Security Posture features on the cluster." + ], + "type": "string" + }, + "vulnerabilityMode": { + "description": "Sets which mode to use for vulnerability scanning.", + "enum": [ + "VULNERABILITY_MODE_UNSPECIFIED", + "VULNERABILITY_DISABLED", + "VULNERABILITY_BASIC", + "VULNERABILITY_ENTERPRISE" + ], + "enumDescriptions": [ + "Default value not specified.", + "Disables 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" + } + }, + "type": "object" + }, "ServerConfig": { "description": "Kubernetes Engine service configuration.", "id": "ServerConfig", @@ -5678,6 +6465,7 @@ "description": "Required. The desired configurations for the various addons available to run in the cluster." }, "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -5686,10 +6474,12 @@ "type": "string" }, "projectId": { + "deprecated": true, "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" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -5701,6 +6491,7 @@ "id": "SetLabelsRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -5713,6 +6504,7 @@ "type": "string" }, "projectId": { + "deprecated": true, "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" }, @@ -5724,6 +6516,7 @@ "type": "object" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -5735,6 +6528,7 @@ "id": "SetLegacyAbacRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster to update. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -5747,10 +6541,12 @@ "type": "string" }, "projectId": { + "deprecated": true, "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" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -5762,6 +6558,7 @@ "id": "SetLocationsRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -5777,10 +6574,12 @@ "type": "string" }, "projectId": { + "deprecated": true, "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" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -5792,6 +6591,7 @@ "id": "SetLoggingServiceRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -5804,10 +6604,12 @@ "type": "string" }, "projectId": { + "deprecated": true, "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" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -5862,6 +6664,7 @@ "type": "string" }, "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -5870,6 +6673,7 @@ "type": "string" }, "projectId": { + "deprecated": true, "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" }, @@ -5878,6 +6682,7 @@ "description": "Required. A description of the update." }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -5889,6 +6694,7 @@ "id": "SetMonitoringServiceRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -5901,10 +6707,12 @@ "type": "string" }, "projectId": { + "deprecated": true, "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" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -5916,6 +6724,7 @@ "id": "SetNetworkPolicyRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -5928,10 +6737,12 @@ "description": "Required. Configuration options for the NetworkPolicy feature." }, "projectId": { + "deprecated": true, "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" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -5947,6 +6758,7 @@ "description": "Required. Autoscaling configuration for the node pool." }, "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -5955,14 +6767,17 @@ "type": "string" }, "nodePoolId": { + "deprecated": true, "description": "Deprecated. The name of the node pool to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, "projectId": { + "deprecated": true, "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" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -5974,6 +6789,7 @@ "id": "SetNodePoolManagementRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster to update. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -5986,14 +6802,17 @@ "type": "string" }, "nodePoolId": { + "deprecated": true, "description": "Deprecated. The name of the node pool to update. This field has been deprecated and replaced by the name field.", "type": "string" }, "projectId": { + "deprecated": true, "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" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -6005,6 +6824,7 @@ "id": "SetNodePoolSizeRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster to update. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6018,14 +6838,17 @@ "type": "integer" }, "nodePoolId": { + "deprecated": true, "description": "Deprecated. The name of the node pool to update. This field has been deprecated and replaced by the name field.", "type": "string" }, "projectId": { + "deprecated": true, "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" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -6058,6 +6881,20 @@ }, "type": "object" }, + "SoleTenantConfig": { + "description": "SoleTenantConfig contains the NodeAffinities to specify what shared sole tenant node groups should back the node pool.", + "id": "SoleTenantConfig", + "properties": { + "nodeAffinities": { + "description": "NodeAffinities used to match to a shared sole tenant node group.", + "items": { + "$ref": "NodeAffinity" + }, + "type": "array" + } + }, + "type": "object" + }, "StandardRolloutPolicy": { "description": "Standard rollout policy is the default policy for blue-green.", "id": "StandardRolloutPolicy", @@ -6085,6 +6922,7 @@ "id": "StartIPRotationRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6093,6 +6931,7 @@ "type": "string" }, "projectId": { + "deprecated": true, "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" }, @@ -6101,12 +6940,24 @@ "type": "boolean" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } }, "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", @@ -6181,6 +7032,7 @@ "type": "string" }, "code": { + "deprecated": true, "description": "Machine-friendly representation of the condition Deprecated. Use canonical_code instead.", "enum": [ "UNKNOWN", @@ -6235,6 +7087,7 @@ "id": "UpdateClusterRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6243,6 +7096,7 @@ "type": "string" }, "projectId": { + "deprecated": true, "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" }, @@ -6251,6 +7105,7 @@ "description": "Required. A description of the update." }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -6273,6 +7128,7 @@ "id": "UpdateMasterRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6285,10 +7141,12 @@ "type": "string" }, "projectId": { + "deprecated": true, "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" }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -6300,6 +7158,7 @@ "id": "UpdateNodePoolRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6307,6 +7166,15 @@ "$ref": "ConfidentialNodes", "description": "Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled." }, + "diskSizeGb": { + "description": "Optional. The desired disk size for nodes in the node pool specified in GB. The smallest allowed disk size is 10GB. Initiates an upgrade operation that migrates the nodes in the node pool to the specified disk size.", + "format": "int64", + "type": "string" + }, + "diskType": { + "description": "Optional. The desired disk type (e.g. 'pd-standard', 'pd-ssd' or 'pd-balanced') for nodes in the node pool. Initiates an upgrade operation that migrates the nodes in the node pool to the specified disk type.", + "type": "string" + }, "etag": { "description": "The current etag of the node pool. If an etag is provided and does not match the current etag of the node pool, update will be blocked and an ABORTED error will be returned.", "type": "string" @@ -6324,7 +7192,7 @@ "description": "Enable or disable gvnic on the node pool." }, "imageType": { - "description": "Required. The desired image type for the node pool.", + "description": "Required. The desired image type for the node pool. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types.", "type": "string" }, "kubeletConfig": { @@ -6350,6 +7218,10 @@ "$ref": "NodePoolLoggingConfig", "description": "Logging configuration." }, + "machineType": { + "description": "Optional. The desired [Google Compute Engine machine type](https://cloud.google.com/compute/docs/machine-types) for nodes in the node pool. Initiates an upgrade operation that migrates the nodes in the node pool to the specified machine type.", + "type": "string" + }, "name": { "description": "The name (project, location, cluster, node pool) of the node pool to update. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.", "type": "string" @@ -6359,6 +7231,7 @@ "description": "Node network config." }, "nodePoolId": { + "deprecated": true, "description": "Deprecated. The name of the node pool to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6367,13 +7240,22 @@ "type": "string" }, "projectId": { + "deprecated": true, "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." }, + "resourceManagerTags": { + "$ref": "ResourceManagerTags", + "description": "Desired resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Existing tags will be replaced with new values." + }, "tags": { "$ref": "NetworkTags", "description": "The desired network tags to be applied to all nodes in the node pool. If this field is not present, the tags will not be changed. Otherwise, the existing network tags will be *replaced* with the provided tags." @@ -6395,6 +7277,7 @@ "description": "The desired workload metadata config for the node pool." }, "zone": { + "deprecated": true, "description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -6502,7 +7385,7 @@ "SURGE" ], "enumDescriptions": [ - "Default value.", + "Default value if unset. GKE internally defaults the update strategy to SURGE for unspecified strategies.", "blue-green upgrade.", "SURGE is the traditional way of upgrade a node pool. max_surge and max_unavailable determines the level of upgrade parallelism." ], @@ -6565,7 +7448,7 @@ "enumDescriptions": [ "UNKNOWN is the zero value of the Status enum. It's not a valid status.", "UNUSED denotes that this range is unclaimed by any cluster.", - "IN_USE_SERVICE denotes that this range is claimed by a cluster for services. It cannot be used for other clusters.", + "IN_USE_SERVICE denotes that this range is claimed by cluster(s) for services. User-managed services range can be shared between clusters within the same subnetwork.", "IN_USE_SHAREABLE_POD denotes this range was created by the network admin and is currently claimed by a cluster for pods. It can only be used by other clusters as a pod range.", "IN_USE_MANAGED_POD denotes this range was created by GKE and is claimed for pods. It cannot be used for other clusters." ], @@ -6648,6 +7531,17 @@ } }, "type": "object" + }, + "WorkloadPolicyConfig": { + "description": "WorkloadPolicyConfig is the configuration of workload policy for autopilot clusters.", + "id": "WorkloadPolicyConfig", + "properties": { + "allowNetAdmin": { + "description": "If true, workloads can use NET_ADMIN capability.", + "type": "boolean" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/container/v1beta1/container-api.json b/etc/api/container/v1beta1/container-api.json index cfd4cf8f7d..07c255ed48 100644 --- a/etc/api/container/v1beta1/container-api.json +++ b/etc/api/container/v1beta1/container-api.json @@ -175,11 +175,13 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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.", "location": "query", "type": "string" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) to return operations for. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -222,6 +224,31 @@ "resources": { "clusters": { "methods": { + "checkAutopilotCompatibility": { + "description": "Checks the cluster compatibility with Autopilot mode, and returns a list of compatibility issues.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:checkAutopilotCompatibility", + "httpMethod": "GET", + "id": "container.projects.locations.clusters.checkAutopilotCompatibility", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name (project, location, cluster) of the cluster to retrieve. Specified in the format `projects/*/locations/*/clusters/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:checkAutopilotCompatibility", + "response": { + "$ref": "CheckAutopilotCompatibilityResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "completeIpRotation": { "description": "Completes master IP rotation.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:completeIpRotation", @@ -288,6 +315,7 @@ ], "parameters": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster to delete. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -300,11 +328,13 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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.", "location": "query", "type": "string" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -328,6 +358,7 @@ ], "parameters": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster to retrieve. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -340,11 +371,13 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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.", "location": "query", "type": "string" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -359,7 +392,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": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/jwks", "httpMethod": "GET", "id": "container.projects.locations.clusters.getJwks", @@ -397,11 +430,13 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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 parent field.", "location": "query", "type": "string" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides, or \"-\" for all zones. This field has been deprecated and replaced by the parent field.", "location": "query", "type": "string" @@ -472,6 +507,7 @@ ] }, "setLocations": { + "deprecated": true, "description": "Sets the locations for a specific cluster. Deprecated. Use [projects.locations.clusters.update](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters/update) instead.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setLocations", "httpMethod": "POST", @@ -821,6 +857,7 @@ ], "parameters": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -833,16 +870,19 @@ "type": "string" }, "nodePoolId": { + "deprecated": true, "description": "Required. Deprecated. The name of the node pool to delete. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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.", "location": "query", "type": "string" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -866,6 +906,7 @@ ], "parameters": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -878,16 +919,19 @@ "type": "string" }, "nodePoolId": { + "deprecated": true, "description": "Required. Deprecated. The name of the node pool. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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.", "location": "query", "type": "string" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -911,6 +955,7 @@ ], "parameters": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster. This field has been deprecated and replaced by the parent field.", "location": "query", "type": "string" @@ -923,11 +968,13 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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 parent field.", "location": "query", "type": "string" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the parent field.", "location": "query", "type": "string" @@ -1086,7 +1133,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": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/.well-known/openid-configuration", "httpMethod": "GET", "id": "container.projects.locations.clusters.well-known.getOpenid-configuration", @@ -1158,16 +1205,19 @@ "type": "string" }, "operationId": { + "deprecated": true, "description": "Required. Deprecated. The server-assigned `name` of the operation. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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.", "location": "query", "type": "string" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "location": "query", "type": "string" @@ -1198,11 +1248,13 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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 parent field.", "location": "query", "type": "string" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) to return operations for, or `-` for all zones. This field has been deprecated and replaced by the parent field.", "location": "query", "type": "string" @@ -1542,6 +1594,7 @@ ] }, "locations": { + "deprecated": true, "description": "Sets the locations for a specific cluster. Deprecated. Use [projects.locations.clusters.update](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters/update) instead.", "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/locations", "httpMethod": "POST", @@ -2512,7 +2565,7 @@ } } }, - "revision": "20230104", + "revision": "20240214", "rootUrl": "https://container.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -2528,6 +2581,10 @@ "description": "The accelerator type resource name. List of supported accelerators [here](https://cloud.google.com/compute/docs/gpus)", "type": "string" }, + "gpuDriverInstallationConfig": { + "$ref": "GPUDriverInstallationConfig", + "description": "The configuration for auto installation of GPU driver." + }, "gpuPartitionSize": { "description": "Size of partitions to create on the GPU. Valid values are described in the NVIDIA [mig user guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).", "type": "string" @@ -2537,6 +2594,7 @@ "description": "The configuration for GPU sharing options." }, "maxTimeSharedClientsPerGpu": { + "deprecated": true, "description": "The number of time-shared GPU resources to expose for each physical GPU.", "format": "int64", "type": "string" @@ -2544,6 +2602,62 @@ }, "type": "object" }, + "AdditionalNodeNetworkConfig": { + "description": "AdditionalNodeNetworkConfig is the configuration for additional node networks within the NodeNetworkConfig message", + "id": "AdditionalNodeNetworkConfig", + "properties": { + "network": { + "description": "Name of the VPC where the additional interface belongs", + "type": "string" + }, + "subnetwork": { + "description": "Name of the subnetwork where the additional interface belongs", + "type": "string" + } + }, + "type": "object" + }, + "AdditionalPodNetworkConfig": { + "description": "AdditionalPodNetworkConfig is the configuration for additional pod networks within the NodeNetworkConfig message", + "id": "AdditionalPodNetworkConfig", + "properties": { + "maxPodsPerNode": { + "$ref": "MaxPodsConstraint", + "description": "The maximum number of pods per node which use this pod network" + }, + "secondaryPodRange": { + "description": "The name of the secondary range on the subnet which provides IP address for this pod range", + "type": "string" + }, + "subnetwork": { + "description": "Name of the subnetwork where the additional pod network belongs", + "type": "string" + } + }, + "type": "object" + }, + "AdditionalPodRangesConfig": { + "description": "AdditionalPodRangesConfig is the configuration for additional pod secondary ranges supporting the ClusterUpdate message.", + "id": "AdditionalPodRangesConfig", + "properties": { + "podRangeInfo": { + "description": "Output only. [Output only] Information for additional pod range.", + "items": { + "$ref": "RangeInfo" + }, + "readOnly": true, + "type": "array" + }, + "podRangeNames": { + "description": "Name for pod secondary ipv4 range which has the actual range defined ahead.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AddonsConfig": { "description": "Configuration for the addons that can be automatically spun up in the cluster, enabling additional functionality.", "id": "AddonsConfig", @@ -2568,6 +2682,10 @@ "$ref": "GcpFilestoreCsiDriverConfig", "description": "Configuration for the GCP Filestore CSI driver." }, + "gcsFuseCsiDriverConfig": { + "$ref": "GcsFuseCsiDriverConfig", + "description": "Configuration for the Cloud Storage Fuse CSI driver." + }, "gkeBackupAgentConfig": { "$ref": "GkeBackupAgentConfig", "description": "Configuration for the Backup for GKE agent addon." @@ -2582,19 +2700,57 @@ }, "istioConfig": { "$ref": "IstioConfig", + "deprecated": true, "description": "Configuration for Istio, an open platform to connect, manage, and secure microservices." }, "kalmConfig": { "$ref": "KalmConfig", + "deprecated": true, "description": "Configuration for the KALM addon, which manages the lifecycle of k8s applications." }, "kubernetesDashboard": { "$ref": "KubernetesDashboard", + "deprecated": true, "description": "Configuration for the Kubernetes Dashboard. This addon is deprecated, and will be disabled in 1.15. It is recommended to use the Cloud Console to manage and monitor your Kubernetes clusters, workloads and applications. For more information, see: https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards" }, "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" + }, + "AdvancedDatapathObservabilityConfig": { + "description": "AdvancedDatapathObservabilityConfig specifies configuration of observability features of advanced datapath.", + "id": "AdvancedDatapathObservabilityConfig", + "properties": { + "enableMetrics": { + "description": "Expose flow metrics on nodes", + "type": "boolean" + }, + "enableRelay": { + "description": "Enable Relay component", + "type": "boolean" + }, + "relayMode": { + "description": "Method used to make Relay available", + "enum": [ + "RELAY_MODE_UNSPECIFIED", + "DISABLED", + "INTERNAL_VPC_LB", + "EXTERNAL_LB" + ], + "enumDescriptions": [ + "Default value. This shouldn't be used.", + "disabled", + "exposed via internal load balancer", + "exposed via external load balancer" + ], + "type": "string" } }, "type": "object" @@ -2645,9 +2801,85 @@ "description": "Autopilot is the configuration for Autopilot settings on the cluster.", "id": "Autopilot", "properties": { + "conversionStatus": { + "$ref": "AutopilotConversionStatus", + "description": "Output only. ConversionStatus shows conversion status.", + "readOnly": true + }, "enabled": { "description": "Enable Autopilot", "type": "boolean" + }, + "workloadPolicyConfig": { + "$ref": "WorkloadPolicyConfig", + "description": "Workload policy configuration for Autopilot." + } + }, + "type": "object" + }, + "AutopilotCompatibilityIssue": { + "description": "AutopilotCompatibilityIssue contains information about a specific compatibility issue with Autopilot mode.", + "id": "AutopilotCompatibilityIssue", + "properties": { + "constraintType": { + "description": "The constraint type of the issue.", + "type": "string" + }, + "description": { + "description": "The description of the issue.", + "type": "string" + }, + "documentationUrl": { + "description": "A URL to a public documnetation, which addresses resolving this issue.", + "type": "string" + }, + "incompatibilityType": { + "description": "The incompatibility type of this issue.", + "enum": [ + "UNSPECIFIED", + "INCOMPATIBILITY", + "ADDITIONAL_CONFIG_REQUIRED", + "PASSED_WITH_OPTIONAL_CONFIG" + ], + "enumDescriptions": [ + "Default value, should not be used.", + "Indicates that the issue is a known incompatibility between the cluster and Autopilot mode.", + "Indicates the issue is an incompatibility if customers take no further action to resolve.", + "Indicates the issue is not an incompatibility, but depending on the workloads business logic, there is a potential that they won't work on Autopilot." + ], + "type": "string" + }, + "lastObservation": { + "description": "The last time when this issue was observed.", + "format": "google-datetime", + "type": "string" + }, + "subjects": { + "description": "The name of the resources which are subject to this issue.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AutopilotConversionStatus": { + "description": "AutopilotConversionStatus represents conversion status.", + "id": "AutopilotConversionStatus", + "properties": { + "state": { + "description": "Output only. The current state of the conversion.", + "enum": [ + "STATE_UNSPECIFIED", + "DONE" + ], + "enumDescriptions": [ + "STATE_UNSPECIFIED indicates the state is unspecified.", + "DONE indicates the conversion has been completed. Old node pools will continue being deleted in the background." + ], + "readOnly": true, + "type": "string" } }, "type": "object" @@ -2670,15 +2902,20 @@ "type": "string" }, "imageType": { - "description": "The image type to use for NAP created node.", + "description": "The image type to use for NAP created node. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types.", "type": "string" }, + "insecureKubeletReadonlyPortEnabled": { + "description": "Enable or disable Kubelet read only port.", + "type": "boolean" + }, "management": { "$ref": "NodeManagement", "description": "NodeManagement configuration for this NodePool." }, "minCpuPlatform": { - "description": "Deprecated. Minimum CPU platform to be used for NAP created node pools. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: Intel Haswell or minCpuPlatform: Intel Sandy Bridge. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform). This field is deprecated, min_cpu_platform should be specified using https://cloud.google.com/requested-min-cpu-platform label selector on the pod. To unset the min cpu platform field pass \"automatic\" as field value.", + "deprecated": true, + "description": "Deprecated. Minimum CPU platform to be used for NAP created node pools. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: Intel Haswell or minCpuPlatform: Intel Sandy Bridge. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform). This field is deprecated, min_cpu_platform should be specified using `cloud.google.com/requested-min-cpu-platform` label selector on the pod. To unset the min cpu platform field pass \"automatic\" as field value.", "type": "string" }, "oauthScopes": { @@ -2703,7 +2940,14 @@ }, "type": "object" }, + "AutoscaledRolloutPolicy": { + "description": "Autoscaled rollout policy uses cluster autoscaler during blue-green upgrades to scale both the green and blue pools.", + "id": "AutoscaledRolloutPolicy", + "properties": {}, + "type": "object" + }, "AvailableVersion": { + "deprecated": true, "description": "Deprecated.", "id": "AvailableVersion", "properties": { @@ -2718,6 +2962,22 @@ }, "type": "object" }, + "BestEffortProvisioning": { + "description": "Best effort provisioning.", + "id": "BestEffortProvisioning", + "properties": { + "enabled": { + "description": "When this is enabled, cluster/node pool creations will ignore non-fatal errors like stockout to best provision as many nodes as possible right now and eventually bring up all target number of nodes", + "type": "boolean" + }, + "minProvisionNodes": { + "description": "Minimum number of nodes to be provisioned to be considered as succeeded, and the rest of nodes will be provisioned gradually and eventually when stockout issue has been resolved.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "BigQueryDestination": { "description": "Parameters for using BigQuery as the destination of resource usage export.", "id": "BigQueryDestination", @@ -2734,6 +2994,7 @@ "id": "BinaryAuthorization", "properties": { "enabled": { + "deprecated": true, "description": "This field is deprecated. Leave this unset and instead configure BinaryAuthorization using evaluation_mode. If evaluation_mode is set to anything other than EVALUATION_MODE_UNSPECIFIED, this field is ignored.", "type": "boolean" }, @@ -2742,14 +3003,25 @@ "enum": [ "EVALUATION_MODE_UNSPECIFIED", "DISABLED", - "PROJECT_SINGLETON_POLICY_ENFORCE" + "PROJECT_SINGLETON_POLICY_ENFORCE", + "POLICY_BINDINGS", + "POLICY_BINDINGS_AND_PROJECT_SINGLETON_POLICY_ENFORCE" ], "enumDescriptions": [ "Default value", "Disable BinaryAuthorization", - "Enforce Kubernetes admission requests with BinaryAuthorization using the project's singleton policy. This is equivalent to setting the enabled boolean to true." + "Enforce Kubernetes admission requests with BinaryAuthorization using the project's singleton policy. This is equivalent to setting the enabled boolean to true.", + "Use Binary Authorization Continuous Validation with the policies specified in policy_bindings.", + "Use Binary Authorization Continuous Validation with the policies specified in policy_bindings and enforce Kubernetes admission requests with Binary Authorization using the project's singleton policy." ], "type": "string" + }, + "policyBindings": { + "description": "Optional. Binauthz policies that apply to this cluster.", + "items": { + "$ref": "PolicyBinding" + }, + "type": "array" } }, "type": "object" @@ -2787,6 +3059,7 @@ "UPDATE_STARTED", "CREATING_GREEN_POOL", "CORDONING_BLUE_POOL", + "WAITING_TO_DRAIN_BLUE_POOL", "DRAINING_BLUE_POOL", "NODE_POOL_SOAKING", "DELETING_BLUE_POOL", @@ -2797,6 +3070,7 @@ "blue-green upgrade has been initiated.", "Start creating green pool nodes.", "Start cordoning blue pool nodes.", + "Start waiting after cordoning the blue pool and before draining it.", "Start draining blue pool nodes.", "Start soaking time after draining entire blue pool.", "Start deleting blue nodes.", @@ -2811,6 +3085,10 @@ "description": "Settings for blue-green upgrade.", "id": "BlueGreenSettings", "properties": { + "autoscaledRolloutPolicy": { + "$ref": "AutoscaledRolloutPolicy", + "description": "Autoscaled policy for cluster autoscaler enabled blue-green upgrade." + }, "nodePoolSoakDuration": { "description": "Time needed after draining entire blue pool. After this period, blue pool will be cleaned up.", "format": "google-duration", @@ -2832,20 +3110,41 @@ "type": "string" }, "operationId": { + "deprecated": true, "description": "Required. Deprecated. The server-assigned `name` of the operation. This field has been deprecated and replaced by the name field.", "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation resides. This field has been deprecated and replaced by the name field.", "type": "string" } }, "type": "object" }, + "CheckAutopilotCompatibilityResponse": { + "description": "CheckAutopilotCompatibilityResponse has a list of compatibility issues.", + "id": "CheckAutopilotCompatibilityResponse", + "properties": { + "issues": { + "description": "The list of issues for the given operation.", + "items": { + "$ref": "AutopilotCompatibilityIssue" + }, + "type": "array" + }, + "summary": { + "description": "The summary of the autopilot compatibility response.", + "type": "string" + } + }, + "type": "object" + }, "CidrBlock": { "description": "CidrBlock contains an optional name and one CIDR block.", "id": "CidrBlock", @@ -2953,11 +3252,13 @@ "type": "string" }, "currentNodeCount": { + "deprecated": true, "description": "[Output only] The number of nodes currently in the cluster. Deprecated. Call Kubernetes API directly to retrieve node information.", "format": "int32", "type": "integer" }, "currentNodeVersion": { + "deprecated": true, "description": "[Output only] Deprecated, use [NodePool.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters.nodePools) instead. The current version of the node software components. If they are currently at multiple versions because they're in the process of being upgraded, this reflects the minimum version of all nodes.", "type": "string" }, @@ -2973,6 +3274,10 @@ "description": "An optional description of this cluster.", "type": "string" }, + "enableK8sBetaApis": { + "$ref": "K8sBetaAPIConfig", + "description": "Kubernetes open source beta apis enabled on the cluster. Only beta apis." + }, "enableKubernetesAlpha": { "description": "Kubernetes alpha features are enabled on this cluster. This includes alpha API groups (e.g. v1beta1) and features that may not be production ready in the kubernetes version of the master and nodes. The cluster has no SLA for uptime and master/node upgrades are disabled. Alpha enabled clusters are automatically deleted thirty days after creation.", "type": "boolean" @@ -2985,6 +3290,10 @@ "description": "[Output only] The IP address of this cluster's master endpoint. The endpoint can be accessed from the internet at `https://username:password@endpoint/`. See the `masterAuth` property of this resource for username and password information.", "type": "string" }, + "enterpriseConfig": { + "$ref": "EnterpriseConfig", + "description": "GKE Enterprise Configuration." + }, "etag": { "description": "This checksum is computed by the server based on the value of cluster fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding.", "type": "string" @@ -2993,6 +3302,10 @@ "description": "[Output only] The time the cluster will be automatically deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", "type": "string" }, + "fleet": { + "$ref": "Fleet", + "description": "Fleet information for the cluster." + }, "id": { "description": "Output only. Unique id for the cluster.", "readOnly": true, @@ -3007,11 +3320,13 @@ "type": "string" }, "initialNodeCount": { + "deprecated": true, "description": "The number of nodes to create in this cluster. You must ensure that your Compute Engine [resource quota](https://cloud.google.com/compute/quotas) is sufficient for this number of instances. You must also have available firewall and routes quota. For requests, this field should only be used in lieu of a \"node_pool\" object, since this configuration (along with the \"node_config\") will be used to create a \"NodePool\" object with an auto-generated name. Do not use this and a node_pool at the same time. This field is deprecated, use node_pool.initial_node_count instead.", "format": "int32", "type": "integer" }, "instanceGroupUrls": { + "deprecated": true, "description": "Deprecated. Use node_pools.instance_group_urls.", "items": { "type": "string" @@ -3066,6 +3381,7 @@ "description": "The configuration options for master authorized networks feature." }, "masterIpv4CidrBlock": { + "deprecated": true, "description": "The IP prefix in CIDR notation to use for the hosted master network. This prefix will be used for assigning private IP addresses to the master or set of masters, as well as the ILB VIP. This field is deprecated, use private_cluster_config.master_ipv4_cidr_block instead.", "type": "string" }, @@ -3099,6 +3415,7 @@ }, "nodeConfig": { "$ref": "NodeConfig", + "deprecated": true, "description": "Parameters used in creating the cluster's nodes. For requests, this field should only be used in lieu of a \"node_pool\" object, since this configuration (along with the \"initial_node_count\") will be used to create a \"NodePool\" object with an auto-generated name. Do not use this and a node_pool at the same time. For responses, this field will be populated with the node configuration of the first node pool. (For configuration of each node pool, see `node_pool.config`) If unspecified, the defaults are used. This field is deprecated, use node_pool.config instead." }, "nodeIpv4CidrSize": { @@ -3125,11 +3442,16 @@ "$ref": "NotificationConfig", "description": "Notification configuration of the cluster." }, + "parentProductConfig": { + "$ref": "ParentProductConfig", + "description": "The configuration of the parent product of the cluster. This field is used by Google internal products that are built on top of the GKE cluster and take the ownership of the cluster." + }, "podSecurityPolicyConfig": { "$ref": "PodSecurityPolicyConfig", "description": "Configuration for the PodSecurityPolicy feature." }, "privateCluster": { + "deprecated": true, "description": "If this is a private cluster setup. Private clusters are clusters that, by default have no external IP addresses on the nodes and where nodes and the master communicate over private IP addresses. This field is deprecated, use private_cluster_config.enable_private_nodes instead.", "type": "boolean" }, @@ -3139,11 +3461,12 @@ }, "protectConfig": { "$ref": "ProtectConfig", - "description": "Enable/Disable Protect API features for the cluster." + "deprecated": true, + "description": "Deprecated: Use SecurityPostureConfig instead. Enable/Disable Protect API features for the cluster." }, "releaseChannel": { "$ref": "ReleaseChannel", - "description": "Release channel configuration." + "description": "Release channel configuration. If left unspecified on cluster creation and a version is specified, the cluster is enrolled in the most mature release channel where the version is available (first checking STABLE, then REGULAR, and finally RAPID). Otherwise, if no release channel configuration and no version is specified, the cluster is enrolled in the REGULAR channel with its default version." }, "resourceLabels": { "additionalProperties": { @@ -3156,6 +3479,10 @@ "$ref": "ResourceUsageExportConfig", "description": "Configuration for exporting resource usages. Resource usage export is disabled when this config unspecified." }, + "securityPostureConfig": { + "$ref": "SecurityPostureConfig", + "description": "Enable/Disable Security Posture API features for the cluster." + }, "selfLink": { "description": "[Output only] Server-defined URL for the resource.", "type": "string" @@ -3191,6 +3518,7 @@ "type": "string" }, "statusMessage": { + "deprecated": true, "description": "[Output only] Deprecated. Use conditions instead. Additional information about the current status of this cluster, if available.", "type": "string" }, @@ -3223,6 +3551,7 @@ "description": "Configuration for the use of Kubernetes Service Accounts in GCP IAM policies." }, "zone": { + "deprecated": true, "description": "[Output only] The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field is deprecated, use location instead.", "type": "string" } @@ -3272,6 +3601,25 @@ }, "type": "object" }, + "ClusterNetworkPerformanceConfig": { + "description": "Configuration of all network bandwidth tiers", + "id": "ClusterNetworkPerformanceConfig", + "properties": { + "totalEgressBandwidthTier": { + "description": "Specifies the total network bandwidth tier for the NodePool.", + "enum": [ + "TIER_UNSPECIFIED", + "TIER_1" + ], + "enumDescriptions": [ + "Default value", + "Higher bandwidth, actual values based on VM size." + ], + "type": "string" + } + }, + "type": "object" + }, "ClusterTelemetry": { "description": "Telemetry integration for the cluster.", "id": "ClusterTelemetry", @@ -3299,6 +3647,10 @@ "description": "ClusterUpdate describes an update to the cluster. Exactly one update can be applied to a cluster with each request, so at most one field can be provided.", "id": "ClusterUpdate", "properties": { + "additionalPodRangesConfig": { + "$ref": "AdditionalPodRangesConfig", + "description": "The additional pod ranges to be added to the cluster. These pod ranges can be used by node pools to allocate pod IPs." + }, "desiredAddonsConfig": { "$ref": "AddonsConfig", "description": "Configurations for the various addons available to run in the cluster." @@ -3307,6 +3659,10 @@ "$ref": "AuthenticatorGroupsConfig", "description": "AuthenticatorGroupsConfig specifies the config for the cluster security groups settings." }, + "desiredAutopilotWorkloadPolicyConfig": { + "$ref": "WorkloadPolicyConfig", + "description": "The desired workload policy configuration for the autopilot cluster." + }, "desiredBinaryAuthorization": { "$ref": "BinaryAuthorization", "description": "The desired configuration options for the Binary Authorization feature." @@ -3349,10 +3705,18 @@ "$ref": "DNSConfig", "description": "DNSConfig contains clusterDNS config for this cluster." }, + "desiredEnableFqdnNetworkPolicy": { + "description": "Enable/Disable FQDN Network Policy for the cluster.", + "type": "boolean" + }, "desiredEnablePrivateEndpoint": { "description": "Enable/Disable private endpoint for the cluster's master.", "type": "boolean" }, + "desiredFleet": { + "$ref": "Fleet", + "description": "The desired fleet configuration for the cluster." + }, "desiredGatewayApiConfig": { "$ref": "GatewayAPIConfig", "description": "The desired config of Gateway API on this cluster." @@ -3361,6 +3725,10 @@ "$ref": "GcfsConfig", "description": "The desired GCFS config for the cluster." }, + "desiredHostMaintenancePolicy": { + "$ref": "HostMaintenancePolicy", + "description": "HostMaintenancePolicy contains the desired maintenance policy for the Google Compute Engine hosts." + }, "desiredIdentityServiceConfig": { "$ref": "IdentityServiceConfig", "description": "The desired Identity Service component configuration." @@ -3369,10 +3737,28 @@ "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." }, + "desiredK8sBetaApis": { + "$ref": "K8sBetaAPIConfig", + "description": "Beta APIs enabled for cluster." + }, "desiredL4ilbSubsettingConfig": { "$ref": "ILBSubsettingConfig", "description": "The desired L4 Internal Load Balancer Subsetting configuration." @@ -3416,10 +3802,18 @@ "description": "The monitoring service the cluster should use to write metrics. Currently available options: * \"monitoring.googleapis.com/kubernetes\" - The Cloud Monitoring service with a Kubernetes-native resource model * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no longer available as of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left as an empty string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.", "type": "string" }, + "desiredNetworkPerformanceConfig": { + "$ref": "ClusterNetworkPerformanceConfig", + "description": "The desired network performance config." + }, "desiredNodePoolAutoConfigNetworkTags": { "$ref": "NetworkTags", "description": "The desired network tags that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters." }, + "desiredNodePoolAutoConfigResourceManagerTags": { + "$ref": "ResourceManagerTags", + "description": "The desired resource manager tags that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters." + }, "desiredNodePoolAutoscaling": { "$ref": "NodePoolAutoscaling", "description": "Autoscaler configuration for the node pool specified in desired_node_pool_id. If there is only one pool in the cluster and desired_node_pool_id is not provided then the change applies to that single node pool." @@ -3440,6 +3834,10 @@ "$ref": "NotificationConfig", "description": "The desired notification configuration." }, + "desiredParentProductConfig": { + "$ref": "ParentProductConfig", + "description": "The desired parent product config for the cluster." + }, "desiredPodSecurityPolicyConfig": { "$ref": "PodSecurityPolicyConfig", "description": "The desired configuration options for the PodSecurityPolicy feature." @@ -3460,13 +3858,14 @@ "Default value. Same as DISABLED", "No private access to or from Google Services", "Enables private IPv6 access to Google Services from GKE", - "Enables priate IPv6 access to and from Google Services" + "Enables private IPv6 access to and from Google Services" ], "type": "string" }, "desiredProtectConfig": { "$ref": "ProtectConfig", - "description": "Enable/Disable Protect API features for the cluster." + "deprecated": true, + "description": "Deprecated: Use DesiredSecurityPostureConfig instead. Enable/Disable Protect API features for the cluster." }, "desiredReleaseChannel": { "$ref": "ReleaseChannel", @@ -3476,6 +3875,10 @@ "$ref": "ResourceUsageExportConfig", "description": "The desired configuration for exporting resource usage." }, + "desiredSecurityPostureConfig": { + "$ref": "SecurityPostureConfig", + "description": "Enable/Disable Security Posture API features for the cluster." + }, "desiredServiceExternalIpsConfig": { "$ref": "ServiceExternalIPsConfig", "description": "ServiceExternalIPsConfig specifies the config for the use of Services with ExternalIPs field." @@ -3518,9 +3921,17 @@ "$ref": "WorkloadIdentityConfig", "description": "Configuration for Workload Identity." }, + "enableK8sBetaApis": { + "$ref": "K8sBetaAPIConfig", + "description": "Kubernetes open source beta apis enabled on the cluster. Only beta apis" + }, "etag": { "description": "The current etag of the cluster. If an etag is provided and does not match the current etag of the cluster, update will be blocked and an ABORTED error will be returned.", "type": "string" + }, + "removedAdditionalPodRangesConfig": { + "$ref": "AdditionalPodRangesConfig", + "description": "The additional pod ranges that are to be removed from the cluster. The pod ranges specified here must have been specified earlier in the 'additional_pod_ranges_config' argument." } }, "type": "object" @@ -3530,6 +3941,7 @@ "id": "CompleteIPRotationRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -3538,10 +3950,12 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -3611,10 +4025,12 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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 parent field.", "type": "string" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the parent field.", "type": "string" } @@ -3626,6 +4042,7 @@ "id": "CreateNodePoolRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster. This field has been deprecated and replaced by the parent field.", "type": "string" }, @@ -3638,10 +4055,12 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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 parent field.", "type": "string" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the parent field.", "type": "string" } @@ -3657,12 +4076,14 @@ "enum": [ "PROVIDER_UNSPECIFIED", "PLATFORM_DEFAULT", - "CLOUD_DNS" + "CLOUD_DNS", + "KUBE_DNS" ], "enumDescriptions": [ "Default value", "Use GKE default DNS provider(kube-dns) for DNS resolution.", - "Use CloudDNS for DNS resolution." + "Use CloudDNS for DNS resolution.", + "Use KubeDNS for DNS resolution." ], "type": "string" }, @@ -3711,7 +4132,7 @@ "type": "string" }, "state": { - "description": "Denotes the state of etcd encryption.", + "description": "The desired state of etcd encryption.", "enum": [ "UNKNOWN", "ENCRYPTED", @@ -3777,12 +4198,34 @@ "properties": {}, "type": "object" }, + "EnterpriseConfig": { + "description": "EnterpriseConfig is the cluster enterprise configuration.", + "id": "EnterpriseConfig", + "properties": { + "clusterTier": { + "description": "Output only. [Output only] cluster_tier specifies the premium tier of the cluster.", + "enum": [ + "CLUSTER_TIER_UNSPECIFIED", + "STANDARD", + "ENTERPRISE" + ], + "enumDescriptions": [ + "CLUSTER_TIER_UNSPECIFIED is when cluster_tier is not set.", + "STANDARD indicates a standard GKE cluster.", + "ENTERPRISE indicates a GKE Enterprise cluster." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "EphemeralStorageConfig": { "description": "EphemeralStorageConfig contains configuration for the ephemeral storage filesystem.", "id": "EphemeralStorageConfig", "properties": { "localSsdCount": { - "description": "Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. Each local SSD is 375 GB in size. If zero, it means to disable using local SSDs as ephemeral storage.", + "description": "Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn't support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info.", "format": "int32", "type": "integer" } @@ -3794,7 +4237,7 @@ "id": "EphemeralStorageLocalSsdConfig", "properties": { "localSsdCount": { - "description": "Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. Each local SSD is 375 GB in size. If zero, it means to disable using local SSDs as ephemeral storage. The limit for this value is dependent upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information.", + "description": "Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn't support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info.", "format": "int32", "type": "integer" } @@ -3838,6 +4281,48 @@ }, "type": "object" }, + "Fleet": { + "description": "Fleet is the fleet configuration for the cluster.", + "id": "Fleet", + "properties": { + "membership": { + "description": "[Output only] The full resource name of the registered fleet membership of the cluster, in the format `//gkehub.googleapis.com/projects/*/locations/*/memberships/*`.", + "type": "string" + }, + "preRegistered": { + "description": "[Output only] Whether the cluster has been registered through the fleet API.", + "type": "boolean" + }, + "project": { + "description": "The Fleet host project(project ID or project number) where this cluster will be registered to. This field cannot be changed after the cluster has been registered.", + "type": "string" + } + }, + "type": "object" + }, + "GPUDriverInstallationConfig": { + "description": "GPUDriverInstallationConfig specifies the version of GPU driver to be auto installed.", + "id": "GPUDriverInstallationConfig", + "properties": { + "gpuDriverVersion": { + "description": "Mode for how the GPU driver is installed.", + "enum": [ + "GPU_DRIVER_VERSION_UNSPECIFIED", + "INSTALLATION_DISABLED", + "DEFAULT", + "LATEST" + ], + "enumDescriptions": [ + "Default value is to not install any GPU driver.", + "Disable GPU driver auto installation and needs manual installation", + "\"Default\" GPU driver in COS and Ubuntu.", + "\"Latest\" GPU driver in COS." + ], + "type": "string" + } + }, + "type": "object" + }, "GPUSharingConfig": { "description": "GPUSharingConfig represents the GPU sharing configuration for Hardware Accelerators.", "id": "GPUSharingConfig", @@ -3918,6 +4403,17 @@ }, "type": "object" }, + "GcsFuseCsiDriverConfig": { + "description": "Configuration for the Cloud Storage Fuse CSI driver.", + "id": "GcsFuseCsiDriverConfig", + "properties": { + "enabled": { + "description": "Whether the Cloud Storage Fuse CSI driver is enabled for this cluster.", + "type": "boolean" + } + }, + "type": "object" + }, "GetJSONWebKeysResponse": { "description": "GetJSONWebKeysResponse is a valid JSON Web Key Set as specififed in rfc 7517", "id": "GetJSONWebKeysResponse", @@ -4012,6 +4508,31 @@ }, "type": "object" }, + "HostMaintenancePolicy": { + "description": "HostMaintenancePolicy contains the maintenance policy for the hosts on which the GKE VMs run on.", + "id": "HostMaintenancePolicy", + "properties": { + "maintenanceInterval": { + "description": "Specifies the frequency of planned maintenance events.", + "enum": [ + "MAINTENANCE_INTERVAL_UNSPECIFIED", + "AS_NEEDED", + "PERIODIC" + ], + "enumDescriptions": [ + "The maintenance interval is not explicitly specified.", + "Nodes are eligible to receive infrastructure and hypervisor updates as they become available. This may result in more maintenance operations (live migrations or terminations) for the node than the PERIODIC option.", + "Nodes receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean underlying VMs will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available." + ], + "type": "string" + }, + "opportunisticMaintenanceStrategy": { + "$ref": "OpportunisticMaintenanceStrategy", + "description": "Strategy that will trigger maintenance on behalf of the customer." + } + }, + "type": "object" + }, "HttpCacheControlResponseHeader": { "description": "RFC-2616: cache control support", "id": "HttpCacheControlResponseHeader", @@ -4058,11 +4579,17 @@ "description": "Configuration for controlling how IPs are allocated in the cluster.", "id": "IPAllocationPolicy", "properties": { + "additionalPodRangesConfig": { + "$ref": "AdditionalPodRangesConfig", + "description": "Output only. [Output only] The additional pod ranges that are added to the cluster. These pod ranges can be used by new node pools to allocate pod IPs automatically. Once the range is removed it will not show up in IPAllocationPolicy.", + "readOnly": true + }, "allowRouteOverlap": { "description": "If true, allow allocation of cluster CIDR ranges that overlap with certain kinds of network routes. By default we do not allow cluster CIDR ranges to intersect with any user declared routes. With allow_route_overlap == true, we allow overlapping with CIDR ranges that are larger than the cluster CIDR range. If this field is set to true, then cluster and services CIDRs must be fully-specified (e.g. `10.96.0.0/14`, but not `/14`), which means: 1) When `use_ip_aliases` is true, `cluster_ipv4_cidr_block` and `services_ipv4_cidr_block` must be fully-specified. 2) When `use_ip_aliases` is false, `cluster.cluster_ipv4_cidr` muse be fully-specified.", "type": "boolean" }, "clusterIpv4Cidr": { + "deprecated": true, "description": "This field is deprecated, use cluster_ipv4_cidr_block.", "type": "string" }, @@ -4078,6 +4605,12 @@ "description": "Whether a new subnetwork will be created automatically for the cluster. This field is only applicable when `use_ip_aliases` is true.", "type": "boolean" }, + "defaultPodIpv4RangeUtilization": { + "description": "Output only. [Output only] The utilization of the cluster default IPv4 range for the pod. The ratio is Usage/[Total number of IPs in the secondary range], Usage=numNodes*numZones*podIPsPerNode.", + "format": "double", + "readOnly": true, + "type": "number" + }, "ipv6AccessType": { "description": "The ipv6 access type (internal or external) when create_subnetwork is true", "enum": [ @@ -4093,6 +4626,7 @@ "type": "string" }, "nodeIpv4Cidr": { + "deprecated": true, "description": "This field is deprecated, use node_ipv4_cidr_block.", "type": "string" }, @@ -4100,7 +4634,12 @@ "description": "The IP address range of the instance IPs in this cluster. This is applicable only if `create_subnetwork` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.", "type": "string" }, + "podCidrOverprovisionConfig": { + "$ref": "PodCIDROverprovisionConfig", + "description": "[PRIVATE FIELD] Pod CIDR size overprovisioning config for the cluster. Pod CIDR size per node depends on max_pods_per_node. By default, the value of max_pods_per_node is doubled and then rounded off to next power of 2 to get the size of pod CIDR block per node. Example: max_pods_per_node of 30 would result in 64 IPs (/26). This config can disable the doubling of IPs (we still round off to next power of 2) Example: max_pods_per_node of 30 will result in 32 IPs (/27) when overprovisioning is disabled." + }, "servicesIpv4Cidr": { + "deprecated": true, "description": "This field is deprecated, use services_ipv4_cidr_block.", "type": "string" }, @@ -4182,6 +4721,7 @@ "id": "IstioConfig", "properties": { "auth": { + "deprecated": true, "description": "The specified Istio auth mode, either none, or mutual TLS.", "enum": [ "AUTH_NONE", @@ -4194,6 +4734,7 @@ "type": "string" }, "disabled": { + "deprecated": true, "description": "Whether Istio is enabled for this cluster.", "type": "boolean" } @@ -4243,11 +4784,26 @@ }, "type": "object" }, + "K8sBetaAPIConfig": { + "description": "Kubernetes open source beta apis enabled on the cluster.", + "id": "K8sBetaAPIConfig", + "properties": { + "enabledApis": { + "description": "api name, e.g. storage.k8s.io/v1beta1/csistoragecapacities.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "KalmConfig": { "description": "Configuration options for the KALM addon.", "id": "KalmConfig", "properties": { "enabled": { + "deprecated": true, "description": "Whether KALM is enabled for this cluster.", "type": "boolean" } @@ -4401,7 +4957,7 @@ "id": "LocalNvmeSsdBlockConfig", "properties": { "localSsdCount": { - "description": "The number of raw-block local NVMe SSD disks to be attached to the node. Each local SSD is 375 GB in size. If zero, it means no raw-block local NVMe SSD disks to be attached to the node. The limit for this value is dependent upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information.", + "description": "Number of local NVMe SSDs to use. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn't support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info.", "format": "int32", "type": "integer" } @@ -4594,10 +5150,12 @@ "type": "string" }, "password": { + "deprecated": true, "description": "The password to use for HTTP basic authentication to the master endpoint. Because the master endpoint is open to the Internet, you should create a strong password. If a password is provided for cluster creation, username must be non-empty. Warning: basic authentication is deprecated, and will be removed in GKE control plane versions 1.19 and newer. For a list of recommended authentication methods, see: https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication", "type": "string" }, "username": { + "deprecated": true, "description": "The username to use for HTTP basic authentication to the master endpoint. For clusters v1.6.0 and later, basic authentication can be disabled by leaving username unspecified (or setting it to the empty string). Warning: basic authentication is deprecated, and will be removed in GKE control plane versions 1.19 and newer. For a list of recommended authentication methods, see: https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication", "type": "string" } @@ -4687,7 +5245,27 @@ "WORKLOADS", "APISERVER", "SCHEDULER", - "CONTROLLER_MANAGER" + "CONTROLLER_MANAGER", + "STORAGE", + "HPA", + "POD", + "DAEMONSET", + "DEPLOYMENT", + "STATEFULSET" + ], + "enumDeprecated": [ + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "Default value. This shouldn't be used.", @@ -4695,7 +5273,13 @@ "Deprecated: Use Google Cloud Managed Service for Prometheus.", "kube-apiserver", "kube-scheduler", - "kube-controller-manager" + "kube-controller-manager", + "Storage", + "Horizontal Pod Autoscaling", + "Pod", + "DaemonSet", + "Deployment", + "Statefulset" ], "type": "string" }, @@ -4708,6 +5292,10 @@ "description": "MonitoringConfig is cluster monitoring configuration.", "id": "MonitoringConfig", "properties": { + "advancedDatapathObservabilityConfig": { + "$ref": "AdvancedDatapathObservabilityConfig", + "description": "Configuration of Advanced Datapath Observability features." + }, "componentConfig": { "$ref": "MonitoringComponentConfig", "description": "Monitoring components configuration" @@ -4745,6 +5333,10 @@ "$ref": "DNSConfig", "description": "DNSConfig contains clusterDNS config for this cluster." }, + "enableFqdnNetworkPolicy": { + "description": "Whether FQDN Network Policy is enabled on this cluster.", + "type": "boolean" + }, "enableIntraNodeVisibility": { "description": "Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network.", "type": "boolean" @@ -4753,14 +5345,36 @@ "description": "Whether L4ILB Subsetting is enabled for this cluster.", "type": "boolean" }, + "enableMultiNetworking": { + "description": "Whether multi-networking is enabled for this cluster.", + "type": "boolean" + }, "gatewayApiConfig": { "$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" }, + "networkPerformanceConfig": { + "$ref": "ClusterNetworkPerformanceConfig", + "description": "Network bandwidth tier configuration." + }, "privateIpv6GoogleAccess": { "description": "The desired state of IPv6 connectivity to Google Services. By default, no private IPv6 access to or from Google Services (all access will be via IPv4)", "enum": [ @@ -4773,7 +5387,7 @@ "Default value. Same as DISABLED", "No private access to or from Google Services", "Enables private IPv6 access to Google Services from GKE", - "Enables priate IPv6 access to and from Google Services" + "Enables private IPv6 access to and from Google Services" ], "type": "string" }, @@ -4867,6 +5481,38 @@ }, "type": "object" }, + "NodeAffinity": { + "description": "Specifies the NodeAffinity key, values, and affinity operator according to [shared sole tenant node group affinities](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity).", + "id": "NodeAffinity", + "properties": { + "key": { + "description": "Key for NodeAffinity.", + "type": "string" + }, + "operator": { + "description": "Operator for NodeAffinity.", + "enum": [ + "OPERATOR_UNSPECIFIED", + "IN", + "NOT_IN" + ], + "enumDescriptions": [ + "Invalid or unspecified affinity operator.", + "Affinity operator.", + "Anti-affinity operator." + ], + "type": "string" + }, + "values": { + "description": "Values for NodeAffinity.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "NodeConfig": { "description": "Parameters that describe the nodes in a cluster. GKE Autopilot clusters do not recognize parameters in `NodeConfig`. Use AutoprovisioningNodePoolDefaults instead.", "id": "NodeConfig", @@ -4899,6 +5545,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" + }, "ephemeralStorageConfig": { "$ref": "EphemeralStorageConfig", "description": "Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk." @@ -4919,8 +5569,12 @@ "$ref": "VirtualNIC", "description": "Enable or disable gvnic on the node pool." }, + "hostMaintenancePolicy": { + "$ref": "HostMaintenancePolicy", + "description": "HostMaintenancePolicy contains the desired maintenance policy for the Google Compute Engine hosts." + }, "imageType": { - "description": "The image type to use for this node. Note that for a given image type, the latest version of it will be used.", + "description": "The image type to use for this node. Note that for a given image type, the latest version of it will be used. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types.", "type": "string" }, "kubeletConfig": { @@ -4978,7 +5632,7 @@ "type": "array" }, "preemptible": { - "description": "Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.", + "description": "Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more information about preemptible VM instances.", "type": "boolean" }, "reservationAffinity": { @@ -4992,10 +5646,21 @@ "description": "The resource labels for the node pool to use to annotate any related Google Compute Engine resources.", "type": "object" }, + "resourceManagerTags": { + "$ref": "ResourceManagerTags", + "description": "A map of resource manager tag keys and values to be attached to the nodes." + }, "sandboxConfig": { "$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" @@ -5004,6 +5669,10 @@ "$ref": "ShieldedInstanceConfig", "description": "Shielded Instance options." }, + "soleTenantConfig": { + "$ref": "SoleTenantConfig", + "description": "Parameters for node pools to be backed by shared sole tenant node groups." + }, "spot": { "description": "Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible flag.", "type": "boolean" @@ -5041,6 +5710,10 @@ "$ref": "GcfsConfig", "description": "GCFS (Google Container File System, also known as Riptide) options." }, + "hostMaintenancePolicy": { + "$ref": "HostMaintenancePolicy", + "description": "HostMaintenancePolicy contains the desired maintenance policy for the Google Compute Engine hosts." + }, "loggingConfig": { "$ref": "NodePoolLoggingConfig", "description": "Logging configuration for node pools." @@ -5064,6 +5737,10 @@ "description": "Control the CPU management policy on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. * \"none\": the default, which represents the existing scheduling behavior. * \"static\": allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is 'none' if unspecified.", "type": "string" }, + "insecureKubeletReadonlyPortEnabled": { + "description": "Enable or disable Kubelet read only port.", + "type": "boolean" + }, "podPidsLimit": { "description": "Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304.", "format": "int64", @@ -5109,6 +5786,20 @@ "description": "Parameters for node pool-level network config.", "id": "NodeNetworkConfig", "properties": { + "additionalNodeNetworkConfigs": { + "description": "We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface", + "items": { + "$ref": "AdditionalNodeNetworkConfig" + }, + "type": "array" + }, + "additionalPodNetworkConfigs": { + "description": "We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node", + "items": { + "$ref": "AdditionalPodNetworkConfig" + }, + "type": "array" + }, "createPodRange": { "description": "Input only. Whether to create a new range for pod IPs in this node pool. Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they are not specified. If neither `create_pod_range` or `pod_range` are specified, the cluster-level default (`ip_allocation_policy.cluster_ipv4_cidr_block`) is used. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.", "type": "boolean" @@ -5121,10 +5812,20 @@ "$ref": "NetworkPerformanceConfig", "description": "Network bandwidth tier configuration." }, + "podCidrOverprovisionConfig": { + "$ref": "PodCIDROverprovisionConfig", + "description": "[PRIVATE FIELD] Pod CIDR size overprovisioning config for the nodepool. Pod CIDR size per node depends on max_pods_per_node. By default, the value of max_pods_per_node is rounded off to next power of 2 and we then double that to get the size of pod CIDR block per node. Example: max_pods_per_node of 30 would result in 64 IPs (/26). This config can disable the doubling of IPs (we still round off to next power of 2) Example: max_pods_per_node of 30 will result in 32 IPs (/27) when overprovisioning is disabled." + }, "podIpv4CidrBlock": { "description": "The IP address range for pod IPs in this node pool. Only applicable if `create_pod_range` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) to pick a specific range to use. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.", "type": "string" }, + "podIpv4RangeUtilization": { + "description": "Output only. [Output only] The utilization of the IPv4 range for the pod. The ratio is Usage/[Total number of IPs in the secondary range], Usage=numNodes*numZones*podIPsPerNode.", + "format": "double", + "readOnly": true, + "type": "number" + }, "podRange": { "description": "The ID of the secondary range for pod IPs. If `create_pod_range` is true, this ID is used for the new range. If `create_pod_range` is false, uses an existing secondary range with this ID. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.", "type": "string" @@ -5133,13 +5834,17 @@ "type": "object" }, "NodePool": { - "description": "NodePool contains the name and configuration for a cluster's node pool. Node pools are a set of nodes (i.e. VM's), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload. These upgrade settings control the level of parallelism and the level of disruption caused by an upgrade. maxUnavailable controls the number of nodes that can be simultaneously unavailable. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). Note: upgrades inevitably introduce some disruption since workloads need to be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the same time. This ensures that there are always at least 4 nodes available.", + "description": "NodePool contains the name and configuration for a cluster's node pool. Node pools are a set of nodes (i.e. VM's), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload.", "id": "NodePool", "properties": { "autoscaling": { "$ref": "NodePoolAutoscaling", "description": "Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present." }, + "bestEffortProvisioning": { + "$ref": "BestEffortProvisioning", + "description": "Enable best effort provisioning for nodes" + }, "conditions": { "description": "Which conditions caused the current node pool state.", "items": { @@ -5199,6 +5904,10 @@ "format": "int32", "type": "integer" }, + "queuedProvisioning": { + "$ref": "QueuedProvisioning", + "description": "Specifies the configuration of queued provisioning." + }, "selfLink": { "description": "[Output only] Server-defined URL for the resource.", "type": "string" @@ -5226,6 +5935,7 @@ "type": "string" }, "statusMessage": { + "deprecated": true, "description": "[Output only] Deprecated. Use conditions instead. Additional information about the current status of this node pool instance, if available.", "type": "string" }, @@ -5239,7 +5949,7 @@ "description": "Upgrade settings control disruption and speed of the upgrade." }, "version": { - "description": "The version of the Kubernetes of this node.", + "description": "The version of Kubernetes running on this NodePool's nodes. If unspecified, it defaults as described [here](https://cloud.google.com/kubernetes-engine/versioning#specifying_node_version).", "type": "string" } }, @@ -5252,6 +5962,10 @@ "networkTags": { "$ref": "NetworkTags", "description": "The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster creation. Each tag within the list must comply with RFC1035." + }, + "resourceManagerTags": { + "$ref": "ResourceManagerTags", + "description": "Resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies." } }, "type": "object" @@ -5328,7 +6042,7 @@ "type": "object" }, "NodeTaint": { - "description": "Kubernetes taint is comprised of three fields: key, value, and effect. Effect can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration) for more information, including usage and the valid values.", + "description": "Kubernetes taint is composed of three fields: key, value, and effect. Effect can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration) for more information, including usage and the valid values.", "id": "NodeTaint", "properties": { "effect": { @@ -5388,6 +6102,7 @@ "id": "Operation", "properties": { "clusterConditions": { + "deprecated": true, "description": "Which conditions caused the current cluster state. Deprecated. Use field error instead.", "items": { "$ref": "StatusCondition" @@ -5415,6 +6130,7 @@ "type": "string" }, "nodepoolConditions": { + "deprecated": true, "description": "Which conditions caused the current node pool state. Deprecated. Use field error instead.", "items": { "$ref": "StatusCondition" @@ -5440,26 +6156,51 @@ "SET_MASTER_AUTH", "SET_NODE_POOL_SIZE", "SET_NETWORK_POLICY", - "SET_MAINTENANCE_POLICY" + "SET_MAINTENANCE_POLICY", + "RESIZE_CLUSTER", + "FLEET_FEATURE_UPGRADE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true, + true, + true, + false, + true, + true, + false, + false ], "enumDescriptions": [ "Not set.", - "Cluster create.", - "Cluster delete.", - "A master upgrade.", - "A node upgrade.", - "Cluster repair.", - "Cluster update.", - "Node pool create.", - "Node pool delete.", - "Set node pool management.", - "Automatic node pool repair.", - "Automatic node upgrade.", - "Set labels.", - "Set/generate master auth materials", - "Set node pool size.", - "Updates network policy for a cluster.", - "Set the maintenance policy." + "The cluster is being created. The cluster should be assumed to be unusable until the operation finishes. In the event of the operation failing, the cluster will enter the ERROR state and eventually be deleted.", + "The cluster is being deleted. The cluster should be assumed to be unusable as soon as this operation starts. In the event of the operation failing, the cluster will enter the ERROR state and the deletion will be automatically retried until completed.", + "The cluster version is being updated. Note that this includes \"upgrades\" to the same version, which are simply a recreation. This also includes [auto-upgrades](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-upgrades#upgrading_automatically). For more details, see [documentation on cluster upgrades](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-upgrades#cluster_upgrades).", + "A node pool is being updated. Despite calling this an \"upgrade\", this includes most forms of updates to node pools. This also includes [auto-upgrades](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-upgrades). This operation sets the progress field and may be canceled. The upgrade strategy depends on [node pool configuration](https://cloud.google.com/kubernetes-engine/docs/concepts/node-pool-upgrade-strategies). The nodes are generally still usable during this operation.", + "A problem has been detected with the control plane and is being repaired. This operation type is initiated by GKE. For more details, see [documentation on repairs](https://cloud.google.com/kubernetes-engine/docs/concepts/maintenance-windows-and-exclusions#repairs).", + "The cluster is being updated. This is a broad category of operations and includes operations that only change metadata as well as those that must recreate the entire cluster. If the control plane must be recreated, this will cause temporary downtime for zonal clusters. Some features require recreating the nodes as well. Those will be recreated as separate operations and the update may not be completely functional until the node pools recreations finish. Node recreations will generally follow [maintenance policies](https://cloud.google.com/kubernetes-engine/docs/concepts/maintenance-windows-and-exclusions). Some GKE-initiated operations use this type. This includes certain types of auto-upgrades and incident mitigations.", + "A node pool is being created. The node pool should be assumed to be unusable until this operation finishes. In the event of an error, the node pool may be partially created. If enabled, [node autoprovisioning](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-provisioning) may have automatically initiated such operations.", + "The node pool is being deleted. The node pool should be assumed to be unusable as soon as this operation starts.", + "The node pool's manamagent field is being updated. These operations only update metadata and may be concurrent with most other operations.", + "A problem has been detected with nodes and [they are being repaired](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-repair). This operation type is initiated by GKE, typically automatically. This operation may be concurrent with other operations and there may be multiple repairs occurring on the same node pool.", + "Unused. Automatic node upgrade uses UPGRADE_NODES.", + "Unused. Updating labels uses UPDATE_CLUSTER.", + "Unused. Updating master auth uses UPDATE_CLUSTER.", + "The node pool is being resized. With the exception of resizing to or from size zero, the node pool is generally usable during this operation.", + "Unused. Updating network policy uses UPDATE_CLUSTER.", + "Unused. Updating maintenance policy uses UPDATE_CLUSTER.", + "The control plane is being resized. This operation type is initiated by GKE. These operations are often performed preemptively to ensure that the control plane has sufficient resources and is not typically an indication of issues. For more details, see [documentation on resizes](https://cloud.google.com/kubernetes-engine/docs/concepts/maintenance-windows-and-exclusions#repairs).", + "Fleet features of GKE Enterprise are being upgraded. The cluster should be assumed to be blocked for other upgrades until the operation finishes." ], "type": "string" }, @@ -5469,7 +6210,7 @@ "readOnly": true }, "selfLink": { - "description": "Server-defined URL for the resource.", + "description": "Server-defined URI for the operation. Example: `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`.", "type": "string" }, "startTime": { @@ -5495,15 +6236,17 @@ "type": "string" }, "statusMessage": { + "deprecated": true, "description": "Output only. If an error has occurred, a textual description of the error. Deprecated. Use field error instead.", "readOnly": true, "type": "string" }, "targetLink": { - "description": "Server-defined URL for the target of the operation.", + "description": "Server-defined URI for the target of the operation. The format of this is a URI to the resource being modified (such as a cluster, node pool, or node). For node pool repairs, there may be multiple nodes being repaired, but only one will be the target. Examples: - ## `https://container.googleapis.com/v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`", "type": "string" }, "zone": { + "deprecated": true, "description": "The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation is taking place. This field is deprecated, use location instead.", "type": "string" } @@ -5553,10 +6296,58 @@ }, "type": "object" }, + "OpportunisticMaintenanceStrategy": { + "description": "Strategy that will trigger maintenance on behalf of the customer.", + "id": "OpportunisticMaintenanceStrategy", + "properties": { + "maintenanceAvailabilityWindow": { + "description": "The window of time that opportunistic maintenance can run. Example: A setting of 14 days implies that opportunistic maintenance can only be ran in the 2 weeks leading up to the scheduled maintenance date. Setting 28 days allows opportunistic maintenance to run at any time in the scheduled maintenance window (all `PERIODIC` maintenance is set 28 days in advance).", + "format": "google-duration", + "type": "string" + }, + "minNodesPerPool": { + "description": "The minimum nodes required to be available in a pool. Blocks maintenance if it would cause the number of running nodes to dip below this value.", + "format": "int64", + "type": "string" + }, + "nodeIdleTimeWindow": { + "description": "The amount of time that a node can remain idle (no customer owned workloads running), before triggering maintenance.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "ParentProductConfig": { + "description": "ParentProductConfig is the configuration of the parent product of the cluster. This field is used by Google internal products that are built on top of a GKE cluster and take the ownership of the cluster.", + "id": "ParentProductConfig", + "properties": { + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels contain the configuration of the parent product.", + "type": "object" + }, + "productName": { + "description": "Name of the parent product associated with the cluster.", + "type": "string" + } + }, + "type": "object" + }, "PlacementPolicy": { "description": "PlacementPolicy defines the placement policy used by the node pool.", "id": "PlacementPolicy", "properties": { + "policyName": { + "description": "If set, refers to the name of a custom resource policy supplied by the user. The resource policy must be in the same project and region as the node pool. If not found, InvalidArgument error is returned.", + "type": "string" + }, + "tpuTopology": { + "description": "TPU placement topology for pod slice node pool. https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies", + "type": "string" + }, "type": { "description": "The type of placement.", "enum": [ @@ -5572,6 +6363,17 @@ }, "type": "object" }, + "PodCIDROverprovisionConfig": { + "description": "[PRIVATE FIELD] Config for pod CIDR size overprovisioning.", + "id": "PodCIDROverprovisionConfig", + "properties": { + "disable": { + "description": "Whether Pod CIDR overprovisioning is disabled. Note: Pod CIDR overprovisioning is enabled by default.", + "type": "boolean" + } + }, + "type": "object" + }, "PodSecurityPolicyConfig": { "description": "Configuration for the PodSecurityPolicy feature.", "id": "PodSecurityPolicyConfig", @@ -5583,6 +6385,17 @@ }, "type": "object" }, + "PolicyBinding": { + "description": "Binauthz policy that applies to this cluster.", + "id": "PolicyBinding", + "properties": { + "name": { + "description": "The relative resource name of the binauthz platform policy to audit. GKE platform policies have the following format: `projects/{project_number}/platforms/gke/policies/{policy_id}`.", + "type": "string" + } + }, + "type": "object" + }, "PrivateClusterConfig": { "description": "Configuration options for private clusters.", "id": "PrivateClusterConfig", @@ -5677,6 +6490,35 @@ }, "type": "object" }, + "QueuedProvisioning": { + "description": "QueuedProvisioning defines the queued provisioning used by the node pool.", + "id": "QueuedProvisioning", + "properties": { + "enabled": { + "description": "Denotes that this nodepool is QRM specific, meaning nodes can be only obtained through queuing via the Cluster Autoscaler ProvisioningRequest API.", + "type": "boolean" + } + }, + "type": "object" + }, + "RangeInfo": { + "description": "RangeInfo contains the range name and the range utilization by this cluster.", + "id": "RangeInfo", + "properties": { + "rangeName": { + "description": "Output only. [Output only] Name of a range.", + "readOnly": true, + "type": "string" + }, + "utilization": { + "description": "Output only. [Output only] The utilization of the range.", + "format": "double", + "readOnly": true, + "type": "number" + } + }, + "type": "object" + }, "RecurringTimeWindow": { "description": "Represents an arbitrary window of time that recurs.", "id": "RecurringTimeWindow", @@ -5720,6 +6562,7 @@ "id": "ReleaseChannelConfig", "properties": { "availableVersions": { + "deprecated": true, "description": "Deprecated. This field has been deprecated and replaced with the valid_versions field.", "items": { "$ref": "AvailableVersion" @@ -5825,6 +6668,20 @@ }, "type": "object" }, + "ResourceManagerTags": { + "description": "A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications in https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values.", + "id": "ResourceManagerTags", + "properties": { + "tags": { + "additionalProperties": { + "type": "string" + }, + "description": "Tags must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2. `{org_id}/{tag_key_name}={tag_value_name}` 3. `{project_id}/{tag_key_name}={tag_value_name}`", + "type": "object" + } + }, + "type": "object" + }, "ResourceUsageExportConfig": { "description": "Configuration for exporting cluster resource usages.", "id": "ResourceUsageExportConfig", @@ -5849,6 +6706,7 @@ "id": "RollbackNodePoolUpgradeRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster to rollback. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -5857,10 +6715,12 @@ "type": "string" }, "nodePoolId": { + "deprecated": true, "description": "Required. Deprecated. The name of the node pool to rollback. This field has been deprecated and replaced by the name field.", "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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" }, @@ -5869,6 +6729,7 @@ "type": "boolean" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -5880,6 +6741,7 @@ "id": "SandboxConfig", "properties": { "sandboxType": { + "deprecated": true, "description": "Type of the sandbox to use for the node (e.g. 'gvisor')", "type": "string" }, @@ -5898,6 +6760,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", @@ -5954,6 +6839,43 @@ }, "type": "object" }, + "SecurityPostureConfig": { + "description": "SecurityPostureConfig defines the flags needed to enable/disable features for the Security Posture API.", + "id": "SecurityPostureConfig", + "properties": { + "mode": { + "description": "Sets which mode to use for Security Posture features.", + "enum": [ + "MODE_UNSPECIFIED", + "DISABLED", + "BASIC" + ], + "enumDescriptions": [ + "Default value not specified.", + "Disables Security Posture features on the cluster.", + "Applies Security Posture features on the cluster." + ], + "type": "string" + }, + "vulnerabilityMode": { + "description": "Sets which mode to use for vulnerability scanning.", + "enum": [ + "VULNERABILITY_MODE_UNSPECIFIED", + "VULNERABILITY_DISABLED", + "VULNERABILITY_BASIC", + "VULNERABILITY_ENTERPRISE" + ], + "enumDescriptions": [ + "Default value not specified.", + "Disables 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" + } + }, + "type": "object" + }, "ServerConfig": { "description": "Kubernetes Engine service configuration.", "id": "ServerConfig", @@ -6024,6 +6946,7 @@ "description": "Required. The desired configurations for the various addons available to run in the cluster." }, "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6032,10 +6955,12 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -6047,6 +6972,7 @@ "id": "SetLabelsRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6059,6 +6985,7 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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" }, @@ -6070,6 +6997,7 @@ "type": "object" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -6081,6 +7009,7 @@ "id": "SetLegacyAbacRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster to update. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6093,10 +7022,12 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -6108,6 +7039,7 @@ "id": "SetLocationsRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6123,10 +7055,12 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -6138,6 +7072,7 @@ "id": "SetLoggingServiceRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6150,10 +7085,12 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -6208,6 +7145,7 @@ "type": "string" }, "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6216,6 +7154,7 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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" }, @@ -6224,6 +7163,7 @@ "description": "Required. A description of the update." }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -6235,6 +7175,7 @@ "id": "SetMonitoringServiceRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6247,10 +7188,12 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -6262,6 +7205,7 @@ "id": "SetNetworkPolicyRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6274,10 +7218,12 @@ "description": "Required. Configuration options for the NetworkPolicy feature." }, "projectId": { + "deprecated": true, "description": "Required. 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" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -6293,6 +7239,7 @@ "description": "Required. Autoscaling configuration for the node pool." }, "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6301,14 +7248,17 @@ "type": "string" }, "nodePoolId": { + "deprecated": true, "description": "Required. Deprecated. The name of the node pool to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -6320,6 +7270,7 @@ "id": "SetNodePoolManagementRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster to update. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6332,14 +7283,17 @@ "type": "string" }, "nodePoolId": { + "deprecated": true, "description": "Required. Deprecated. The name of the node pool to update. This field has been deprecated and replaced by the name field.", "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -6351,6 +7305,7 @@ "id": "SetNodePoolSizeRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster to update. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6364,14 +7319,17 @@ "type": "integer" }, "nodePoolId": { + "deprecated": true, "description": "Required. Deprecated. The name of the node pool to update. This field has been deprecated and replaced by the name field.", "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -6404,6 +7362,20 @@ }, "type": "object" }, + "SoleTenantConfig": { + "description": "SoleTenantConfig contains the NodeAffinities to specify what shared sole tenant node groups should back the node pool.", + "id": "SoleTenantConfig", + "properties": { + "nodeAffinities": { + "description": "NodeAffinities used to match to a shared sole tenant node group.", + "items": { + "$ref": "NodeAffinity" + }, + "type": "array" + } + }, + "type": "object" + }, "StandardRolloutPolicy": { "description": "Standard rollout policy is the default policy for blue-green.", "id": "StandardRolloutPolicy", @@ -6431,6 +7403,7 @@ "id": "StartIPRotationRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6439,6 +7412,7 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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" }, @@ -6447,12 +7421,24 @@ "type": "boolean" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } }, "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", @@ -6527,6 +7513,7 @@ "type": "string" }, "code": { + "deprecated": true, "description": "Machine-friendly representation of the condition Deprecated. Use canonical_code instead.", "enum": [ "UNKNOWN", @@ -6600,6 +7587,7 @@ "id": "UpdateClusterRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6608,6 +7596,7 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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" }, @@ -6616,6 +7605,7 @@ "description": "Required. A description of the update." }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -6638,6 +7628,7 @@ "id": "UpdateMasterRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6650,10 +7641,12 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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" }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -6665,6 +7658,7 @@ "id": "UpdateNodePoolRequest", "properties": { "clusterId": { + "deprecated": true, "description": "Required. Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6672,6 +7666,15 @@ "$ref": "ConfidentialNodes", "description": "Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled." }, + "diskSizeGb": { + "description": "Optional. The desired disk size for nodes in the node pool. Initiates an upgrade operation that migrates the nodes in the node pool to the specified disk size.", + "format": "int64", + "type": "string" + }, + "diskType": { + "description": "Optional. The desired disk type for nodes in the node pool. Initiates an upgrade operation that migrates the nodes in the node pool to the specified disk type.", + "type": "string" + }, "etag": { "description": "The current etag of the node pool. If an etag is provided and does not match the current etag of the node pool, update will be blocked and an ABORTED error will be returned.", "type": "string" @@ -6689,7 +7692,7 @@ "description": "Enable or disable gvnic on the node pool." }, "imageType": { - "description": "Required. The desired image type for the node pool.", + "description": "Required. The desired image type for the node pool. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types.", "type": "string" }, "kubeletConfig": { @@ -6715,6 +7718,10 @@ "$ref": "NodePoolLoggingConfig", "description": "Logging configuration." }, + "machineType": { + "description": "Optional. The desired machine type for nodes in the node pool. Initiates an upgrade operation that migrates the nodes in the node pool to the specified machine type.", + "type": "string" + }, "name": { "description": "The name (project, location, cluster, node pool) of the node pool to update. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.", "type": "string" @@ -6724,6 +7731,7 @@ "description": "Node network config." }, "nodePoolId": { + "deprecated": true, "description": "Required. Deprecated. The name of the node pool to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, @@ -6732,13 +7740,22 @@ "type": "string" }, "projectId": { + "deprecated": true, "description": "Required. 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." }, + "resourceManagerTags": { + "$ref": "ResourceManagerTags", + "description": "Desired resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Existing tags will be replaced with new values." + }, "tags": { "$ref": "NetworkTags", "description": "The desired network tags to be applied to all nodes in the node pool. If this field is not present, the tags will not be changed. Otherwise, the existing network tags will be *replaced* with the provided tags." @@ -6760,6 +7777,7 @@ "description": "The desired workload metadata config for the node pool." }, "zone": { + "deprecated": true, "description": "Required. Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", "type": "string" } @@ -6846,7 +7864,7 @@ "type": "object" }, "UpgradeSettings": { - "description": "These upgrade settings configure the upgrade strategy for the node pool. Use strategy to switch between the strategies applied to the node pool. If the strategy is SURGE, use max_surge and max_unavailable to control the level of parallelism and the level of disruption caused by upgrade. 1. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. 2. maxUnavailable controls the number of nodes that can be simultaneously unavailable. 3. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). If the strategy is BLUE_GREEN, use blue_green_settings to configure the blue-green upgrade related settings. 1. standard_rollout_policy is the default policy. The policy is used to control the way blue pool gets drained. The draining is executed in the batch mode. The batch size could be specified as either percentage of the node pool size or the number of nodes. batch_soak_duration is the soak time after each batch gets drained. 2. node_pool_soak_duration is the soak time after all blue nodes are drained. After this period, the blue pool nodes will be deleted.", + "description": "These upgrade settings control the level of parallelism and the level of disruption caused by an upgrade. maxUnavailable controls the number of nodes that can be simultaneously unavailable. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). Note: upgrades inevitably introduce some disruption since workloads need to be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the same time. This ensures that there are always at least 4 nodes available. These upgrade settings configure the upgrade strategy for the node pool. Use strategy to switch between the strategies applied to the node pool. If the strategy is SURGE, use max_surge and max_unavailable to control the level of parallelism and the level of disruption caused by upgrade. 1. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. 2. maxUnavailable controls the number of nodes that can be simultaneously unavailable. 3. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). If the strategy is BLUE_GREEN, use blue_green_settings to configure the blue-green upgrade related settings. 1. standard_rollout_policy is the default policy. The policy is used to control the way blue pool gets drained. The draining is executed in the batch mode. The batch size could be specified as either percentage of the node pool size or the number of nodes. batch_soak_duration is the soak time after each batch gets drained. 2. node_pool_soak_duration is the soak time after all blue nodes are drained. After this period, the blue pool nodes will be deleted.", "id": "UpgradeSettings", "properties": { "blueGreenSettings": { @@ -6871,7 +7889,7 @@ "SURGE" ], "enumDescriptions": [ - "Default value.", + "Default value if unset. GKE internally defaults the update strategy to SURGE for unspecified strategies.", "blue-green upgrade.", "SURGE is the traditional way of upgrading a node pool. max_surge and max_unavailable determines the level of upgrade parallelism." ], @@ -7054,6 +8072,13 @@ "BASELINE", "RESTRICTED" ], + "enumDeprecated": [ + false, + false, + false, + true, + true + ], "enumDescriptions": [ "Default value meaning that no mode has been specified.", "This disables Workload Configuration auditing on the cluster, meaning that nothing is surfaced.", @@ -7071,6 +8096,7 @@ "id": "WorkloadIdentityConfig", "properties": { "identityNamespace": { + "deprecated": true, "description": "IAM Identity Namespace to attach all Kubernetes Service Accounts to.", "type": "string" }, @@ -7104,6 +8130,7 @@ "type": "string" }, "nodeMetadata": { + "deprecated": true, "description": "NodeMetadata is the configuration for how to expose metadata to the workloads running on the node.", "enum": [ "UNSPECIFIED", @@ -7121,6 +8148,17 @@ } }, "type": "object" + }, + "WorkloadPolicyConfig": { + "description": "WorkloadPolicyConfig is the configuration of workload policy for autopilot clusters.", + "id": "WorkloadPolicyConfig", + "properties": { + "allowNetAdmin": { + "description": "If true, workloads can use NET_ADMIN capability.", + "type": "boolean" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/containeranalysis/v1/containeranalysis-api.json b/etc/api/containeranalysis/v1/containeranalysis-api.json index ae86f5d1c9..36aee04d5a 100644 --- a/etc/api/containeranalysis/v1/containeranalysis-api.json +++ b/etc/api/containeranalysis/v1/containeranalysis-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://containeranalysis.googleapis.com/", "batchPath": "batch", "canonicalName": "Container Analysis", - "description": "An implementation of the Grafeas API, which stores, and enables querying and retrieval of critical metadata about all of your software artifacts.", + "description": "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.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/container-analysis/api/reference/rest/", "fullyEncodeReservedExpansion": true, @@ -751,11 +751,43 @@ ] } } + }, + "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" + ] + } + } } } } }, - "revision": "20230106", + "revision": "20240223", "rootUrl": "https://containeranalysis.googleapis.com/", "schemas": { "AliasContext": { @@ -820,6 +852,73 @@ }, "type": "object" }, + "Assessment": { + "description": "Assessment provides all information that is related to a single vulnerability for this product.", + "id": "Assessment", + "properties": { + "cve": { + "deprecated": true, + "description": "Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability. Deprecated: Use vulnerability_id instead to denote CVEs.", + "type": "string" + }, + "impacts": { + "description": "Contains information about the impact of this vulnerability, this will change with time.", + "items": { + "type": "string" + }, + "type": "array" + }, + "justification": { + "$ref": "Justification", + "description": "Justification provides the justification when the state of the assessment if NOT_AFFECTED." + }, + "longDescription": { + "description": "A detailed description of this Vex.", + "type": "string" + }, + "relatedUris": { + "description": "Holds a list of references associated with this vulnerability item and assessment. These uris have additional information about the vulnerability and the assessment itself. E.g. Link to a document which details how this assessment concluded the state of this vulnerability.", + "items": { + "$ref": "RelatedUrl" + }, + "type": "array" + }, + "remediations": { + "description": "Specifies details on how to handle (and presumably, fix) a vulnerability.", + "items": { + "$ref": "Remediation" + }, + "type": "array" + }, + "shortDescription": { + "description": "A one sentence description of this Vex.", + "type": "string" + }, + "state": { + "description": "Provides the state of this Vulnerability assessment.", + "enum": [ + "STATE_UNSPECIFIED", + "AFFECTED", + "NOT_AFFECTED", + "FIXED", + "UNDER_INVESTIGATION" + ], + "enumDescriptions": [ + "No state is specified.", + "This product is known to be affected by this vulnerability.", + "This product is known to be not affected by this vulnerability.", + "This product contains a fix for this vulnerability.", + "It is not known yet whether these versions are or are not affected by the vulnerability. However, it is still under investigation." + ], + "type": "string" + }, + "vulnerabilityId": { + "description": "The vulnerability identifier for this Assessment. Will hold one of common identifiers e.g. CVE, GHSA etc.", + "type": "string" + } + }, + "type": "object" + }, "AttestationNote": { "description": "Note kind that represents a logical attestation \"role\" or \"authority\". For example, an organization might have one `Authority` for \"QA\" and one for \"build\". This note is intended to act strictly as a grouping mechanism for the attached occurrences (Attestations). This grouping mechanism also provides a security boundary, since IAM ACLs gate the ability for a principle to attach an occurrence to a given note. It also provides a single point of lookup to find all attached attestation occurrences, even if they don't all live in the same project.", "id": "AttestationNote", @@ -922,14 +1021,60 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" + }, + "BuildDefinition": { + "id": "BuildDefinition", + "properties": { + "buildType": { + "type": "string" + }, + "externalParameters": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "internalParameters": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "resolvedDependencies": { + "items": { + "$ref": "ResourceDescriptor" + }, + "type": "array" + } + }, + "type": "object" + }, + "BuildMetadata": { + "id": "BuildMetadata", + "properties": { + "finishedOn": { + "format": "google-datetime", + "type": "string" + }, + "invocationId": { + "type": "string" + }, + "startedOn": { + "format": "google-datetime", "type": "string" } }, @@ -950,6 +1095,10 @@ "description": "Details of a build occurrence.", "id": "BuildOccurrence", "properties": { + "inTotoSlsaProvenanceV1": { + "$ref": "InTotoSlsaProvenanceV1", + "description": "In-Toto Slsa Provenance V1 represents a slsa provenance meeting the slsa spec, wrapped in an in-toto statement. This allows for direct jsonification of a to-spec in-toto slsa statement with a to-spec slsa provenance." + }, "intotoProvenance": { "$ref": "InTotoProvenance", "description": "Deprecated. See InTotoStatement for the replacement. In-toto Provenance representation as defined in spec." @@ -1041,7 +1190,7 @@ "type": "object" }, "BuildStep": { - "description": "A step in the build pipeline. Next ID: 20", + "description": "A step in the build pipeline. Next ID: 21", "id": "BuildStep", "properties": { "allowExitCodes": { @@ -1063,6 +1212,10 @@ }, "type": "array" }, + "automapSubstitutions": { + "description": "Option to include built-in and custom substitutions as env variables for this build step. This option will override the global option in BuildOption.", + "type": "boolean" + }, "dir": { "description": "Working directory to use when running this step's container. If this value is a relative path, it is relative to the build's working directory. If this value is absolute, it may be outside the build's working directory, in which case the contents of the path may not be persisted across build step executions, unless a `volume` for that path is specified. If the build specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies an absolute path, the `RepoSource` `dir` is ignored for the step's execution.", "type": "string" @@ -1179,9 +1332,11 @@ "enum": [ "ATTACK_COMPLEXITY_UNSPECIFIED", "ATTACK_COMPLEXITY_LOW", - "ATTACK_COMPLEXITY_HIGH" + "ATTACK_COMPLEXITY_HIGH", + "ATTACK_COMPLEXITY_MEDIUM" ], "enumDescriptions": [ + "", "", "", "" @@ -1226,9 +1381,13 @@ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", - "IMPACT_NONE" + "IMPACT_NONE", + "IMPACT_PARTIAL", + "IMPACT_COMPLETE" ], "enumDescriptions": [ + "", + "", "", "", "", @@ -1246,9 +1405,13 @@ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", - "IMPACT_NONE" + "IMPACT_NONE", + "IMPACT_PARTIAL", + "IMPACT_COMPLETE" ], "enumDescriptions": [ + "", + "", "", "", "", @@ -1269,9 +1432,13 @@ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", - "IMPACT_NONE" + "IMPACT_NONE", + "IMPACT_PARTIAL", + "IMPACT_COMPLETE" ], "enumDescriptions": [ + "", + "", "", "", "", @@ -1524,6 +1691,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", @@ -1724,6 +1897,13 @@ }, "type": "array" }, + "npmPackages": { + "description": "A list of npm packages to be uploaded to Artifact Registry upon successful completion of all build steps. Npm packages in the specified paths will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any packages fail to be pushed, the build is marked FAILURE.", + "items": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsNpmPackage" + }, + "type": "array" + }, "objects": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects", "description": "A list of objects to be uploaded to Cloud Storage upon successful completion of all build steps. Files in the workspace matching specified paths globs will be uploaded to the specified Cloud Storage location using the builder service account's credentials. The location and generation of the uploaded objects will be stored in the Build resource's results field. If any objects fail to be pushed, the build is marked FAILURE." @@ -1788,6 +1968,21 @@ }, "type": "object" }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsNpmPackage": { + "description": "Npm package to upload to Artifact Registry upon successful completion of all build steps.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsNpmPackage", + "properties": { + "packagePath": { + "description": "Path to the package.json. e.g. workspace/path/to/package", + "type": "string" + }, + "repository": { + "description": "Artifact Registry repository, in the form \"https://$REGION-npm.pkg.dev/$PROJECT/$REPOSITORY\" Npm package in the workspace specified by path will be zipped and uploaded to Artifact Registry with this location as a prefix.", + "type": "string" + } + }, + "type": "object" + }, "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsPythonPackage": { "description": "Python package to upload to Artifact Registry upon successful completion of all build steps. A package can encapsulate multiple objects to be uploaded to a single repository.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsPythonPackage", @@ -1863,7 +2058,7 @@ "type": "string" }, "logsBucket": { - "description": "Google Cloud Storage bucket where logs should be written (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.", + "description": "Cloud Storage bucket where logs should be written (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.", "type": "string" }, "name": { @@ -1972,7 +2167,7 @@ "type": "array" }, "timeout": { - "description": "Amount of time that this build should be allowed to run, to second granularity. If this amount of time elapses, work on the build will cease and the build status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default time is ten minutes.", + "description": "Amount of time that this build should be allowed to run, to second granularity. If this amount of time elapses, work on the build will cease and the build status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default time is 60 minutes.", "format": "google-duration", "type": "string" }, @@ -2068,6 +2263,22 @@ "description": "Optional arguments to enable specific features of builds.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions", "properties": { + "automapSubstitutions": { + "description": "Option to include built-in and custom substitutions as env variables for all build steps.", + "type": "boolean" + }, + "defaultLogsBucketBehavior": { + "description": "Optional. Option to specify how default logs buckets are setup.", + "enum": [ + "DEFAULT_LOGS_BUCKET_BEHAVIOR_UNSPECIFIED", + "REGIONAL_USER_OWNED_BUCKET" + ], + "enumDescriptions": [ + "Unspecified.", + "Bucket is located in user-owned project in the same region as the build. The builder service account must have access to create and write to Cloud Storage buckets in the build project." + ], + "type": "string" + }, "diskSizeGb": { "description": "Requested disk size for the VM that runs the build. Note that this is *NOT* \"disk free\"; some of the space will be used by the operating system and build utilities. Also note that this is the minimum disk size that will be allocated for the build -- the build may run with a larger disk than requested. At present, the maximum disk size is 2000GB; builds that request more than the maximum are rejected with an error.", "format": "int64", @@ -2085,7 +2296,7 @@ "type": "array" }, "logStreamingOption": { - "description": "Option to define build log streaming behavior to Google Cloud Storage.", + "description": "Option to define build log streaming behavior to Cloud Storage.", "enum": [ "STREAM_DEFAULT", "STREAM_ON", @@ -2093,8 +2304,8 @@ ], "enumDescriptions": [ "Service may automatically determine build log streaming behavior.", - "Build logs should be streamed to Google Cloud Storage.", - "Build logs should not be streamed to Google Cloud Storage; they will be written when the build is completed." + "Build logs should be streamed to Cloud Storage.", + "Build logs should not be streamed to Cloud Storage; they will be written when the build is completed." ], "type": "string" }, @@ -2108,6 +2319,14 @@ "CLOUD_LOGGING_ONLY", "NONE" ], + "enumDeprecated": [ + false, + false, + false, + true, + false, + false + ], "enumDescriptions": [ "The service determines the logging mode. The default is `LEGACY`. Do not rely on the default logging behavior as it may change in the future.", "Build logs are stored in Cloud Logging and Cloud Storage.", @@ -2125,14 +2344,16 @@ "N1_HIGHCPU_8", "N1_HIGHCPU_32", "E2_HIGHCPU_8", - "E2_HIGHCPU_32" + "E2_HIGHCPU_32", + "E2_MEDIUM" ], "enumDescriptions": [ "Standard machine type.", "Highcpu machine with 8 CPUs.", "Highcpu machine with 32 CPUs.", "Highcpu e2 machine with 8 CPUs.", - "Highcpu e2 machine with 32 CPUs." + "Highcpu e2 machine with 32 CPUs.", + "E2 machine with 1 CPU." ], "type": "string" }, @@ -2165,12 +2386,14 @@ "enum": [ "NONE", "SHA256", - "MD5" + "MD5", + "SHA512" ], "enumDescriptions": [ "No hash requested.", "Use a sha256 hash.", - "Use a md5 hash." + "Use a md5 hash.", + "Use a sha512 hash." ], "type": "string" }, @@ -2196,6 +2419,7 @@ "type": "array" }, "workerPool": { + "deprecated": true, "description": "This field deprecated; please use `pool.name` instead.", "type": "string" } @@ -2236,6 +2460,10 @@ }, "type": "array" }, + "automapSubstitutions": { + "description": "Option to include built-in and custom substitutions as env variables for this build step. This option will override the global option in BuildOption.", + "type": "boolean" + }, "dir": { "description": "Working directory to use when running this step's container. If this value is a relative path, it is relative to the build's working directory. If this value is absolute, it may be outside the build's working directory, in which case the contents of the path may not be persisted across build step executions, unless a `volume` for that path is specified. If the build specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies an absolute path, the `RepoSource` `dir` is ignored for the step's execution.", "type": "string" @@ -2384,6 +2612,25 @@ }, "type": "object" }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository": { + "description": "Location of the source in a 2nd-gen Google Cloud Build repository resource.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository", + "properties": { + "dir": { + "description": "Directory, relative to the source root, in which to run the build.", + "type": "string" + }, + "repository": { + "description": "Required. Name of the Google Cloud Build repository, formatted as `projects/*/locations/*/connections/*/repositories/*`.", + "type": "string" + }, + "revision": { + "description": "The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.", + "type": "string" + } + }, + "type": "object" + }, "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes": { "description": "Container message for hashes of byte content of files, used in SourceProvenance messages to verify integrity of source input to the build.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes", @@ -2398,6 +2645,25 @@ }, "type": "object" }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource": { + "description": "Location of the source in any accessible Git repository.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource", + "properties": { + "dir": { + "description": "Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution.", + "type": "string" + }, + "revision": { + "description": "The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref. Cloud Build uses `git fetch` to fetch the revision from the Git repository; therefore make sure that the string you provide for `revision` is parsable by the command. For information on string values accepted by `git fetch`, see https://git-scm.com/docs/gitrevisions#_specifying_revisions. For information on `git fetch`, see https://git-scm.com/docs/git-fetch.", + "type": "string" + }, + "url": { + "description": "Location of the Git repo to build. This will be used as a `git remote`, see https://git-scm.com/docs/git-remote.", + "type": "string" + } + }, + "type": "object" + }, "ContaineranalysisGoogleDevtoolsCloudbuildV1Hash": { "description": "Container message for hash values.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Hash", @@ -2407,12 +2673,14 @@ "enum": [ "NONE", "SHA256", - "MD5" + "MD5", + "SHA512" ], "enumDescriptions": [ "No hash requested.", "Use a sha256 hash.", - "Use a md5 hash." + "Use a md5 hash.", + "Use a sha512 hash." ], "type": "string" }, @@ -2505,7 +2773,7 @@ "type": "array" }, "buildStepOutputs": { - "description": "List of build step outputs, produced by builder images, in the order corresponding to build step indices. [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders) can produce this output by writing to `$BUILDER_OUTPUT/output`. Only the first 4KB of data is stored.", + "description": "List of build step outputs, produced by builder images, in the order corresponding to build step indices. [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders) can produce this output by writing to `$BUILDER_OUTPUT/output`. Only the first 50KB of data is stored.", "items": { "format": "byte", "type": "string" @@ -2526,6 +2794,13 @@ }, "type": "array" }, + "npmPackages": { + "description": "Npm packages uploaded to Artifact Registry at the end of the build.", + "items": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedNpmPackage" + }, + "type": "array" + }, "numArtifacts": { "description": "Number of non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", "format": "int64", @@ -2600,17 +2875,25 @@ "description": "Location of the source in a supported storage service.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Source", "properties": { + "connectedRepository": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository", + "description": "Optional. If provided, get the source from this 2nd-gen Google Cloud Build repository resource." + }, + "gitSource": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource", + "description": "If provided, get the source from this Git repository." + }, "repoSource": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource", "description": "If provided, get the source from this location in a Cloud Source Repository." }, "storageSource": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource", - "description": "If provided, get the source from this location in Google Cloud Storage." + "description": "If provided, get the source from this location in Cloud Storage." }, "storageSourceManifest": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest", - "description": "If provided, get the source from this manifest in Google Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher)." + "description": "If provided, get the source from this manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher)." } }, "type": "object" @@ -2627,6 +2910,16 @@ "readOnly": true, "type": "object" }, + "resolvedConnectedRepository": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository", + "description": "Output only. A copy of the build's `source.connected_repository`, if exists, with any revisions resolved.", + "readOnly": true + }, + "resolvedGitSource": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource", + "description": "Output only. A copy of the build's `source.git_source`, if exists, with any revisions resolved.", + "readOnly": true + }, "resolvedRepoSource": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource", "description": "A copy of the build's `source.repo_source`, if exists, with any revisions resolved." @@ -2643,40 +2936,54 @@ "type": "object" }, "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource": { - "description": "Location of the source in an archive file in Google Cloud Storage.", + "description": "Location of the source in an archive file in Cloud Storage.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource", "properties": { "bucket": { - "description": "Google Cloud Storage bucket containing the source (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", + "description": "Cloud Storage bucket containing the source (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", "type": "string" }, "generation": { - "description": "Google Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", + "description": "Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", "format": "int64", "type": "string" }, "object": { - "description": "Google Cloud Storage object containing the source. This object must be a zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.", + "description": "Cloud Storage object containing the source. This object must be a zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.", + "type": "string" + }, + "sourceFetcher": { + "description": "Optional. Option to specify the tool to fetch the source file for the build.", + "enum": [ + "SOURCE_FETCHER_UNSPECIFIED", + "GSUTIL", + "GCS_FETCHER" + ], + "enumDescriptions": [ + "Unspecified defaults to GSUTIL.", + "Use the \"gsutil\" tool to download the source file.", + "Use the Cloud Storage Fetcher tool to download the source file." + ], "type": "string" } }, "type": "object" }, "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest": { - "description": "Location of the source manifest in Google Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher).", + "description": "Location of the source manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher).", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest", "properties": { "bucket": { - "description": "Google Cloud Storage bucket containing the source manifest (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", + "description": "Cloud Storage bucket containing the source manifest (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", "type": "string" }, "generation": { - "description": "Google Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", + "description": "Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", "format": "int64", "type": "string" }, "object": { - "description": "Google Cloud Storage object containing the source manifest. This object must be a JSON file.", + "description": "Cloud Storage object containing the source manifest. This object must be a JSON file.", "type": "string" } }, @@ -2719,6 +3026,26 @@ }, "type": "object" }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedNpmPackage": { + "description": "An npm package uploaded to Artifact Registry using the NpmPackage directive.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedNpmPackage", + "properties": { + "fileHashes": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes", + "description": "Hash types and values of the npm package." + }, + "pushTiming": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pushing the specified artifact.", + "readOnly": true + }, + "uri": { + "description": "URI of the uploaded npm package.", + "type": "string" + } + }, + "type": "object" + }, "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedPythonPackage": { "description": "Artifact uploaded using the PythonPackage directive.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedPythonPackage", @@ -2952,7 +3279,9 @@ "ATTESTATION", "UPGRADE", "COMPLIANCE", - "DSSE_ATTESTATION" + "DSSE_ATTESTATION", + "VULNERABILITY_ASSESSMENT", + "SBOM_REFERENCE" ], "enumDescriptions": [ "Default value. This value is unused.", @@ -2965,7 +3294,9 @@ "This represents a logical \"role\" that can attest to artifacts.", "This represents an available package upgrade.", "This represents a Compliance Note", - "This represents a DSSE attestation Note" + "This represents a DSSE attestation Note", + "This represents a Vulnerability Assessment.", + "This represents an SBOM Reference." ], "type": "string" } @@ -3040,6 +3371,10 @@ "description": "The last time this resource was scanned.", "format": "google-datetime", "type": "string" + }, + "sbomStatus": { + "$ref": "SBOMStatus", + "description": "The status of an SBOM generation." } }, "type": "object" @@ -3124,6 +3459,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", @@ -3531,6 +3888,28 @@ }, "type": "object" }, + "InTotoSlsaProvenanceV1": { + "id": "InTotoSlsaProvenanceV1", + "properties": { + "_type": { + "description": "InToto spec defined at https://github.com/in-toto/attestation/tree/main/spec#statement", + "type": "string" + }, + "predicate": { + "$ref": "SlsaProvenanceV1" + }, + "predicateType": { + "type": "string" + }, + "subject": { + "items": { + "$ref": "Subject" + }, + "type": "array" + } + }, + "type": "object" + }, "InTotoStatement": { "description": "Spec defined at https://github.com/in-toto/attestation/tree/main/spec#statement The serialized InTotoStatement will be stored as Envelope.payload. Envelope.payloadType is always \"application/vnd.in-toto+json\".", "id": "InTotoStatement", @@ -3561,6 +3940,37 @@ }, "type": "object" }, + "Justification": { + "description": "Justification provides the justification when the state of the assessment if NOT_AFFECTED.", + "id": "Justification", + "properties": { + "details": { + "description": "Additional details on why this justification was chosen.", + "type": "string" + }, + "justificationType": { + "description": "The justification type for this vulnerability.", + "enum": [ + "JUSTIFICATION_TYPE_UNSPECIFIED", + "COMPONENT_NOT_PRESENT", + "VULNERABLE_CODE_NOT_PRESENT", + "VULNERABLE_CODE_NOT_IN_EXECUTE_PATH", + "VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY", + "INLINE_MITIGATIONS_ALREADY_EXIST" + ], + "enumDescriptions": [ + "JUSTIFICATION_TYPE_UNSPECIFIED.", + "The vulnerable component is not present in the product.", + "The vulnerable code is not present. Typically this case occurs when source code is configured or built in a way that excludes the vulnerable code.", + "The vulnerable code can not be executed. Typically this case occurs when the product includes the vulnerable code but does not call or use the vulnerable code.", + "The vulnerable code cannot be controlled by an attacker to exploit the vulnerability.", + "The product includes built-in protections or features that prevent exploitation of the vulnerability. These built-in protections cannot be subverted by the attacker and cannot be configured or disabled by the user. These mitigations completely prevent exploitation based on known attack vectors." + ], + "type": "string" + } + }, + "type": "object" + }, "Jwt": { "id": "Jwt", "properties": { @@ -3806,7 +4216,9 @@ "ATTESTATION", "UPGRADE", "COMPLIANCE", - "DSSE_ATTESTATION" + "DSSE_ATTESTATION", + "VULNERABILITY_ASSESSMENT", + "SBOM_REFERENCE" ], "enumDescriptions": [ "Default value. This value is unused.", @@ -3819,7 +4231,9 @@ "This represents a logical \"role\" that can attest to artifacts.", "This represents an available package upgrade.", "This represents a Compliance Note", - "This represents a DSSE attestation Note" + "This represents a DSSE attestation Note", + "This represents a Vulnerability Assessment.", + "This represents an SBOM Reference." ], "type": "string" }, @@ -3849,6 +4263,10 @@ }, "type": "array" }, + "sbomReference": { + "$ref": "SBOMReferenceNote", + "description": "A note describing an SBOM reference." + }, "shortDescription": { "description": "A one sentence description of this note.", "type": "string" @@ -3865,6 +4283,10 @@ "vulnerability": { "$ref": "VulnerabilityNote", "description": "A note describing a package vulnerability." + }, + "vulnerabilityAssessment": { + "$ref": "VulnerabilityAssessmentNote", + "description": "A note describing a vulnerability assessment." } }, "type": "object" @@ -3923,7 +4345,9 @@ "ATTESTATION", "UPGRADE", "COMPLIANCE", - "DSSE_ATTESTATION" + "DSSE_ATTESTATION", + "VULNERABILITY_ASSESSMENT", + "SBOM_REFERENCE" ], "enumDescriptions": [ "Default value. This value is unused.", @@ -3936,7 +4360,9 @@ "This represents a logical \"role\" that can attest to artifacts.", "This represents an available package upgrade.", "This represents a Compliance Note", - "This represents a DSSE attestation Note" + "This represents a DSSE attestation Note", + "This represents a Vulnerability Assessment.", + "This represents an SBOM Reference." ], "type": "string" }, @@ -3960,6 +4386,10 @@ "description": "Required. Immutable. A URI that represents the resource for which the occurrence applies. For example, `https://gcr.io/project/image@sha256:123abc` for a Docker image.", "type": "string" }, + "sbomReference": { + "$ref": "SBOMReferenceOccurrence", + "description": "Describes a specific SBOM reference occurrences." + }, "updateTime": { "description": "Output only. The time this occurrence was last updated.", "format": "google-datetime", @@ -4164,7 +4594,7 @@ "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/).", + "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": { "bindings": { @@ -4187,6 +4617,25 @@ }, "type": "object" }, + "Product": { + "description": "Product contains information about a product and how to uniquely identify it.", + "id": "Product", + "properties": { + "genericUri": { + "description": "Contains a URI which is vendor-specific. Example: The artifact repository URL of an image.", + "type": "string" + }, + "id": { + "description": "Token that identifies a product so that it can be referred to from other parts in the document. There is no predefined format as long as it uniquely identifies a group in the context of the current document.", + "type": "string" + }, + "name": { + "description": "Name of the product.", + "type": "string" + } + }, + "type": "object" + }, "ProjectRepoId": { "description": "Selects a repo using a Google Cloud Platform project ID (e.g., winged-cargo-31) and a repo name within that project.", "id": "ProjectRepoId", @@ -4202,6 +4651,46 @@ }, "type": "object" }, + "ProvenanceBuilder": { + "id": "ProvenanceBuilder", + "properties": { + "builderDependencies": { + "items": { + "$ref": "ResourceDescriptor" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "version": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "type": "object" + }, + "Publisher": { + "description": "Publisher contains information about the publisher of this Note.", + "id": "Publisher", + "properties": { + "issuingAuthority": { + "description": "Provides information about the authority of the issuing party to release the document, in particular, the party's constituency and responsibilities or other obligations.", + "type": "string" + }, + "name": { + "description": "Name of the publisher. Examples: 'Google', 'Google Cloud Platform'.", + "type": "string" + }, + "publisherNamespace": { + "description": "The context or namespace. Contains a URL which is under control of the issuing party and can be used as a globally unique identifier for that issuing party. Example: https://csaf.io", + "type": "string" + } + }, + "type": "object" + }, "Recipe": { "description": "Steps taken to build the artifact. For a TaskRun, typically each container corresponds to one step in the recipe.", "id": "Recipe", @@ -4259,6 +4748,41 @@ }, "type": "object" }, + "Remediation": { + "description": "Specifies details on how to handle (and presumably, fix) a vulnerability.", + "id": "Remediation", + "properties": { + "details": { + "description": "Contains a comprehensive human-readable discussion of the remediation.", + "type": "string" + }, + "remediationType": { + "description": "The type of remediation that can be applied.", + "enum": [ + "REMEDIATION_TYPE_UNSPECIFIED", + "MITIGATION", + "NO_FIX_PLANNED", + "NONE_AVAILABLE", + "VENDOR_FIX", + "WORKAROUND" + ], + "enumDescriptions": [ + "No remediation type specified.", + "A MITIGATION is available.", + "No fix is planned.", + "Not available.", + "A vendor fix is available.", + "A workaround is available." + ], + "type": "string" + }, + "remediationUri": { + "$ref": "RelatedUrl", + "description": "Contains the URL where to obtain the remediation." + } + }, + "type": "object" + }, "RepoId": { "description": "A unique identifier for a Cloud Repo.", "id": "RepoId", @@ -4274,6 +4798,172 @@ }, "type": "object" }, + "ResourceDescriptor": { + "id": "ResourceDescriptor", + "properties": { + "annotations": { + "additionalProperties": { + "type": "any" + }, + "type": "object" + }, + "content": { + "format": "byte", + "type": "string" + }, + "digest": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "downloadLocation": { + "type": "string" + }, + "mediaType": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "RunDetails": { + "id": "RunDetails", + "properties": { + "builder": { + "$ref": "ProvenanceBuilder" + }, + "byproducts": { + "items": { + "$ref": "ResourceDescriptor" + }, + "type": "array" + }, + "metadata": { + "$ref": "BuildMetadata" + } + }, + "type": "object" + }, + "SBOMReferenceNote": { + "description": "The note representing an SBOM reference.", + "id": "SBOMReferenceNote", + "properties": { + "format": { + "description": "The format that SBOM takes. E.g. may be spdx, cyclonedx, etc...", + "type": "string" + }, + "version": { + "description": "The version of the format that the SBOM takes. E.g. if the format is spdx, the version may be 2.3.", + "type": "string" + } + }, + "type": "object" + }, + "SBOMReferenceOccurrence": { + "description": "The occurrence representing an SBOM reference as applied to a specific resource. The occurrence follows the DSSE specification. See https://github.com/secure-systems-lab/dsse/blob/master/envelope.md for more details.", + "id": "SBOMReferenceOccurrence", + "properties": { + "payload": { + "$ref": "SbomReferenceIntotoPayload", + "description": "The actual payload that contains the SBOM reference data." + }, + "payloadType": { + "description": "The kind of payload that SbomReferenceIntotoPayload takes. Since it's in the intoto format, this value is expected to be 'application/vnd.in-toto+json'.", + "type": "string" + }, + "signatures": { + "description": "The signatures over the payload.", + "items": { + "$ref": "EnvelopeSignature" + }, + "type": "array" + } + }, + "type": "object" + }, + "SBOMStatus": { + "description": "The status of an SBOM generation.", + "id": "SBOMStatus", + "properties": { + "error": { + "description": "If there was an error generating an SBOM, this will indicate what that error was.", + "type": "string" + }, + "sbomState": { + "description": "The progress of the SBOM generation.", + "enum": [ + "SBOM_STATE_UNSPECIFIED", + "PENDING", + "COMPLETE" + ], + "enumDescriptions": [ + "Default unknown state.", + "SBOM scanning is pending.", + "SBOM scanning has completed." + ], + "type": "string" + } + }, + "type": "object" + }, + "SbomReferenceIntotoPayload": { + "description": "The actual payload that contains the SBOM Reference data. The payload follows the intoto statement specification. See https://github.com/in-toto/attestation/blob/main/spec/v1.0/statement.md for more details.", + "id": "SbomReferenceIntotoPayload", + "properties": { + "_type": { + "description": "Identifier for the schema of the Statement.", + "type": "string" + }, + "predicate": { + "$ref": "SbomReferenceIntotoPredicate", + "description": "Additional parameters of the Predicate. Includes the actual data about the SBOM." + }, + "predicateType": { + "description": "URI identifying the type of the Predicate.", + "type": "string" + }, + "subject": { + "description": "Set of software artifacts that the attestation applies to. Each element represents a single software artifact.", + "items": { + "$ref": "Subject" + }, + "type": "array" + } + }, + "type": "object" + }, + "SbomReferenceIntotoPredicate": { + "description": "A predicate which describes the SBOM being referenced.", + "id": "SbomReferenceIntotoPredicate", + "properties": { + "digest": { + "additionalProperties": { + "type": "string" + }, + "description": "A map of algorithm to digest of the contents of the SBOM.", + "type": "object" + }, + "location": { + "description": "The location of the SBOM.", + "type": "string" + }, + "mimeType": { + "description": "The mime type of the SBOM.", + "type": "string" + }, + "referrerId": { + "description": "The person or system referring this predicate to the consumer.", + "type": "string" + } + }, + "type": "object" + }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", @@ -4382,6 +5072,19 @@ }, "type": "object" }, + "SlsaProvenanceV1": { + "description": "Keep in sync with schema at https://github.com/slsa-framework/slsa/blob/main/docs/provenance/schema/v1/provenance.proto Builder renamed to ProvenanceBuilder because of Java conflicts.", + "id": "SlsaProvenanceV1", + "properties": { + "buildDefinition": { + "$ref": "BuildDefinition" + }, + "runDetails": { + "$ref": "RunDetails" + } + }, + "type": "object" + }, "SlsaProvenanceZeroTwo": { "description": "See full explanation of fields at slsa.dev/provenance/v0.2.", "id": "SlsaProvenanceZeroTwo", @@ -4712,6 +5415,69 @@ }, "type": "object" }, + "VexAssessment": { + "description": "VexAssessment provides all publisher provided Vex information that is related to this vulnerability.", + "id": "VexAssessment", + "properties": { + "cve": { + "deprecated": true, + "description": "Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability. Deprecated: Use vulnerability_id instead to denote CVEs.", + "type": "string" + }, + "impacts": { + "description": "Contains information about the impact of this vulnerability, this will change with time.", + "items": { + "type": "string" + }, + "type": "array" + }, + "justification": { + "$ref": "Justification", + "description": "Justification provides the justification when the state of the assessment if NOT_AFFECTED." + }, + "noteName": { + "description": "The VulnerabilityAssessment note from which this VexAssessment was generated. This will be of the form: `projects/[PROJECT_ID]/notes/[NOTE_ID]`.", + "type": "string" + }, + "relatedUris": { + "description": "Holds a list of references associated with this vulnerability item and assessment.", + "items": { + "$ref": "RelatedUrl" + }, + "type": "array" + }, + "remediations": { + "description": "Specifies details on how to handle (and presumably, fix) a vulnerability.", + "items": { + "$ref": "Remediation" + }, + "type": "array" + }, + "state": { + "description": "Provides the state of this Vulnerability assessment.", + "enum": [ + "STATE_UNSPECIFIED", + "AFFECTED", + "NOT_AFFECTED", + "FIXED", + "UNDER_INVESTIGATION" + ], + "enumDescriptions": [ + "No state is specified.", + "This product is known to be affected by this vulnerability.", + "This product is known to be not affected by this vulnerability.", + "This product contains a fix for this vulnerability.", + "It is not known yet whether these versions are or are not affected by the vulnerability. However, it is still under investigation." + ], + "type": "string" + }, + "vulnerabilityId": { + "description": "The vulnerability identifier for this Assessment. Will hold one of common identifiers e.g. CVE, GHSA etc.", + "type": "string" + } + }, + "type": "object" + }, "Volume": { "description": "Volume describes a Docker container volume which is mounted into build steps in order to persist files across build step execution. Next ID: 3", "id": "Volume", @@ -4727,6 +5493,41 @@ }, "type": "object" }, + "VulnerabilityAssessmentNote": { + "description": "A single VulnerabilityAssessmentNote represents one particular product's vulnerability assessment for one CVE.", + "id": "VulnerabilityAssessmentNote", + "properties": { + "assessment": { + "$ref": "Assessment", + "description": "Represents a vulnerability assessment for the product." + }, + "languageCode": { + "description": "Identifies the language used by this document, corresponding to IETF BCP 47 / RFC 5646.", + "type": "string" + }, + "longDescription": { + "description": "A detailed description of this Vex.", + "type": "string" + }, + "product": { + "$ref": "Product", + "description": "The product affected by this vex." + }, + "publisher": { + "$ref": "Publisher", + "description": "Publisher details of this Note." + }, + "shortDescription": { + "description": "A one sentence description of this Vex.", + "type": "string" + }, + "title": { + "description": "The title of the note. E.g. `Vex-Debian-11.4`", + "type": "string" + } + }, + "type": "object" + }, "VulnerabilityNote": { "description": "A security vulnerability that can be found in resources.", "id": "VulnerabilityNote", @@ -4736,6 +5537,10 @@ "format": "float", "type": "number" }, + "cvssV2": { + "$ref": "CVSS", + "description": "The full description of the v2 CVSS for this vulnerability." + }, "cvssV3": { "$ref": "CVSSv3", "description": "The full description of the CVSSv3 for this vulnerability." @@ -4805,6 +5610,10 @@ "format": "float", "type": "number" }, + "cvssV2": { + "$ref": "CVSS", + "description": "The cvss v2 score for the vulnerability." + }, "cvssVersion": { "description": "Output only. CVSS version used to populate cvss_score and severity.", "enum": [ @@ -4843,6 +5652,10 @@ ], "type": "string" }, + "extraDetails": { + "description": "Occurrence-specific extra details about the vulnerability.", + "type": "string" + }, "fixAvailable": { "description": "Output only. Whether at least one of the affected packages has a fix available.", "type": "boolean" @@ -4892,6 +5705,9 @@ "type": { "description": "The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.).", "type": "string" + }, + "vexAssessment": { + "$ref": "VexAssessment" } }, "type": "object" diff --git a/etc/api/containeranalysis/v1alpha1/containeranalysis-api.json b/etc/api/containeranalysis/v1alpha1/containeranalysis-api.json index f8ff7595e4..dd55418f73 100644 --- a/etc/api/containeranalysis/v1alpha1/containeranalysis-api.json +++ b/etc/api/containeranalysis/v1alpha1/containeranalysis-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://containeranalysis.googleapis.com/", "batchPath": "batch", "canonicalName": "Container Analysis", - "description": "An implementation of the Grafeas API, which stores, and enables querying and retrieval of critical metadata about all of your software artifacts.", + "description": "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.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/container-analysis/api/reference/rest/", "fullyEncodeReservedExpansion": true, @@ -609,7 +609,9 @@ "SPDX_PACKAGE", "SPDX_FILE", "SPDX_RELATIONSHIP", - "DSSE_ATTESTATION" + "DSSE_ATTESTATION", + "VULNERABILITY_ASSESSMENT", + "SBOM_REFERENCE" ], "enumDescriptions": [ "Unknown", @@ -626,7 +628,9 @@ "This represents an SPDX Package.", "This represents an SPDX File.", "This represents an SPDX Relationship.", - "This represents a DSSE attestation Note" + "This represents a DSSE attestation Note", + "This represents a Vulnerability Assessment.", + "This represents a reference to an SBOM." ], "location": "query", "type": "string" @@ -1229,7 +1233,7 @@ } } }, - "revision": "20230106", + "revision": "20240223", "rootUrl": "https://containeranalysis.googleapis.com/", "schemas": { "AnalysisCompleted": { @@ -1259,6 +1263,7 @@ "type": "string" }, "name": { + "deprecated": true, "description": "Name of the artifact. This may be the path to a binary or jar file, or in the case of a container build, the name used to push the container image to Google Container Registry, as presented to `docker push`. This field is deprecated in favor of the plural `names` field; it continues to exist here to allow existing BuildProvenance serialized to json in google.devtools.containeranalysis.v1alpha1.BuildDetails.provenance_bytes to deserialize back into proto.", "type": "string" }, @@ -1272,6 +1277,72 @@ }, "type": "object" }, + "Assessment": { + "description": "Assessment provides all information that is related to a single vulnerability for this product.", + "id": "Assessment", + "properties": { + "cve": { + "description": "Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability.", + "type": "string" + }, + "impacts": { + "description": "Contains information about the impact of this vulnerability, this will change with time.", + "items": { + "type": "string" + }, + "type": "array" + }, + "justification": { + "$ref": "Justification", + "description": "Justification provides the justification when the state of the assessment if NOT_AFFECTED." + }, + "longDescription": { + "description": "A detailed description of this Vex.", + "type": "string" + }, + "relatedUris": { + "description": "Holds a list of references associated with this vulnerability item and assessment. These uris have additional information about the vulnerability and the assessment itself. E.g. Link to a document which details how this assessment concluded the state of this vulnerability.", + "items": { + "$ref": "URI" + }, + "type": "array" + }, + "remediations": { + "description": "Specifies details on how to handle (and presumably, fix) a vulnerability.", + "items": { + "$ref": "Remediation" + }, + "type": "array" + }, + "shortDescription": { + "description": "A one sentence description of this Vex.", + "type": "string" + }, + "state": { + "description": "Provides the state of this Vulnerability assessment.", + "enum": [ + "STATE_UNSPECIFIED", + "AFFECTED", + "NOT_AFFECTED", + "FIXED", + "UNDER_INVESTIGATION" + ], + "enumDescriptions": [ + "No state is specified.", + "This product is known to be affected by this vulnerability.", + "This product is known to be not affected by this vulnerability.", + "This product contains a fix for this vulnerability.", + "It is not known yet whether these versions are or are not affected by the vulnerability. However, it is still under investigation." + ], + "type": "string" + }, + "vulnerabilityId": { + "description": "The vulnerability identifier for this Assessment. Will hold one of common identifiers e.g. CVE, GHSA etc.", + "type": "string" + } + }, + "type": "object" + }, "Attestation": { "description": "Occurrence that represents a single \"attestation\". The authenticity of an Attestation can be verified using the attached signature. If the verifier trusts the public key of the signer, then verifying the signature is sufficient to establish trust. In this circumstance, the AttestationAuthority to which this Attestation is attached is primarily useful for look-up (how to find this Attestation if you already know the Authority and artifact to be verified) and intent (which authority was this attestation intended to sign for).", "id": "Attestation", @@ -1327,23 +1398,56 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, + "BuildDefinition": { + "id": "BuildDefinition", + "properties": { + "buildType": { + "type": "string" + }, + "externalParameters": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "internalParameters": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "resolvedDependencies": { + "items": { + "$ref": "ResourceDescriptor" + }, + "type": "array" + } + }, + "type": "object" + }, "BuildDetails": { "description": "Message encapsulating build provenance details.", "id": "BuildDetails", "properties": { + "inTotoSlsaProvenanceV1": { + "$ref": "InTotoSlsaProvenanceV1", + "description": "In-Toto Slsa Provenance V1 represents a slsa provenance meeting the slsa spec, wrapped in an in-toto statement. This allows for direct jsonification of a to-spec in-toto slsa statement with a to-spec slsa provenance." + }, "intotoProvenance": { "$ref": "InTotoProvenance", "description": "Deprecated. See InTotoStatement for the replacement. In-toto Provenance representation as defined in spec." @@ -1363,6 +1467,23 @@ }, "type": "object" }, + "BuildMetadata": { + "id": "BuildMetadata", + "properties": { + "finishedOn": { + "format": "google-datetime", + "type": "string" + }, + "invocationId": { + "type": "string" + }, + "startedOn": { + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "BuildProvenance": { "description": "Provenance of a build. Contains all information needed to verify the full details about the build from source to completion.", "id": "BuildProvenance", @@ -1468,7 +1589,7 @@ "type": "object" }, "BuildStep": { - "description": "A step in the build pipeline. Next ID: 20", + "description": "A step in the build pipeline. Next ID: 21", "id": "BuildStep", "properties": { "allowExitCodes": { @@ -1490,6 +1611,10 @@ }, "type": "array" }, + "automapSubstitutions": { + "description": "Option to include built-in and custom substitutions as env variables for this build step. This option will override the global option in BuildOption.", + "type": "boolean" + }, "dir": { "description": "Working directory to use when running this step's container. If this value is a relative path, it is relative to the build's working directory. If this value is absolute, it may be outside the build's working directory, in which case the contents of the path may not be persisted across build step executions, unless a `volume` for that path is specified. If the build specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies an absolute path, the `RepoSource` `dir` is ignored for the step's execution.", "type": "string" @@ -2023,6 +2148,13 @@ }, "type": "array" }, + "npmPackages": { + "description": "A list of npm packages to be uploaded to Artifact Registry upon successful completion of all build steps. Npm packages in the specified paths will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any packages fail to be pushed, the build is marked FAILURE.", + "items": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsNpmPackage" + }, + "type": "array" + }, "objects": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects", "description": "A list of objects to be uploaded to Cloud Storage upon successful completion of all build steps. Files in the workspace matching specified paths globs will be uploaded to the specified Cloud Storage location using the builder service account's credentials. The location and generation of the uploaded objects will be stored in the Build resource's results field. If any objects fail to be pushed, the build is marked FAILURE." @@ -2087,6 +2219,21 @@ }, "type": "object" }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsNpmPackage": { + "description": "Npm package to upload to Artifact Registry upon successful completion of all build steps.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsNpmPackage", + "properties": { + "packagePath": { + "description": "Path to the package.json. e.g. workspace/path/to/package", + "type": "string" + }, + "repository": { + "description": "Artifact Registry repository, in the form \"https://$REGION-npm.pkg.dev/$PROJECT/$REPOSITORY\" Npm package in the workspace specified by path will be zipped and uploaded to Artifact Registry with this location as a prefix.", + "type": "string" + } + }, + "type": "object" + }, "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsPythonPackage": { "description": "Python package to upload to Artifact Registry upon successful completion of all build steps. A package can encapsulate multiple objects to be uploaded to a single repository.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsPythonPackage", @@ -2162,7 +2309,7 @@ "type": "string" }, "logsBucket": { - "description": "Google Cloud Storage bucket where logs should be written (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.", + "description": "Cloud Storage bucket where logs should be written (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.", "type": "string" }, "name": { @@ -2271,7 +2418,7 @@ "type": "array" }, "timeout": { - "description": "Amount of time that this build should be allowed to run, to second granularity. If this amount of time elapses, work on the build will cease and the build status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default time is ten minutes.", + "description": "Amount of time that this build should be allowed to run, to second granularity. If this amount of time elapses, work on the build will cease and the build status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default time is 60 minutes.", "format": "google-duration", "type": "string" }, @@ -2367,6 +2514,22 @@ "description": "Optional arguments to enable specific features of builds.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions", "properties": { + "automapSubstitutions": { + "description": "Option to include built-in and custom substitutions as env variables for all build steps.", + "type": "boolean" + }, + "defaultLogsBucketBehavior": { + "description": "Optional. Option to specify how default logs buckets are setup.", + "enum": [ + "DEFAULT_LOGS_BUCKET_BEHAVIOR_UNSPECIFIED", + "REGIONAL_USER_OWNED_BUCKET" + ], + "enumDescriptions": [ + "Unspecified.", + "Bucket is located in user-owned project in the same region as the build. The builder service account must have access to create and write to Cloud Storage buckets in the build project." + ], + "type": "string" + }, "diskSizeGb": { "description": "Requested disk size for the VM that runs the build. Note that this is *NOT* \"disk free\"; some of the space will be used by the operating system and build utilities. Also note that this is the minimum disk size that will be allocated for the build -- the build may run with a larger disk than requested. At present, the maximum disk size is 2000GB; builds that request more than the maximum are rejected with an error.", "format": "int64", @@ -2384,7 +2547,7 @@ "type": "array" }, "logStreamingOption": { - "description": "Option to define build log streaming behavior to Google Cloud Storage.", + "description": "Option to define build log streaming behavior to Cloud Storage.", "enum": [ "STREAM_DEFAULT", "STREAM_ON", @@ -2392,8 +2555,8 @@ ], "enumDescriptions": [ "Service may automatically determine build log streaming behavior.", - "Build logs should be streamed to Google Cloud Storage.", - "Build logs should not be streamed to Google Cloud Storage; they will be written when the build is completed." + "Build logs should be streamed to Cloud Storage.", + "Build logs should not be streamed to Cloud Storage; they will be written when the build is completed." ], "type": "string" }, @@ -2407,6 +2570,14 @@ "CLOUD_LOGGING_ONLY", "NONE" ], + "enumDeprecated": [ + false, + false, + false, + true, + false, + false + ], "enumDescriptions": [ "The service determines the logging mode. The default is `LEGACY`. Do not rely on the default logging behavior as it may change in the future.", "Build logs are stored in Cloud Logging and Cloud Storage.", @@ -2424,14 +2595,16 @@ "N1_HIGHCPU_8", "N1_HIGHCPU_32", "E2_HIGHCPU_8", - "E2_HIGHCPU_32" + "E2_HIGHCPU_32", + "E2_MEDIUM" ], "enumDescriptions": [ "Standard machine type.", "Highcpu machine with 8 CPUs.", "Highcpu machine with 32 CPUs.", "Highcpu e2 machine with 8 CPUs.", - "Highcpu e2 machine with 32 CPUs." + "Highcpu e2 machine with 32 CPUs.", + "E2 machine with 1 CPU." ], "type": "string" }, @@ -2464,12 +2637,14 @@ "enum": [ "NONE", "SHA256", - "MD5" + "MD5", + "SHA512" ], "enumDescriptions": [ "No hash requested.", "Use a sha256 hash.", - "Use a md5 hash." + "Use a md5 hash.", + "Use a sha512 hash." ], "type": "string" }, @@ -2495,6 +2670,7 @@ "type": "array" }, "workerPool": { + "deprecated": true, "description": "This field deprecated; please use `pool.name` instead.", "type": "string" } @@ -2535,6 +2711,10 @@ }, "type": "array" }, + "automapSubstitutions": { + "description": "Option to include built-in and custom substitutions as env variables for this build step. This option will override the global option in BuildOption.", + "type": "boolean" + }, "dir": { "description": "Working directory to use when running this step's container. If this value is a relative path, it is relative to the build's working directory. If this value is absolute, it may be outside the build's working directory, in which case the contents of the path may not be persisted across build step executions, unless a `volume` for that path is specified. If the build specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies an absolute path, the `RepoSource` `dir` is ignored for the step's execution.", "type": "string" @@ -2683,6 +2863,25 @@ }, "type": "object" }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository": { + "description": "Location of the source in a 2nd-gen Google Cloud Build repository resource.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository", + "properties": { + "dir": { + "description": "Directory, relative to the source root, in which to run the build.", + "type": "string" + }, + "repository": { + "description": "Required. Name of the Google Cloud Build repository, formatted as `projects/*/locations/*/connections/*/repositories/*`.", + "type": "string" + }, + "revision": { + "description": "The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.", + "type": "string" + } + }, + "type": "object" + }, "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes": { "description": "Container message for hashes of byte content of files, used in SourceProvenance messages to verify integrity of source input to the build.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes", @@ -2697,6 +2896,25 @@ }, "type": "object" }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource": { + "description": "Location of the source in any accessible Git repository.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource", + "properties": { + "dir": { + "description": "Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution.", + "type": "string" + }, + "revision": { + "description": "The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref. Cloud Build uses `git fetch` to fetch the revision from the Git repository; therefore make sure that the string you provide for `revision` is parsable by the command. For information on string values accepted by `git fetch`, see https://git-scm.com/docs/gitrevisions#_specifying_revisions. For information on `git fetch`, see https://git-scm.com/docs/git-fetch.", + "type": "string" + }, + "url": { + "description": "Location of the Git repo to build. This will be used as a `git remote`, see https://git-scm.com/docs/git-remote.", + "type": "string" + } + }, + "type": "object" + }, "ContaineranalysisGoogleDevtoolsCloudbuildV1Hash": { "description": "Container message for hash values.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Hash", @@ -2706,12 +2924,14 @@ "enum": [ "NONE", "SHA256", - "MD5" + "MD5", + "SHA512" ], "enumDescriptions": [ "No hash requested.", "Use a sha256 hash.", - "Use a md5 hash." + "Use a md5 hash.", + "Use a sha512 hash." ], "type": "string" }, @@ -2804,7 +3024,7 @@ "type": "array" }, "buildStepOutputs": { - "description": "List of build step outputs, produced by builder images, in the order corresponding to build step indices. [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders) can produce this output by writing to `$BUILDER_OUTPUT/output`. Only the first 4KB of data is stored.", + "description": "List of build step outputs, produced by builder images, in the order corresponding to build step indices. [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders) can produce this output by writing to `$BUILDER_OUTPUT/output`. Only the first 50KB of data is stored.", "items": { "format": "byte", "type": "string" @@ -2825,6 +3045,13 @@ }, "type": "array" }, + "npmPackages": { + "description": "Npm packages uploaded to Artifact Registry at the end of the build.", + "items": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedNpmPackage" + }, + "type": "array" + }, "numArtifacts": { "description": "Number of non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", "format": "int64", @@ -2899,17 +3126,25 @@ "description": "Location of the source in a supported storage service.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Source", "properties": { + "connectedRepository": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository", + "description": "Optional. If provided, get the source from this 2nd-gen Google Cloud Build repository resource." + }, + "gitSource": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource", + "description": "If provided, get the source from this Git repository." + }, "repoSource": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource", "description": "If provided, get the source from this location in a Cloud Source Repository." }, "storageSource": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource", - "description": "If provided, get the source from this location in Google Cloud Storage." + "description": "If provided, get the source from this location in Cloud Storage." }, "storageSourceManifest": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest", - "description": "If provided, get the source from this manifest in Google Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher)." + "description": "If provided, get the source from this manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher)." } }, "type": "object" @@ -2926,6 +3161,16 @@ "readOnly": true, "type": "object" }, + "resolvedConnectedRepository": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository", + "description": "Output only. A copy of the build's `source.connected_repository`, if exists, with any revisions resolved.", + "readOnly": true + }, + "resolvedGitSource": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource", + "description": "Output only. A copy of the build's `source.git_source`, if exists, with any revisions resolved.", + "readOnly": true + }, "resolvedRepoSource": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource", "description": "A copy of the build's `source.repo_source`, if exists, with any revisions resolved." @@ -2942,40 +3187,54 @@ "type": "object" }, "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource": { - "description": "Location of the source in an archive file in Google Cloud Storage.", + "description": "Location of the source in an archive file in Cloud Storage.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource", "properties": { "bucket": { - "description": "Google Cloud Storage bucket containing the source (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", + "description": "Cloud Storage bucket containing the source (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", "type": "string" }, "generation": { - "description": "Google Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", + "description": "Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", "format": "int64", "type": "string" }, "object": { - "description": "Google Cloud Storage object containing the source. This object must be a zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.", + "description": "Cloud Storage object containing the source. This object must be a zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.", + "type": "string" + }, + "sourceFetcher": { + "description": "Optional. Option to specify the tool to fetch the source file for the build.", + "enum": [ + "SOURCE_FETCHER_UNSPECIFIED", + "GSUTIL", + "GCS_FETCHER" + ], + "enumDescriptions": [ + "Unspecified defaults to GSUTIL.", + "Use the \"gsutil\" tool to download the source file.", + "Use the Cloud Storage Fetcher tool to download the source file." + ], "type": "string" } }, "type": "object" }, "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest": { - "description": "Location of the source manifest in Google Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher).", + "description": "Location of the source manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher).", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest", "properties": { "bucket": { - "description": "Google Cloud Storage bucket containing the source manifest (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", + "description": "Cloud Storage bucket containing the source manifest (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", "type": "string" }, "generation": { - "description": "Google Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", + "description": "Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", "format": "int64", "type": "string" }, "object": { - "description": "Google Cloud Storage object containing the source manifest. This object must be a JSON file.", + "description": "Cloud Storage object containing the source manifest. This object must be a JSON file.", "type": "string" } }, @@ -3018,6 +3277,26 @@ }, "type": "object" }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedNpmPackage": { + "description": "An npm package uploaded to Artifact Registry using the NpmPackage directive.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedNpmPackage", + "properties": { + "fileHashes": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes", + "description": "Hash types and values of the npm package." + }, + "pushTiming": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pushing the specified artifact.", + "readOnly": true + }, + "uri": { + "description": "URI of the uploaded npm package.", + "type": "string" + } + }, + "type": "object" + }, "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedPythonPackage": { "description": "Artifact uploaded using the PythonPackage directive.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedPythonPackage", @@ -3336,6 +3615,11 @@ "operation": { "$ref": "Operation", "description": "Output only. An operation that indicates the status of the current scan. This field is deprecated, do not use." + }, + "sbomStatus": { + "$ref": "SBOMStatus", + "description": "Output only. The status of an SBOM generation.", + "readOnly": true } }, "type": "object" @@ -3361,7 +3645,9 @@ "SPDX_PACKAGE", "SPDX_FILE", "SPDX_RELATIONSHIP", - "DSSE_ATTESTATION" + "DSSE_ATTESTATION", + "VULNERABILITY_ASSESSMENT", + "SBOM_REFERENCE" ], "enumDescriptions": [ "Unknown", @@ -3378,7 +3664,9 @@ "This represents an SPDX Package.", "This represents an SPDX File.", "This represents an SPDX Relationship.", - "This represents a DSSE attestation Note" + "This represents a DSSE attestation Note", + "This represents a Vulnerability Assessment.", + "This represents a reference to an SBOM." ], "type": "string" } @@ -4085,6 +4373,29 @@ }, "type": "object" }, + "IdentifierHelper": { + "description": "Helps in identifying the underlying product. This should be treated like a one-of field. Only one field should be set in this proto. This is a workaround because spanner indexes on one-of fields restrict addition and deletion of fields.", + "id": "IdentifierHelper", + "properties": { + "field": { + "description": "The field that is set in the API proto.", + "enum": [ + "IDENTIFIER_HELPER_FIELD_UNSPECIFIED", + "GENERIC_URI" + ], + "enumDescriptions": [ + "The helper isn't set.", + "The generic_uri one-of field is set." + ], + "type": "string" + }, + "genericUri": { + "description": "Contains a URI which is vendor-specific. Example: The artifact repository URL of an image.", + "type": "string" + } + }, + "type": "object" + }, "InTotoProvenance": { "id": "InTotoProvenance", "properties": { @@ -4109,6 +4420,28 @@ }, "type": "object" }, + "InTotoSlsaProvenanceV1": { + "id": "InTotoSlsaProvenanceV1", + "properties": { + "_type": { + "description": "InToto spec defined at https://github.com/in-toto/attestation/tree/main/spec#statement", + "type": "string" + }, + "predicate": { + "$ref": "SlsaProvenanceV1" + }, + "predicateType": { + "type": "string" + }, + "subject": { + "items": { + "$ref": "Subject" + }, + "type": "array" + } + }, + "type": "object" + }, "InTotoStatement": { "description": "Spec defined at https://github.com/in-toto/attestation/tree/main/spec#statement The serialized InTotoStatement will be stored as Envelope.payload. Envelope.payloadType is always \"application/vnd.in-toto+json\".", "id": "InTotoStatement", @@ -4196,6 +4529,37 @@ }, "type": "object" }, + "Justification": { + "description": "Justification provides the justification when the state of the assessment if NOT_AFFECTED.", + "id": "Justification", + "properties": { + "details": { + "description": "Additional details on why this justification was chosen.", + "type": "string" + }, + "justificationType": { + "description": "The justification type for this vulnerability.", + "enum": [ + "JUSTIFICATION_TYPE_UNSPECIFIED", + "COMPONENT_NOT_PRESENT", + "VULNERABLE_CODE_NOT_PRESENT", + "VULNERABLE_CODE_NOT_IN_EXECUTE_PATH", + "VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY", + "INLINE_MITIGATIONS_ALREADY_EXIST" + ], + "enumDescriptions": [ + "JUSTIFICATION_TYPE_UNSPECIFIED.", + "The vulnerable component is not present in the product.", + "The vulnerable code is not present. Typically this case occurs when source code is configured or built in a way that excludes the vulnerable code.", + "The vulnerable code can not be executed. Typically this case occurs when the product includes the vulnerable code but does not call or use the vulnerable code.", + "The vulnerable code cannot be controlled by an attacker to exploit the vulnerability.", + "The product includes built-in protections or features that prevent exploitation of the vulnerability. These built-in protections cannot be subverted by the attacker and cannot be configured or disabled by the user. These mitigations completely prevent exploitation based on known attack vectors." + ], + "type": "string" + } + }, + "type": "object" + }, "Layer": { "description": "Layer holds metadata specific to a layer of a Docker image.", "id": "Layer", @@ -4482,7 +4846,9 @@ "SPDX_PACKAGE", "SPDX_FILE", "SPDX_RELATIONSHIP", - "DSSE_ATTESTATION" + "DSSE_ATTESTATION", + "VULNERABILITY_ASSESSMENT", + "SBOM_REFERENCE" ], "enumDescriptions": [ "Unknown", @@ -4499,7 +4865,9 @@ "This represents an SPDX Package.", "This represents an SPDX File.", "This represents an SPDX Relationship.", - "This represents a DSSE attestation Note" + "This represents a DSSE attestation Note", + "This represents a Vulnerability Assessment.", + "This represents a reference to an SBOM." ], "type": "string" }, @@ -4526,6 +4894,10 @@ "$ref": "DocumentNote", "description": "A note describing a software bill of materials." }, + "sbomReference": { + "$ref": "SBOMReferenceNote", + "description": "A note describing a reference to an SBOM." + }, "shortDescription": { "description": "A one sentence description of this `Note`.", "type": "string" @@ -4551,6 +4923,10 @@ "$ref": "UpgradeNote", "description": "A note describing an upgrade." }, + "vulnerabilityAssessment": { + "$ref": "VulnerabilityAssessmentNote", + "description": "A note describing a vulnerability assessment." + }, "vulnerabilityType": { "$ref": "VulnerabilityType", "description": "A package vulnerability type of note." @@ -4620,7 +4996,9 @@ "SPDX_PACKAGE", "SPDX_FILE", "SPDX_RELATIONSHIP", - "DSSE_ATTESTATION" + "DSSE_ATTESTATION", + "VULNERABILITY_ASSESSMENT", + "SBOM_REFERENCE" ], "enumDescriptions": [ "Unknown", @@ -4637,7 +5015,9 @@ "This represents an SPDX Package.", "This represents an SPDX File.", "This represents an SPDX Relationship.", - "This represents a DSSE attestation Note" + "This represents a DSSE attestation Note", + "This represents a Vulnerability Assessment.", + "This represents a reference to an SBOM." ], "type": "string" }, @@ -4665,6 +5045,10 @@ "$ref": "DocumentOccurrence", "description": "Describes a specific software bill of materials document." }, + "sbomReference": { + "$ref": "SBOMReferenceOccurrence", + "description": "This represents an SBOM reference occurrence" + }, "spdxFile": { "$ref": "FileOccurrence", "description": "Describes a specific SPDX File." @@ -4722,7 +5106,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" } }, @@ -4999,7 +5383,7 @@ "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/).", + "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": { "bindings": { @@ -5022,6 +5406,65 @@ }, "type": "object" }, + "Product": { + "description": "Product contains information about a product and how to uniquely identify it.", + "id": "Product", + "properties": { + "id": { + "description": "Token that identifies a product so that it can be referred to from other parts in the document. There is no predefined format as long as it uniquely identifies a group in the context of the current document.", + "type": "string" + }, + "identifierHelper": { + "$ref": "IdentifierHelper", + "description": "Helps in identifying the underlying product." + }, + "name": { + "description": "Name of the product.", + "type": "string" + } + }, + "type": "object" + }, + "ProvenanceBuilder": { + "id": "ProvenanceBuilder", + "properties": { + "builderDependencies": { + "items": { + "$ref": "ResourceDescriptor" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "version": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "type": "object" + }, + "Publisher": { + "description": "Publisher contains information about the publisher of this Note.", + "id": "Publisher", + "properties": { + "issuingAuthority": { + "description": "Provides information about the authority of the issuing party to release the document, in particular, the party's constituency and responsibilities or other obligations.", + "type": "string" + }, + "name": { + "description": "Name of the publisher. Examples: 'Google', 'Google Cloud Platform'.", + "type": "string" + }, + "publisherNamespace": { + "description": "The context or namespace. Contains a URL which is under control of the issuing party and can be used as a globally unique identifier for that issuing party. Example: https://csaf.io", + "type": "string" + } + }, + "type": "object" + }, "Recipe": { "description": "Steps taken to build the artifact. For a TaskRun, typically each container corresponds to one step in the recipe.", "id": "Recipe", @@ -5298,7 +5741,43 @@ }, "type": "object" }, + "Remediation": { + "description": "Specifies details on how to handle (and presumably, fix) a vulnerability.", + "id": "Remediation", + "properties": { + "details": { + "description": "Contains a comprehensive human-readable discussion of the remediation.", + "type": "string" + }, + "remediationType": { + "description": "The type of remediation that can be applied.", + "enum": [ + "REMEDIATION_TYPE_UNSPECIFIED", + "MITIGATION", + "NO_FIX_PLANNED", + "NONE_AVAILABLE", + "VENDOR_FIX", + "WORKAROUND" + ], + "enumDescriptions": [ + "No remediation type specified.", + "A MITIGATION is available.", + "No fix is planned.", + "Not available.", + "A vendor fix is available.", + "A workaround is available." + ], + "type": "string" + }, + "remediationUri": { + "$ref": "URI", + "description": "Contains the URL where to obtain the remediation." + } + }, + "type": "object" + }, "RepoSource": { + "deprecated": true, "description": "RepoSource describes the location of the source in a Google Cloud Source Repository.", "id": "RepoSource", "properties": { @@ -5344,6 +5823,174 @@ }, "type": "object" }, + "ResourceDescriptor": { + "id": "ResourceDescriptor", + "properties": { + "annotations": { + "additionalProperties": { + "type": "any" + }, + "type": "object" + }, + "content": { + "format": "byte", + "type": "string" + }, + "digest": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "downloadLocation": { + "type": "string" + }, + "mediaType": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "RunDetails": { + "id": "RunDetails", + "properties": { + "builder": { + "$ref": "ProvenanceBuilder" + }, + "byproducts": { + "items": { + "$ref": "ResourceDescriptor" + }, + "type": "array" + }, + "metadata": { + "$ref": "BuildMetadata" + } + }, + "type": "object" + }, + "SBOMReferenceNote": { + "description": "The note representing an SBOM reference.", + "id": "SBOMReferenceNote", + "properties": { + "format": { + "description": "The format that SBOM takes. E.g. may be spdx, cyclonedx, etc...", + "type": "string" + }, + "version": { + "description": "The version of the format that the SBOM takes. E.g. if the format is spdx, the version may be 2.3.", + "type": "string" + } + }, + "type": "object" + }, + "SBOMReferenceOccurrence": { + "description": "The occurrence representing an SBOM reference as applied to a specific resource. The occurrence follows the DSSE specification. See https://github.com/secure-systems-lab/dsse/blob/master/envelope.md for more details.", + "id": "SBOMReferenceOccurrence", + "properties": { + "payload": { + "$ref": "SbomReferenceIntotoPayload", + "description": "The actual payload that contains the SBOM reference data." + }, + "payloadType": { + "description": "The kind of payload that SbomReferenceIntotoPayload takes. Since it's in the intoto format, this value is expected to be 'application/vnd.in-toto+json'.", + "type": "string" + }, + "signatures": { + "description": "The signatures over the payload.", + "items": { + "$ref": "EnvelopeSignature" + }, + "type": "array" + } + }, + "type": "object" + }, + "SBOMStatus": { + "description": "The status of an SBOM generation.", + "id": "SBOMStatus", + "properties": { + "error": { + "description": "Output only. If there was an error generating an SBOM, this will indicate what that error was.", + "readOnly": true, + "type": "string" + }, + "sbomState": { + "description": "Output only. The progress of the SBOM generation.", + "enum": [ + "SBOM_STATE_UNSPECIFIED", + "PENDING", + "COMPLETE" + ], + "enumDescriptions": [ + "Default unknown state.", + "SBOM scanning is pending.", + "SBOM scanning has completed." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "SbomReferenceIntotoPayload": { + "description": "The actual payload that contains the SBOM Reference data. The payload follows the intoto statement specification. See https://github.com/in-toto/attestation/blob/main/spec/v1.0/statement.md for more details.", + "id": "SbomReferenceIntotoPayload", + "properties": { + "_type": { + "description": "Identifier for the schema of the Statement.", + "type": "string" + }, + "predicate": { + "$ref": "SbomReferenceIntotoPredicate", + "description": "Additional parameters of the Predicate. Includes the actual data about the SBOM." + }, + "predicateType": { + "description": "URI identifying the type of the Predicate.", + "type": "string" + }, + "subject": { + "description": "Set of software artifacts that the attestation applies to. Each element represents a single software artifact.", + "items": { + "$ref": "Subject" + }, + "type": "array" + } + }, + "type": "object" + }, + "SbomReferenceIntotoPredicate": { + "description": "A predicate which describes the SBOM being referenced.", + "id": "SbomReferenceIntotoPredicate", + "properties": { + "digest": { + "additionalProperties": { + "type": "string" + }, + "description": "A map of algorithm to digest of the contents of the SBOM.", + "type": "object" + }, + "location": { + "description": "The location of the SBOM.", + "type": "string" + }, + "mimeType": { + "description": "The mime type of the SBOM.", + "type": "string" + }, + "referrerId": { + "description": "The person or system referring this predicate to the consumer.", + "type": "string" + } + }, + "type": "object" + }, "ScanConfig": { "description": "Indicates various scans and whether they are turned on or off.", "id": "ScanConfig", @@ -5501,6 +6148,19 @@ }, "type": "object" }, + "SlsaProvenanceV1": { + "description": "Keep in sync with schema at https://github.com/slsa-framework/slsa/blob/main/docs/provenance/schema/v1/provenance.proto Builder renamed to ProvenanceBuilder because of Java conflicts.", + "id": "SlsaProvenanceV1", + "properties": { + "buildDefinition": { + "$ref": "BuildDefinition" + }, + "runDetails": { + "$ref": "RunDetails" + } + }, + "type": "object" + }, "SlsaProvenanceZeroTwo": { "description": "SlsaProvenanceZeroTwo is the slsa provenance as defined by the slsa spec. See full explanation of fields at slsa.dev/provenance/v0.2.", "id": "SlsaProvenanceZeroTwo", @@ -5603,10 +6263,12 @@ }, "repoSource": { "$ref": "RepoSource", + "deprecated": true, "description": "If provided, get source from this location in a Cloud Repo." }, "storageSource": { "$ref": "StorageSource", + "deprecated": true, "description": "If provided, get the source from this location in Google Cloud Storage." } }, @@ -5722,6 +6384,21 @@ }, "type": "object" }, + "URI": { + "description": "An URI message.", + "id": "URI", + "properties": { + "label": { + "description": "A label for the URI.", + "type": "string" + }, + "uri": { + "description": "The unique resource identifier.", + "type": "string" + } + }, + "type": "object" + }, "UpdateOperationRequest": { "description": "Request for updating an existing operation", "id": "UpdateOperationRequest", @@ -5843,6 +6520,68 @@ }, "type": "object" }, + "VexAssessment": { + "description": "VexAssessment provides all publisher provided Vex information that is related to this vulnerability.", + "id": "VexAssessment", + "properties": { + "cve": { + "description": "Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability.", + "type": "string" + }, + "impacts": { + "description": "Contains information about the impact of this vulnerability, this will change with time.", + "items": { + "type": "string" + }, + "type": "array" + }, + "justification": { + "$ref": "Justification", + "description": "Justification provides the justification when the state of the assessment if NOT_AFFECTED." + }, + "noteName": { + "description": "The VulnerabilityAssessment note from which this VexAssessment was generated. This will be of the form: `projects/[PROJECT_ID]/notes/[NOTE_ID]`.", + "type": "string" + }, + "relatedUris": { + "description": "Holds a list of references associated with this vulnerability item and assessment. These uris have additional information about the vulnerability and the assessment itself. E.g. Link to a document which details how this assessment concluded the state of this vulnerability.", + "items": { + "$ref": "URI" + }, + "type": "array" + }, + "remediations": { + "description": "Specifies details on how to handle (and presumably, fix) a vulnerability.", + "items": { + "$ref": "Remediation" + }, + "type": "array" + }, + "state": { + "description": "Provides the state of this Vulnerability assessment.", + "enum": [ + "STATE_UNSPECIFIED", + "AFFECTED", + "NOT_AFFECTED", + "FIXED", + "UNDER_INVESTIGATION" + ], + "enumDescriptions": [ + "No state is specified.", + "This product is known to be affected by this vulnerability.", + "This product is known to be not affected by this vulnerability.", + "This product contains a fix for this vulnerability.", + "It is not known yet whether these versions are or are not affected by the vulnerability. However, it is still under investigation." + ], + "type": "string" + }, + "vulnerabilityId": { + "description": "The vulnerability identifier for this Assessment. Will hold one of common identifiers e.g. CVE, GHSA etc.", + "type": "string" + } + }, + "type": "object" + }, "Volume": { "description": "Volume describes a Docker container volume which is mounted into build steps in order to persist files across build step execution. Next ID: 3", "id": "Volume", @@ -5858,6 +6597,41 @@ }, "type": "object" }, + "VulnerabilityAssessmentNote": { + "description": "A single VulnerabilityAssessmentNote represents one particular product's vulnerability assessment for one CVE. Multiple VulnerabilityAssessmentNotes together form a Vex statement. Please go/sds-vex-example for a sample Vex statement in the CSAF format.", + "id": "VulnerabilityAssessmentNote", + "properties": { + "assessment": { + "$ref": "Assessment", + "description": "Represents a vulnerability assessment for the product." + }, + "languageCode": { + "description": "Identifies the language used by this document, corresponding to IETF BCP 47 / RFC 5646.", + "type": "string" + }, + "longDescription": { + "description": "A detailed description of this Vex.", + "type": "string" + }, + "product": { + "$ref": "Product", + "description": "The product affected by this vex." + }, + "publisher": { + "$ref": "Publisher", + "description": "Publisher details of this Note." + }, + "shortDescription": { + "description": "A one sentence description of this Vex.", + "type": "string" + }, + "title": { + "description": "The title of the note. E.g. `Vex-Debian-11.4`", + "type": "string" + } + }, + "type": "object" + }, "VulnerabilityDetails": { "description": "Used by Occurrence to point to where the vulnerability exists and how to fix it.", "id": "VulnerabilityDetails", @@ -5867,10 +6641,29 @@ "format": "float", "type": "number" }, + "cvssV2": { + "$ref": "CVSS", + "description": "The CVSS v2 score of this vulnerability." + }, "cvssV3": { "$ref": "CVSS", "description": "The CVSS v3 score of this vulnerability." }, + "cvssVersion": { + "description": "Output only. CVSS version used to populate cvss_score and severity.", + "enum": [ + "CVSS_VERSION_UNSPECIFIED", + "CVSS_VERSION_2", + "CVSS_VERSION_3" + ], + "enumDescriptions": [ + "CVSS Version unspecified.", + "CVSS v2.", + "CVSS v3." + ], + "readOnly": true, + "type": "string" + }, "effectiveSeverity": { "description": "The distro assigned severity for this vulnerability when that is available and note provider assigned severity when distro has not yet assigned a severity for this vulnerability. When there are multiple package issues for this vulnerability, they can have different effective severities because some might come from the distro and some might come from installed language packs (e.g. Maven JARs or Go binaries). For this reason, it is advised to use the effective severity on the PackageIssue level, as this field may eventually be deprecated. In the case where multiple PackageIssues have different effective severities, the one set here will be the highest severity of any of the PackageIssues.", "enum": [ @@ -5891,6 +6684,10 @@ ], "type": "string" }, + "extraDetails": { + "description": "Occurrence-specific extra details about the vulnerability.", + "type": "string" + }, "packageIssue": { "description": "The set of affected locations and their fixes (if available) within the associated resource.", "items": { @@ -5921,6 +6718,10 @@ "type": { "description": "The type of package; whether native or non native(ruby gems, node.js packages etc). This may be deprecated in the future because we can have multiple PackageIssues with different package types.", "type": "string" + }, + "vexAssessment": { + "$ref": "VexAssessment", + "description": "VexAssessment provides all publisher provided Vex information that is related to this vulnerability for this resource." } }, "type": "object" @@ -5964,6 +6765,20 @@ "$ref": "CVSS", "description": "The full description of the CVSS for version 2." }, + "cvssVersion": { + "description": "CVSS version used to populate cvss_score and severity.", + "enum": [ + "CVSS_VERSION_UNSPECIFIED", + "CVSS_VERSION_2", + "CVSS_VERSION_3" + ], + "enumDescriptions": [ + "CVSS Version unspecified.", + "CVSS v2.", + "CVSS v3." + ], + "type": "string" + }, "cwe": { "description": "A list of CWE for this vulnerability. For details, see: https://cwe.mitre.org/index.html", "items": { diff --git a/etc/api/containeranalysis/v1beta1/containeranalysis-api.json b/etc/api/containeranalysis/v1beta1/containeranalysis-api.json index 7299b0e640..4a847df842 100644 --- a/etc/api/containeranalysis/v1beta1/containeranalysis-api.json +++ b/etc/api/containeranalysis/v1beta1/containeranalysis-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://containeranalysis.googleapis.com/", "batchPath": "batch", "canonicalName": "Container Analysis", - "description": "An implementation of the Grafeas API, which stores, and enables querying and retrieval of critical metadata about all of your software artifacts.", + "description": "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.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/container-analysis/api/reference/rest/", "fullyEncodeReservedExpansion": true, @@ -751,11 +751,71 @@ ] } } + }, + "resources": { + "methods": { + "exportSBOM": { + "description": "Generates an SBOM and other dependency information for the given resource.", + "flatPath": "v1beta1/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": "v1beta1/{+name}:exportSBOM", + "request": { + "$ref": "ExportSBOMRequest" + }, + "response": { + "$ref": "ExportSBOMResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "generatePackagesSummary": { + "description": "Gets a summary of the packages within a given resource.", + "flatPath": "v1beta1/projects/{projectsId}/resources/{resourcesId}:generatePackagesSummary", + "httpMethod": "POST", + "id": "containeranalysis.projects.resources.generatePackagesSummary", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the resource to get a packages summary for in the form of `projects/[PROJECT_ID]/resources/[RESOURCE_URL]`.", + "location": "path", + "pattern": "^projects/[^/]+/resources/.*$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:generatePackagesSummary", + "request": { + "$ref": "GeneratePackagesSummaryRequest" + }, + "response": { + "$ref": "PackagesSummaryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } } }, - "revision": "20230106", + "revision": "20240223", "rootUrl": "https://containeranalysis.googleapis.com/", "schemas": { "AliasContext": { @@ -843,6 +903,73 @@ }, "type": "object" }, + "Assessment": { + "description": "Assessment provides all information that is related to a single vulnerability for this product.", + "id": "Assessment", + "properties": { + "cve": { + "deprecated": true, + "description": "Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability. Deprecated: Use vulnerability_id instead to denote CVEs.", + "type": "string" + }, + "impacts": { + "description": "Contains information about the impact of this vulnerability, this will change with time.", + "items": { + "type": "string" + }, + "type": "array" + }, + "justification": { + "$ref": "Justification", + "description": "Justification provides the justification when the state of the assessment if NOT_AFFECTED." + }, + "longDescription": { + "description": "A detailed description of this Vex.", + "type": "string" + }, + "relatedUris": { + "description": "Holds a list of references associated with this vulnerability item and assessment. These uris have additional information about the vulnerability and the assessment itself. E.g. Link to a document which details how this assessment concluded the state of this vulnerability.", + "items": { + "$ref": "RelatedUrl" + }, + "type": "array" + }, + "remediations": { + "description": "Specifies details on how to handle (and presumably, fix) a vulnerability.", + "items": { + "$ref": "Remediation" + }, + "type": "array" + }, + "shortDescription": { + "description": "A one sentence description of this Vex.", + "type": "string" + }, + "state": { + "description": "Provides the state of this Vulnerability assessment.", + "enum": [ + "STATE_UNSPECIFIED", + "AFFECTED", + "NOT_AFFECTED", + "FIXED", + "UNDER_INVESTIGATION" + ], + "enumDescriptions": [ + "No state is specified.", + "This product is known to be affected by this vulnerability.", + "This product is known to be not affected by this vulnerability.", + "This product contains a fix for this vulnerability.", + "It is not known yet whether these versions are or are not affected by the vulnerability. However, it is still under investigation." + ], + "type": "string" + }, + "vulnerabilityId": { + "description": "The vulnerability identifier for this Assessment. Will hold one of common identifiers e.g. CVE, GHSA etc.", + "type": "string" + } + }, + "type": "object" + }, "Attestation": { "description": "Occurrence that represents a single \"attestation\". The authenticity of an attestation can be verified using the attached signature. If the verifier trusts the public key of the signer, then verifying the signature is sufficient to establish trust. In this circumstance, the authority to which this attestation is attached is primarily useful for look-up (how to find this attestation if you already know the authority and artifact to be verified) and intent (which authority was this attestation intended to sign for).", "id": "Attestation", @@ -948,14 +1075,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -976,6 +1103,52 @@ }, "type": "object" }, + "BuildDefinition": { + "id": "BuildDefinition", + "properties": { + "buildType": { + "type": "string" + }, + "externalParameters": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "internalParameters": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "resolvedDependencies": { + "items": { + "$ref": "ResourceDescriptor" + }, + "type": "array" + } + }, + "type": "object" + }, + "BuildMetadata": { + "id": "BuildMetadata", + "properties": { + "finishedOn": { + "format": "google-datetime", + "type": "string" + }, + "invocationId": { + "type": "string" + }, + "startedOn": { + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "BuildProvenance": { "description": "Provenance of a build. Contains all information needed to verify the full details about the build from source to completion.", "id": "BuildProvenance", @@ -1082,7 +1255,7 @@ "type": "object" }, "BuildStep": { - "description": "A step in the build pipeline. Next ID: 20", + "description": "A step in the build pipeline. Next ID: 21", "id": "BuildStep", "properties": { "allowExitCodes": { @@ -1104,6 +1277,10 @@ }, "type": "array" }, + "automapSubstitutions": { + "description": "Option to include built-in and custom substitutions as env variables for this build step. This option will override the global option in BuildOption.", + "type": "boolean" + }, "dir": { "description": "Working directory to use when running this step's container. If this value is a relative path, it is relative to the build's working directory. If this value is absolute, it may be outside the build's working directory, in which case the contents of the path may not be persisted across build step executions, unless a `volume` for that path is specified. If the build specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies an absolute path, the `RepoSource` `dir` is ignored for the step's execution.", "type": "string" @@ -1655,6 +1832,13 @@ }, "type": "array" }, + "npmPackages": { + "description": "A list of npm packages to be uploaded to Artifact Registry upon successful completion of all build steps. Npm packages in the specified paths will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any packages fail to be pushed, the build is marked FAILURE.", + "items": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsNpmPackage" + }, + "type": "array" + }, "objects": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects", "description": "A list of objects to be uploaded to Cloud Storage upon successful completion of all build steps. Files in the workspace matching specified paths globs will be uploaded to the specified Cloud Storage location using the builder service account's credentials. The location and generation of the uploaded objects will be stored in the Build resource's results field. If any objects fail to be pushed, the build is marked FAILURE." @@ -1719,6 +1903,21 @@ }, "type": "object" }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsNpmPackage": { + "description": "Npm package to upload to Artifact Registry upon successful completion of all build steps.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsNpmPackage", + "properties": { + "packagePath": { + "description": "Path to the package.json. e.g. workspace/path/to/package", + "type": "string" + }, + "repository": { + "description": "Artifact Registry repository, in the form \"https://$REGION-npm.pkg.dev/$PROJECT/$REPOSITORY\" Npm package in the workspace specified by path will be zipped and uploaded to Artifact Registry with this location as a prefix.", + "type": "string" + } + }, + "type": "object" + }, "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsPythonPackage": { "description": "Python package to upload to Artifact Registry upon successful completion of all build steps. A package can encapsulate multiple objects to be uploaded to a single repository.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsPythonPackage", @@ -1794,7 +1993,7 @@ "type": "string" }, "logsBucket": { - "description": "Google Cloud Storage bucket where logs should be written (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.", + "description": "Cloud Storage bucket where logs should be written (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.", "type": "string" }, "name": { @@ -1903,7 +2102,7 @@ "type": "array" }, "timeout": { - "description": "Amount of time that this build should be allowed to run, to second granularity. If this amount of time elapses, work on the build will cease and the build status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default time is ten minutes.", + "description": "Amount of time that this build should be allowed to run, to second granularity. If this amount of time elapses, work on the build will cease and the build status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default time is 60 minutes.", "format": "google-duration", "type": "string" }, @@ -1999,6 +2198,22 @@ "description": "Optional arguments to enable specific features of builds.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions", "properties": { + "automapSubstitutions": { + "description": "Option to include built-in and custom substitutions as env variables for all build steps.", + "type": "boolean" + }, + "defaultLogsBucketBehavior": { + "description": "Optional. Option to specify how default logs buckets are setup.", + "enum": [ + "DEFAULT_LOGS_BUCKET_BEHAVIOR_UNSPECIFIED", + "REGIONAL_USER_OWNED_BUCKET" + ], + "enumDescriptions": [ + "Unspecified.", + "Bucket is located in user-owned project in the same region as the build. The builder service account must have access to create and write to Cloud Storage buckets in the build project." + ], + "type": "string" + }, "diskSizeGb": { "description": "Requested disk size for the VM that runs the build. Note that this is *NOT* \"disk free\"; some of the space will be used by the operating system and build utilities. Also note that this is the minimum disk size that will be allocated for the build -- the build may run with a larger disk than requested. At present, the maximum disk size is 2000GB; builds that request more than the maximum are rejected with an error.", "format": "int64", @@ -2016,7 +2231,7 @@ "type": "array" }, "logStreamingOption": { - "description": "Option to define build log streaming behavior to Google Cloud Storage.", + "description": "Option to define build log streaming behavior to Cloud Storage.", "enum": [ "STREAM_DEFAULT", "STREAM_ON", @@ -2024,8 +2239,8 @@ ], "enumDescriptions": [ "Service may automatically determine build log streaming behavior.", - "Build logs should be streamed to Google Cloud Storage.", - "Build logs should not be streamed to Google Cloud Storage; they will be written when the build is completed." + "Build logs should be streamed to Cloud Storage.", + "Build logs should not be streamed to Cloud Storage; they will be written when the build is completed." ], "type": "string" }, @@ -2039,6 +2254,14 @@ "CLOUD_LOGGING_ONLY", "NONE" ], + "enumDeprecated": [ + false, + false, + false, + true, + false, + false + ], "enumDescriptions": [ "The service determines the logging mode. The default is `LEGACY`. Do not rely on the default logging behavior as it may change in the future.", "Build logs are stored in Cloud Logging and Cloud Storage.", @@ -2056,14 +2279,16 @@ "N1_HIGHCPU_8", "N1_HIGHCPU_32", "E2_HIGHCPU_8", - "E2_HIGHCPU_32" + "E2_HIGHCPU_32", + "E2_MEDIUM" ], "enumDescriptions": [ "Standard machine type.", "Highcpu machine with 8 CPUs.", "Highcpu machine with 32 CPUs.", "Highcpu e2 machine with 8 CPUs.", - "Highcpu e2 machine with 32 CPUs." + "Highcpu e2 machine with 32 CPUs.", + "E2 machine with 1 CPU." ], "type": "string" }, @@ -2096,12 +2321,14 @@ "enum": [ "NONE", "SHA256", - "MD5" + "MD5", + "SHA512" ], "enumDescriptions": [ "No hash requested.", "Use a sha256 hash.", - "Use a md5 hash." + "Use a md5 hash.", + "Use a sha512 hash." ], "type": "string" }, @@ -2127,6 +2354,7 @@ "type": "array" }, "workerPool": { + "deprecated": true, "description": "This field deprecated; please use `pool.name` instead.", "type": "string" } @@ -2167,6 +2395,10 @@ }, "type": "array" }, + "automapSubstitutions": { + "description": "Option to include built-in and custom substitutions as env variables for this build step. This option will override the global option in BuildOption.", + "type": "boolean" + }, "dir": { "description": "Working directory to use when running this step's container. If this value is a relative path, it is relative to the build's working directory. If this value is absolute, it may be outside the build's working directory, in which case the contents of the path may not be persisted across build step executions, unless a `volume` for that path is specified. If the build specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies an absolute path, the `RepoSource` `dir` is ignored for the step's execution.", "type": "string" @@ -2315,6 +2547,25 @@ }, "type": "object" }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository": { + "description": "Location of the source in a 2nd-gen Google Cloud Build repository resource.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository", + "properties": { + "dir": { + "description": "Directory, relative to the source root, in which to run the build.", + "type": "string" + }, + "repository": { + "description": "Required. Name of the Google Cloud Build repository, formatted as `projects/*/locations/*/connections/*/repositories/*`.", + "type": "string" + }, + "revision": { + "description": "The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.", + "type": "string" + } + }, + "type": "object" + }, "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes": { "description": "Container message for hashes of byte content of files, used in SourceProvenance messages to verify integrity of source input to the build.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes", @@ -2329,6 +2580,25 @@ }, "type": "object" }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource": { + "description": "Location of the source in any accessible Git repository.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource", + "properties": { + "dir": { + "description": "Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution.", + "type": "string" + }, + "revision": { + "description": "The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref. Cloud Build uses `git fetch` to fetch the revision from the Git repository; therefore make sure that the string you provide for `revision` is parsable by the command. For information on string values accepted by `git fetch`, see https://git-scm.com/docs/gitrevisions#_specifying_revisions. For information on `git fetch`, see https://git-scm.com/docs/git-fetch.", + "type": "string" + }, + "url": { + "description": "Location of the Git repo to build. This will be used as a `git remote`, see https://git-scm.com/docs/git-remote.", + "type": "string" + } + }, + "type": "object" + }, "ContaineranalysisGoogleDevtoolsCloudbuildV1Hash": { "description": "Container message for hash values.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Hash", @@ -2338,12 +2608,14 @@ "enum": [ "NONE", "SHA256", - "MD5" + "MD5", + "SHA512" ], "enumDescriptions": [ "No hash requested.", "Use a sha256 hash.", - "Use a md5 hash." + "Use a md5 hash.", + "Use a sha512 hash." ], "type": "string" }, @@ -2436,7 +2708,7 @@ "type": "array" }, "buildStepOutputs": { - "description": "List of build step outputs, produced by builder images, in the order corresponding to build step indices. [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders) can produce this output by writing to `$BUILDER_OUTPUT/output`. Only the first 4KB of data is stored.", + "description": "List of build step outputs, produced by builder images, in the order corresponding to build step indices. [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders) can produce this output by writing to `$BUILDER_OUTPUT/output`. Only the first 50KB of data is stored.", "items": { "format": "byte", "type": "string" @@ -2457,6 +2729,13 @@ }, "type": "array" }, + "npmPackages": { + "description": "Npm packages uploaded to Artifact Registry at the end of the build.", + "items": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedNpmPackage" + }, + "type": "array" + }, "numArtifacts": { "description": "Number of non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", "format": "int64", @@ -2531,17 +2810,25 @@ "description": "Location of the source in a supported storage service.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Source", "properties": { + "connectedRepository": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository", + "description": "Optional. If provided, get the source from this 2nd-gen Google Cloud Build repository resource." + }, + "gitSource": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource", + "description": "If provided, get the source from this Git repository." + }, "repoSource": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource", "description": "If provided, get the source from this location in a Cloud Source Repository." }, "storageSource": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource", - "description": "If provided, get the source from this location in Google Cloud Storage." + "description": "If provided, get the source from this location in Cloud Storage." }, "storageSourceManifest": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest", - "description": "If provided, get the source from this manifest in Google Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher)." + "description": "If provided, get the source from this manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher)." } }, "type": "object" @@ -2558,6 +2845,16 @@ "readOnly": true, "type": "object" }, + "resolvedConnectedRepository": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository", + "description": "Output only. A copy of the build's `source.connected_repository`, if exists, with any revisions resolved.", + "readOnly": true + }, + "resolvedGitSource": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource", + "description": "Output only. A copy of the build's `source.git_source`, if exists, with any revisions resolved.", + "readOnly": true + }, "resolvedRepoSource": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource", "description": "A copy of the build's `source.repo_source`, if exists, with any revisions resolved." @@ -2574,40 +2871,54 @@ "type": "object" }, "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource": { - "description": "Location of the source in an archive file in Google Cloud Storage.", + "description": "Location of the source in an archive file in Cloud Storage.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource", "properties": { "bucket": { - "description": "Google Cloud Storage bucket containing the source (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", + "description": "Cloud Storage bucket containing the source (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", "type": "string" }, "generation": { - "description": "Google Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", + "description": "Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", "format": "int64", "type": "string" }, "object": { - "description": "Google Cloud Storage object containing the source. This object must be a zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.", + "description": "Cloud Storage object containing the source. This object must be a zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.", + "type": "string" + }, + "sourceFetcher": { + "description": "Optional. Option to specify the tool to fetch the source file for the build.", + "enum": [ + "SOURCE_FETCHER_UNSPECIFIED", + "GSUTIL", + "GCS_FETCHER" + ], + "enumDescriptions": [ + "Unspecified defaults to GSUTIL.", + "Use the \"gsutil\" tool to download the source file.", + "Use the Cloud Storage Fetcher tool to download the source file." + ], "type": "string" } }, "type": "object" }, "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest": { - "description": "Location of the source manifest in Google Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher).", + "description": "Location of the source manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher).", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest", "properties": { "bucket": { - "description": "Google Cloud Storage bucket containing the source manifest (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", + "description": "Cloud Storage bucket containing the source manifest (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", "type": "string" }, "generation": { - "description": "Google Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", + "description": "Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", "format": "int64", "type": "string" }, "object": { - "description": "Google Cloud Storage object containing the source manifest. This object must be a JSON file.", + "description": "Cloud Storage object containing the source manifest. This object must be a JSON file.", "type": "string" } }, @@ -2650,6 +2961,26 @@ }, "type": "object" }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedNpmPackage": { + "description": "An npm package uploaded to Artifact Registry using the NpmPackage directive.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedNpmPackage", + "properties": { + "fileHashes": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes", + "description": "Hash types and values of the npm package." + }, + "pushTiming": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pushing the specified artifact.", + "readOnly": true + }, + "uri": { + "description": "URI of the uploaded npm package.", + "type": "string" + } + }, + "type": "object" + }, "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedPythonPackage": { "description": "Artifact uploaded using the PythonPackage directive.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedPythonPackage", @@ -2919,6 +3250,15 @@ "description": "The last time continuous analysis was done for this resource. Deprecated, do not use.", "format": "google-datetime", "type": "string" + }, + "lastScanTime": { + "description": "The last time this resource was scanned.", + "format": "google-datetime", + "type": "string" + }, + "sbomStatus": { + "$ref": "SBOMStatus", + "description": "The status of an SBOM generation." } }, "type": "object" @@ -2942,7 +3282,9 @@ "SBOM", "SPDX_PACKAGE", "SPDX_FILE", - "SPDX_RELATIONSHIP" + "SPDX_RELATIONSHIP", + "VULNERABILITY_ASSESSMENT", + "SBOM_REFERENCE" ], "enumDescriptions": [ "Default value. This value is unused.", @@ -2957,7 +3299,9 @@ "This represents a software bill of materials.", "This represents an SPDX Package.", "This represents an SPDX File.", - "This represents an SPDX Relationship." + "This represents an SPDX Relationship.", + "This represents a Vulnerability Assessment.", + "This represents an SBOM Reference." ], "type": "string" } @@ -3006,7 +3350,7 @@ "type": "object" }, "DocumentNote": { - "description": "DocumentNote represents an SPDX Document Creation Information section: https://spdx.github.io/spdx-spec/v2.3/document-creation-information/", + "description": "DocumentNote represents an SPDX Document Creation Information section: https://spdx.github.io/spdx-spec/2-document-creation-information/", "id": "DocumentNote", "properties": { "dataLicence": { @@ -3021,7 +3365,7 @@ "type": "object" }, "DocumentOccurrence": { - "description": "DocumentOccurrence represents an SPDX Document Creation Information section: https://spdx.github.io/spdx-spec/v2.3/document-creation-information/", + "description": "DocumentOccurrence represents an SPDX Document Creation Information section: https://spdx.github.io/spdx-spec/2-document-creation-information/", "id": "DocumentOccurrence", "properties": { "createTime": { @@ -3122,6 +3466,23 @@ }, "type": "object" }, + "ExportSBOMRequest": { + "description": "The request to a call of ExportSBOM", + "id": "ExportSBOMRequest", + "properties": {}, + "type": "object" + }, + "ExportSBOMResponse": { + "description": "The response from a call to ExportSBOM", + "id": "ExportSBOMResponse", + "properties": { + "discoveryOccurrenceId": { + "description": "The name of the discovery occurrence in the form \"projects/{project_id}/occurrences/{OCCURRENCE_ID} It can be used to track the progression 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", @@ -3357,6 +3718,12 @@ }, "type": "object" }, + "GeneratePackagesSummaryRequest": { + "description": "GeneratePackagesSummaryRequest is the request body for the GeneratePackagesSummary API method. It just takes a single name argument, referring to the resource.", + "id": "GeneratePackagesSummaryRequest", + "properties": {}, + "type": "object" + }, "GenericSignedAttestation": { "description": "An attestation wrapper that uses the Grafeas `Signature` message. This attestation must define the `serialized_payload` that the `signatures` verify and any metadata necessary to interpret that plaintext. The signatures should always be over the `serialized_payload` bytestring.", "id": "GenericSignedAttestation", @@ -3470,6 +3837,9 @@ "description": "Details of a build occurrence.", "id": "GrafeasV1beta1BuildDetails", "properties": { + "inTotoSlsaProvenanceV1": { + "$ref": "InTotoSlsaProvenanceV1" + }, "provenance": { "$ref": "BuildProvenance", "description": "Required. The actual provenance for the build." @@ -3575,6 +3945,14 @@ "format": "float", "type": "number" }, + "cvssV2": { + "$ref": "CVSS", + "description": "The cvss v2 score for the vulnerability." + }, + "cvssV3": { + "$ref": "CVSS", + "description": "The cvss v3 score for the vulnerability." + }, "cvssVersion": { "description": "Output only. CVSS version used to populate cvss_score and severity.", "enum": [ @@ -3609,6 +3987,10 @@ ], "type": "string" }, + "extraDetails": { + "description": "Occurrence-specific extra details about the vulnerability.", + "type": "string" + }, "longDescription": { "description": "Output only. A detailed description of this vulnerability.", "type": "string" @@ -3654,6 +4036,9 @@ "type": { "description": "The type of package; whether native or non native(ruby gems, node.js packages etc)", "type": "string" + }, + "vexAssessment": { + "$ref": "VexAssessment" } }, "type": "object" @@ -3666,11 +4051,15 @@ "description": "Required. The type of hash that was performed.", "enum": [ "HASH_TYPE_UNSPECIFIED", - "SHA256" + "SHA256", + "GO_MODULE_H1", + "SHA512" ], "enumDescriptions": [ "Unknown.", - "A SHA-256 hash." + "A SHA-256 hash.", + "Dirhash of a Go module's source code which is then hex-encoded. See b/244466565 and https://github.com/in-toto/attestation/pull/108.", + "A SHA-512 hash." ], "type": "string" }, @@ -3736,6 +4125,28 @@ }, "type": "object" }, + "InTotoSlsaProvenanceV1": { + "id": "InTotoSlsaProvenanceV1", + "properties": { + "_type": { + "description": "InToto spec defined at https://github.com/in-toto/attestation/tree/main/spec#statement", + "type": "string" + }, + "predicate": { + "$ref": "SlsaProvenanceV1" + }, + "predicateType": { + "type": "string" + }, + "subject": { + "items": { + "$ref": "Subject" + }, + "type": "array" + } + }, + "type": "object" + }, "Installation": { "description": "This represents how a particular software package may be installed on a system.", "id": "Installation", @@ -3789,6 +4200,37 @@ }, "type": "object" }, + "Justification": { + "description": "Justification provides the justification when the state of the assessment if NOT_AFFECTED.", + "id": "Justification", + "properties": { + "details": { + "description": "Additional details on why this justification was chosen.", + "type": "string" + }, + "justificationType": { + "description": "The justification type for this vulnerability.", + "enum": [ + "JUSTIFICATION_TYPE_UNSPECIFIED", + "COMPONENT_NOT_PRESENT", + "VULNERABLE_CODE_NOT_PRESENT", + "VULNERABLE_CODE_NOT_IN_EXECUTE_PATH", + "VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY", + "INLINE_MITIGATIONS_ALREADY_EXIST" + ], + "enumDescriptions": [ + "JUSTIFICATION_TYPE_UNSPECIFIED.", + "The vulnerable component is not present in the product.", + "The vulnerable code is not present. Typically this case occurs when source code is configured or built in a way that excludes the vulnerable code.", + "The vulnerable code can not be executed. Typically this case occurs when the product includes the vulnerable code but does not call or use the vulnerable code.", + "The vulnerable code cannot be controlled by an attacker to exploit the vulnerability.", + "The product includes built-in protections or features that prevent exploitation of the vulnerability. These built-in protections cannot be subverted by the attacker and cannot be configured or disabled by the user. These mitigations completely prevent exploitation based on known attack vectors." + ], + "type": "string" + } + }, + "type": "object" + }, "KnowledgeBase": { "id": "KnowledgeBase", "properties": { @@ -3873,6 +4315,22 @@ }, "type": "object" }, + "LicensesSummary": { + "description": "Per license count", + "id": "LicensesSummary", + "properties": { + "count": { + "description": "The number of fixable vulnerabilities associated with this resource.", + "format": "int64", + "type": "string" + }, + "license": { + "description": "The license of the package. Note that the format of this value is not guaranteed. It may be nil, an empty string, a boolean value (A | B), a differently formed boolean value (A OR B), etc...", + "type": "string" + } + }, + "type": "object" + }, "Link": { "description": "This corresponds to an in-toto link.", "id": "Link", @@ -4035,7 +4493,9 @@ "SBOM", "SPDX_PACKAGE", "SPDX_FILE", - "SPDX_RELATIONSHIP" + "SPDX_RELATIONSHIP", + "VULNERABILITY_ASSESSMENT", + "SBOM_REFERENCE" ], "enumDescriptions": [ "Default value. This value is unused.", @@ -4050,7 +4510,9 @@ "This represents a software bill of materials.", "This represents an SPDX Package.", "This represents an SPDX File.", - "This represents an SPDX Relationship." + "This represents an SPDX Relationship.", + "This represents a Vulnerability Assessment.", + "This represents an SBOM Reference." ], "type": "string" }, @@ -4084,6 +4546,10 @@ "$ref": "DocumentNote", "description": "A note describing a software bill of materials." }, + "sbomReference": { + "$ref": "SBOMReferenceNote", + "description": "A note describing an SBOM reference." + }, "shortDescription": { "description": "A one sentence description of this note.", "type": "string" @@ -4108,6 +4574,10 @@ "vulnerability": { "$ref": "Vulnerability", "description": "A note describing a package vulnerability." + }, + "vulnerabilityAssessment": { + "$ref": "VulnerabilityAssessmentNote", + "description": "A note describing a vulnerability assessment." } }, "type": "object" @@ -4168,7 +4638,9 @@ "SBOM", "SPDX_PACKAGE", "SPDX_FILE", - "SPDX_RELATIONSHIP" + "SPDX_RELATIONSHIP", + "VULNERABILITY_ASSESSMENT", + "SBOM_REFERENCE" ], "enumDescriptions": [ "Default value. This value is unused.", @@ -4183,7 +4655,9 @@ "This represents a software bill of materials.", "This represents an SPDX Package.", "This represents an SPDX File.", - "This represents an SPDX Relationship." + "This represents an SPDX Relationship.", + "This represents a Vulnerability Assessment.", + "This represents an SBOM Reference." ], "type": "string" }, @@ -4207,6 +4681,10 @@ "$ref": "DocumentOccurrence", "description": "Describes a specific software bill of materials document." }, + "sbomReference": { + "$ref": "SBOMReferenceOccurrence", + "description": "Describes a specific SBOM reference occurrences." + }, "spdxFile": { "$ref": "FileOccurrence", "description": "Describes a specific SPDX File." @@ -4475,6 +4953,24 @@ }, "type": "object" }, + "PackagesSummaryResponse": { + "description": "A summary of the packages found within the given resource.", + "id": "PackagesSummaryResponse", + "properties": { + "licensesSummary": { + "description": "A listing by license name of each of the licenses and their counts.", + "items": { + "$ref": "LicensesSummary" + }, + "type": "array" + }, + "resourceUrl": { + "description": "The unique URL of the image or the container for which this summary applies.", + "type": "string" + } + }, + "type": "object" + }, "PgpSignedAttestation": { "description": "An attestation wrapper with a PGP-compatible signature. This message only supports `ATTACHED` signatures, where the payload that is signed is included alongside the signature itself in the same file.", "id": "PgpSignedAttestation", @@ -4503,7 +4999,7 @@ "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/).", + "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": { "bindings": { @@ -4526,6 +5022,25 @@ }, "type": "object" }, + "Product": { + "description": "Product contains information about a product and how to uniquely identify it.", + "id": "Product", + "properties": { + "genericUri": { + "description": "Contains a URI which is vendor-specific. Example: The artifact repository URL of an image.", + "type": "string" + }, + "id": { + "description": "Token that identifies a product so that it can be referred to from other parts in the document. There is no predefined format as long as it uniquely identifies a group in the context of the current document.", + "type": "string" + }, + "name": { + "description": "Name of the product.", + "type": "string" + } + }, + "type": "object" + }, "ProjectRepoId": { "description": "Selects a repo using a Google Cloud Platform project ID (e.g., winged-cargo-31) and a repo name within that project.", "id": "ProjectRepoId", @@ -4541,6 +5056,46 @@ }, "type": "object" }, + "ProvenanceBuilder": { + "id": "ProvenanceBuilder", + "properties": { + "builderDependencies": { + "items": { + "$ref": "ResourceDescriptor" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "version": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "type": "object" + }, + "Publisher": { + "description": "Publisher contains information about the publisher of this Note.", + "id": "Publisher", + "properties": { + "issuingAuthority": { + "description": "Provides information about the authority of the issuing party to release the document, in particular, the party's constituency and responsibilities or other obligations.", + "type": "string" + }, + "name": { + "description": "Name of the publisher. Examples: 'Google', 'Google Cloud Platform'.", + "type": "string" + }, + "publisherNamespace": { + "description": "The context or namespace. Contains a URL which is under control of the issuing party and can be used as a globally unique identifier for that issuing party. Example: https://csaf.io", + "type": "string" + } + }, + "type": "object" + }, "RelatedUrl": { "description": "Metadata for any related URL information.", "id": "RelatedUrl", @@ -4775,6 +5330,41 @@ }, "type": "object" }, + "Remediation": { + "description": "Specifies details on how to handle (and presumably, fix) a vulnerability.", + "id": "Remediation", + "properties": { + "details": { + "description": "Contains a comprehensive human-readable discussion of the remediation.", + "type": "string" + }, + "remediationType": { + "description": "The type of remediation that can be applied.", + "enum": [ + "REMEDIATION_TYPE_UNSPECIFIED", + "MITIGATION", + "NO_FIX_PLANNED", + "NONE_AVAILABLE", + "VENDOR_FIX", + "WORKAROUND" + ], + "enumDescriptions": [ + "No remediation type specified.", + "A MITIGATION is available.", + "No fix is planned.", + "Not available.", + "A vendor fix is available.", + "A workaround is available." + ], + "type": "string" + }, + "remediationUri": { + "$ref": "RelatedUrl", + "description": "Contains the URL where to obtain the remediation." + } + }, + "type": "object" + }, "RepoId": { "description": "A unique identifier for a Cloud Repo.", "id": "RepoId", @@ -4796,9 +5386,11 @@ "properties": { "contentHash": { "$ref": "Hash", + "deprecated": true, "description": "Deprecated, do not use. Use uri instead. The hash of the resource content. For example, the Docker digest." }, "name": { + "deprecated": true, "description": "Deprecated, do not use. Use uri instead. The name of the resource. For example, the name of a Docker image - \"Debian\".", "type": "string" }, @@ -4809,6 +5401,172 @@ }, "type": "object" }, + "ResourceDescriptor": { + "id": "ResourceDescriptor", + "properties": { + "annotations": { + "additionalProperties": { + "type": "any" + }, + "type": "object" + }, + "content": { + "format": "byte", + "type": "string" + }, + "digest": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "downloadLocation": { + "type": "string" + }, + "mediaType": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "RunDetails": { + "id": "RunDetails", + "properties": { + "builder": { + "$ref": "ProvenanceBuilder" + }, + "byproducts": { + "items": { + "$ref": "ResourceDescriptor" + }, + "type": "array" + }, + "metadata": { + "$ref": "BuildMetadata" + } + }, + "type": "object" + }, + "SBOMReferenceNote": { + "description": "The note representing an SBOM reference.", + "id": "SBOMReferenceNote", + "properties": { + "format": { + "description": "The format that SBOM takes. E.g. may be spdx, cyclonedx, etc...", + "type": "string" + }, + "version": { + "description": "The version of the format that the SBOM takes. E.g. if the format is spdx, the version may be 2.3.", + "type": "string" + } + }, + "type": "object" + }, + "SBOMReferenceOccurrence": { + "description": "The occurrence representing an SBOM reference as applied to a specific resource. The occurrence follows the DSSE specification. See https://github.com/secure-systems-lab/dsse/blob/master/envelope.md for more details.", + "id": "SBOMReferenceOccurrence", + "properties": { + "payload": { + "$ref": "SbomReferenceIntotoPayload", + "description": "The actual payload that contains the SBOM reference data." + }, + "payloadType": { + "description": "The kind of payload that SbomReferenceIntotoPayload takes. Since it's in the intoto format, this value is expected to be 'application/vnd.in-toto+json'.", + "type": "string" + }, + "signatures": { + "description": "The signatures over the payload.", + "items": { + "$ref": "EnvelopeSignature" + }, + "type": "array" + } + }, + "type": "object" + }, + "SBOMStatus": { + "description": "The status of an SBOM generation.", + "id": "SBOMStatus", + "properties": { + "error": { + "description": "If there was an error generating an SBOM, this will indicate what that error was.", + "type": "string" + }, + "sbomState": { + "description": "The progress of the SBOM generation.", + "enum": [ + "SBOM_STATE_UNSPECIFIED", + "PENDING", + "COMPLETE" + ], + "enumDescriptions": [ + "Default unknown state.", + "SBOM scanning is pending.", + "SBOM scanning has completed." + ], + "type": "string" + } + }, + "type": "object" + }, + "SbomReferenceIntotoPayload": { + "description": "The actual payload that contains the SBOM Reference data. The payload follows the intoto statement specification. See https://github.com/in-toto/attestation/blob/main/spec/v1.0/statement.md for more details.", + "id": "SbomReferenceIntotoPayload", + "properties": { + "_type": { + "description": "Identifier for the schema of the Statement.", + "type": "string" + }, + "predicate": { + "$ref": "SbomReferenceIntotoPredicate", + "description": "Additional parameters of the Predicate. Includes the actual data about the SBOM." + }, + "predicateType": { + "description": "URI identifying the type of the Predicate.", + "type": "string" + }, + "subject": { + "description": "Set of software artifacts that the attestation applies to. Each element represents a single software artifact.", + "items": { + "$ref": "Subject" + }, + "type": "array" + } + }, + "type": "object" + }, + "SbomReferenceIntotoPredicate": { + "description": "A predicate which describes the SBOM being referenced.", + "id": "SbomReferenceIntotoPredicate", + "properties": { + "digest": { + "additionalProperties": { + "type": "string" + }, + "description": "A map of algorithm to digest of the contents of the SBOM.", + "type": "object" + }, + "location": { + "description": "The location of the SBOM.", + "type": "string" + }, + "mimeType": { + "description": "The mime type of the SBOM.", + "type": "string" + }, + "referrerId": { + "description": "The person or system referring this predicate to the consumer.", + "type": "string" + } + }, + "type": "object" + }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", @@ -4859,6 +5617,19 @@ }, "type": "object" }, + "SlsaProvenanceV1": { + "description": "Keep in sync with schema at https://github.com/slsa-framework/slsa/blob/main/docs/provenance/schema/v1/provenance.proto Builder renamed to ProvenanceBuilder because of Java conflicts.", + "id": "SlsaProvenanceV1", + "properties": { + "buildDefinition": { + "$ref": "BuildDefinition" + }, + "runDetails": { + "$ref": "RunDetails" + } + }, + "type": "object" + }, "Source": { "description": "Source describes the location of the source used for the build.", "id": "Source", @@ -4941,6 +5712,24 @@ }, "type": "object" }, + "Subject": { + "description": "Set of software artifacts that the attestation applies to. Each element represents a single software artifact.", + "id": "Subject", + "properties": { + "digest": { + "additionalProperties": { + "type": "string" + }, + "description": "`\"\": \"\"` Algorithms can be e.g. sha256, sha512 See https://github.com/in-toto/attestation/blob/main/spec/field_types.md#DigestSet", + "type": "object" + }, + "name": { + "description": "Identifier to distinguish this artifact from others within the subject.", + "type": "string" + } + }, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", @@ -5026,6 +5815,69 @@ }, "type": "object" }, + "VexAssessment": { + "description": "VexAssessment provides all publisher provided Vex information that is related to this vulnerability.", + "id": "VexAssessment", + "properties": { + "cve": { + "deprecated": true, + "description": "Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability. Deprecated: Use vulnerability_id instead to denote CVEs.", + "type": "string" + }, + "impacts": { + "description": "Contains information about the impact of this vulnerability, this will change with time.", + "items": { + "type": "string" + }, + "type": "array" + }, + "justification": { + "$ref": "Justification", + "description": "Justification provides the justification when the state of the assessment if NOT_AFFECTED." + }, + "noteName": { + "description": "The VulnerabilityAssessment note from which this VexAssessment was generated. This will be of the form: `projects/[PROJECT_ID]/notes/[NOTE_ID]`.", + "type": "string" + }, + "relatedUris": { + "description": "Holds a list of references associated with this vulnerability item and assessment.", + "items": { + "$ref": "RelatedUrl" + }, + "type": "array" + }, + "remediations": { + "description": "Specifies details on how to handle (and presumably, fix) a vulnerability.", + "items": { + "$ref": "Remediation" + }, + "type": "array" + }, + "state": { + "description": "Provides the state of this Vulnerability assessment.", + "enum": [ + "STATE_UNSPECIFIED", + "AFFECTED", + "NOT_AFFECTED", + "FIXED", + "UNDER_INVESTIGATION" + ], + "enumDescriptions": [ + "No state is specified.", + "This product is known to be affected by this vulnerability.", + "This product is known to be not affected by this vulnerability.", + "This product contains a fix for this vulnerability.", + "It is not known yet whether these versions are or are not affected by the vulnerability. However, it is still under investigation." + ], + "type": "string" + }, + "vulnerabilityId": { + "description": "The vulnerability identifier for this Assessment. Will hold one of common identifiers e.g. CVE, GHSA etc.", + "type": "string" + } + }, + "type": "object" + }, "Volume": { "description": "Volume describes a Docker container volume which is mounted into build steps in order to persist files across build step execution. Next ID: 3", "id": "Volume", @@ -5121,6 +5973,41 @@ }, "type": "object" }, + "VulnerabilityAssessmentNote": { + "description": "A single VulnerabilityAssessmentNote represents one particular product's vulnerability assessment for one CVE.", + "id": "VulnerabilityAssessmentNote", + "properties": { + "assessment": { + "$ref": "Assessment", + "description": "Represents a vulnerability assessment for the product." + }, + "languageCode": { + "description": "Identifies the language used by this document, corresponding to IETF BCP 47 / RFC 5646.", + "type": "string" + }, + "longDescription": { + "description": "A detailed description of this Vex.", + "type": "string" + }, + "product": { + "$ref": "Product", + "description": "The product affected by this vex." + }, + "publisher": { + "$ref": "Publisher", + "description": "Publisher details of this Note." + }, + "shortDescription": { + "description": "A one sentence description of this Vex.", + "type": "string" + }, + "title": { + "description": "The title of the note. E.g. `Vex-Debian-11.4`", + "type": "string" + } + }, + "type": "object" + }, "VulnerabilityLocation": { "description": "The location of the vulnerability.", "id": "VulnerabilityLocation", diff --git a/etc/api/content/v2.1/content-api.json b/etc/api/content/v2.1/content-api.json index 62864d255c..3f167d125f 100644 --- a/etc/api/content/v2.1/content-api.json +++ b/etc/api/content/v2.1/content-api.json @@ -123,7 +123,7 @@ ] }, "claimwebsite": { - "description": "Claims the website of a Merchant Center sub-account.", + "description": "Claims the website of a Merchant Center sub-account. Merchant accounts with approved third-party CSSs aren't required to claim a website.", "flatPath": "{merchantId}/accounts/{accountId}/claimwebsite", "httpMethod": "POST", "id": "content.accounts.claimwebsite", @@ -1506,6 +1506,213 @@ } } }, + "conversionsources": { + "methods": { + "create": { + "description": "Creates a new conversion source.", + "flatPath": "{merchantId}/conversionsources", + "httpMethod": "POST", + "id": "content.conversionsources.create", + "parameterOrder": [ + "merchantId" + ], + "parameters": { + "merchantId": { + "description": "Required. The ID of the account that owns the new conversion source.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/conversionsources", + "request": { + "$ref": "ConversionSource" + }, + "response": { + "$ref": "ConversionSource" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "delete": { + "description": "Archives an existing conversion source. It will be recoverable for 30 days. This archiving behavior is not typical in the Content API and unique to this service.", + "flatPath": "{merchantId}/conversionsources/{conversionSourceId}", + "httpMethod": "DELETE", + "id": "content.conversionsources.delete", + "parameterOrder": [ + "merchantId", + "conversionSourceId" + ], + "parameters": { + "conversionSourceId": { + "description": "Required. The ID of the conversion source to be deleted.", + "location": "path", + "required": true, + "type": "string" + }, + "merchantId": { + "description": "Required. The ID of the account that owns the new conversion source.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/conversionsources/{conversionSourceId}", + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "get": { + "description": "Fetches a conversion source.", + "flatPath": "{merchantId}/conversionsources/{conversionSourceId}", + "httpMethod": "GET", + "id": "content.conversionsources.get", + "parameterOrder": [ + "merchantId", + "conversionSourceId" + ], + "parameters": { + "conversionSourceId": { + "description": "Required. The REST ID of the collection.", + "location": "path", + "required": true, + "type": "string" + }, + "merchantId": { + "description": "Required. The ID of the account that owns the new conversion source.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/conversionsources/{conversionSourceId}", + "response": { + "$ref": "ConversionSource" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "list": { + "description": "Retrieves the list of conversion sources the caller has access to.", + "flatPath": "{merchantId}/conversionsources", + "httpMethod": "GET", + "id": "content.conversionsources.list", + "parameterOrder": [ + "merchantId" + ], + "parameters": { + "merchantId": { + "description": "Required. The ID of the account that owns the new conversion source.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The maximum number of conversion sources to return in a page. If no `page_size` is specified, `100` is used as the default value. The maximum value is `200`. Values above `200` will be coerced to `200`. Regardless of pagination, at most `200` conversion sources are returned in total.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token.", + "location": "query", + "type": "string" + }, + "showDeleted": { + "description": "If true, also returns archived conversion sources.", + "location": "query", + "type": "boolean" + } + }, + "path": "{merchantId}/conversionsources", + "response": { + "$ref": "ListConversionSourcesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "patch": { + "description": "Updates information of an existing conversion source.", + "flatPath": "{merchantId}/conversionsources/{conversionSourceId}", + "httpMethod": "PATCH", + "id": "content.conversionsources.patch", + "parameterOrder": [ + "merchantId", + "conversionSourceId" + ], + "parameters": { + "conversionSourceId": { + "description": "Required. The ID of the conversion source to be updated.", + "location": "path", + "required": true, + "type": "string" + }, + "merchantId": { + "description": "Required. The ID of the account that owns the new conversion source.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. List of fields being updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "{merchantId}/conversionsources/{conversionSourceId}", + "request": { + "$ref": "ConversionSource" + }, + "response": { + "$ref": "ConversionSource" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "undelete": { + "description": "Re-enables an archived conversion source.", + "flatPath": "{merchantId}/conversionsources/{conversionSourceId}:undelete", + "httpMethod": "POST", + "id": "content.conversionsources.undelete", + "parameterOrder": [ + "merchantId", + "conversionSourceId" + ], + "parameters": { + "conversionSourceId": { + "description": "Required. The ID of the conversion source to be undeleted.", + "location": "path", + "required": true, + "type": "string" + }, + "merchantId": { + "description": "Required. The ID of the account that owns the new conversion source.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/conversionsources/{conversionSourceId}:undelete", + "request": { + "$ref": "UndeleteConversionSourceRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } + }, "csses": { "methods": { "get": { @@ -1967,7 +2174,7 @@ ] }, "requestreview": { - "description": "Requests a review of free listings in a specific region. This method is only available to selected merchants.", + "description": "Requests a review of free listings in a specific region. This method deprecated. Use the `MerchantSupportService` to view product and account issues and request a review.", "flatPath": "{merchantId}/freelistingsprogram/requestreview", "httpMethod": "POST", "id": "content.freelistingsprogram.requestreview", @@ -1991,6 +2198,87 @@ "https://www.googleapis.com/auth/content" ] } + }, + "resources": { + "checkoutsettings": { + "methods": { + "delete": { + "description": "Deletes `Checkout` settings and unenrolls merchant from `Checkout` program.", + "flatPath": "{merchantId}/freelistingsprogram/checkoutsettings", + "httpMethod": "DELETE", + "id": "content.freelistingsprogram.checkoutsettings.delete", + "parameterOrder": [ + "merchantId" + ], + "parameters": { + "merchantId": { + "description": "Required. The ID of the account.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/freelistingsprogram/checkoutsettings", + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "get": { + "description": "Gets Checkout settings for the given merchant. This includes information about review state, enrollment state and URL settings.", + "flatPath": "{merchantId}/freelistingsprogram/checkoutsettings", + "httpMethod": "GET", + "id": "content.freelistingsprogram.checkoutsettings.get", + "parameterOrder": [ + "merchantId" + ], + "parameters": { + "merchantId": { + "description": "Required. The ID of the account.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/freelistingsprogram/checkoutsettings", + "response": { + "$ref": "CheckoutSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "insert": { + "description": "Enrolls merchant in `Checkout` program.", + "flatPath": "{merchantId}/freelistingsprogram/checkoutsettings", + "httpMethod": "POST", + "id": "content.freelistingsprogram.checkoutsettings.insert", + "parameterOrder": [ + "merchantId" + ], + "parameters": { + "merchantId": { + "description": "Required. The ID of the account.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/freelistingsprogram/checkoutsettings", + "request": { + "$ref": "InsertCheckoutSettingsRequest" + }, + "response": { + "$ref": "CheckoutSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } + } } }, "liasettings": { @@ -2271,6 +2559,55 @@ "https://www.googleapis.com/auth/content" ] }, + "setomnichannelexperience": { + "description": "Sets the omnichannel experience for the specified country. Only supported for merchants whose POS data provider is trusted to enable the corresponding experience. For more context, see these help articles [about LFP](https://support.google.com/merchants/answer/7676652) and [how to get started](https://support.google.com/merchants/answer/7676578) with it.", + "flatPath": "{merchantId}/liasettings/{accountId}/setomnichannelexperience", + "httpMethod": "POST", + "id": "content.liasettings.setomnichannelexperience", + "parameterOrder": [ + "merchantId", + "accountId" + ], + "parameters": { + "accountId": { + "description": "The ID of the account for which to retrieve accessible Business Profiles.", + "format": "uint64", + "location": "path", + "required": true, + "type": "string" + }, + "country": { + "description": "The CLDR country code (for example, \"US\") for which the omnichannel experience is selected.", + "location": "query", + "type": "string" + }, + "lsfType": { + "description": "The Local Store Front (LSF) type for this country. Acceptable values are: - \"`ghlsf`\" (Google-Hosted Local Store Front) - \"`mhlsfBasic`\" (Merchant-Hosted Local Store Front Basic) - \"`mhlsfFull`\" (Merchant-Hosted Local Store Front Full) More details about these types can be found here.", + "location": "query", + "type": "string" + }, + "merchantId": { + "description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and `accountId` must be the ID of a sub-account of this account.", + "format": "uint64", + "location": "path", + "required": true, + "type": "string" + }, + "pickupTypes": { + "description": "The Pickup types for this country. Acceptable values are: - \"`pickupToday`\" - \"`pickupLater`\" ", + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "{merchantId}/liasettings/{accountId}/setomnichannelexperience", + "response": { + "$ref": "LiaOmnichannelExperience" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, "setposdataprovider": { "description": "Sets the POS data provider for the specified country.", "flatPath": "{merchantId}/liasettings/{accountId}/setposdataprovider", @@ -2417,6 +2754,93 @@ } } }, + "merchantsupport": { + "methods": { + "renderaccountissues": { + "description": "Provide a list of merchant's issues with a support content and available actions. This content and actions are meant to be rendered and shown in third-party applications.", + "flatPath": "{merchantId}/merchantsupport/renderaccountissues", + "httpMethod": "POST", + "id": "content.merchantsupport.renderaccountissues", + "parameterOrder": [ + "merchantId" + ], + "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`.", + "location": "query", + "type": "string" + }, + "merchantId": { + "description": "Required. The ID of the account to fetch issues for.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "timeZone": { + "description": "Optional. The [IANA](https://www.iana.org/time-zones) timezone used to localize times in support content. For example 'America/Los_Angeles'. If not set, results will use as a default UTC.", + "location": "query", + "type": "string" + } + }, + "path": "{merchantId}/merchantsupport/renderaccountissues", + "request": { + "$ref": "RenderAccountIssuesRequestPayload" + }, + "response": { + "$ref": "RenderAccountIssuesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "renderproductissues": { + "description": "Provide a list of issues for merchant's product with a support content and available actions. This content and actions are meant to be rendered and shown in third-party applications.", + "flatPath": "{merchantId}/merchantsupport/renderproductissues/{productId}", + "httpMethod": "POST", + "id": "content.merchantsupport.renderproductissues", + "parameterOrder": [ + "merchantId", + "productId" + ], + "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`.", + "location": "query", + "type": "string" + }, + "merchantId": { + "description": "Required. The ID of the account that contains the product.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The [REST_ID](https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.id) of the product to fetch issues for.", + "location": "path", + "required": true, + "type": "string" + }, + "timeZone": { + "description": "Optional. The [IANA](https://www.iana.org/time-zones) timezone used to localize times in support content. For example 'America/Los_Angeles'. If not set, results will use as a default UTC.", + "location": "query", + "type": "string" + } + }, + "path": "{merchantId}/merchantsupport/renderproductissues/{productId}", + "request": { + "$ref": "RenderProductIssuesRequestPayload" + }, + "response": { + "$ref": "RenderProductIssuesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } + }, "orderinvoices": { "methods": { "createchargeinvoice": { @@ -4222,7 +4646,7 @@ ], "parameters": { "maxResults": { - "description": "The maximum number of products to return in the response, used for paging.", + "description": "The maximum number of products to return in the response, used for paging. The default value is 25. The maximum value is 250.", "format": "uint32", "location": "query", "type": "integer" @@ -4365,7 +4789,7 @@ "type": "string" }, "maxResults": { - "description": "The maximum number of product statuses to return in the response, used for paging.", + "description": "The maximum number of product statuses to return in the response, used for paging. The default value is 25. The maximum value is 250.", "format": "uint32", "location": "query", "type": "integer" @@ -4391,70 +4815,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": { @@ -4518,6 +4878,52 @@ "scopes": [ "https://www.googleapis.com/auth/content" ] + }, + "list": { + "description": "List all promotions from your Merchant Center account.", + "flatPath": "{merchantId}/promotions", + "httpMethod": "GET", + "id": "content.promotions.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 promotions target country.", + "location": "query", + "type": "string" + }, + "languageCode": { + "description": "The two-letter ISO 639-1 language code associated with the promotions, used as a filter.", + "location": "query", + "type": "string" + }, + "merchantId": { + "description": "Required. The ID of the account that contains the collection.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The maximum number of promotions to return. The service may return fewer than this value. If unspecified, at most 50 labels will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListPromotion` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPromotion` must match the call that provided the page token.", + "location": "query", + "type": "string" + } + }, + "path": "{merchantId}/promotions", + "response": { + "$ref": "ListPromotionResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] } } }, @@ -4618,6 +5024,71 @@ } } }, + "recommendations": { + "methods": { + "generate": { + "description": "Generates recommendations for a merchant.", + "flatPath": "{merchantId}/recommendations/generate", + "httpMethod": "GET", + "id": "content.recommendations.generate", + "parameterOrder": [ + "merchantId" + ], + "parameters": { + "allowedTag": { + "description": "Optional. List of allowed tags. Tags are a set of predefined strings that describe the category that individual recommendation types belong to. User can specify zero or more tags in this field to indicate what categories of recommendations they want to receive. Current list of supported tags: - TREND", + "location": "query", + "repeated": true, + "type": "string" + }, + "languageCode": { + "description": "Optional. Language code of the client. If not set, the result will be in default language (English). This language code affects all fields prefixed with \"localized\". This should be set to ISO 639-1 country code. List of currently verified supported language code: en, fr, cs, da, de, es, it, nl, no, pl, pt, pt, fi, sv, vi, tr, th, ko, zh-CN, zh-TW, ja, id, hi", + "location": "query", + "type": "string" + }, + "merchantId": { + "description": "Required. The ID of the account to fetch recommendations for.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/recommendations/generate", + "response": { + "$ref": "GenerateRecommendationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "reportInteraction": { + "description": "Reports an interaction on a recommendation for a merchant.", + "flatPath": "{merchantId}/recommendations/reportInteraction", + "httpMethod": "POST", + "id": "content.recommendations.reportInteraction", + "parameterOrder": [ + "merchantId" + ], + "parameters": { + "merchantId": { + "description": "Required. The ID of the account that wants to report an interaction.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/recommendations/reportInteraction", + "request": { + "$ref": "ReportInteractionRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } + }, "regionalinventory": { "methods": { "custombatch": { @@ -4853,7 +5324,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", @@ -4882,244 +5353,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) (e.g. \"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": "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": { @@ -5926,7 +6159,7 @@ ] }, "requestreview": { - "description": "Requests a review of Shopping ads in a specific region. This method is only available to selected merchants.", + "description": "Requests a review of Shopping ads in a specific region. This method deprecated. Use the `MerchantSupportService` to view product and account issues and request a review.", "flatPath": "{merchantId}/shoppingadsprogram/requestreview", "httpMethod": "POST", "id": "content.shoppingadsprogram.requestreview", @@ -5953,7 +6186,7 @@ } } }, - "revision": "20230112", + "revision": "20240227", "rootUrl": "https://shoppingcontent.googleapis.com/", "schemas": { "Account": { @@ -5988,10 +6221,18 @@ }, "type": "array" }, + "businessIdentity": { + "$ref": "AccountBusinessIdentity", + "description": "The business identity attributes can be used to self-declare attributes that let customers know more about your business." + }, "businessInformation": { "$ref": "AccountBusinessInformation", "description": "The business information of the account." }, + "conversionSettings": { + "$ref": "AccountConversionSettings", + "description": "Settings for conversion tracking." + }, "cssId": { "description": "ID of CSS the account belongs to.", "format": "uint64", @@ -6107,6 +6348,37 @@ }, "type": "object" }, + "AccountBusinessIdentity": { + "description": "The [business identity attributes](https://support.google.com/merchants/answer/10342414) can be used to self-declare attributes that let customers know more about your business.", + "id": "AccountBusinessIdentity", + "properties": { + "blackOwned": { + "$ref": "AccountIdentityType", + "description": "Specifies whether the business identifies itself as being black-owned. This optional field is only available for merchants with a business country set to \"US\". This field is not allowed for marketplaces or marketplace sellers." + }, + "includeForPromotions": { + "description": "Required. By setting this field, your business may be included in promotions for all the selected attributes. If you clear this option, it won't affect your identification with any of the attributes. For this field to be set, the merchant must self identify with at least one of the `AccountIdentityType`. If none are included, the request will be considered invalid.", + "type": "boolean" + }, + "latinoOwned": { + "$ref": "AccountIdentityType", + "description": "Specifies whether the business identifies itself as being latino-owned. This optional field is only available for merchants with a business country set to \"US\". This field is not allowed for marketplaces or marketplace sellers." + }, + "smallBusiness": { + "$ref": "AccountIdentityType", + "description": "Specifies whether the business identifies itself as a small business. This optional field is only available for merchants with a business country set to \"US\". It is also not allowed for marketplaces, but it is allowed to marketplace sellers." + }, + "veteranOwned": { + "$ref": "AccountIdentityType", + "description": "Specifies whether the business identifies itself as being veteran-owned. This optional field is only available for merchants with a business country set to \"US\". This field is not allowed for marketplaces or marketplace sellers." + }, + "womenOwned": { + "$ref": "AccountIdentityType", + "description": "Specifies whether the business identifies itself as being women-owned. This optional field is only available for merchants with a business country set to \"US\". This field is not allowed for marketplaces or marketplace sellers." + } + }, + "type": "object" + }, "AccountBusinessInformation": { "id": "AccountBusinessInformation", "properties": { @@ -6123,7 +6395,7 @@ "type": "string" }, "phoneNumber": { - "description": "The phone number of the business. This can only be updated if a verified phone number is not already set. To replace a verified phone number use the `Accounts.requestphoneverification` and `Accounts.verifyphonenumber`.", + "description": "The phone number of the business in [E.164](https://en.wikipedia.org/wiki/E.164) format. This can only be updated if a verified phone number is not already set. To replace a verified phone number use the `Accounts.requestphoneverification` and `Accounts.verifyphonenumber`.", "type": "string" }, "phoneVerificationStatus": { @@ -6133,6 +6405,17 @@ }, "type": "object" }, + "AccountConversionSettings": { + "description": "Settings for conversion tracking.", + "id": "AccountConversionSettings", + "properties": { + "freeListingsAutoTaggingEnabled": { + "description": "When enabled, free listing URLs have a parameter to enable conversion tracking for products owned by the current merchant account. See [auto-tagging](https://support.google.com/merchants/answer/11127659).", + "type": "boolean" + } + }, + "type": "object" + }, "AccountCredentials": { "description": "Credentials allowing Google to call a partner's API on behalf of a merchant.", "id": "AccountCredentials", @@ -6153,6 +6436,11 @@ "SHOPIFY_ORDER_MANAGEMENT", "SHOPIFY_INTEGRATION" ], + "enumDeprecated": [ + false, + true, + false + ], "enumDescriptions": [ "Unknown purpose.", "The credentials allow Google to manage Shopify orders on behalf of the merchant (deprecated).", @@ -6215,6 +6503,17 @@ }, "type": "object" }, + "AccountIdentityType": { + "description": "The account identity type used to specify attributes.", + "id": "AccountIdentityType", + "properties": { + "selfIdentified": { + "description": "Optional. Indicates that the business identifies itself with a given identity type. Setting this field does not automatically mean eligibility for promotions.", + "type": "boolean" + } + }, + "type": "object" + }, "AccountImageImprovements": { "description": "This improvement will attempt to automatically correct submitted images if they don't meet the [image requirements](https://support.google.com/merchants/answer/6324350), for example, removing overlays. If successful, the image will be replaced and approved. This improvement is only applied to images of disapproved offers. For more information see: [Automatic image improvements](https://support.google.com/merchants/answer/9242973)", "id": "AccountImageImprovements", @@ -6242,6 +6541,66 @@ }, "type": "object" }, + "AccountIssue": { + "description": "An issue affecting specific merchant.", + "id": "AccountIssue", + "properties": { + "actions": { + "description": "A list of actionable steps that can be executed to solve the issue. An example is requesting a re-review or providing arguments when merchant disagrees with the issue. Actions that are supported in (your) third-party application can be rendered as buttons and should be available to merchant when they expand the issue.", + "items": { + "$ref": "Action" + }, + "type": "array" + }, + "impact": { + "$ref": "AccountIssueImpact", + "description": "Clarifies the severity of the issue. The summarizing message, if present, should be shown right under the title for each issue. It helps merchants to quickly understand the impact of the issue. The detailed breakdown helps the merchant to fully understand the impact of the issue. It can be rendered as dialog that opens when the merchant mouse over the summarized impact statement. Issues with different severity can be styled differently. They may use a different color or icon to signal the difference between `ERROR`, `WARNING` and `INFO`." + }, + "prerenderedContent": { + "description": "Details of the issue as a pre-rendered HTML. HTML elements contain CSS classes that can be used to customize the style of the content. Always sanitize the HTML before embedding it directly to your application. The sanitizer needs to allow basic HTML tags, such as: `div`, `span`, `p`, `a`, `ul`, `li`, `table`, `tr`, `td`. For example, you can use [DOMPurify](https://www.npmjs.com/package/dompurify). CSS classes: * `issue-detail` - top level container for the detail of the issue * `callout-banners` - section of the `issue-detail` with callout banners * `callout-banner` - single callout banner, inside `callout-banners` * `callout-banner-info` - callout with important information (default) * `callout-banner-warning` - callout with a warning * `callout-banner-error` - callout informing about an error (most severe) * `issue-content` - section of the `issue-detail`, contains multiple `content-element` * `content-element` - content element such as a list, link or paragraph, inside `issue-content` * `root-causes` - unordered list with items describing root causes of the issue, inside `issue-content` * `root-causes-intro` - intro text before the `root-causes` list, inside `issue-content` * `segment` - section of the text, `span` inside paragraph * `segment-attribute` - section of the text that represents a product attribute, for example 'image\\_link' * `segment-literal` - section of the text that contains a special value, for example '0-1000 kg' * `segment-bold` - section of the text that should be rendered as bold * `segment-italic` - section of the text that should be rendered as italic * `tooltip` - used on paragraphs that should be rendered with a tooltip. A section of the text in such a paragraph will have a class `tooltip-text` and is intended to be shown in a mouse over dialog. If the style is not used, the `tooltip-text` section would be shown on a new line, after the main part of the text. * `tooltip-text` - marks a section of the text within a `tooltip`, that is intended to be shown in a mouse over dialog. * `tooltip-icon` - marks a section of the text within a `tooltip`, that can be replaced with a tooltip icon, for example '?' or 'i'. By default, this section contains a `br` tag, that is separating the main text and the tooltip text when the style is not used. * `tooltip-style-question` - the tooltip shows helpful information, can use the '?' as an icon. * `tooltip-style-info` - the tooltip adds additional information fitting to the context, can use the 'i' as an icon. * `content-moderation` - marks the paragraph that explains how the issue was identified. * `new-element` - Present for new elements added to the pre-rendered content in the future. To make sure that a new content element does not break your style, you can hide everything with this class.", + "type": "string" + }, + "title": { + "description": "Title of the issue.", + "type": "string" + } + }, + "type": "object" + }, + "AccountIssueImpact": { + "description": "Overall impact of the issue.", + "id": "AccountIssueImpact", + "properties": { + "breakdowns": { + "description": "Detailed impact breakdown. Explains the types of restriction the issue has in different shopping destinations and territory. If present, it should be rendered to the merchant. Can be shown as a mouse over dropdown or a dialog. Each breakdown item represents a group of regions with the same impact details.", + "items": { + "$ref": "Breakdown" + }, + "type": "array" + }, + "message": { + "description": "Optional. Message summarizing the overall impact of the issue. If present, it should be rendered to the merchant. For example: \"Disapproves 90k offers in 25 countries\"", + "type": "string" + }, + "severity": { + "description": "The severity of the issue.", + "enum": [ + "SEVERITY_UNSPECIFIED", + "ERROR", + "WARNING", + "INFO" + ], + "enumDescriptions": [ + "Default value. Will never be provided by the API.", + "Causes either an account suspension or an item disapproval. Errors should be resolved as soon as possible to ensure items are eligible to appear in results again.", + "Warnings can negatively impact the performance of ads and can lead to item or account suspensions in the future unless the issue is resolved.", + "Infos are suggested optimizations to increase data quality. Resolving these issues is recommended, but not required." + ], + "type": "string" + } + }, + "type": "object" + }, "AccountItemUpdates": { "description": "Turning on [item updates](https://support.google.com/merchants/answer/3246284) allows Google to automatically update items for you. When item updates are on, Google uses the structured data markup on the website and advanced data extractors to update the price and availability of the items. When the item updates are off, items with mismatched data aren't shown.", "id": "AccountItemUpdates", @@ -6745,7 +7104,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": { @@ -6753,7 +7112,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" }, @@ -7118,6 +7477,55 @@ }, "type": "object" }, + "Action": { + "description": "An actionable step that can be executed to solve the issue.", + "id": "Action", + "properties": { + "builtinSimpleAction": { + "$ref": "BuiltInSimpleAction", + "description": "Action implemented and performed in (your) third-party application. The application should point the merchant to the place, where they can access the corresponding functionality or provide instructions, if the specific functionality is not available." + }, + "buttonLabel": { + "description": "Label of the action button.", + "type": "string" + }, + "externalAction": { + "$ref": "ExternalAction", + "description": "Action that is implemented and performed outside of (your) third-party application. The application needs to redirect the merchant to the external location where they can perform the action." + }, + "isAvailable": { + "description": "Controlling whether the button is active or disabled. The value is 'false' when the action was already requested or is not available. If the action is not available then a reason will be present. If (your) third-party application shows a disabled button for action that is not available, then it should also show reasons.", + "type": "boolean" + }, + "reasons": { + "description": "List of reasons why the action is not available. The list of reasons is empty if the action is available. If there is only one reason, it can be displayed next to the disabled button. If there are more reasons, all of them should be displayed, for example in a pop-up dialog.", + "items": { + "$ref": "ActionReason" + }, + "type": "array" + } + }, + "type": "object" + }, + "ActionReason": { + "description": "A single reason why the action is not available.", + "id": "ActionReason", + "properties": { + "action": { + "$ref": "Action", + "description": "Optional. An action that needs to be performed to solve the problem represented by this reason. This action will always be available. Should be rendered as a link or button next to the summarizing message. For example, the review may be available only once merchant configure all required attributes. In such a situation this action can be a link to the form, where they can fill the missing attribute to unblock the main action." + }, + "detail": { + "description": "Detailed explanation of the reason. Should be displayed as a hint if present.", + "type": "string" + }, + "message": { + "description": "Messages summarizing the reason, why the action is not available. For example: \"Review requested on Jan 03. Review requests can take a few days to complete.\"", + "type": "string" + } + }, + "type": "object" + }, "ActivateBuyOnGoogleProgramRequest": { "description": "Request message for the ActivateProgram method.", "id": "ActivateBuyOnGoogleProgramRequest", @@ -7150,6 +7558,21 @@ }, "type": "object" }, + "AlternateDisputeResolution": { + "description": "The Alternate Dispute Resolution (ADR) that may be available to merchants in some regions. If present, the link should be shown on the same page as the list of issues.", + "id": "AlternateDisputeResolution", + "properties": { + "label": { + "description": "The label for the alternate dispute resolution link.", + "type": "string" + }, + "uri": { + "description": "The URL pointing to a page, where merchant can request alternative dispute resolution with an [external body](https://support.google.com/european-union-digital-services-act-redress-options/answer/13535501).", + "type": "string" + } + }, + "type": "object" + }, "Amount": { "id": "Amount", "properties": { @@ -7164,8 +7587,68 @@ }, "type": "object" }, + "AttributionSettings": { + "description": "Represents attribution settings for conversion sources receiving pre-attribution data.", + "id": "AttributionSettings", + "properties": { + "attributionLookbackWindowInDays": { + "description": "Required. Lookback windows (in days) used for attribution in this source. Supported values are 7, 30, 40.", + "format": "int32", + "type": "integer" + }, + "attributionModel": { + "description": "Required. Attribution model.", + "enum": [ + "ATTRIBUTION_MODEL_UNSPECIFIED", + "CROSS_CHANNEL_LAST_CLICK", + "ADS_PREFERRED_LAST_CLICK", + "CROSS_CHANNEL_DATA_DRIVEN", + "CROSS_CHANNEL_FIRST_CLICK", + "CROSS_CHANNEL_LINEAR", + "CROSS_CHANNEL_POSITION_BASED", + "CROSS_CHANNEL_TIME_DECAY" + ], + "enumDescriptions": [ + "", + "Cross-channel Last Click model.", + "Ads-preferred Last Click model.", + "Cross-channel Data Driven model.", + "Cross-channel First Click model.", + "Cross-channel Linear model.", + "Cross-channel Position Based model.", + "Cross-channel Time Decay model." + ], + "type": "string" + }, + "conversionType": { + "description": "Immutable. Unordered list. List of different conversion types a conversion event can be classified as. A standard \"purchase\" type will be automatically created if this list is empty at creation time.", + "items": { + "$ref": "AttributionSettingsConversionType" + }, + "type": "array" + } + }, + "type": "object" + }, + "AttributionSettingsConversionType": { + "description": "Message representing a types of conversion events", + "id": "AttributionSettingsConversionType", + "properties": { + "includeInReporting": { + "description": "Output only. Option indicating if the type should be included in Merchant Center reporting.", + "readOnly": true, + "type": "boolean" + }, + "name": { + "description": "Output only. Conversion event name, as it'll be reported by the client.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "BestSellers": { - "description": "Fields related to the [Best Sellers reports](https://support.google.com/merchants/answer/9488679).", + "description": "Fields related to the [Best sellers reports](https://support.google.com/merchants/answer/9488679).", "id": "BestSellers", "properties": { "categoryId": { @@ -7275,6 +7758,103 @@ }, "type": "object" }, + "Breakdown": { + "description": "A detailed impact breakdown for a group of regions where the impact of the issue on different shopping destinations is the same.", + "id": "Breakdown", + "properties": { + "details": { + "description": "Human readable, localized description of issue's effect on different targets. Should be rendered as a list. For example: * \"Products not showing in ads\" * \"Products not showing organically\"", + "items": { + "type": "string" + }, + "type": "array" + }, + "regions": { + "description": "Lists of regions. Should be rendered as a title for this group of details. The full list should be shown to merchant. If the list is too long, it is recommended to make it expandable.", + "items": { + "$ref": "BreakdownRegion" + }, + "type": "array" + } + }, + "type": "object" + }, + "BreakdownRegion": { + "description": "Region with code and localized name.", + "id": "BreakdownRegion", + "properties": { + "code": { + "description": "The [CLDR territory code] (http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)", + "type": "string" + }, + "name": { + "description": "The localized name of the region. For region with code='001' the value is 'All countries' or the equivalent in other languages.", + "type": "string" + } + }, + "type": "object" + }, + "BuiltInSimpleAction": { + "description": "Action that is implemented and performed in (your) third-party application. Represents various functionality that is expected to be available to merchant and will help them with resolving the issue. The application should point the merchant to the place, where they can access the corresponding functionality. If the functionality is not supported, it is recommended to explain the situation to merchant and provide them with instructions how to solve the issue.", + "id": "BuiltInSimpleAction", + "properties": { + "additionalContent": { + "$ref": "BuiltInSimpleActionAdditionalContent", + "description": "Long text from an external source that should be available to the merchant. Present when the type is `SHOW_ADDITIONAL_CONTENT`." + }, + "attributeCode": { + "description": "The attribute that needs to be updated. Present when the type is `EDIT_ITEM_ATTRIBUTE`. This field contains a code for attribute, represented in snake_case. You can find a list of product's attributes, with their codes [here](https://support.google.com/merchants/answer/7052112).", + "type": "string" + }, + "type": { + "description": "The type of action that represents a functionality that is expected to be available in third-party application.", + "enum": [ + "BUILT_IN_SIMPLE_ACTION_TYPE_UNSPECIFIED", + "VERIFY_PHONE", + "CLAIM_WEBSITE", + "ADD_PRODUCTS", + "ADD_CONTACT_INFO", + "LINK_ADS_ACCOUNT", + "ADD_BUSINESS_REGISTRATION_NUMBER", + "EDIT_ITEM_ATTRIBUTE", + "FIX_ACCOUNT_ISSUE", + "SHOW_ADDITIONAL_CONTENT" + ], + "enumDescriptions": [ + "Default value. Will never be provided by the API.", + "Redirect merchant to the part of your application where they can verify their phone.", + "Redirect merchant to the part of your application where they can claim their website.", + "Redirect merchant to the part of your application where they can add products.", + "Open a form where the merchant can edit their contact information.", + "Redirect merchant to the part of your application where they can link ads account.", + "Open a form where the merchant can add their business registration number.", + "Open a form where the merchant can edit an attribute. The attribute that needs to be updated is specified in attribute_code field of the action.", + "Redirect merchant from the product issues to the diagnostic page with their account issues in your application. This action will be returned only for product issues that are caused by an account issue and thus merchant should resolve the problem on the account level.", + "Show additional content to the merchant. This action will be used for example to deliver a justification from national authority." + ], + "type": "string" + } + }, + "type": "object" + }, + "BuiltInSimpleActionAdditionalContent": { + "description": "Long text from external source.", + "id": "BuiltInSimpleActionAdditionalContent", + "properties": { + "paragraphs": { + "description": "Long text organized into paragraphs.", + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "description": "Title of the additional content;", + "type": "string" + } + }, + "type": "object" + }, "BusinessDayConfig": { "id": "BusinessDayConfig", "properties": { @@ -7365,7 +7945,8 @@ "PENDING_REVIEW", "REVIEW_DISAPPROVED", "ACTIVE", - "PAUSED" + "PAUSED", + "DEPRECATED" ], "enumDescriptions": [ "Default value when participation stage is not set.", @@ -7376,7 +7957,8 @@ "Merchant is waiting for the review to be completed in a specific region code.", "The review for a merchant has been rejected in a specific region code.", "Merchant's program participation is active for a specific region code.", - "Participation has been paused." + "Participation has been paused.", + "The program cannot be further reactivated or paused. See more about [Buy on Google](https://support.google.com/merchants/answer/7679273)." ], "readOnly": true, "type": "string" @@ -7469,6 +8051,146 @@ }, "type": "object" }, + "CheckoutSettings": { + "description": "`CheckoutSettings` for a specific merchant ID.", + "id": "CheckoutSettings", + "properties": { + "effectiveEnrollmentState": { + "description": "Output only. The effective value of enrollment state for a given merchant ID. If account level settings are present then this value will be a copy of the account level settings. Otherwise, it will have the value of the parent account.", + "enum": [ + "CHECKOUT_ON_MERCHANT_ENROLLMENT_STATE_UNSPECIFIED", + "INACTIVE", + "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 previously enrolled but opted out of the feature." + ], + "readOnly": true, + "type": "string" + }, + "effectiveReviewState": { + "description": "Output only. The effective value of review state for a given merchant ID. If account level settings are present then this value will be a copy of the account level settings. Otherwise, it will have the value of the parent account.", + "enum": [ + "CHECKOUT_ON_MERCHANT_REVIEW_STATE_UNSPECIFIED", + "IN_REVIEW", + "APPROVED", + "DISAPPROVED" + ], + "enumDescriptions": [ + "Default review state when review state is not specified.", + "Merchant provided URLs are being reviewed for data quality issues.", + "Merchant account has been approved. Indicates the data quality checks have passed.", + "Merchant account has been disapproved due to data quality issues." + ], + "readOnly": true, + "type": "string" + }, + "effectiveUriSettings": { + "$ref": "UrlSettings", + "description": "The effective value of `url_settings` for a given merchant ID. If account level settings are present then this value will be a copy of the account level settings. Otherwise, it will have the value of the parent account." + }, + "enrollmentState": { + "description": "Output only. Reflects the merchant enrollment state in `Checkout` feature.", + "enum": [ + "CHECKOUT_ON_MERCHANT_ENROLLMENT_STATE_UNSPECIFIED", + "INACTIVE", + "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 previously enrolled but opted out of the feature." + ], + "readOnly": true, + "type": "string" + }, + "merchantId": { + "description": "Required. The ID of the account.", + "format": "int64", + "type": "string" + }, + "reviewState": { + "description": "Output only. Reflects the merchant review state in `Checkout` feature. This is set based on the data quality reviews of the URL provided by the merchant. A merchant with enrollment state as `ENROLLED` can be in the following review states: `IN_REVIEW`, `APPROVED` or `DISAPPROVED`. A merchant must be in an enrollment_state of `ENROLLED` before a review can begin for the merchant.", + "enum": [ + "CHECKOUT_ON_MERCHANT_REVIEW_STATE_UNSPECIFIED", + "IN_REVIEW", + "APPROVED", + "DISAPPROVED" + ], + "enumDescriptions": [ + "Default review state when review state is not specified.", + "Merchant provided URLs are being reviewed for data quality issues.", + "Merchant account has been approved. Indicates the data quality checks have passed.", + "Merchant account has been disapproved due to data quality issues." + ], + "readOnly": true, + "type": "string" + }, + "uriSettings": { + "$ref": "UrlSettings", + "description": "URL settings for cart or checkout URL." + } + }, + "type": "object" + }, + "CloudExportAdditionalProperties": { + "description": "Product property for the Cloud Retail API. For example, properties for a TV product could be \"Screen-Resolution\" or \"Screen-Size\".", + "id": "CloudExportAdditionalProperties", + "properties": { + "boolValue": { + "description": "Boolean value of the given property. For example for a TV product, \"True\" or \"False\" if the screen is UHD.", + "type": "boolean" + }, + "floatValue": { + "description": "Float values of the given property. For example for a TV product 1.2345. Maximum number of specified values for this field is 400. Values are stored in an arbitrary but consistent order.", + "items": { + "format": "float", + "type": "number" + }, + "type": "array" + }, + "intValue": { + "description": "Integer values of the given property. For example, 1080 for a screen resolution of a TV product. Maximum number of specified values for this field is 400. Values are stored in an arbitrary but consistent order.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "maxValue": { + "description": "Maximum float value of the given property. For example for a TV product 100.00.", + "format": "float", + "type": "number" + }, + "minValue": { + "description": "Minimum float value of the given property. For example for a TV product 1.00.", + "format": "float", + "type": "number" + }, + "propertyName": { + "description": "Name of the given property. For example, \"Screen-Resolution\" for a TV product. Maximum string size is 256 characters.", + "type": "string" + }, + "textValue": { + "description": "Text value of the given property. For example, \"8K(UHD)\" could be a text value for a TV product. Maximum number of specified values for this field is 400. Values are stored in an arbitrary but consistent order. Maximum string size is 256 characters.", + "items": { + "type": "string" + }, + "type": "array" + }, + "unitCode": { + "description": "Unit of the given property. For example, \"Pixels\" for a TV product. Maximum string size is 256 bytes.", + "type": "string" + } + }, + "type": "object" + }, "Collection": { "description": "The collection message.", "id": "Collection", @@ -7673,6 +8395,128 @@ }, "type": "object" }, + "CompetitiveVisibility": { + "description": "Fields related to [competitive visibility reports] (https://support.google.com/merchants/answer/11366442).", + "id": "CompetitiveVisibility", + "properties": { + "adsOrganicRatio": { + "description": "[Ads / organic ratio] (https://support.google.com/merchants/answer/11366442#zippy=%2Cadsfree-ratio) shows how often a merchant receives impressions from Shopping ads compared to organic traffic. The number is rounded and bucketed. Available only in `CompetitiveVisibilityTopMerchantView` and `CompetitiveVisibilityCompetitorView`. Cannot be filtered on in the 'WHERE' clause.", + "format": "double", + "type": "number" + }, + "categoryBenchmarkVisibilityTrend": { + "description": "Change in visibility based on impressions with respect to the start of the selected time range (or first day with non-zero impressions) for a combined set of merchants with highest visibility approximating the market. Available only in `CompetitiveVisibilityBenchmarkView`. Cannot be filtered on in the 'WHERE' clause.", + "format": "double", + "type": "number" + }, + "categoryId": { + "description": "Google product category ID to calculate the report for, represented in [Google's product taxonomy](https://support.google.com/merchants/answer/6324436). Required in the `SELECT` clause. A `WHERE` condition on `competitive_visibility.category_id` is required in the query.", + "format": "int64", + "type": "string" + }, + "countryCode": { + "description": "The country where impression appeared. Required in the `SELECT` clause. A `WHERE` condition on `competitive_visibility.country_code` is required in the query.", + "type": "string" + }, + "date": { + "$ref": "Date", + "description": "Date of this row. Available only in `CompetitiveVisibilityBenchmarkView` and `CompetitiveVisibilityCompetitorView`. Required in the `SELECT` clause for `CompetitiveVisibilityMarketBenchmarkView`." + }, + "domain": { + "description": "Domain of your competitor or your domain, if 'is_your_domain' is true. Available only in `CompetitiveVisibilityTopMerchantView` and `CompetitiveVisibilityCompetitorView`. Required in the `SELECT` clause for `CompetitiveVisibilityTopMerchantView` and `CompetitiveVisibilityCompetitorView`. Cannot be filtered on in the 'WHERE' clause.", + "type": "string" + }, + "higherPositionRate": { + "description": "Higher position rate shows how often a competitor\u2019s offer got placed in a higher position on the page than your offer. Available only in `CompetitiveVisibilityTopMerchantView` and `CompetitiveVisibilityCompetitorView`. Cannot be filtered on in the 'WHERE' clause.", + "format": "double", + "type": "number" + }, + "isYourDomain": { + "description": "True if this row contains data for your domain. Available only in `CompetitiveVisibilityTopMerchantView` and `CompetitiveVisibilityCompetitorView`. Cannot be filtered on in the 'WHERE' clause.", + "type": "boolean" + }, + "pageOverlapRate": { + "description": "Page overlap rate describes how frequently competing retailers\u2019 offers are shown together with your offers on the same page. Available only in `CompetitiveVisibilityTopMerchantView` and `CompetitiveVisibilityCompetitorView`. Cannot be filtered on in the 'WHERE' clause.", + "format": "double", + "type": "number" + }, + "rank": { + "description": "Position of the domain in the top merchants ranking for the selected keys (`date`, `category_id`, `country_code`, `listing_type`) based on impressions. 1 is the highest. Available only in `CompetitiveVisibilityTopMerchantView` and `CompetitiveVisibilityCompetitorView`. Cannot be filtered on in the 'WHERE' clause.", + "format": "uint64", + "type": "string" + }, + "relativeVisibility": { + "description": "Relative visibility shows how often your competitors\u2019 offers are shown compared to your offers. In other words, this is the number of displayed impressions of a competitor retailer divided by the number of your displayed impressions during a selected time range for a selected product category and country. Available only in `CompetitiveVisibilityCompetitorView`. Cannot be filtered on in the 'WHERE' clause.", + "format": "double", + "type": "number" + }, + "trafficSource": { + "description": "Type of impression listing. Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' clause.", + "enum": [ + "UNKNOWN", + "ORGANIC", + "ADS", + "ALL" + ], + "enumDescriptions": [ + "Traffic source is unknown.", + "Organic traffic.", + "Traffic from Ads.", + "Organic and Ads traffic." + ], + "type": "string" + }, + "yourDomainVisibilityTrend": { + "description": "Change in visibility based on impressions for your domain with respect to the start of the selected time range (or first day with non-zero impressions). Available only in `CompetitiveVisibilityBenchmarkView`. Cannot be filtered on in the 'WHERE' clause.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "ConversionSource": { + "description": "Represents a conversion source owned by a Merchant account. A merchant account can have up to 200 conversion sources.", + "id": "ConversionSource", + "properties": { + "conversionSourceId": { + "description": "Output only. Generated by the Content API upon creation of a new `ConversionSource`. Format: [a-z]{4}:.+ The four characters before the colon represent the type of conversio source. Content after the colon represents the ID of the conversion source within that type. The ID of two different conversion sources might be the same across different types. The following type prefixes are supported: - galk: For GoogleAnalyticsLink sources. - mcdn: For MerchantCenterDestination sources.", + "readOnly": true, + "type": "string" + }, + "expireTime": { + "description": "Output only. The time when an archived conversion source becomes permanently deleted and is no longer available to undelete.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "googleAnalyticsLink": { + "$ref": "GoogleAnalyticsLink", + "description": "Immutable. Conversion Source of type \"Link to Google Analytics Property\"." + }, + "merchantCenterDestination": { + "$ref": "MerchantCenterDestination", + "description": "Conversion Source of type \"Merchant Center Tag Destination\"." + }, + "state": { + "description": "Output only. Current state of this conversion source. Can't be edited through the API.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "ARCHIVED", + "PENDING" + ], + "enumDescriptions": [ + "", + "Conversion source is fully functional.", + "Conversion source has been archived in the last 30 days and not currently functional. Can be restored using the undelete method.", + "Conversion source creation has started but not fully finished yet." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Css": { "description": "Information about CSS domain.", "id": "Css", @@ -7716,6 +8560,7 @@ "type": "object" }, "CustomAttribute": { + "description": "A message that represents custom attributes. Exactly one of `value` or `groupValues` must be provided. Maximum allowed number of characters for each custom attribute is 10240 (represents sum of characters for name and value). Maximum 2500 custom attributes can be set per merchant, with total size of 102.4kB.", "id": "CustomAttribute", "properties": { "groupValues": { @@ -8003,7 +8848,7 @@ "type": "array" }, "feedLabel": { - "description": "Feed label for the DatafeedTarget. Either `country` or `feedLabel` is required. If both `feedLabel` and `country` is specified, the values must match.", + "description": "Feed label for the DatafeedTarget. Either `country` or `feedLabel` is required. If both `feedLabel` and `country` is specified, the values must match. Must be less than or equal to 20 uppercase letters (A-Z), numbers (0-9), and dashes (-).", "type": "string" }, "includedDestinations": { @@ -8357,7 +9202,7 @@ "properties": { "cutoffTime": { "$ref": "CutoffTime", - "description": "Business days cutoff time definition. If not configured the cutoff time will be defaulted to 8AM PST." + "description": "Business days cutoff time definition. If not configured, the cutoff time will be defaulted to 8AM PST. If local delivery, use Service.StoreConfig.CutoffConfig." }, "handlingBusinessDayConfig": { "$ref": "BusinessDayConfig", @@ -8408,6 +9253,22 @@ }, "type": "object" }, + "Distance": { + "description": "Distance represented by an integer and unit.", + "id": "Distance", + "properties": { + "unit": { + "description": "The distance unit. Acceptable values are `None`, `Miles`, and `Kilometers`.", + "type": "string" + }, + "value": { + "description": "The distance represented as a number.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "ECommercePlatformLinkInfo": { "description": "Additional information required for E_COMMERCE_PLATFORM link type.", "id": "ECommercePlatformLinkInfo", @@ -8461,6 +9322,35 @@ }, "type": "object" }, + "ExternalAction": { + "description": "Action that is implemented and performed outside of the third-party application. It should redirect the merchant to the provided URL of an external system where they can perform the action. For example to request a review in the Merchant Center.", + "id": "ExternalAction", + "properties": { + "type": { + "description": "The type of external action.", + "enum": [ + "EXTERNAL_ACTION_TYPE_UNSPECIFIED", + "REVIEW_PRODUCT_ISSUE_IN_MERCHANT_CENTER", + "REVIEW_ACCOUNT_ISSUE_IN_MERCHANT_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 Merchant Center where the merchant can perform identity verification." + ], + "type": "string" + }, + "uri": { + "description": "URL to external system, for example Merchant Center, where the merchant can perform the action.", + "type": "string" + } + }, + "type": "object" + }, "FreeListingsProgramStatus": { "description": "Response message for GetFreeListingsProgramStatus.", "id": "FreeListingsProgramStatus", @@ -8605,6 +9495,25 @@ }, "type": "object" }, + "GenerateRecommendationsResponse": { + "description": "Response containing generated recommendations.", + "id": "GenerateRecommendationsResponse", + "properties": { + "recommendations": { + "description": "Recommendations generated for a request.", + "items": { + "$ref": "Recommendation" + }, + "type": "array" + }, + "responseToken": { + "description": "Output only. Response token is a string created for each `GenerateRecommendationsResponse`. This token doesn't expire, and is globally unique. This token must be used when reporting interactions for recommendations.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GmbAccounts": { "id": "GmbAccounts", "properties": { @@ -8646,6 +9555,28 @@ }, "type": "object" }, + "GoogleAnalyticsLink": { + "description": "\"Google Analytics Link\" sources can be used to get conversion data from an existing Google Analytics property into the linked Merchant Center account.", + "id": "GoogleAnalyticsLink", + "properties": { + "attributionSettings": { + "$ref": "AttributionSettings", + "description": "Output only. Attribution settings for the linked Google Analytics property.", + "readOnly": true + }, + "propertyId": { + "description": "Required. Immutable. ID of the Google Analytics property the merchant is linked to.", + "format": "int64", + "type": "string" + }, + "propertyName": { + "description": "Output only. Name of the Google Analytics property the merchant is linked to.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Headers": { "description": "A non-empty list of row or column headers for a table. Exactly one of `prices`, `weights`, `numItems`, `postalCodeGroupNames`, or `location` must be set.", "id": "Headers", @@ -8746,40 +9677,13 @@ }, "type": "object" }, - "InapplicabilityDetails": { - "description": "Map of inapplicability details.", - "id": "InapplicabilityDetails", + "InsertCheckoutSettingsRequest": { + "description": "Request message for the `InsertCheckoutSettings` method.", + "id": "InsertCheckoutSettingsRequest", "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" + "uriSettings": { + "$ref": "UrlSettings", + "description": "Required. The `UrlSettings` for the request. The presence of URL settings indicates `Checkout` enrollment." } }, "type": "object" @@ -8878,6 +9782,10 @@ "$ref": "LiaInventorySettings", "description": "LIA inventory verification settings." }, + "omnichannelExperience": { + "$ref": "LiaOmnichannelExperience", + "description": "The omnichannel experience configured for this country." + }, "onDisplayToOrder": { "$ref": "LiaOnDisplayToOrderSettings", "description": "LIA \"On Display To Order\" settings." @@ -8915,6 +9823,28 @@ }, "type": "object" }, + "LiaOmnichannelExperience": { + "description": "Omnichannel experience details.", + "id": "LiaOmnichannelExperience", + "properties": { + "country": { + "description": "The CLDR country code (for example, \"US\").", + "type": "string" + }, + "lsfType": { + "description": "The Local Store Front (LSF) type for this country. Acceptable values are: - \"`ghlsf`\" (Google-Hosted Local Store Front) - \"`mhlsfBasic`\" (Merchant-Hosted Local Store Front Basic) - \"`mhlsfFull`\" (Merchant-Hosted Local Store Front Full) More details about these types can be found here.", + "type": "string" + }, + "pickupTypes": { + "description": "The Pickup types for this country. Acceptable values are: - \"`pickupToday`\" - \"`pickupLater`\" ", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "LiaOnDisplayToOrderSettings": { "id": "LiaOnDisplayToOrderSettings", "properties": { @@ -9022,6 +9952,10 @@ "description": "The method of the batch entry. Acceptable values are: - \"`get`\" - \"`getAccessibleGmbAccounts`\" - \"`requestGmbAccess`\" - \"`requestInventoryVerification`\" - \"`setInventoryVerificationContact`\" - \"`update`\" ", "type": "string" }, + "omnichannelExperience": { + "$ref": "LiaOmnichannelExperience", + "description": "The omnichannel experience for a country. Required only for SetOmnichannelExperience." + }, "posDataProviderId": { "description": "The ID of POS data provider. Required only for SetPosProvider.", "format": "uint64", @@ -9075,6 +10009,10 @@ "$ref": "LiaSettings", "description": "The retrieved or updated Lia settings." }, + "omnichannelExperience": { + "$ref": "LiaOmnichannelExperience", + "description": "The updated omnichannel experience for a country." + }, "posDataProviders": { "description": "The list of POS data providers.", "items": { @@ -9283,6 +10221,24 @@ }, "type": "object" }, + "ListConversionSourcesResponse": { + "description": "Response message for the ListConversionSources method.", + "id": "ListConversionSourcesResponse", + "properties": { + "conversionSources": { + "description": "List of conversion sources.", + "items": { + "$ref": "ConversionSource" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Token to be used to fetch the next results page.", + "type": "string" + } + }, + "type": "object" + }, "ListCssesResponse": { "description": "The response message for the `ListCsses` method", "id": "ListCssesResponse", @@ -9319,6 +10275,24 @@ }, "type": "object" }, + "ListPromotionResponse": { + "description": "Response message for Promotions.List method.", + "id": "ListPromotionResponse", + "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" + }, + "promotions": { + "description": "List of all available promotions for the merchant.", + "items": { + "$ref": "Promotion" + }, + "type": "array" + } + }, + "type": "object" + }, "ListRegionsResponse": { "description": "Response message for the `ListRegions` method.", "id": "ListRegionsResponse", @@ -9337,60 +10311,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", @@ -9410,7 +10330,7 @@ "id": "LocalInventory", "properties": { "availability": { - "description": "Availability of the product. For accepted attribute values, see the local product inventory feed specification.", + "description": "The availability of the product. For accepted attribute values, see the local product inventory feed specification.", "type": "string" }, "customAttributes": { @@ -9421,7 +10341,7 @@ "type": "array" }, "instoreProductLocation": { - "description": "In-store product location.", + "description": "The in-store product location.", "type": "string" }, "kind": { @@ -9429,32 +10349,32 @@ "type": "string" }, "pickupMethod": { - "description": "Supported pickup method for this offer. Unless the value is \"not supported\", this field must be submitted together with `pickupSla`. For accepted attribute values, see the local product inventory feed specification.", + "description": "The supported pickup method for this offer. Unless the value is \"not supported\", this field must be submitted together with `pickupSla`. For accepted attribute values, see the local product inventory feed specification.", "type": "string" }, "pickupSla": { - "description": "Expected date that an order will be ready for pickup relative to the order date. Must be submitted together with `pickupMethod`. For accepted attribute values, see the local product inventory feed specification.", + "description": "The expected date that an order will be ready for pickup relative to the order date. Must be submitted together with `pickupMethod`. For accepted attribute values, see the local product inventory feed specification.", "type": "string" }, "price": { "$ref": "Price", - "description": "Price of the product." + "description": "The price of the product." }, "quantity": { - "description": "Quantity of the product. Must be nonnegative.", + "description": "The quantity of the product. Must be nonnegative.", "format": "uint32", "type": "integer" }, "salePrice": { "$ref": "Price", - "description": "Sale price of the product. Mandatory if `sale_price_effective_date` is defined." + "description": "The sale price of the product. Mandatory if `sale_price_effective_date` is defined." }, "salePriceEffectiveDate": { "description": "A date range represented by a pair of ISO 8601 dates separated by a space, comma, or slash. Both dates may be specified as 'null' if undecided.", "type": "string" }, "storeCode": { - "description": "Required. Store code of this local inventory resource.", + "description": "Required. The store code of this local inventory resource.", "type": "string" } }, @@ -9572,6 +10492,30 @@ }, "type": "object" }, + "MerchantCenterDestination": { + "description": "\"Merchant Center Destination\" sources can be used to send conversion events from a website using a Google tag directly to a Merchant Center account where the source is created.", + "id": "MerchantCenterDestination", + "properties": { + "attributionSettings": { + "$ref": "AttributionSettings", + "description": "Required. Attribution settings being used for the Merchant Center Destination." + }, + "currencyCode": { + "description": "Required. Three-letter currency code (ISO 4217). The currency code defines in which currency the conversions sent to this destination will be reported in Merchant Center.", + "type": "string" + }, + "destinationId": { + "description": "Output only. Merchant Center Destination ID.", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Required. Merchant-specified display name for the destination. This is the name that identifies the conversion source within the Merchant Center UI. Limited to 64 characters.", + "type": "string" + } + }, + "type": "object" + }, "MerchantOrderReturn": { "description": "Order return. Production access (all methods) requires the order manager role. Sandbox access does not.", "id": "MerchantOrderReturn", @@ -9681,7 +10625,7 @@ "type": "object" }, "MethodQuota": { - "description": "The quota information per method in the Content API. Includes only methods with current usage greater than zero for your account.", + "description": "The quota information per method in the Content API.", "id": "MethodQuota", "properties": { "method": { @@ -10845,6 +11789,7 @@ "type": "string" }, "productDescription": { + "deprecated": true, "description": "Plain text description of this product (deprecated: Please use product_title instead).", "type": "string" }, @@ -10862,10 +11807,12 @@ "type": "string" }, "sku": { + "deprecated": true, "description": "Merchant SKU for this item (deprecated).", "type": "string" }, "upc": { + "deprecated": true, "description": "Universal product code for this item (deprecated: Please use GTIN instead).", "type": "string" } @@ -12306,6 +13253,14 @@ "description": "Identifies what kind of resource this is. Value: the fixed string \"`content#posInventory`\"", "type": "string" }, + "pickupMethod": { + "description": "Optional. Supported pickup method for this offer. Unless the value is \"not supported\", this field must be submitted together with `pickupSla`. For accepted attribute values, see the [local product inventory feed specification](https://support.google.com/merchants/answer/3061342).", + "type": "string" + }, + "pickupSla": { + "description": "Optional. Expected date that an order will be ready for pickup relative to the order date. Must be submitted together with `pickupMethod`. For accepted attribute values, see the [local product inventory feed specification](https://support.google.com/merchants/answer/3061342).", + "type": "string" + }, "price": { "$ref": "Price", "description": "Required. The current price of the item." @@ -12345,6 +13300,14 @@ "description": "Required. A unique identifier for the item.", "type": "string" }, + "pickupMethod": { + "description": "Optional. Supported pickup method for this offer. Unless the value is \"not supported\", this field must be submitted together with `pickupSla`. For accepted attribute values, see the [local product inventory feed specification](https://support.google.com/merchants/answer/3061342).", + "type": "string" + }, + "pickupSla": { + "description": "Optional. Expected date that an order will be ready for pickup relative to the order date. Must be submitted together with `pickupMethod`. For accepted attribute values, see the [local product inventory feed specification](https://support.google.com/merchants/answer/3061342).", + "type": "string" + }, "price": { "$ref": "Price", "description": "Required. The current price of the item." @@ -12388,6 +13351,14 @@ "description": "Identifies what kind of resource this is. Value: the fixed string \"`content#posInventoryResponse`\".", "type": "string" }, + "pickupMethod": { + "description": "Optional. Supported pickup method for this offer. Unless the value is \"not supported\", this field must be submitted together with `pickupSla`. For accepted attribute values, see the [local product inventory feed specification](https://support.google.com/merchants/answer/3061342).", + "type": "string" + }, + "pickupSla": { + "description": "Optional. Expected date that an order will be ready for pickup relative to the order date. Must be submitted together with `pickupMethod`. For accepted attribute values, see the [local product inventory feed specification](https://support.google.com/merchants/answer/3061342).", + "type": "string" + }, "price": { "$ref": "Price", "description": "Required. The current price of the item." @@ -12581,6 +13552,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" @@ -12673,7 +13654,7 @@ "type": "object" }, "PriceCompetitiveness": { - "description": "Price Competitiveness fields requested by the merchant in the query. Field values are only set if the merchant queries `PriceCompetitivenessProductView`. https://support.google.com/merchants/answer/9626903", + "description": "Price competitiveness fields requested by the merchant in the query. Field values are only set if the merchant queries `PriceCompetitivenessProductView`. https://support.google.com/merchants/answer/9626903", "id": "PriceCompetitiveness", "properties": { "benchmarkPriceCurrencyCode": { @@ -12693,7 +13674,7 @@ "type": "object" }, "PriceInsights": { - "description": "Price Insights fields requested by the merchant in the query. Field values are only set if the merchant queries `PriceInsightsProductView`. https://support.google.com/merchants/answer/11916926", + "description": "Price insights fields requested by the merchant in the query. Field values are only set if the merchant queries `PriceInsightsProductView`. https://support.google.com/merchants/answer/11916926", "id": "PriceInsights", "properties": { "predictedClicksChangeFraction": { @@ -12707,7 +13688,7 @@ "type": "number" }, "predictedGrossProfitChangeFraction": { - "description": "The predicted change in gross profit as a fraction after introducing the suggested price compared to current active price. For example, 0.05 is a 5% predicted increase in gross profit.", + "description": "*Deprecated*: This field is no longer supported and will start returning 0. The predicted change in gross profit as a fraction after introducing the suggested price compared to current active price. For example, 0.05 is a 5% predicted increase in gross profit.", "format": "double", "type": "number" }, @@ -12717,11 +13698,11 @@ "type": "number" }, "predictedMonthlyGrossProfitChangeCurrencyCode": { - "description": "The predicted monthly gross profit change currency (ISO 4217 code).", + "description": "*Deprecated*: This field is no longer supported and will start returning USD for all requests. The predicted monthly gross profit change currency (ISO 4217 code).", "type": "string" }, "predictedMonthlyGrossProfitChangeMicros": { - "description": "The predicted change in gross profit in micros (1 millionth of a standard unit, 1 USD = 1000000 micros) after introducing the suggested price for a month compared to current active price.", + "description": "*Deprecated*: This field is no longer supported and will start returning 0. The predicted change in gross profit in micros (1 millionth of a standard unit, 1 USD = 1000000 micros) after introducing the suggested price for a month compared to current active price.", "format": "int64", "type": "string" }, @@ -12791,10 +13772,24 @@ "description": "URL for the canonical version of your item's landing page.", "type": "string" }, + "certifications": { + "description": "Product [certification](https://support.google.com/merchants/answer/13528839), introduced for EU energy efficiency labeling compliance using the [EU EPREL](https://eprel.ec.europa.eu/screen/home) database.", + "items": { + "$ref": "ProductCertification" + }, + "type": "array" + }, "channel": { "description": "Required. The item's channel (online or local). Acceptable values are: - \"`local`\" - \"`online`\" ", "type": "string" }, + "cloudExportAdditionalProperties": { + "description": "Extra fields to export to the Cloud Retail program.", + "items": { + "$ref": "CloudExportAdditionalProperties" + }, + "type": "array" + }, "color": { "description": "Color of the item.", "type": "string" @@ -12842,6 +13837,10 @@ "description": "Description of the item.", "type": "string" }, + "disclosureDate": { + "description": "The date time when an offer becomes visible in search results across Google\u2019s YouTube surfaces, in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format. See [Disclosure date](https://support.google.com/merchants/answer/13034208) for more information.", + "type": "string" + }, "displayAdsId": { "description": "An identifier for an item for dynamic remarketing campaigns.", "type": "string" @@ -12886,7 +13885,7 @@ "type": "string" }, "feedLabel": { - "description": "Feed label for the item. Either `targetCountry` or `feedLabel` is required.", + "description": "Feed label for the item. Either `targetCountry` or `feedLabel` is required. Must be less than or equal to 20 uppercase letters (A-Z), numbers (0-9), and dashes (-).", "type": "string" }, "gender": { @@ -12902,7 +13901,7 @@ "type": "string" }, "id": { - "description": "The REST ID of the product. Content API methods that operate on products take this as their `productId` parameter. The REST ID for a product is of the form channel:contentLanguage: targetCountry: offerId.", + "description": "The REST ID of the product. Content API methods that operate on products take this as their `productId` parameter. The REST ID for a product has one of the 2 forms channel:contentLanguage: targetCountry: offerId or channel:contentLanguage:feedLabel: offerId.", "type": "string" }, "identifierExists": { @@ -12937,7 +13936,7 @@ "type": "string" }, "lifestyleImageLinks": { - "description": "Additional URLs of lifestyle images of the item, used to explicitly identify images that showcase your item in a real-world context. See the Help Center article for more information.", + "description": "Additional URLs of lifestyle images of the item. Used to explicitly identify images that showcase your item in a real-world context. See the Help Center article for more information.", "items": { "type": "string" }, @@ -13162,6 +14161,10 @@ "unitPricingMeasure": { "$ref": "ProductUnitPricingMeasure", "description": "The measure and dimension of an item." + }, + "virtualModelLink": { + "description": "URL of the 3D model of the item to provide more visuals.", + "type": "string" } }, "type": "object" @@ -13184,6 +14187,25 @@ }, "type": "object" }, + "ProductCertification": { + "description": "Product [certification](https://support.google.com/merchants/answer/13528839), introduced for EU energy efficiency labeling compliance using the [EU EPREL](https://eprel.ec.europa.eu/screen/home) database.", + "id": "ProductCertification", + "properties": { + "certificationAuthority": { + "description": "The certification authority, for example \"European_Commission\". Maximum length is 2000 characters.", + "type": "string" + }, + "certificationCode": { + "description": "The certification code, for eaxample \"123456\". Maximum length is 2000 characters.", + "type": "string" + }, + "certificationName": { + "description": "The name of the certification, for example \"EPREL\". Maximum length is 2000 characters.", + "type": "string" + } + }, + "type": "object" + }, "ProductCluster": { "description": "Product cluster fields. A product cluster is a grouping for different offers that represent the same product. Values are only set for fields requested explicitly in the request's search query.", "id": "ProductCluster", @@ -13344,6 +14366,66 @@ }, "type": "object" }, + "ProductIssue": { + "description": "An issue affecting specific product.", + "id": "ProductIssue", + "properties": { + "actions": { + "description": "A list of actionable steps that can be executed to solve the issue. An example is requesting a re-review or providing arguments when merchant disagrees with the issue. Actions that are supported in (your) third-party application can be rendered as buttons and should be available to merchant when they expand the issue.", + "items": { + "$ref": "Action" + }, + "type": "array" + }, + "impact": { + "$ref": "ProductIssueImpact", + "description": "Clarifies the severity of the issue. The summarizing message, if present, should be shown right under the title for each issue. It helps merchants to quickly understand the impact of the issue. The detailed breakdown helps the merchant to fully understand the impact of the issue. It can be rendered as dialog that opens when the merchant mouse over the summarized impact statement. Issues with different severity can be styled differently. They may use a different color or icon to signal the difference between `ERROR`, `WARNING` and `INFO`." + }, + "prerenderedContent": { + "description": "Details of the issue as a pre-rendered HTML. HTML elements contain CSS classes that can be used to customize the style of the content. Always sanitize the HTML before embedding it directly to your application. The sanitizer needs to allow basic HTML tags, such as: `div`, `span`, `p`, `a`, `ul`, `li`, `table`, `tr`, `td`. For example, you can use [DOMPurify](https://www.npmjs.com/package/dompurify). CSS classes: * `issue-detail` - top level container for the detail of the issue * `callout-banners` - section of the `issue-detail` with callout banners * `callout-banner` - single callout banner, inside `callout-banners` * `callout-banner-info` - callout with important information (default) * `callout-banner-warning` - callout with a warning * `callout-banner-error` - callout informing about an error (most severe) * `issue-content` - section of the `issue-detail`, contains multiple `content-element` * `content-element` - content element such as a list, link or paragraph, inside `issue-content` * `root-causes` - unordered list with items describing root causes of the issue, inside `issue-content` * `root-causes-intro` - intro text before the `root-causes` list, inside `issue-content` * `segment` - section of the text, `span` inside paragraph * `segment-attribute` - section of the text that represents a product attribute, for example 'image\\_link' * `segment-literal` - section of the text that contains a special value, for example '0-1000 kg' * `segment-bold` - section of the text that should be rendered as bold * `segment-italic` - section of the text that should be rendered as italic * `tooltip` - used on paragraphs that should be rendered with a tooltip. A section of the text in such a paragraph will have a class `tooltip-text` and is intended to be shown in a mouse over dialog. If the style is not used, the `tooltip-text` section would be shown on a new line, after the main part of the text. * `tooltip-text` - marks a section of the text within a `tooltip`, that is intended to be shown in a mouse over dialog. * `tooltip-icon` - marks a section of the text within a `tooltip`, that can be replaced with a tooltip icon, for example '?' or 'i'. By default, this section contains a `br` tag, that is separating the main text and the tooltip text when the style is not used. * `tooltip-style-question` - the tooltip shows helpful information, can use the '?' as an icon. * `tooltip-style-info` - the tooltip adds additional information fitting to the context, can use the 'i' as an icon. * `content-moderation` - marks the paragraph that explains how the issue was identified. * `new-element` - Present for new elements added to the pre-rendered content in the future. To make sure that a new content element does not break your style, you can hide everything with this class.", + "type": "string" + }, + "title": { + "description": "Title of the issue.", + "type": "string" + } + }, + "type": "object" + }, + "ProductIssueImpact": { + "description": "Overall impact of product issue.", + "id": "ProductIssueImpact", + "properties": { + "breakdowns": { + "description": "Detailed impact breakdown. Explains the types of restriction the issue has in different shopping destinations and territory. If present, it should be rendered to the merchant. Can be shown as a mouse over dropdown or a dialog. Each breakdown item represents a group of regions with the same impact details.", + "items": { + "$ref": "Breakdown" + }, + "type": "array" + }, + "message": { + "description": "Optional. Message summarizing the overall impact of the issue. If present, it should be rendered to the merchant. For example: \"Limits visibility in France\"", + "type": "string" + }, + "severity": { + "description": "The severity of the issue.", + "enum": [ + "SEVERITY_UNSPECIFIED", + "ERROR", + "WARNING", + "INFO" + ], + "enumDescriptions": [ + "Default value. Will never be provided by the API.", + "Causes either an account suspension or an item disapproval. Errors should be resolved as soon as possible to ensure items are eligible to appear in results again.", + "Warnings can negatively impact the performance of ads and can lead to item or account suspensions in the future unless the issue is resolved.", + "Infos are suggested optimizations to increase data quality. Resolving these issues is recommended, but not required." + ], + "type": "string" + } + }, + "type": "object" + }, "ProductProductDetail": { "id": "ProductProductDetail", "properties": { @@ -13525,7 +14607,8 @@ "type": "array" }, "status": { - "description": "Destination approval status in `targetCountry` of the offer.", + "deprecated": true, + "description": "Deprecated. Destination approval status in `targetCountry` of the offer.", "type": "string" } }, @@ -13658,7 +14741,7 @@ "type": "object" }, "ProductView": { - "description": "Product fields. Values are only set for fields requested explicitly in the request's search query. Available only to selected merchants. Submit the [interest form](https://forms.gle/7Uy8htzAN8oNokz9A) to request access.", + "description": "Product fields. Values are only set for fields requested explicitly in the request's search query.", "id": "ProductView", "properties": { "aggregatedDestinationStatus": { @@ -13895,6 +14978,10 @@ "canonicalAttribute": { "description": "Canonical attribute name for attribute-specific issues.", "type": "string" + }, + "code": { + "description": "Error code of the issue.", + "type": "string" } }, "type": "object" @@ -14057,6 +15144,7 @@ "type": "array" }, "includeAttributes": { + "deprecated": true, "description": "Deprecated: Setting this field has no effect and attributes are never included.", "type": "boolean" }, @@ -14156,7 +15244,7 @@ "type": "array" }, "contentLanguage": { - "description": "Required. The content language used as part of the unique identifier. `en` content language is available for all target countries. `fr` content language is available for `CA` and `FR` target countries, and `de` content language is available for `DE` target country.", + "description": "Required. The content language used as part of the unique identifier. `en` content language is available for all target countries. `fr` content language is available for `CA` and `FR` target countries. `de` content language is available for `DE` target country. `nl` content language is available for `NL` target country. `it` content language is available for `IT` target country. `pt` content language is available for `BR` target country. `ja` content language is available for `JP` target country. `ko` content language is available for `KR` target country.", "type": "string" }, "couponValueType": { @@ -14215,7 +15303,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" }, @@ -14337,6 +15425,7 @@ "type": "array" }, "promotionDisplayDates": { + "deprecated": true, "description": "String representation of the promotion display dates. Deprecated. Use `promotion_display_time_period` instead.", "type": "string" }, @@ -14345,6 +15434,7 @@ "description": "`TimePeriod` representation of the promotion's display dates." }, "promotionEffectiveDates": { + "deprecated": true, "description": "String representation of the promotion effective dates. Deprecated. Use `promotion_effective_time_period` instead.", "type": "string" }, @@ -14418,7 +15508,7 @@ "type": "array" }, "targetCountry": { - "description": "Required. The target country used as part of the unique identifier. Can be `AU`, `CA`, `DE`, `FR`, `GB`, `IN` or `US`.", + "description": "Required. The target country used as part of the unique identifier. Can be `AU`, `CA`, `DE`, `FR`, `GB`, `IN`, `US`, `BR`, `ES`, `NL`, `JP`, `IT` or `KR`.", "type": "string" } }, @@ -14562,6 +15652,144 @@ }, "type": "object" }, + "Recommendation": { + "description": "Recommendations are suggested ways to improve your merchant account's performance. For example, to engage with a feature, or start using a new Google product.", + "id": "Recommendation", + "properties": { + "additionalCallToAction": { + "description": "Output only. CTAs of this recommendation. Repeated.", + "items": { + "$ref": "RecommendationCallToAction" + }, + "readOnly": true, + "type": "array" + }, + "additionalDescriptions": { + "description": "Output only. List of additional localized descriptions for a recommendation. Localication uses the `languageCode` field in `GenerateRecommendations` requests. Not all description types are guaranteed to be present and we recommend to rely on default description.", + "items": { + "$ref": "RecommendationDescription" + }, + "readOnly": true, + "type": "array" + }, + "creative": { + "description": "Output only. Any creatives attached to the recommendation. Repeated.", + "items": { + "$ref": "RecommendationCreative" + }, + "readOnly": true, + "type": "array" + }, + "defaultCallToAction": { + "$ref": "RecommendationCallToAction", + "description": "Optional. Default CTA of the recommendation." + }, + "defaultDescription": { + "description": "Optional. Localized recommendation description. The localization the {@link `GenerateRecommendationsRequest.language_code`} field in {@link `GenerateRecommendationsRequest`} requests.", + "type": "string" + }, + "numericalImpact": { + "description": "Optional. A numerical score of the impact from the recommendation's description. For example, a recommendation might suggest an upward trend in sales for a certain product. Higher number means larger impact.", + "format": "int32", + "type": "integer" + }, + "paid": { + "description": "Optional. Indicates whether a user needs to pay when they complete the user journey suggested by the recommendation.", + "type": "boolean" + }, + "recommendationName": { + "description": "Optional. Localized recommendation name. The localization uses the {@link `GenerateRecommendationsRequest.language_code`} field in {@link `GenerateRecommendationsRequest`} requests.", + "type": "string" + }, + "subType": { + "description": "Optional. Subtype of the recommendations. Only applicable when multiple recommendations can be generated per type, and is used as an identifier of recommendation under the same recommendation type.", + "type": "string" + }, + "title": { + "description": "Optional. Localized Recommendation Title. Localization uses the {@link `GenerateRecommendationsRequest.language_code`} field in {@link `GenerateRecommendationsRequest`} requests.", + "type": "string" + }, + "type": { + "description": "Output only. Type of the recommendation. List of currently available recommendation types: - OPPORTUNITY_CREATE_NEW_COLLECTION - OPPORTUNITY_CREATE_EMAIL_CAMPAIGN", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "RecommendationCallToAction": { + "description": "Call to action (CTA) that explains how a merchant can implement this recommendation", + "id": "RecommendationCallToAction", + "properties": { + "intent": { + "description": "Output only. Intent of the action. This value describes the intent (for example, `OPEN_CREATE_EMAIL_CAMPAIGN_FLOW`) and can vary from recommendation to recommendation. This value can change over time for the same recommendation. Currently available intent values: - OPEN_CREATE_EMAIL_CAMPAIGN_FLOW: Opens a user journey where they can create a marketing email campaign. (No default URL) - OPEN_CREATE_COLLECTION_TAB: Opens a user journey where they can [create a collection](https://support.google.com/merchants/answer/9703228) for their Merchant account. (No default URL)", + "readOnly": true, + "type": "string" + }, + "localizedText": { + "description": "Output only. Localized text of the CTA. Optional.", + "readOnly": true, + "type": "string" + }, + "uri": { + "description": "Optional. URL of the CTA. This field will only be set for some recommendations where there is a suggested landing URL. Otherwise it will be set to an empty string. We recommend developers to use their own custom landing page according to the description of the intent field above when this uri field is empty.", + "type": "string" + } + }, + "type": "object" + }, + "RecommendationCreative": { + "description": "Creative is a multimedia attachment to recommendation that can be used on the frontend.", + "id": "RecommendationCreative", + "properties": { + "type": { + "description": "Type of the creative.", + "enum": [ + "CREATIVE_TYPE_UNSPECIFIED", + "VIDEO", + "PHOTO" + ], + "enumDescriptions": [ + "Default value. If provided, shall be considered invalid.", + "Video creatives.", + "Photo creatives." + ], + "type": "string" + }, + "uri": { + "description": "URL of the creative.", + "type": "string" + } + }, + "type": "object" + }, + "RecommendationDescription": { + "description": "Google-provided description for the recommendation.", + "id": "RecommendationDescription", + "properties": { + "text": { + "description": "Output only. Text of the description.", + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Output only. Type of the description.", + "enum": [ + "DESCRIPTION_TYPE_UNSPECIFIED", + "SHORT", + "LONG" + ], + "enumDescriptions": [ + "Default value. Will never be provided by the API.", + "Short description.", + "Long description." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "RefundReason": { "id": "RefundReason", "properties": { @@ -14785,29 +16013,140 @@ }, "type": "object" }, + "RenderAccountIssuesRequestPayload": { + "description": "The payload for configuring how the content should be rendered.", + "id": "RenderAccountIssuesRequestPayload", + "properties": { + "contentOption": { + "description": "Optional. How the detailed content should be returned. Default option is to return the content as a pre-rendered HTML text.", + "enum": [ + "CONTENT_OPTION_UNSPECIFIED", + "PRE_RENDERED_HTML" + ], + "enumDescriptions": [ + "Default value. Will never be provided by the API.", + "Returns the detail of the issue as a pre-rendered HTML text." + ], + "type": "string" + } + }, + "type": "object" + }, + "RenderAccountIssuesResponse": { + "description": "Response containing support content and actions for listed account issues.", + "id": "RenderAccountIssuesResponse", + "properties": { + "alternateDisputeResolution": { + "$ref": "AlternateDisputeResolution", + "description": "The Alternate Dispute Resolution (ADR) contains a link to a page where merchant can bring their appeal to an [external body](https://support.google.com/european-union-digital-services-act-redress-options/answer/13535501). If the ADR is present, it MUST be available to the merchant on the page that shows the list with their account issues." + }, + "issues": { + "description": "List of account issues for a given account. This list can be shown with compressed, expandable items. In the compressed form, the title and impact should be shown for each issue. Once the issue is expanded, the detailed content and available actions should be rendered.", + "items": { + "$ref": "AccountIssue" + }, + "type": "array" + } + }, + "type": "object" + }, + "RenderProductIssuesRequestPayload": { + "description": "The payload for configuring how the content should be rendered.", + "id": "RenderProductIssuesRequestPayload", + "properties": { + "contentOption": { + "description": "Optional. How the detailed content should be returned. Default option is to return the content as a pre-rendered HTML text.", + "enum": [ + "CONTENT_OPTION_UNSPECIFIED", + "PRE_RENDERED_HTML" + ], + "enumDescriptions": [ + "Default value. Will never be provided by the API.", + "Returns the detail of the issue as a pre-rendered HTML text." + ], + "type": "string" + } + }, + "type": "object" + }, + "RenderProductIssuesResponse": { + "description": "Response containing support content and actions for listed product issues.", + "id": "RenderProductIssuesResponse", + "properties": { + "alternateDisputeResolution": { + "$ref": "AlternateDisputeResolution", + "description": "The Alternate Dispute Resolution (ADR) contains a link to a page where merchant can bring their appeal to an [external body](https://support.google.com/european-union-digital-services-act-redress-options/answer/13535501). If present, the link should be shown on the same page as the list of issues." + }, + "issues": { + "description": "List of issues for a given product. This list can be shown with compressed, expandable items. In the compressed form, the title and impact should be shown for each issue. Once the issue is expanded, the detailed content and available actions should be rendered.", + "items": { + "$ref": "ProductIssue" + }, + "type": "array" + } + }, + "type": "object" + }, + "ReportInteractionRequest": { + "description": "Request to report interactions on a recommendation.", + "id": "ReportInteractionRequest", + "properties": { + "interactionType": { + "description": "Required. Type of the interaction that is reported, for example INTERACTION_CLICK.", + "enum": [ + "INTERACTION_TYPE_UNSPECIFIED", + "INTERACTION_DISMISS", + "INTERACTION_CLICK" + ], + "enumDescriptions": [ + "Default value. If provided, the service will throw ApiError with description \"Required parameter: interactionType\".", + "When a recommendation is dismissed.", + "When a recommendation is clicked." + ], + "type": "string" + }, + "responseToken": { + "description": "Required. Token of the response when recommendation was returned.", + "type": "string" + }, + "subtype": { + "description": "Optional. Subtype of the recommendations this interaction happened on. This field must be set only to the value that is returned by {@link `RecommendationsService.GenerateRecommendations`} call.", + "type": "string" + }, + "type": { + "description": "Required. Type of the recommendations on which this interaction happened. This field must be set only to the value that is returned by {@link `GenerateRecommendationsResponse`} call.", + "type": "string" + } + }, + "type": "object" + }, "ReportRow": { "description": "Result row returned from the search query.", "id": "ReportRow", "properties": { "bestSellers": { "$ref": "BestSellers", - "description": "Best Sellers fields requested by the merchant in the query. Field values are only set if the merchant queries `BestSellersProductClusterView` or `BestSellersBrandView`." + "description": "Best sellers fields requested by the merchant in the query. Field values are only set if the merchant queries `BestSellersProductClusterView` or `BestSellersBrandView`." }, "brand": { "$ref": "Brand", "description": "Brand fields requested by the merchant in the query. Field values are only set if the merchant queries `BestSellersBrandView`." }, + "competitiveVisibility": { + "$ref": "CompetitiveVisibility", + "description": "Competitive visibility fields requested by the merchant in the query. Field values are only set if the merchant queries `CompetitiveVisibilityTopMerchantView`, `CompetitiveVisibilityBenchmarkView` or `CompetitiveVisibilityCompetitorView`." + }, "metrics": { "$ref": "Metrics", "description": "Metrics requested by the merchant in the query. Metric values are only set for metrics requested explicitly in the query." }, "priceCompetitiveness": { "$ref": "PriceCompetitiveness", - "description": "Price Competitiveness fields requested by the merchant in the query. Field values are only set if the merchant queries `PriceCompetitivenessProductView`." + "description": "Price competitiveness fields requested by the merchant in the query. Field values are only set if the merchant queries `PriceCompetitivenessProductView`." }, "priceInsights": { "$ref": "PriceInsights", - "description": "Price Insights fields requested by the merchant in the query. Field values are only set if the merchant queries `PriceInsightsProductView`." + "description": "Price insights fields requested by the merchant in the query. Field values are only set if the merchant queries `PriceInsightsProductView`." }, "productCluster": { "$ref": "ProductCluster", @@ -14815,7 +16154,7 @@ }, "productView": { "$ref": "ProductView", - "description": "Product fields requested by the merchant in the query. Field values are only set if the merchant queries `ProductView`. Available only to selected merchants. Submit the [interest form](https://forms.gle/7Uy8htzAN8oNokz9A) to request access." + "description": "Product fields requested by the merchant in the query. Field values are only set if the merchant queries `ProductView`." }, "segments": { "$ref": "Segments", @@ -14824,384 +16163,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", - "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": "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) (e.g. \"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. E.g. 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 regex.", - "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", - "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", @@ -15918,7 +16879,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" }, @@ -16111,7 +17072,74 @@ "type": "array" }, "shipmentType": { - "description": "Type of locations this service ships orders to. Acceptable values are: - \"`delivery`\" - \"`pickup`\" ", + "description": "Type of locations this service ships orders to. Acceptable values are: - \"`delivery`\" - \"`pickup` (deprecated)\" - \"`local_delivery`\" - \"`collection_point`\" ", + "type": "string" + }, + "storeConfig": { + "$ref": "ServiceStoreConfig", + "description": "A list of stores your products are delivered from. This is only available for the local delivery shipment type." + } + }, + "type": "object" + }, + "ServiceStoreConfig": { + "description": "Stores that provide local delivery. Only valid with local delivery fulfillment.", + "id": "ServiceStoreConfig", + "properties": { + "cutoffConfig": { + "$ref": "ServiceStoreConfigCutoffConfig", + "description": "Time local delivery ends for the day. This can be either `local_cutoff_time` or `store_close_offset_hours`, if both are provided an error is thrown." + }, + "serviceRadius": { + "$ref": "Distance", + "description": "Maximum delivery radius. Only needed for local delivery fulfillment type." + }, + "storeCodes": { + "description": "A list of store codes that provide local delivery. If empty, then `store_service_type` must be `all_stores`, or an error is thrown. If not empty, then `store_service_type` must be `selected_stores`, or an error is thrown.", + "items": { + "type": "string" + }, + "type": "array" + }, + "storeServiceType": { + "description": "Indicates whether all stores listed by this merchant provide local delivery or not. Acceptable values are `all stores` and `selected stores`", + "type": "string" + } + }, + "type": "object" + }, + "ServiceStoreConfigCutoffConfig": { + "description": "Time local delivery ends for the day based on the local timezone of the store. `local_cutoff_time` and `store_close_offset_hours` are mutually exclusive.", + "id": "ServiceStoreConfigCutoffConfig", + "properties": { + "localCutoffTime": { + "$ref": "ServiceStoreConfigCutoffConfigLocalCutoffTime", + "description": "Time in hours and minutes in the local timezone when local delivery ends." + }, + "noDeliveryPostCutoff": { + "description": "Merchants can opt-out of showing n+1 day local delivery when they have a shipping service configured to n day local delivery. For example, if the shipping service defines same-day delivery, and it's past the cut-off, setting this field to `true` results in the calculated shipping service rate returning `NO_DELIVERY_POST_CUTOFF`. In the same example, setting this field to `false` results in the calculated shipping time being one day. This is only for local delivery.", + "type": "boolean" + }, + "storeCloseOffsetHours": { + "description": "Represents cutoff time as the number of hours before store closing. Mutually exclusive with other fields (hour and minute).", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "ServiceStoreConfigCutoffConfigLocalCutoffTime": { + "description": "Time in hours and minutes in the local timezone when local delivery ends.", + "id": "ServiceStoreConfigCutoffConfigLocalCutoffTime", + "properties": { + "hour": { + "description": "Hour local delivery orders must be placed by to process the same day.", + "format": "int64", + "type": "string" + }, + "minute": { + "description": "Minute local delivery orders must be placed by to process the same day.", + "format": "int64", "type": "string" } }, @@ -17059,6 +18087,12 @@ }, "type": "object" }, + "UndeleteConversionSourceRequest": { + "description": "Request message for the UndeleteConversionSource method.", + "id": "UndeleteConversionSourceRequest", + "properties": {}, + "type": "object" + }, "UnitInvoice": { "id": "UnitInvoice", "properties": { @@ -17115,6 +18149,21 @@ }, "type": "object" }, + "UrlSettings": { + "description": "Specifications related to the `Checkout` URL. The `UriTemplate` is of the form `https://www.mystore.com/checkout?item_id={id}` where `{id}` will be automatically replaced with data from the merchant account with this attribute [offer_id](https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.offer_id)", + "id": "UrlSettings", + "properties": { + "cartUriTemplate": { + "description": "URL template when the placeholders are expanded will redirect the buyer to the cart page on the merchant website with the selected item in cart.", + "type": "string" + }, + "checkoutUriTemplate": { + "description": "URL template when the placeholders are expanded will redirect the buyer to the merchant checkout page with the item in the cart.", + "type": "string" + } + }, + "type": "object" + }, "Value": { "description": "The single value of a rate group or the value of a rate group table's cell. Exactly one of `noShipping`, `flatRate`, `pricePercentage`, `carrierRateName`, `subtableName` must be set.", "id": "Value", diff --git a/etc/api/customsearch/v1/customsearch-api.json b/etc/api/customsearch/v1/customsearch-api.json index fc2bc0138a..32101a76e9 100644 --- a/etc/api/customsearch/v1/customsearch-api.json +++ b/etc/api/customsearch/v1/customsearch-api.json @@ -303,7 +303,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" }, @@ -321,6 +322,13 @@ "medium", "off" ], + "enumDeprecated": [ + false, + false, + true, + true, + false + ], "enumDescriptions": [ "SafeSearch mode unspecified. (Falls back to engine's configuration.)", "Turn SafeSearch on.", @@ -591,7 +599,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" }, @@ -609,6 +618,13 @@ "medium", "off" ], + "enumDeprecated": [ + false, + false, + true, + true, + false + ], "enumDescriptions": [ "SafeSearch mode unspecified. (Falls back to engine's configuration.)", "Turn SafeSearch on.", @@ -674,7 +690,7 @@ } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://customsearch.googleapis.com/", "schemas": { "Promotion": { @@ -782,7 +798,7 @@ "description": "Image belonging to a custom search result.", "properties": { "byteSize": { - "description": "The size of the image, in pixels.", + "description": "The size of the image, in bytes.", "format": "int32", "type": "integer" }, diff --git a/etc/api/datacatalog/v1/datacatalog-api.json b/etc/api/datacatalog/v1/datacatalog-api.json index b761d7dc0a..937458658b 100644 --- a/etc/api/datacatalog/v1/datacatalog-api.json +++ b/etc/api/datacatalog/v1/datacatalog-api.json @@ -137,7 +137,7 @@ "parameterOrder": [], "parameters": { "fullyQualifiedName": { - "description": "Fully qualified name (FQN) of the resource. FQNs take two forms: * For non-regionalized resources: `{SYSTEM}:{PROJECT}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}` * For regionalized resources: `{SYSTEM}:{PROJECT}.{LOCATION_ID}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}` Example for a DPMS table: `dataproc_metastore:{PROJECT_ID}.{LOCATION_ID}.{INSTANCE_ID}.{DATABASE_ID}.{TABLE_ID}`", + "description": "[Fully Qualified Name (FQN)](https://cloud.google.com//data-catalog/docs/fully-qualified-names) of the resource. FQNs take two forms: * For non-regionalized resources: `{SYSTEM}:{PROJECT}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}` * For regionalized resources: `{SYSTEM}:{PROJECT}.{LOCATION_ID}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}` Example for a DPMS table: `dataproc_metastore:{PROJECT_ID}.{LOCATION_ID}.{INSTANCE_ID}.{DATABASE_ID}.{TABLE_ID}`", "location": "query", "type": "string" }, @@ -146,6 +146,16 @@ "location": "query", "type": "string" }, + "location": { + "description": "Location where the lookup should be performed. Required to lookup entry that is not a part of `DPMS` or `DATAPLEX` `integrated_system` using its `fully_qualified_name`. Ignored in other cases.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project where the lookup should be performed. Required to lookup entry that is not a part of `DPMS` or `DATAPLEX` `integrated_system` using its `fully_qualified_name`. Ignored in other cases.", + "location": "query", + "type": "string" + }, "sqlResource": { "description": "The SQL name of the entry. SQL names are case-sensitive. Examples: * `pubsub.topic.{PROJECT_ID}.{TOPIC_ID}` * `pubsub.topic.{PROJECT_ID}.`\\``{TOPIC.ID.SEPARATED.WITH.DOTS}`\\` * `bigquery.table.{PROJECT_ID}.{DATASET_ID}.{TABLE_ID}` * `bigquery.dataset.{PROJECT_ID}.{DATASET_ID}` * `datacatalog.entry.{PROJECT_ID}.{LOCATION_ID}.{ENTRY_GROUP_ID}.{ENTRY_ID}` Identifiers (`*_ID`) should comply with the [Lexical structure in Standard SQL] (https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical).", "location": "query", @@ -532,7 +542,7 @@ ] }, "import": { - "description": "Imports entries from some source (e.g. dump in a Cloud Storage bucket) to the Data Catalog. Dump here is a snapshot of the third-party system state, that needs to be ingested in the Data Catalog. Import of entries is a sync operation that reconciles state of the third-party system and Data Catalog. ImportEntries is a long-running operation done in the background, so this method returns long-running operation resource. The resource can be queried with Operations.GetOperation which contains metadata and response.", + "description": "Imports entries from a source, such as data previously dumped into a Cloud Storage bucket, into Data Catalog. Import of entries is a sync operation that reconciles the state of the third-party system with the Data Catalog. `ImportEntries` accepts source data snapshots of a third-party system. Snapshot should be delivered as a .wire or base65-encoded .txt file containing a sequence of Protocol Buffer messages of DumpItem type. `ImportEntries` returns a long-running operation resource that can be queried with Operations.GetOperation to return ImportEntriesMetadata and an ImportEntriesResponse message.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}/entries:import", "httpMethod": "POST", "id": "datacatalog.projects.locations.entryGroups.entries.import", @@ -901,6 +911,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "reconcile": { + "description": "`ReconcileTags` creates or updates a list of tags on the entry. If the ReconcileTagsRequest.force_delete_missing parameter is set, the operation deletes tags not included in the input tag list. `ReconcileTags` returns a long-running operation resource that can be queried with Operations.GetOperation to return ReconcileTagsMetadata and a ReconcileTagsResponse message.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}/entries/{entriesId}/tags:reconcile", + "httpMethod": "POST", + "id": "datacatalog.projects.locations.entryGroups.entries.tags.reconcile", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Name of Entry to be tagged.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+/entries/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/tags:reconcile", + "request": { + "$ref": "GoogleCloudDatacatalogV1ReconcileTagsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } } @@ -1113,7 +1151,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "datacatalog.projects.locations.operations.list", @@ -1753,7 +1791,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, @@ -2017,7 +2055,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, @@ -2106,7 +2144,7 @@ } } }, - "revision": "20230117", + "revision": "20240222", "rootUrl": "https://datacatalog.googleapis.com/", "schemas": { "Binding": { @@ -2118,14 +2156,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -2299,6 +2337,54 @@ }, "type": "object" }, + "GoogleCloudDatacatalogV1CloudBigtableInstanceSpec": { + "description": "Specification that applies to Instance entries that are part of `CLOUD_BIGTABLE` system. (user_specified_type)", + "id": "GoogleCloudDatacatalogV1CloudBigtableInstanceSpec", + "properties": { + "cloudBigtableClusterSpecs": { + "description": "The list of clusters for the Instance.", + "items": { + "$ref": "GoogleCloudDatacatalogV1CloudBigtableInstanceSpecCloudBigtableClusterSpec" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1CloudBigtableInstanceSpecCloudBigtableClusterSpec": { + "description": "Spec that applies to clusters of an Instance of Cloud Bigtable.", + "id": "GoogleCloudDatacatalogV1CloudBigtableInstanceSpecCloudBigtableClusterSpec", + "properties": { + "displayName": { + "description": "Name of the cluster.", + "type": "string" + }, + "linkedResource": { + "description": "A link back to the parent resource, in this case Instance.", + "type": "string" + }, + "location": { + "description": "Location of the cluster, typically a Cloud zone.", + "type": "string" + }, + "type": { + "description": "Type of the resource. For a cluster this would be \"CLUSTER\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1CloudBigtableSystemSpec": { + "description": "Specification that applies to all entries that are part of `CLOUD_BIGTABLE` system (user_specified_type)", + "id": "GoogleCloudDatacatalogV1CloudBigtableSystemSpec", + "properties": { + "instanceDisplayName": { + "description": "Display name of the Instance. This is user specified and different from the resource name.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDatacatalogV1CloudSqlBigQueryConnectionSpec": { "description": "Specification for the BigQuery connection to a Cloud SQL instance.", "id": "GoogleCloudDatacatalogV1CloudSqlBigQueryConnectionSpec", @@ -2379,6 +2465,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": { @@ -2393,6 +2483,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", @@ -2405,7 +2506,7 @@ "DIMENSION_GROUP", "FILTER", "MEASURE", - "PAREMETER" + "PARAMETER" ], "enumDescriptions": [ "Unspecified.", @@ -2600,8 +2701,11 @@ "CLOUD_PUBSUB", "DATAPROC_METASTORE", "DATAPLEX", + "CLOUD_SPANNER", + "CLOUD_BIGTABLE", "CLOUD_SQL", - "LOOKER" + "LOOKER", + "VERTEX_AI" ], "enumDescriptions": [ "Default unknown system.", @@ -2609,8 +2713,11 @@ "Cloud Pub/Sub.", "Dataproc Metastore.", "Dataplex.", + "Cloud Spanner", + "Cloud Bigtable", "Cloud Sql", - "Looker" + "Looker", + "Vertex AI" ], "type": "string" } @@ -2673,6 +2780,28 @@ }, "type": "object" }, + "GoogleCloudDatacatalogV1DatasetSpec": { + "description": "Specification that applies to a dataset. Valid only for entries with the `DATASET` type.", + "id": "GoogleCloudDatacatalogV1DatasetSpec", + "properties": { + "vertexDatasetSpec": { + "$ref": "GoogleCloudDatacatalogV1VertexDatasetSpec", + "description": "Vertex AI Dataset specific fields" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1DumpItem": { + "description": "Wrapper for any item that can be contained in the dump.", + "id": "GoogleCloudDatacatalogV1DumpItem", + "properties": { + "taggedEntry": { + "$ref": "GoogleCloudDatacatalogV1TaggedEntry", + "description": "Entry and its tags." + } + }, + "type": "object" + }, "GoogleCloudDatacatalogV1Entry": { "description": "Entry metadata. A Data Catalog entry represents another resource in Google Cloud Platform (such as a BigQuery dataset or a Pub/Sub topic) or outside of it. You can use the `linked_resource` field in the entry resource to refer to the original resource ID of the source system. An entry resource contains resource details, for example, its schema. Additionally, you can attach flexible metadata to an entry in the form of a Tag.", "id": "GoogleCloudDatacatalogV1Entry", @@ -2691,6 +2820,10 @@ "$ref": "GoogleCloudDatacatalogV1BusinessContext", "description": "Business Context of the entry. Not supported for BigQuery datasets" }, + "cloudBigtableSystemSpec": { + "$ref": "GoogleCloudDatacatalogV1CloudBigtableSystemSpec", + "description": "Specification that applies to Cloud Bigtable system. Only settable when `integrated_system` is equal to `CLOUD_BIGTABLE`" + }, "dataSource": { "$ref": "GoogleCloudDatacatalogV1DataSource", "description": "Output only. Physical location of the entry.", @@ -2704,6 +2837,10 @@ "$ref": "GoogleCloudDatacatalogV1DatabaseTableSpec", "description": "Specification that applies to a table resource. Valid only for entries with the `TABLE` or `EXPLORE` type." }, + "datasetSpec": { + "$ref": "GoogleCloudDatacatalogV1DatasetSpec", + "description": "Specification that applies to a dataset." + }, "description": { "description": "Entry description that can consist of several sentences or paragraphs that describe entry contents. The description must not contain Unicode non-characters as well as C0 and C1 control codes except tabs (HT), new lines (LF), carriage returns (CR), and page breaks (FF). The maximum size is 2000 bytes when encoded in UTF-8. Default value is an empty string.", "type": "string" @@ -2712,12 +2849,16 @@ "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." }, "fullyQualifiedName": { - "description": "Fully qualified name (FQN) of the resource. Set automatically for entries representing resources from synced systems. Settable only during creation and read-only afterwards. Can be used for search and lookup of the entries. FQNs take two forms: * For non-regionalized resources: `{SYSTEM}:{PROJECT}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}` * For regionalized resources: `{SYSTEM}:{PROJECT}.{LOCATION_ID}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}` Example for a DPMS table: `dataproc_metastore:{PROJECT_ID}.{LOCATION_ID}.{INSTANCE_ID}.{DATABASE_ID}.{TABLE_ID}`", + "description": "[Fully Qualified Name (FQN)](https://cloud.google.com//data-catalog/docs/fully-qualified-names) of the resource. Set automatically for entries representing resources from synced systems. Settable only during creation, and read-only later. Can be used for search and lookup of the entries. ", "type": "string" }, "gcsFilesetSpec": { @@ -2732,8 +2873,11 @@ "CLOUD_PUBSUB", "DATAPROC_METASTORE", "DATAPLEX", + "CLOUD_SPANNER", + "CLOUD_BIGTABLE", "CLOUD_SQL", - "LOOKER" + "LOOKER", + "VERTEX_AI" ], "enumDescriptions": [ "Default unknown system.", @@ -2741,8 +2885,11 @@ "Cloud Pub/Sub.", "Dataproc Metastore.", "Dataplex.", + "Cloud Spanner", + "Cloud Bigtable", "Cloud Sql", - "Looker" + "Looker", + "Vertex AI" ], "readOnly": true, "type": "string" @@ -2762,6 +2909,10 @@ "$ref": "GoogleCloudDatacatalogV1LookerSystemSpec", "description": "Specification that applies to Looker sysstem. Only settable when `user_specified_system` is equal to `LOOKER`" }, + "modelSpec": { + "$ref": "GoogleCloudDatacatalogV1ModelSpec", + "description": "Model specification." + }, "name": { "description": "Output only. The resource name of an entry in URL format. Note: The entry itself and its child resources might not be stored in the location specified in its name.", "readOnly": true, @@ -2780,6 +2931,10 @@ "$ref": "GoogleCloudDatacatalogV1Schema", "description": "Schema of the entry. An entry might not have any schema attached to it." }, + "serviceSpec": { + "$ref": "GoogleCloudDatacatalogV1ServiceSpec", + "description": "Specification that applies to a Service resource." + }, "sourceSystemTimestamps": { "$ref": "GoogleCloudDatacatalogV1SystemTimestamps", "description": "Timestamps from the underlying resource, not from the Data Catalog entry. Output only when the entry has a system listed in the `IntegratedSystem` enum. For entries with `user_specified_system`, this field is optional and defaults to an empty timestamp." @@ -2789,7 +2944,7 @@ "description": "Specification that applies to a relational database system. Only settable when `user_specified_system` is equal to `SQL_DATABASE`" }, "type": { - "description": "The type of the entry. Only used for entries with types listed in the `EntryType` enum. Currently, only `FILESET` enum value is allowed. All other entries created in Data Catalog must use the `user_specified_type`.", + "description": "The type of the entry. For details, see [`EntryType`](#entrytype).", "enum": [ "ENTRY_TYPE_UNSPECIFIED", "TABLE", @@ -2806,25 +2961,31 @@ "DATABASE_SCHEMA", "DASHBOARD", "EXPLORE", - "LOOK" + "LOOK", + "FEATURE_ONLINE_STORE", + "FEATURE_VIEW", + "FEATURE_GROUP" ], "enumDescriptions": [ "Default unknown type.", "The entry type that has a GoogleSQL schema, including logical views.", - "Output only. The type of models. For more information, see [Supported models in BigQuery ML] (https://cloud.google.com/bigquery-ml/docs/introduction#supported_models_in).", + "The type of models. For more information, see [Supported models in BigQuery ML](/bigquery/docs/bqml-introduction#supported_models).", "An entry type for streaming entries. For example, a Pub/Sub topic.", "An entry type for a set of files or objects. For example, a Cloud Storage fileset.", "A group of servers that work together. For example, a Kafka cluster.", "A database.", - "Output only. Connection to a data source. For example, a BigQuery connection.", - "Output only. Routine, for example, a BigQuery routine.", + "Connection to a data source. For example, a BigQuery connection.", + "Routine, for example, a BigQuery routine.", "A Dataplex lake.", "A Dataplex zone.", "A service, for example, a Dataproc Metastore service.", "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" }, @@ -2892,6 +3053,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": { @@ -3039,6 +3222,10 @@ "gcsBucketPath": { "description": "Path to a Cloud Storage bucket that contains a dump ready for ingestion.", "type": "string" + }, + "jobId": { + "description": "Optional. (Optional) Dataplex task job id, if specified will be used as part of ImportEntries LRO ID", + "type": "string" } }, "type": "object" @@ -3224,6 +3411,17 @@ }, "type": "object" }, + "GoogleCloudDatacatalogV1ModelSpec": { + "description": "Specification that applies to a model. Valid only for entries with the `MODEL` type.", + "id": "GoogleCloudDatacatalogV1ModelSpec", + "properties": { + "vertexModelSpec": { + "$ref": "GoogleCloudDatacatalogV1VertexModelSpec", + "description": "Specification for vertex model resources." + } + }, + "type": "object" + }, "GoogleCloudDatacatalogV1ModifyEntryContactsRequest": { "description": "Request message for ModifyEntryContacts.", "id": "GoogleCloudDatacatalogV1ModifyEntryContactsRequest", @@ -3365,8 +3563,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": { @@ -3376,6 +3573,80 @@ }, "type": "object" }, + "GoogleCloudDatacatalogV1ReconcileTagsMetadata": { + "description": "Long-running operation metadata message returned by the ReconcileTags.", + "id": "GoogleCloudDatacatalogV1ReconcileTagsMetadata", + "properties": { + "errors": { + "additionalProperties": { + "$ref": "Status" + }, + "description": "Maps the name of each tagged column (or empty string for a sole entry) to tagging operation status.", + "type": "object" + }, + "state": { + "description": "State of the reconciliation operation.", + "enum": [ + "RECONCILIATION_STATE_UNSPECIFIED", + "RECONCILIATION_QUEUED", + "RECONCILIATION_IN_PROGRESS", + "RECONCILIATION_DONE" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "The reconciliation has been queued and awaits for execution.", + "The reconciliation is in progress.", + "The reconciliation has been finished." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1ReconcileTagsRequest": { + "description": "Request message for ReconcileTags.", + "id": "GoogleCloudDatacatalogV1ReconcileTagsRequest", + "properties": { + "forceDeleteMissing": { + "description": "If set to `true`, deletes entry tags related to a tag template not listed in the tags source from an entry. If set to `false`, unlisted tags are retained.", + "type": "boolean" + }, + "tagTemplate": { + "description": "Required. The name of the tag template, which is used for reconciliation.", + "type": "string" + }, + "tags": { + "description": "A list of tags to apply to an entry. A tag can specify a tag template, which must be the template specified in the `ReconcileTagsRequest`. The sole entry and each of its columns must be mentioned at most once.", + "items": { + "$ref": "GoogleCloudDatacatalogV1Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1ReconcileTagsResponse": { + "description": "Long-running operation response message returned by ReconcileTags.", + "id": "GoogleCloudDatacatalogV1ReconcileTagsResponse", + "properties": { + "createdTagsCount": { + "description": "Number of tags created in the request.", + "format": "int64", + "type": "string" + }, + "deletedTagsCount": { + "description": "Number of tags deleted in the request.", + "format": "int64", + "type": "string" + }, + "updatedTagsCount": { + "description": "Number of tags updated in the request.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDatacatalogV1RenameTagTemplateFieldEnumValueRequest": { "description": "Request message for RenameTagTemplateFieldEnumValue.", "id": "GoogleCloudDatacatalogV1RenameTagTemplateFieldEnumValueRequest", @@ -3502,12 +3773,16 @@ "description": "Request message for SearchCatalog.", "id": "GoogleCloudDatacatalogV1SearchCatalogRequest", "properties": { + "adminSearch": { + "description": "Optional. If set, use searchAll permission granted on organizations from `include_org_ids` and projects from `include_project_ids` instead of the fine grained per resource permissions when filtering the search results. The only allowed `order_by` criteria for admin_search mode is `default`. Using this flags guarantees a full recall of the search results.", + "type": "boolean" + }, "orderBy": { - "description": "Specifies the order of results. Currently supported case-sensitive values are: * `relevance` that can only be descending * `last_modified_timestamp [asc|desc]` with descending (`desc`) as default * `default` that can only be descending If this parameter is omitted, it defaults to the descending `relevance`.", + "description": "Specifies the order of results. Currently supported case-sensitive values are: * `relevance` that can only be descending * `last_modified_timestamp [asc|desc]` with descending (`desc`) as default * `default` that can only be descending Search queries don't guarantee full recall. Results that match your query might not be returned, even in subsequent result pages. Additionally, returned (and not returned) results can vary if you repeat search queries. If you are experiencing recall issues and you don't have to fetch the results in any specific order, consider setting this parameter to `default`. If this parameter is omitted, it defaults to the descending `relevance`.", "type": "string" }, "pageSize": { - "description": "Number of results to return in a single search page. Can't be negative or 0, defaults to 10 in this case. The maximum number is 1000. If exceeded, throws an \"invalid argument\" exception.", + "description": "Upper bound on the number of results you can get in a single response. Can't be negative or 0, defaults to 10 in this case. The maximum number is 1000. If exceeded, throws an \"invalid argument\" exception.", "format": "int32", "type": "integer" }, @@ -3531,7 +3806,7 @@ "id": "GoogleCloudDatacatalogV1SearchCatalogRequestScope", "properties": { "includeGcpPublicDatasets": { - "description": "If `true`, include Google Cloud Platform (GCP) public datasets in search results. By default, they are excluded. See [Google Cloud Public Datasets](/public-datasets) for more information.", + "description": "If `true`, include Google Cloud public datasets in search results. By default, they are excluded. See [Google Cloud Public Datasets](/public-datasets) for more information.", "type": "boolean" }, "includeOrgIds": { @@ -3549,6 +3824,7 @@ "type": "array" }, "includePublicTagTemplates": { + "deprecated": true, "description": "Optional. This field is deprecated. The search mechanism for public and private tag templates is the same.", "type": "boolean" }, @@ -3581,6 +3857,11 @@ }, "type": "array" }, + "totalSize": { + "description": "The approximate total number of entries matched by the query.", + "format": "int32", + "type": "integer" + }, "unreachable": { "description": "Unreachable locations. Search results don't include data from those locations. To get additional information on an error, repeat the search request and restrict it to specific locations by setting the `SearchCatalogRequest.scope.restricted_locations` parameter.", "items": { @@ -3615,8 +3896,11 @@ "CLOUD_PUBSUB", "DATAPROC_METASTORE", "DATAPLEX", + "CLOUD_SPANNER", + "CLOUD_BIGTABLE", "CLOUD_SQL", - "LOOKER" + "LOOKER", + "VERTEX_AI" ], "enumDescriptions": [ "Default unknown system.", @@ -3624,8 +3908,11 @@ "Cloud Pub/Sub.", "Dataproc Metastore.", "Dataplex.", + "Cloud Spanner", + "Cloud Bigtable", "Cloud Sql", - "Looker" + "Looker", + "Vertex AI" ], "readOnly": true, "type": "string" @@ -3733,6 +4020,17 @@ }, "type": "object" }, + "GoogleCloudDatacatalogV1ServiceSpec": { + "description": "Specification that applies to a Service resource. Valid only for entries with the `SERVICE` type.", + "id": "GoogleCloudDatacatalogV1ServiceSpec", + "properties": { + "cloudBigtableInstanceSpec": { + "$ref": "GoogleCloudDatacatalogV1CloudBigtableInstanceSpec", + "description": "Specification that applies to Instance entries of `CLOUD_BIGTABLE` system." + } + }, + "type": "object" + }, "GoogleCloudDatacatalogV1SqlDatabaseSystemSpec": { "description": "Specification that applies to entries that are part `SQL_DATABASE` system (user_specified_type)", "id": "GoogleCloudDatacatalogV1SqlDatabaseSystemSpec", @@ -3904,7 +4202,7 @@ "type": "object" }, "GoogleCloudDatacatalogV1TagTemplate": { - "description": "A tag template defines a tag that can have one or more typed fields. The template is used to create tags that are attached to GCP resources. [Tag template roles] (https://cloud.google.com/iam/docs/understanding-roles#data-catalog-roles) provide permissions to create, edit, and use the template. For example, see the [TagTemplate User] (https://cloud.google.com/data-catalog/docs/how-to/template-user) role that includes a permission to use the tag template to tag resources.", + "description": "A tag template defines a tag that can have one or more typed fields. The template is used to create tags that are attached to Google Cloud resources. [Tag template roles] (https://cloud.google.com/iam/docs/understanding-roles#data-catalog-roles) provide permissions to create, edit, and use the template. For example, see the [TagTemplate User] (https://cloud.google.com/data-catalog/docs/how-to/template-user) role that includes a permission to use the tag template to tag resources.", "id": "GoogleCloudDatacatalogV1TagTemplate", "properties": { "displayName": { @@ -3962,6 +4260,31 @@ }, "type": "object" }, + "GoogleCloudDatacatalogV1TaggedEntry": { + "description": "Wrapper containing Entry and information about Tags that should and should not be attached to it.", + "id": "GoogleCloudDatacatalogV1TaggedEntry", + "properties": { + "absentTags": { + "description": "Optional. Tags that should be deleted from the Data Catalog. Caller should populate template name and column only.", + "items": { + "$ref": "GoogleCloudDatacatalogV1Tag" + }, + "type": "array" + }, + "presentTags": { + "description": "Optional. Tags that should be ingested into the Data Catalog. Caller should populate template name, column and fields.", + "items": { + "$ref": "GoogleCloudDatacatalogV1Tag" + }, + "type": "array" + }, + "v1Entry": { + "$ref": "GoogleCloudDatacatalogV1Entry", + "description": "Non-encrypted Data Catalog v1 Entry." + } + }, + "type": "object" + }, "GoogleCloudDatacatalogV1Taxonomy": { "description": "A taxonomy is a collection of hierarchical policy tags that classify data along a common axis. For example, a \"data sensitivity\" taxonomy might contain the following policy tags: ``` + PII + Account number + Age + SSN + Zipcode + Financials + Revenue ``` A \"data origin\" taxonomy might contain the following policy tags: ``` + User data + Employee data + Partner data + Public data ```", "id": "GoogleCloudDatacatalogV1Taxonomy", @@ -3990,8 +4313,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": { @@ -4002,7 +4324,7 @@ }, "service": { "$ref": "GoogleCloudDatacatalogV1TaxonomyService", - "description": "Output only. Identity of the service which owns the Taxonomy. This field is only populated when the taxonomy is created by a GCP service. Currently only 'DATAPLEX' is supported.", + "description": "Output only. Identity of the service which owns the Taxonomy. This field is only populated when the taxonomy is created by a Google Cloud service. Currently only 'DATAPLEX' is supported.", "readOnly": true }, "taxonomyTimestamps": { @@ -4018,11 +4340,11 @@ "id": "GoogleCloudDatacatalogV1TaxonomyService", "properties": { "identity": { - "description": "P4SA Identity of the service.", + "description": "The service agent for the service.", "type": "string" }, "name": { - "description": "The GCP service name.", + "description": "The Google Cloud service name.", "enum": [ "MANAGING_SYSTEM_UNSPECIFIED", "MANAGING_SYSTEM_DATAPLEX", @@ -4109,6 +4431,111 @@ }, "type": "object" }, + "GoogleCloudDatacatalogV1VertexDatasetSpec": { + "description": "Specification for vertex dataset resources.", + "id": "GoogleCloudDatacatalogV1VertexDatasetSpec", + "properties": { + "dataItemCount": { + "description": "The number of DataItems in this Dataset. Only apply for non-structured Dataset.", + "format": "int64", + "type": "string" + }, + "dataType": { + "description": "Type of the dataset.", + "enum": [ + "DATA_TYPE_UNSPECIFIED", + "TABLE", + "IMAGE", + "TEXT", + "VIDEO", + "CONVERSATION", + "TIME_SERIES", + "DOCUMENT", + "TEXT_TO_SPEECH", + "TRANSLATION", + "STORE_VISION", + "ENTERPRISE_KNOWLEDGE_GRAPH", + "TEXT_PROMPT" + ], + "enumDescriptions": [ + "Should not be used.", + "Structured data dataset.", + "Image dataset which supports ImageClassification, ImageObjectDetection and ImageSegmentation problems.", + "Document dataset which supports TextClassification, TextExtraction and TextSentiment problems.", + "Video dataset which supports VideoClassification, VideoObjectTracking and VideoActionRecognition problems.", + "Conversation dataset which supports conversation problems.", + "TimeSeries dataset.", + "Document dataset which supports DocumentAnnotation problems.", + "TextToSpeech dataset which supports TextToSpeech problems.", + "Translation dataset which supports Translation problems.", + "Store Vision dataset which is used for HITL integration.", + "Enterprise Knowledge Graph dataset which is used for HITL labeling integration.", + "Text prompt dataset which supports Large Language Models." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1VertexModelSourceInfo": { + "description": "Detail description of the source information of a Vertex model.", + "id": "GoogleCloudDatacatalogV1VertexModelSourceInfo", + "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" + ], + "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." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1VertexModelSpec": { + "description": "Specification for vertex model resources.", + "id": "GoogleCloudDatacatalogV1VertexModelSpec", + "properties": { + "containerImageUri": { + "description": "URI of the Docker image to be used as the custom container for serving predictions.", + "type": "string" + }, + "versionAliases": { + "description": "User provided version aliases so that a model version can be referenced via alias", + "items": { + "type": "string" + }, + "type": "array" + }, + "versionDescription": { + "description": "The description of this version.", + "type": "string" + }, + "versionId": { + "description": "The version ID of the model.", + "type": "string" + }, + "vertexModelSourceInfo": { + "$ref": "GoogleCloudDatacatalogV1VertexModelSourceInfo", + "description": "Source of a Vertex model." + } + }, + "type": "object" + }, "GoogleCloudDatacatalogV1ViewSpec": { "description": "Table view specification.", "id": "GoogleCloudDatacatalogV1ViewSpec", @@ -4168,14 +4595,14 @@ "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" } }, "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/).", + "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": { "bindings": { diff --git a/etc/api/datacatalog/v1beta1/datacatalog-api.json b/etc/api/datacatalog/v1beta1/datacatalog-api.json index 7c8bcf9787..029bf19dd4 100644 --- a/etc/api/datacatalog/v1beta1/datacatalog-api.json +++ b/etc/api/datacatalog/v1beta1/datacatalog-api.json @@ -1488,7 +1488,7 @@ ], "parameters": { "name": { - "description": "Output only. Resource name of this taxonomy, whose format is: \"projects/{project_number}/locations/{location_id}/taxonomies/{id}\".", + "description": "Identifier. Resource name of this taxonomy, whose format is: \"projects/{project_number}/locations/{location_id}/taxonomies/{id}\".", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/taxonomies/[^/]+$", "required": true, @@ -1724,7 +1724,7 @@ ], "parameters": { "name": { - "description": "Output only. Resource name of this policy tag, whose format is: \"projects/{project_number}/locations/{location_id}/taxonomies/{taxonomy_id}/policyTags/{id}\".", + "description": "Identifier. Resource name of this policy tag, whose format is: \"projects/{project_number}/locations/{location_id}/taxonomies/{taxonomy_id}/policyTags/{id}\".", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/taxonomies/[^/]+/policyTags/[^/]+$", "required": true, @@ -1813,7 +1813,7 @@ } } }, - "revision": "20230117", + "revision": "20240222", "rootUrl": "https://datacatalog.googleapis.com/", "schemas": { "Binding": { @@ -1825,14 +1825,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1890,6 +1890,866 @@ }, "type": "object" }, + "GoogleCloudDatacatalogV1BigQueryConnectionSpec": { + "description": "Specification for the BigQuery connection.", + "id": "GoogleCloudDatacatalogV1BigQueryConnectionSpec", + "properties": { + "cloudSql": { + "$ref": "GoogleCloudDatacatalogV1CloudSqlBigQueryConnectionSpec", + "description": "Specification for the BigQuery connection to a Cloud SQL instance." + }, + "connectionType": { + "description": "The type of the BigQuery connection.", + "enum": [ + "CONNECTION_TYPE_UNSPECIFIED", + "CLOUD_SQL" + ], + "enumDescriptions": [ + "Unspecified type.", + "Cloud SQL connection." + ], + "type": "string" + }, + "hasCredential": { + "description": "True if there are credentials attached to the BigQuery connection; false otherwise.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1BigQueryDateShardedSpec": { + "description": "Specification for a group of BigQuery tables with the `[prefix]YYYYMMDD` name pattern. For more information, see [Introduction to partitioned tables] (https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding).", + "id": "GoogleCloudDatacatalogV1BigQueryDateShardedSpec", + "properties": { + "dataset": { + "description": "Output only. The Data Catalog resource name of the dataset entry the current table belongs to. For example: `projects/{PROJECT_ID}/locations/{LOCATION}/entrygroups/{ENTRY_GROUP_ID}/entries/{ENTRY_ID}`.", + "readOnly": true, + "type": "string" + }, + "latestShardResource": { + "description": "Output only. BigQuery resource name of the latest shard.", + "readOnly": true, + "type": "string" + }, + "shardCount": { + "description": "Output only. Total number of shards.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "tablePrefix": { + "description": "Output only. The table name prefix of the shards. The name of any given shard is `[table_prefix]YYYYMMDD`. For example, for the `MyTable20180101` shard, the `table_prefix` is `MyTable`.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1BigQueryRoutineSpec": { + "description": "Fields specific for BigQuery routines.", + "id": "GoogleCloudDatacatalogV1BigQueryRoutineSpec", + "properties": { + "importedLibraries": { + "description": "Paths of the imported libraries.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1BigQueryTableSpec": { + "description": "Describes a BigQuery table.", + "id": "GoogleCloudDatacatalogV1BigQueryTableSpec", + "properties": { + "tableSourceType": { + "description": "Output only. The table source type.", + "enum": [ + "TABLE_SOURCE_TYPE_UNSPECIFIED", + "BIGQUERY_VIEW", + "BIGQUERY_TABLE", + "BIGQUERY_MATERIALIZED_VIEW" + ], + "enumDescriptions": [ + "Default unknown type.", + "Table view.", + "BigQuery native table.", + "BigQuery materialized view." + ], + "readOnly": true, + "type": "string" + }, + "tableSpec": { + "$ref": "GoogleCloudDatacatalogV1TableSpec", + "description": "Specification of a BigQuery table. Populated only if the `table_source_type` is `BIGQUERY_TABLE`." + }, + "viewSpec": { + "$ref": "GoogleCloudDatacatalogV1ViewSpec", + "description": "Table view specification. Populated only if the `table_source_type` is `BIGQUERY_VIEW`." + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1BusinessContext": { + "description": "Business Context of the entry.", + "id": "GoogleCloudDatacatalogV1BusinessContext", + "properties": { + "contacts": { + "$ref": "GoogleCloudDatacatalogV1Contacts", + "description": "Contact people for the entry." + }, + "entryOverview": { + "$ref": "GoogleCloudDatacatalogV1EntryOverview", + "description": "Entry overview fields for rich text descriptions of entries." + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1CloudBigtableInstanceSpec": { + "description": "Specification that applies to Instance entries that are part of `CLOUD_BIGTABLE` system. (user_specified_type)", + "id": "GoogleCloudDatacatalogV1CloudBigtableInstanceSpec", + "properties": { + "cloudBigtableClusterSpecs": { + "description": "The list of clusters for the Instance.", + "items": { + "$ref": "GoogleCloudDatacatalogV1CloudBigtableInstanceSpecCloudBigtableClusterSpec" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1CloudBigtableInstanceSpecCloudBigtableClusterSpec": { + "description": "Spec that applies to clusters of an Instance of Cloud Bigtable.", + "id": "GoogleCloudDatacatalogV1CloudBigtableInstanceSpecCloudBigtableClusterSpec", + "properties": { + "displayName": { + "description": "Name of the cluster.", + "type": "string" + }, + "linkedResource": { + "description": "A link back to the parent resource, in this case Instance.", + "type": "string" + }, + "location": { + "description": "Location of the cluster, typically a Cloud zone.", + "type": "string" + }, + "type": { + "description": "Type of the resource. For a cluster this would be \"CLUSTER\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1CloudBigtableSystemSpec": { + "description": "Specification that applies to all entries that are part of `CLOUD_BIGTABLE` system (user_specified_type)", + "id": "GoogleCloudDatacatalogV1CloudBigtableSystemSpec", + "properties": { + "instanceDisplayName": { + "description": "Display name of the Instance. This is user specified and different from the resource name.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1CloudSqlBigQueryConnectionSpec": { + "description": "Specification for the BigQuery connection to a Cloud SQL instance.", + "id": "GoogleCloudDatacatalogV1CloudSqlBigQueryConnectionSpec", + "properties": { + "database": { + "description": "Database name.", + "type": "string" + }, + "instanceId": { + "description": "Cloud SQL instance ID in the format of `project:location:instance`.", + "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" + }, + "GoogleCloudDatacatalogV1ColumnSchema": { + "description": "A column within a schema. Columns can be nested inside other columns.", + "id": "GoogleCloudDatacatalogV1ColumnSchema", + "properties": { + "column": { + "description": "Required. Name of the column. Must be a UTF-8 string without dots (.). The maximum size is 64 bytes.", + "type": "string" + }, + "defaultValue": { + "description": "Optional. Default value for the column.", + "type": "string" + }, + "description": { + "description": "Optional. Description of the column. Default value is an empty string. The description must be a UTF-8 string with the maximum size of 2000 bytes.", + "type": "string" + }, + "gcRule": { + "description": "Optional. Garbage collection policy for the column or column family. Applies to systems like Cloud Bigtable.", + "type": "string" + }, + "highestIndexingType": { + "description": "Optional. Most important inclusion of this column.", + "enum": [ + "INDEXING_TYPE_UNSPECIFIED", + "INDEXING_TYPE_NONE", + "INDEXING_TYPE_NON_UNIQUE", + "INDEXING_TYPE_UNIQUE", + "INDEXING_TYPE_PRIMARY_KEY" + ], + "enumDescriptions": [ + "Unspecified.", + "Column not a part of an index.", + "Column Part of non unique index.", + "Column part of unique index.", + "Column part of the primary key." + ], + "type": "string" + }, + "lookerColumnSpec": { + "$ref": "GoogleCloudDatacatalogV1ColumnSchemaLookerColumnSpec", + "description": "Looker specific column info of this column." + }, + "mode": { + "description": "Optional. A column's mode indicates whether values in this column are required, nullable, or repeated. Only `NULLABLE`, `REQUIRED`, and `REPEATED` values are supported. Default mode is `NULLABLE`.", + "type": "string" + }, + "ordinalPosition": { + "description": "Optional. Ordinal position", + "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": { + "$ref": "GoogleCloudDatacatalogV1ColumnSchema" + }, + "type": "array" + }, + "type": { + "description": "Required. Type of the column. Must be a UTF-8 string with the maximum size of 128 bytes.", + "type": "string" + } + }, + "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", + "properties": { + "type": { + "description": "Looker specific column type of this column.", + "enum": [ + "LOOKER_COLUMN_TYPE_UNSPECIFIED", + "DIMENSION", + "DIMENSION_GROUP", + "FILTER", + "MEASURE", + "PARAMETER" + ], + "enumDescriptions": [ + "Unspecified.", + "Dimension.", + "Dimension group - parent for Dimension.", + "Filter.", + "Measure.", + "Parameter." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1CommonUsageStats": { + "description": "Common statistics on the entry's usage. They can be set on any system.", + "id": "GoogleCloudDatacatalogV1CommonUsageStats", + "properties": { + "viewCount": { + "description": "View count in source system.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1Contacts": { + "description": "Contact people for the entry.", + "id": "GoogleCloudDatacatalogV1Contacts", + "properties": { + "people": { + "description": "The list of contact people for the entry.", + "items": { + "$ref": "GoogleCloudDatacatalogV1ContactsPerson" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1ContactsPerson": { + "description": "A contact person for the entry.", + "id": "GoogleCloudDatacatalogV1ContactsPerson", + "properties": { + "designation": { + "description": "Designation of the person, for example, Data Steward.", + "type": "string" + }, + "email": { + "description": "Email of the person in the format of `john.doe@xyz`, ``, or `John Doe`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1DataSource": { + "description": "Physical location of an entry.", + "id": "GoogleCloudDatacatalogV1DataSource", + "properties": { + "resource": { + "description": "Full name of a resource as defined by the service. For example: `//bigquery.googleapis.com/projects/{PROJECT_ID}/locations/{LOCATION}/datasets/{DATASET_ID}/tables/{TABLE_ID}`", + "type": "string" + }, + "service": { + "description": "Service that physically stores the data.", + "enum": [ + "SERVICE_UNSPECIFIED", + "CLOUD_STORAGE", + "BIGQUERY" + ], + "enumDescriptions": [ + "Default unknown service.", + "Google Cloud Storage service.", + "BigQuery service." + ], + "type": "string" + }, + "sourceEntry": { + "description": "Output only. Data Catalog entry name, if applicable.", + "readOnly": true, + "type": "string" + }, + "storageProperties": { + "$ref": "GoogleCloudDatacatalogV1StorageProperties", + "description": "Detailed properties of the underlying storage." + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1DataSourceConnectionSpec": { + "description": "Specification that applies to a data source connection. Valid only for entries with the `DATA_SOURCE_CONNECTION` type. Only one of internal specs can be set at the time, and cannot be changed later.", + "id": "GoogleCloudDatacatalogV1DataSourceConnectionSpec", + "properties": { + "bigqueryConnectionSpec": { + "$ref": "GoogleCloudDatacatalogV1BigQueryConnectionSpec", + "description": "Output only. Fields specific to BigQuery connections." + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1DatabaseTableSpec": { + "description": "Specification that applies to a table resource. Valid only for entries with the `TABLE` type.", + "id": "GoogleCloudDatacatalogV1DatabaseTableSpec", + "properties": { + "databaseViewSpec": { + "$ref": "GoogleCloudDatacatalogV1DatabaseTableSpecDatabaseViewSpec", + "description": "Spec what aplies to tables that are actually views. Not set for \"real\" tables." + }, + "dataplexTable": { + "$ref": "GoogleCloudDatacatalogV1DataplexTableSpec", + "description": "Output only. Fields specific to a Dataplex table and present only in the Dataplex table entries.", + "readOnly": true + }, + "type": { + "description": "Type of this table.", + "enum": [ + "TABLE_TYPE_UNSPECIFIED", + "NATIVE", + "EXTERNAL" + ], + "enumDescriptions": [ + "Default unknown table type.", + "Native table.", + "External table." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1DatabaseTableSpecDatabaseViewSpec": { + "description": "Specification that applies to database view.", + "id": "GoogleCloudDatacatalogV1DatabaseTableSpecDatabaseViewSpec", + "properties": { + "baseTable": { + "description": "Name of a singular table this view reflects one to one.", + "type": "string" + }, + "sqlQuery": { + "description": "SQL query used to generate this view.", + "type": "string" + }, + "viewType": { + "description": "Type of this view.", + "enum": [ + "VIEW_TYPE_UNSPECIFIED", + "STANDARD_VIEW", + "MATERIALIZED_VIEW" + ], + "enumDescriptions": [ + "Default unknown view type.", + "Standard view.", + "Materialized view." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1DataplexExternalTable": { + "description": "External table registered by Dataplex. Dataplex publishes data discovered from an asset into multiple other systems (BigQuery, DPMS) in form of tables. We call them \"external tables\". External tables are also synced into the Data Catalog. This message contains pointers to those external tables (fully qualified name, resource name et cetera) within the Data Catalog.", + "id": "GoogleCloudDatacatalogV1DataplexExternalTable", + "properties": { + "dataCatalogEntry": { + "description": "Name of the Data Catalog entry representing the external table.", + "type": "string" + }, + "fullyQualifiedName": { + "description": "Fully qualified name (FQN) of the external table.", + "type": "string" + }, + "googleCloudResource": { + "description": "Google Cloud resource name of the external table.", + "type": "string" + }, + "system": { + "description": "Service in which the external table is registered.", + "enum": [ + "INTEGRATED_SYSTEM_UNSPECIFIED", + "BIGQUERY", + "CLOUD_PUBSUB", + "DATAPROC_METASTORE", + "DATAPLEX", + "CLOUD_SPANNER", + "CLOUD_BIGTABLE", + "CLOUD_SQL", + "LOOKER", + "VERTEX_AI" + ], + "enumDescriptions": [ + "Default unknown system.", + "BigQuery.", + "Cloud Pub/Sub.", + "Dataproc Metastore.", + "Dataplex.", + "Cloud Spanner", + "Cloud Bigtable", + "Cloud Sql", + "Looker", + "Vertex AI" + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1DataplexFilesetSpec": { + "description": "Entry specyfication for a Dataplex fileset.", + "id": "GoogleCloudDatacatalogV1DataplexFilesetSpec", + "properties": { + "dataplexSpec": { + "$ref": "GoogleCloudDatacatalogV1DataplexSpec", + "description": "Common Dataplex fields." + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1DataplexSpec": { + "description": "Common Dataplex fields.", + "id": "GoogleCloudDatacatalogV1DataplexSpec", + "properties": { + "asset": { + "description": "Fully qualified resource name of an asset in Dataplex, to which the underlying data source (Cloud Storage bucket or BigQuery dataset) of the entity is attached.", + "type": "string" + }, + "compressionFormat": { + "description": "Compression format of the data, e.g., zip, gzip etc.", + "type": "string" + }, + "dataFormat": { + "$ref": "GoogleCloudDatacatalogV1PhysicalSchema", + "description": "Format of the data." + }, + "projectId": { + "description": "Project ID of the underlying Cloud Storage or BigQuery data. Note that this may not be the same project as the correspondingly Dataplex lake / zone / asset.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1DataplexTableSpec": { + "description": "Entry specification for a Dataplex table.", + "id": "GoogleCloudDatacatalogV1DataplexTableSpec", + "properties": { + "dataplexSpec": { + "$ref": "GoogleCloudDatacatalogV1DataplexSpec", + "description": "Common Dataplex fields." + }, + "externalTables": { + "description": "List of external tables registered by Dataplex in other systems based on the same underlying data. External tables allow to query this data in those systems.", + "items": { + "$ref": "GoogleCloudDatacatalogV1DataplexExternalTable" + }, + "type": "array" + }, + "userManaged": { + "description": "Indicates if the table schema is managed by the user or not.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1DatasetSpec": { + "description": "Specification that applies to a dataset. Valid only for entries with the `DATASET` type.", + "id": "GoogleCloudDatacatalogV1DatasetSpec", + "properties": { + "vertexDatasetSpec": { + "$ref": "GoogleCloudDatacatalogV1VertexDatasetSpec", + "description": "Vertex AI Dataset specific fields" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1DumpItem": { + "description": "Wrapper for any item that can be contained in the dump.", + "id": "GoogleCloudDatacatalogV1DumpItem", + "properties": { + "taggedEntry": { + "$ref": "GoogleCloudDatacatalogV1TaggedEntry", + "description": "Entry and its tags." + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1Entry": { + "description": "Entry metadata. A Data Catalog entry represents another resource in Google Cloud Platform (such as a BigQuery dataset or a Pub/Sub topic) or outside of it. You can use the `linked_resource` field in the entry resource to refer to the original resource ID of the source system. An entry resource contains resource details, for example, its schema. Additionally, you can attach flexible metadata to an entry in the form of a Tag.", + "id": "GoogleCloudDatacatalogV1Entry", + "properties": { + "bigqueryDateShardedSpec": { + "$ref": "GoogleCloudDatacatalogV1BigQueryDateShardedSpec", + "description": "Output only. Specification for a group of BigQuery tables with the `[prefix]YYYYMMDD` name pattern. For more information, see [Introduction to partitioned tables] (https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding).", + "readOnly": true + }, + "bigqueryTableSpec": { + "$ref": "GoogleCloudDatacatalogV1BigQueryTableSpec", + "description": "Output only. Specification that applies to a BigQuery table. Valid only for entries with the `TABLE` type.", + "readOnly": true + }, + "businessContext": { + "$ref": "GoogleCloudDatacatalogV1BusinessContext", + "description": "Business Context of the entry. Not supported for BigQuery datasets" + }, + "cloudBigtableSystemSpec": { + "$ref": "GoogleCloudDatacatalogV1CloudBigtableSystemSpec", + "description": "Specification that applies to Cloud Bigtable system. Only settable when `integrated_system` is equal to `CLOUD_BIGTABLE`" + }, + "dataSource": { + "$ref": "GoogleCloudDatacatalogV1DataSource", + "description": "Output only. Physical location of the entry.", + "readOnly": true + }, + "dataSourceConnectionSpec": { + "$ref": "GoogleCloudDatacatalogV1DataSourceConnectionSpec", + "description": "Specification that applies to a data source connection. Valid only for entries with the `DATA_SOURCE_CONNECTION` type." + }, + "databaseTableSpec": { + "$ref": "GoogleCloudDatacatalogV1DatabaseTableSpec", + "description": "Specification that applies to a table resource. Valid only for entries with the `TABLE` or `EXPLORE` type." + }, + "datasetSpec": { + "$ref": "GoogleCloudDatacatalogV1DatasetSpec", + "description": "Specification that applies to a dataset." + }, + "description": { + "description": "Entry description that can consist of several sentences or paragraphs that describe entry contents. The description must not contain Unicode non-characters as well as C0 and C1 control codes except tabs (HT), new lines (LF), carriage returns (CR), and page breaks (FF). The maximum size is 2000 bytes when encoded in UTF-8. Default value is an empty string.", + "type": "string" + }, + "displayName": { + "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." + }, + "fullyQualifiedName": { + "description": "[Fully Qualified Name (FQN)](https://cloud.google.com//data-catalog/docs/fully-qualified-names) of the resource. Set automatically for entries representing resources from synced systems. Settable only during creation, and read-only later. Can be used for search and lookup of the entries. ", + "type": "string" + }, + "gcsFilesetSpec": { + "$ref": "GoogleCloudDatacatalogV1GcsFilesetSpec", + "description": "Specification that applies to a Cloud Storage fileset. Valid only for entries with the `FILESET` type." + }, + "integratedSystem": { + "description": "Output only. Indicates the entry's source system that Data Catalog integrates with, such as BigQuery, Pub/Sub, or Dataproc Metastore.", + "enum": [ + "INTEGRATED_SYSTEM_UNSPECIFIED", + "BIGQUERY", + "CLOUD_PUBSUB", + "DATAPROC_METASTORE", + "DATAPLEX", + "CLOUD_SPANNER", + "CLOUD_BIGTABLE", + "CLOUD_SQL", + "LOOKER", + "VERTEX_AI" + ], + "enumDescriptions": [ + "Default unknown system.", + "BigQuery.", + "Cloud Pub/Sub.", + "Dataproc Metastore.", + "Dataplex.", + "Cloud Spanner", + "Cloud Bigtable", + "Cloud Sql", + "Looker", + "Vertex AI" + ], + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Cloud labels attached to the entry. In Data Catalog, you can create and modify labels attached only to custom entries. Synced entries have unmodifiable labels that come from the source system.", + "type": "object" + }, + "linkedResource": { + "description": "The resource this metadata entry refers to. For Google Cloud Platform resources, `linked_resource` is the [Full Resource Name] (https://cloud.google.com/apis/design/resource_names#full_resource_name). For example, the `linked_resource` for a table resource from BigQuery is: `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}` Output only when the entry is one of the types in the `EntryType` enum. For entries with a `user_specified_type`, this field is optional and defaults to an empty string. The resource string must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), periods (.), colons (:), slashes (/), dashes (-), and hashes (#). The maximum size is 200 bytes when encoded in UTF-8.", + "type": "string" + }, + "lookerSystemSpec": { + "$ref": "GoogleCloudDatacatalogV1LookerSystemSpec", + "description": "Specification that applies to Looker sysstem. Only settable when `user_specified_system` is equal to `LOOKER`" + }, + "modelSpec": { + "$ref": "GoogleCloudDatacatalogV1ModelSpec", + "description": "Model specification." + }, + "name": { + "description": "Output only. The resource name of an entry in URL format. Note: The entry itself and its child resources might not be stored in the location specified in its name.", + "readOnly": true, + "type": "string" + }, + "personalDetails": { + "$ref": "GoogleCloudDatacatalogV1PersonalDetails", + "description": "Output only. Additional information related to the entry. Private to the current user.", + "readOnly": true + }, + "routineSpec": { + "$ref": "GoogleCloudDatacatalogV1RoutineSpec", + "description": "Specification that applies to a user-defined function or procedure. Valid only for entries with the `ROUTINE` type." + }, + "schema": { + "$ref": "GoogleCloudDatacatalogV1Schema", + "description": "Schema of the entry. An entry might not have any schema attached to it." + }, + "serviceSpec": { + "$ref": "GoogleCloudDatacatalogV1ServiceSpec", + "description": "Specification that applies to a Service resource." + }, + "sourceSystemTimestamps": { + "$ref": "GoogleCloudDatacatalogV1SystemTimestamps", + "description": "Timestamps from the underlying resource, not from the Data Catalog entry. Output only when the entry has a system listed in the `IntegratedSystem` enum. For entries with `user_specified_system`, this field is optional and defaults to an empty timestamp." + }, + "sqlDatabaseSystemSpec": { + "$ref": "GoogleCloudDatacatalogV1SqlDatabaseSystemSpec", + "description": "Specification that applies to a relational database system. Only settable when `user_specified_system` is equal to `SQL_DATABASE`" + }, + "type": { + "description": "The type of the entry. For details, see [`EntryType`](#entrytype).", + "enum": [ + "ENTRY_TYPE_UNSPECIFIED", + "TABLE", + "MODEL", + "DATA_STREAM", + "FILESET", + "CLUSTER", + "DATABASE", + "DATA_SOURCE_CONNECTION", + "ROUTINE", + "LAKE", + "ZONE", + "SERVICE", + "DATABASE_SCHEMA", + "DASHBOARD", + "EXPLORE", + "LOOK", + "FEATURE_ONLINE_STORE", + "FEATURE_VIEW", + "FEATURE_GROUP" + ], + "enumDescriptions": [ + "Default unknown type.", + "The entry type that has a GoogleSQL schema, including logical views.", + "The type of models. For more information, see [Supported models in BigQuery ML](/bigquery/docs/bqml-introduction#supported_models).", + "An entry type for streaming entries. For example, a Pub/Sub topic.", + "An entry type for a set of files or objects. For example, a Cloud Storage fileset.", + "A group of servers that work together. For example, a Kafka cluster.", + "A database.", + "Connection to a data source. For example, a BigQuery connection.", + "Routine, for example, a BigQuery routine.", + "A Dataplex lake.", + "A Dataplex zone.", + "A service, for example, a Dataproc Metastore service.", + "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).", + "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" + }, + "usageSignal": { + "$ref": "GoogleCloudDatacatalogV1UsageSignal", + "description": "Resource usage statistics." + }, + "userSpecifiedSystem": { + "description": "Indicates the entry's source system that Data Catalog doesn't automatically integrate with. The `user_specified_system` string has the following limitations: * Is case insensitive. * Must begin with a letter or underscore. * Can only contain letters, numbers, and underscores. * Must be at least 1 character and at most 64 characters long.", + "type": "string" + }, + "userSpecifiedType": { + "description": "Custom entry type that doesn't match any of the values allowed for input and listed in the `EntryType` enum. When creating an entry, first check the type values in the enum. If there are no appropriate types for the new entry, provide a custom value, for example, `my_special_type`. The `user_specified_type` string has the following limitations: * Is case insensitive. * Must begin with a letter or underscore. * Can only contain letters, numbers, and underscores. * Must be at least 1 character and at most 64 characters long.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1EntryOverview": { + "description": "Entry overview fields for rich text descriptions of entries.", + "id": "GoogleCloudDatacatalogV1EntryOverview", + "properties": { + "overview": { + "description": "Entry overview with support for rich text. The overview must only contain Unicode characters, and should be formatted using HTML. The maximum length is 10 MiB as this value holds HTML descriptions including encoded images. The maximum length of the text without images is 100 KiB.", + "type": "string" + } + }, + "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" + }, + "GoogleCloudDatacatalogV1FilesetSpec": { + "description": "Specification that applies to a fileset. Valid only for entries with the 'FILESET' type.", + "id": "GoogleCloudDatacatalogV1FilesetSpec", + "properties": { + "dataplexFileset": { + "$ref": "GoogleCloudDatacatalogV1DataplexFilesetSpec", + "description": "Fields specific to a Dataplex fileset and present only in the Dataplex fileset entries." + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1GcsFileSpec": { + "description": "Specification of a single file in Cloud Storage.", + "id": "GoogleCloudDatacatalogV1GcsFileSpec", + "properties": { + "filePath": { + "description": "Required. Full file path. Example: `gs://bucket_name/a/b.txt`.", + "type": "string" + }, + "gcsTimestamps": { + "$ref": "GoogleCloudDatacatalogV1SystemTimestamps", + "description": "Output only. Creation, modification, and expiration timestamps of a Cloud Storage file.", + "readOnly": true + }, + "sizeBytes": { + "description": "Output only. File size in bytes.", + "format": "int64", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1GcsFilesetSpec": { + "description": "Describes a Cloud Storage fileset entry.", + "id": "GoogleCloudDatacatalogV1GcsFilesetSpec", + "properties": { + "filePatterns": { + "description": "Required. Patterns to identify a set of files in Google Cloud Storage. For more information, see [Wildcard Names] (https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames). Note: Currently, bucket wildcards are not supported. Examples of valid `file_patterns`: * `gs://bucket_name/dir/*`: matches all files in `bucket_name/dir` directory * `gs://bucket_name/dir/**`: matches all files in `bucket_name/dir` and all subdirectories * `gs://bucket_name/file*`: matches files prefixed by `file` in `bucket_name` * `gs://bucket_name/??.txt`: matches files with two characters followed by `.txt` in `bucket_name` * `gs://bucket_name/[aeiou].txt`: matches files that contain a single vowel character followed by `.txt` in `bucket_name` * `gs://bucket_name/[a-m].txt`: matches files that contain `a`, `b`, ... or `m` followed by `.txt` in `bucket_name` * `gs://bucket_name/a/*/b`: matches all files in `bucket_name` that match the `a/*/b` pattern, such as `a/c/b`, `a/d/b` * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt` You can combine wildcards to match complex sets of files, for example: `gs://bucket_name/[a-m]??.j*g`", + "items": { + "type": "string" + }, + "type": "array" + }, + "sampleGcsFileSpecs": { + "description": "Output only. Sample files contained in this fileset, not all files contained in this fileset are represented here.", + "items": { + "$ref": "GoogleCloudDatacatalogV1GcsFileSpec" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDatacatalogV1ImportEntriesMetadata": { "description": "Metadata message for long-running operation returned by the ImportEntries.", "id": "GoogleCloudDatacatalogV1ImportEntriesMetadata", @@ -1939,6 +2799,657 @@ }, "type": "object" }, + "GoogleCloudDatacatalogV1LookerSystemSpec": { + "description": "Specification that applies to entries that are part `LOOKER` system (user_specified_type)", + "id": "GoogleCloudDatacatalogV1LookerSystemSpec", + "properties": { + "parentInstanceDisplayName": { + "description": "Name of the parent Looker Instance. Empty if it does not exist.", + "type": "string" + }, + "parentInstanceId": { + "description": "ID of the parent Looker Instance. Empty if it does not exist. Example value: `someinstance.looker.com`", + "type": "string" + }, + "parentModelDisplayName": { + "description": "Name of the parent Model. Empty if it does not exist.", + "type": "string" + }, + "parentModelId": { + "description": "ID of the parent Model. Empty if it does not exist.", + "type": "string" + }, + "parentViewDisplayName": { + "description": "Name of the parent View. Empty if it does not exist.", + "type": "string" + }, + "parentViewId": { + "description": "ID of the parent View. Empty if it does not exist.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1ModelSpec": { + "description": "Specification that applies to a model. Valid only for entries with the `MODEL` type.", + "id": "GoogleCloudDatacatalogV1ModelSpec", + "properties": { + "vertexModelSpec": { + "$ref": "GoogleCloudDatacatalogV1VertexModelSpec", + "description": "Specification for vertex model resources." + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1PersonalDetails": { + "description": "Entry metadata relevant only to the user and private to them.", + "id": "GoogleCloudDatacatalogV1PersonalDetails", + "properties": { + "starTime": { + "description": "Set if the entry is starred; unset otherwise.", + "format": "google-datetime", + "type": "string" + }, + "starred": { + "description": "True if the entry is starred by the user; false otherwise.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1PhysicalSchema": { + "description": "Native schema used by a resource represented as an entry. Used by query engines for deserializing and parsing source data.", + "id": "GoogleCloudDatacatalogV1PhysicalSchema", + "properties": { + "avro": { + "$ref": "GoogleCloudDatacatalogV1PhysicalSchemaAvroSchema", + "description": "Schema in Avro JSON format." + }, + "csv": { + "$ref": "GoogleCloudDatacatalogV1PhysicalSchemaCsvSchema", + "description": "Marks a CSV-encoded data source." + }, + "orc": { + "$ref": "GoogleCloudDatacatalogV1PhysicalSchemaOrcSchema", + "description": "Marks an ORC-encoded data source." + }, + "parquet": { + "$ref": "GoogleCloudDatacatalogV1PhysicalSchemaParquetSchema", + "description": "Marks a Parquet-encoded data source." + }, + "protobuf": { + "$ref": "GoogleCloudDatacatalogV1PhysicalSchemaProtobufSchema", + "description": "Schema in protocol buffer format." + }, + "thrift": { + "$ref": "GoogleCloudDatacatalogV1PhysicalSchemaThriftSchema", + "description": "Schema in Thrift format." + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1PhysicalSchemaAvroSchema": { + "description": "Schema in Avro JSON format.", + "id": "GoogleCloudDatacatalogV1PhysicalSchemaAvroSchema", + "properties": { + "text": { + "description": "JSON source of the Avro schema.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1PhysicalSchemaCsvSchema": { + "description": "Marks a CSV-encoded data source.", + "id": "GoogleCloudDatacatalogV1PhysicalSchemaCsvSchema", + "properties": {}, + "type": "object" + }, + "GoogleCloudDatacatalogV1PhysicalSchemaOrcSchema": { + "description": "Marks an ORC-encoded data source.", + "id": "GoogleCloudDatacatalogV1PhysicalSchemaOrcSchema", + "properties": {}, + "type": "object" + }, + "GoogleCloudDatacatalogV1PhysicalSchemaParquetSchema": { + "description": "Marks a Parquet-encoded data source.", + "id": "GoogleCloudDatacatalogV1PhysicalSchemaParquetSchema", + "properties": {}, + "type": "object" + }, + "GoogleCloudDatacatalogV1PhysicalSchemaProtobufSchema": { + "description": "Schema in protocol buffer format.", + "id": "GoogleCloudDatacatalogV1PhysicalSchemaProtobufSchema", + "properties": { + "text": { + "description": "Protocol buffer source of the schema.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1PhysicalSchemaThriftSchema": { + "description": "Schema in Thrift format.", + "id": "GoogleCloudDatacatalogV1PhysicalSchemaThriftSchema", + "properties": { + "text": { + "description": "Thrift IDL source of the schema.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1ReconcileTagsMetadata": { + "description": "Long-running operation metadata message returned by the ReconcileTags.", + "id": "GoogleCloudDatacatalogV1ReconcileTagsMetadata", + "properties": { + "errors": { + "additionalProperties": { + "$ref": "Status" + }, + "description": "Maps the name of each tagged column (or empty string for a sole entry) to tagging operation status.", + "type": "object" + }, + "state": { + "description": "State of the reconciliation operation.", + "enum": [ + "RECONCILIATION_STATE_UNSPECIFIED", + "RECONCILIATION_QUEUED", + "RECONCILIATION_IN_PROGRESS", + "RECONCILIATION_DONE" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "The reconciliation has been queued and awaits for execution.", + "The reconciliation is in progress.", + "The reconciliation has been finished." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1ReconcileTagsResponse": { + "description": "Long-running operation response message returned by ReconcileTags.", + "id": "GoogleCloudDatacatalogV1ReconcileTagsResponse", + "properties": { + "createdTagsCount": { + "description": "Number of tags created in the request.", + "format": "int64", + "type": "string" + }, + "deletedTagsCount": { + "description": "Number of tags deleted in the request.", + "format": "int64", + "type": "string" + }, + "updatedTagsCount": { + "description": "Number of tags updated in the request.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1RoutineSpec": { + "description": "Specification that applies to a routine. Valid only for entries with the `ROUTINE` type.", + "id": "GoogleCloudDatacatalogV1RoutineSpec", + "properties": { + "bigqueryRoutineSpec": { + "$ref": "GoogleCloudDatacatalogV1BigQueryRoutineSpec", + "description": "Fields specific for BigQuery routines." + }, + "definitionBody": { + "description": "The body of the routine.", + "type": "string" + }, + "language": { + "description": "The language the routine is written in. The exact value depends on the source system. For BigQuery routines, possible values are: * `SQL` * `JAVASCRIPT`", + "type": "string" + }, + "returnType": { + "description": "Return type of the argument. The exact value depends on the source system and the language.", + "type": "string" + }, + "routineArguments": { + "description": "Arguments of the routine.", + "items": { + "$ref": "GoogleCloudDatacatalogV1RoutineSpecArgument" + }, + "type": "array" + }, + "routineType": { + "description": "The type of the routine.", + "enum": [ + "ROUTINE_TYPE_UNSPECIFIED", + "SCALAR_FUNCTION", + "PROCEDURE" + ], + "enumDescriptions": [ + "Unspecified type.", + "Non-builtin permanent scalar function.", + "Stored procedure." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1RoutineSpecArgument": { + "description": "Input or output argument of a function or stored procedure.", + "id": "GoogleCloudDatacatalogV1RoutineSpecArgument", + "properties": { + "mode": { + "description": "Specifies whether the argument is input or output.", + "enum": [ + "MODE_UNSPECIFIED", + "IN", + "OUT", + "INOUT" + ], + "enumDescriptions": [ + "Unspecified mode.", + "The argument is input-only.", + "The argument is output-only.", + "The argument is both an input and an output." + ], + "type": "string" + }, + "name": { + "description": "The name of the argument. A return argument of a function might not have a name.", + "type": "string" + }, + "type": { + "description": "Type of the argument. The exact value depends on the source system and the language.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1Schema": { + "description": "Represents a schema, for example, a BigQuery, GoogleSQL, or Avro schema.", + "id": "GoogleCloudDatacatalogV1Schema", + "properties": { + "columns": { + "description": "The unified GoogleSQL-like schema of columns. The overall maximum number of columns and nested columns is 10,000. The maximum nested depth is 15 levels.", + "items": { + "$ref": "GoogleCloudDatacatalogV1ColumnSchema" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1ServiceSpec": { + "description": "Specification that applies to a Service resource. Valid only for entries with the `SERVICE` type.", + "id": "GoogleCloudDatacatalogV1ServiceSpec", + "properties": { + "cloudBigtableInstanceSpec": { + "$ref": "GoogleCloudDatacatalogV1CloudBigtableInstanceSpec", + "description": "Specification that applies to Instance entries of `CLOUD_BIGTABLE` system." + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1SqlDatabaseSystemSpec": { + "description": "Specification that applies to entries that are part `SQL_DATABASE` system (user_specified_type)", + "id": "GoogleCloudDatacatalogV1SqlDatabaseSystemSpec", + "properties": { + "databaseVersion": { + "description": "Version of the database engine.", + "type": "string" + }, + "instanceHost": { + "description": "Host of the SQL database enum InstanceHost { UNDEFINED = 0; SELF_HOSTED = 1; CLOUD_SQL = 2; AMAZON_RDS = 3; AZURE_SQL = 4; } Host of the enclousing database instance.", + "type": "string" + }, + "sqlEngine": { + "description": "SQL Database Engine. enum SqlEngine { UNDEFINED = 0; MY_SQL = 1; POSTGRE_SQL = 2; SQL_SERVER = 3; } Engine of the enclosing database instance.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1StorageProperties": { + "description": "Details the properties of the underlying storage.", + "id": "GoogleCloudDatacatalogV1StorageProperties", + "properties": { + "filePattern": { + "description": "Patterns to identify a set of files for this fileset. Examples of a valid `file_pattern`: * `gs://bucket_name/dir/*`: matches all files in the `bucket_name/dir` directory * `gs://bucket_name/dir/**`: matches all files in the `bucket_name/dir` and all subdirectories recursively * `gs://bucket_name/file*`: matches files prefixed by `file` in `bucket_name` * `gs://bucket_name/??.txt`: matches files with two characters followed by `.txt` in `bucket_name` * `gs://bucket_name/[aeiou].txt`: matches files that contain a single vowel character followed by `.txt` in `bucket_name` * `gs://bucket_name/[a-m].txt`: matches files that contain `a`, `b`, ... or `m` followed by `.txt` in `bucket_name` * `gs://bucket_name/a/*/b`: matches all files in `bucket_name` that match the `a/*/b` pattern, such as `a/c/b`, `a/d/b` * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`", + "items": { + "type": "string" + }, + "type": "array" + }, + "fileType": { + "description": "File type in MIME format, for example, `text/plain`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1SystemTimestamps": { + "description": "Timestamps associated with this resource in a particular system.", + "id": "GoogleCloudDatacatalogV1SystemTimestamps", + "properties": { + "createTime": { + "description": "Creation timestamp of the resource within the given system.", + "format": "google-datetime", + "type": "string" + }, + "expireTime": { + "description": "Output only. Expiration timestamp of the resource within the given system. Currently only applicable to BigQuery resources.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Timestamp of the last modification of the resource or its metadata within a given system. Note: Depending on the source system, not every modification updates this timestamp. For example, BigQuery timestamps every metadata modification but not data or permission changes.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1TableSpec": { + "description": "Normal BigQuery table specification.", + "id": "GoogleCloudDatacatalogV1TableSpec", + "properties": { + "groupedEntry": { + "description": "Output only. If the table is date-sharded, that is, it matches the `[prefix]YYYYMMDD` name pattern, this field is the Data Catalog resource name of the date-sharded grouped entry. For example: `projects/{PROJECT_ID}/locations/{LOCATION}/entrygroups/{ENTRY_GROUP_ID}/entries/{ENTRY_ID}`. Otherwise, `grouped_entry` is empty.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1Tag": { + "description": "Tags contain custom metadata and are attached to Data Catalog resources. Tags conform with the specification of their tag template. See [Data Catalog IAM](https://cloud.google.com/data-catalog/docs/concepts/iam) for information on the permissions needed to create or view tags.", + "id": "GoogleCloudDatacatalogV1Tag", + "properties": { + "column": { + "description": "Resources like entry can have schemas associated with them. This scope allows you to attach tags to an individual column based on that schema. To attach a tag to a nested column, separate column names with a dot (`.`). Example: `column.nested_column`.", + "type": "string" + }, + "fields": { + "additionalProperties": { + "$ref": "GoogleCloudDatacatalogV1TagField" + }, + "description": "Required. Maps the ID of a tag field to its value and additional information about that field. Tag template defines valid field IDs. A tag must have at least 1 field and at most 500 fields.", + "type": "object" + }, + "name": { + "description": "The resource name of the tag in URL format where tag ID is a system-generated identifier. Note: The tag itself might not be stored in the location specified in its name.", + "type": "string" + }, + "template": { + "description": "Required. The resource name of the tag template this tag uses. Example: `projects/{PROJECT_ID}/locations/{LOCATION}/tagTemplates/{TAG_TEMPLATE_ID}` This field cannot be modified after creation.", + "type": "string" + }, + "templateDisplayName": { + "description": "Output only. The display name of the tag template.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1TagField": { + "description": "Contains the value and additional information on a field within a Tag.", + "id": "GoogleCloudDatacatalogV1TagField", + "properties": { + "boolValue": { + "description": "The value of a tag field with a boolean type.", + "type": "boolean" + }, + "displayName": { + "description": "Output only. The display name of this field.", + "readOnly": true, + "type": "string" + }, + "doubleValue": { + "description": "The value of a tag field with a double type.", + "format": "double", + "type": "number" + }, + "enumValue": { + "$ref": "GoogleCloudDatacatalogV1TagFieldEnumValue", + "description": "The value of a tag field with an enum type. This value must be one of the allowed values listed in this enum." + }, + "order": { + "description": "Output only. The order of this field with respect to other fields in this tag. Can be set by Tag. For example, a higher value can indicate a more important field. The value can be negative. Multiple fields can have the same order, and field orders within a tag don't have to be sequential.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "richtextValue": { + "description": "The value of a tag field with a rich text type. The maximum length is 10 MiB as this value holds HTML descriptions including encoded images. The maximum length of the text without images is 100 KiB.", + "type": "string" + }, + "stringValue": { + "description": "The value of a tag field with a string type. The maximum length is 2000 UTF-8 characters.", + "type": "string" + }, + "timestampValue": { + "description": "The value of a tag field with a timestamp type.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1TagFieldEnumValue": { + "description": "An enum value.", + "id": "GoogleCloudDatacatalogV1TagFieldEnumValue", + "properties": { + "displayName": { + "description": "The display name of the enum value.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1TaggedEntry": { + "description": "Wrapper containing Entry and information about Tags that should and should not be attached to it.", + "id": "GoogleCloudDatacatalogV1TaggedEntry", + "properties": { + "absentTags": { + "description": "Optional. Tags that should be deleted from the Data Catalog. Caller should populate template name and column only.", + "items": { + "$ref": "GoogleCloudDatacatalogV1Tag" + }, + "type": "array" + }, + "presentTags": { + "description": "Optional. Tags that should be ingested into the Data Catalog. Caller should populate template name, column and fields.", + "items": { + "$ref": "GoogleCloudDatacatalogV1Tag" + }, + "type": "array" + }, + "v1Entry": { + "$ref": "GoogleCloudDatacatalogV1Entry", + "description": "Non-encrypted Data Catalog v1 Entry." + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1UsageSignal": { + "description": "The set of all usage signals that Data Catalog stores. Note: Usually, these signals are updated daily. In rare cases, an update may fail but will be performed again on the next day.", + "id": "GoogleCloudDatacatalogV1UsageSignal", + "properties": { + "commonUsageWithinTimeRange": { + "additionalProperties": { + "$ref": "GoogleCloudDatacatalogV1CommonUsageStats" + }, + "description": "Common usage statistics over each of the predefined time ranges. Supported time ranges are `{\"24H\", \"7D\", \"30D\", \"Lifetime\"}`.", + "type": "object" + }, + "favoriteCount": { + "description": "Favorite count in the source system.", + "format": "int64", + "type": "string" + }, + "updateTime": { + "description": "The end timestamp of the duration of usage statistics.", + "format": "google-datetime", + "type": "string" + }, + "usageWithinTimeRange": { + "additionalProperties": { + "$ref": "GoogleCloudDatacatalogV1UsageStats" + }, + "description": "Output only. BigQuery usage statistics over each of the predefined time ranges. Supported time ranges are `{\"24H\", \"7D\", \"30D\"}`.", + "readOnly": true, + "type": "object" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1UsageStats": { + "description": "Detailed statistics on the entry's usage. Usage statistics have the following limitations: - Only BigQuery tables have them. - They only include BigQuery query jobs. - They might be underestimated because wildcard table references are not yet counted. For more information, see [Querying multiple tables using a wildcard table] (https://cloud.google.com/bigquery/docs/querying-wildcard-tables)", + "id": "GoogleCloudDatacatalogV1UsageStats", + "properties": { + "totalCancellations": { + "description": "The number of cancelled attempts to use the underlying entry.", + "format": "float", + "type": "number" + }, + "totalCompletions": { + "description": "The number of successful uses of the underlying entry.", + "format": "float", + "type": "number" + }, + "totalExecutionTimeForCompletionsMillis": { + "description": "Total time spent only on successful uses, in milliseconds.", + "format": "float", + "type": "number" + }, + "totalFailures": { + "description": "The number of failed attempts to use the underlying entry.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1VertexDatasetSpec": { + "description": "Specification for vertex dataset resources.", + "id": "GoogleCloudDatacatalogV1VertexDatasetSpec", + "properties": { + "dataItemCount": { + "description": "The number of DataItems in this Dataset. Only apply for non-structured Dataset.", + "format": "int64", + "type": "string" + }, + "dataType": { + "description": "Type of the dataset.", + "enum": [ + "DATA_TYPE_UNSPECIFIED", + "TABLE", + "IMAGE", + "TEXT", + "VIDEO", + "CONVERSATION", + "TIME_SERIES", + "DOCUMENT", + "TEXT_TO_SPEECH", + "TRANSLATION", + "STORE_VISION", + "ENTERPRISE_KNOWLEDGE_GRAPH", + "TEXT_PROMPT" + ], + "enumDescriptions": [ + "Should not be used.", + "Structured data dataset.", + "Image dataset which supports ImageClassification, ImageObjectDetection and ImageSegmentation problems.", + "Document dataset which supports TextClassification, TextExtraction and TextSentiment problems.", + "Video dataset which supports VideoClassification, VideoObjectTracking and VideoActionRecognition problems.", + "Conversation dataset which supports conversation problems.", + "TimeSeries dataset.", + "Document dataset which supports DocumentAnnotation problems.", + "TextToSpeech dataset which supports TextToSpeech problems.", + "Translation dataset which supports Translation problems.", + "Store Vision dataset which is used for HITL integration.", + "Enterprise Knowledge Graph dataset which is used for HITL labeling integration.", + "Text prompt dataset which supports Large Language Models." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1VertexModelSourceInfo": { + "description": "Detail description of the source information of a Vertex model.", + "id": "GoogleCloudDatacatalogV1VertexModelSourceInfo", + "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" + ], + "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." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1VertexModelSpec": { + "description": "Specification for vertex model resources.", + "id": "GoogleCloudDatacatalogV1VertexModelSpec", + "properties": { + "containerImageUri": { + "description": "URI of the Docker image to be used as the custom container for serving predictions.", + "type": "string" + }, + "versionAliases": { + "description": "User provided version aliases so that a model version can be referenced via alias", + "items": { + "type": "string" + }, + "type": "array" + }, + "versionDescription": { + "description": "The description of this version.", + "type": "string" + }, + "versionId": { + "description": "The version ID of the model.", + "type": "string" + }, + "vertexModelSourceInfo": { + "$ref": "GoogleCloudDatacatalogV1VertexModelSourceInfo", + "description": "Source of a Vertex model." + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1ViewSpec": { + "description": "Table view specification.", + "id": "GoogleCloudDatacatalogV1ViewSpec", + "properties": { + "viewQuery": { + "description": "Output only. The query that defines the table view.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDatacatalogV1beta1BigQueryDateShardedSpec": { "description": "Spec for a group of BigQuery tables with name pattern `[prefix]YYYYMMDD`. Context: https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding", "id": "GoogleCloudDatacatalogV1beta1BigQueryDateShardedSpec", @@ -2397,8 +3908,7 @@ "type": "string" }, "name": { - "description": "Output only. Resource name of this policy tag, whose format is: \"projects/{project_number}/locations/{location_id}/taxonomies/{taxonomy_id}/policyTags/{id}\".", - "readOnly": true, + "description": "Identifier. Resource name of this policy tag, whose format is: \"projects/{project_number}/locations/{location_id}/taxonomies/{taxonomy_id}/policyTags/{id}\".", "type": "string" }, "parentPolicyTag": { @@ -2477,7 +3987,7 @@ "id": "GoogleCloudDatacatalogV1beta1SearchCatalogRequestScope", "properties": { "includeGcpPublicDatasets": { - "description": "If `true`, include Google Cloud Platform (GCP) public datasets in the search results. Info on GCP public datasets is available at https://cloud.google.com/public-datasets/. By default, GCP public datasets are excluded.", + "description": "If `true`, include Google Cloud public datasets in the search results. Info on Google Cloud public datasets is available at https://cloud.google.com/public-datasets/. By default, Google Cloud public datasets are excluded.", "type": "boolean" }, "includeOrgIds": { @@ -2519,6 +4029,11 @@ }, "type": "array" }, + "totalSize": { + "description": "The approximate total number of entries matched by the query.", + "format": "int32", + "type": "integer" + }, "unreachable": { "description": "Unreachable locations. Search result does not include data from those locations. Users can get additional information on the error by repeating the search request with a more restrictive parameter -- setting the value for `SearchDataCatalogRequest.scope.restricted_locations`.", "items": { @@ -2750,7 +4265,7 @@ "type": "object" }, "GoogleCloudDatacatalogV1beta1TagTemplate": { - "description": "A tag template defines a tag, which can have one or more typed fields. The template is used to create and attach the tag to GCP resources. [Tag template roles](https://cloud.google.com/iam/docs/understanding-roles#data-catalog-roles) provide permissions to create, edit, and use the template. See, for example, the [TagTemplate User](https://cloud.google.com/data-catalog/docs/how-to/template-user) role, which includes permission to use the tag template to tag resources.", + "description": "A tag template defines a tag, which can have one or more typed fields. The template is used to create and attach the tag to Google Cloud resources. [Tag template roles](https://cloud.google.com/iam/docs/understanding-roles#data-catalog-roles) provide permissions to create, edit, and use the template. See, for example, the [TagTemplate User](https://cloud.google.com/data-catalog/docs/how-to/template-user) role, which includes permission to use the tag template to tag resources.", "id": "GoogleCloudDatacatalogV1beta1TagTemplate", "properties": { "displayName": { @@ -2832,8 +4347,7 @@ "type": "string" }, "name": { - "description": "Output only. Resource name of this taxonomy, whose format is: \"projects/{project_number}/locations/{location_id}/taxonomies/{id}\".", - "readOnly": true, + "description": "Identifier. Resource name of this taxonomy, whose format is: \"projects/{project_number}/locations/{location_id}/taxonomies/{id}\".", "type": "string" }, "policyTagCount": { @@ -2844,7 +4358,7 @@ }, "service": { "$ref": "GoogleCloudDatacatalogV1beta1TaxonomyService", - "description": "Output only. Identity of the service which owns the Taxonomy. This field is only populated when the taxonomy is created by a GCP service. Currently only 'DATAPLEX' is supported.", + "description": "Output only. Identity of the service which owns the Taxonomy. This field is only populated when the taxonomy is created by a Google Cloud service. Currently only 'DATAPLEX' is supported.", "readOnly": true }, "taxonomyTimestamps": { @@ -2860,11 +4374,11 @@ "id": "GoogleCloudDatacatalogV1beta1TaxonomyService", "properties": { "identity": { - "description": "P4SA Identity of the service.", + "description": "The service agent for the service.", "type": "string" }, "name": { - "description": "The GCP service name.", + "description": "The Google Cloud service name.", "enum": [ "MANAGING_SYSTEM_UNSPECIFIED", "MANAGING_SYSTEM_DATAPLEX", @@ -2939,7 +4453,7 @@ "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/).", + "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": { "bindings": { diff --git a/etc/api/dataflow/v1b3/dataflow-api.json b/etc/api/dataflow/v1b3/dataflow-api.json index fef7436ad1..ba47740384 100644 --- a/etc/api/dataflow/v1b3/dataflow-api.json +++ b/etc/api/dataflow/v1b3/dataflow-api.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" } } } @@ -24,6 +21,18 @@ "description": "Manages Google Cloud Dataflow projects on Google Cloud Platform.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/dataflow", + "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://dataflow.me-central2.rep.googleapis.com/", + "location": "me-central2" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://dataflow.europe-west3.rep.googleapis.com/", + "location": "europe-west3" + } + ], "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -149,8 +158,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": { @@ -179,8 +187,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" ] } }, @@ -188,7 +195,7 @@ "jobs": { "methods": { "aggregated": { - "description": "List the jobs of a project across all regions.", + "description": "List the jobs of a project across all regions. **Note:** This method doesn't support filtering the list of jobs by name.", "flatPath": "v1b3/projects/{projectId}/jobs:aggregated", "httpMethod": "GET", "id": "dataflow.projects.jobs.aggregated", @@ -219,7 +226,7 @@ "type": "string" }, "name": { - "description": "Optional. The job name. Optional.", + "description": "Optional. The job name.", "location": "query", "type": "string" }, @@ -241,6 +248,7 @@ "type": "string" }, "view": { + "deprecated": true, "description": "Deprecated. ListJobs always returns summaries now. Use GetJob for other JobViews.", "enum": [ "JOB_VIEW_UNKNOWN", @@ -251,7 +259,7 @@ "enumDescriptions": [ "The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.", "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.", - "Request all information available for this job.", + "Request all information available for this job. When the job is in `JOB_STATE_PENDING`, the job has been created but is not yet running, and not all job information is available. For complete job information, wait until the job in is `JOB_STATE_RUNNING`. For more information, see [JobState](https://cloud.google.com/dataflow/docs/reference/rest/v1b3/projects.jobs#jobstate).", "Request summary info and limited job description data for steps, labels and environment." ], "location": "query", @@ -265,8 +273,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": { @@ -305,7 +312,7 @@ "enumDescriptions": [ "The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.", "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.", - "Request all information available for this job.", + "Request all information available for this job. When the job is in `JOB_STATE_PENDING`, the job has been created but is not yet running, and not all job information is available. For complete job information, wait until the job in is `JOB_STATE_RUNNING`. For more information, see [JobState](https://cloud.google.com/dataflow/docs/reference/rest/v1b3/projects.jobs#jobstate).", "Request summary info and limited job description data for steps, labels and environment." ], "location": "query", @@ -322,8 +329,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": { @@ -364,7 +370,7 @@ "enumDescriptions": [ "The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.", "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.", - "Request all information available for this job.", + "Request all information available for this job. When the job is in `JOB_STATE_PENDING`, the job has been created but is not yet running, and not all job information is available. For complete job information, wait until the job in is `JOB_STATE_RUNNING`. For more information, see [JobState](https://cloud.google.com/dataflow/docs/reference/rest/v1b3/projects.jobs#jobstate).", "Request summary info and limited job description data for steps, labels and environment." ], "location": "query", @@ -378,8 +384,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": { @@ -423,12 +428,11 @@ "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": { - "description": "List the jobs of a project. To list the jobs of a project in a region, we recommend using `projects.locations.jobs.list` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). To list the all jobs across all regions, use `projects.jobs.aggregated`. Using `projects.jobs.list` is not recommended, as you can only get the list of jobs that are running in `us-central1`.", + "description": "List the jobs of a project. To list the jobs of a project in a region, we recommend using `projects.locations.jobs.list` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). To list the all jobs across all regions, use `projects.jobs.aggregated`. Using `projects.jobs.list` is not recommended, because you can only get the list of jobs that are running in `us-central1`. `projects.locations.jobs.list` and `projects.jobs.list` support filtering the list of jobs by name. Filtering by name isn't supported by `projects.jobs.aggregated`.", "flatPath": "v1b3/projects/{projectId}/jobs", "httpMethod": "GET", "id": "dataflow.projects.jobs.list", @@ -459,7 +463,7 @@ "type": "string" }, "name": { - "description": "Optional. The job name. Optional.", + "description": "Optional. The job name.", "location": "query", "type": "string" }, @@ -481,6 +485,7 @@ "type": "string" }, "view": { + "deprecated": true, "description": "Deprecated. ListJobs always returns summaries now. Use GetJob for other JobViews.", "enum": [ "JOB_VIEW_UNKNOWN", @@ -491,7 +496,7 @@ "enumDescriptions": [ "The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.", "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.", - "Request all information available for this job.", + "Request all information available for this job. When the job is in `JOB_STATE_PENDING`, the job has been created but is not yet running, and not all job information is available. For complete job information, wait until the job in is `JOB_STATE_RUNNING`. For more information, see [JobState](https://cloud.google.com/dataflow/docs/reference/rest/v1b3/projects.jobs#jobstate).", "Request summary info and limited job description data for steps, labels and environment." ], "location": "query", @@ -505,8 +510,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": { @@ -542,8 +546,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": { @@ -572,6 +575,12 @@ "location": "path", "required": true, "type": "string" + }, + "updateMask": { + "description": "The list of fields to update relative to Job. If empty, only RequestedJobState will be considered for update. If the FieldMask is not empty and RequestedJobState is none/empty, The fields specified in the update mask will be the only ones considered for update. If both RequestedJobState and update_mask are specified, an error will be returned as we cannot update both state and mask.", + "format": "google-fieldmask", + "location": "query", + "type": "string" } }, "path": "v1b3/projects/{projectId}/jobs/{jobId}", @@ -584,8 +593,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" ] } }, @@ -625,8 +633,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": { @@ -662,8 +669,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" ] } } @@ -749,8 +755,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" ] } } @@ -790,8 +795,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": { @@ -827,8 +831,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" ] } } @@ -870,8 +873,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" ] } }, @@ -911,8 +913,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" ] } } @@ -957,7 +958,7 @@ "enumDescriptions": [ "The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.", "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.", - "Request all information available for this job.", + "Request all information available for this job. When the job is in `JOB_STATE_PENDING`, the job has been created but is not yet running, and not all job information is available. For complete job information, wait until the job in is `JOB_STATE_RUNNING`. For more information, see [JobState](https://cloud.google.com/dataflow/docs/reference/rest/v1b3/projects.jobs#jobstate).", "Request summary info and limited job description data for steps, labels and environment." ], "location": "query", @@ -974,8 +975,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": { @@ -1018,7 +1018,7 @@ "enumDescriptions": [ "The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.", "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.", - "Request all information available for this job.", + "Request all information available for this job. When the job is in `JOB_STATE_PENDING`, the job has been created but is not yet running, and not all job information is available. For complete job information, wait until the job in is `JOB_STATE_RUNNING`. For more information, see [JobState](https://cloud.google.com/dataflow/docs/reference/rest/v1b3/projects.jobs#jobstate).", "Request summary info and limited job description data for steps, labels and environment." ], "location": "query", @@ -1032,8 +1032,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": { @@ -1084,8 +1083,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": { @@ -1131,12 +1129,11 @@ "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": { - "description": "List the jobs of a project. To list the jobs of a project in a region, we recommend using `projects.locations.jobs.list` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). To list the all jobs across all regions, use `projects.jobs.aggregated`. Using `projects.jobs.list` is not recommended, as you can only get the list of jobs that are running in `us-central1`.", + "description": "List the jobs of a project. To list the jobs of a project in a region, we recommend using `projects.locations.jobs.list` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). To list the all jobs across all regions, use `projects.jobs.aggregated`. Using `projects.jobs.list` is not recommended, because you can only get the list of jobs that are running in `us-central1`. `projects.locations.jobs.list` and `projects.jobs.list` support filtering the list of jobs by name. Filtering by name isn't supported by `projects.jobs.aggregated`.", "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs", "httpMethod": "GET", "id": "dataflow.projects.locations.jobs.list", @@ -1169,7 +1166,7 @@ "type": "string" }, "name": { - "description": "Optional. The job name. Optional.", + "description": "Optional. The job name.", "location": "query", "type": "string" }, @@ -1191,6 +1188,7 @@ "type": "string" }, "view": { + "deprecated": true, "description": "Deprecated. ListJobs always returns summaries now. Use GetJob for other JobViews.", "enum": [ "JOB_VIEW_UNKNOWN", @@ -1201,7 +1199,7 @@ "enumDescriptions": [ "The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.", "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.", - "Request all information available for this job.", + "Request all information available for this job. When the job is in `JOB_STATE_PENDING`, the job has been created but is not yet running, and not all job information is available. For complete job information, wait until the job in is `JOB_STATE_RUNNING`. For more information, see [JobState](https://cloud.google.com/dataflow/docs/reference/rest/v1b3/projects.jobs#jobstate).", "Request summary info and limited job description data for steps, labels and environment." ], "location": "query", @@ -1215,8 +1213,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": { @@ -1259,8 +1256,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": { @@ -1291,6 +1287,12 @@ "location": "path", "required": true, "type": "string" + }, + "updateMask": { + "description": "The list of fields to update relative to Job. If empty, only RequestedJobState will be considered for update. If the FieldMask is not empty and RequestedJobState is none/empty, The fields specified in the update mask will be the only ones considered for update. If both RequestedJobState and update_mask are specified, an error will be returned as we cannot update both state and mask.", + "format": "google-fieldmask", + "location": "query", + "type": "string" } }, "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}", @@ -1303,8 +1305,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" ] } }, @@ -1351,8 +1352,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": { @@ -1395,8 +1395,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" ] } } @@ -1484,8 +1483,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" ] } } @@ -1529,8 +1527,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" ] } } @@ -1604,8 +1601,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" ] } } @@ -1652,8 +1648,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": { @@ -1696,8 +1691,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" ] } } @@ -1743,8 +1737,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": { @@ -1784,8 +1777,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": { @@ -1823,49 +1815,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" - ] - } - } - }, - "sql": { - "methods": { - "validate": { - "description": "Validates a GoogleSQL query for Cloud Dataflow syntax. Will always confirm the given query parses correctly, and if able to look up schema information from DataCatalog, will validate that the query analyzes properly as well.", - "flatPath": "v1b3/projects/{projectId}/locations/{location}/sql:validate", - "httpMethod": "GET", - "id": "dataflow.projects.locations.sql.validate", - "parameterOrder": [ - "projectId", - "location" - ], - "parameters": { - "location": { - "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.", - "location": "path", - "required": true, - "type": "string" - }, - "projectId": { - "description": "Required. The ID of the Cloud Platform project that the job belongs to.", - "location": "path", - "required": true, - "type": "string" - }, - "query": { - "description": "The sql query to validate.", - "location": "query", - "type": "string" - } - }, - "path": "v1b3/projects/{projectId}/locations/{location}/sql:validate", - "response": { - "$ref": "ValidateResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] } } @@ -1905,8 +1855,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": { @@ -1955,8 +1904,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": { @@ -2012,8 +1960,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" ] } } @@ -2057,8 +2004,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": { @@ -2094,8 +2040,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" ] } } @@ -2128,8 +2073,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": { @@ -2176,8 +2120,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": { @@ -2231,8 +2174,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" ] } } @@ -2240,7 +2182,7 @@ } } }, - "revision": "20230106", + "revision": "20240225", "rootUrl": "https://dataflow.googleapis.com/", "schemas": { "ApproximateProgress": { @@ -2248,15 +2190,18 @@ "id": "ApproximateProgress", "properties": { "percentComplete": { + "deprecated": true, "description": "Obsolete.", "format": "float", "type": "number" }, "position": { "$ref": "Position", + "deprecated": true, "description": "Obsolete." }, "remainingTime": { + "deprecated": true, "description": "Obsolete.", "format": "google-duration", "type": "string" @@ -2383,6 +2328,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", @@ -2425,6 +2387,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", @@ -2855,6 +2832,102 @@ }, "type": "object" }, + "DataSamplingConfig": { + "description": "Configuration options for sampling elements.", + "id": "DataSamplingConfig", + "properties": { + "behaviors": { + "description": "List of given sampling behaviors to enable. For example, specifying behaviors = [ALWAYS_ON] samples in-flight elements but does not sample exceptions. Can be used to specify multiple behaviors like, behaviors = [ALWAYS_ON, EXCEPTIONS] for specifying periodic sampling and exception sampling. If DISABLED is in the list, then sampling will be disabled and ignore the other given behaviors. Ordering does not matter.", + "items": { + "enum": [ + "DATA_SAMPLING_BEHAVIOR_UNSPECIFIED", + "DISABLED", + "ALWAYS_ON", + "EXCEPTIONS" + ], + "enumDescriptions": [ + "If given, has no effect on sampling behavior. Used as an unknown or unset sentinel value.", + "When given, disables element sampling. Has same behavior as not setting the behavior.", + "When given, enables sampling in-flight from all PCollections.", + "When given, enables sampling input elements when a user-defined DoFn causes an exception." + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "DataSamplingReport": { + "description": "Contains per-worker telemetry about the data sampling feature.", + "id": "DataSamplingReport", + "properties": { + "bytesWrittenDelta": { + "description": "Optional. Delta of bytes written to file from previous report.", + "format": "int64", + "type": "string" + }, + "elementsSampledBytes": { + "description": "Optional. Delta of bytes sampled from previous report.", + "format": "int64", + "type": "string" + }, + "elementsSampledCount": { + "description": "Optional. Delta of number of elements sampled from previous report.", + "format": "int64", + "type": "string" + }, + "exceptionsSampledCount": { + "description": "Optional. Delta of number of samples taken from user code exceptions from previous report.", + "format": "int64", + "type": "string" + }, + "pcollectionsSampledCount": { + "description": "Optional. Delta of number of PCollections sampled from previous report.", + "format": "int64", + "type": "string" + }, + "persistenceErrorsCount": { + "description": "Optional. Delta of errors counts from persisting the samples from previous report.", + "format": "int64", + "type": "string" + }, + "translationErrorsCount": { + "description": "Optional. Delta of errors counts from retrieving, or translating the samples from previous report.", + "format": "int64", + "type": "string" + } + }, + "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", @@ -2874,6 +2947,10 @@ "description": "Describes any options that have an effect on the debugging of pipelines.", "id": "DebugOptions", "properties": { + "dataSampling": { + "$ref": "DataSamplingConfig", + "description": "Configuration options for sampling elements from a running pipeline." + }, "enableHotKeyLogging": { "description": "When true, enables the logging of the literal hot key to the user's Cloud Logging.", "type": "boolean" @@ -3123,10 +3200,29 @@ "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 Streaming Engine resource-based billing model.", + "readOnly": true, + "type": "boolean" + }, "userAgent": { "additionalProperties": { "description": "Properties of the object.", @@ -3324,7 +3420,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": { @@ -3442,6 +3538,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" @@ -3748,7 +3858,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", @@ -3795,7 +3905,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": { @@ -3814,7 +3924,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": { @@ -3822,7 +3932,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": { @@ -3834,7 +3944,7 @@ "type": "string" }, "requestedState": { - "description": "The job's requested state. `UpdateJob` may be used to switch between the `JOB_STATE_STOPPED` and `JOB_STATE_RUNNING` states, by setting requested_state. `UpdateJob` may also be used to directly set a job's requested state to `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating the job if it has not already reached a terminal state.", + "description": "The job's requested state. Applies to `UpdateJob` requests. Set `requested_state` with `UpdateJob` requests to switch between the states `JOB_STATE_STOPPED` and `JOB_STATE_RUNNING`. You can also use `UpdateJob` requests to change a job's state from `JOB_STATE_RUNNING` to `JOB_STATE_CANCELLED`, `JOB_STATE_DONE`, or `JOB_STATE_DRAINED`. These states irrevocably terminate the job if it hasn't already reached a terminal state. This field has no effect on `CreateJob` requests.", "enum": [ "JOB_STATE_UNKNOWN", "JOB_STATE_STOPPED", @@ -3867,6 +3977,15 @@ ], "type": "string" }, + "runtimeUpdatableParams": { + "$ref": "RuntimeUpdatableParams", + "description": "This field may ONLY be modified at runtime using the projects.jobs.update method to adjust job behavior. This field has no effect when specified at job creation." + }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use. This field is set only in responses from the server; it is ignored if it is set in any requests.", + "readOnly": true, + "type": "boolean" + }, "satisfiesPzs": { "description": "Reserved for future use. This field is set only in responses from the server; it is ignored if it is set in any requests.", "type": "boolean" @@ -3909,7 +4028,7 @@ "type": "object" }, "type": { - "description": "The type of Cloud Dataflow job.", + "description": "The type of Dataflow job.", "enum": [ "JOB_TYPE_UNKNOWN", "JOB_TYPE_BATCH", @@ -4060,12 +4179,19 @@ "$ref": "SpannerIODetails" }, "type": "array" + }, + "userDisplayProperties": { + "additionalProperties": { + "type": "string" + }, + "description": "List of display properties to help UI filter jobs.", + "type": "object" } }, "type": "object" }, "JobMetrics": { - "description": "JobMetrics contains a collection of metrics describing the detailed progress of a Dataflow job. Metrics correspond to user-defined and system-defined metrics in the job. This resource captures only the most recent values of each metric; time-series data can be queried for them (under the same metric names) from Cloud Monitoring.", + "description": "JobMetrics contains a collection of metrics describing the detailed progress of a Dataflow job. Metrics correspond to user-defined and system-defined metrics in the job. For more information, see [Dataflow job metrics] (https://cloud.google.com/dataflow/docs/guides/using-monitoring-intf). This resource captures only the most recent values of each metric; time-series data can be queried for them (under the same metric names) from Cloud Monitoring.", "id": "JobMetrics", "properties": { "metricTime": { @@ -4115,6 +4241,7 @@ "type": "string" }, "deprecatedPersistentDirectory": { + "deprecated": true, "description": "DEPRECATED. The location of the persistent state for this range, as a persistent directory in the worker local filesystem.", "type": "string" }, @@ -4316,6 +4443,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", @@ -4529,6 +4678,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", @@ -4590,6 +4766,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", @@ -4715,10 +4918,29 @@ "description": "Optional. Additional metadata for describing this parameter.", "type": "object" }, + "defaultValue": { + "description": "Optional. The default values will pre-populate the parameter with the given value from the proto. If default_value is left empty, the parameter will be populated with a default of the relevant type, e.g. false for a boolean.", + "type": "string" + }, + "enumOptions": { + "description": "Optional. The options shown when ENUM ParameterType is specified.", + "items": { + "$ref": "ParameterMetadataEnumOption" + }, + "type": "array" + }, + "groupName": { + "description": "Optional. Specifies a group name for this parameter to be rendered under. Group header text will be rendered exactly as specified in this field. Only considered when parent_name is NOT provided.", + "type": "string" + }, "helpText": { "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" @@ -4745,7 +4967,15 @@ "PUBSUB_TOPIC", "PUBSUB_SUBSCRIPTION", "BIGQUERY_TABLE", - "JAVASCRIPT_UDF_FILE" + "JAVASCRIPT_UDF_FILE", + "SERVICE_ACCOUNT", + "MACHINE_TYPE", + "KMS_KEY_NAME", + "WORKER_REGION", + "WORKER_ZONE", + "BOOLEAN", + "ENUM", + "NUMBER" ], "enumDescriptions": [ "Default input type.", @@ -4759,10 +4989,29 @@ "The parameter specifies a Pub/Sub Topic.", "The parameter specifies a Pub/Sub Subscription.", "The parameter specifies a BigQuery table.", - "The parameter specifies a JavaScript UDF in Cloud Storage." + "The parameter specifies a JavaScript UDF in Cloud Storage.", + "The parameter specifies a Service Account email.", + "The parameter specifies a Machine Type.", + "The parameter specifies a KMS Key name.", + "The parameter specifies a Worker Region.", + "The parameter specifies a Worker Zone.", + "The parameter specifies a boolean input.", + "The parameter specifies an enum input.", + "The parameter specifies a number input." ], "type": "string" }, + "parentName": { + "description": "Optional. Specifies the name of the parent parameter. Used in conjunction with 'parent_trigger_values' to make this parameter conditional (will only be rendered conditionally). Should be mappable to a ParameterMetadata.name field.", + "type": "string" + }, + "parentTriggerValues": { + "description": "Optional. The value(s) of the 'parent_name' parameter which will trigger this parameter to be shown. If left empty, ANY non-empty value in parent_name will trigger this parameter to be shown. Only considered when this parameter is conditional (when 'parent_name' has been provided).", + "items": { + "type": "string" + }, + "type": "array" + }, "regexes": { "description": "Optional. Regexes that the parameter must match.", "items": { @@ -4773,6 +5022,25 @@ }, "type": "object" }, + "ParameterMetadataEnumOption": { + "description": "ParameterMetadataEnumOption specifies the option shown in the enum form.", + "id": "ParameterMetadataEnumOption", + "properties": { + "description": { + "description": "Optional. The description to display for the enum option.", + "type": "string" + }, + "label": { + "description": "Optional. The label to display for the enum option.", + "type": "string" + }, + "value": { + "description": "Required. The value of the enum option.", + "type": "string" + } + }, + "type": "object" + }, "PartialGroupByKeyInstruction": { "description": "An instruction that does a partial group-by-key. One input and one output.", "id": "PartialGroupByKeyInstruction", @@ -4815,6 +5083,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", @@ -4939,6 +5243,10 @@ "description": "Indicates whether the pipeline allows late-arriving data.", "type": "boolean" }, + "dynamicDestinations": { + "description": "If true, then this location represents dynamic topics.", + "type": "boolean" + }, "idLabel": { "description": "If set, contains a pubsub label from which to extract record ids. If left empty, record deduplication will be strictly best effort.", "type": "string" @@ -4986,28 +5294,6 @@ }, "type": "object" }, - "QueryInfo": { - "description": "Information about a validated query.", - "id": "QueryInfo", - "properties": { - "queryProperty": { - "description": "Includes an entry for each satisfied QueryProperty.", - "items": { - "enum": [ - "QUERY_PROPERTY_UNSPECIFIED", - "HAS_UNBOUNDED_SOURCE" - ], - "enumDescriptions": [ - "The query property is unknown or unspecified.", - "Indicates this query reads from >= 1 unbounded source." - ], - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, "ReadInstruction": { "description": "An instruction that reads records. Takes no inputs, produces one output.", "id": "ReadInstruction", @@ -5131,7 +5417,7 @@ "id": "RuntimeEnvironment", "properties": { "additionalExperiments": { - "description": "Additional experiment flags for the job, specified with the `--experiments` option.", + "description": "Optional. Additional experiment flags for the job, specified with the `--experiments` option.", "items": { "type": "string" }, @@ -5141,19 +5427,24 @@ "additionalProperties": { "type": "string" }, - "description": "Additional user labels to be specified for the job. Keys and values should follow the restrictions specified in the [labeling restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions) page. An object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1kg\", \"count\": \"3\" }.", + "description": "Optional. Additional user labels to be specified for the job. Keys and values should follow the restrictions specified in the [labeling restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions) page. An object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1kg\", \"count\": \"3\" }.", "type": "object" }, "bypassTempDirValidation": { - "description": "Whether to bypass the safety checks for the job's temporary directory. Use with caution.", + "description": "Optional. Whether to bypass the safety checks for the job's temporary directory. Use with caution.", "type": "boolean" }, + "diskSizeGb": { + "description": "Optional. The disk size, in gigabytes, to use on each remote Compute Engine worker instance.", + "format": "int32", + "type": "integer" + }, "enableStreamingEngine": { - "description": "Whether to enable Streaming Engine for the job.", + "description": "Optional. Whether to enable Streaming Engine for the job.", "type": "boolean" }, "ipConfiguration": { - "description": "Configuration for VM IPs.", + "description": "Optional. Configuration for VM IPs.", "enum": [ "WORKER_IP_UNSPECIFIED", "WORKER_IP_PUBLIC", @@ -5167,49 +5458,63 @@ "type": "string" }, "kmsKeyName": { - "description": "Name for the Cloud KMS key for the job. Key format is: projects//locations//keyRings//cryptoKeys/", + "description": "Optional. Name for the Cloud KMS key for the job. Key format is: projects//locations//keyRings//cryptoKeys/", "type": "string" }, "machineType": { - "description": "The machine type to use for the job. Defaults to the value from the template if not specified.", + "description": "Optional. The machine type to use for the job. Defaults to the value from the template if not specified.", "type": "string" }, "maxWorkers": { - "description": "The maximum number of Google Compute Engine instances to be made available to your pipeline during execution, from 1 to 1000.", + "description": "Optional. The maximum number of Google Compute Engine instances to be made available to your pipeline during execution, from 1 to 1000. The default value is 1.", "format": "int32", "type": "integer" }, "network": { - "description": "Network to which VMs will be assigned. If empty or unspecified, the service will use the network \"default\".", + "description": "Optional. Network to which VMs will be assigned. If empty or unspecified, the service will use the network \"default\".", "type": "string" }, "numWorkers": { - "description": "The initial number of Google Compute Engine instances for the job.", + "description": "Optional. The initial number of Google Compute Engine instances for the job. The default value is 11.", "format": "int32", "type": "integer" }, "serviceAccountEmail": { - "description": "The email address of the service account to run the job as.", + "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": "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.", + "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" }, "tempLocation": { - "description": "The Cloud Storage path to use for temporary files. Must be a valid Cloud Storage URL, beginning with `gs://`.", + "description": "Required. The Cloud Storage path to use for temporary files. Must be a valid Cloud Storage URL, beginning with `gs://`.", "type": "string" }, "workerRegion": { - "description": "The Compute Engine region (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. \"us-west1\". Mutually exclusive with worker_zone. If neither worker_region nor worker_zone is specified, default to the control plane's region.", + "description": "Required. The Compute Engine region (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. \"us-west1\". Mutually exclusive with worker_zone. If neither worker_region nor worker_zone is specified, default to the control plane's region.", "type": "string" }, "workerZone": { - "description": "The Compute Engine zone (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. \"us-west1-a\". Mutually exclusive with worker_region. If neither worker_region nor worker_zone is specified, a zone in the control plane's region is chosen based on available capacity. If both `worker_zone` and `zone` are set, `worker_zone` takes precedence.", + "description": "Optional. The Compute Engine zone (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. \"us-west1-a\". Mutually exclusive with worker_region. If neither worker_region nor worker_zone is specified, a zone in the control plane's region is chosen based on available capacity. If both `worker_zone` and `zone` are set, `worker_zone` takes precedence.", "type": "string" }, "zone": { - "description": "The Compute Engine [availability zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones) for launching worker instances to run your pipeline. In the future, worker_zone will take precedence.", + "description": "Optional. The Compute Engine [availability zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones) for launching worker instances to run your pipeline. In the future, worker_zone will take precedence.", "type": "string" } }, @@ -5233,6 +5538,28 @@ }, "type": "object" }, + "RuntimeUpdatableParams": { + "description": "Additional job parameters that can only be updated during runtime using the projects.jobs.update method. These fields have no effect when specified during job creation.", + "id": "RuntimeUpdatableParams", + "properties": { + "maxNumWorkers": { + "description": "The maximum number of workers to cap autoscaling at. This field is currently only supported for Streaming Engine jobs.", + "format": "int32", + "type": "integer" + }, + "minNumWorkers": { + "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" + }, "SDKInfo": { "description": "SDK Information.", "id": "SDKInfo", @@ -5260,6 +5587,52 @@ }, "type": "object" }, + "SdkBug": { + "description": "A bug found in the Dataflow SDK.", + "id": "SdkBug", + "properties": { + "severity": { + "description": "Output only. How severe the SDK bug is.", + "enum": [ + "SEVERITY_UNSPECIFIED", + "NOTICE", + "WARNING", + "SEVERE" + ], + "enumDescriptions": [ + "A bug of unknown severity.", + "A minor bug that that may reduce reliability or performance for some jobs. Impact will be minimal or non-existent for most jobs.", + "A bug that has some likelihood of causing performance degradation, data loss, or job failures.", + "A bug with extremely significant impact. Jobs may fail erroneously, performance may be severely degraded, and data loss may be very likely." + ], + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Output only. Describes the impact of this SDK bug.", + "enum": [ + "TYPE_UNSPECIFIED", + "GENERAL", + "PERFORMANCE", + "DATALOSS" + ], + "enumDescriptions": [ + "Unknown issue with this SDK.", + "Catch-all for SDK bugs that don't fit in the below categories.", + "Using this version of the SDK may result in degraded performance.", + "Using this version of the SDK may cause data loss." + ], + "readOnly": true, + "type": "string" + }, + "uri": { + "description": "Output only. Link to more information on the bug.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "SdkHarnessContainerImage": { "description": "Defines an SDK harness container for executing Dataflow pipelines.", "id": "SdkHarnessContainerImage", @@ -5290,6 +5663,14 @@ "description": "The version of the SDK used to run the job.", "id": "SdkVersion", "properties": { + "bugs": { + "description": "Output only. Known bugs found in this SDK version.", + "items": { + "$ref": "SdkBug" + }, + "readOnly": true, + "type": "array" + }, "sdkSupportStatus": { "description": "The support status for this SDK version.", "enum": [ @@ -5775,6 +6156,7 @@ "type": "string" }, "desiredShardSizeBytes": { + "deprecated": true, "description": "DEPRECATED in favor of desired_bundle_size_bytes.", "format": "int64", "type": "string" @@ -5823,6 +6205,7 @@ "type": "string" }, "shards": { + "deprecated": true, "description": "DEPRECATED in favor of bundles.", "items": { "$ref": "SourceSplitShard" @@ -6299,6 +6682,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", @@ -6525,6 +6972,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" @@ -6629,21 +7088,6 @@ }, "type": "object" }, - "ValidateResponse": { - "description": "Response to the validation request.", - "id": "ValidateResponse", - "properties": { - "errorMessage": { - "description": "Will be empty if validation succeeds.", - "type": "string" - }, - "queryInfo": { - "$ref": "QueryInfo", - "description": "Information about the validated query. Not defined if validation fails." - } - }, - "type": "object" - }, "WorkItem": { "description": "WorkItem represents basic information about a WorkItem to be executed in the cloud.", "id": "WorkItem", @@ -6826,10 +7270,12 @@ }, "suggestedStopPoint": { "$ref": "ApproximateProgress", + "deprecated": true, "description": "DEPRECATED in favor of split_request." }, "suggestedStopPosition": { "$ref": "Position", + "deprecated": true, "description": "Obsolete, always empty." } }, @@ -6862,6 +7308,7 @@ "type": "array" }, "metricUpdates": { + "deprecated": true, "description": "DEPRECATED in favor of counter_updates.", "items": { "$ref": "MetricUpdate" @@ -6870,6 +7317,7 @@ }, "progress": { "$ref": "ApproximateProgress", + "deprecated": true, "description": "DEPRECATED in favor of reported_progress." }, "reportIndex": { @@ -6888,6 +7336,7 @@ }, "sourceFork": { "$ref": "SourceFork", + "deprecated": true, "description": "DEPRECATED in favor of dynamic_source_split." }, "sourceOperationResponse": { @@ -7031,6 +7480,10 @@ "description": "WorkerMessage provides information to the backend about a worker.", "id": "WorkerMessage", "properties": { + "dataSamplingReport": { + "$ref": "DataSamplingReport", + "description": "Optional. Contains metrics related to go/dataflow-data-sampling-telemetry." + }, "labels": { "additionalProperties": { "type": "string" @@ -7038,6 +7491,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\u2026\" \"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", @@ -7093,6 +7554,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/etc/api/datafusion/v1/datafusion-api.json b/etc/api/datafusion/v1/datafusion-api.json index 42e47ecb48..a2b5666ca4 100644 --- a/etc/api/datafusion/v1/datafusion-api.json +++ b/etc/api/datafusion/v1/datafusion-api.json @@ -194,7 +194,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" }, @@ -645,7 +645,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "datafusion.projects.locations.operations.list", @@ -737,7 +737,7 @@ } } }, - "revision": "20221213", + "revision": "20240111", "rootUrl": "https://datafusion.googleapis.com/", "schemas": { "Accelerator": { @@ -750,13 +750,15 @@ "ACCELERATOR_TYPE_UNSPECIFIED", "CDC", "HEALTHCARE", - "CCAI_INSIGHTS" + "CCAI_INSIGHTS", + "CLOUDSEARCH" ], "enumDescriptions": [ "Default value, if unspecified.", "Change Data Capture accelerator for CDF.", "Cloud Healthcare accelerator for CDF. This accelerator is to enable Cloud Healthcare specific CDF plugins developed by Healthcare team.", - "Contact Center AI Insights This accelerator is used to enable import and export pipelines custom built to streamline CCAI Insights processing." + "Contact Center AI Insights This accelerator is used to enable import and export pipelines custom built to streamline CCAI Insights processing.", + "Cloud search accelerator for CDF. This accelerator is to enable Cloud search specific CDF plugins developed by Cloudsearch team." ], "type": "string" }, @@ -836,7 +838,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, @@ -866,6 +868,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", @@ -942,10 +976,11 @@ "id": "Instance", "properties": { "accelerators": { - "description": "List of accelerators enabled for this CDF instance.", + "description": "Output only. List of accelerators enabled for this CDF instance.", "items": { "$ref": "Accelerator" }, + "readOnly": true, "type": "array" }, "apiEndpoint": { @@ -954,10 +989,11 @@ "type": "string" }, "availableVersion": { - "description": "Available versions that the instance can be upgraded to using UpdateInstanceRequest.", + "description": "Output only. Available versions that the instance can be upgraded to using UpdateInstanceRequest.", "items": { "$ref": "Version" }, + "readOnly": true, "type": "array" }, "createTime": { @@ -970,6 +1006,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" @@ -1051,11 +1091,21 @@ "readOnly": true, "type": "string" }, + "patchRevision": { + "description": "Optional. Current patch revision of the Data Fusion.", + "type": "string" + }, "privateInstance": { "description": "Specifies whether the Data Fusion instance should be private. If set to true, all Data Fusion nodes will have private IP addresses and will not be able to access the public internet.", "type": "boolean" }, + "satisfiesPzs": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "serviceAccount": { + "deprecated": true, "description": "Output only. Deprecated. Use tenant_project_id instead to extract the tenant project ID.", "readOnly": true, "type": "string" @@ -1132,6 +1182,11 @@ "description": "Current version of the Data Fusion. Only specifiable in Update.", "type": "string" }, + "workforceIdentityServiceEndpoint": { + "description": "Output only. Endpoint on which the Data Fusion UI is accessible to third-party users", + "readOnly": true, + "type": "string" + }, "zone": { "description": "Name of the zone in which the Data Fusion instance will be created. Only DEVELOPER instances use this field.", "type": "string" @@ -1237,7 +1292,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1274,13 +1329,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" @@ -1314,7 +1387,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" } }, @@ -1364,8 +1437,29 @@ }, "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 \u2018/cfs2/pj/pd-cloud-prod\u2019 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: \u2018/cfs2/pj/pd-cloud-staging/lsv000001234@/ lsv/projects~773365403387~zones~2700~disks~3277719120423414466 ~bank-blue-careful-3526-lsv00054DB1B7254BA3/\u2019 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/).", + "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": { @@ -1395,12 +1489,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/etc/api/datafusion/v1beta1/datafusion-api.json b/etc/api/datafusion/v1beta1/datafusion-api.json index bfe69e289e..a0d76bfd03 100644 --- a/etc/api/datafusion/v1beta1/datafusion-api.json +++ b/etc/api/datafusion/v1beta1/datafusion-api.json @@ -222,7 +222,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" }, @@ -843,7 +843,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "datafusion.projects.locations.operations.list", @@ -935,7 +935,7 @@ } } }, - "revision": "20221213", + "revision": "20240111", "rootUrl": "https://datafusion.googleapis.com/", "schemas": { "Accelerator": { @@ -948,13 +948,15 @@ "ACCELERATOR_TYPE_UNSPECIFIED", "CDC", "HEALTHCARE", - "CCAI_INSIGHTS" + "CCAI_INSIGHTS", + "CLOUDSEARCH" ], "enumDescriptions": [ "Default value, if unspecified.", "Change Data Capture accelerator for CDF.", "Cloud Healthcare accelerator for CDF. This accelerator is to enable Cloud Healthcare specific CDF plugins developed by Healthcare team.", - "Contact Center AI Insights This accelerator is used to enable import and export pipelines custom built to streamline CCAI Insights processing." + "Contact Center AI Insights This accelerator is used to enable import and export pipelines custom built to streamline CCAI Insights processing.", + "Cloud search accelerator for CDF. This accelerator is to enable Cloud search specific CDF plugins developed by Cloudsearch team." ], "type": "string" }, @@ -1034,7 +1036,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, @@ -1064,6 +1066,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", @@ -1155,10 +1189,11 @@ "id": "Instance", "properties": { "accelerators": { - "description": "List of accelerators enabled for this CDF instance.", + "description": "Output only. List of accelerators enabled for this CDF instance.", "items": { "$ref": "Accelerator" }, + "readOnly": true, "type": "array" }, "apiEndpoint": { @@ -1167,10 +1202,11 @@ "type": "string" }, "availableVersion": { - "description": "Available versions that the instance can be upgraded to using UpdateInstanceRequest.", + "description": "Output only. Available versions that the instance can be upgraded to using UpdateInstanceRequest.", "items": { "$ref": "Version" }, + "readOnly": true, "type": "array" }, "createTime": { @@ -1183,6 +1219,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" @@ -1264,11 +1304,21 @@ "readOnly": true, "type": "string" }, + "patchRevision": { + "description": "Optional. Current patch revision of the Data Fusion.", + "type": "string" + }, "privateInstance": { "description": "Specifies whether the Data Fusion instance should be private. If set to true, all Data Fusion nodes will have private IP addresses and will not be able to access the public internet.", "type": "boolean" }, + "satisfiesPzs": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "serviceAccount": { + "deprecated": true, "description": "Output only. Deprecated. Use tenant_project_id instead to extract the tenant project ID.", "readOnly": true, "type": "string" @@ -1345,6 +1395,11 @@ "description": "Current version of Data Fusion.", "type": "string" }, + "workforceIdentityServiceEndpoint": { + "description": "Output only. Endpoint on which the Data Fusion UI is accessible to third-party users.", + "readOnly": true, + "type": "string" + }, "zone": { "description": "Name of the zone in which the Data Fusion instance will be created. Only DEVELOPER instances use this field.", "type": "string" @@ -1468,7 +1523,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1520,13 +1575,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 Data Fusion instance 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" @@ -1560,7 +1633,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" } }, @@ -1610,8 +1683,29 @@ }, "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 \u2018/cfs2/pj/pd-cloud-prod\u2019 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: \u2018/cfs2/pj/pd-cloud-staging/lsv000001234@/ lsv/projects~773365403387~zones~2700~disks~3277719120423414466 ~bank-blue-careful-3526-lsv00054DB1B7254BA3/\u2019 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/).", + "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": { @@ -1641,6 +1735,26 @@ }, "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" + }, "RemoveIamPolicyRequest": { "description": "Request message for RemoveIamPolicy method.", "id": "RemoveIamPolicyRequest", @@ -1659,6 +1773,17 @@ "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/etc/api/datalabeling/v1beta1/datalabeling-api.json b/etc/api/datalabeling/v1beta1/datalabeling-api.json index 42b5fb8ebf..ee52cf3af2 100644 --- a/etc/api/datalabeling/v1beta1/datalabeling-api.json +++ b/etc/api/datalabeling/v1beta1/datalabeling-api.json @@ -1551,7 +1551,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/projects/{projectsId}/operations", "httpMethod": "GET", "id": "datalabeling.projects.operations.list", @@ -1596,7 +1596,7 @@ } } }, - "revision": "20221205", + "revision": "20240207", "rootUrl": "https://datalabeling.googleapis.com/", "schemas": { "GoogleCloudDatalabelingV1alpha1CreateInstructionMetadata": { @@ -3513,6 +3513,7 @@ }, "csvInstruction": { "$ref": "GoogleCloudDatalabelingV1beta1CsvInstruction", + "deprecated": true, "description": "Deprecated: this instruction format is not supported any more. Instruction from a CSV file, such as for classification task. The CSV file should have exact two columns, in the following format: * The first column is labeled data, such as an image reference, text. * The second column is comma separated labels associated with data." }, "dataType": { @@ -4457,6 +4458,7 @@ }, "sentimentConfig": { "$ref": "GoogleCloudDatalabelingV1beta1SentimentConfig", + "deprecated": true, "description": "Optional. Configs for sentiment selection. We deprecate sentiment analysis in data labeling side as it is incompatible with uCAIP." } }, @@ -5611,7 +5613,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/etc/api/datamigration/v1/datamigration-api.json b/etc/api/datamigration/v1/datamigration-api.json index 65323c4ea1..b2a609c436 100644 --- a/etc/api/datamigration/v1/datamigration-api.json +++ b/etc/api/datamigration/v1/datamigration-api.json @@ -109,6 +109,42 @@ "resources": { "locations": { "methods": { + "fetchStaticIps": { + "description": "Fetches a set of static IP addresses that need to be allowlisted by the customer when using the static-IP connectivity method.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:fetchStaticIps", + "httpMethod": "GET", + "id": "datamigration.projects.locations.fetchStaticIps", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name for the location for which static IPs should be returned. Must be in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Maximum number of IPs to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `FetchStaticIps` call.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}:fetchStaticIps", + "response": { + "$ref": "FetchStaticIpsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets information about a location.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}", @@ -194,14 +230,14 @@ "type": "string" }, "parent": { - "description": "Required. The parent, which owns this collection of connection profiles.", + "description": "Required. The parent which owns this collection of connection profiles.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" }, "requestId": { - "description": "Optional. A unique id used to identify the request. If the server receives two requests with the same id, then the second request will be ignored. It is recommended to always set this value to a UUID. 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 requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. 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" }, @@ -249,7 +285,7 @@ "type": "string" }, "requestId": { - "description": "A unique id used to identify the request. If the server receives two requests with the same id, then the second request will be ignored. It is recommended to always set this value to a UUID. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", + "description": "A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. 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" } @@ -338,7 +374,7 @@ "type": "string" }, "pageSize": { - "description": "The maximum number of connection profiles to return. The service may return fewer than this value. If unspecified, at most 50 connection profiles will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "description": "The maximum number of connection profiles to return. The service may return fewer than this value. If unspecified, at most 50 connection profiles will be returned. The maximum value is 1000; values above 1000 are coerced to 1000.", "format": "int32", "location": "query", "type": "integer" @@ -349,7 +385,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent, which owns this collection of connection profiles.", + "description": "Required. The parent which owns this collection of connection profiles.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -381,7 +417,7 @@ "type": "string" }, "requestId": { - "description": "Optional. A unique id used to identify the request. If the server receives two requests with the same id, then the second request will be ignored. It is recommended to always set this value to a UUID. 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 requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. 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" }, @@ -391,7 +427,7 @@ "type": "boolean" }, "updateMask": { - "description": "Required. Field mask is used to specify the fields to be overwritten in the connection profile resource by the update.", + "description": "Required. Field mask is used to specify the fields to be overwritten by the update in the conversion workspace resource.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -474,7 +510,7 @@ "conversionWorkspaces": { "methods": { "apply": { - "description": "Apply draft tree onto a specific destination database", + "description": "Applies draft tree onto a specific destination database.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:apply", "httpMethod": "POST", "id": "datamigration.projects.locations.conversionWorkspaces.apply", @@ -483,7 +519,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the conversion workspace resource to apply draft to destination for. in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", + "description": "Required. The name of the conversion workspace resource for which to apply the draft tree. Must be in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", "required": true, @@ -572,14 +608,14 @@ "type": "string" }, "parent": { - "description": "Required. The parent, which owns this collection of conversion workspaces.", + "description": "Required. The parent which owns this collection of conversion workspaces.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" }, "requestId": { - "description": "A unique id used to identify the request. If the server receives two requests with the same id, then the second request will be ignored. It is recommended to always set this value to a UUID. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", + "description": "A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. 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" } @@ -604,6 +640,11 @@ "name" ], "parameters": { + "force": { + "description": "Force delete the conversion workspace, even if there's a running migration that is using the workspace.", + "location": "query", + "type": "boolean" + }, "name": { "description": "Required. Name of the conversion workspace resource to delete.", "location": "path", @@ -612,7 +653,7 @@ "type": "string" }, "requestId": { - "description": "A unique id used to identify the request. If the server receives two requests with the same id, then the second request will be ignored. It is recommended to always set this value to a UUID. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", + "description": "A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. 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" } @@ -635,12 +676,12 @@ ], "parameters": { "commitId": { - "description": "Optional. Optional filter to request a specific commit id", + "description": "Optional. Optional filter to request a specific commit ID.", "location": "query", "type": "string" }, "conversionWorkspace": { - "description": "Required. Name of the conversion workspace resource whose revisions are listed. in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", + "description": "Required. Name of the conversion workspace resource whose revisions are listed. Must be in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", "required": true, @@ -656,7 +697,7 @@ ] }, "describeDatabaseEntities": { - "description": "Use this method to describe the database entities tree for a specific conversion workspace and a specific tree type. The DB Entities are not a resource like conversion workspace or mapping rule, and they can not be created, updated or deleted like one. Instead they are simple data objects describing the structure of the client database.", + "description": "Describes the database entities tree for a specific conversion workspace and a specific tree type. Database entities are not resources like conversion workspaces or mapping rules, and they can't be created, updated or deleted. Instead, they are simple data objects describing the structure of the client database.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:describeDatabaseEntities", "httpMethod": "GET", "id": "datamigration.projects.locations.conversionWorkspaces.describeDatabaseEntities", @@ -665,35 +706,35 @@ ], "parameters": { "commitId": { - "description": "Request a specific commit id. If not specified, the entities from the latest commit are returned.", + "description": "Optional. Request a specific commit ID. If not specified, the entities from the latest commit are returned.", "location": "query", "type": "string" }, "conversionWorkspace": { - "description": "Required. Name of the conversion workspace resource whose DB entities are described in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", + "description": "Required. Name of the conversion workspace resource whose database entities are described. Must be in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", "required": true, "type": "string" }, "filter": { - "description": "Filter the returned entities based on AIP-160 standard", + "description": "Optional. Filter the returned entities based on AIP-160 standard.", "location": "query", "type": "string" }, "pageSize": { - "description": "The maximum number of entities to return. The service may return fewer than this value.", + "description": "Optional. The maximum number of entities to return. The service may return fewer entities than the value specifies.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "The nextPageToken value received in the previous call to conversionWorkspace.describeDatabaseEntities, used in the subsequent request to retrieve the next page of results. On first call this should be left blank. When paginating, all other parameters provided to conversionWorkspace.describeDatabaseEntities must match the call that provided the page token.", + "description": "Optional. The nextPageToken value received in the previous call to conversionWorkspace.describeDatabaseEntities, used in the subsequent request to retrieve the next page of results. On first call this should be left blank. When paginating, all other parameters provided to conversionWorkspace.describeDatabaseEntities must match the call that provided the page token.", "location": "query", "type": "string" }, "tree": { - "description": "The tree to fetch", + "description": "Required. The tree to fetch.", "enum": [ "DB_TREE_TYPE_UNSPECIFIED", "SOURCE_TREE", @@ -701,18 +742,35 @@ "DESTINATION_TREE" ], "enumDescriptions": [ - "Unspecified tree type", - "The source database tree", - "The draft database tree", - "The destination database tree" + "Unspecified tree type.", + "The source database tree.", + "The draft database tree.", + "The destination database tree." ], "location": "query", "type": "string" }, "uncommitted": { - "description": "Whether to retrieve the latest committed version of the entities or the latest version. This field is ignored if a specific commit_id is specified.", + "description": "Optional. Whether to retrieve the latest committed version of the entities or the latest version. This field is ignored if a specific commit_id is specified.", "location": "query", "type": "boolean" + }, + "view": { + "description": "Optional. Results view based on AIP-157", + "enum": [ + "DATABASE_ENTITY_VIEW_UNSPECIFIED", + "DATABASE_ENTITY_VIEW_BASIC", + "DATABASE_ENTITY_VIEW_FULL", + "DATABASE_ENTITY_VIEW_ROOT_SUMMARY" + ], + "enumDescriptions": [ + "Unspecified view. Defaults to basic view.", + "Default view. Does not return DDLs or Issues.", + "Return full entity details including mappings, ddl and issues.", + "Top-most (Database, Schema) nodes which are returned contains summary details for their decendents such as the number of entities per type and issues rollups. When this view is used, only a single page of result is returned and the page_size property of the request is ignored. The returned page will only include the top-most node types." + ], + "location": "query", + "type": "string" } }, "path": "v1/{+conversionWorkspace}:describeDatabaseEntities", @@ -748,6 +806,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}/conversionWorkspaces/{conversionWorkspacesId}:getIamPolicy", + "httpMethod": "GET", + "id": "datamigration.projects.locations.conversionWorkspaces.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/[^/]+/conversionWorkspaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists conversion workspaces in a given project and location.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces", @@ -758,12 +847,12 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters conversion workspaces listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, >, or <. For example, list conversion workspaces created this year by specifying **createTime %gt; 2020-01-01T00:00:00.000000000Z.** You can also filter nested fields. For example, you could specify **source.version = \"12.c.1\"** to select all conversion workspaces with source database version equal to 12.c.1", + "description": "A filter expression that filters conversion workspaces listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, >, or <. For example, list conversion workspaces created this year by specifying **createTime %gt; 2020-01-01T00:00:00.000000000Z.** You can also filter nested fields. For example, you could specify **source.version = \"12.c.1\"** to select all conversion workspaces with source database version equal to 12.c.1.", "location": "query", "type": "string" }, "pageSize": { - "description": "The maximum number of conversion workspaces to return. The service may return fewer than this value. If unspecified, at most 50 sets will be returned.", + "description": "The maximum number of conversion workspaces to return. The service may return fewer than this value. If unspecified, at most 50 sets are returned.", "format": "int32", "location": "query", "type": "integer" @@ -774,7 +863,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent, which owns this collection of conversion workspaces.", + "description": "Required. The parent which owns this collection of conversion workspaces.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -806,12 +895,12 @@ "type": "string" }, "requestId": { - "description": "A unique id used to identify the request. If the server receives two requests with the same id, then the second request will be ignored. It is recommended to always set this value to a UUID. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", + "description": "A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. 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" }, "updateMask": { - "description": "Required. Field mask is used to specify the fields to be overwritten in the conversion workspace resource by the update.", + "description": "Required. Field mask is used to specify the fields to be overwritten by the update in the conversion workspace resource.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -829,7 +918,7 @@ ] }, "rollback": { - "description": "Rollbacks a conversion workspace to the last committed spanshot.", + "description": "Rolls back a conversion workspace to the last committed snapshot.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:rollback", "httpMethod": "POST", "id": "datamigration.projects.locations.conversionWorkspaces.rollback", @@ -838,7 +927,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the conversion workspace resource to rollback to.", + "description": "Required. Name of the conversion workspace resource to roll back to.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", "required": true, @@ -857,7 +946,7 @@ ] }, "searchBackgroundJobs": { - "description": "Use this method to search/list the background jobs for a specific conversion workspace. The background jobs are not a resource like conversion workspace or mapping rule, and they can not be created, updated or deleted like one. Instead they are a way to expose the data plane jobs log.", + "description": "Searches/lists the background jobs for a specific conversion workspace. The background jobs are not resources like conversion workspaces or mapping rules, and they can't be created, updated or deleted. Instead, they are a way to expose the data plane jobs log.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:searchBackgroundJobs", "httpMethod": "GET", "id": "datamigration.projects.locations.conversionWorkspaces.searchBackgroundJobs", @@ -866,26 +955,26 @@ ], "parameters": { "completedUntilTime": { - "description": "Optional. If supplied, will only return jobs that completed until (not including) the given timestamp.", + "description": "Optional. If provided, only returns jobs that completed until (not including) the given timestamp.", "format": "google-datetime", "location": "query", "type": "string" }, "conversionWorkspace": { - "description": "Required. Name of the conversion workspace resource whos jobs are listed. in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", + "description": "Required. Name of the conversion workspace resource whose jobs are listed, in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", "required": true, "type": "string" }, "maxSize": { - "description": "Optional. The maximum number of jobs to return. The service may return fewer than this value. If unspecified, at most 100 jobs will be returned. The maximum value is 100; values above 100 will be coerced to 100.", + "description": "Optional. The maximum number of jobs to return. The service may return fewer than this value. If unspecified, at most 100 jobs are returned. The maximum value is 100; values above 100 are coerced to 100.", "format": "int32", "location": "query", "type": "integer" }, "returnMostRecentPerJobType": { - "description": "Optional. Whether or not to return just the most recent job per job type", + "description": "Optional. Whether or not to return just the most recent job per job type,", "location": "query", "type": "boolean" } @@ -908,7 +997,7 @@ ], "parameters": { "name": { - "description": "Name of the conversion workspace resource to seed with new database structure. in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", + "description": "Name of the conversion workspace resource to seed with new database structure, in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", "required": true, @@ -925,11 +1014,160 @@ "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}/conversionWorkspaces/{conversionWorkspacesId}:setIamPolicy", + "httpMethod": "POST", + "id": "datamigration.projects.locations.conversionWorkspaces.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/[^/]+/conversionWorkspaces/[^/]+$", + "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}/conversionWorkspaces/{conversionWorkspacesId}:testIamPermissions", + "httpMethod": "POST", + "id": "datamigration.projects.locations.conversionWorkspaces.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/[^/]+/conversionWorkspaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { "mappingRules": { "methods": { + "create": { + "description": "Creates a new mapping rule for a given conversion workspace.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}/mappingRules", + "httpMethod": "POST", + "id": "datamigration.projects.locations.conversionWorkspaces.mappingRules.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "mappingRuleId": { + "description": "Required. The ID of the rule to create.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent which owns this collection of mapping rules.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. 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" + } + }, + "path": "v1/{+parent}/mappingRules", + "request": { + "$ref": "MappingRule" + }, + "response": { + "$ref": "MappingRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single mapping rule.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}/mappingRules/{mappingRulesId}", + "httpMethod": "DELETE", + "id": "datamigration.projects.locations.conversionWorkspaces.mappingRules.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the mapping rule resource to delete.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+/mappingRules/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. 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" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets the details of a mapping rule.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}/mappingRules/{mappingRulesId}", + "httpMethod": "GET", + "id": "datamigration.projects.locations.conversionWorkspaces.mappingRules.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the mapping rule resource to get. Example: conversionWorkspaces/123/mappingRules/rule123 In order to retrieve a previous revision of the mapping rule, also provide the revision ID. Example: conversionWorkspace/123/mappingRules/rule123@c7cfa2a8c7cfa2a8c7cfa2a8c7cfa2a8", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+/mappingRules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "MappingRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "import": { "description": "Imports the mapping rules for a given conversion workspace. Supports various formats of external rules files.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}/mappingRules:import", @@ -957,6 +1195,42 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "list": { + "description": "Lists the mapping rules for a specific conversion workspace.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}/mappingRules", + "httpMethod": "GET", + "id": "datamigration.projects.locations.conversionWorkspaces.mappingRules.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of rules to return. The service may return fewer than this value.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The nextPageToken value received in the previous call to mappingRules.list, used in the subsequent request to retrieve the next page of results. On first call this should be left blank. When paginating, all other parameters provided to mappingRules.list must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the conversion workspace resource whose mapping rules are listed in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/mappingRules", + "response": { + "$ref": "ListMappingRulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } } @@ -979,14 +1253,14 @@ "type": "string" }, "parent": { - "description": "Required. The parent, which owns this collection of migration jobs.", + "description": "Required. The parent which owns this collection of migration jobs.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" }, "requestId": { - "description": "A unique id used to identify the request. If the server receives two requests with the same id, then the second request will be ignored. It is recommended to always set this value to a UUID. 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 requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. 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" } @@ -1024,7 +1298,7 @@ "type": "string" }, "requestId": { - "description": "A unique id used to identify the request. If the server receives two requests with the same id, then the second request will be ignored. It is recommended to always set this value to a UUID. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", + "description": "A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. 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" } @@ -1037,6 +1311,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "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 for PostgreSQL.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:demoteDestination", + "httpMethod": "POST", + "id": "datamigration.projects.locations.migrationJobs.demoteDestination", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of the migration job resource to demote its destination.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:demoteDestination", + "request": { + "$ref": "DemoteDestinationRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "generateSshScript": { "description": "Generate a SSH configuration script to configure the reverse SSH connectivity.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:generateSshScript", @@ -1065,6 +1367,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "generateTcpProxyScript": { + "description": "Generate a TCP Proxy configuration script to configure a cloud-hosted VM running a TCP Proxy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:generateTcpProxyScript", + "httpMethod": "POST", + "id": "datamigration.projects.locations.migrationJobs.generateTcpProxyScript", + "parameterOrder": [ + "migrationJob" + ], + "parameters": { + "migrationJob": { + "description": "Name of the migration job resource to generate the TCP Proxy script.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/migrationJobs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+migrationJob}:generateTcpProxyScript", + "request": { + "$ref": "GenerateTcpProxyScriptRequest" + }, + "response": { + "$ref": "TcpProxyScript" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets details of a single migration job.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}", @@ -1141,7 +1471,7 @@ "type": "string" }, "pageSize": { - "description": "The maximum number of migration jobs to return. The service may return fewer than this value. If unspecified, at most 50 migration jobs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "description": "The maximum number of migration jobs to return. The service may return fewer than this value. If unspecified, at most 50 migration jobs will be returned. The maximum value is 1000; values above 1000 are coerced to 1000.", "format": "int32", "location": "query", "type": "integer" @@ -1152,7 +1482,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent, which owns this collection of migrationJobs.", + "description": "Required. The parent which owns this collection of migrationJobs.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -1184,12 +1514,12 @@ "type": "string" }, "requestId": { - "description": "A unique id used to identify the request. If the server receives two requests with the same id, then the second request will be ignored. It is recommended to always set this value to a UUID. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", + "description": "A unique ID used to identify the request. If the server receives two requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. 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" }, "updateMask": { - "description": "Required. Field mask is used to specify the fields to be overwritten in the migration job resource by the update.", + "description": "Required. Field mask is used to specify the fields to be overwritten by the update in the conversion workspace resource.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -1513,7 +1843,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "datamigration.projects.locations.operations.list", @@ -1579,7 +1909,7 @@ "type": "string" }, "requestId": { - "description": "Optional. A unique id used to identify the request. If the server receives two requests with the same id, then the second request will be ignored. It is recommended to always set this value to a UUID. 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 requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. 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" }, @@ -1617,7 +1947,7 @@ "type": "string" }, "requestId": { - "description": "Optional. A unique id used to identify the request. If the server receives two requests with the same id, then the second request will be ignored. It is recommended to always set this value to a UUID. 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 requests with the same ID, then the second request is ignored. It is recommended to always set this value to a UUID. 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" } @@ -1655,6 +1985,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}/privateConnections/{privateConnectionsId}:getIamPolicy", + "httpMethod": "GET", + "id": "datamigration.projects.locations.privateConnections.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/[^/]+/privateConnections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Retrieves a list of private connections in a given project and location.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateConnections", @@ -1675,7 +2036,7 @@ "type": "string" }, "pageSize": { - "description": "Maximum number of private connections to return. If unspecified, at most 50 private connections that will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "description": "Maximum number of private connections to return. If unspecified, at most 50 private connections that are returned. The maximum value is 1000; values above 1000 are coerced to 1000.", "format": "int32", "location": "query", "type": "integer" @@ -1700,6 +2061,62 @@ "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}/privateConnections/{privateConnectionsId}:setIamPolicy", + "httpMethod": "POST", + "id": "datamigration.projects.locations.privateConnections.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/[^/]+/privateConnections/[^/]+$", + "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}/privateConnections/{privateConnectionsId}:testIamPermissions", + "httpMethod": "POST", + "id": "datamigration.projects.locations.privateConnections.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/[^/]+/privateConnections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } } @@ -1708,7 +2125,7 @@ } } }, - "revision": "20230105", + "revision": "20240221", "rootUrl": "https://datamigration.googleapis.com/", "schemas": { "AlloyDbConnectionProfile": { @@ -1730,6 +2147,24 @@ "description": "Settings for creating an AlloyDB cluster.", "id": "AlloyDbSettings", "properties": { + "databaseVersion": { + "description": "Optional. The database engine major version. This is an optional field. If a database version is not supplied at cluster creation time, then a default database version will be used.", + "enum": [ + "DATABASE_VERSION_UNSPECIFIED", + "POSTGRES_14", + "POSTGRES_15" + ], + "enumDescriptions": [ + "This is an unknown database version.", + "The database version is Postgres 14.", + "The database version is Postgres 15." + ], + "type": "string" + }, + "encryptionConfig": { + "$ref": "EncryptionConfig", + "description": "Optional. The encryption config can be specified to encrypt the data disks and other persistent data resources of a cluster with a customer-managed encryption key (CMEK). When this field is not specified, the cluster will then use default encryption scheme to protect the user data." + }, "initialUser": { "$ref": "UserPassword", "description": "Required. Input only. Initial user to setup during cluster creation. Required." @@ -1755,10 +2190,18 @@ "description": "Request message for 'ApplyConversionWorkspace' request.", "id": "ApplyConversionWorkspaceRequest", "properties": { + "autoCommit": { + "description": "Optional. Specifies whether the conversion workspace is to be committed automatically after the apply.", + "type": "boolean" + }, "connectionProfile": { - "description": "Fully qualified (Uri) name of the destination connection profile.", + "description": "Optional. Fully qualified (Uri) name of the destination connection profile.", "type": "string" }, + "dryRun": { + "description": "Optional. Only validates the apply process, but doesn't change the destination database. Only works for PostgreSQL destination connection profile.", + "type": "boolean" + }, "filter": { "description": "Filter which entities to apply. Leaving this field empty will apply all of the entities. Supports Google AIP 160 based filtering.", "type": "string" @@ -1766,6 +2209,45 @@ }, "type": "object" }, + "ApplyHash": { + "description": "Apply a hash function on the value.", + "id": "ApplyHash", + "properties": { + "uuidFromBytes": { + "$ref": "Empty", + "description": "Optional. Generate UUID from the data's byte array" + } + }, + "type": "object" + }, + "ApplyJobDetails": { + "description": "Details regarding an Apply background job.", + "id": "ApplyJobDetails", + "properties": { + "connectionProfile": { + "description": "Output only. The connection profile which was used for the apply job.", + "readOnly": true, + "type": "string" + }, + "filter": { + "description": "Output only. AIP-160 based filter used to specify the entities to apply", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "AssignSpecificValue": { + "description": "Set to a specific value (value is converted to fit the target data type)", + "id": "AssignSpecificValue", + "properties": { + "value": { + "description": "Required. Specific value to be assigned", + "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", @@ -1818,36 +2300,49 @@ "description": "Execution log of a background job.", "id": "BackgroundJobLogEntry", "properties": { + "applyJobDetails": { + "$ref": "ApplyJobDetails", + "description": "Output only. Apply job details.", + "readOnly": true + }, "completionComment": { - "description": "Job completion comment, such as how many entities were seeded, how many warnings were found during conversion and similar information.", + "description": "Output only. Job completion comment, such as how many entities were seeded, how many warnings were found during conversion, and similar information.", + "readOnly": true, "type": "string" }, "completionState": { - "description": "Job completion state, i.e. the final state after the job completed.", + "description": "Output only. Job completion state, i.e. the final state after the job completed.", "enum": [ "JOB_COMPLETION_STATE_UNSPECIFIED", "SUCCEEDED", "FAILED" ], "enumDescriptions": [ - "The status is not specified. This state will be used when job is not yet finished.", + "The status is not specified. This state is used when job is not yet finished.", "Success.", "Error." ], + "readOnly": true, "type": "string" }, + "convertJobDetails": { + "$ref": "ConvertJobDetails", + "description": "Output only. Convert job details.", + "readOnly": true + }, "finishTime": { "description": "The timestamp when the background job was finished.", "format": "google-datetime", "type": "string" }, "id": { - "description": "The background job log entry id", + "description": "The background job log entry ID.", "type": "string" }, "importRulesJobDetails": { "$ref": "ImportRulesJobDetails", - "description": "Import rules job details" + "description": "Output only. Import rules job details.", + "readOnly": true }, "jobType": { "description": "The type of job that was executed.", @@ -1859,21 +2354,23 @@ "BACKGROUND_JOB_TYPE_IMPORT_RULES_FILE" ], "enumDescriptions": [ - "Unspecified background job type", - "Job to seed from the source database", - "Job to convert the source database into a draft of the destination database", - "Job to apply the draft tree onto the destination", - "Job to import and convert mapping rules from an external source such as an ora2pg config file" + "Unspecified background job type.", + "Job to seed from the source database.", + "Job to convert the source database into a draft of the destination database.", + "Job to apply the draft tree onto the destination.", + "Job to import and convert mapping rules from an external source such as an ora2pg config file." ], "type": "string" }, "requestAutocommit": { - "description": "Whether the client requested the conversion workspace to be committed after a successful completion of the job.", + "description": "Output only. Whether the client requested the conversion workspace to be committed after a successful completion of the job.", + "readOnly": true, "type": "boolean" }, "seedJobDetails": { "$ref": "SeedJobDetails", - "description": "Seed job details" + "description": "Output only. Seed job details.", + "readOnly": true }, "startTime": { "description": "The timestamp when the background job was started.", @@ -1892,14 +2389,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1986,6 +2483,10 @@ "description": "The Cloud SQL default instance level collation.", "type": "string" }, + "dataCacheConfig": { + "$ref": "DataCacheConfig", + "description": "Optional. Data cache is an optional feature available for Cloud SQL for MySQL Enterprise Plus edition only. For more information on data cache, see [Data cache overview](https://cloud.google.com/sql/help/mysql-data-cache) in Cloud SQL documentation." + }, "dataDiskSizeGb": { "description": "The storage capacity available to the database, in GB. The minimum (and default) size is 10GB.", "format": "int64", @@ -2018,25 +2519,61 @@ "SQL_DATABASE_VERSION_UNSPECIFIED", "MYSQL_5_6", "MYSQL_5_7", + "MYSQL_8_0", + "MYSQL_8_0_18", + "MYSQL_8_0_26", + "MYSQL_8_0_27", + "MYSQL_8_0_28", + "MYSQL_8_0_30", + "MYSQL_8_0_31", + "MYSQL_8_0_32", + "MYSQL_8_0_33", + "MYSQL_8_0_34", + "MYSQL_8_0_35", "POSTGRES_9_6", "POSTGRES_11", "POSTGRES_10", - "MYSQL_8_0", "POSTGRES_12", "POSTGRES_13", - "POSTGRES_14" + "POSTGRES_14", + "POSTGRES_15" ], "enumDescriptions": [ "Unspecified version.", "MySQL 5.6.", "MySQL 5.7.", + "MySQL 8.0.", + "The database major version is MySQL 8.0 and the minor version is 18.", + "The database major version is MySQL 8.0 and the minor version is 26.", + "The database major version is MySQL 8.0 and the minor version is 27.", + "The database major version is MySQL 8.0 and the minor version is 28.", + "The database major version is MySQL 8.0 and the minor version is 30.", + "The database major version is MySQL 8.0 and the minor version is 31.", + "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.", - "MySQL 8.0.", "PostgreSQL 12.", "PostgreSQL 13.", - "PostgreSQL 14." + "PostgreSQL 14.", + "PostgreSQL 15." + ], + "type": "string" + }, + "edition": { + "description": "Optional. The edition of the given Cloud SQL instance.", + "enum": [ + "EDITION_UNSPECIFIED", + "ENTERPRISE", + "ENTERPRISE_PLUS" + ], + "enumDescriptions": [ + "The instance did not specify the edition.", + "The instance is an enterprise edition.", + "The instance is an enterprise plus edition." ], "type": "string" }, @@ -2089,28 +2626,28 @@ "id": "ColumnEntity", "properties": { "array": { - "description": "Is the column of array type", + "description": "Is the column of array type.", "type": "boolean" }, "arrayLength": { - "description": "If the column is array, of which length", + "description": "If the column is array, of which length.", "format": "int32", "type": "integer" }, "autoGenerated": { - "description": "Is the column auto-generated/identity", + "description": "Is the column auto-generated/identity.", "type": "boolean" }, "charset": { - "description": "Charset override - instead of table level charset", + "description": "Charset override - instead of table level charset.", "type": "string" }, "collation": { - "description": "Collation override - instead of table level collation", + "description": "Collation override - instead of table level collation.", "type": "string" }, "comment": { - "description": "Comment associated with the column", + "description": "Comment associated with the column.", "type": "string" }, "customFeatures": { @@ -2118,59 +2655,59 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Custom engine specific features", + "description": "Custom engine specific features.", "type": "object" }, "dataType": { - "description": "Column data type", + "description": "Column data type.", "type": "string" }, "defaultValue": { - "description": "Default value of the column", + "description": "Default value of the column.", "type": "string" }, "fractionalSecondsPrecision": { - "description": "Column fractional second precision - used for timestamp based datatypes", + "description": "Column fractional second precision - used for timestamp based datatypes.", "format": "int32", "type": "integer" }, "length": { - "description": "Column length - e.g. varchar (50)", + "description": "Column length - e.g. varchar (50).", "format": "int64", "type": "string" }, "name": { - "description": "Column name", + "description": "Column name.", "type": "string" }, "nullable": { - "description": "Is the column nullable", + "description": "Is the column nullable.", "type": "boolean" }, "ordinalPosition": { - "description": "Column order in the table", + "description": "Column order in the table.", "format": "int32", "type": "integer" }, "precision": { - "description": "Column precision - when relevant", + "description": "Column precision - when relevant.", "format": "int32", "type": "integer" }, "scale": { - "description": "Column scale - when relevant", + "description": "Column scale - when relevant.", "format": "int32", "type": "integer" }, "setValues": { - "description": "Specifies the list of values allowed in the column. List is empty if set values is not required", + "description": "Specifies the list of values allowed in the column. Only used for set data type.", "items": { "type": "string" }, "type": "array" }, "udt": { - "description": "Is the column a UDT", + "description": "Is the column a UDT.", "type": "boolean" } }, @@ -2187,6 +2724,33 @@ }, "type": "object" }, + "ConditionalColumnSetValue": { + "description": "Options to configure rule type ConditionalColumnSetValue. The rule is used to transform the data which is being replicated/migrated. The rule filter field can refer to one or more entities. The rule scope can be one of: Column.", + "id": "ConditionalColumnSetValue", + "properties": { + "customFeatures": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Optional. Custom engine specific features.", + "type": "object" + }, + "sourceNumericFilter": { + "$ref": "SourceNumericFilter", + "description": "Optional. Optional filter on source column precision and scale. Used for fixed point numbers such as NUMERIC/NUMBER data types." + }, + "sourceTextFilter": { + "$ref": "SourceTextFilter", + "description": "Optional. Optional filter on source column length. Used for text based data types like varchar." + }, + "valueTransformation": { + "$ref": "ValueTransformation", + "description": "Required. Description of data transformation during migration." + } + }, + "type": "object" + }, "ConnectionProfile": { "description": "A connection profile definition.", "id": "ConnectionProfile", @@ -2297,26 +2861,26 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Custom engine specific features", + "description": "Custom engine specific features.", "type": "object" }, "name": { - "description": "The name of the table constraint", + "description": "The name of the table constraint.", "type": "string" }, "referenceColumns": { - "description": "Reference Columns which may be associated with the constraint. eg: if the constraint is a FOREIGN_KEY, this represents the list of full names of referenced columns by the foreign key.", + "description": "Reference columns which may be associated with the constraint. For example, if the constraint is a FOREIGN_KEY, this represents the list of full names of referenced columns by the foreign key.", "items": { "type": "string" }, "type": "array" }, "referenceTable": { - "description": "Reference table which may be associated with the constraint. eg: if the constraint is a FOREIGN_KEY, this represents the list of full name of the referenced table by the foreign key.", + "description": "Reference table which may be associated with the constraint. For example, if the constraint is a FOREIGN_KEY, this represents the list of full name of the referenced table by the foreign key.", "type": "string" }, "tableColumns": { - "description": "Table columns used as part of the Constraint for e.g. primary key constraint should list the columns which constitutes the key", + "description": "Table columns used as part of the Constraint, for example primary key constraint should list the columns which constitutes the key.", "items": { "type": "string" }, @@ -2327,7 +2891,7 @@ "type": "string" }, "type": { - "description": "Type of constraint - e.g. unique, primary key, foreign key (currently only primary key is supported)", + "description": "Type of constraint, for example unique, primary key, foreign key (currently only primary key is supported).", "type": "string" } }, @@ -2348,23 +2912,23 @@ "description": "Required. The destination engine details." }, "displayName": { - "description": "The display name for the workspace", + "description": "Optional. The display name for the workspace.", "type": "string" }, "globalSettings": { "additionalProperties": { "type": "string" }, - "description": "A generic list of settings for the workspace. The settings are database pair dependant and can indicate default behavior for the mapping rules engine or turn on or off specific features. Such examples can be: convert_foreign_key_to_interleave=true, skip_triggers=false, ignore_non_table_synonyms=true", + "description": "Optional. A generic list of settings for the workspace. The settings are database pair dependant and can indicate default behavior for the mapping rules engine or turn on or off specific features. Such examples can be: convert_foreign_key_to_interleave=true, skip_triggers=false, ignore_non_table_synonyms=true", "type": "object" }, "hasUncommittedChanges": { - "description": "Output only. Whether the workspace has uncommitted changes (changes which were made after the workspace was committed)", + "description": "Output only. Whether the workspace has uncommitted changes (changes which were made after the workspace was committed).", "readOnly": true, "type": "boolean" }, "latestCommitId": { - "description": "Output only. The latest commit id", + "description": "Output only. The latest commit ID.", "readOnly": true, "type": "string" }, @@ -2411,22 +2975,60 @@ "id": "ConvertConversionWorkspaceRequest", "properties": { "autoCommit": { - "description": "Should the conversion workspace be committed automatically after the conversion.", + "description": "Optional. Specifies whether the conversion workspace is to be committed automatically after the conversion.", + "type": "boolean" + }, + "convertFullPath": { + "description": "Optional. Automatically convert the full entity path for each entity specified by the filter. For example, if the filter specifies a table, that table schema (and database if there is one) will also be converted.", "type": "boolean" }, "filter": { - "description": "Filter the entities to convert. Leaving this field empty will convert all of the entities. Supports Google AIP-160 style filtering.", + "description": "Optional. Filter the entities to convert. Leaving this field empty will convert all of the entities. Supports Google AIP-160 style filtering.", "type": "string" } }, "type": "object" }, + "ConvertJobDetails": { + "description": "Details regarding a Convert background job.", + "id": "ConvertJobDetails", + "properties": { + "filter": { + "description": "Output only. AIP-160 based filter used to specify the entities to convert", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ConvertRowIdToColumn": { + "description": "Options to configure rule type ConvertROWIDToColumn. The rule is used to add column rowid to destination tables based on an Oracle rowid function/property. The rule filter field can refer to one or more entities. The rule scope can be one of: Table. This rule requires additional filter to be specified beyond the basic rule filter field, which is whether or not to work on tables which already have a primary key defined.", + "id": "ConvertRowIdToColumn", + "properties": { + "onlyIfNoPrimaryKey": { + "description": "Required. Only work on tables without primary key defined", + "type": "boolean" + } + }, + "type": "object" + }, + "DataCacheConfig": { + "description": "Data cache is an optional feature available for Cloud SQL for MySQL Enterprise Plus edition only. For more information on data cache, see [Data cache overview](https://cloud.google.com/sql/help/mysql-data-cache) in Cloud SQL documentation.", + "id": "DataCacheConfig", + "properties": { + "dataCacheEnabled": { + "description": "Optional. Whether data cache is enabled for the instance.", + "type": "boolean" + } + }, + "type": "object" + }, "DatabaseEngineInfo": { - "description": "The type and version of a source or destination DB.", + "description": "The type and version of a source or destination database.", "id": "DatabaseEngineInfo", "properties": { "engine": { - "description": "Required. Engine Type.", + "description": "Required. Engine type.", "enum": [ "DATABASE_ENGINE_UNSPECIFIED", "MYSQL", @@ -2437,28 +3039,39 @@ "The source database engine of the migration job is unknown.", "The source engine is MySQL.", "The source engine is PostgreSQL.", - "The source engine is Oracle" + "The source engine is Oracle." ], "type": "string" }, "version": { - "description": "Required. Engine named version, for e.g. 12.c.1", + "description": "Required. Engine version, for example \"12.c.1\".", "type": "string" } }, "type": "object" }, "DatabaseEntity": { - "description": "The base entity type for all the database related entities The message contains the entity name, the name of its parent, its type and the specific details per its type", + "description": "The base entity type for all the database related entities. The message contains the entity name, the name of its parent, the entity type, and the specific details per entity type.", "id": "DatabaseEntity", "properties": { + "database": { + "$ref": "DatabaseInstanceEntity", + "description": "Database." + }, "databaseFunction": { "$ref": "FunctionEntity", - "description": "Function" + "description": "Function." }, "databasePackage": { "$ref": "PackageEntity", - "description": "Package" + "description": "Package." + }, + "entityDdl": { + "description": "Details about the entity DDL script. Multiple DDL scripts are provided for child entities such as a table entity will have one DDL for the table with additional DDLs for each index, constraint and such.", + "items": { + "$ref": "EntityDdl" + }, + "type": "array" }, "entityType": { "description": "The type of the database entity (table, view, index, ...).", @@ -2476,26 +3089,37 @@ "DATABASE_ENTITY_TYPE_FUNCTION", "DATABASE_ENTITY_TYPE_SYNONYM", "DATABASE_ENTITY_TYPE_DATABASE_PACKAGE", - "DATABASE_ENTITY_TYPE_UDT" + "DATABASE_ENTITY_TYPE_UDT", + "DATABASE_ENTITY_TYPE_MATERIALIZED_VIEW", + "DATABASE_ENTITY_TYPE_DATABASE" ], "enumDescriptions": [ - "Unspecified database entity type", - "Schema", - "Table", - "Column", - "Constraint", - "Index", - "Trigger", - "View", - "Sequence", - "Stored Procedure", - "Function", - "Synonym", - "Package", - "UDT" + "Unspecified database entity type.", + "Schema.", + "Table.", + "Column.", + "Constraint.", + "Index.", + "Trigger.", + "View.", + "Sequence.", + "Stored Procedure.", + "Function.", + "Synonym.", + "Package.", + "UDT.", + "Materialized View.", + "Database." ], "type": "string" }, + "issues": { + "description": "Details about the various issues found for the entity.", + "items": { + "$ref": "EntityIssue" + }, + "type": "array" + }, "mappings": { "description": "Details about entity mappings. For source tree entities, this holds the draft entities which were generated by the mapping rules. For draft tree entities, this holds the source entities which were converted to form the draft entity. Destination entities will have no mapping details.", "items": { @@ -2503,6 +3127,10 @@ }, "type": "array" }, + "materializedView": { + "$ref": "MaterializedViewEntity", + "description": "Materialized view." + }, "parentEntity": { "description": "The full name of the parent entity (e.g. schema name).", "type": "string" @@ -2513,7 +3141,7 @@ }, "sequence": { "$ref": "SequenceEntity", - "description": "Sequence" + "description": "Sequence." }, "shortName": { "description": "The short name (e.g. table name) of the entity.", @@ -2521,11 +3149,11 @@ }, "storedProcedure": { "$ref": "StoredProcedureEntity", - "description": "Stored Procedure" + "description": "Stored procedure." }, "synonym": { "$ref": "SynonymEntity", - "description": "Synonym" + "description": "Synonym." }, "table": { "$ref": "TableEntity", @@ -2540,16 +3168,35 @@ "DESTINATION" ], "enumDescriptions": [ - "Tree Type Unspecified.", + "Tree type unspecified.", "Tree of entities loaded from a source database.", "Tree of entities converted from the source tree using the mapping rules.", "Tree of entities observed on the destination database." ], "type": "string" }, + "udt": { + "$ref": "UDTEntity", + "description": "UDT." + }, "view": { "$ref": "ViewEntity", - "description": "View" + "description": "View." + } + }, + "type": "object" + }, + "DatabaseInstanceEntity": { + "description": "DatabaseInstance acts as a parent entity to other database entities.", + "id": "DatabaseInstanceEntity", + "properties": { + "customFeatures": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Custom engine specific features.", + "type": "object" } }, "type": "object" @@ -2570,7 +3217,7 @@ "The source database engine of the migration job is unknown.", "The source engine is MySQL.", "The source engine is PostgreSQL.", - "The source engine is Oracle" + "The source engine is Oracle." ], "type": "string" }, @@ -2595,6 +3242,12 @@ }, "type": "object" }, + "DemoteDestinationRequest": { + "description": "Request message for 'DemoteDestination' request.", + "id": "DemoteDestinationRequest", + "properties": {}, + "type": "object" + }, "DescribeConversionWorkspaceRevisionsResponse": { "description": "Response message for 'DescribeConversionWorkspaceRevisions' request.", "id": "DescribeConversionWorkspaceRevisionsResponse", @@ -2621,7 +3274,37 @@ "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.", + "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" + }, + "DoubleComparisonFilter": { + "description": "Filter based on relation between source value and compare value of type double in ConditionalColumnSetValue", + "id": "DoubleComparisonFilter", + "properties": { + "value": { + "description": "Required. Double compare value to be used", + "format": "double", + "type": "number" + }, + "valueComparison": { + "description": "Required. Relation between source value and compare value", + "enum": [ + "VALUE_COMPARISON_UNSPECIFIED", + "VALUE_COMPARISON_IF_VALUE_SMALLER_THAN", + "VALUE_COMPARISON_IF_VALUE_SMALLER_EQUAL_THAN", + "VALUE_COMPARISON_IF_VALUE_LARGER_THAN", + "VALUE_COMPARISON_IF_VALUE_LARGER_EQUAL_THAN" + ], + "enumDescriptions": [ + "Value comparison unspecified.", + "Value is smaller than the Compare value.", + "Value is smaller or equal than the Compare value.", + "Value is larger than the Compare value.", + "Value is larger or equal than the Compare value." + ], "type": "string" } }, @@ -2662,23 +3345,279 @@ "properties": {}, "type": "object" }, + "EncryptionConfig": { + "description": "EncryptionConfig describes the encryption config of a cluster that is encrypted with a CMEK (customer-managed encryption key).", + "id": "EncryptionConfig", + "properties": { + "kmsKeyName": { + "description": "The fully-qualified resource name of the KMS key. Each Cloud KMS key is regionalized and has the following format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME]", + "type": "string" + } + }, + "type": "object" + }, + "EntityDdl": { + "description": "A single DDL statement for a specific entity", + "id": "EntityDdl", + "properties": { + "ddl": { + "description": "The actual ddl code.", + "type": "string" + }, + "ddlType": { + "description": "Type of DDL (Create, Alter).", + "type": "string" + }, + "entity": { + "description": "The name of the database entity the ddl refers to.", + "type": "string" + }, + "entityType": { + "description": "The entity type (if the DDL is for a sub entity).", + "enum": [ + "DATABASE_ENTITY_TYPE_UNSPECIFIED", + "DATABASE_ENTITY_TYPE_SCHEMA", + "DATABASE_ENTITY_TYPE_TABLE", + "DATABASE_ENTITY_TYPE_COLUMN", + "DATABASE_ENTITY_TYPE_CONSTRAINT", + "DATABASE_ENTITY_TYPE_INDEX", + "DATABASE_ENTITY_TYPE_TRIGGER", + "DATABASE_ENTITY_TYPE_VIEW", + "DATABASE_ENTITY_TYPE_SEQUENCE", + "DATABASE_ENTITY_TYPE_STORED_PROCEDURE", + "DATABASE_ENTITY_TYPE_FUNCTION", + "DATABASE_ENTITY_TYPE_SYNONYM", + "DATABASE_ENTITY_TYPE_DATABASE_PACKAGE", + "DATABASE_ENTITY_TYPE_UDT", + "DATABASE_ENTITY_TYPE_MATERIALIZED_VIEW", + "DATABASE_ENTITY_TYPE_DATABASE" + ], + "enumDescriptions": [ + "Unspecified database entity type.", + "Schema.", + "Table.", + "Column.", + "Constraint.", + "Index.", + "Trigger.", + "View.", + "Sequence.", + "Stored Procedure.", + "Function.", + "Synonym.", + "Package.", + "UDT.", + "Materialized View.", + "Database." + ], + "type": "string" + }, + "issueId": { + "description": "EntityIssues found for this ddl.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "EntityIssue": { + "description": "Issue related to the entity.", + "id": "EntityIssue", + "properties": { + "code": { + "description": "Error/Warning code", + "type": "string" + }, + "ddl": { + "description": "The ddl which caused the issue, if relevant.", + "type": "string" + }, + "entityType": { + "description": "The entity type (if the DDL is for a sub entity).", + "enum": [ + "DATABASE_ENTITY_TYPE_UNSPECIFIED", + "DATABASE_ENTITY_TYPE_SCHEMA", + "DATABASE_ENTITY_TYPE_TABLE", + "DATABASE_ENTITY_TYPE_COLUMN", + "DATABASE_ENTITY_TYPE_CONSTRAINT", + "DATABASE_ENTITY_TYPE_INDEX", + "DATABASE_ENTITY_TYPE_TRIGGER", + "DATABASE_ENTITY_TYPE_VIEW", + "DATABASE_ENTITY_TYPE_SEQUENCE", + "DATABASE_ENTITY_TYPE_STORED_PROCEDURE", + "DATABASE_ENTITY_TYPE_FUNCTION", + "DATABASE_ENTITY_TYPE_SYNONYM", + "DATABASE_ENTITY_TYPE_DATABASE_PACKAGE", + "DATABASE_ENTITY_TYPE_UDT", + "DATABASE_ENTITY_TYPE_MATERIALIZED_VIEW", + "DATABASE_ENTITY_TYPE_DATABASE" + ], + "enumDescriptions": [ + "Unspecified database entity type.", + "Schema.", + "Table.", + "Column.", + "Constraint.", + "Index.", + "Trigger.", + "View.", + "Sequence.", + "Stored Procedure.", + "Function.", + "Synonym.", + "Package.", + "UDT.", + "Materialized View.", + "Database." + ], + "type": "string" + }, + "id": { + "description": "Unique Issue ID.", + "type": "string" + }, + "message": { + "description": "Issue detailed message", + "type": "string" + }, + "position": { + "$ref": "Position", + "description": "The position of the issue found, if relevant." + }, + "severity": { + "description": "Severity of the issue", + "enum": [ + "ISSUE_SEVERITY_UNSPECIFIED", + "ISSUE_SEVERITY_INFO", + "ISSUE_SEVERITY_WARNING", + "ISSUE_SEVERITY_ERROR" + ], + "enumDescriptions": [ + "Unspecified issue severity", + "Info", + "Warning", + "Error" + ], + "type": "string" + }, + "type": { + "description": "The type of the issue.", + "enum": [ + "ISSUE_TYPE_UNSPECIFIED", + "ISSUE_TYPE_DDL", + "ISSUE_TYPE_APPLY", + "ISSUE_TYPE_CONVERT" + ], + "enumDescriptions": [ + "Unspecified issue type.", + "Issue originated from the DDL", + "Issue originated during the apply process", + "Issue originated during the convert process" + ], + "type": "string" + } + }, + "type": "object" + }, "EntityMapping": { "description": "Details of the mappings of a database entity.", "id": "EntityMapping", "properties": { "draftEntity": { - "description": "Target entity full name. The draft entity can also include a column, index or constraint using the same naming notation schema.table.column", + "description": "Target entity full name. The draft entity can also include a column, index or constraint using the same naming notation schema.table.column.", + "type": "string" + }, + "draftType": { + "description": "Type of draft entity.", + "enum": [ + "DATABASE_ENTITY_TYPE_UNSPECIFIED", + "DATABASE_ENTITY_TYPE_SCHEMA", + "DATABASE_ENTITY_TYPE_TABLE", + "DATABASE_ENTITY_TYPE_COLUMN", + "DATABASE_ENTITY_TYPE_CONSTRAINT", + "DATABASE_ENTITY_TYPE_INDEX", + "DATABASE_ENTITY_TYPE_TRIGGER", + "DATABASE_ENTITY_TYPE_VIEW", + "DATABASE_ENTITY_TYPE_SEQUENCE", + "DATABASE_ENTITY_TYPE_STORED_PROCEDURE", + "DATABASE_ENTITY_TYPE_FUNCTION", + "DATABASE_ENTITY_TYPE_SYNONYM", + "DATABASE_ENTITY_TYPE_DATABASE_PACKAGE", + "DATABASE_ENTITY_TYPE_UDT", + "DATABASE_ENTITY_TYPE_MATERIALIZED_VIEW", + "DATABASE_ENTITY_TYPE_DATABASE" + ], + "enumDescriptions": [ + "Unspecified database entity type.", + "Schema.", + "Table.", + "Column.", + "Constraint.", + "Index.", + "Trigger.", + "View.", + "Sequence.", + "Stored Procedure.", + "Function.", + "Synonym.", + "Package.", + "UDT.", + "Materialized View.", + "Database." + ], "type": "string" }, "mappingLog": { - "description": "Entity mapping log entries. Multiple rules can be effective and contribute changes to a converted entity such as, a rule can handle the entity name, another rule can handle an entity type. In addition, rules which did not change the entity are also logged along the with the reason preventing them to do so.", + "description": "Entity mapping log entries. Multiple rules can be effective and contribute changes to a converted entity, such as a rule can handle the entity name, another rule can handle an entity type. In addition, rules which did not change the entity are also logged along with the reason preventing them to do so.", "items": { "$ref": "EntityMappingLogEntry" }, "type": "array" }, "sourceEntity": { - "description": "Source entity full name. The source entity can also be a column, index or constraint using the same naming notation schema.table.column", + "description": "Source entity full name. The source entity can also be a column, index or constraint using the same naming notation schema.table.column.", + "type": "string" + }, + "sourceType": { + "description": "Type of source entity.", + "enum": [ + "DATABASE_ENTITY_TYPE_UNSPECIFIED", + "DATABASE_ENTITY_TYPE_SCHEMA", + "DATABASE_ENTITY_TYPE_TABLE", + "DATABASE_ENTITY_TYPE_COLUMN", + "DATABASE_ENTITY_TYPE_CONSTRAINT", + "DATABASE_ENTITY_TYPE_INDEX", + "DATABASE_ENTITY_TYPE_TRIGGER", + "DATABASE_ENTITY_TYPE_VIEW", + "DATABASE_ENTITY_TYPE_SEQUENCE", + "DATABASE_ENTITY_TYPE_STORED_PROCEDURE", + "DATABASE_ENTITY_TYPE_FUNCTION", + "DATABASE_ENTITY_TYPE_SYNONYM", + "DATABASE_ENTITY_TYPE_DATABASE_PACKAGE", + "DATABASE_ENTITY_TYPE_UDT", + "DATABASE_ENTITY_TYPE_MATERIALIZED_VIEW", + "DATABASE_ENTITY_TYPE_DATABASE" + ], + "enumDescriptions": [ + "Unspecified database entity type.", + "Schema.", + "Table.", + "Column.", + "Constraint.", + "Index.", + "Trigger.", + "View.", + "Sequence.", + "Stored Procedure.", + "Function.", + "Synonym.", + "Package.", + "UDT.", + "Materialized View.", + "Database." + ], "type": "string" } }, @@ -2693,11 +3632,22 @@ "type": "string" }, "ruleId": { - "description": "Which rule caused it.", + "description": "Which rule caused this log entry.", "type": "string" }, "ruleRevisionId": { - "description": "Rule revision id", + "description": "Rule revision ID.", + "type": "string" + } + }, + "type": "object" + }, + "EntityMove": { + "description": "Options to configure rule type EntityMove. The rule is used to move an entity to a new schema. The rule filter field can refer to one or more entities. The rule scope can be one of: Table, Column, Constraint, Index, View, Function, Stored Procedure, Materialized View, Sequence, UDT", + "id": "EntityMove", + "properties": { + "newSchema": { + "description": "Required. The new schema", "type": "string" } }, @@ -2726,6 +3676,45 @@ }, "type": "object" }, + "FetchStaticIpsResponse": { + "description": "Response message for a 'FetchStaticIps' request.", + "id": "FetchStaticIpsResponse", + "properties": { + "nextPageToken": { + "description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "staticIps": { + "description": "List of static IPs.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "FilterTableColumns": { + "description": "Options to configure rule type FilterTableColumns. The rule is used to filter the list of columns to include or exclude from a table. The rule filter field can refer to one entity. The rule scope can be: Table Only one of the two lists can be specified for the rule.", + "id": "FilterTableColumns", + "properties": { + "excludeColumns": { + "description": "Optional. List of columns to be excluded for a particular table.", + "items": { + "type": "string" + }, + "type": "array" + }, + "includeColumns": { + "description": "Optional. List of columns to be included for a particular table.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ForwardSshTunnelConnectivity": { "description": "Forward SSH Tunnel connectivity.", "id": "ForwardSshTunnelConnectivity", @@ -2763,11 +3752,11 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Custom engine specific features", + "description": "Custom engine specific features.", "type": "object" }, "sqlCode": { - "description": "The SQL code which creates the function", + "description": "The SQL code which creates the function.", "type": "string" } }, @@ -2786,7 +3775,7 @@ "description": "The VM creation configuration" }, "vmPort": { - "description": "The port that will be open on the bastion host", + "description": "The port that will be open on the bastion host.", "format": "int32", "type": "integer" }, @@ -2797,6 +3786,29 @@ }, "type": "object" }, + "GenerateTcpProxyScriptRequest": { + "description": "Request message for 'GenerateTcpProxyScript' request.", + "id": "GenerateTcpProxyScriptRequest", + "properties": { + "vmMachineType": { + "description": "Required. The type of the Compute instance that will host the proxy.", + "type": "string" + }, + "vmName": { + "description": "Required. The name of the Compute instance that will host the proxy.", + "type": "string" + }, + "vmSubnet": { + "description": "Required. The name of the subnet the Compute instance will use for private connectivity. Must be supplied in the form of projects/{project}/regions/{region}/subnetworks/{subnetwork}. Note: the region for the subnet must match the Compute instance region.", + "type": "string" + }, + "vmZone": { + "description": "Optional. The Google Cloud Platform zone to create the VM in. The fully qualified name of the zone must be specified, including the region name, for example \"us-central1-b\". If not specified, uses the \"-b\" zone of the destination Connection Profile's region.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudClouddmsV1OperationMetadata": { "description": "Represents the metadata of the long-running operation.", "id": "GoogleCloudClouddmsV1OperationMetadata", @@ -2846,27 +3858,27 @@ "id": "ImportMappingRulesRequest", "properties": { "autoCommit": { - "description": "Should the conversion workspace be committed automatically after the import operation.", + "description": "Required. Should the conversion workspace be committed automatically after the import operation.", "type": "boolean" }, "rulesFiles": { - "description": "One or more rules files", + "description": "Required. One or more rules files.", "items": { "$ref": "RulesFile" }, "type": "array" }, "rulesFormat": { - "description": "The format of the rules content file.", + "description": "Required. The format of the rules content file.", "enum": [ "IMPORT_RULES_FILE_FORMAT_UNSPECIFIED", "IMPORT_RULES_FILE_FORMAT_HARBOUR_BRIDGE_SESSION_FILE", "IMPORT_RULES_FILE_FORMAT_ORATOPG_CONFIG_FILE" ], "enumDescriptions": [ - "Unspecified Rules Format", - "Harbour Bridge Session file", - "ORA2PG config file" + "Unspecified rules format.", + "HarbourBridge session file.", + "Ora2Pg configuration file." ], "type": "string" } @@ -2874,28 +3886,30 @@ "type": "object" }, "ImportRulesJobDetails": { - "description": "Details regarding an Import Rules background job", + "description": "Details regarding an Import Rules background job.", "id": "ImportRulesJobDetails", "properties": { "fileFormat": { - "description": "The requested file format", + "description": "Output only. The requested file format.", "enum": [ "IMPORT_RULES_FILE_FORMAT_UNSPECIFIED", "IMPORT_RULES_FILE_FORMAT_HARBOUR_BRIDGE_SESSION_FILE", "IMPORT_RULES_FILE_FORMAT_ORATOPG_CONFIG_FILE" ], "enumDescriptions": [ - "Unspecified Rules Format", - "Harbour Bridge Session file", - "ORA2PG config file" + "Unspecified rules format.", + "HarbourBridge session file.", + "Ora2Pg configuration file." ], + "readOnly": true, "type": "string" }, "files": { - "description": "File names used for the import rules job", + "description": "Output only. File names used for the import rules job.", "items": { "type": "string" }, + "readOnly": true, "type": "array" } }, @@ -2910,31 +3924,61 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Custom engine specific features", + "description": "Custom engine specific features.", "type": "object" }, "name": { - "description": "The name of the index", + "description": "The name of the index.", "type": "string" }, "tableColumns": { - "description": "Table columns used as part of the Index for e.g. B-TREE index should list the columns which constitutes the index.", + "description": "Table columns used as part of the Index, for example B-TREE index should list the columns which constitutes the index.", "items": { "type": "string" }, "type": "array" }, "type": { - "description": "Type of index - e.g. B-TREE", + "description": "Type of index, for example B-TREE.", "type": "string" }, "unique": { - "description": "boolean value indicating whether the index is unique", + "description": "Boolean value indicating whether the index is unique.", "type": "boolean" } }, "type": "object" }, + "IntComparisonFilter": { + "description": "Filter based on relation between source value and compare value of type integer in ConditionalColumnSetValue", + "id": "IntComparisonFilter", + "properties": { + "value": { + "description": "Required. Integer compare value to be used", + "format": "int64", + "type": "string" + }, + "valueComparison": { + "description": "Required. Relation between source value and compare value", + "enum": [ + "VALUE_COMPARISON_UNSPECIFIED", + "VALUE_COMPARISON_IF_VALUE_SMALLER_THAN", + "VALUE_COMPARISON_IF_VALUE_SMALLER_EQUAL_THAN", + "VALUE_COMPARISON_IF_VALUE_LARGER_THAN", + "VALUE_COMPARISON_IF_VALUE_LARGER_EQUAL_THAN" + ], + "enumDescriptions": [ + "Value comparison unspecified.", + "Value is smaller than the Compare value.", + "Value is smaller or equal than the Compare value.", + "Value is larger than the Compare value.", + "Value is larger or equal than the Compare value." + ], + "type": "string" + } + }, + "type": "object" + }, "ListConnectionProfilesResponse": { "description": "Response message for 'ListConnectionProfiles' request.", "id": "ListConnectionProfilesResponse", @@ -2947,7 +3991,7 @@ "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.", + "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": { @@ -2972,7 +4016,7 @@ "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.", + "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": { @@ -3003,6 +4047,24 @@ }, "type": "object" }, + "ListMappingRulesResponse": { + "description": "Response message for 'ListMappingRulesRequest' request.", + "id": "ListMappingRulesResponse", + "properties": { + "mappingRules": { + "description": "The list of conversion workspace mapping rules.", + "items": { + "$ref": "MappingRule" + }, + "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" + }, "ListMigrationJobsResponse": { "description": "Response message for 'ListMigrationJobs' request.", "id": "ListMigrationJobsResponse", @@ -3015,7 +4077,7 @@ "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.", + "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": { @@ -3051,7 +4113,7 @@ "id": "ListPrivateConnectionsResponse", "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.", + "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" }, "privateConnections": { @@ -3072,7 +4134,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -3117,10 +4179,198 @@ }, "type": "object" }, + "MappingRule": { + "description": "Definition of a transformation that is to be applied to a group of entities in the source schema. Several such transformations can be applied to an entity sequentially to define the corresponding entity in the target schema.", + "id": "MappingRule", + "properties": { + "conditionalColumnSetValue": { + "$ref": "ConditionalColumnSetValue", + "description": "Optional. Rule to specify how the data contained in a column should be transformed (such as trimmed, rounded, etc) provided that the data meets certain criteria." + }, + "convertRowidColumn": { + "$ref": "ConvertRowIdToColumn", + "description": "Optional. Rule to specify how multiple tables should be converted with an additional rowid column." + }, + "displayName": { + "description": "Optional. A human readable name", + "type": "string" + }, + "entityMove": { + "$ref": "EntityMove", + "description": "Optional. Rule to specify how multiple entities should be relocated into a different schema." + }, + "filter": { + "$ref": "MappingRuleFilter", + "description": "Required. The rule filter" + }, + "filterTableColumns": { + "$ref": "FilterTableColumns", + "description": "Optional. Rule to specify the list of columns to include or exclude from a table." + }, + "multiColumnDataTypeChange": { + "$ref": "MultiColumnDatatypeChange", + "description": "Optional. Rule to specify how multiple columns should be converted to a different data type." + }, + "multiEntityRename": { + "$ref": "MultiEntityRename", + "description": "Optional. Rule to specify how multiple entities should be renamed." + }, + "name": { + "description": "Full name of the mapping rule resource, in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{set}/mappingRule/{rule}.", + "type": "string" + }, + "revisionCreateTime": { + "description": "Output only. The timestamp that the revision was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "revisionId": { + "description": "Output only. The revision ID of the mapping rule. A new revision is committed whenever the mapping rule is changed in any way. The format is an 8-character hexadecimal string.", + "readOnly": true, + "type": "string" + }, + "ruleOrder": { + "description": "Required. The order in which the rule is applied. Lower order rules are applied before higher value rules so they may end up being overridden.", + "format": "int64", + "type": "string" + }, + "ruleScope": { + "description": "Required. The rule scope", + "enum": [ + "DATABASE_ENTITY_TYPE_UNSPECIFIED", + "DATABASE_ENTITY_TYPE_SCHEMA", + "DATABASE_ENTITY_TYPE_TABLE", + "DATABASE_ENTITY_TYPE_COLUMN", + "DATABASE_ENTITY_TYPE_CONSTRAINT", + "DATABASE_ENTITY_TYPE_INDEX", + "DATABASE_ENTITY_TYPE_TRIGGER", + "DATABASE_ENTITY_TYPE_VIEW", + "DATABASE_ENTITY_TYPE_SEQUENCE", + "DATABASE_ENTITY_TYPE_STORED_PROCEDURE", + "DATABASE_ENTITY_TYPE_FUNCTION", + "DATABASE_ENTITY_TYPE_SYNONYM", + "DATABASE_ENTITY_TYPE_DATABASE_PACKAGE", + "DATABASE_ENTITY_TYPE_UDT", + "DATABASE_ENTITY_TYPE_MATERIALIZED_VIEW", + "DATABASE_ENTITY_TYPE_DATABASE" + ], + "enumDescriptions": [ + "Unspecified database entity type.", + "Schema.", + "Table.", + "Column.", + "Constraint.", + "Index.", + "Trigger.", + "View.", + "Sequence.", + "Stored Procedure.", + "Function.", + "Synonym.", + "Package.", + "UDT.", + "Materialized View.", + "Database." + ], + "type": "string" + }, + "setTablePrimaryKey": { + "$ref": "SetTablePrimaryKey", + "description": "Optional. Rule to specify the primary key for a table" + }, + "singleColumnChange": { + "$ref": "SingleColumnChange", + "description": "Optional. Rule to specify how a single column is converted." + }, + "singleEntityRename": { + "$ref": "SingleEntityRename", + "description": "Optional. Rule to specify how a single entity should be renamed." + }, + "singlePackageChange": { + "$ref": "SinglePackageChange", + "description": "Optional. Rule to specify how a single package is converted." + }, + "sourceSqlChange": { + "$ref": "SourceSqlChange", + "description": "Optional. Rule to change the sql code for an entity, for example, function, procedure." + }, + "state": { + "description": "Optional. The mapping rule state", + "enum": [ + "STATE_UNSPECIFIED", + "ENABLED", + "DISABLED", + "DELETED" + ], + "enumDescriptions": [ + "The state of the mapping rule is unknown.", + "The rule is enabled.", + "The rule is disabled.", + "The rule is logically deleted." + ], + "type": "string" + } + }, + "type": "object" + }, + "MappingRuleFilter": { + "description": "A filter defining the entities that a mapping rule should be applied to. When more than one field is specified, the rule is applied only to entities which match all the fields.", + "id": "MappingRuleFilter", + "properties": { + "entities": { + "description": "Optional. The rule should be applied to specific entities defined by their fully qualified names.", + "items": { + "type": "string" + }, + "type": "array" + }, + "entityNameContains": { + "description": "Optional. The rule should be applied to entities whose non-qualified name contains the given string.", + "type": "string" + }, + "entityNamePrefix": { + "description": "Optional. The rule should be applied to entities whose non-qualified name starts with the given prefix.", + "type": "string" + }, + "entityNameSuffix": { + "description": "Optional. The rule should be applied to entities whose non-qualified name ends with the given suffix.", + "type": "string" + }, + "parentEntity": { + "description": "Optional. The rule should be applied to entities whose parent entity (fully qualified name) matches the given value. For example, if the rule applies to a table entity, the expected value should be a schema (schema). If the rule applies to a column or index entity, the expected value can be either a schema (schema) or a table (schema.table)", + "type": "string" + } + }, + "type": "object" + }, + "MaterializedViewEntity": { + "description": "MaterializedView's parent is a schema.", + "id": "MaterializedViewEntity", + "properties": { + "customFeatures": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Custom engine specific features.", + "type": "object" + }, + "sqlCode": { + "description": "The SQL code which creates the view.", + "type": "string" + } + }, + "type": "object" + }, "MigrationJob": { "description": "Represents a Database Migration Service migration job object.", "id": "MigrationJob", "properties": { + "cmekKeyName": { + "description": "The CMEK (customer-managed encryption key) fully qualified key name used for the migration job. This field supports all migration jobs types except for: * Mysql to Mysql (use the cmek field in the cloudsql connection profile instead). * PostrgeSQL to PostgreSQL (use the cmek field in the cloudsql connection profile instead). * PostgreSQL to AlloyDB (use the kms_key_name field in the alloydb connection profile instead). Each Cloud CMEK key has the following format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME]", + "type": "string" + }, "conversionWorkspace": { "$ref": "ConversionWorkspaceInfo", "description": "The conversion workspace used by the migration." @@ -3183,6 +4433,10 @@ "description": "The name (URI) of this migration job resource, in the form of: projects/{project}/locations/{location}/migrationJobs/{migrationJob}.", "type": "string" }, + "performanceConfig": { + "$ref": "PerformanceConfig", + "description": "Optional. Data dump parallelism settings used by the migration. Currently applicable only for MySQL to Cloud SQL for MySQL migrations only." + }, "phase": { "description": "Output only. The current migration job phase.", "enum": [ @@ -3314,7 +4568,16 @@ "UNSUPPORTED_TABLE_DEFINITION", "UNSUPPORTED_DEFINER", "CANT_RESTART_RUNNING_MIGRATION", - "TABLES_WITH_LIMITED_SUPPORT" + "SOURCE_ALREADY_SETUP", + "TABLES_WITH_LIMITED_SUPPORT", + "UNSUPPORTED_DATABASE_LOCALE", + "UNSUPPORTED_DATABASE_FDW_CONFIG", + "ERROR_RDBMS", + "SOURCE_SIZE_EXCEEDS_THRESHOLD", + "EXISTING_CONFLICTING_DATABASES", + "PARALLEL_IMPORT_INSUFFICIENT_PRIVILEGE", + "EXISTING_DATA", + "SOURCE_MAX_SUBSCRIPTIONS" ], "enumDescriptions": [ "An unknown error occurred", @@ -3337,7 +4600,16 @@ "The table definition is not support due to missing primary key or replica identity.", "The definer is not supported.", "Migration is already running at the time of restart request.", - "The source has tables with limited support. E.g. PostgreSQL tables without primary keys." + "The source already has a replication setup.", + "The source has tables with limited support. E.g. PostgreSQL tables without primary keys.", + "The source uses an unsupported locale.", + "The source uses an unsupported Foreign Data Wrapper configuration.", + "There was an underlying RDBMS error.", + "The source DB size in Bytes exceeds a certain threshold. The migration might require an increase of quota, or might not be supported.", + "The destination DB contains existing databases that are conflicting with those in the source DB.", + "Insufficient privilege to enable the parallelism configuration.", + "The destination instance contains existing data or user defined entities (for example databases, tables, or functions). You can only migrate to empty instances. Clear your destination instance and retry the migration job.", + "The migration job is configured to use max number of subscriptions to migrate data from the source to the destination." ], "readOnly": true, "type": "string" @@ -3355,6 +4627,86 @@ }, "type": "object" }, + "MultiColumnDatatypeChange": { + "description": "Options to configure rule type MultiColumnDatatypeChange. The rule is used to change the data type and associated properties of multiple columns at once. The rule filter field can refer to one or more entities. The rule scope can be one of:Column. This rule requires additional filters to be specified beyond the basic rule filter field, which is the source data type, but the rule supports additional filtering capabilities such as the minimum and maximum field length. All additional filters which are specified are required to be met in order for the rule to be applied (logical AND between the fields).", + "id": "MultiColumnDatatypeChange", + "properties": { + "customFeatures": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Optional. Custom engine specific features.", + "type": "object" + }, + "newDataType": { + "description": "Required. New data type.", + "type": "string" + }, + "overrideFractionalSecondsPrecision": { + "description": "Optional. Column fractional seconds precision - used only for timestamp based datatypes - if not specified and relevant uses the source column fractional seconds precision.", + "format": "int32", + "type": "integer" + }, + "overrideLength": { + "description": "Optional. Column length - e.g. varchar (50) - if not specified and relevant uses the source column length.", + "format": "int64", + "type": "string" + }, + "overridePrecision": { + "description": "Optional. Column precision - when relevant - if not specified and relevant uses the source column precision.", + "format": "int32", + "type": "integer" + }, + "overrideScale": { + "description": "Optional. Column scale - when relevant - if not specified and relevant uses the source column scale.", + "format": "int32", + "type": "integer" + }, + "sourceDataTypeFilter": { + "description": "Required. Filter on source data type.", + "type": "string" + }, + "sourceNumericFilter": { + "$ref": "SourceNumericFilter", + "description": "Optional. Filter for fixed point number data types such as NUMERIC/NUMBER." + }, + "sourceTextFilter": { + "$ref": "SourceTextFilter", + "description": "Optional. Filter for text-based data types like varchar." + } + }, + "type": "object" + }, + "MultiEntityRename": { + "description": "Options to configure rule type MultiEntityRename. The rule is used to rename multiple entities. The rule filter field can refer to one or more entities. The rule scope can be one of: Database, Schema, Table, Column, Constraint, Index, View, Function, Stored Procedure, Materialized View, Sequence, UDT", + "id": "MultiEntityRename", + "properties": { + "newNamePattern": { + "description": "Optional. The pattern used to generate the new entity's name. This pattern must include the characters '{name}', which will be replaced with the name of the original entity. For example, the pattern 't_{name}' for an entity name jobs would be converted to 't_jobs'. If unspecified, the default value for this field is '{name}'", + "type": "string" + }, + "sourceNameTransformation": { + "description": "Optional. Additional transformation that can be done on the source entity name before it is being used by the new_name_pattern, for example lower case. If no transformation is desired, use NO_TRANSFORMATION", + "enum": [ + "ENTITY_NAME_TRANSFORMATION_UNSPECIFIED", + "ENTITY_NAME_TRANSFORMATION_NO_TRANSFORMATION", + "ENTITY_NAME_TRANSFORMATION_LOWER_CASE", + "ENTITY_NAME_TRANSFORMATION_UPPER_CASE", + "ENTITY_NAME_TRANSFORMATION_CAPITALIZED_CASE" + ], + "enumDescriptions": [ + "Entity name transformation unspecified.", + "No transformation.", + "Transform to lower case.", + "Transform to upper case.", + "Transform to capitalized case." + ], + "type": "string" + } + }, + "type": "object" + }, "MySqlConnectionProfile": { "description": "Specifies connection parameters required specifically for MySQL databases.", "id": "MySqlConnectionProfile", @@ -3421,7 +4773,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" } }, @@ -3461,6 +4813,10 @@ "$ref": "PrivateConnectivity", "description": "Private connectivity." }, + "ssl": { + "$ref": "SslConfig", + "description": "SSL configuration for the connection to the source Oracle database. * Only `SERVER_ONLY` configuration is supported for Oracle SSL. * SSL is supported for Oracle versions 12 and above." + }, "staticServiceIpConnectivity": { "$ref": "StaticServiceIpConnectivity", "description": "Static Service IP connectivity." @@ -3481,7 +4837,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Custom engine specific features", + "description": "Custom engine specific features.", "type": "object" }, "packageBody": { @@ -3489,14 +4845,37 @@ "type": "string" }, "packageSqlCode": { - "description": "The SQL code which creates the package", + "description": "The SQL code which creates the package.", + "type": "string" + } + }, + "type": "object" + }, + "PerformanceConfig": { + "description": "Performance configuration definition.", + "id": "PerformanceConfig", + "properties": { + "dumpParallelLevel": { + "description": "Initial dump parallelism level.", + "enum": [ + "DUMP_PARALLEL_LEVEL_UNSPECIFIED", + "MIN", + "OPTIMAL", + "MAX" + ], + "enumDescriptions": [ + "Unknown dump parallel level. Will be defaulted to OPTIMAL.", + "Minimal parallel level.", + "Optimal parallel level.", + "Maximum parallel level." + ], "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/).", + "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": { @@ -3526,10 +4905,41 @@ }, "type": "object" }, + "Position": { + "description": "Issue position.", + "id": "Position", + "properties": { + "column": { + "description": "Issue column number", + "format": "int32", + "type": "integer" + }, + "length": { + "description": "Issue length", + "format": "int32", + "type": "integer" + }, + "line": { + "description": "Issue line number", + "format": "int32", + "type": "integer" + }, + "offset": { + "description": "Issue offset", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "PostgreSqlConnectionProfile": { "description": "Specifies connection parameters required specifically for PostgreSQL databases.", "id": "PostgreSqlConnectionProfile", "properties": { + "alloydbClusterId": { + "description": "Optional. If the destination is an AlloyDB database, use this field to provide the AlloyDB cluster ID.", + "type": "string" + }, "cloudSqlId": { "description": "If the source is a Cloud SQL database, use this field to provide the Cloud SQL instance ID of the source.", "type": "string" @@ -3647,11 +5057,11 @@ "type": "object" }, "name": { - "description": "The resource's name.", + "description": "The name of the resource.", "type": "string" }, "state": { - "description": "Output only. The state of the Private Connection.", + "description": "Output only. The state of the private connection.", "enum": [ "STATE_UNSPECIFIED", "CREATING", @@ -3681,7 +5091,7 @@ }, "vpcPeeringConfig": { "$ref": "VpcPeeringConfig", - "description": "VPC Peering Config." + "description": "VPC peering configuration." } }, "type": "object" @@ -3698,7 +5108,7 @@ "type": "object" }, "PrivateServiceConnectConnectivity": { - "description": "Private Service Connect connectivity (https://cloud.google.com/vpc/docs/private-service-connect#benefits-services)", + "description": "[Private Service Connect connectivity](https://cloud.google.com/vpc/docs/private-service-connect#service-attachments)", "id": "PrivateServiceConnectConnectivity", "properties": { "serviceAttachment": { @@ -3717,7 +5127,12 @@ "RestartMigrationJobRequest": { "description": "Request message for 'RestartMigrationJob' request.", "id": "RestartMigrationJobRequest", - "properties": {}, + "properties": { + "skipValidation": { + "description": "Optional. Restart the migration job without running prior configuration verification. Defaults to `false`.", + "type": "boolean" + } + }, "type": "object" }, "ResumeMigrationJobRequest": { @@ -3756,23 +5171,35 @@ "properties": {}, "type": "object" }, + "RoundToScale": { + "description": "This allows the data to change scale, for example if the source is 2 digits after the decimal point, specify round to scale value = 2. If for example the value needs to be converted to an integer, use round to scale value = 0.", + "id": "RoundToScale", + "properties": { + "scale": { + "description": "Required. Scale value to be used", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "RulesFile": { - "description": "Details of a single rules file", + "description": "Details of a single rules file.", "id": "RulesFile", "properties": { "rulesContent": { - "description": "The text content of the rules that needs to be converted", + "description": "Required. The text content of the rules that needs to be converted.", "type": "string" }, "rulesSourceFilename": { - "description": "The filename of the rules that needs to be converted. This is used mainly so future logs of the import rules job will contain this detail and can therefore be searched by it later", + "description": "Required. The filename of the rules that needs to be converted. The filename is used mainly so that future logs of the import rules job contain it, and can therefore be searched by it.", "type": "string" } }, "type": "object" }, "SchemaEntity": { - "description": "Schema typically has no parent entity, but can have a parent entity DatabaseInstance (for database engines which supports it). For some database engines the term schema and user can be used interchangeably when they refer to a namespace or a collection of other database entities. Can store additional information which is schema specific.", + "description": "Schema typically has no parent entity, but can have a parent entity DatabaseInstance (for database engines which support it). For some database engines, the terms schema and user can be used interchangeably when they refer to a namespace or a collection of other database entities. Can store additional information which is schema specific.", "id": "SchemaEntity", "properties": { "customFeatures": { @@ -3780,7 +5207,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Custom engine specific features", + "description": "Custom engine specific features.", "type": "object" } }, @@ -3809,22 +5236,23 @@ "type": "boolean" }, "destinationConnectionProfile": { - "description": "Fully qualified (Uri) name of the destination connection profile.", + "description": "Optional. Fully qualified (Uri) name of the destination connection profile.", "type": "string" }, "sourceConnectionProfile": { - "description": "Fully qualified (Uri) name of the source connection profile.", + "description": "Optional. Fully qualified (Uri) name of the source connection profile.", "type": "string" } }, "type": "object" }, "SeedJobDetails": { - "description": "Details regarding a Seed background job", + "description": "Details regarding a Seed background job.", "id": "SeedJobDetails", "properties": { "connectionProfile": { - "description": "The connection profile which was used for the seed job", + "description": "Output only. The connection profile which was used for the seed job.", + "readOnly": true, "type": "string" } }, @@ -3835,7 +5263,7 @@ "id": "SequenceEntity", "properties": { "cache": { - "description": "Indicates number of entries to cache / precreate", + "description": "Indicates number of entries to cache / precreate.", "format": "int64", "type": "string" }, @@ -3844,30 +5272,30 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Custom engine specific features", + "description": "Custom engine specific features.", "type": "object" }, "cycle": { - "description": "Indicates whether the sequence value should cycle through", + "description": "Indicates whether the sequence value should cycle through.", "type": "boolean" }, "increment": { - "description": "Increment value for the sequence", + "description": "Increment value for the sequence.", "format": "int64", "type": "string" }, "maxValue": { - "description": "Maximum number for the sequence represented as bytes to accommodate large numbers", + "description": "Maximum number for the sequence represented as bytes to accommodate large. numbers", "format": "byte", "type": "string" }, "minValue": { - "description": "Minimum number for the sequence represented as bytes to accommodate large numbers", + "description": "Minimum number for the sequence represented as bytes to accommodate large. numbers", "format": "byte", "type": "string" }, "startValue": { - "description": "Start number for the sequence represented as bytes to accommodate large numbers", + "description": "Start number for the sequence represented as bytes to accommodate large. numbers", "format": "byte", "type": "string" } @@ -3890,6 +5318,200 @@ }, "type": "object" }, + "SetTablePrimaryKey": { + "description": "Options to configure rule type SetTablePrimaryKey. The rule is used to specify the columns and name to configure/alter the primary key of a table. The rule filter field can refer to one entity. The rule scope can be one of: Table.", + "id": "SetTablePrimaryKey", + "properties": { + "primaryKey": { + "description": "Optional. Name for the primary key", + "type": "string" + }, + "primaryKeyColumns": { + "description": "Required. List of column names for the primary key", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "SingleColumnChange": { + "description": "Options to configure rule type SingleColumnChange. The rule is used to change the properties of a column. The rule filter field can refer to one entity. The rule scope can be one of: Column. When using this rule, if a field is not specified than the destination column's configuration will be the same as the one in the source column..", + "id": "SingleColumnChange", + "properties": { + "array": { + "description": "Optional. Is the column of array type.", + "type": "boolean" + }, + "arrayLength": { + "description": "Optional. The length of the array, only relevant if the column type is an array.", + "format": "int32", + "type": "integer" + }, + "autoGenerated": { + "description": "Optional. Is the column auto-generated/identity.", + "type": "boolean" + }, + "charset": { + "description": "Optional. Charset override - instead of table level charset.", + "type": "string" + }, + "collation": { + "description": "Optional. Collation override - instead of table level collation.", + "type": "string" + }, + "comment": { + "description": "Optional. Comment associated with the column.", + "type": "string" + }, + "customFeatures": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Optional. Custom engine specific features.", + "type": "object" + }, + "dataType": { + "description": "Optional. Column data type name.", + "type": "string" + }, + "fractionalSecondsPrecision": { + "description": "Optional. Column fractional seconds precision - e.g. 2 as in timestamp (2) - when relevant.", + "format": "int32", + "type": "integer" + }, + "length": { + "description": "Optional. Column length - e.g. 50 as in varchar (50) - when relevant.", + "format": "int64", + "type": "string" + }, + "nullable": { + "description": "Optional. Is the column nullable.", + "type": "boolean" + }, + "precision": { + "description": "Optional. Column precision - e.g. 8 as in double (8,2) - when relevant.", + "format": "int32", + "type": "integer" + }, + "scale": { + "description": "Optional. Column scale - e.g. 2 as in double (8,2) - when relevant.", + "format": "int32", + "type": "integer" + }, + "setValues": { + "description": "Optional. Specifies the list of values allowed in the column.", + "items": { + "type": "string" + }, + "type": "array" + }, + "udt": { + "description": "Optional. Is the column a UDT (User-defined Type).", + "type": "boolean" + } + }, + "type": "object" + }, + "SingleEntityRename": { + "description": "Options to configure rule type SingleEntityRename. The rule is used to rename an entity. The rule filter field can refer to only one entity. The rule scope can be one of: Database, Schema, Table, Column, Constraint, Index, View, Function, Stored Procedure, Materialized View, Sequence, UDT, Synonym", + "id": "SingleEntityRename", + "properties": { + "newName": { + "description": "Required. The new name of the destination entity", + "type": "string" + } + }, + "type": "object" + }, + "SinglePackageChange": { + "description": "Options to configure rule type SinglePackageChange. The rule is used to alter the sql code for a package entities. The rule filter field can refer to one entity. The rule scope can be: Package", + "id": "SinglePackageChange", + "properties": { + "packageBody": { + "description": "Optional. Sql code for package body", + "type": "string" + }, + "packageDescription": { + "description": "Optional. Sql code for package description", + "type": "string" + } + }, + "type": "object" + }, + "SourceNumericFilter": { + "description": "Filter for fixed point number data types such as NUMERIC/NUMBER", + "id": "SourceNumericFilter", + "properties": { + "numericFilterOption": { + "description": "Required. Enum to set the option defining the datatypes numeric filter has to be applied to", + "enum": [ + "NUMERIC_FILTER_OPTION_UNSPECIFIED", + "NUMERIC_FILTER_OPTION_ALL", + "NUMERIC_FILTER_OPTION_LIMIT", + "NUMERIC_FILTER_OPTION_LIMITLESS" + ], + "enumDescriptions": [ + "Numeric filter option unspecified", + "Numeric filter option that matches all numeric columns.", + "Numeric filter option that matches columns having numeric datatypes with specified precision and scale within the limited range of filter.", + "Numeric filter option that matches only the numeric columns with no precision and scale specified." + ], + "type": "string" + }, + "sourceMaxPrecisionFilter": { + "description": "Optional. The filter will match columns with precision smaller than or equal to this number.", + "format": "int32", + "type": "integer" + }, + "sourceMaxScaleFilter": { + "description": "Optional. The filter will match columns with scale smaller than or equal to this number.", + "format": "int32", + "type": "integer" + }, + "sourceMinPrecisionFilter": { + "description": "Optional. The filter will match columns with precision greater than or equal to this number.", + "format": "int32", + "type": "integer" + }, + "sourceMinScaleFilter": { + "description": "Optional. The filter will match columns with scale greater than or equal to this number.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "SourceSqlChange": { + "description": "Options to configure rule type SourceSqlChange. The rule is used to alter the sql code for database entities. The rule filter field can refer to one entity. The rule scope can be: StoredProcedure, Function, Trigger, View", + "id": "SourceSqlChange", + "properties": { + "sqlCode": { + "description": "Required. Sql code for source (stored procedure, function, trigger or view)", + "type": "string" + } + }, + "type": "object" + }, + "SourceTextFilter": { + "description": "Filter for text-based data types like varchar.", + "id": "SourceTextFilter", + "properties": { + "sourceMaxLengthFilter": { + "description": "Optional. The filter will match columns with length smaller than or equal to this number.", + "format": "int64", + "type": "string" + }, + "sourceMinLengthFilter": { + "description": "Optional. The filter will match columns with length greater than or equal to this number.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "SqlAclEntry": { "description": "An entry for an Access Control list.", "id": "SqlAclEntry", @@ -3919,6 +5541,10 @@ "description": "IP Management configuration.", "id": "SqlIpConfig", "properties": { + "allocatedIpRange": { + "description": "Optional. The name of the allocated IP address range for the private IP Cloud SQL instance. This name refers to an already allocated IP range address. If set, the instance IP address will be created in the allocated range. Note that this IP address range can't be modified after the instance is created. If you change the VPC when configuring connectivity settings for the migration job, this field is not relevant.", + "type": "string" + }, "authorizedNetworks": { "description": "The list of external networks that are allowed to connect to the instance using the IP. See https://en.wikipedia.org/wiki/CIDR_notation#CIDR_notation, also known as 'slash' notation (e.g. `192.168.100.0/24`).", "items": { @@ -3989,11 +5615,16 @@ "StartMigrationJobRequest": { "description": "Request message for 'StartMigrationJob' request.", "id": "StartMigrationJobRequest", - "properties": {}, + "properties": { + "skipValidation": { + "description": "Optional. Start the migration job without running prior configuration verification. Defaults to `false`.", + "type": "boolean" + } + }, "type": "object" }, "StaticIpConnectivity": { - "description": "The source database will allow incoming connections from the destination database's public IP. You can retrieve the Cloud SQL instance's public IP from the Cloud SQL console or using Cloud SQL APIs. No additional configuration is required.", + "description": "The source database will allow incoming connections from the public IP of the destination database. You can retrieve the public IP of the Cloud SQL instance from the Cloud SQL console or using Cloud SQL APIs. No additional configuration is required.", "id": "StaticIpConnectivity", "properties": {}, "type": "object" @@ -4046,11 +5677,11 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Custom engine specific features", + "description": "Custom engine specific features.", "type": "object" }, "sqlCode": { - "description": "The SQL code which creates the stored procedure", + "description": "The SQL code which creates the stored procedure.", "type": "string" } }, @@ -4065,15 +5696,15 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Custom engine specific features", + "description": "Custom engine specific features.", "type": "object" }, "sourceEntity": { - "description": "The name of the entity for which the synonym is being created (the source)", + "description": "The name of the entity for which the synonym is being created (the source).", "type": "string" }, "sourceType": { - "description": "The type of the entity for which the synonym is being created (usually a table or a sequence)", + "description": "The type of the entity for which the synonym is being created (usually a table or a sequence).", "enum": [ "DATABASE_ENTITY_TYPE_UNSPECIFIED", "DATABASE_ENTITY_TYPE_SCHEMA", @@ -4088,23 +5719,27 @@ "DATABASE_ENTITY_TYPE_FUNCTION", "DATABASE_ENTITY_TYPE_SYNONYM", "DATABASE_ENTITY_TYPE_DATABASE_PACKAGE", - "DATABASE_ENTITY_TYPE_UDT" + "DATABASE_ENTITY_TYPE_UDT", + "DATABASE_ENTITY_TYPE_MATERIALIZED_VIEW", + "DATABASE_ENTITY_TYPE_DATABASE" ], "enumDescriptions": [ - "Unspecified database entity type", - "Schema", - "Table", - "Column", - "Constraint", - "Index", - "Trigger", - "View", - "Sequence", - "Stored Procedure", - "Function", - "Synonym", - "Package", - "UDT" + "Unspecified database entity type.", + "Schema.", + "Table.", + "Column.", + "Constraint.", + "Index.", + "Trigger.", + "View.", + "Sequence.", + "Stored Procedure.", + "Function.", + "Synonym.", + "Package.", + "UDT.", + "Materialized View.", + "Database." ], "type": "string" } @@ -4116,18 +5751,18 @@ "id": "TableEntity", "properties": { "columns": { - "description": "Table Columns.", + "description": "Table columns.", "items": { "$ref": "ColumnEntity" }, "type": "array" }, "comment": { - "description": "Comment associated with the table", + "description": "Comment associated with the table.", "type": "string" }, "constraints": { - "description": "Table Constraints.", + "description": "Table constraints.", "items": { "$ref": "ConstraintEntity" }, @@ -4138,11 +5773,11 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Custom engine specific features", + "description": "Custom engine specific features.", "type": "object" }, "indices": { - "description": "Table Indices.", + "description": "Table indices.", "items": { "$ref": "IndexEntity" }, @@ -4158,6 +5793,17 @@ }, "type": "object" }, + "TcpProxyScript": { + "description": "Response message for 'GenerateTcpProxyScript' request.", + "id": "TcpProxyScript", + "properties": { + "script": { + "description": "The TCP Proxy configuration script.", + "type": "string" + } + }, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", @@ -4195,23 +5841,23 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Custom engine specific features", + "description": "Custom engine specific features.", "type": "object" }, "name": { - "description": "The name of the trigger", + "description": "The name of the trigger.", "type": "string" }, "sqlCode": { - "description": "The SQL code which creates the trigger", + "description": "The SQL code which creates the trigger.", "type": "string" }, "triggerType": { - "description": "Indicates when the trigger fires, e.g. BEFORE STATEMENT, AFTER EACH ROW", + "description": "Indicates when the trigger fires, for example BEFORE STATEMENT, AFTER EACH ROW.", "type": "string" }, "triggeringEvents": { - "description": "The DML, DDL, or database events that fires the trigger, e.g. INSERT, UPDATE", + "description": "The DML, DDL, or database events that fire the trigger, for example INSERT, UPDATE.", "items": { "type": "string" }, @@ -4220,6 +5866,29 @@ }, "type": "object" }, + "UDTEntity": { + "description": "UDT's parent is a schema.", + "id": "UDTEntity", + "properties": { + "customFeatures": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Custom engine specific features.", + "type": "object" + }, + "udtBody": { + "description": "The SQL code which creates the udt body.", + "type": "string" + }, + "udtSqlCode": { + "description": "The SQL code which creates the udt.", + "type": "string" + } + }, + "type": "object" + }, "UserPassword": { "description": "The username/password for a database user. Used for specifying initial users at cluster creation time.", "id": "UserPassword", @@ -4240,10 +5909,99 @@ }, "type": "object" }, + "ValueListFilter": { + "description": "A list of values to filter by in ConditionalColumnSetValue", + "id": "ValueListFilter", + "properties": { + "ignoreCase": { + "description": "Required. Whether to ignore case when filtering by values. Defaults to false", + "type": "boolean" + }, + "valuePresentList": { + "description": "Required. Indicates whether the filter matches rows with values that are present in the list or those with values not present in it.", + "enum": [ + "VALUE_PRESENT_IN_LIST_UNSPECIFIED", + "VALUE_PRESENT_IN_LIST_IF_VALUE_LIST", + "VALUE_PRESENT_IN_LIST_IF_VALUE_NOT_LIST" + ], + "enumDescriptions": [ + "Value present in list unspecified", + "If the source value is in the supplied list at value_list", + "If the source value is not in the supplied list at value_list" + ], + "type": "string" + }, + "values": { + "description": "Required. The list to be used to filter by", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ValueTransformation": { + "description": "Description of data transformation during migration as part of the ConditionalColumnSetValue.", + "id": "ValueTransformation", + "properties": { + "applyHash": { + "$ref": "ApplyHash", + "description": "Optional. Applies a hash function on the data" + }, + "assignMaxValue": { + "$ref": "Empty", + "description": "Optional. Set to max_value - if integer or numeric, will use int.maxvalue, etc" + }, + "assignMinValue": { + "$ref": "Empty", + "description": "Optional. Set to min_value - if integer or numeric, will use int.minvalue, etc" + }, + "assignNull": { + "$ref": "Empty", + "description": "Optional. Set to null" + }, + "assignSpecificValue": { + "$ref": "AssignSpecificValue", + "description": "Optional. Set to a specific value (value is converted to fit the target data type)" + }, + "doubleComparison": { + "$ref": "DoubleComparisonFilter", + "description": "Optional. Filter on relation between source value and compare value of type double." + }, + "intComparison": { + "$ref": "IntComparisonFilter", + "description": "Optional. Filter on relation between source value and compare value of type integer." + }, + "isNull": { + "$ref": "Empty", + "description": "Optional. Value is null" + }, + "roundScale": { + "$ref": "RoundToScale", + "description": "Optional. Allows the data to change scale" + }, + "valueList": { + "$ref": "ValueListFilter", + "description": "Optional. Value is found in the specified list." + } + }, + "type": "object" + }, "VerifyMigrationJobRequest": { "description": "Request message for 'VerifyMigrationJob' request.", "id": "VerifyMigrationJobRequest", - "properties": {}, + "properties": { + "migrationJob": { + "$ref": "MigrationJob", + "description": "Optional. The changed migration job parameters to verify. It will not update the migration job." + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the changed fields to be verified. It will not update the migration job.", + "format": "google-fieldmask", + "type": "string" + } + }, "type": "object" }, "ViewEntity": { @@ -4251,7 +6009,7 @@ "id": "ViewEntity", "properties": { "constraints": { - "description": "View Constraints.", + "description": "View constraints.", "items": { "$ref": "ConstraintEntity" }, @@ -4262,7 +6020,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Custom engine specific features", + "description": "Custom engine specific features.", "type": "object" }, "sqlCode": { @@ -4303,7 +6061,7 @@ "type": "object" }, "VpcPeeringConfig": { - "description": "The VPC Peering configuration is used to create VPC peering with the consumer's VPC.", + "description": "The VPC peering configuration is used to create VPC peering with the consumer's VPC.", "id": "VpcPeeringConfig", "properties": { "subnet": { @@ -4311,7 +6069,7 @@ "type": "string" }, "vpcName": { - "description": "Required. Fully qualified name of the VPC DMS will peer to.", + "description": "Required. Fully qualified name of the VPC that Database Migration Service will peer to.", "type": "string" } }, diff --git a/etc/api/datamigration/v1beta1/datamigration-api.json b/etc/api/datamigration/v1beta1/datamigration-api.json index b1151f2a10..f29717d250 100644 --- a/etc/api/datamigration/v1beta1/datamigration-api.json +++ b/etc/api/datamigration/v1beta1/datamigration-api.json @@ -1002,7 +1002,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "datamigration.projects.locations.operations.list", @@ -1049,7 +1049,7 @@ } } }, - "revision": "20230118", + "revision": "20240221", "rootUrl": "https://datamigration.googleapis.com/", "schemas": { "AuditConfig": { @@ -1109,14 +1109,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1560,7 +1560,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1767,7 +1767,15 @@ "UNSUPPORTED_GTID_MODE", "UNSUPPORTED_DEFINER", "CANT_RESTART_RUNNING_MIGRATION", - "TABLES_WITH_LIMITED_SUPPORT" + "TABLES_WITH_LIMITED_SUPPORT", + "UNSUPPORTED_DATABASE_LOCALE", + "UNSUPPORTED_DATABASE_FDW_CONFIG", + "ERROR_RDBMS", + "SOURCE_SIZE_EXCEEDS_THRESHOLD", + "EXISTING_CONFLICTING_DATABASES", + "PARALLEL_IMPORT_INSUFFICIENT_PRIVILEGE", + "EXISTING_DATA", + "SOURCE_MAX_SUBSCRIPTIONS" ], "enumDescriptions": [ "An unknown error occurred", @@ -1779,7 +1787,15 @@ "The gtid_mode is not supported, applicable for MySQL.", "The definer is not supported.", "Migration is already running at the time of restart request.", - "The source has tables with limited support. E.g. PostgreSQL tables without primary keys." + "The source has tables with limited support. E.g. PostgreSQL tables without primary keys.", + "The source uses an unsupported locale.", + "The source uses an unsupported Foreign Data Wrapper configuration.", + "There was an underlying RDBMS error.", + "The source DB size in Bytes exceeds a certain threshold. The migration might require an increase of quota, or might not be supported.", + "The destination DB contains existing databases that are conflicting with those in the source DB.", + "Insufficient privilege to enable the parallelism configuration.", + "The destination instance contains existing data or user defined entities (for example databases, tables, or functions). You can only migrate to empty instances. Clear your destination instance and retry the migration job.", + "The migration job is configured to use max number of subscriptions to migrate data from the source to the destination." ], "readOnly": true, "type": "string" @@ -1863,14 +1879,14 @@ "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" } }, "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/).", + "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": { diff --git a/etc/api/datapipelines/v1/datapipelines-api.json b/etc/api/datapipelines/v1/datapipelines-api.json index 8f580ab123..dede78ba7b 100644 --- a/etc/api/datapipelines/v1/datapipelines-api.json +++ b/etc/api/datapipelines/v1/datapipelines-api.json @@ -369,7 +369,7 @@ } } }, - "revision": "20230115", + "revision": "20240225", "rootUrl": "https://datapipelines.googleapis.com/", "schemas": { "GoogleCloudDatapipelinesV1DataflowJobDetails": { diff --git a/etc/api/dataplex/v1/dataplex-api.json b/etc/api/dataplex/v1/dataplex-api.json index f82f24bc10..4382df6933 100644 --- a/etc/api/dataplex/v1/dataplex-api.json +++ b/etc/api/dataplex/v1/dataplex-api.json @@ -177,6 +177,97 @@ } }, "resources": { + "aspectTypes": { + "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}/aspectTypes/{aspectTypesId}:getIamPolicy", + "httpMethod": "GET", + "id": "dataplex.projects.locations.aspectTypes.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/[^/]+/aspectTypes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "GoogleIamV1Policy" + }, + "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}/aspectTypes/{aspectTypesId}:setIamPolicy", + "httpMethod": "POST", + "id": "dataplex.projects.locations.aspectTypes.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/[^/]+/aspectTypes/[^/]+$", + "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}/aspectTypes/{aspectTypesId}:testIamPermissions", + "httpMethod": "POST", + "id": "dataplex.projects.locations.aspectTypes.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/[^/]+/aspectTypes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "GoogleIamV1TestIamPermissionsRequest" + }, + "response": { + "$ref": "GoogleIamV1TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "dataAttributeBindings": { "methods": { "create": { @@ -468,6 +559,11 @@ "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" + }, + "validateOnly": { + "description": "Optional. Only validate the request, but do not perform mutations. The default is false.", + "location": "query", + "type": "boolean" } }, "path": "v1/{+parent}/dataScans", @@ -597,7 +693,7 @@ "type": "string" }, "pageSize": { - "description": "Optional. Maximum number of dataScans to return. The service may return fewer than this value. If unspecified, at most 10 scans will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "description": "Optional. Maximum number of dataScans to return. The service may return fewer than this value. If unspecified, at most 500 scans will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", "format": "int32", "location": "query", "type": "integer" @@ -644,6 +740,11 @@ "format": "google-fieldmask", "location": "query", "type": "string" + }, + "validateOnly": { + "description": "Optional. Only validate the request, but do not perform mutations. The default is false.", + "location": "query", + "type": "boolean" } }, "path": "v1/{+name}", @@ -755,7 +856,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the DataScanJob: projects/{project}/locations/{location_id}/dataScans/{data_scan_id}/dataScanJobs/{data_scan_job_id} where project refers to a project_id or project_number and location_id refers to a GCP region.", + "description": "Required. The resource name of the DataScanJob: projects/{project}/locations/{location_id}/dataScans/{data_scan_id}/jobs/{data_scan_job_id} where project refers to a project_id or project_number and location_id refers to a GCP region.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/dataScans/[^/]+/jobs/[^/]+$", "required": true, @@ -794,6 +895,11 @@ "parent" ], "parameters": { + "filter": { + "description": "Optional. An expression for filtering the results of the ListDataScanJobs request.If unspecified, all datascan jobs will be returned. Multiple filters can be applied (with AND, OR logical operators). Filters are case-sensitive.Allowed fields are: start_time end_timestart_time and end_time expect RFC-3339 formatted strings (e.g. 2018-10-08T18:30:00-07:00).For instance, 'start_time > 2018-10-08T00:00:00.123456789Z AND end_time < 2018-10-09T00:00:00.123456789Z' limits results to DataScanJobs between specified start and end times.", + "location": "query", + "type": "string" + }, "pageSize": { "description": "Optional. Maximum number of DataScanJobs to return. The service may return fewer than this value. If unspecified, at most 10 DataScanJobs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", "format": "int32", @@ -1365,6 +1471,279 @@ } } }, + "entryGroups": { + "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}/entryGroups/{entryGroupsId}:getIamPolicy", + "httpMethod": "GET", + "id": "dataplex.projects.locations.entryGroups.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/[^/]+/entryGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "GoogleIamV1Policy" + }, + "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}/entryGroups/{entryGroupsId}:setIamPolicy", + "httpMethod": "POST", + "id": "dataplex.projects.locations.entryGroups.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/[^/]+/entryGroups/[^/]+$", + "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}/entryGroups/{entryGroupsId}:testIamPermissions", + "httpMethod": "POST", + "id": "dataplex.projects.locations.entryGroups.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/[^/]+/entryGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "GoogleIamV1TestIamPermissionsRequest" + }, + "response": { + "$ref": "GoogleIamV1TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "entryTypes": { + "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}/entryTypes/{entryTypesId}:getIamPolicy", + "httpMethod": "GET", + "id": "dataplex.projects.locations.entryTypes.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/[^/]+/entryTypes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "GoogleIamV1Policy" + }, + "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}/entryTypes/{entryTypesId}:setIamPolicy", + "httpMethod": "POST", + "id": "dataplex.projects.locations.entryTypes.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/[^/]+/entryTypes/[^/]+$", + "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}/entryTypes/{entryTypesId}:testIamPermissions", + "httpMethod": "POST", + "id": "dataplex.projects.locations.entryTypes.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/[^/]+/entryTypes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "GoogleIamV1TestIamPermissionsRequest" + }, + "response": { + "$ref": "GoogleIamV1TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "governanceRules": { + "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}/governanceRules/{governanceRulesId}:getIamPolicy", + "httpMethod": "GET", + "id": "dataplex.projects.locations.governanceRules.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/[^/]+/governanceRules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "GoogleIamV1Policy" + }, + "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}/governanceRules/{governanceRulesId}:setIamPolicy", + "httpMethod": "POST", + "id": "dataplex.projects.locations.governanceRules.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/[^/]+/governanceRules/[^/]+$", + "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}/governanceRules/{governanceRulesId}:testIamPermissions", + "httpMethod": "POST", + "id": "dataplex.projects.locations.governanceRules.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/[^/]+/governanceRules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "GoogleIamV1TestIamPermissionsRequest" + }, + "response": { + "$ref": "GoogleIamV1TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "lakes": { "methods": { "create": { @@ -3758,6 +4137,7 @@ ], "parameters": { "etag": { + "deprecated": true, "description": "Optional. The etag associated with the partition.", "location": "query", "type": "string" @@ -3933,7 +4313,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as \"/v1/{name=users/*}/operations\" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "dataplex.projects.locations.operations.list", @@ -3980,7 +4360,7 @@ } } }, - "revision": "20230120", + "revision": "20240224", "rootUrl": "https://dataplex.googleapis.com/", "schemas": { "Empty": { @@ -4478,6 +4858,11 @@ "description": "Status of the resource referenced by an asset.", "id": "GoogleCloudDataplexV1AssetResourceStatus", "properties": { + "managedAccessIdentity": { + "description": "Output only. Service account associated with the BigQuery Connection.", + "readOnly": true, + "type": "string" + }, "message": { "description": "Additional information about the current state.", "type": "string" @@ -4659,7 +5044,7 @@ "type": "object" }, "GoogleCloudDataplexV1DataAccessSpec": { - "description": "DataAccessSpec holds the access control configuration to be enforced on data stored within resources (eg: rows, columns in BigQuery Tables). When associated with data,the data is only accessible to principals explicitly granted access through the DataAttribute. Principals with access to the containing resource are not implicitly granted access.", + "description": "DataAccessSpec holds the access control configuration to be enforced on data stored within resources (eg: rows, columns in BigQuery Tables). When associated with data, the data is only accessible to principals explicitly granted access through the DataAccessSpec. Principals with access to the containing resource are not implicitly granted access.", "id": "GoogleCloudDataplexV1DataAccessSpec", "properties": { "readers": { @@ -4780,14 +5165,14 @@ "type": "string" }, "paths": { - "description": "Optional. The list of paths for items within the associated resource (eg. columns within a table) along with attribute bindings.", + "description": "Optional. The list of paths for items within the associated resource (eg. columns and partitions within a table) along with attribute bindings.", "items": { "$ref": "GoogleCloudDataplexV1DataAttributeBindingPath" }, "type": "array" }, "resource": { - "description": "Optional. Immutable. The resource name of the resource that is binded to attributes. Presently, only entity resource is supported in the form: projects/{project}/locations/{location}/lakes/{lake}/zones/{zone}/entities/{entity_id} Must belong in the same project and region as the attribute binding, and there can only exist one active binding for a resource.", + "description": "Optional. Immutable. The resource name of the resource that is associated to attributes. Presently, only entity resource is supported in the form: projects/{project}/locations/{location}/lakes/{lake}/zones/{zone}/entities/{entity_id} Must belong in the same project and region as the attribute binding, and there can only exist one active binding for a resource.", "type": "string" }, "uid": { @@ -4805,7 +5190,7 @@ "type": "object" }, "GoogleCloudDataplexV1DataAttributeBindingPath": { - "description": "Represents a subresource of a given resource, and associated bindings with it.", + "description": "Represents a subresource of the given resource, and associated bindings with it. Currently supported subresources are column and partition schema fields within a table.", "id": "GoogleCloudDataplexV1DataAttributeBindingPath", "properties": { "attributes": { @@ -4816,7 +5201,7 @@ "type": "array" }, "name": { - "description": "Required. The name identifier of the path. Nested columns should be of the form: 'country.state.city'.", + "description": "Required. The name identifier of the path. Nested columns should be of the form: 'address.city'.", "type": "string" } }, @@ -4826,6 +5211,11 @@ "description": "DataProfileResult defines the output of DataProfileScan. Each field of the table will have field type specific profile result.", "id": "GoogleCloudDataplexV1DataProfileResult", "properties": { + "postScanActionsResult": { + "$ref": "GoogleCloudDataplexV1DataProfileResultPostScanActionsResult", + "description": "Output only. The result of post scan actions.", + "readOnly": true + }, "profile": { "$ref": "GoogleCloudDataplexV1DataProfileResultProfile", "description": "The profile information per field." @@ -4842,6 +5232,47 @@ }, "type": "object" }, + "GoogleCloudDataplexV1DataProfileResultPostScanActionsResult": { + "description": "The result of post scan actions of DataProfileScan job.", + "id": "GoogleCloudDataplexV1DataProfileResultPostScanActionsResult", + "properties": { + "bigqueryExportResult": { + "$ref": "GoogleCloudDataplexV1DataProfileResultPostScanActionsResultBigQueryExportResult", + "description": "Output only. The result of BigQuery export post scan action.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataProfileResultPostScanActionsResultBigQueryExportResult": { + "description": "The result of BigQuery export post scan action.", + "id": "GoogleCloudDataplexV1DataProfileResultPostScanActionsResultBigQueryExportResult", + "properties": { + "message": { + "description": "Output only. Additional information about the BigQuery exporting.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. Execution state for the BigQuery exporting.", + "enum": [ + "STATE_UNSPECIFIED", + "SUCCEEDED", + "FAILED", + "SKIPPED" + ], + "enumDescriptions": [ + "The exporting state is unspecified.", + "The exporting completed successfully.", + "The exporting is no longer running due to an error.", + "The exporting is skipped due to no valid scan result to export (usually caused by scan failed)." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1DataProfileResultProfile": { "description": "Contains name, type, mode and field type specific profile information.", "id": "GoogleCloudDataplexV1DataProfileResultProfile", @@ -4873,7 +5304,7 @@ "description": "Profile information for the corresponding field." }, "type": { - "description": "The field data type. Possible values include: STRING BYTE INT64 INT32 INT16 DOUBLE FLOAT DECIMAL BOOLEAN BINARY TIMESTAMP DATE TIME NULL RECORD", + "description": "The data type retrieved from the schema of the data source. For instance, for a BigQuery native table, it is the BigQuery Table Schema (https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#tablefieldschema). For a Dataplex Entity, it is the Entity Schema (https://cloud.google.com/dataplex/docs/reference/rpc/google.cloud.dataplex.v1#type_3).", "type": "string" } }, @@ -4906,7 +5337,7 @@ "description": "String type field information." }, "topNValues": { - "description": "The list of top N non-null values and number of times they occur in the scanned data. N is 10 or equal to the number of distinct values in the field, whichever is smaller. Not available for complex non-groupable field type RECORD and fields with REPEATABLE mode.", + "description": "The list of top N non-null values, frequency and ratio with which they occur in the scanned data. N is 10 or equal to the number of distinct values in the field, whichever is smaller. Not available for complex non-groupable field type RECORD and fields with REPEATABLE mode.", "items": { "$ref": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoTopNValue" }, @@ -4970,7 +5401,7 @@ "type": "string" }, "quartiles": { - "description": "A quartile divides the number of data points into four parts, or quarters, of more-or-less equal size. Three main quartiles used are: The first quartile (Q1) splits off the lowest 25% of data from the highest 75%. It is also known as the lower or 25th empirical quartile, as 25% of the data is below this point. The second quartile (Q2) is the median of a data set. So, 50% of the data lies below this point. The third quartile (Q3) splits off the highest 25% of data from the lowest 75%. It is known as the upper or 75th empirical quartile, as 75% of the data lies below this point. Here, the quartiles is provided as an ordered list of quartile values for the scanned data, occurring in order Q1, median, Q3.", + "description": "A quartile divides the number of data points into four parts, or quarters, of more-or-less equal size. Three main quartiles used are: The first quartile (Q1) splits off the lowest 25% of data from the highest 75%. It is also known as the lower or 25th empirical quartile, as 25% of the data is below this point. The second quartile (Q2) is the median of a data set. So, 50% of the data lies below this point. The third quartile (Q3) splits off the highest 25% of data from the lowest 75%. It is known as the upper or 75th empirical quartile, as 75% of the data lies below this point. Here, the quartiles is provided as an ordered list of approximate quartile values for the scanned data, occurring in order Q1, median, Q3.", "items": { "format": "int64", "type": "string" @@ -5016,6 +5447,11 @@ "format": "int64", "type": "string" }, + "ratio": { + "description": "Ratio of the corresponding value in the field against the total number of rows in the scanned data.", + "format": "double", + "type": "number" + }, "value": { "description": "String value of a top N non-null value.", "type": "string" @@ -5026,16 +5462,114 @@ "GoogleCloudDataplexV1DataProfileSpec": { "description": "DataProfileScan related setting.", "id": "GoogleCloudDataplexV1DataProfileSpec", - "properties": {}, + "properties": { + "excludeFields": { + "$ref": "GoogleCloudDataplexV1DataProfileSpecSelectedFields", + "description": "Optional. The fields to exclude from data profile.If specified, the fields will be excluded from data profile, regardless of include_fields value." + }, + "includeFields": { + "$ref": "GoogleCloudDataplexV1DataProfileSpecSelectedFields", + "description": "Optional. The fields to include in data profile.If not specified, all fields at the time of profile scan job execution are included, except for ones listed in exclude_fields." + }, + "postScanActions": { + "$ref": "GoogleCloudDataplexV1DataProfileSpecPostScanActions", + "description": "Optional. Actions to take upon job completion.." + }, + "rowFilter": { + "description": "Optional. A filter applied to all rows in a single DataScan job. The filter needs to be a valid SQL expression for a WHERE clause in BigQuery standard SQL syntax. Example: col1 >= 0 AND col2 < 10", + "type": "string" + }, + "samplingPercent": { + "description": "Optional. The percentage of the records to be selected from the dataset for DataScan. Value can range between 0.0 and 100.0 with up to 3 significant decimal digits. Sampling is not applied if sampling_percent is not specified, 0 or 100.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataProfileSpecPostScanActions": { + "description": "The configuration of post scan actions of DataProfileScan job.", + "id": "GoogleCloudDataplexV1DataProfileSpecPostScanActions", + "properties": { + "bigqueryExport": { + "$ref": "GoogleCloudDataplexV1DataProfileSpecPostScanActionsBigQueryExport", + "description": "Optional. If set, results will be exported to the provided BigQuery table." + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataProfileSpecPostScanActionsBigQueryExport": { + "description": "The configuration of BigQuery export post scan action.", + "id": "GoogleCloudDataplexV1DataProfileSpecPostScanActionsBigQueryExport", + "properties": { + "resultsTable": { + "description": "Optional. The BigQuery table to export DataProfileScan results to. Format: //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataProfileSpecSelectedFields": { + "description": "The specification for fields to include or exclude in data profile scan.", + "id": "GoogleCloudDataplexV1DataProfileSpecSelectedFields", + "properties": { + "fieldNames": { + "description": "Optional. Expected input is a list of fully qualified names of fields as in the schema.Only top-level field names for nested fields are supported. For instance, if 'x' is of nested field type, listing 'x' is supported but 'x.y.z' is not supported. Here 'y' and 'y.z' are nested fields of 'x'.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "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", + "properties": { + "name": { + "description": "The dimension name a rule belongs to. Supported dimensions are \"COMPLETENESS\", \"ACCURACY\", \"CONSISTENCY\", \"VALIDITY\", \"UNIQUENESS\", \"INTEGRITY\"", + "type": "string" + } + }, "type": "object" }, "GoogleCloudDataplexV1DataQualityDimensionResult": { "description": "DataQualityDimensionResult provides a more detailed, per-dimension view of the results.", "id": "GoogleCloudDataplexV1DataQualityDimensionResult", "properties": { + "dimension": { + "$ref": "GoogleCloudDataplexV1DataQualityDimension", + "description": "Output only. The dimension config specified in the DataQualitySpec, as is.", + "readOnly": true + }, "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" @@ -5044,8 +5578,16 @@ "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.", + "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": { "$ref": "GoogleCloudDataplexV1DataQualityDimensionResult" }, @@ -5055,6 +5597,11 @@ "description": "Overall data quality result -- true if all rules passed.", "type": "boolean" }, + "postScanActionsResult": { + "$ref": "GoogleCloudDataplexV1DataQualityResultPostScanActionsResult", + "description": "Output only. The result of post scan actions.", + "readOnly": true + }, "rowCount": { "description": "The count of rows processed.", "format": "int64", @@ -5070,6 +5617,53 @@ "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" + }, + "GoogleCloudDataplexV1DataQualityResultPostScanActionsResult": { + "description": "The result of post scan actions of DataQualityScan job.", + "id": "GoogleCloudDataplexV1DataQualityResultPostScanActionsResult", + "properties": { + "bigqueryExportResult": { + "$ref": "GoogleCloudDataplexV1DataQualityResultPostScanActionsResultBigQueryExportResult", + "description": "Output only. The result of BigQuery export post scan action.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualityResultPostScanActionsResultBigQueryExportResult": { + "description": "The result of BigQuery export post scan action.", + "id": "GoogleCloudDataplexV1DataQualityResultPostScanActionsResultBigQueryExportResult", + "properties": { + "message": { + "description": "Output only. Additional information about the BigQuery exporting.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. Execution state for the BigQuery exporting.", + "enum": [ + "STATE_UNSPECIFIED", + "SUCCEEDED", + "FAILED", + "SKIPPED" + ], + "enumDescriptions": [ + "The exporting state is unspecified.", + "The exporting completed successfully.", + "The exporting is no longer running due to an error.", + "The exporting is skipped due to no valid scan result to export (usually caused by scan failed)." + ], + "readOnly": true, + "type": "string" } }, "type": "object" @@ -5082,50 +5676,58 @@ "description": "Optional. The unnested column which this rule is evaluated against.", "type": "string" }, + "description": { + "description": "Optional. Description of the rule. The maximum length is 1,024 characters.", + "type": "string" + }, "dimension": { "description": "Required. The dimension a rule belongs to. Results are also aggregated at the dimension level. Supported dimensions are \"COMPLETENESS\", \"ACCURACY\", \"CONSISTENCY\", \"VALIDITY\", \"UNIQUENESS\", \"INTEGRITY\"", "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.Only applicable to ColumnMap 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": { + "description": "Optional. A mutable name for the rule. The name must contain only letters (a-z, A-Z), numbers (0-9), or hyphens (-). The maximum length is 63 characters. Must start with a letter. Must end with a number or a letter.", + "type": "string" + }, "nonNullExpectation": { "$ref": "GoogleCloudDataplexV1DataQualityRuleNonNullExpectation", - "description": "ColumnMap rule which evaluates whether each column value is null." + "description": "Row-level rule which evaluates whether each column value is null." }, "rangeExpectation": { "$ref": "GoogleCloudDataplexV1DataQualityRuleRangeExpectation", - "description": "ColumnMap rule which evaluates whether each column value lies between a specified range." + "description": "Row-level rule which evaluates whether each column value lies between a specified range." }, "regexExpectation": { "$ref": "GoogleCloudDataplexV1DataQualityRuleRegexExpectation", - "description": "ColumnMap rule which evaluates whether each column value matches a specified regex." + "description": "Row-level rule which evaluates whether each column value matches a specified regex." }, "rowConditionExpectation": { "$ref": "GoogleCloudDataplexV1DataQualityRuleRowConditionExpectation", - "description": "Table rule which evaluates whether each row passes the specified condition." + "description": "Row-level rule which evaluates whether each row in a table passes the specified condition." }, "setExpectation": { "$ref": "GoogleCloudDataplexV1DataQualityRuleSetExpectation", - "description": "ColumnMap rule which evaluates whether each column value is contained by a specified set." + "description": "Row-level rule which evaluates whether each column value is contained by a specified set." }, "statisticRangeExpectation": { "$ref": "GoogleCloudDataplexV1DataQualityRuleStatisticRangeExpectation", - "description": "ColumnAggregate rule which evaluates whether the column aggregate statistic lies between a specified range." + "description": "Aggregate rule which evaluates whether the column aggregate statistic lies between a specified range." }, "tableConditionExpectation": { "$ref": "GoogleCloudDataplexV1DataQualityRuleTableConditionExpectation", - "description": "Table rule which evaluates whether the provided expression is true." + "description": "Aggregate rule which evaluates whether the provided expression is true for a table." }, "threshold": { - "description": "Optional. The minimum ratio of passing_rows / total_rows required to pass this rule, with a range of 0.0, 1.0.0 indicates default value (i.e. 1.0).", + "description": "Optional. The minimum ratio of passing_rows / total_rows required to pass this rule, with a range of 0.0, 1.0.0 indicates default value (i.e. 1.0).This field is only valid for row-level type rules.", "format": "double", "type": "number" }, "uniquenessExpectation": { "$ref": "GoogleCloudDataplexV1DataQualityRuleUniquenessExpectation", - "description": "ColumnAggregate rule which evaluates whether the column has duplicates." + "description": "Row-level rule which evaluates whether each column value is unique." } }, "type": "object" @@ -5164,7 +5766,7 @@ "id": "GoogleCloudDataplexV1DataQualityRuleRegexExpectation", "properties": { "regex": { - "description": "A regular expression the column value is expected to match.", + "description": "Optional. A regular expression the column value is expected to match.", "type": "string" } }, @@ -5175,12 +5777,12 @@ "id": "GoogleCloudDataplexV1DataQualityRuleResult", "properties": { "evaluatedCount": { - "description": "The number of rows a rule was evaluated against. This field is only valid for ColumnMap type rules.Evaluated count can be configured to either include all rows (default) - with null rows automatically failing rule evaluation, or exclude null rows from the evaluated_count, by setting ignore_nulls = true.", + "description": "The number of rows a rule was evaluated against.This field is only valid for row-level type rules.Evaluated count can be configured to either include all rows (default) - with null rows automatically failing rule evaluation, or exclude null rows from the evaluated_count, by setting ignore_nulls = true.", "format": "int64", "type": "string" }, "failingRowsQuery": { - "description": "The query to find rows that did not pass this rule. Only applies to ColumnMap and RowCondition rules.", + "description": "The query to find rows that did not pass this rule.This field is only valid for row-level type rules.", "type": "string" }, "nullCount": { @@ -5189,7 +5791,7 @@ "type": "string" }, "passRatio": { - "description": "The ratio of passed_count / evaluated_count. This field is only valid for ColumnMap type rules.", + "description": "The ratio of passed_count / evaluated_count.This field is only valid for row-level type rules.", "format": "double", "type": "number" }, @@ -5198,7 +5800,7 @@ "type": "boolean" }, "passedCount": { - "description": "The number of rows which passed a rule evaluation. This field is only valid for ColumnMap type rules.", + "description": "The number of rows which passed a rule evaluation.This field is only valid for row-level type rules.", "format": "int64", "type": "string" }, @@ -5214,7 +5816,7 @@ "id": "GoogleCloudDataplexV1DataQualityRuleRowConditionExpectation", "properties": { "sqlExpression": { - "description": "The SQL expression.", + "description": "Optional. The SQL expression.", "type": "string" } }, @@ -5225,7 +5827,7 @@ "id": "GoogleCloudDataplexV1DataQualityRuleSetExpectation", "properties": { "values": { - "description": "Expected values for the column value.", + "description": "Optional. Expected values for the column value.", "items": { "type": "string" }, @@ -5239,14 +5841,15 @@ "id": "GoogleCloudDataplexV1DataQualityRuleStatisticRangeExpectation", "properties": { "maxValue": { - "description": "The maximum column statistic value allowed for a row to pass this validation.At least one of min_value and max_value need to be provided.", + "description": "Optional. The maximum column statistic value allowed for a row to pass this validation.At least one of min_value and max_value need to be provided.", "type": "string" }, "minValue": { - "description": "The minimum column statistic value allowed for a row to pass this validation.At least one of min_value and max_value need to be provided.", + "description": "Optional. The minimum column statistic value allowed for a row to pass this validation.At least one of min_value and max_value need to be provided.", "type": "string" }, "statistic": { + "description": "Optional. The aggregate metric to evaluate.", "enum": [ "STATISTIC_UNDEFINED", "MEAN", @@ -5262,11 +5865,11 @@ "type": "string" }, "strictMaxEnabled": { - "description": "Whether column statistic needs to be strictly lesser than ('<') the maximum, or if equality is allowed.Only relevant if a max_value has been defined. Default = false.", + "description": "Optional. Whether column statistic needs to be strictly lesser than ('<') the maximum, or if equality is allowed.Only relevant if a max_value has been defined. Default = false.", "type": "boolean" }, "strictMinEnabled": { - "description": "Whether column statistic needs to be strictly greater than ('>') the minimum, or if equality is allowed.Only relevant if a min_value has been defined. Default = false.", + "description": "Optional. Whether column statistic needs to be strictly greater than ('>') the minimum, or if equality is allowed.Only relevant if a min_value has been defined. Default = false.", "type": "boolean" } }, @@ -5277,7 +5880,7 @@ "id": "GoogleCloudDataplexV1DataQualityRuleTableConditionExpectation", "properties": { "sqlExpression": { - "description": "The SQL expression.", + "description": "Optional. The SQL expression.", "type": "string" } }, @@ -5289,16 +5892,152 @@ "properties": {}, "type": "object" }, + "GoogleCloudDataplexV1DataQualityScanRuleResult": { + "description": "Information about the result of a data quality rule for data quality scan. The monitored resource is 'DataScan'.", + "id": "GoogleCloudDataplexV1DataQualityScanRuleResult", + "properties": { + "column": { + "description": "The column which this rule is evaluated against.", + "type": "string" + }, + "dataSource": { + "description": "The data source of the data scan (e.g. BigQuery table name).", + "type": "string" + }, + "evaluatedRowCount": { + "description": "The number of rows evaluated against the data quality rule. This field is only valid for rules of PER_ROW evaluation type.", + "format": "int64", + "type": "string" + }, + "evalutionType": { + "description": "The evaluation type of the data quality rule.", + "enum": [ + "EVALUATION_TYPE_UNSPECIFIED", + "PER_ROW", + "AGGREGATE" + ], + "enumDescriptions": [ + "An unspecified evaluation type.", + "The rule evaluation is done at per row level.", + "The rule evaluation is done for an aggregate of rows." + ], + "type": "string" + }, + "jobId": { + "description": "Identifier of the specific data scan job this log entry is for.", + "type": "string" + }, + "nullRowCount": { + "description": "The number of rows with null values in the specified column.", + "format": "int64", + "type": "string" + }, + "passedRowCount": { + "description": "The number of rows which passed a rule evaluation. This field is only valid for rules of PER_ROW evaluation type.", + "format": "int64", + "type": "string" + }, + "result": { + "description": "The result of the data quality rule.", + "enum": [ + "RESULT_UNSPECIFIED", + "PASSED", + "FAILED" + ], + "enumDescriptions": [ + "An unspecified result.", + "The data quality rule passed.", + "The data quality rule failed." + ], + "type": "string" + }, + "ruleDimension": { + "description": "The dimension of the data quality rule.", + "type": "string" + }, + "ruleName": { + "description": "The name of the data quality rule.", + "type": "string" + }, + "ruleType": { + "description": "The type of the data quality rule.", + "enum": [ + "RULE_TYPE_UNSPECIFIED", + "NON_NULL_EXPECTATION", + "RANGE_EXPECTATION", + "REGEX_EXPECTATION", + "ROW_CONDITION_EXPECTATION", + "SET_EXPECTATION", + "STATISTIC_RANGE_EXPECTATION", + "TABLE_CONDITION_EXPECTATION", + "UNIQUENESS_EXPECTATION" + ], + "enumDescriptions": [ + "An unspecified rule type.", + "Please see https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#nonnullexpectation.", + "Please see https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#rangeexpectation.", + "Please see https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#regexexpectation.", + "Please see https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#rowconditionexpectation.", + "Please see https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#setexpectation.", + "Please see https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#statisticrangeexpectation.", + "Please see https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#tableconditionexpectation.", + "Please see https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#uniquenessexpectation." + ], + "type": "string" + }, + "thresholdPercent": { + "description": "The passing threshold (0.0, 100.0) of the data quality rule.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1DataQualitySpec": { "description": "DataQualityScan related setting.", "id": "GoogleCloudDataplexV1DataQualitySpec", "properties": { + "postScanActions": { + "$ref": "GoogleCloudDataplexV1DataQualitySpecPostScanActions", + "description": "Optional. Actions to take upon job completion." + }, + "rowFilter": { + "description": "Optional. A filter applied to all rows in a single DataScan job. The filter needs to be a valid SQL expression for a WHERE clause in BigQuery standard SQL syntax. Example: col1 >= 0 AND col2 < 10", + "type": "string" + }, "rules": { - "description": "The list of rules to evaluate against a data source. At least one rule is required.", + "description": "Required. The list of rules to evaluate against a data source. At least one rule is required.", "items": { "$ref": "GoogleCloudDataplexV1DataQualityRule" }, "type": "array" + }, + "samplingPercent": { + "description": "Optional. The percentage of the records to be selected from the dataset for DataScan. Value can range between 0.0 and 100.0 with up to 3 significant decimal digits. Sampling is not applied if sampling_percent is not specified, 0 or 100.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualitySpecPostScanActions": { + "description": "The configuration of post scan actions of DataQualityScan.", + "id": "GoogleCloudDataplexV1DataQualitySpecPostScanActions", + "properties": { + "bigqueryExport": { + "$ref": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsBigQueryExport", + "description": "Optional. If set, results will be exported to the provided BigQuery table." + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualitySpecPostScanActionsBigQueryExport": { + "description": "The configuration of BigQuery export post scan action.", + "id": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsBigQueryExport", + "properties": { + "resultsTable": { + "description": "Optional. The BigQuery table to export DataQualityScan results to. Format: //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID", + "type": "string" } }, "type": "object" @@ -5413,17 +6152,30 @@ "type": "object" }, "GoogleCloudDataplexV1DataScanEvent": { - "description": "These messages contain information about the execution of a datascan. The monitored resource is 'DataScan'", + "description": "These messages contain information about the execution of a datascan. The monitored resource is 'DataScan' Next ID: 13", "id": "GoogleCloudDataplexV1DataScanEvent", "properties": { + "createTime": { + "description": "The time when the data scan job was created.", + "format": "google-datetime", + "type": "string" + }, "dataProfile": { "$ref": "GoogleCloudDataplexV1DataScanEventDataProfileResult", "description": "Data profile result for data profile type data scan." }, + "dataProfileConfigs": { + "$ref": "GoogleCloudDataplexV1DataScanEventDataProfileAppliedConfigs", + "description": "Applied configs for data profile type data scan." + }, "dataQuality": { "$ref": "GoogleCloudDataplexV1DataScanEventDataQualityResult", "description": "Data quality result for data quality type data scan." }, + "dataQualityConfigs": { + "$ref": "GoogleCloudDataplexV1DataScanEventDataQualityAppliedConfigs", + "description": "Applied configs for data quality type data scan." + }, "dataSource": { "description": "The data source of the data scan", "type": "string" @@ -5441,6 +6193,10 @@ "description": "The message describing the data scan job event.", "type": "string" }, + "postScanActionsResult": { + "$ref": "GoogleCloudDataplexV1DataScanEventPostScanActionsResult", + "description": "The result of post scan actions." + }, "scope": { "description": "The scope of the data scan (e.g. full, incremental).", "enum": [ @@ -5471,14 +6227,16 @@ "STARTED", "SUCCEEDED", "FAILED", - "CANCELLED" + "CANCELLED", + "CREATED" ], "enumDescriptions": [ "Unspecified job state.", - "Data scan started.", - "Data scan successfully completed.", - "Data scan was unsuccessful.", - "Data scan was cancelled." + "Data scan job started.", + "Data scan job successfully completed.", + "Data scan job was unsuccessful.", + "Data scan job was cancelled.", + "Data scan job was createed." ], "type": "string" }, @@ -5513,6 +6271,26 @@ }, "type": "object" }, + "GoogleCloudDataplexV1DataScanEventDataProfileAppliedConfigs": { + "description": "Applied configs for data profile type data scan job.", + "id": "GoogleCloudDataplexV1DataScanEventDataProfileAppliedConfigs", + "properties": { + "columnFilterApplied": { + "description": "Boolean indicating whether a column filter was applied in the DataScan job.", + "type": "boolean" + }, + "rowFilterApplied": { + "description": "Boolean indicating whether a row filter was applied in the DataScan job.", + "type": "boolean" + }, + "samplingPercent": { + "description": "The percentage of the records selected from the dataset for DataScan. Value ranges between 0.0 and 100.0. Value 0.0 or 100.0 imply that sampling was not applied.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1DataScanEventDataProfileResult": { "description": "Data profile result for data scan job.", "id": "GoogleCloudDataplexV1DataScanEventDataProfileResult", @@ -5525,10 +6303,34 @@ }, "type": "object" }, + "GoogleCloudDataplexV1DataScanEventDataQualityAppliedConfigs": { + "description": "Applied configs for data quality type data scan job.", + "id": "GoogleCloudDataplexV1DataScanEventDataQualityAppliedConfigs", + "properties": { + "rowFilterApplied": { + "description": "Boolean indicating whether a row filter was applied in the DataScan job.", + "type": "boolean" + }, + "samplingPercent": { + "description": "The percentage of the records selected from the dataset for DataScan. Value ranges between 0.0 and 100.0. Value 0.0 or 100.0 imply that sampling was not applied.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1DataScanEventDataQualityResult": { "description": "Data quality result for data scan job.", "id": "GoogleCloudDataplexV1DataScanEventDataQualityResult", "properties": { + "columnScore": { + "additionalProperties": { + "format": "float", + "type": "number" + }, + "description": "The score of each column scanned in the data scan job. The key of the map is the name of the column. The value is the data quality score for the column.The score ranges between 0, 100 (up to two decimal points).", + "type": "object" + }, "dimensionPassed": { "additionalProperties": { "type": "boolean" @@ -5536,6 +6338,14 @@ "description": "The result of each dimension for data quality result. The key of the map is the name of the dimension. The value is the bool value depicting whether the dimension result was pass or not.", "type": "object" }, + "dimensionScore": { + "additionalProperties": { + "format": "float", + "type": "number" + }, + "description": "The score of each dimension for data quality result. The key of the map is the name of the dimension. The value is the data quality score for the dimension.The score ranges between 0, 100 (up to two decimal points).", + "type": "object" + }, "passed": { "description": "Whether the data quality result was pass or not.", "type": "boolean" @@ -5544,6 +6354,49 @@ "description": "The count of rows processed in the data scan job.", "format": "int64", "type": "string" + }, + "score": { + "description": "The table-level data quality score for the data scan job.The data quality score ranges between 0, 100 (up to two decimal points).", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataScanEventPostScanActionsResult": { + "description": "Post scan actions result for data scan job.", + "id": "GoogleCloudDataplexV1DataScanEventPostScanActionsResult", + "properties": { + "bigqueryExportResult": { + "$ref": "GoogleCloudDataplexV1DataScanEventPostScanActionsResultBigQueryExportResult", + "description": "The result of BigQuery export post scan action." + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataScanEventPostScanActionsResultBigQueryExportResult": { + "description": "The result of BigQuery export post scan action.", + "id": "GoogleCloudDataplexV1DataScanEventPostScanActionsResultBigQueryExportResult", + "properties": { + "message": { + "description": "Additional information about the BigQuery exporting.", + "type": "string" + }, + "state": { + "description": "Execution state for the BigQuery exporting.", + "enum": [ + "STATE_UNSPECIFIED", + "SUCCEEDED", + "FAILED", + "SKIPPED" + ], + "enumDescriptions": [ + "The exporting state is unspecified.", + "The exporting completed successfully.", + "The exporting is no longer running due to an error.", + "The exporting is skipped due to no valid scan result to export (usually caused by scan failed)." + ], + "type": "string" } }, "type": "object" @@ -5679,6 +6532,10 @@ "entity": { "description": "Immutable. The Dataplex entity that represents the data source (e.g. BigQuery table) for DataScan, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}.", "type": "string" + }, + "resource": { + "description": "Immutable. The service-qualified full resource name of the cloud resource for a DataScan job to scan against. The field could be: BigQuery table of type \"TABLE\" for DataProfileScan/DataQualityScan Format: //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID", + "type": "string" } }, "type": "object" @@ -5693,6 +6550,12 @@ "readOnly": true, "type": "integer" }, + "classCount": { + "description": "Output only. The number of classes in the DataTaxonomy.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, "createTime": { "description": "Output only. The time when the DataTaxonomy was created.", "format": "google-datetime", @@ -5944,7 +6807,7 @@ "description": "Required. Identifies the storage format of the entity data. It does not apply to entities with data stored in BigQuery." }, "id": { - "description": "Required. A user-provided entity ID. It is mutable, and will be used as the published table name. Specifying a new ID in an update entity request will override the existing value. The ID must contain only letters (a-z, A-Z), numbers (0-9), and underscores. Must begin with a letter and consist of 256 or fewer characters.", + "description": "Required. A user-provided entity ID. It is mutable, and will be used as the published table name. Specifying a new ID in an update entity request will override the existing value. The ID must contain only letters (a-z, A-Z), numbers (0-9), and underscores, and consist of 256 or fewer characters.", "type": "string" }, "name": { @@ -6114,6 +6977,7 @@ "type": "object" }, "GoogleCloudDataplexV1EnvironmentEndpoints": { + "description": "URI Endpoints to access sessions associated with the Environment.", "id": "GoogleCloudDataplexV1EnvironmentEndpoints", "properties": { "notebooks": { @@ -6199,6 +7063,7 @@ "type": "object" }, "GoogleCloudDataplexV1EnvironmentSessionSpec": { + "description": "Configuration for sessions created for this environment.", "id": "GoogleCloudDataplexV1EnvironmentSessionSpec", "properties": { "enableFastStartup": { @@ -6214,6 +7079,7 @@ "type": "object" }, "GoogleCloudDataplexV1EnvironmentSessionStatus": { + "description": "Status of sessions created for this environment.", "id": "GoogleCloudDataplexV1EnvironmentSessionStatus", "properties": { "active": { @@ -6224,6 +7090,88 @@ }, "type": "object" }, + "GoogleCloudDataplexV1GovernanceEvent": { + "description": "Payload associated with Governance related log events.", + "id": "GoogleCloudDataplexV1GovernanceEvent", + "properties": { + "entity": { + "$ref": "GoogleCloudDataplexV1GovernanceEventEntity", + "description": "Entity resource information if the log event is associated with a specific entity." + }, + "eventType": { + "description": "The type of the event.", + "enum": [ + "EVENT_TYPE_UNSPECIFIED", + "RESOURCE_IAM_POLICY_UPDATE", + "BIGQUERY_TABLE_CREATE", + "BIGQUERY_TABLE_UPDATE", + "BIGQUERY_TABLE_DELETE", + "BIGQUERY_CONNECTION_CREATE", + "BIGQUERY_CONNECTION_UPDATE", + "BIGQUERY_CONNECTION_DELETE", + "BIGQUERY_TAXONOMY_CREATE", + "BIGQUERY_POLICY_TAG_CREATE", + "BIGQUERY_POLICY_TAG_DELETE", + "BIGQUERY_POLICY_TAG_SET_IAM_POLICY", + "ACCESS_POLICY_UPDATE", + "GOVERNANCE_RULE_MATCHED_RESOURCES", + "GOVERNANCE_RULE_SEARCH_LIMIT_EXCEEDS", + "GOVERNANCE_RULE_ERRORS", + "GOVERNANCE_RULE_PROCESSING" + ], + "enumDescriptions": [ + "An unspecified event type.", + "Resource IAM policy update event.", + "BigQuery table create event.", + "BigQuery table update event.", + "BigQuery table delete event.", + "BigQuery connection create event.", + "BigQuery connection update event.", + "BigQuery connection delete event.", + "BigQuery taxonomy created.", + "BigQuery policy tag created.", + "BigQuery policy tag deleted.", + "BigQuery set iam policy for policy tag.", + "Access policy update event.", + "Number of resources matched with particular Query.", + "Rule processing exceeds the allowed limit.", + "Rule processing errors.", + "Governance rule processing Event." + ], + "type": "string" + }, + "message": { + "description": "The log message.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1GovernanceEventEntity": { + "description": "Information about Entity resource that the log event is associated with.", + "id": "GoogleCloudDataplexV1GovernanceEventEntity", + "properties": { + "entity": { + "description": "The Entity resource the log event is associated with. Format: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}", + "type": "string" + }, + "entityType": { + "description": "Type of entity.", + "enum": [ + "ENTITY_TYPE_UNSPECIFIED", + "TABLE", + "FILESET" + ], + "enumDescriptions": [ + "An unspecified Entity type.", + "Table entity type.", + "Fileset entity type." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1Job": { "description": "A job represents an instance of a task.", "id": "GoogleCloudDataplexV1Job", @@ -6234,6 +7182,19 @@ "readOnly": true, "type": "string" }, + "executionSpec": { + "$ref": "GoogleCloudDataplexV1TaskExecutionSpec", + "description": "Output only. Spec related to how a task is executed.", + "readOnly": true + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Output only. User-defined labels for the task.", + "readOnly": true, + "type": "object" + }, "message": { "description": "Output only. Additional information about the current state.", "readOnly": true, @@ -6297,6 +7258,21 @@ "readOnly": true, "type": "string" }, + "trigger": { + "description": "Output only. Job execution trigger.", + "enum": [ + "TRIGGER_UNSPECIFIED", + "TASK_CONFIG", + "RUN_REQUEST" + ], + "enumDescriptions": [ + "The trigger is unspecified.", + "The job was triggered by Dataplex based on trigger spec from task definition.", + "The job was triggered by the explicit call of Task API." + ], + "readOnly": true, + "type": "string" + }, "uid": { "description": "Output only. System generated globally unique ID for the job.", "readOnly": true, @@ -6314,6 +7290,20 @@ "format": "google-datetime", "type": "string" }, + "executionTrigger": { + "description": "Job execution trigger.", + "enum": [ + "EXECUTION_TRIGGER_UNSPECIFIED", + "TASK_CONFIG", + "RUN_REQUEST" + ], + "enumDescriptions": [ + "The job execution trigger is unspecified.", + "The job was triggered by Dataplex based on trigger spec from task definition.", + "The job was triggered by the explicit call of Task API." + ], + "type": "string" + }, "jobId": { "description": "The unique id identifying the job.", "type": "string" @@ -6893,6 +7883,7 @@ "id": "GoogleCloudDataplexV1Partition", "properties": { "etag": { + "deprecated": true, "description": "Optional. The etag for this partition.", "type": "string" }, @@ -6962,7 +7953,22 @@ }, "GoogleCloudDataplexV1RunTaskRequest": { "id": "GoogleCloudDataplexV1RunTaskRequest", - "properties": {}, + "properties": { + "args": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Execution spec arguments. If the map is left empty, the task will run with existing execution spec args from task definition. If the map contains an entry with a new key, the same will be added to existing set of args. If the map contains an entry with an existing arg key in task definition, the task will run with new arg value for that entry. Clearing an existing arg will require arg value to be explicitly set to a hyphen \"-\". The arg value cannot be empty.", + "type": "object" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. User-defined labels for the task. If the map is left empty, the task will run with existing labels from task definition. If the map contains an entry with a new key, the same will be added to existing set of labels. If the map contains an entry with an existing label key in task definition, the task will run with new label value for that entry. Clearing an existing label will require label value to be explicitly set to a hyphen \"-\". The label value cannot be empty.", + "type": "object" + } + }, "type": "object" }, "GoogleCloudDataplexV1RunTaskResponse": { @@ -7187,6 +8193,7 @@ "type": "string" }, "state": { + "description": "Output only. State of Session", "enum": [ "STATE_UNSPECIFIED", "ACTIVE", @@ -8024,7 +9031,7 @@ "type": "object" }, "GoogleCloudLocationLocation": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "GoogleCloudLocationLocation", "properties": { "displayName": { @@ -8114,14 +9121,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. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com.", + "description": "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" } }, @@ -8255,7 +9262,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/etc/api/dataproc/v1/dataproc-api.json b/etc/api/dataproc/v1/dataproc-api.json index c6c91d2759..0ac1f250f2 100644 --- a/etc/api/dataproc/v1/dataproc-api.json +++ b/etc/api/dataproc/v1/dataproc-api.json @@ -15,6 +15,13 @@ "description": "Manages Hadoop-based clusters and jobs on Google Cloud Platform.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/dataproc/", + "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://dataproc.me-central2.rep.googleapis.com/", + "location": "me-central2" + } + ], "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -380,7 +387,7 @@ ] }, "delete": { - "description": "Deletes the batch workload resource. If the batch is not in terminal state, the delete fails and the response returns FAILED_PRECONDITION.", + "description": "Deletes the batch workload resource. If the batch is not in a CANCELLED, SUCCEEDED or FAILED State, the delete operation fails and the response returns FAILED_PRECONDITION.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/batches/{batchesId}", "httpMethod": "DELETE", "id": "dataproc.projects.locations.batches.delete", @@ -438,6 +445,16 @@ "parent" ], "parameters": { + "filter": { + "description": "Optional. A filter for the batches to return in the response.A filter is a logical expression constraining the values of various fields in each batch resource. Filters are case sensitive, and may contain multiple clauses combined with logical operators (AND/OR). Supported fields are batch_id, batch_uuid, state, create_time, and labels.e.g. state = RUNNING and create_time < \"2023-01-01T00:00:00Z\" filters for batches in state RUNNING that were created before 2023-01-01. state = RUNNING and labels.environment=production filters for batches in state in a RUNNING state that have a production environment label.See https://google.aip.dev/assets/misc/ebnf-filtering.txt for a detailed description of the filter syntax and a list of supported comparisons.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Field(s) on which to sort the list of batches.Currently the only supported sort orders are unspecified (empty) and create_time desc to sort by most recently created batches first.See https://google.aip.dev/132#ordering for more details.", + "location": "query", + "type": "string" + }, "pageSize": { "description": "Optional. The maximum number of batches to return in each response. The service may return fewer than this value. The default page size is 20; the maximum page size is 1000.", "format": "int32", @@ -545,7 +562,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as \"/v1/{name=users/*}/operations\" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "dataproc.projects.locations.operations.list", @@ -587,6 +604,323 @@ } } }, + "sessionTemplates": { + "methods": { + "create": { + "description": "Create a session template synchronously.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sessionTemplates", + "httpMethod": "POST", + "id": "dataproc.projects.locations.sessionTemplates.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource where this session template will be created.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/sessionTemplates", + "request": { + "$ref": "SessionTemplate" + }, + "response": { + "$ref": "SessionTemplate" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a session template.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sessionTemplates/{sessionTemplatesId}", + "httpMethod": "DELETE", + "id": "dataproc.projects.locations.sessionTemplates.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the session template resource to delete.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/sessionTemplates/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets the resource representation for a session template.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sessionTemplates/{sessionTemplatesId}", + "httpMethod": "GET", + "id": "dataproc.projects.locations.sessionTemplates.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the session template to retrieve.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/sessionTemplates/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "SessionTemplate" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists session templates.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sessionTemplates", + "httpMethod": "GET", + "id": "dataproc.projects.locations.sessionTemplates.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. A filter for the session templates to return in the response. Filters are case sensitive and have the following syntax:field = value AND field = value ...", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of sessions to return in each response. The service may return fewer than this value.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token received from a previous ListSessions call. Provide this token to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent that owns this collection of session templates.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/sessionTemplates", + "response": { + "$ref": "ListSessionTemplatesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the session template synchronously.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sessionTemplates/{sessionTemplatesId}", + "httpMethod": "PATCH", + "id": "dataproc.projects.locations.sessionTemplates.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the session template.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/sessionTemplates/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "SessionTemplate" + }, + "response": { + "$ref": "SessionTemplate" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "sessions": { + "methods": { + "create": { + "description": "Create an interactive session asynchronously.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sessions", + "httpMethod": "POST", + "id": "dataproc.projects.locations.sessions.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource where this session will be created.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. A unique ID used to identify the request. If the service receives two CreateSessionRequests (https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.CreateSessionRequest)s with the same ID, the second request is ignored, and the first Session is created and stored in the backend.Recommendation: Set this value to a UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier).The value must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", + "location": "query", + "type": "string" + }, + "sessionId": { + "description": "Required. The ID to use for the session, which becomes the final component of the session's resource name.This value must be 4-63 characters. Valid characters are /a-z-/.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/sessions", + "request": { + "$ref": "Session" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes the interactive session resource. If the session is not in terminal state, it is terminated, and then deleted.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sessions/{sessionsId}", + "httpMethod": "DELETE", + "id": "dataproc.projects.locations.sessions.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the session resource to delete.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/sessions/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. A unique ID used to identify the request. If the service receives two DeleteSessionRequest (https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.DeleteSessionRequest)s with the same ID, the second request is ignored.Recommendation: Set this value to a UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier).The value must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets the resource representation for an interactive session.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sessions/{sessionsId}", + "httpMethod": "GET", + "id": "dataproc.projects.locations.sessions.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the session to retrieve.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/sessions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Session" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists interactive sessions.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sessions", + "httpMethod": "GET", + "id": "dataproc.projects.locations.sessions.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. A filter for the sessions to return in the response.A filter is a logical expression constraining the values of various fields in each session resource. Filters are case sensitive, and may contain multiple clauses combined with logical operators (AND, OR). Supported fields are session_id, session_uuid, state, create_time, and labels.Example: state = ACTIVE and create_time < \"2023-01-01T00:00:00Z\" is a filter for sessions in an ACTIVE state that were created before 2023-01-01. state = ACTIVE and labels.environment=production is a filter for sessions in an ACTIVE state that have a production environment label.See https://google.aip.dev/assets/misc/ebnf-filtering.txt for a detailed description of the filter syntax and a list of supported comparators.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of sessions to return in each response. The service may return fewer than this value.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token received from a previous ListSessions call. Provide this token to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent, which owns this collection of sessions.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/sessions", + "response": { + "$ref": "ListSessionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "terminate": { + "description": "Terminates the interactive session.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sessions/{sessionsId}:terminate", + "httpMethod": "POST", + "id": "dataproc.projects.locations.sessions.terminate", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the session resource to terminate.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/sessions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:terminate", + "request": { + "$ref": "TerminateSessionRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "workflowTemplates": { "methods": { "create": { @@ -1202,6 +1536,12 @@ "location": "query", "type": "string" }, + "gracefulTerminationTimeout": { + "description": "Optional. The graceful termination timeout for the deletion of the cluster. Indicate the time the request will wait to complete the running jobs on the cluster before its forceful deletion. Default value is 0 indicating that the user has not enabled the graceful termination. Value can be between 60 second and 6 Hours, in case the graceful termination is enabled. (There is no separate flag to check the enabling or disabling of graceful termination, it can be checked by the values in the field).", + "format": "google-duration", + "location": "query", + "type": "string" + }, "projectId": { "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to.", "location": "path", @@ -1390,7 +1730,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" }, @@ -1688,8 +2028,13 @@ "required": true, "type": "string" }, + "parentOperationId": { + "description": "Optional. operation id of the parent operation sending the create request", + "location": "query", + "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" } @@ -1730,6 +2075,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", @@ -2255,7 +2628,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as \"/v1/{name=users/*}/operations\" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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}/regions/{regionsId}/operations", "httpMethod": "GET", "id": "dataproc.projects.regions.operations.list", @@ -2661,7 +3034,7 @@ } } }, - "revision": "20230103", + "revision": "20240222", "rootUrl": "https://dataproc.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -2674,12 +3047,75 @@ "type": "integer" }, "acceleratorTypeUri": { - "description": "Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.", + "description": "Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/v1/acceleratorTypes).Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/[zone]/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.", "type": "string" } }, "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", @@ -2982,14 +3418,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. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com.", + "description": "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" } }, @@ -3049,7 +3485,7 @@ }, "virtualClusterConfig": { "$ref": "VirtualClusterConfig", - "description": "Optional. The virtual cluster config is used when creating a Dataproc cluster that does not directly control the underlying compute resources, for example, when creating a Dataproc-on-GKE cluster (https://cloud.google.com/dataproc/docs/guides/dpgke/dataproc-gke). Dataproc may set default values, and values may change when clusters are updated. Exactly one of config or virtual_cluster_config must be specified." + "description": "Optional. The virtual cluster config is used when creating a Dataproc cluster that does not directly control the underlying compute resources, for example, when creating a Dataproc-on-GKE cluster (https://cloud.google.com/dataproc/docs/guides/dpgke/dataproc-gke-overview). Dataproc may set default values, and values may change when clusters are updated. Exactly one of config or virtual_cluster_config must be specified." } }, "type": "object" @@ -3091,6 +3527,7 @@ }, "gkeClusterConfig": { "$ref": "GkeClusterConfig", + "deprecated": true, "description": "Optional. BETA. The Kubernetes Engine config for Dataproc clusters deployed to The Kubernetes Engine config for Dataproc clusters deployed to Kubernetes. These config settings are mutually exclusive with Compute Engine-based options, such as gce_cluster_config, master_config, worker_config, secondary_worker_config, and autoscaling_config." }, "initializationActions": { @@ -3394,7 +3831,54 @@ "DiagnoseClusterRequest": { "description": "A request to collect cluster diagnostic information.", "id": "DiagnoseClusterRequest", - "properties": {}, + "properties": { + "diagnosisInterval": { + "$ref": "Interval", + "description": "Optional. Time interval in which diagnosis should be carried out on the cluster." + }, + "job": { + "deprecated": true, + "description": "Optional. DEPRECATED Specifies the job on which diagnosis is to be performed. Format: projects/{project}/regions/{region}/jobs/{job}", + "type": "string" + }, + "jobs": { + "description": "Optional. Specifies a list of jobs on which diagnosis is to be performed. Format: projects/{project}/regions/{region}/jobs/{job}", + "items": { + "type": "string" + }, + "type": "array" + }, + "tarballAccess": { + "description": "Optional. (Optional) The access type to the diagnostic tarball. If not specified, falls back to default access of the bucket", + "enum": [ + "TARBALL_ACCESS_UNSPECIFIED", + "GOOGLE_CLOUD_SUPPORT", + "GOOGLE_DATAPROC_DIAGNOSE" + ], + "enumDescriptions": [ + "Tarball Access unspecified. Falls back to default access of the bucket", + "Google Cloud Support group has read access to the diagnostic tarball", + "Google Cloud Dataproc Diagnose service account has read access to the diagnostic tarball" + ], + "type": "string" + }, + "tarballGcsDir": { + "description": "Optional. (Optional) The output Cloud Storage directory for the diagnostic tarball. If not specified, a task-specific directory in the cluster's staging bucket will be used.", + "type": "string" + }, + "yarnApplicationId": { + "deprecated": true, + "description": "Optional. DEPRECATED Specifies the yarn application on which diagnosis is to be performed.", + "type": "string" + }, + "yarnApplicationIds": { + "description": "Optional. Specifies a list of yarn applications on which diagnosis is to be performed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, "type": "object" }, "DiagnoseClusterResults": { @@ -3462,7 +3946,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 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" } }, @@ -3507,7 +3995,7 @@ "id": "ExecutionConfig", "properties": { "idleTtl": { - "description": "Optional. The duration to keep the session alive while it's idling. Passing this threshold will cause the session to be terminated. Minimum value is 10 minutes; maximum value is 14 days (see JSON representation of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)). Defaults to 4 hours if not set. If both ttl and idle_ttl are specified, the conditions are treated as and OR: the workload will be terminated when it has been idle for idle_ttl or when the ttl has passed, whichever comes first.", + "description": "Optional. Applies to sessions only. The duration to keep the session alive while it's idling. Exceeding this threshold causes the session to terminate. This field cannot be set on a batch workload. Minimum value is 10 minutes; maximum value is 14 days (see JSON representation of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)). Defaults to 1 hour if not set. If both ttl and idle_ttl are specified for an interactive session, the conditions are treated as OR conditions: the workload will be terminated when it has been idle for idle_ttl or when ttl has been exceeded, whichever occurs first.", "format": "google-duration", "type": "string" }, @@ -3530,9 +4018,18 @@ "description": "Optional. Service account that used to execute workload.", "type": "string" }, + "stagingBucket": { + "description": "Optional. A Cloud Storage bucket used to stage workload dependencies, config files, and store workload output and other ephemeral data, such as Spark history files. If you do not specify a staging bucket, Cloud Dataproc will determine a Cloud Storage location according to the region where your workload is running, and then create and manage project-level, per-location staging and temporary buckets. This field requires a Cloud Storage bucket name, not a gs://... URI to a Cloud Storage bucket.", + "type": "string" + }, "subnetworkUri": { "description": "Optional. Subnetwork URI to connect workload to.", "type": "string" + }, + "ttl": { + "description": "Optional. The duration after which the workload will be terminated, specified as the JSON representation for Duration (https://protobuf.dev/programming-guides/proto3/#json). When the workload exceeds this duration, it will be unconditionally terminated without waiting for ongoing work to finish. If ttl is not specified for a batch workload, the workload will be allowed to run until it exits naturally (or run forever without exiting). If ttl is not specified for an interactive session, it defaults to 24 hours. If ttl is not specified for a batch that uses 2.1+ runtime version, it defaults to 4 hours. Minimum value is 10 minutes; maximum value is 14 days. If both ttl and idle_ttl are specified (for an interactive session), the conditions are treated as OR conditions: the workload will be terminated when it has been idle for idle_ttl or when ttl has been exceeded, whichever occurs first.", + "format": "google-duration", + "type": "string" } }, "type": "object" @@ -3560,6 +4057,50 @@ }, "type": "object" }, + "FlinkJob": { + "description": "A Dataproc job for running Apache Flink applications on YARN.", + "id": "FlinkJob", + "properties": { + "args": { + "description": "Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision might occur that causes an incorrect job submission.", + "items": { + "type": "string" + }, + "type": "array" + }, + "jarFileUris": { + "description": "Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Flink driver and tasks.", + "items": { + "type": "string" + }, + "type": "array" + }, + "loggingConfig": { + "$ref": "LoggingConfig", + "description": "Optional. The runtime log config for job execution." + }, + "mainClass": { + "description": "The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jarFileUris.", + "type": "string" + }, + "mainJarFileUri": { + "description": "The HCFS URI of the jar file that contains the main class.", + "type": "string" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A mapping of property names to values, used to configure Flink. Properties that conflict with values set by the Dataproc API might beoverwritten. Can include properties set in/etc/flink/conf/flink-defaults.conf and classes in user code.", + "type": "object" + }, + "savepointUri": { + "description": "Optional. HCFS URI of the savepoint, which contains the last saved progress for starting the current job.", + "type": "string" + } + }, + "type": "object" + }, "GceClusterConfig": { "description": "Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster.", "id": "GceClusterConfig", @@ -3576,11 +4117,11 @@ "additionalProperties": { "type": "string" }, - "description": "The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).", + "description": "Optional. The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).", "type": "object" }, "networkUri": { - "description": "Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the \"default\" network of the project is used, if it exists. Cannot be a \"Custom Subnet Network\" (see Using Subnetworks (https://cloud.google.com/compute/docs/subnetworks) for more information).A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default projects/[project_id]/regions/global/default default", + "description": "Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the \"default\" network of the project is used, if it exists. Cannot be a \"Custom Subnet Network\" (see Using Subnetworks (https://cloud.google.com/compute/docs/subnetworks) for more information).A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/global/networks/default projects/[project_id]/global/networks/default default", "type": "string" }, "nodeGroupAffinity": { @@ -3623,7 +4164,7 @@ "description": "Optional. Shielded Instance Config for clusters using Compute Engine Shielded VMs (https://cloud.google.com/security/shielded-cloud/shielded-vm)." }, "subnetworkUri": { - "description": "Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/subnetworks/sub0 projects/[project_id]/regions/us-east1/subnetworks/sub0 sub0", + "description": "Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/[region]/subnetworks/sub0 projects/[project_id]/regions/[region]/subnetworks/sub0 sub0", "type": "string" }, "tags": { @@ -3634,7 +4175,7 @@ "type": "array" }, "zoneUri": { - "description": "Optional. The zone where the Compute Engine cluster will be located. On a create request, it is required in the \"global\" region. If omitted in a non-global Dataproc region, the service will pick a zone in the corresponding Compute Engine region. On a get request, zone will always be present.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone] projects/[project_id]/zones/[zone] us-central1-f", + "description": "Optional. The Compute Engine zone where the Dataproc cluster will be located. If omitted, the service will pick a zone in the cluster's Compute Engine region. On a get request, zone will always be present.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone] projects/[project_id]/zones/[zone] [zone]", "type": "string" } }, @@ -3673,6 +4214,7 @@ }, "namespacedGkeDeploymentTarget": { "$ref": "NamespacedGkeDeploymentTarget", + "deprecated": true, "description": "Optional. Deprecated. Use gkeClusterTarget. Used only for the deprecated beta. A target for the deployment." }, "nodePoolTarget": { @@ -3697,7 +4239,7 @@ "type": "array" }, "bootDiskKmsKey": { - "description": "Optional. The Customer Managed Encryption Key (CMEK) (https://cloud.google.com/kubernetes-engine/docs/how-to/using-cmek) used to encrypt the boot disk attached to each node in the node pool. Specify the key using the following format: projects/KEY_PROJECT_ID/locations/LOCATION /keyRings/RING_NAME/cryptoKeys/KEY_NAME.", + "description": "Optional. The Customer Managed Encryption Key (CMEK) (https://cloud.google.com/kubernetes-engine/docs/how-to/using-cmek) used to encrypt the boot disk attached to each node in the node pool. Specify the key using the following format: projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}", "type": "string" }, "localSsdCount": { @@ -3819,6 +4361,17 @@ }, "type": "object" }, + "GoogleCloudDataprocV1WorkflowTemplateEncryptionConfig": { + "description": "Encryption settings for encrypting workflow template job arguments.", + "id": "GoogleCloudDataprocV1WorkflowTemplateEncryptionConfig", + "properties": { + "kmsKey": { + "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" + } + }, + "type": "object" + }, "HadoopJob": { "description": "A Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html).", "id": "HadoopJob", @@ -3831,7 +4384,7 @@ "type": "array" }, "args": { - "description": "Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.", + "description": "Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision might occur that causes an incorrect job submission.", "items": { "type": "string" }, @@ -3867,7 +4420,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.", + "description": "Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Dataproc API might be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.", "type": "object" } }, @@ -3892,7 +4445,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.", + "description": "Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Dataproc API might be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.", "type": "object" }, "queryFileUri": { @@ -3942,6 +4495,28 @@ }, "type": "object" }, + "InstanceFlexibilityPolicy": { + "description": "Instance flexibility Policy allowing a mixture of VM shapes and provisioning models.", + "id": "InstanceFlexibilityPolicy", + "properties": { + "instanceSelectionList": { + "description": "Optional. List of instance selection options that the group will use when creating new VMs.", + "items": { + "$ref": "InstanceSelection" + }, + "type": "array" + }, + "instanceSelectionResults": { + "description": "Output only. A list of instance selection results in the group.", + "items": { + "$ref": "InstanceSelectionResult" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "InstanceGroupAutoscalingPolicyConfig": { "description": "Configuration for the size bounds of an instance group, including its proportional size to other groups.", "id": "InstanceGroupAutoscalingPolicyConfig", @@ -3980,9 +4555,13 @@ "description": "Optional. Disk option config settings." }, "imageUri": { - "description": "Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.", + "description": "Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/v1/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/v1/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.", "type": "string" }, + "instanceFlexibilityPolicy": { + "$ref": "InstanceFlexibilityPolicy", + "description": "Optional. Instance flexibility Policy allowing a mixture of VM shapes and provisioning models." + }, "instanceNames": { "description": "Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.", "items": { @@ -4005,7 +4584,7 @@ "type": "boolean" }, "machineTypeUri": { - "description": "Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.", + "description": "Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]/machineTypes/n1-standard-2 projects/[project_id]/zones/[zone]/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.", "type": "string" }, "managedGroupConfig": { @@ -4017,6 +4596,11 @@ "description": "Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -> Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).", "type": "string" }, + "minNumInstances": { + "description": "Optional. The minimum number of primary worker instances to create. If min_num_instances is set, cluster creation will succeed if the number of primary workers created is at least equal to the min_num_instances number.Example: Cluster creation request with num_instances = 5 and min_num_instances = 3: If 4 VMs are created and 1 instance fails, the failed VM is deleted. The cluster is resized to 4 instances and placed in a RUNNING state. If 2 instances are created and 3 instances fail, the cluster in placed in an ERROR state. The failed VMs are not deleted.", + "format": "int32", + "type": "integer" + }, "numInstances": { "description": "Optional. The number of VM instances in the instance group. For HA cluster master_config groups, must be set to 3. For standard cluster master_config groups, must be set to 1.", "format": "int32", @@ -4037,6 +4621,10 @@ "Instances are Spot VMs (https://cloud.google.com/compute/docs/instances/spot).This option is allowed only for secondary worker (https://cloud.google.com/dataproc/docs/concepts/compute/secondary-vms) groups. Spot VMs are the latest version of preemptible VMs (https://cloud.google.com/compute/docs/instances/preemptible), and provide additional features." ], "type": "string" + }, + "startupConfig": { + "$ref": "StartupConfig", + "description": "Optional. Configuration to handle the startup of instances during cluster create and update process." } }, "type": "object" @@ -4064,6 +4652,43 @@ }, "type": "object" }, + "InstanceSelection": { + "description": "Defines machines types and a rank to which the machines types belong.", + "id": "InstanceSelection", + "properties": { + "machineTypes": { + "description": "Optional. Full machine-type names, e.g. \"n1-standard-16\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "rank": { + "description": "Optional. Preference of this instance selection. Lower number means higher preference. Dataproc will first try to create a VM based on the machine-type with priority rank and fallback to next rank based on availability. Machine types and instance selections with the same priority have the same preference.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "InstanceSelectionResult": { + "description": "Defines a mapping from machine types to the number of VMs that are created with each machine type.", + "id": "InstanceSelectionResult", + "properties": { + "machineType": { + "description": "Output only. Full machine-type names, e.g. \"n1-standard-16\".", + "readOnly": true, + "type": "string" + }, + "vmCount": { + "description": "Output only. Number of VM provisioned with the machine_type.", + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, "InstantiateWorkflowTemplateRequest": { "description": "A request to instantiate a workflow template.", "id": "InstantiateWorkflowTemplateRequest", @@ -4087,6 +4712,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" + }, "Job": { "description": "A Dataproc job resource.", "id": "Job", @@ -4097,7 +4739,7 @@ "type": "boolean" }, "driverControlFilesUri": { - "description": "Output only. If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.", + "description": "Output only. If present, the location of miscellaneous control files which can be used as part of job setup and handling. If not present, control files might be placed in the same location as driver_output_uri.", "readOnly": true, "type": "string" }, @@ -4110,6 +4752,10 @@ "$ref": "DriverSchedulingConfig", "description": "Optional. Driver scheduling configuration." }, + "flinkJob": { + "$ref": "FlinkJob", + "description": "Optional. Job is a Flink job." + }, "hadoopJob": { "$ref": "HadoopJob", "description": "Optional. Job is a Hadoop job." @@ -4119,7 +4765,7 @@ "description": "Optional. Job is a Hive job." }, "jobUuid": { - "description": "Output only. A UUID that uniquely identifies a job within the project over time. This is in contrast to a user-settable reference.job_id that may be reused over time.", + "description": "Output only. A UUID that uniquely identifies a job within the project over time. This is in contrast to a user-settable reference.job_id that might be reused over time.", "readOnly": true, "type": "string" }, @@ -4127,7 +4773,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.", + "description": "Optional. The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values can be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.", "type": "object" }, "pigJob": { @@ -4168,7 +4814,7 @@ }, "status": { "$ref": "JobStatus", - "description": "Output only. The job status. Additional application-specific status information may be contained in the type_job and yarn_applications fields.", + "description": "Output only. The job status. Additional application-specific status information might be contained in the type_job and yarn_applications fields.", "readOnly": true }, "statusHistory": { @@ -4184,7 +4830,7 @@ "description": "Optional. Job is a Trino job." }, "yarnApplications": { - "description": "Output only. The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.", + "description": "Output only. The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It might be changed before final release.", "items": { "$ref": "YarnApplication" }, @@ -4265,12 +4911,12 @@ "id": "JobScheduling", "properties": { "maxFailuresPerHour": { - "description": "Optional. Maximum number of times per hour a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed.A job may be reported as thrashing if the driver exits with a non-zero code four times within a 10-minute window.Maximum value is 10.Note: This restartable job option is not supported in Dataproc workflow templates (https://cloud.google.com/dataproc/docs/concepts/workflows/using-workflows#adding_jobs_to_a_template).", + "description": "Optional. Maximum number of times per hour a driver can be restarted as a result of driver exiting with non-zero code before job is reported failed.A job might be reported as thrashing if the driver exits with a non-zero code four times within a 10-minute window.Maximum value is 10.Note: This restartable job option is not supported in Dataproc workflow templates (https://cloud.google.com/dataproc/docs/concepts/workflows/using-workflows#adding_jobs_to_a_template).", "format": "int32", "type": "integer" }, "maxFailuresTotal": { - "description": "Optional. Maximum total number of times a driver may be restarted as a result of the driver exiting with a non-zero code. After the maximum number is reached, the job will be reported as failed.Maximum value is 240.Note: Currently, this restartable job option is not supported in Dataproc workflow templates (https://cloud.google.com/dataproc/docs/concepts/workflows/using-workflows#adding_jobs_to_a_template).", + "description": "Optional. Maximum total number of times a driver can be restarted as a result of the driver exiting with a non-zero code. After the maximum number is reached, the job will be reported as failed.Maximum value is 240.Note: Currently, this restartable job option is not supported in Dataproc workflow templates (https://cloud.google.com/dataproc/docs/concepts/workflows/using-workflows#adding_jobs_to_a_template).", "format": "int32", "type": "integer" } @@ -4332,8 +4978,8 @@ "enumDescriptions": [ "The job substate is unknown.", "The Job is submitted to the agent.Applies to RUNNING state.", - "The Job has been received and is awaiting execution (it may be waiting for a condition to be met). See the \"details\" field for the reason for the delay.Applies to RUNNING state.", - "The agent-reported status is out of date, which may be caused by a loss of communication between the agent and Dataproc. If the agent does not send a timely update, the job will fail.Applies to RUNNING state." + "The Job has been received and is awaiting execution (it might be waiting for a condition to be met). See the \"details\" field for the reason for the delay.Applies to RUNNING state.", + "The agent-reported status is out of date, which can be caused by a loss of communication between the agent and Dataproc. If the agent does not send a timely update, the job will fail.Applies to RUNNING state." ], "readOnly": true, "type": "string" @@ -4341,6 +4987,31 @@ }, "type": "object" }, + "JupyterConfig": { + "description": "Jupyter configuration for an interactive session.", + "id": "JupyterConfig", + "properties": { + "displayName": { + "description": "Optional. Display name, shown in the Jupyter kernelspec card.", + "type": "string" + }, + "kernel": { + "description": "Optional. Kernel", + "enum": [ + "KERNEL_UNSPECIFIED", + "PYTHON", + "SCALA" + ], + "enumDescriptions": [ + "The kernel is unknown.", + "Python kernel.", + "Scala kernel." + ], + "type": "string" + } + }, + "type": "object" + }, "KerberosConfig": { "description": "Specifies Kerberos related configuration.", "id": "KerberosConfig", @@ -4382,7 +5053,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": { @@ -4502,15 +5173,24 @@ "id": "ListBatchesResponse", "properties": { "batches": { - "description": "The batches from the specified collection.", + "description": "Output only. The batches from the specified collection.", "items": { "$ref": "Batch" }, + "readOnly": true, "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": "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" @@ -4550,6 +5230,14 @@ "nextPageToken": { "description": "Optional. This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the page_token in a subsequent ListJobsRequest.", "type": "string" + }, + "unreachable": { + "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" + }, + "readOnly": true, + "type": "array" } }, "type": "object" @@ -4572,6 +5260,44 @@ }, "type": "object" }, + "ListSessionTemplatesResponse": { + "description": "A list of session templates.", + "id": "ListSessionTemplatesResponse", + "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" + }, + "sessionTemplates": { + "description": "Output only. Session template list", + "items": { + "$ref": "SessionTemplate" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "ListSessionsResponse": { + "description": "A list of interactive sessions.", + "id": "ListSessionsResponse", + "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" + }, + "sessions": { + "description": "Output only. The sessions from the specified collection.", + "items": { + "$ref": "Session" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "ListWorkflowTemplatesResponse": { "description": "A response to a request to list workflow templates in a project.", "id": "ListWorkflowTemplatesResponse", @@ -4588,6 +5314,14 @@ }, "readOnly": true, "type": "array" + }, + "unreachable": { + "description": "Output only. List of workflow templates that could not be included in the response. Attempting to get one of these resources may indicate why it was not included in the list response.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" } }, "type": "object" @@ -4622,7 +5356,7 @@ ], "type": "string" }, - "description": "The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'", + "description": "The per-package log levels for the driver. This can include \"root\" package name to configure rootLogger. Examples: - 'com.google = FATAL' - 'root = INFO' - 'org.apache = DEBUG'", "type": "object" } }, @@ -4659,6 +5393,11 @@ "readOnly": true, "type": "string" }, + "instanceGroupManagerUri": { + "description": "Output only. The partial URI to the instance group manager for this group. E.g. projects/my-project/regions/us-central1/instanceGroupManagers/my-igm.", + "readOnly": true, + "type": "string" + }, "instanceTemplateName": { "description": "Output only. The name of the Instance Template used for the Managed Instance Group.", "readOnly": true, @@ -4679,18 +5418,18 @@ "type": "object" }, "Metric": { - "description": "A Dataproc OSS metric.", + "description": "A Dataproc custom metric.", "id": "Metric", "properties": { "metricOverrides": { - "description": "Optional. Specify one or more available OSS metrics (https://cloud.google.com/dataproc/docs/guides/monitoring#available_oss_metrics) to collect for the metric course (for the SPARK metric source, any Spark metric (https://spark.apache.org/docs/latest/monitoring.html#metrics) can be specified).Provide metrics in the following format: METRIC_SOURCE: INSTANCE:GROUP:METRIC Use camelcase as appropriate.Examples: yarn:ResourceManager:QueueMetrics:AppsCompleted spark:driver:DAGScheduler:job.allJobs sparkHistoryServer:JVM:Memory:NonHeapMemoryUsage.committed hiveserver2:JVM:Memory:NonHeapMemoryUsage.used Notes: Only the specified overridden metrics will be collected for the metric source. For example, if one or more spark:executive metrics are listed as metric overrides, other SPARK metrics will not be collected. The collection of the default metrics for other OSS metric sources is unaffected. For example, if both SPARK andd YARN metric sources are enabled, and overrides are provided for Spark metrics only, all default YARN metrics will be collected.", + "description": "Optional. Specify one or more Custom metrics (https://cloud.google.com/dataproc/docs/guides/dataproc-metrics#custom_metrics) to collect for the metric course (for the SPARK metric source (any Spark metric (https://spark.apache.org/docs/latest/monitoring.html#metrics) can be specified).Provide metrics in the following format: METRIC_SOURCE: INSTANCE:GROUP:METRIC Use camelcase as appropriate.Examples: yarn:ResourceManager:QueueMetrics:AppsCompleted spark:driver:DAGScheduler:job.allJobs sparkHistoryServer:JVM:Memory:NonHeapMemoryUsage.committed hiveserver2:JVM:Memory:NonHeapMemoryUsage.used Notes: Only the specified overridden metrics are collected for the metric source. For example, if one or more spark:executive metrics are listed as metric overrides, other SPARK metrics are not collected. The collection of the metrics for other enabled custom metric sources is unaffected. For example, if both SPARK andd YARN metric sources are enabled, and overrides are provided for Spark metrics only, all YARN metrics are collected.", "items": { "type": "string" }, "type": "array" }, "metricSource": { - "description": "Required. Default metrics are collected unless metricOverrides are specified for the metric source (see Available OSS metrics (https://cloud.google.com/dataproc/docs/guides/monitoring#available_oss_metrics) for more information).", + "description": "Required. A standard set of metrics is collected unless metricOverrides are specified for the metric source (see Custom metrics (https://cloud.google.com/dataproc/docs/guides/dataproc-metrics#custom_metrics) for more information).", "enum": [ "METRIC_SOURCE_UNSPECIFIED", "MONITORING_AGENT_DEFAULTS", @@ -4699,17 +5438,19 @@ "YARN", "SPARK_HISTORY_SERVER", "HIVESERVER2", - "HIVEMETASTORE" + "HIVEMETASTORE", + "FLINK" ], "enumDescriptions": [ "Required unspecified metric source.", - "Default monitoring agent metrics. If this source is enabled, Dataproc enables the monitoring agent in Compute Engine, and collects default monitoring agent metrics, which are published with an agent.googleapis.com prefix.", + "Monitoring agent metrics. If this source is enabled, Dataproc enables the monitoring agent in Compute Engine, and collects monitoring agent metrics, which are published with an agent.googleapis.com prefix.", "HDFS metric source.", "Spark metric source.", "YARN metric source.", "Spark History Server metric source.", "Hiveserver2 metric source.", - "hivemetastore metric source" + "hivemetastore metric source", + "flink metric source" ], "type": "string" } @@ -4717,6 +5458,7 @@ "type": "object" }, "NamespacedGkeDeploymentTarget": { + "deprecated": true, "description": "Deprecated. Used only for the deprecated beta. A full, namespace-isolated deployment target for an existing GKE cluster.", "id": "NamespacedGkeDeploymentTarget", "properties": { @@ -4773,7 +5515,7 @@ "id": "NodeGroupAffinity", "properties": { "nodeGroupUri": { - "description": "Required. The URI of a sole-tenant node group resource (https://cloud.google.com/compute/docs/reference/rest/v1/nodeGroups) that the cluster will be created on.A full URL, partial URI, or node group name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1 projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1 node-group-1", + "description": "Required. The URI of a sole-tenant node group resource (https://cloud.google.com/compute/docs/reference/rest/v1/nodeGroups) that the cluster will be created on.A full URL, partial URI, or node group name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]/nodeGroups/node-group-1 projects/[project_id]/zones/[zone]/nodeGroups/node-group-1 node-group-1", "type": "string" } }, @@ -4813,14 +5555,18 @@ "CREATE", "UPDATE", "DELETE", - "RESIZE" + "RESIZE", + "REPAIR", + "UPDATE_LABELS" ], "enumDescriptions": [ "Node group operation type is unknown.", "Create node group operation type.", "Update node group operation type.", "Delete node group operation type.", - "Resize node group operation type." + "Resize node group operation type.", + "Repair node group operation type.", + "Update node group label operation type." ], "type": "string" }, @@ -4923,7 +5669,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" } }, @@ -4933,6 +5679,10 @@ "description": "A job executed by the workflow.", "id": "OrderedJob", "properties": { + "flinkJob": { + "$ref": "FlinkJob", + "description": "Optional. Job is a Flink job." + }, "hadoopJob": { "$ref": "HadoopJob", "description": "Optional. Job is a Hadoop job." @@ -5047,7 +5797,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.", + "description": "Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Dataproc API might be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.", "type": "object" }, "queryFileUri": { @@ -5133,6 +5883,17 @@ }, "type": "object" }, + "PyPiRepositoryConfig": { + "description": "Configuration for PyPi repository", + "id": "PyPiRepositoryConfig", + "properties": { + "pypiRepository": { + "description": "Optional. PyPi repository address", + "type": "string" + } + }, + "type": "object" + }, "PySparkBatch": { "description": "A configuration for running an Apache PySpark (https://spark.apache.org/docs/latest/api/python/getting_started/quickstart.html) batch workload.", "id": "PySparkBatch", @@ -5223,7 +5984,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.", + "description": "Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Dataproc API might be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.", "type": "object" }, "pythonFileUris": { @@ -5295,6 +6056,46 @@ }, "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", + "properties": { + "pypiRepositoryConfig": { + "$ref": "PyPiRepositoryConfig", + "description": "Optional. Configuration for PyPi repository." + } + }, + "type": "object" + }, "ReservationAffinity": { "description": "Reservation Affinity for consuming Zonal reservation.", "id": "ReservationAffinity", @@ -5334,10 +6135,14 @@ "id": "ResizeNodeGroupRequest", "properties": { "gracefulDecommissionTimeout": { - "description": "Optional. Timeout for graceful YARN decomissioning. Graceful decommissioning (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/scaling-clusters#graceful_decommissioning) allows the removal of nodes from the Compute Engine node group without interrupting jobs in progress. This timeout specifies how long to wait for jobs in progress to finish before forcefully removing nodes (and potentially interrupting jobs). Default timeout is 0 (for forceful decommission), and the maximum allowed timeout is 1 day. (see JSON representation of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)).Only supported on Dataproc image versions 1.2 and higher.", + "description": "Optional. Timeout for graceful YARN decommissioning. Graceful decommissioning (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/scaling-clusters#graceful_decommissioning) allows the removal of nodes from the Compute Engine node group without interrupting jobs in progress. This timeout specifies how long to wait for jobs in progress to finish before forcefully removing nodes (and potentially interrupting jobs). Default timeout is 0 (for forceful decommission), and the maximum allowed timeout is 1 day. (see JSON representation of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)).Only supported on Dataproc image versions 1.2 and higher.", "format": "google-duration", "type": "string" }, + "parentOperationId": { + "description": "Optional. operation id of the parent operation sending the resize request", + "type": "string" + }, "requestId": { "description": "Optional. A unique ID used to identify the request. If the server receives two ResizeNodeGroupRequest (https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.ResizeNodeGroupRequests) 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" @@ -5365,6 +6170,10 @@ "description": "Optional. A mapping of property names to values, which are used to configure workload execution.", "type": "object" }, + "repositoryConfig": { + "$ref": "RepositoryConfig", + "description": "Optional. Dependency repository configuration." + }, "version": { "description": "Optional. Version of the batch runtime.", "type": "string" @@ -5378,7 +6187,7 @@ "properties": { "approximateUsage": { "$ref": "UsageMetrics", - "description": "Output only. Approximate workload resource usage calculated after workload finishes (see Dataproc Serverless pricing (https://cloud.google.com/dataproc-serverless/pricing)).", + "description": "Output only. Approximate workload resource usage, calculated when the workload completes (see Dataproc Serverless pricing (https://cloud.google.com/dataproc-serverless/pricing)).Note: This metric calculation may change in the future, for example, to capture cumulative workload resource consumption during workload execution (see the Dataproc Serverless release notes (https://cloud.google.com/dataproc-serverless/docs/release-notes) for announcements, changes, fixes and other Dataproc developments).", "readOnly": true }, "currentUsage": { @@ -5422,6 +6231,105 @@ }, "type": "object" }, + "Session": { + "description": "A representation of a session.", + "id": "Session", + "properties": { + "createTime": { + "description": "Output only. The time when the session was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "creator": { + "description": "Output only. The email address of the user who created the session.", + "readOnly": true, + "type": "string" + }, + "environmentConfig": { + "$ref": "EnvironmentConfig", + "description": "Optional. Environment configuration for the session execution." + }, + "jupyterSession": { + "$ref": "JupyterConfig", + "description": "Optional. Jupyter session config." + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. The labels to associate with the session. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a session.", + "type": "object" + }, + "name": { + "description": "Required. The resource name of the session.", + "type": "string" + }, + "runtimeConfig": { + "$ref": "RuntimeConfig", + "description": "Optional. Runtime configuration for the session execution." + }, + "runtimeInfo": { + "$ref": "RuntimeInfo", + "description": "Output only. Runtime information about session execution.", + "readOnly": true + }, + "sessionTemplate": { + "description": "Optional. The session template used by the session.Only resource names, including project ID and location, are valid.Example: * https://www.googleapis.com/compute/v1/projects/[project_id]/locations/[dataproc_region]/sessionTemplates/[template_id] * projects/[project_id]/locations/[dataproc_region]/sessionTemplates/[template_id]The template must be in the same project and Dataproc region as the session.", + "type": "string" + }, + "state": { + "description": "Output only. A state of the session.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "TERMINATING", + "TERMINATED", + "FAILED" + ], + "enumDescriptions": [ + "The session state is unknown.", + "The session is created prior to running.", + "The session is running.", + "The session is terminating.", + "The session is terminated successfully.", + "The session is no longer running due to an error." + ], + "readOnly": true, + "type": "string" + }, + "stateHistory": { + "description": "Output only. Historical state information for the session.", + "items": { + "$ref": "SessionStateHistory" + }, + "readOnly": true, + "type": "array" + }, + "stateMessage": { + "description": "Output only. Session state details, such as the failure description if the state is FAILED.", + "readOnly": true, + "type": "string" + }, + "stateTime": { + "description": "Output only. The time when the session entered the current state.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "user": { + "description": "Optional. The email address of the user who owns the session.", + "type": "string" + }, + "uuid": { + "description": "Output only. A session UUID (Unique Universal Identifier). The service generates this value when it creates the session.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "SessionOperationMetadata": { "description": "Metadata describing the Session operation.", "id": "SessionOperationMetadata", @@ -5481,6 +6389,101 @@ }, "type": "object" }, + "SessionStateHistory": { + "description": "Historical state information.", + "id": "SessionStateHistory", + "properties": { + "state": { + "description": "Output only. The state of the session at this point in the session history.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "TERMINATING", + "TERMINATED", + "FAILED" + ], + "enumDescriptions": [ + "The session state is unknown.", + "The session is created prior to running.", + "The session is running.", + "The session is terminating.", + "The session is terminated successfully.", + "The session is no longer running due to an error." + ], + "readOnly": true, + "type": "string" + }, + "stateMessage": { + "description": "Output only. Details about the state at this point in the session history.", + "readOnly": true, + "type": "string" + }, + "stateStartTime": { + "description": "Output only. The time when the session entered the historical state.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "SessionTemplate": { + "description": "A representation of a session template.", + "id": "SessionTemplate", + "properties": { + "createTime": { + "description": "Output only. The time when the template was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "creator": { + "description": "Output only. The email address of the user who created the template.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Brief description of the template.", + "type": "string" + }, + "environmentConfig": { + "$ref": "EnvironmentConfig", + "description": "Optional. Environment configuration for session execution." + }, + "jupyterSession": { + "$ref": "JupyterConfig", + "description": "Optional. Jupyter session config." + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels to associate with sessions created using this template. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values can be empty, but, if present, must contain 1 to 63 characters and conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a session.", + "type": "object" + }, + "name": { + "description": "Required. The resource name of the session template.", + "type": "string" + }, + "runtimeConfig": { + "$ref": "RuntimeConfig", + "description": "Optional. Runtime configuration for session execution." + }, + "updateTime": { + "description": "Output only. The time the template was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "uuid": { + "description": "Output only. A session template UUID (Unique Universal Identifier). The service generates this value when it creates the session template.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "SetIamPolicyRequest": { "description": "Request message for SetIamPolicy method.", "id": "SetIamPolicyRequest", @@ -5530,6 +6533,7 @@ "FLINK", "HBASE", "HIVE_WEBHCAT", + "HUDI", "JUPYTER", "PRESTO", "TRINO", @@ -5546,6 +6550,7 @@ "Flink", "HBase. (beta)", "The Hive Web HCatalog (the REST service for accessing HCatalog).", + "Hudi.", "The Jupyter Notebook.", "The Presto query engine.", "The Trino query engine.", @@ -5659,7 +6664,7 @@ "description": "Optional. The runtime log config for job execution." }, "mainClass": { - "description": "The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.", + "description": "The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in SparkJob.jar_file_uris.", "type": "string" }, "mainJarFileUri": { @@ -5670,7 +6675,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.", + "description": "Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Dataproc API might be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.", "type": "object" } }, @@ -5745,7 +6750,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. A mapping of property names to values, used to configure SparkR. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.", + "description": "Optional. A mapping of property names to values, used to configure SparkR. Properties that conflict with values set by the Dataproc API might be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.", "type": "object" } }, @@ -5795,7 +6800,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Dataproc API may be overwritten.", + "description": "Optional. A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Dataproc API might be overwritten.", "type": "object" }, "queryFileUri": { @@ -5821,10 +6826,14 @@ "id": "SparkStandaloneAutoscalingConfig", "properties": { "gracefulDecommissionTimeout": { - "description": "Required. Timeout for Spark graceful decommissioning of spark workers. Specifies the duration to wait for spark worker to complete spark decomissioning tasks before forcefully removing workers. Only applicable to downscaling operations.Bounds: 0s, 1d.", + "description": "Required. Timeout for Spark graceful decommissioning of spark workers. Specifies the duration to wait for spark worker to complete spark decommissioning tasks before forcefully removing workers. Only applicable to downscaling operations.Bounds: 0s, 1d.", "format": "google-duration", "type": "string" }, + "removeOnlyIdleWorkers": { + "description": "Optional. Remove only idle workers when scaling down cluster", + "type": "boolean" + }, "scaleDownFactor": { "description": "Required. Fraction of required executors to remove from Spark Serverless clusters. A scale-down factor of 1.0 will result in scaling down so that there are no more executors for the Spark Job.(more aggressive scaling). A scale-down factor closer to 0 will result in a smaller magnitude of scaling donw (less aggressive scaling).Bounds: 0.0, 1.0.", "format": "double", @@ -5863,6 +6872,18 @@ }, "type": "object" }, + "StartupConfig": { + "description": "Configuration to handle the startup of instances during cluster create and update process.", + "id": "StartupConfig", + "properties": { + "requiredRegistrationFraction": { + "description": "Optional. The config setting to enable cluster creation/ updation to be successful only after required_registration_fraction of instances are up and running. This configuration is applicable to only secondary workers for now. The cluster will fail if required_registration_fraction of instances are not available. This will include instance creation, agent registration, and service registration (if enabled).", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "StateHistory": { "description": "Historical state information.", "id": "StateHistory", @@ -5987,6 +7008,17 @@ }, "type": "object" }, + "TerminateSessionRequest": { + "description": "A request to terminate an interactive session.", + "id": "TerminateSessionRequest", + "properties": { + "requestId": { + "description": "Optional. A unique ID used to identify the request. If the service receives two TerminateSessionRequest (https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.TerminateSessionRequest)s with the same ID, the second request is ignored.Recommendation: Set this value to a UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier).The value must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", + "type": "string" + } + }, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for TestIamPermissions method.", "id": "TestIamPermissionsRequest", @@ -6060,6 +7092,15 @@ "description": "Usage metrics represent approximate total resources consumed by a workload.", "id": "UsageMetrics", "properties": { + "acceleratorType": { + "description": "Optional. Accelerator type being used, if any", + "type": "string" + }, + "milliAcceleratorSeconds": { + "description": "Optional. Accelerator usage in (milliAccelerator x seconds) (see Dataproc Serverless pricing (https://cloud.google.com/dataproc-serverless/pricing)).", + "format": "int64", + "type": "string" + }, "milliDcuSeconds": { "description": "Optional. DCU (Dataproc Compute Units) usage in (milliDCU x seconds) (see Dataproc Serverless pricing (https://cloud.google.com/dataproc-serverless/pricing)).", "format": "int64", @@ -6074,19 +7115,38 @@ "type": "object" }, "UsageSnapshot": { - "description": "The usage snaphot represents the resources consumed by a workload at a specified time.", + "description": "The usage snapshot represents the resources consumed by a workload at a specified time.", "id": "UsageSnapshot", "properties": { + "acceleratorType": { + "description": "Optional. Accelerator type being used, if any", + "type": "string" + }, + "milliAccelerator": { + "description": "Optional. Milli (one-thousandth) accelerator. (see Dataproc Serverless pricing (https://cloud.google.com/dataproc-serverless/pricing))", + "format": "int64", + "type": "string" + }, "milliDcu": { "description": "Optional. Milli (one-thousandth) Dataproc Compute Units (DCUs) (see Dataproc Serverless pricing (https://cloud.google.com/dataproc-serverless/pricing)).", "format": "int64", "type": "string" }, + "milliDcuPremium": { + "description": "Optional. Milli (one-thousandth) Dataproc Compute Units (DCUs) charged at premium tier (see Dataproc Serverless pricing (https://cloud.google.com/dataproc-serverless/pricing)).", + "format": "int64", + "type": "string" + }, "shuffleStorageGb": { "description": "Optional. Shuffle Storage in gigabytes (GB). (see Dataproc Serverless pricing (https://cloud.google.com/dataproc-serverless/pricing))", "format": "int64", "type": "string" }, + "shuffleStorageGbPremium": { + "description": "Optional. Shuffle Storage in gigabytes (GB) charged at premium tier. (see Dataproc Serverless pricing (https://cloud.google.com/dataproc-serverless/pricing))", + "format": "int64", + "type": "string" + }, "snapshotTime": { "description": "Optional. The timestamp of the usage snapshot.", "format": "google-datetime", @@ -6110,7 +7170,7 @@ "type": "object" }, "VirtualClusterConfig": { - "description": "The Dataproc cluster config for a cluster that does not directly control the underlying compute resources, such as a Dataproc-on-GKE cluster (https://cloud.google.com/dataproc/docs/guides/dpgke/dataproc-gke).", + "description": "The Dataproc cluster config for a cluster that does not directly control the underlying compute resources, such as a Dataproc-on-GKE cluster (https://cloud.google.com/dataproc/docs/guides/dpgke/dataproc-gke-overview).", "id": "VirtualClusterConfig", "properties": { "auxiliaryServicesConfig": { @@ -6306,6 +7366,10 @@ "format": "google-duration", "type": "string" }, + "encryptionConfig": { + "$ref": "GoogleCloudDataprocV1WorkflowTemplateEncryptionConfig", + "description": "Optional. Encryption settings for encrypting workflow template job arguments." + }, "id": { "type": "string" }, diff --git a/etc/api/datastore/v1/datastore-api.json b/etc/api/datastore/v1/datastore-api.json index b87ae1286a..508716f868 100644 --- a/etc/api/datastore/v1/datastore-api.json +++ b/etc/api/datastore/v1/datastore-api.json @@ -608,7 +608,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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}/operations", "httpMethod": "GET", "id": "datastore.projects.operations.list", @@ -654,20 +654,28 @@ } } }, - "revision": "20230118", + "revision": "20240226", "rootUrl": "https://datastore.googleapis.com/", "schemas": { "Aggregation": { - "description": "Defines a aggregation that produces a single result.", + "description": "Defines an aggregation that produces a single result.", "id": "Aggregation", "properties": { "alias": { - "description": "Optional. Optional name of the property to store the result of the aggregation. If not provided, Datastore will pick a default name following the format `property_`. For example: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2), COUNT_UP_TO(3) AS count_up_to_3, COUNT_UP_TO(4) OVER ( ... ); ``` becomes: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2) AS property_1, COUNT_UP_TO(3) AS count_up_to_3, COUNT_UP_TO(4) AS property_2 OVER ( ... ); ``` Requires: * Must be unique across all aggregation aliases. * Conform to entity property name limitations.", + "description": "Optional. Optional name of the property to store the result of the aggregation. If not provided, Datastore will pick a default name following the format `property_`. For example: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2), COUNT_UP_TO(3) AS count_up_to_3, COUNT(*) OVER ( ... ); ``` becomes: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2) AS property_1, COUNT_UP_TO(3) AS count_up_to_3, COUNT(*) AS property_2 OVER ( ... ); ``` Requires: * Must be unique across all aggregation aliases. * Conform to entity property name limitations.", "type": "string" }, + "avg": { + "$ref": "Avg", + "description": "Average aggregator." + }, "count": { "$ref": "Count", "description": "Count aggregator." + }, + "sum": { + "$ref": "Sum", + "description": "Sum aggregator." } }, "type": "object" @@ -787,6 +795,17 @@ }, "type": "object" }, + "Avg": { + "description": "Average of the values of the requested property. * Only numeric values will be aggregated. All non-numeric values including `NULL` are skipped. * If the aggregated values contain `NaN`, returns `NaN`. Infinity math follows IEEE-754 standards. * If the aggregated value set is empty, returns `NULL`. * Always returns the result as a double.", + "id": "Avg", + "properties": { + "property": { + "$ref": "PropertyReference", + "description": "The property to aggregate on." + } + }, + "type": "object" + }, "BeginTransactionRequest": { "description": "The request for Datastore.BeginTransaction.", "id": "BeginTransactionRequest", @@ -894,11 +913,13 @@ "description": "The operator for combining multiple filters.", "enum": [ "OPERATOR_UNSPECIFIED", - "AND" + "AND", + "OR" ], "enumDescriptions": [ "Unspecified. This value must not be used.", - "The results are required to satisfy each of the combined filters." + "The results are required to satisfy each of the combined filters.", + "Documents are required to satisfy at least one of the combined filters." ], "type": "string" } @@ -910,7 +931,7 @@ "id": "Count", "properties": { "upTo": { - "description": "Optional. Optional constraint on the maximum number of entities to count. This provides a way to set an upper bound on the number of entities to scan, limiting latency and cost. Unspecified is interpreted as no bound. If a zero value is provided, a count result of zero should always be expected. High-Level Example: ``` AGGREGATE COUNT_UP_TO(1000) OVER ( SELECT * FROM k ); ``` Requires: * Must be non-negative when present.", + "description": "Optional. Optional constraint on the maximum number of entities to count. This provides a way to set an upper bound on the number of entities to scan, limiting latency, and cost. Unspecified is interpreted as no bound. If a zero value is provided, a count result of zero should always be expected. High-Level Example: ``` AGGREGATE COUNT_UP_TO(1000) OVER ( SELECT * FROM k ); ``` Requires: * Must be non-negative when present.", "format": "int64", "type": "string" } @@ -924,7 +945,7 @@ "type": "object" }, "Entity": { - "description": "A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message.", + "description": "A Datastore data object. Must not exceed 1 MiB - 4 bytes.", "id": "Entity", "properties": { "key": { @@ -935,7 +956,7 @@ "additionalProperties": { "$ref": "Value" }, - "description": "The entity's properties. The map's keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `\"\"`.", + "description": "The entity's properties. The map's keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.", "type": "object" } }, @@ -1690,7 +1711,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" } }, @@ -1840,7 +1861,7 @@ "type": "string" }, "transaction": { - "description": "The identifier of the transaction that was started as part of this Lookup request. Set only when ReadOptions.begin_transaction was set in LookupRequest.read_options.", + "description": "The identifier of the transaction that was started as part of this Lookup request. Set only when ReadOptions.new_transaction was set in LookupRequest.read_options.", "format": "byte", "type": "string" } @@ -1985,10 +2006,10 @@ "The given `property` is greater than the given `value`. Requires: * That `property` comes first in `order_by`.", "The given `property` is greater than or equal to the given `value`. Requires: * That `property` comes first in `order_by`.", "The given `property` is equal to the given `value`.", - "The given `property` is equal to at least one value in the given array. Requires: * That `value` is a non-empty `ArrayValue` with at most 10 values. * No other `IN` or `NOT_IN` is in the same query.", + "The given `property` is equal to at least one value in the given array. Requires: * That `value` is a non-empty `ArrayValue`, subject to disjunction limits. * No `NOT_IN` is in the same query.", "The given `property` is not equal to the given `value`. Requires: * No other `NOT_EQUAL` or `NOT_IN` is in the same query. * That `property` comes first in the `order_by`.", - "Limit the result set to the given entity and its descendants. Requires: * That `value` is an entity key. * No other `HAS_ANCESTOR` is in the same query.", - "The value of the `property` is not in the given array. Requires: * That `value` is a non-empty `ArrayValue` with at most 10 values. * No other `IN`, `NOT_IN`, `NOT_EQUAL` is in the same query. * That `field` comes first in the `order_by`." + "Limit the result set to the given entity and its descendants. Requires: * That `value` is an entity key. * All evaluated disjunctions must have the same `HAS_ANCESTOR` filter.", + "The value of the `property` is not in the given array. Requires: * That `value` is a non-empty `ArrayValue` with at most 10 values. * No other `OR`, `IN`, `NOT_IN`, `NOT_EQUAL` is in the same query. * That `field` comes first in the `order_by`." ], "type": "string" }, @@ -2033,7 +2054,7 @@ "id": "PropertyReference", "properties": { "name": { - "description": "The name of the property. If name includes \".\"s, it may be interpreted as a property name path.", + "description": "A reference to a property. Requires: * MUST be a dot-delimited (`.`) string of segments, where each segment conforms to entity property name limitations.", "type": "string" } }, @@ -2044,7 +2065,7 @@ "id": "Query", "properties": { "distinctOn": { - "description": "The properties to make distinct. The query results will contain the first result for each distinct combination of values for the given properties (if empty, all results are returned).", + "description": "The properties to make distinct. The query results will contain the first result for each distinct combination of values for the given properties (if empty, all results are returned). Requires: * If `order` is specified, the set of distinct on properties must appear before the non-distinct on properties in `order`.", "items": { "$ref": "PropertyReference" }, @@ -2176,7 +2197,7 @@ "id": "ReadOnly", "properties": { "readTime": { - "description": "Reads entities at the given time. This may not be older than 60 seconds.", + "description": "Reads entities at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "type": "string" } @@ -2206,7 +2227,7 @@ "type": "string" }, "readTime": { - "description": "Reads entities as they were at the given time. This may not be older than 270 seconds. This value is only supported for Cloud Firestore in Datastore mode.", + "description": "Reads entities as they were at the given time. This value is only supported for Cloud Firestore in Datastore mode. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "type": "string" }, @@ -2316,7 +2337,7 @@ "description": "The parsed form of the `GqlQuery` from the request, if it was set." }, "transaction": { - "description": "The identifier of the transaction that was started as part of this RunAggregationQuery request. Set only when ReadOptions.begin_transaction was set in RunAggregationQueryRequest.read_options.", + "description": "The identifier of the transaction that was started as part of this RunAggregationQuery request. Set only when ReadOptions.new_transaction was set in RunAggregationQueryRequest.read_options.", "format": "byte", "type": "string" } @@ -2363,7 +2384,7 @@ "description": "The parsed form of the `GqlQuery` from the request, if it was set." }, "transaction": { - "description": "The identifier of the transaction that was started as part of this RunQuery request. Set only when ReadOptions.begin_transaction was set in RunQueryRequest.read_options.", + "description": "The identifier of the transaction that was started as part of this RunQuery request. Set only when ReadOptions.new_transaction was set in RunQueryRequest.read_options.", "format": "byte", "type": "string" } @@ -2397,6 +2418,17 @@ }, "type": "object" }, + "Sum": { + "description": "Sum of the values of the requested property. * Only numeric values will be aggregated. All non-numeric values including `NULL` are skipped. * If the aggregated values contain `NaN`, returns `NaN`. Infinity math follows IEEE-754 standards. * If the aggregated value set is empty, returns 0. * Returns a 64-bit integer if all aggregated numbers are integers and the sum result does not overflow. Otherwise, the result is returned as a double. Note that even if all the aggregated values are integers, the result is returned as a double if it cannot fit within a 64-bit signed integer. When this occurs, the returned value will lose precision. * When underflow occurs, floating-point aggregation is non-deterministic. This means that running the same query repeatedly without any changes to the underlying values could produce slightly different results each time. In those cases, values should be stored as integers over floating-point numbers.", + "id": "Sum", + "properties": { + "property": { + "$ref": "PropertyReference", + "description": "The property to aggregate on." + } + }, + "type": "object" + }, "TransactionOptions": { "description": "Options for beginning a new transaction. Transactions can be created explicitly with calls to Datastore.BeginTransaction or implicitly by setting ReadOptions.new_transaction in read requests.", "id": "TransactionOptions", diff --git a/etc/api/datastore/v1beta1/datastore-api.json b/etc/api/datastore/v1beta1/datastore-api.json index 18802ca07c..2cc27f7cff 100644 --- a/etc/api/datastore/v1beta1/datastore-api.json +++ b/etc/api/datastore/v1beta1/datastore-api.json @@ -168,7 +168,7 @@ } } }, - "revision": "20230118", + "revision": "20240226", "rootUrl": "https://datastore.googleapis.com/", "schemas": { "GoogleDatastoreAdminV1CommonMetadata": { @@ -752,7 +752,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/etc/api/datastore/v1beta3/datastore-api.json b/etc/api/datastore/v1beta3/datastore-api.json index da1e822151..5b9b46f29c 100644 --- a/etc/api/datastore/v1beta3/datastore-api.json +++ b/etc/api/datastore/v1beta3/datastore-api.json @@ -336,20 +336,28 @@ } } }, - "revision": "20230118", + "revision": "20240226", "rootUrl": "https://datastore.googleapis.com/", "schemas": { "Aggregation": { - "description": "Defines a aggregation that produces a single result.", + "description": "Defines an aggregation that produces a single result.", "id": "Aggregation", "properties": { "alias": { - "description": "Optional. Optional name of the property to store the result of the aggregation. If not provided, Datastore will pick a default name following the format `property_`. For example: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2), COUNT_UP_TO(3) AS count_up_to_3, COUNT_UP_TO(4) OVER ( ... ); ``` becomes: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2) AS property_1, COUNT_UP_TO(3) AS count_up_to_3, COUNT_UP_TO(4) AS property_2 OVER ( ... ); ``` Requires: * Must be unique across all aggregation aliases. * Conform to entity property name limitations.", + "description": "Optional. Optional name of the property to store the result of the aggregation. If not provided, Datastore will pick a default name following the format `property_`. For example: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2), COUNT_UP_TO(3) AS count_up_to_3, COUNT(*) OVER ( ... ); ``` becomes: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2) AS property_1, COUNT_UP_TO(3) AS count_up_to_3, COUNT(*) AS property_2 OVER ( ... ); ``` Requires: * Must be unique across all aggregation aliases. * Conform to entity property name limitations.", "type": "string" }, + "avg": { + "$ref": "Avg", + "description": "Average aggregator." + }, "count": { "$ref": "Count", "description": "Count aggregator." + }, + "sum": { + "$ref": "Sum", + "description": "Sum aggregator." } }, "type": "object" @@ -465,6 +473,17 @@ }, "type": "object" }, + "Avg": { + "description": "Average of the values of the requested property. * Only numeric values will be aggregated. All non-numeric values including `NULL` are skipped. * If the aggregated values contain `NaN`, returns `NaN`. Infinity math follows IEEE-754 standards. * If the aggregated value set is empty, returns `NULL`. * Always returns the result as a double.", + "id": "Avg", + "properties": { + "property": { + "$ref": "PropertyReference", + "description": "The property to aggregate on." + } + }, + "type": "object" + }, "BeginTransactionRequest": { "description": "The request for Datastore.BeginTransaction.", "id": "BeginTransactionRequest", @@ -560,11 +579,13 @@ "description": "The operator for combining multiple filters.", "enum": [ "OPERATOR_UNSPECIFIED", - "AND" + "AND", + "OR" ], "enumDescriptions": [ "Unspecified. This value must not be used.", - "The results are required to satisfy each of the combined filters." + "The results are required to satisfy each of the combined filters.", + "Documents are required to satisfy at least one of the combined filters." ], "type": "string" } @@ -576,7 +597,7 @@ "id": "Count", "properties": { "upTo": { - "description": "Optional. Optional constraint on the maximum number of entities to count. This provides a way to set an upper bound on the number of entities to scan, limiting latency and cost. Unspecified is interpreted as no bound. If a zero value is provided, a count result of zero should always be expected. High-Level Example: ``` AGGREGATE COUNT_UP_TO(1000) OVER ( SELECT * FROM k ); ``` Requires: * Must be non-negative when present.", + "description": "Optional. Optional constraint on the maximum number of entities to count. This provides a way to set an upper bound on the number of entities to scan, limiting latency, and cost. Unspecified is interpreted as no bound. If a zero value is provided, a count result of zero should always be expected. High-Level Example: ``` AGGREGATE COUNT_UP_TO(1000) OVER ( SELECT * FROM k ); ``` Requires: * Must be non-negative when present.", "format": "int64", "type": "string" } @@ -584,7 +605,7 @@ "type": "object" }, "Entity": { - "description": "A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message.", + "description": "A Datastore data object. Must not exceed 1 MiB - 4 bytes.", "id": "Entity", "properties": { "key": { @@ -595,7 +616,7 @@ "additionalProperties": { "$ref": "Value" }, - "description": "The entity's properties. The map's keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `\"\"`.", + "description": "The entity's properties. The map's keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.", "type": "object" } }, @@ -1431,10 +1452,10 @@ "The given `property` is greater than the given `value`. Requires: * That `property` comes first in `order_by`.", "The given `property` is greater than or equal to the given `value`. Requires: * That `property` comes first in `order_by`.", "The given `property` is equal to the given `value`.", - "The given `property` is equal to at least one value in the given array. Requires: * That `value` is a non-empty `ArrayValue` with at most 10 values. * No other `IN` or `NOT_IN` is in the same query.", + "The given `property` is equal to at least one value in the given array. Requires: * That `value` is a non-empty `ArrayValue`, subject to disjunction limits. * No `NOT_IN` is in the same query.", "The given `property` is not equal to the given `value`. Requires: * No other `NOT_EQUAL` or `NOT_IN` is in the same query. * That `property` comes first in the `order_by`.", - "Limit the result set to the given entity and its descendants. Requires: * That `value` is an entity key. * No other `HAS_ANCESTOR` is in the same query.", - "The value of the `property` is not in the given array. Requires: * That `value` is a non-empty `ArrayValue` with at most 10 values. * No other `IN`, `NOT_IN`, `NOT_EQUAL` is in the same query. * That `field` comes first in the `order_by`." + "Limit the result set to the given entity and its descendants. Requires: * That `value` is an entity key. * All evaluated disjunctions must have the same `HAS_ANCESTOR` filter.", + "The value of the `property` is not in the given array. Requires: * That `value` is a non-empty `ArrayValue` with at most 10 values. * No other `OR`, `IN`, `NOT_IN`, `NOT_EQUAL` is in the same query. * That `field` comes first in the `order_by`." ], "type": "string" }, @@ -1479,7 +1500,7 @@ "id": "PropertyReference", "properties": { "name": { - "description": "The name of the property. If name includes \".\"s, it may be interpreted as a property name path.", + "description": "A reference to a property. Requires: * MUST be a dot-delimited (`.`) string of segments, where each segment conforms to entity property name limitations.", "type": "string" } }, @@ -1490,7 +1511,7 @@ "id": "Query", "properties": { "distinctOn": { - "description": "The properties to make distinct. The query results will contain the first result for each distinct combination of values for the given properties (if empty, all results are returned).", + "description": "The properties to make distinct. The query results will contain the first result for each distinct combination of values for the given properties (if empty, all results are returned). Requires: * If `order` is specified, the set of distinct on properties must appear before the non-distinct on properties in `order`.", "items": { "$ref": "PropertyReference" }, @@ -1622,7 +1643,7 @@ "id": "ReadOnly", "properties": { "readTime": { - "description": "Reads entities at the given time. This may not be older than 60 seconds.", + "description": "Reads entities at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "type": "string" } @@ -1648,7 +1669,7 @@ "type": "string" }, "readTime": { - "description": "Reads entities as they were at the given time. This may not be older than 270 seconds. This value is only supported for Cloud Firestore in Datastore mode.", + "description": "Reads entities as they were at the given time. This value is only supported for Cloud Firestore in Datastore mode. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "type": "string" }, @@ -1790,6 +1811,17 @@ }, "type": "object" }, + "Sum": { + "description": "Sum of the values of the requested property. * Only numeric values will be aggregated. All non-numeric values including `NULL` are skipped. * If the aggregated values contain `NaN`, returns `NaN`. Infinity math follows IEEE-754 standards. * If the aggregated value set is empty, returns 0. * Returns a 64-bit integer if all aggregated numbers are integers and the sum result does not overflow. Otherwise, the result is returned as a double. Note that even if all the aggregated values are integers, the result is returned as a double if it cannot fit within a 64-bit signed integer. When this occurs, the returned value will lose precision. * When underflow occurs, floating-point aggregation is non-deterministic. This means that running the same query repeatedly without any changes to the underlying values could produce slightly different results each time. In those cases, values should be stored as integers over floating-point numbers.", + "id": "Sum", + "properties": { + "property": { + "$ref": "PropertyReference", + "description": "The property to aggregate on." + } + }, + "type": "object" + }, "TransactionOptions": { "description": "Options for beginning a new transaction. Transactions can be created explicitly with calls to Datastore.BeginTransaction or implicitly by setting ReadOptions.new_transaction in read requests.", "id": "TransactionOptions", diff --git a/etc/api/datastream/v1/datastream-api.json b/etc/api/datastream/v1/datastream-api.json index 1097acdf0d..20fb1163f9 100644 --- a/etc/api/datastream/v1/datastream-api.json +++ b/etc/api/datastream/v1/datastream-api.json @@ -524,7 +524,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "datastream.projects.locations.operations.list", @@ -1063,6 +1063,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "run": { + "description": "Use this method to start, resume or recover a stream with a non default CDC strategy. NOTE: This feature is currently experimental.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}:run", + "httpMethod": "POST", + "id": "datastream.projects.locations.streams.run", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the stream resource to start, in the format: projects/{project_id}/locations/{location}/streams/{stream_name}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/streams/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:run", + "request": { + "$ref": "RunStreamRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { @@ -1222,7 +1250,7 @@ } } }, - "revision": "20230111", + "revision": "20240221", "rootUrl": "https://datastream.googleapis.com/", "schemas": { "AvroFileFormat": { @@ -1246,6 +1274,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" @@ -1275,7 +1307,7 @@ "type": "string" }, "state": { - "description": "Backfill job state.", + "description": "Output only. Backfill job state.", "enum": [ "STATE_UNSPECIFIED", "NOT_STARTED", @@ -1296,6 +1328,7 @@ "Backfill completed successfully.", "Backfill job failed since the table structure is currently unsupported for backfill." ], + "readOnly": true, "type": "string" }, "trigger": { @@ -1322,6 +1355,7 @@ "type": "object" }, "BigQueryDestinationConfig": { + "description": "BigQuery destination configuration", "id": "BigQueryDestinationConfig", "properties": { "dataFreshness": { @@ -1352,6 +1386,25 @@ "properties": {}, "type": "object" }, + "CdcStrategy": { + "description": "The strategy that the stream uses for CDC replication.", + "id": "CdcStrategy", + "properties": { + "mostRecentStartPosition": { + "$ref": "MostRecentStartPosition", + "description": "Optional. Start replicating from the most recent position in the source." + }, + "nextAvailableStartPosition": { + "$ref": "NextAvailableStartPosition", + "description": "Optional. Resume replication from the next available position in the source." + }, + "specificStartPosition": { + "$ref": "SpecificStartPosition", + "description": "Optional. Start replicating from a specific position in the source." + } + }, + "type": "object" + }, "ConnectionProfile": { "description": "A set of reusable connection configurations to be used as a source or destination for a stream.", "id": "ConnectionProfile", @@ -1406,6 +1459,10 @@ "$ref": "PrivateConnectivity", "description": "Private connectivity." }, + "sqlServerProfile": { + "$ref": "SqlServerProfile", + "description": "SQLServer Connection Profile configuration." + }, "staticServiceIpConnectivity": { "$ref": "StaticServiceIpConnectivity", "description": "Static Service IP connectivity." @@ -1610,7 +1667,7 @@ "description": "AVRO file format configuration." }, "fileRotationInterval": { - "description": "The maximum duration for which new events are added before a file is closed and a new file is created.", + "description": "The maximum duration for which new events are added before a file is closed and a new file is created. Values within the range of 15-60 seconds are allowed.", "format": "google-duration", "type": "string" }, @@ -1835,7 +1892,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1879,6 +1936,12 @@ }, "type": "object" }, + "MostRecentStartPosition": { + "description": "CDC strategy to start replicating from the most recent position in the source.", + "id": "MostRecentStartPosition", + "properties": {}, + "type": "object" + }, "MysqlColumn": { "description": "MySQL Column.", "id": "MysqlColumn", @@ -1909,9 +1972,19 @@ "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" @@ -1934,6 +2007,22 @@ }, "type": "object" }, + "MysqlLogPosition": { + "description": "MySQL log position", + "id": "MysqlLogPosition", + "properties": { + "logFile": { + "description": "Required. The binary log file name.", + "type": "string" + }, + "logPosition": { + "description": "Optional. The position within the binary log file. Default is head of file.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "MysqlObjectIdentifier": { "description": "Mysql data source object identifier.", "id": "MysqlObjectIdentifier", @@ -2003,6 +2092,11 @@ "$ref": "MysqlRdbms", "description": "MySQL objects to retrieve from the source." }, + "maxConcurrentBackfillTasks": { + "description": "Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.", + "format": "int32", + "type": "integer" + }, "maxConcurrentCdcTasks": { "description": "Maximum number of concurrent CDC tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.", "format": "int32", @@ -2063,6 +2157,12 @@ }, "type": "object" }, + "NextAvailableStartPosition": { + "description": "CDC strategy to resume replication from the next available position in the source.", + "id": "NextAvailableStartPosition", + "properties": {}, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -2092,7 +2192,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" } }, @@ -2228,6 +2328,10 @@ "description": "Required. Hostname for the Oracle connection.", "type": "string" }, + "oracleSslConfig": { + "$ref": "OracleSslConfig", + "description": "Optional. SSL configuration for the Oracle connection." + }, "password": { "description": "Required. Password for the Oracle connection.", "type": "string" @@ -2276,6 +2380,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", @@ -2292,14 +2408,35 @@ "$ref": "OracleRdbms", "description": "Oracle objects to include in the stream." }, + "maxConcurrentBackfillTasks": { + "description": "Maximum number of concurrent backfill tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.", + "format": "int32", + "type": "integer" + }, "maxConcurrentCdcTasks": { - "description": "Maximum number of concurrent CDC tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.", + "description": "Maximum number of concurrent CDC tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.", "format": "int32", "type": "integer" }, "streamLargeObjects": { "$ref": "StreamLargeObjects", - "description": "Stream large object values. NOTE: This feature is currently experimental." + "description": "Stream large object values." + } + }, + "type": "object" + }, + "OracleSslConfig": { + "description": "Oracle SSL configuration information.", + "id": "OracleSslConfig", + "properties": { + "caCertificate": { + "description": "Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.", + "type": "string" + }, + "caCertificateSet": { + "description": "Output only. Indicates whether the ca_certificate field has been set for this Connection-Profile.", + "readOnly": true, + "type": "boolean" } }, "type": "object" @@ -2452,6 +2589,11 @@ "$ref": "PostgresqlRdbms", "description": "PostgreSQL objects to include in the stream." }, + "maxConcurrentBackfillTasks": { + "description": "Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.", + "format": "int32", + "type": "integer" + }, "publication": { "description": "Required. The name of the publication that includes the set of all tables that are defined in the stream's include_objects.", "type": "string" @@ -2601,12 +2743,23 @@ }, "type": "object" }, + "RunStreamRequest": { + "description": "Request message for running a stream.", + "id": "RunStreamRequest", + "properties": { + "cdcStrategy": { + "$ref": "CdcStrategy", + "description": "Optional. The CDC strategy of the stream. If not set, the system's default value will be used." + } + }, + "type": "object" + }, "SingleTargetDataset": { "description": "A single target dataset to which all data will be streamed.", "id": "SingleTargetDataset", "properties": { "datasetId": { - "description": "The dataset ID of the target dataset.", + "description": "The dataset ID of the target dataset. DatasetIds allowed characters: https://cloud.google.com/bigquery/docs/reference/rest/v2/datasets#datasetreference.", "type": "string" } }, @@ -2631,6 +2784,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" @@ -2640,7 +2797,8 @@ "id": "SourceHierarchyDatasets", "properties": { "datasetTemplate": { - "$ref": "DatasetTemplate" + "$ref": "DatasetTemplate", + "description": "The dataset template to use for dynamic dataset creation." } }, "type": "object" @@ -2660,6 +2818,186 @@ "postgresqlIdentifier": { "$ref": "PostgresqlObjectIdentifier", "description": "PostgreSQL data source object identifier." + }, + "sqlServerIdentifier": { + "$ref": "SqlServerObjectIdentifier", + "description": "SQLServer data source object identifier." + } + }, + "type": "object" + }, + "SpecificStartPosition": { + "description": "CDC strategy to start replicating from a specific position in the source.", + "id": "SpecificStartPosition", + "properties": { + "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" @@ -2682,7 +3020,7 @@ "type": "object" }, "StaticServiceIpConnectivity": { - "description": "Static IP address connectivity.", + "description": "Static IP address connectivity. Used when the source database is configured to allow incoming connections from the Datastream public IP addresses for the region specified in the connection profile.", "id": "StaticServiceIpConnectivity", "properties": {}, "type": "object" @@ -2776,6 +3114,12 @@ "description": "Labels.", "type": "object" }, + "lastRecoveryTime": { + "description": "Output only. If the stream was recovered, the time of the last recovery. Note: This field is currently experimental.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "name": { "description": "Output only. The stream's name.", "readOnly": true, @@ -2890,19 +3234,22 @@ "type": "array" }, "state": { - "description": "Validation execution status.", + "description": "Output only. Validation execution status.", "enum": [ "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/etc/api/datastream/v1alpha1/datastream-api.json b/etc/api/datastream/v1alpha1/datastream-api.json index be3bf69349..f7317efacb 100644 --- a/etc/api/datastream/v1alpha1/datastream-api.json +++ b/etc/api/datastream/v1alpha1/datastream-api.json @@ -110,6 +110,7 @@ "locations": { "methods": { "fetchStaticIps": { + "deprecated": true, "description": "The FetchStaticIps API call exposes the static IP addresses used by Datastream.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}:fetchStaticIps", "httpMethod": "GET", @@ -214,8 +215,10 @@ }, "resources": { "connectionProfiles": { + "deprecated": true, "methods": { "create": { + "deprecated": true, "description": "Use this method to create a connection profile in a project and location.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/connectionProfiles", "httpMethod": "POST", @@ -254,6 +257,7 @@ ] }, "delete": { + "deprecated": true, "description": "Use this method to delete a connection profile..", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}", "httpMethod": "DELETE", @@ -284,6 +288,7 @@ ] }, "discover": { + "deprecated": true, "description": "Use this method to discover a connection profile. The discover API call exposes the data objects and metadata belonging to the profile. Typically, a request returns children data objects under a parent data object that's optionally supplied in the request.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/connectionProfiles:discover", "httpMethod": "POST", @@ -312,6 +317,7 @@ ] }, "get": { + "deprecated": true, "description": "Use this method to get details about a connection profile.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}", "httpMethod": "GET", @@ -337,6 +343,7 @@ ] }, "list": { + "deprecated": true, "description": "Use this method to list connection profiles created in a project and location.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/connectionProfiles", "httpMethod": "GET", @@ -383,6 +390,7 @@ ] }, "patch": { + "deprecated": true, "description": "Use this method to update the parameters of a connection profile.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}", "httpMethod": "PATCH", @@ -509,7 +517,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "datastream.projects.locations.operations.list", @@ -554,6 +562,7 @@ "privateConnections": { "methods": { "create": { + "deprecated": true, "description": "Use this method to create a private connectivity configuration.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections", "httpMethod": "POST", @@ -592,6 +601,7 @@ ] }, "delete": { + "deprecated": true, "description": "Use this method to delete a private connectivity configuration.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}", "httpMethod": "DELETE", @@ -627,6 +637,7 @@ ] }, "get": { + "deprecated": true, "description": "Use this method to get details about a private connectivity configuration.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}", "httpMethod": "GET", @@ -652,6 +663,7 @@ ] }, "list": { + "deprecated": true, "description": "Use this method to list private connectivity configurations in a project and location.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections", "httpMethod": "GET", @@ -700,8 +712,10 @@ }, "resources": { "routes": { + "deprecated": true, "methods": { "create": { + "deprecated": true, "description": "Use this method to create a route for a private connectivity in a project and location.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}/routes", "httpMethod": "POST", @@ -740,6 +754,7 @@ ] }, "delete": { + "deprecated": true, "description": "Use this method to delete a route.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}/routes/{routesId}", "httpMethod": "DELETE", @@ -770,6 +785,7 @@ ] }, "get": { + "deprecated": true, "description": "Use this method to get details about a route.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}/routes/{routesId}", "httpMethod": "GET", @@ -795,6 +811,7 @@ ] }, "list": { + "deprecated": true, "description": "Use this method to list routes created for a private connectivity in a project and location.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}/routes", "httpMethod": "GET", @@ -847,6 +864,7 @@ "streams": { "methods": { "create": { + "deprecated": true, "description": "Use this method to create a stream.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams", "httpMethod": "POST", @@ -895,6 +913,7 @@ ] }, "delete": { + "deprecated": true, "description": "Use this method to delete a stream.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}", "httpMethod": "DELETE", @@ -925,6 +944,7 @@ ] }, "fetchErrors": { + "deprecated": true, "description": "Use this method to fetch any errors associated with a stream.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}:fetchErrors", "httpMethod": "POST", @@ -953,6 +973,7 @@ ] }, "get": { + "deprecated": true, "description": "Use this method to get details about a stream.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}", "httpMethod": "GET", @@ -978,6 +999,7 @@ ] }, "list": { + "deprecated": true, "description": "Use this method to list streams in a project and location.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams", "httpMethod": "GET", @@ -1024,6 +1046,7 @@ ] }, "patch": { + "deprecated": true, "description": "Use this method to update the configuration of a stream.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}", "httpMethod": "PATCH", @@ -1075,8 +1098,10 @@ }, "resources": { "objects": { + "deprecated": true, "methods": { "get": { + "deprecated": true, "description": "Use this method to get details about a stream object.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}/objects/{objectsId}", "httpMethod": "GET", @@ -1102,6 +1127,7 @@ ] }, "list": { + "deprecated": true, "description": "Use this method to list the objects of a specific stream.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}/objects", "httpMethod": "GET", @@ -1138,6 +1164,7 @@ ] }, "startBackfillJob": { + "deprecated": true, "description": "Starts backfill job for the specified stream object.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}/objects/{objectsId}:startBackfillJob", "httpMethod": "POST", @@ -1163,6 +1190,7 @@ ] }, "stopBackfillJob": { + "deprecated": true, "description": "Stops the backfill job for the specified stream object.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}/objects/{objectsId}:stopBackfillJob", "httpMethod": "POST", @@ -1196,7 +1224,7 @@ } } }, - "revision": "20230111", + "revision": "20240221", "rootUrl": "https://datastream.googleapis.com/", "schemas": { "AvroFileFormat": { @@ -1548,6 +1576,7 @@ "type": "integer" }, "gcsFileFormat": { + "deprecated": true, "description": "File format that data should be written in. Deprecated field (b/169501737) - use file_format instead.", "enum": [ "GCS_FILE_FORMAT_UNSPECIFIED", @@ -1772,7 +1801,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -2019,7 +2048,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/etc/api/deploymentmanager/alpha/deploymentmanager-api.json b/etc/api/deploymentmanager/alpha/deploymentmanager-api.json index 2226a1eebd..17a2c3dd4e 100644 --- a/etc/api/deploymentmanager/alpha/deploymentmanager-api.json +++ b/etc/api/deploymentmanager/alpha/deploymentmanager-api.json @@ -224,7 +224,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -563,7 +563,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -927,7 +927,7 @@ "type": "string" }, "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1017,7 +1017,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1123,7 +1123,7 @@ "type": "string" }, "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1320,7 +1320,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1372,7 +1372,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1544,7 +1544,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1588,7 +1588,7 @@ } } }, - "revision": "20230105", + "revision": "20240229", "rootUrl": "https://deploymentmanager.googleapis.com/", "schemas": { "AsyncOptions": { @@ -1702,19 +1702,61 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, + "BulkInsertOperationStatus": { + "id": "BulkInsertOperationStatus", + "properties": { + "createdVmCount": { + "description": "[Output Only] Count of VMs successfully created so far.", + "format": "int32", + "type": "integer" + }, + "deletedVmCount": { + "description": "[Output Only] Count of VMs that got deleted during rollback.", + "format": "int32", + "type": "integer" + }, + "failedToCreateVmCount": { + "description": "[Output Only] Count of VMs that started creating but encountered an error.", + "format": "int32", + "type": "integer" + }, + "status": { + "description": "[Output Only] Creation status of BulkInsert operation - information if the flow is rolling forward or rolling back.", + "enum": [ + "STATUS_UNSPECIFIED", + "CREATING", + "ROLLING_BACK", + "DONE" + ], + "enumDescriptions": [ + "", + "Rolling forward - creating VMs.", + "Rolling back - cleaning up after an error.", + "Done" + ], + "type": "string" + }, + "targetVmCount": { + "description": "[Output Only] Count of VMs originally planned to be created.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "CollectionOverride": { "description": "CollectionOverride allows resource handling overrides for specific resources within a BaseType", "id": "CollectionOverride", @@ -2154,6 +2196,19 @@ }, "type": "object" }, + "InstancesBulkInsertOperationMetadata": { + "id": "InstancesBulkInsertOperationMetadata", + "properties": { + "perLocationStatus": { + "additionalProperties": { + "$ref": "BulkInsertOperationStatus" + }, + "description": "Status information per location (location name is key). Example key: zones/us-central1-a", + "type": "object" + } + }, + "type": "object" + }, "Manifest": { "id": "Manifest", "properties": { @@ -2251,7 +2306,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 `zonalOperations` 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": { @@ -2315,6 +2370,9 @@ "description": "[Output Only] The time that this operation was requested. This value is in RFC3339 text format.", "type": "string" }, + "instancesBulkInsertOperationMetadata": { + "$ref": "InstancesBulkInsertOperationMetadata" + }, "kind": { "default": "compute#operation", "description": "[Output Only] Type of the resource. Always `compute#operation` for Operation resources.", @@ -2345,6 +2403,10 @@ "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, + "setCommonInstanceMetadataOperationMetadata": { + "$ref": "SetCommonInstanceMetadataOperationMetadata", + "description": "[Output Only] If the operation is for projects.setCommonInstanceMetadata, this field will contain information on all underlying zonal actions and their state." + }, "startTime": { "description": "[Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.", "type": "string" @@ -2377,7 +2439,7 @@ "type": "string" }, "user": { - "description": "[Output Only] User who requested the operation, for example: `user@example.com`.", + "description": "[Output Only] User who requested the operation, for example: `user@example.com` or `alice_smith_identifier (global/workforcePools/example-com-us-employees)`.", "type": "string" }, "warnings": { @@ -2413,7 +2475,38 @@ "PARTIAL_SUCCESS", "LARGE_DEPLOYMENT_WARNING", "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LIST_OVERHEAD_QUOTA_EXCEED" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "A link to a deprecated resource was created.", @@ -2442,7 +2535,8 @@ "Success is reported, but some results may be missing due to errors", "When deploying a deployment with a exceedingly large number of resources", "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2." + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter." ], "type": "string" }, @@ -2527,7 +2621,7 @@ "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/).", + "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": { @@ -2689,7 +2783,38 @@ "PARTIAL_SUCCESS", "LARGE_DEPLOYMENT_WARNING", "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LIST_OVERHEAD_QUOTA_EXCEED" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "A link to a deprecated resource was created.", @@ -2718,7 +2843,8 @@ "Success is reported, but some results may be missing due to errors", "When deploying a deployment with a exceedingly large number of resources", "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2." + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter." ], "type": "string" }, @@ -2902,7 +3028,38 @@ "PARTIAL_SUCCESS", "LARGE_DEPLOYMENT_WARNING", "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LIST_OVERHEAD_QUOTA_EXCEED" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "A link to a deprecated resource was created.", @@ -2931,7 +3088,8 @@ "Success is reported, but some results may be missing due to errors", "When deploying a deployment with a exceedingly large number of resources", "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2." + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter." ], "type": "string" }, @@ -2993,6 +3151,80 @@ }, "type": "object" }, + "SetCommonInstanceMetadataOperationMetadata": { + "id": "SetCommonInstanceMetadataOperationMetadata", + "properties": { + "clientOperationId": { + "description": "[Output Only] The client operation id.", + "type": "string" + }, + "perLocationOperations": { + "additionalProperties": { + "$ref": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo" + }, + "description": "[Output Only] Status information per location (location name is key). Example key: zones/us-central1-a", + "type": "object" + } + }, + "type": "object" + }, + "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo": { + "id": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo", + "properties": { + "error": { + "$ref": "Status", + "description": "[Output Only] If state is `ABANDONED` or `FAILED`, this field is populated." + }, + "state": { + "description": "[Output Only] Status of the action, which can be one of the following: `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.", + "enum": [ + "UNSPECIFIED", + "PROPAGATING", + "PROPAGATED", + "ABANDONED", + "FAILED", + "DONE" + ], + "enumDescriptions": [ + "", + "Operation is not yet confirmed to have been created in the location.", + "Operation is confirmed to be in the location.", + "Operation not tracked in this location e.g. zone is marked as DOWN.", + "Operation is in an error state.", + "Operation has completed successfully." + ], + "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" + }, "TargetConfiguration": { "id": "TargetConfiguration", "properties": { diff --git a/etc/api/deploymentmanager/v2/deploymentmanager-api.json b/etc/api/deploymentmanager/v2/deploymentmanager-api.json index f28f39fe12..4a3ade8c8a 100644 --- a/etc/api/deploymentmanager/v2/deploymentmanager-api.json +++ b/etc/api/deploymentmanager/v2/deploymentmanager-api.json @@ -333,7 +333,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -693,7 +693,7 @@ "type": "string" }, "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -783,7 +783,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -889,7 +889,7 @@ "type": "string" }, "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -944,7 +944,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -988,7 +988,7 @@ } } }, - "revision": "20221208", + "revision": "20240229", "rootUrl": "https://deploymentmanager.googleapis.com/", "schemas": { "AuditConfig": { @@ -1048,19 +1048,61 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, + "BulkInsertOperationStatus": { + "id": "BulkInsertOperationStatus", + "properties": { + "createdVmCount": { + "description": "[Output Only] Count of VMs successfully created so far.", + "format": "int32", + "type": "integer" + }, + "deletedVmCount": { + "description": "[Output Only] Count of VMs that got deleted during rollback.", + "format": "int32", + "type": "integer" + }, + "failedToCreateVmCount": { + "description": "[Output Only] Count of VMs that started creating but encountered an error.", + "format": "int32", + "type": "integer" + }, + "status": { + "description": "[Output Only] Creation status of BulkInsert operation - information if the flow is rolling forward or rolling back.", + "enum": [ + "STATUS_UNSPECIFIED", + "CREATING", + "ROLLING_BACK", + "DONE" + ], + "enumDescriptions": [ + "", + "Rolling forward - creating VMs.", + "Rolling back - cleaning up after an error.", + "Done" + ], + "type": "string" + }, + "targetVmCount": { + "description": "[Output Only] Count of VMs originally planned to be created.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "ConfigFile": { "id": "ConfigFile", "properties": { @@ -1279,6 +1321,19 @@ }, "type": "object" }, + "InstancesBulkInsertOperationMetadata": { + "id": "InstancesBulkInsertOperationMetadata", + "properties": { + "perLocationStatus": { + "additionalProperties": { + "$ref": "BulkInsertOperationStatus" + }, + "description": "Status information per location (location name is key). Example key: zones/us-central1-a", + "type": "object" + } + }, + "type": "object" + }, "Manifest": { "id": "Manifest", "properties": { @@ -1349,7 +1404,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 `zonalOperations` 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": { @@ -1413,6 +1468,9 @@ "description": "[Output Only] The time that this operation was requested. This value is in RFC3339 text format.", "type": "string" }, + "instancesBulkInsertOperationMetadata": { + "$ref": "InstancesBulkInsertOperationMetadata" + }, "kind": { "default": "compute#operation", "description": "[Output Only] Type of the resource. Always `compute#operation` for Operation resources.", @@ -1443,6 +1501,10 @@ "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, + "setCommonInstanceMetadataOperationMetadata": { + "$ref": "SetCommonInstanceMetadataOperationMetadata", + "description": "[Output Only] If the operation is for projects.setCommonInstanceMetadata, this field will contain information on all underlying zonal actions and their state." + }, "startTime": { "description": "[Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.", "type": "string" @@ -1475,7 +1537,7 @@ "type": "string" }, "user": { - "description": "[Output Only] User who requested the operation, for example: `user@example.com`.", + "description": "[Output Only] User who requested the operation, for example: `user@example.com` or `alice_smith_identifier (global/workforcePools/example-com-us-employees)`.", "type": "string" }, "warnings": { @@ -1511,7 +1573,38 @@ "PARTIAL_SUCCESS", "LARGE_DEPLOYMENT_WARNING", "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LIST_OVERHEAD_QUOTA_EXCEED" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "A link to a deprecated resource was created.", @@ -1540,7 +1633,8 @@ "Success is reported, but some results may be missing due to errors", "When deploying a deployment with a exceedingly large number of resources", "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2." + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter." ], "type": "string" }, @@ -1596,7 +1690,7 @@ "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/).", + "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": { @@ -1706,7 +1800,38 @@ "PARTIAL_SUCCESS", "LARGE_DEPLOYMENT_WARNING", "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LIST_OVERHEAD_QUOTA_EXCEED" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "A link to a deprecated resource was created.", @@ -1735,7 +1860,8 @@ "Success is reported, but some results may be missing due to errors", "When deploying a deployment with a exceedingly large number of resources", "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2." + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter." ], "type": "string" }, @@ -1896,7 +2022,38 @@ "PARTIAL_SUCCESS", "LARGE_DEPLOYMENT_WARNING", "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LIST_OVERHEAD_QUOTA_EXCEED" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "A link to a deprecated resource was created.", @@ -1925,7 +2082,8 @@ "Success is reported, but some results may be missing due to errors", "When deploying a deployment with a exceedingly large number of resources", "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2." + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter." ], "type": "string" }, @@ -1976,6 +2134,80 @@ }, "type": "object" }, + "SetCommonInstanceMetadataOperationMetadata": { + "id": "SetCommonInstanceMetadataOperationMetadata", + "properties": { + "clientOperationId": { + "description": "[Output Only] The client operation id.", + "type": "string" + }, + "perLocationOperations": { + "additionalProperties": { + "$ref": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo" + }, + "description": "[Output Only] Status information per location (location name is key). Example key: zones/us-central1-a", + "type": "object" + } + }, + "type": "object" + }, + "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo": { + "id": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo", + "properties": { + "error": { + "$ref": "Status", + "description": "[Output Only] If state is `ABANDONED` or `FAILED`, this field is populated." + }, + "state": { + "description": "[Output Only] Status of the action, which can be one of the following: `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.", + "enum": [ + "UNSPECIFIED", + "PROPAGATING", + "PROPAGATED", + "ABANDONED", + "FAILED", + "DONE" + ], + "enumDescriptions": [ + "", + "Operation is not yet confirmed to have been created in the location.", + "Operation is confirmed to be in the location.", + "Operation not tracked in this location e.g. zone is marked as DOWN.", + "Operation is in an error state.", + "Operation has completed successfully." + ], + "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" + }, "TargetConfiguration": { "id": "TargetConfiguration", "properties": { diff --git a/etc/api/deploymentmanager/v2beta/deploymentmanager-api.json b/etc/api/deploymentmanager/v2beta/deploymentmanager-api.json index 43f69fe189..651445d1a0 100644 --- a/etc/api/deploymentmanager/v2beta/deploymentmanager-api.json +++ b/etc/api/deploymentmanager/v2beta/deploymentmanager-api.json @@ -224,7 +224,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -563,7 +563,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -927,7 +927,7 @@ "type": "string" }, "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1017,7 +1017,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1123,7 +1123,7 @@ "type": "string" }, "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1320,7 +1320,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1372,7 +1372,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1508,7 +1508,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the 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" }, @@ -1552,7 +1552,7 @@ } } }, - "revision": "20221208", + "revision": "20240229", "rootUrl": "https://deploymentmanager.googleapis.com/", "schemas": { "AsyncOptions": { @@ -1666,19 +1666,61 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, + "BulkInsertOperationStatus": { + "id": "BulkInsertOperationStatus", + "properties": { + "createdVmCount": { + "description": "[Output Only] Count of VMs successfully created so far.", + "format": "int32", + "type": "integer" + }, + "deletedVmCount": { + "description": "[Output Only] Count of VMs that got deleted during rollback.", + "format": "int32", + "type": "integer" + }, + "failedToCreateVmCount": { + "description": "[Output Only] Count of VMs that started creating but encountered an error.", + "format": "int32", + "type": "integer" + }, + "status": { + "description": "[Output Only] Creation status of BulkInsert operation - information if the flow is rolling forward or rolling back.", + "enum": [ + "STATUS_UNSPECIFIED", + "CREATING", + "ROLLING_BACK", + "DONE" + ], + "enumDescriptions": [ + "", + "Rolling forward - creating VMs.", + "Rolling back - cleaning up after an error.", + "Done" + ], + "type": "string" + }, + "targetVmCount": { + "description": "[Output Only] Count of VMs originally planned to be created.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "CollectionOverride": { "description": "CollectionOverride allows resource handling overrides for specific resources within a BaseType", "id": "CollectionOverride", @@ -2084,6 +2126,19 @@ }, "type": "object" }, + "InstancesBulkInsertOperationMetadata": { + "id": "InstancesBulkInsertOperationMetadata", + "properties": { + "perLocationStatus": { + "additionalProperties": { + "$ref": "BulkInsertOperationStatus" + }, + "description": "Status information per location (location name is key). Example key: zones/us-central1-a", + "type": "object" + } + }, + "type": "object" + }, "Manifest": { "id": "Manifest", "properties": { @@ -2154,7 +2209,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 `zonalOperations` 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": { @@ -2218,6 +2273,9 @@ "description": "[Output Only] The time that this operation was requested. This value is in RFC3339 text format.", "type": "string" }, + "instancesBulkInsertOperationMetadata": { + "$ref": "InstancesBulkInsertOperationMetadata" + }, "kind": { "default": "compute#operation", "description": "[Output Only] Type of the resource. Always `compute#operation` for Operation resources.", @@ -2248,6 +2306,10 @@ "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, + "setCommonInstanceMetadataOperationMetadata": { + "$ref": "SetCommonInstanceMetadataOperationMetadata", + "description": "[Output Only] If the operation is for projects.setCommonInstanceMetadata, this field will contain information on all underlying zonal actions and their state." + }, "startTime": { "description": "[Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.", "type": "string" @@ -2280,7 +2342,7 @@ "type": "string" }, "user": { - "description": "[Output Only] User who requested the operation, for example: `user@example.com`.", + "description": "[Output Only] User who requested the operation, for example: `user@example.com` or `alice_smith_identifier (global/workforcePools/example-com-us-employees)`.", "type": "string" }, "warnings": { @@ -2316,7 +2378,38 @@ "PARTIAL_SUCCESS", "LARGE_DEPLOYMENT_WARNING", "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LIST_OVERHEAD_QUOTA_EXCEED" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "A link to a deprecated resource was created.", @@ -2345,7 +2438,8 @@ "Success is reported, but some results may be missing due to errors", "When deploying a deployment with a exceedingly large number of resources", "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2." + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter." ], "type": "string" }, @@ -2430,7 +2524,7 @@ "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/).", + "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": { @@ -2569,7 +2663,38 @@ "PARTIAL_SUCCESS", "LARGE_DEPLOYMENT_WARNING", "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LIST_OVERHEAD_QUOTA_EXCEED" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "A link to a deprecated resource was created.", @@ -2598,7 +2723,8 @@ "Success is reported, but some results may be missing due to errors", "When deploying a deployment with a exceedingly large number of resources", "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2." + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter." ], "type": "string" }, @@ -2759,7 +2885,38 @@ "PARTIAL_SUCCESS", "LARGE_DEPLOYMENT_WARNING", "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LIST_OVERHEAD_QUOTA_EXCEED" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "A link to a deprecated resource was created.", @@ -2788,7 +2945,8 @@ "Success is reported, but some results may be missing due to errors", "When deploying a deployment with a exceedingly large number of resources", "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2." + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter." ], "type": "string" }, @@ -2850,6 +3008,80 @@ }, "type": "object" }, + "SetCommonInstanceMetadataOperationMetadata": { + "id": "SetCommonInstanceMetadataOperationMetadata", + "properties": { + "clientOperationId": { + "description": "[Output Only] The client operation id.", + "type": "string" + }, + "perLocationOperations": { + "additionalProperties": { + "$ref": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo" + }, + "description": "[Output Only] Status information per location (location name is key). Example key: zones/us-central1-a", + "type": "object" + } + }, + "type": "object" + }, + "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo": { + "id": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo", + "properties": { + "error": { + "$ref": "Status", + "description": "[Output Only] If state is `ABANDONED` or `FAILED`, this field is populated." + }, + "state": { + "description": "[Output Only] Status of the action, which can be one of the following: `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.", + "enum": [ + "UNSPECIFIED", + "PROPAGATING", + "PROPAGATED", + "ABANDONED", + "FAILED", + "DONE" + ], + "enumDescriptions": [ + "", + "Operation is not yet confirmed to have been created in the location.", + "Operation is confirmed to be in the location.", + "Operation not tracked in this location e.g. zone is marked as DOWN.", + "Operation is in an error state.", + "Operation has completed successfully." + ], + "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" + }, "TargetConfiguration": { "id": "TargetConfiguration", "properties": { diff --git a/etc/api/dfareporting/v3.5/dfareporting-api.json b/etc/api/dfareporting/v3.5/dfareporting-api.json index 242f073fa0..36958e548b 100644 --- a/etc/api/dfareporting/v3.5/dfareporting-api.json +++ b/etc/api/dfareporting/v3.5/dfareporting-api.json @@ -2,12 +2,6 @@ "auth": { "oauth2": { "scopes": { - "https://www.googleapis.com/auth/ddmconversions": { - "description": "Manage DoubleClick Digital Marketing conversions" - }, - "https://www.googleapis.com/auth/dfareporting": { - "description": "View and manage DoubleClick for Advertisers reports" - }, "https://www.googleapis.com/auth/dfatrafficking": { "description": "View and manage your DoubleClick Campaign Manager's (DCM) display ad campaigns" } @@ -111,2752 +105,13 @@ }, "protocol": "rest", "resources": { - "accountActiveAdSummaries": { + "media": { "methods": { - "get": { - "description": "Gets the account's active ad summary by account ID.", - "flatPath": "userprofiles/{profileId}/accountActiveAdSummaries/{summaryAccountId}", - "httpMethod": "GET", - "id": "dfareporting.accountActiveAdSummaries.get", - "parameterOrder": [ - "profileId", - "summaryAccountId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "summaryAccountId": { - "description": "Account ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/accountActiveAdSummaries/{summaryAccountId}", - "response": { - "$ref": "AccountActiveAdSummary" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "accountPermissionGroups": { - "methods": { - "get": { - "description": "Gets one account permission group by ID.", - "flatPath": "userprofiles/{profileId}/accountPermissionGroups/{id}", - "httpMethod": "GET", - "id": "dfareporting.accountPermissionGroups.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Account permission group ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/accountPermissionGroups/{id}", - "response": { - "$ref": "AccountPermissionGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves the list of account permission groups.", - "flatPath": "userprofiles/{profileId}/accountPermissionGroups", - "httpMethod": "GET", - "id": "dfareporting.accountPermissionGroups.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/accountPermissionGroups", - "response": { - "$ref": "AccountPermissionGroupsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "accountPermissions": { - "methods": { - "get": { - "description": "Gets one account permission by ID.", - "flatPath": "userprofiles/{profileId}/accountPermissions/{id}", - "httpMethod": "GET", - "id": "dfareporting.accountPermissions.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Account permission ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/accountPermissions/{id}", - "response": { - "$ref": "AccountPermission" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves the list of account permissions.", - "flatPath": "userprofiles/{profileId}/accountPermissions", - "httpMethod": "GET", - "id": "dfareporting.accountPermissions.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/accountPermissions", - "response": { - "$ref": "AccountPermissionsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "accountUserProfiles": { - "methods": { - "get": { - "description": "Gets one account user profile by ID.", - "flatPath": "userprofiles/{profileId}/accountUserProfiles/{id}", - "httpMethod": "GET", - "id": "dfareporting.accountUserProfiles.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "User profile ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/accountUserProfiles/{id}", - "response": { - "$ref": "AccountUserProfile" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new account user profile.", - "flatPath": "userprofiles/{profileId}/accountUserProfiles", - "httpMethod": "POST", - "id": "dfareporting.accountUserProfiles.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/accountUserProfiles", - "request": { - "$ref": "AccountUserProfile" - }, - "response": { - "$ref": "AccountUserProfile" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of account user profiles, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/accountUserProfiles", - "httpMethod": "GET", - "id": "dfareporting.accountUserProfiles.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "active": { - "description": "Select only active user profiles.", - "location": "query", - "type": "boolean" - }, - "ids": { - "description": "Select only user profiles with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for objects by name, ID or email. Wildcards (*) are allowed. For example, \"user profile*2015\" will return objects with names like \"user profile June 2015\", \"user profile April 2015\", or simply \"user profile 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"user profile\" will match objects with name \"my user profile\", \"user profile 2015\", or simply \"user profile\".", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "subaccountId": { - "description": "Select only user profiles with the specified subaccount ID.", - "format": "int64", - "location": "query", - "type": "string" - }, - "userRoleId": { - "description": "Select only user profiles with the specified user role ID.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/accountUserProfiles", - "response": { - "$ref": "AccountUserProfilesListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing account user profile. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/accountUserProfiles", - "httpMethod": "PATCH", - "id": "dfareporting.accountUserProfiles.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "AccountUserProfile ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/accountUserProfiles", - "request": { - "$ref": "AccountUserProfile" - }, - "response": { - "$ref": "AccountUserProfile" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing account user profile.", - "flatPath": "userprofiles/{profileId}/accountUserProfiles", - "httpMethod": "PUT", - "id": "dfareporting.accountUserProfiles.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/accountUserProfiles", - "request": { - "$ref": "AccountUserProfile" - }, - "response": { - "$ref": "AccountUserProfile" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "accounts": { - "methods": { - "get": { - "description": "Gets one account by ID.", - "flatPath": "userprofiles/{profileId}/accounts/{id}", - "httpMethod": "GET", - "id": "dfareporting.accounts.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Account ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/accounts/{id}", - "response": { - "$ref": "Account" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves the list of accounts, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/accounts", - "httpMethod": "GET", - "id": "dfareporting.accounts.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "active": { - "description": "Select only active accounts. Don't set this field to select both active and non-active accounts.", - "location": "query", - "type": "boolean" - }, - "ids": { - "description": "Select only accounts with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"account*2015\" will return objects with names like \"account June 2015\", \"account April 2015\", or simply \"account 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"account\" will match objects with name \"my account\", \"account 2015\", or simply \"account\".", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/accounts", - "response": { - "$ref": "AccountsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing account. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/accounts", - "httpMethod": "PATCH", - "id": "dfareporting.accounts.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Account ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/accounts", - "request": { - "$ref": "Account" - }, - "response": { - "$ref": "Account" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing account.", - "flatPath": "userprofiles/{profileId}/accounts", - "httpMethod": "PUT", - "id": "dfareporting.accounts.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/accounts", - "request": { - "$ref": "Account" - }, - "response": { - "$ref": "Account" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "ads": { - "methods": { - "get": { - "description": "Gets one ad by ID.", - "flatPath": "userprofiles/{profileId}/ads/{id}", - "httpMethod": "GET", - "id": "dfareporting.ads.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Ad ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/ads/{id}", - "response": { - "$ref": "Ad" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new ad.", - "flatPath": "userprofiles/{profileId}/ads", - "httpMethod": "POST", - "id": "dfareporting.ads.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/ads", - "request": { - "$ref": "Ad" - }, - "response": { - "$ref": "Ad" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of ads, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/ads", - "httpMethod": "GET", - "id": "dfareporting.ads.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "active": { - "description": "Select only active ads.", - "location": "query", - "type": "boolean" - }, - "advertiserId": { - "description": "Select only ads with this advertiser ID.", - "format": "int64", - "location": "query", - "type": "string" - }, - "archived": { - "description": "Select only archived ads.", - "location": "query", - "type": "boolean" - }, - "audienceSegmentIds": { - "description": "Select only ads with these audience segment IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "campaignIds": { - "description": "Select only ads with these campaign IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "compatibility": { - "description": "Select default ads with the specified compatibility. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an in-stream video ads developed with the VAST standard.", - "enum": [ - "DISPLAY", - "DISPLAY_INTERSTITIAL", - "APP", - "APP_INTERSTITIAL", - "IN_STREAM_VIDEO", - "IN_STREAM_AUDIO" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" - ], - "location": "query", - "type": "string" - }, - "creativeIds": { - "description": "Select only ads with these creative IDs assigned.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "creativeOptimizationConfigurationIds": { - "description": "Select only ads with these creative optimization configuration IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "dynamicClickTracker": { - "description": "Select only dynamic click trackers. Applicable when type is AD_SERVING_CLICK_TRACKER. If true, select dynamic click trackers. If false, select static click trackers. Leave unset to select both.", - "location": "query", - "type": "boolean" - }, - "ids": { - "description": "Select only ads with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "landingPageIds": { - "description": "Select only ads with these landing page IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "overriddenEventTagId": { - "description": "Select only ads with this event tag override ID.", - "format": "int64", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "placementIds": { - "description": "Select only ads with these placement IDs assigned.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "remarketingListIds": { - "description": "Select only ads whose list targeting expression use these remarketing list IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"ad*2015\" will return objects with names like \"ad June 2015\", \"ad April 2015\", or simply \"ad 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"ad\" will match objects with name \"my ad\", \"ad 2015\", or simply \"ad\".", - "location": "query", - "type": "string" - }, - "sizeIds": { - "description": "Select only ads with these size IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sslCompliant": { - "description": "Select only ads that are SSL-compliant.", - "location": "query", - "type": "boolean" - }, - "sslRequired": { - "description": "Select only ads that require SSL.", - "location": "query", - "type": "boolean" - }, - "type": { - "description": "Select only ads with these types.", - "enum": [ - "AD_SERVING_STANDARD_AD", - "AD_SERVING_DEFAULT_AD", - "AD_SERVING_CLICK_TRACKER", - "AD_SERVING_TRACKING", - "AD_SERVING_BRAND_SAFE_AD" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "" - ], - "location": "query", - "repeated": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/ads", - "response": { - "$ref": "AdsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing ad. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/ads", - "httpMethod": "PATCH", - "id": "dfareporting.ads.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Ad ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/ads", - "request": { - "$ref": "Ad" - }, - "response": { - "$ref": "Ad" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing ad.", - "flatPath": "userprofiles/{profileId}/ads", - "httpMethod": "PUT", - "id": "dfareporting.ads.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/ads", - "request": { - "$ref": "Ad" - }, - "response": { - "$ref": "Ad" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "advertiserGroups": { - "methods": { - "delete": { - "description": "Deletes an existing advertiser group.", - "flatPath": "userprofiles/{profileId}/advertiserGroups/{id}", - "httpMethod": "DELETE", - "id": "dfareporting.advertiserGroups.delete", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Advertiser group ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/advertiserGroups/{id}", - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "get": { - "description": "Gets one advertiser group by ID.", - "flatPath": "userprofiles/{profileId}/advertiserGroups/{id}", - "httpMethod": "GET", - "id": "dfareporting.advertiserGroups.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Advertiser group ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/advertiserGroups/{id}", - "response": { - "$ref": "AdvertiserGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new advertiser group.", - "flatPath": "userprofiles/{profileId}/advertiserGroups", - "httpMethod": "POST", - "id": "dfareporting.advertiserGroups.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/advertiserGroups", - "request": { - "$ref": "AdvertiserGroup" - }, - "response": { - "$ref": "AdvertiserGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of advertiser groups, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/advertiserGroups", - "httpMethod": "GET", - "id": "dfareporting.advertiserGroups.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "ids": { - "description": "Select only advertiser groups with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"advertiser*2015\" will return objects with names like \"advertiser group June 2015\", \"advertiser group April 2015\", or simply \"advertiser group 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"advertisergroup\" will match objects with name \"my advertisergroup\", \"advertisergroup 2015\", or simply \"advertisergroup\".", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/advertiserGroups", - "response": { - "$ref": "AdvertiserGroupsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing advertiser group. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/advertiserGroups", - "httpMethod": "PATCH", - "id": "dfareporting.advertiserGroups.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "AdvertiserGroup ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/advertiserGroups", - "request": { - "$ref": "AdvertiserGroup" - }, - "response": { - "$ref": "AdvertiserGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing advertiser group.", - "flatPath": "userprofiles/{profileId}/advertiserGroups", - "httpMethod": "PUT", - "id": "dfareporting.advertiserGroups.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/advertiserGroups", - "request": { - "$ref": "AdvertiserGroup" - }, - "response": { - "$ref": "AdvertiserGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "advertiserLandingPages": { - "methods": { - "get": { - "description": "Gets one landing page by ID.", - "flatPath": "userprofiles/{profileId}/advertiserLandingPages/{id}", - "httpMethod": "GET", - "id": "dfareporting.advertiserLandingPages.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Landing page ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/advertiserLandingPages/{id}", - "response": { - "$ref": "LandingPage" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new landing page.", - "flatPath": "userprofiles/{profileId}/advertiserLandingPages", - "httpMethod": "POST", - "id": "dfareporting.advertiserLandingPages.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/advertiserLandingPages", - "request": { - "$ref": "LandingPage" - }, - "response": { - "$ref": "LandingPage" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of landing pages.", - "flatPath": "userprofiles/{profileId}/advertiserLandingPages", - "httpMethod": "GET", - "id": "dfareporting.advertiserLandingPages.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "advertiserIds": { - "description": "Select only landing pages that belong to these advertisers.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "archived": { - "description": "Select only archived landing pages. Don't set this field to select both archived and non-archived landing pages.", - "location": "query", - "type": "boolean" - }, - "campaignIds": { - "description": "Select only landing pages that are associated with these campaigns.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "ids": { - "description": "Select only landing pages with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for landing pages by name or ID. Wildcards (*) are allowed. For example, \"landingpage*2017\" will return landing pages with names like \"landingpage July 2017\", \"landingpage March 2017\", or simply \"landingpage 2017\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"landingpage\" will match campaigns with name \"my landingpage\", \"landingpage 2015\", or simply \"landingpage\".", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "subaccountId": { - "description": "Select only landing pages that belong to this subaccount.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/advertiserLandingPages", - "response": { - "$ref": "AdvertiserLandingPagesListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing advertiser landing page. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/advertiserLandingPages", - "httpMethod": "PATCH", - "id": "dfareporting.advertiserLandingPages.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "LandingPage ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/advertiserLandingPages", - "request": { - "$ref": "LandingPage" - }, - "response": { - "$ref": "LandingPage" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing landing page.", - "flatPath": "userprofiles/{profileId}/advertiserLandingPages", - "httpMethod": "PUT", - "id": "dfareporting.advertiserLandingPages.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/advertiserLandingPages", - "request": { - "$ref": "LandingPage" - }, - "response": { - "$ref": "LandingPage" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "advertisers": { - "methods": { - "get": { - "description": "Gets one advertiser by ID.", - "flatPath": "userprofiles/{profileId}/advertisers/{id}", - "httpMethod": "GET", - "id": "dfareporting.advertisers.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Advertiser ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/advertisers/{id}", - "response": { - "$ref": "Advertiser" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new advertiser.", - "flatPath": "userprofiles/{profileId}/advertisers", - "httpMethod": "POST", - "id": "dfareporting.advertisers.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/advertisers", - "request": { - "$ref": "Advertiser" - }, - "response": { - "$ref": "Advertiser" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of advertisers, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/advertisers", - "httpMethod": "GET", - "id": "dfareporting.advertisers.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "advertiserGroupIds": { - "description": "Select only advertisers with these advertiser group IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "floodlightConfigurationIds": { - "description": "Select only advertisers with these floodlight configuration IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "ids": { - "description": "Select only advertisers with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "includeAdvertisersWithoutGroupsOnly": { - "description": "Select only advertisers which do not belong to any advertiser group.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "onlyParent": { - "description": "Select only advertisers which use another advertiser's floodlight configuration.", - "location": "query", - "type": "boolean" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"advertiser*2015\" will return objects with names like \"advertiser June 2015\", \"advertiser April 2015\", or simply \"advertiser 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"advertiser\" will match objects with name \"my advertiser\", \"advertiser 2015\", or simply \"advertiser\" .", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "status": { - "description": "Select only advertisers with the specified status.", - "enum": [ - "APPROVED", - "ON_HOLD" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "subaccountId": { - "description": "Select only advertisers with these subaccount IDs.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/advertisers", - "response": { - "$ref": "AdvertisersListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing advertiser. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/advertisers", - "httpMethod": "PATCH", - "id": "dfareporting.advertisers.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Advertiser ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/advertisers", - "request": { - "$ref": "Advertiser" - }, - "response": { - "$ref": "Advertiser" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing advertiser.", - "flatPath": "userprofiles/{profileId}/advertisers", - "httpMethod": "PUT", - "id": "dfareporting.advertisers.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/advertisers", - "request": { - "$ref": "Advertiser" - }, - "response": { - "$ref": "Advertiser" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "browsers": { - "methods": { - "list": { - "description": "Retrieves a list of browsers.", - "flatPath": "userprofiles/{profileId}/browsers", - "httpMethod": "GET", - "id": "dfareporting.browsers.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/browsers", - "response": { - "$ref": "BrowsersListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "campaignCreativeAssociations": { - "methods": { - "insert": { - "description": "Associates a creative with the specified campaign. This method creates a default ad with dimensions matching the creative in the campaign if such a default ad does not exist already.", - "flatPath": "userprofiles/{profileId}/campaigns/{campaignId}/campaignCreativeAssociations", - "httpMethod": "POST", - "id": "dfareporting.campaignCreativeAssociations.insert", - "parameterOrder": [ - "profileId", - "campaignId" - ], - "parameters": { - "campaignId": { - "description": "Campaign ID in this association.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/campaigns/{campaignId}/campaignCreativeAssociations", - "request": { - "$ref": "CampaignCreativeAssociation" - }, - "response": { - "$ref": "CampaignCreativeAssociation" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves the list of creative IDs associated with the specified campaign. This method supports paging.", - "flatPath": "userprofiles/{profileId}/campaigns/{campaignId}/campaignCreativeAssociations", - "httpMethod": "GET", - "id": "dfareporting.campaignCreativeAssociations.list", - "parameterOrder": [ - "profileId", - "campaignId" - ], - "parameters": { - "campaignId": { - "description": "Campaign ID in this association.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/campaigns/{campaignId}/campaignCreativeAssociations", - "response": { - "$ref": "CampaignCreativeAssociationsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "campaigns": { - "methods": { - "get": { - "description": "Gets one campaign by ID.", - "flatPath": "userprofiles/{profileId}/campaigns/{id}", - "httpMethod": "GET", - "id": "dfareporting.campaigns.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Campaign ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/campaigns/{id}", - "response": { - "$ref": "Campaign" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new campaign.", - "flatPath": "userprofiles/{profileId}/campaigns", - "httpMethod": "POST", - "id": "dfareporting.campaigns.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/campaigns", - "request": { - "$ref": "Campaign" - }, - "response": { - "$ref": "Campaign" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of campaigns, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/campaigns", - "httpMethod": "GET", - "id": "dfareporting.campaigns.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "advertiserGroupIds": { - "description": "Select only campaigns whose advertisers belong to these advertiser groups.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "advertiserIds": { - "description": "Select only campaigns that belong to these advertisers.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "archived": { - "description": "Select only archived campaigns. Don't set this field to select both archived and non-archived campaigns.", - "location": "query", - "type": "boolean" - }, - "atLeastOneOptimizationActivity": { - "description": "Select only campaigns that have at least one optimization activity.", - "location": "query", - "type": "boolean" - }, - "excludedIds": { - "description": "Exclude campaigns with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "ids": { - "description": "Select only campaigns with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "overriddenEventTagId": { - "description": "Select only campaigns that have overridden this event tag ID.", - "format": "int64", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for campaigns by name or ID. Wildcards (*) are allowed. For example, \"campaign*2015\" will return campaigns with names like \"campaign June 2015\", \"campaign April 2015\", or simply \"campaign 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"campaign\" will match campaigns with name \"my campaign\", \"campaign 2015\", or simply \"campaign\".", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "subaccountId": { - "description": "Select only campaigns that belong to this subaccount.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/campaigns", - "response": { - "$ref": "CampaignsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing campaign. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/campaigns", - "httpMethod": "PATCH", - "id": "dfareporting.campaigns.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Campaign ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/campaigns", - "request": { - "$ref": "Campaign" - }, - "response": { - "$ref": "Campaign" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing campaign.", - "flatPath": "userprofiles/{profileId}/campaigns", - "httpMethod": "PUT", - "id": "dfareporting.campaigns.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/campaigns", - "request": { - "$ref": "Campaign" - }, - "response": { - "$ref": "Campaign" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "changeLogs": { - "methods": { - "get": { - "description": "Gets one change log by ID.", - "flatPath": "userprofiles/{profileId}/changeLogs/{id}", - "httpMethod": "GET", - "id": "dfareporting.changeLogs.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Change log ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/changeLogs/{id}", - "response": { - "$ref": "ChangeLog" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of change logs. This method supports paging.", - "flatPath": "userprofiles/{profileId}/changeLogs", - "httpMethod": "GET", - "id": "dfareporting.changeLogs.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "action": { - "description": "Select only change logs with the specified action.", - "enum": [ - "ACTION_CREATE", - "ACTION_UPDATE", - "ACTION_DELETE", - "ACTION_ENABLE", - "ACTION_DISABLE", - "ACTION_ADD", - "ACTION_REMOVE", - "ACTION_MARK_AS_DEFAULT", - "ACTION_ASSOCIATE", - "ACTION_ASSIGN", - "ACTION_UNASSIGN", - "ACTION_SEND", - "ACTION_LINK", - "ACTION_UNLINK", - "ACTION_PUSH", - "ACTION_EMAIL_TAGS", - "ACTION_SHARE" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "location": "query", - "type": "string" - }, - "ids": { - "description": "Select only change logs with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxChangeTime": { - "description": "Select only change logs whose change time is before the specified maxChangeTime.The time should be formatted as an RFC3339 date/time string. For example, for 10:54 PM on July 18th, 2015, in the America/New York time zone, the format is \"2015-07-18T22:54:00-04:00\". In other words, the year, month, day, the letter T, the hour (24-hour clock system), minute, second, and then the time zone offset.", - "location": "query", - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "minChangeTime": { - "description": "Select only change logs whose change time is after the specified minChangeTime.The time should be formatted as an RFC3339 date/time string. For example, for 10:54 PM on July 18th, 2015, in the America/New York time zone, the format is \"2015-07-18T22:54:00-04:00\". In other words, the year, month, day, the letter T, the hour (24-hour clock system), minute, second, and then the time zone offset.", - "location": "query", - "type": "string" - }, - "objectIds": { - "description": "Select only change logs with these object IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "objectType": { - "description": "Select only change logs with the specified object type.", - "enum": [ - "OBJECT_ADVERTISER", - "OBJECT_FLOODLIGHT_CONFIGURATION", - "OBJECT_AD", - "OBJECT_FLOODLIGHT_ACTVITY", - "OBJECT_CAMPAIGN", - "OBJECT_FLOODLIGHT_ACTIVITY_GROUP", - "OBJECT_CREATIVE", - "OBJECT_PLACEMENT", - "OBJECT_DFA_SITE", - "OBJECT_USER_ROLE", - "OBJECT_USER_PROFILE", - "OBJECT_ADVERTISER_GROUP", - "OBJECT_ACCOUNT", - "OBJECT_SUBACCOUNT", - "OBJECT_RICHMEDIA_CREATIVE", - "OBJECT_INSTREAM_CREATIVE", - "OBJECT_MEDIA_ORDER", - "OBJECT_CONTENT_CATEGORY", - "OBJECT_PLACEMENT_STRATEGY", - "OBJECT_SD_SITE", - "OBJECT_SIZE", - "OBJECT_CREATIVE_GROUP", - "OBJECT_CREATIVE_ASSET", - "OBJECT_USER_PROFILE_FILTER", - "OBJECT_LANDING_PAGE", - "OBJECT_CREATIVE_FIELD", - "OBJECT_REMARKETING_LIST", - "OBJECT_PROVIDED_LIST_CLIENT", - "OBJECT_EVENT_TAG", - "OBJECT_CREATIVE_BUNDLE", - "OBJECT_BILLING_ACCOUNT_GROUP", - "OBJECT_BILLING_FEATURE", - "OBJECT_RATE_CARD", - "OBJECT_ACCOUNT_BILLING_FEATURE", - "OBJECT_BILLING_MINIMUM_FEE", - "OBJECT_BILLING_PROFILE", - "OBJECT_PLAYSTORE_LINK", - "OBJECT_TARGETING_TEMPLATE", - "OBJECT_SEARCH_LIFT_STUDY", - "OBJECT_FLOODLIGHT_DV360_LINK", - "OBJECT_ADVERTISER_CUSTOMER_LINK" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Select only change logs whose object ID, user name, old or new values match the search string.", - "location": "query", - "type": "string" - }, - "userProfileIds": { - "description": "Select only change logs with these user profile IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/changeLogs", - "response": { - "$ref": "ChangeLogsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "cities": { - "methods": { - "list": { - "description": "Retrieves a list of cities, possibly filtered.", - "flatPath": "userprofiles/{profileId}/cities", - "httpMethod": "GET", - "id": "dfareporting.cities.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "countryDartIds": { - "description": "Select only cities from these countries.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "dartIds": { - "description": "Select only cities with these DART IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "namePrefix": { - "description": "Select only cities with names starting with this prefix.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "regionDartIds": { - "description": "Select only cities from these regions.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/cities", - "response": { - "$ref": "CitiesListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "connectionTypes": { - "methods": { - "get": { - "description": "Gets one connection type by ID.", - "flatPath": "userprofiles/{profileId}/connectionTypes/{id}", - "httpMethod": "GET", - "id": "dfareporting.connectionTypes.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Connection type ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/connectionTypes/{id}", - "response": { - "$ref": "ConnectionType" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of connection types.", - "flatPath": "userprofiles/{profileId}/connectionTypes", - "httpMethod": "GET", - "id": "dfareporting.connectionTypes.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/connectionTypes", - "response": { - "$ref": "ConnectionTypesListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "contentCategories": { - "methods": { - "delete": { - "description": "Deletes an existing content category.", - "flatPath": "userprofiles/{profileId}/contentCategories/{id}", - "httpMethod": "DELETE", - "id": "dfareporting.contentCategories.delete", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Content category ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/contentCategories/{id}", - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "get": { - "description": "Gets one content category by ID.", - "flatPath": "userprofiles/{profileId}/contentCategories/{id}", - "httpMethod": "GET", - "id": "dfareporting.contentCategories.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Content category ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/contentCategories/{id}", - "response": { - "$ref": "ContentCategory" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new content category.", - "flatPath": "userprofiles/{profileId}/contentCategories", - "httpMethod": "POST", - "id": "dfareporting.contentCategories.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/contentCategories", - "request": { - "$ref": "ContentCategory" - }, - "response": { - "$ref": "ContentCategory" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of content categories, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/contentCategories", - "httpMethod": "GET", - "id": "dfareporting.contentCategories.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "ids": { - "description": "Select only content categories with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"contentcategory*2015\" will return objects with names like \"contentcategory June 2015\", \"contentcategory April 2015\", or simply \"contentcategory 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"contentcategory\" will match objects with name \"my contentcategory\", \"contentcategory 2015\", or simply \"contentcategory\".", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/contentCategories", - "response": { - "$ref": "ContentCategoriesListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing content category. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/contentCategories", - "httpMethod": "PATCH", - "id": "dfareporting.contentCategories.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "ContentCategory ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/contentCategories", - "request": { - "$ref": "ContentCategory" - }, - "response": { - "$ref": "ContentCategory" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing content category.", - "flatPath": "userprofiles/{profileId}/contentCategories", - "httpMethod": "PUT", - "id": "dfareporting.contentCategories.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/contentCategories", - "request": { - "$ref": "ContentCategory" - }, - "response": { - "$ref": "ContentCategory" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "conversions": { - "methods": { - "batchinsert": { - "description": "Inserts conversions.", - "flatPath": "userprofiles/{profileId}/conversions/batchinsert", - "httpMethod": "POST", - "id": "dfareporting.conversions.batchinsert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/conversions/batchinsert", - "request": { - "$ref": "ConversionsBatchInsertRequest" - }, - "response": { - "$ref": "ConversionsBatchInsertResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/ddmconversions" - ] - }, - "batchupdate": { - "description": "Updates existing conversions.", - "flatPath": "userprofiles/{profileId}/conversions/batchupdate", - "httpMethod": "POST", - "id": "dfareporting.conversions.batchupdate", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/conversions/batchupdate", - "request": { - "$ref": "ConversionsBatchUpdateRequest" - }, - "response": { - "$ref": "ConversionsBatchUpdateResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/ddmconversions" - ] - } - } - }, - "countries": { - "methods": { - "get": { - "description": "Gets one country by ID.", - "flatPath": "userprofiles/{profileId}/countries/{dartId}", - "httpMethod": "GET", - "id": "dfareporting.countries.get", - "parameterOrder": [ - "profileId", - "dartId" - ], - "parameters": { - "dartId": { - "description": "Country DART ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/countries/{dartId}", - "response": { - "$ref": "Country" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of countries.", - "flatPath": "userprofiles/{profileId}/countries", - "httpMethod": "GET", - "id": "dfareporting.countries.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/countries", - "response": { - "$ref": "CountriesListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "creativeAssets": { - "methods": { - "insert": { + "upload": { "description": "Inserts a new creative asset.", - "flatPath": "userprofiles/{profileId}/creativeAssets/{advertiserId}/creativeAssets", + "flatPath": "userprofiles/{userprofilesId}/creativeAssets/{creativeAssetsId}/creativeAssets", "httpMethod": "POST", - "id": "dfareporting.creativeAssets.insert", + "id": "dfareporting.media.upload", "mediaUpload": { "accept": [ "*/*" @@ -2865,7 +120,7 @@ "protocols": { "simple": { "multipart": true, - "path": "/upload/dfareporting/v3.5/userprofiles/{profileId}/creativeAssets/{advertiserId}/creativeAssets" + "path": "/upload/dfareporting/v3.5/userprofiles/{+profileId}/creativeAssets/{+advertiserId}/creativeAssets" } } }, @@ -2878,6 +133,7 @@ "description": "Advertiser ID of this creative. This is a required field.", "format": "int64", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, @@ -2885,11 +141,12 @@ "description": "User profile ID associated with this request.", "format": "int64", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" } }, - "path": "userprofiles/{profileId}/creativeAssets/{advertiserId}/creativeAssets", + "path": "userprofiles/{+profileId}/creativeAssets/{+advertiserId}/creativeAssets", "request": { "$ref": "CreativeAssetMetadata" }, @@ -2902,8204 +159,11 @@ "supportsMediaUpload": true } } - }, - "creativeFieldValues": { - "methods": { - "delete": { - "description": "Deletes an existing creative field value.", - "flatPath": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues/{id}", - "httpMethod": "DELETE", - "id": "dfareporting.creativeFieldValues.delete", - "parameterOrder": [ - "profileId", - "creativeFieldId", - "id" - ], - "parameters": { - "creativeFieldId": { - "description": "Creative field ID for this creative field value.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "id": { - "description": "Creative Field Value ID", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues/{id}", - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "get": { - "description": "Gets one creative field value by ID.", - "flatPath": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues/{id}", - "httpMethod": "GET", - "id": "dfareporting.creativeFieldValues.get", - "parameterOrder": [ - "profileId", - "creativeFieldId", - "id" - ], - "parameters": { - "creativeFieldId": { - "description": "Creative field ID for this creative field value.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "id": { - "description": "Creative Field Value ID", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues/{id}", - "response": { - "$ref": "CreativeFieldValue" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new creative field value.", - "flatPath": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", - "httpMethod": "POST", - "id": "dfareporting.creativeFieldValues.insert", - "parameterOrder": [ - "profileId", - "creativeFieldId" - ], - "parameters": { - "creativeFieldId": { - "description": "Creative field ID for this creative field value.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", - "request": { - "$ref": "CreativeFieldValue" - }, - "response": { - "$ref": "CreativeFieldValue" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of creative field values, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", - "httpMethod": "GET", - "id": "dfareporting.creativeFieldValues.list", - "parameterOrder": [ - "profileId", - "creativeFieldId" - ], - "parameters": { - "creativeFieldId": { - "description": "Creative field ID for this creative field value.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "ids": { - "description": "Select only creative field values with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for creative field values by their values. Wildcards (e.g. *) are not allowed.", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "VALUE" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", - "response": { - "$ref": "CreativeFieldValuesListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing creative field value. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", - "httpMethod": "PATCH", - "id": "dfareporting.creativeFieldValues.patch", - "parameterOrder": [ - "profileId", - "creativeFieldId", - "id" - ], - "parameters": { - "creativeFieldId": { - "description": "CreativeField ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "id": { - "description": "CreativeFieldValue ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", - "request": { - "$ref": "CreativeFieldValue" - }, - "response": { - "$ref": "CreativeFieldValue" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing creative field value.", - "flatPath": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", - "httpMethod": "PUT", - "id": "dfareporting.creativeFieldValues.update", - "parameterOrder": [ - "profileId", - "creativeFieldId" - ], - "parameters": { - "creativeFieldId": { - "description": "Creative field ID for this creative field value.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", - "request": { - "$ref": "CreativeFieldValue" - }, - "response": { - "$ref": "CreativeFieldValue" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "creativeFields": { - "methods": { - "delete": { - "description": "Deletes an existing creative field.", - "flatPath": "userprofiles/{profileId}/creativeFields/{id}", - "httpMethod": "DELETE", - "id": "dfareporting.creativeFields.delete", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Creative Field ID", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creativeFields/{id}", - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "get": { - "description": "Gets one creative field by ID.", - "flatPath": "userprofiles/{profileId}/creativeFields/{id}", - "httpMethod": "GET", - "id": "dfareporting.creativeFields.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Creative Field ID", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creativeFields/{id}", - "response": { - "$ref": "CreativeField" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new creative field.", - "flatPath": "userprofiles/{profileId}/creativeFields", - "httpMethod": "POST", - "id": "dfareporting.creativeFields.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creativeFields", - "request": { - "$ref": "CreativeField" - }, - "response": { - "$ref": "CreativeField" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of creative fields, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/creativeFields", - "httpMethod": "GET", - "id": "dfareporting.creativeFields.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "advertiserIds": { - "description": "Select only creative fields that belong to these advertisers.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "ids": { - "description": "Select only creative fields with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for creative fields by name or ID. Wildcards (*) are allowed. For example, \"creativefield*2015\" will return creative fields with names like \"creativefield June 2015\", \"creativefield April 2015\", or simply \"creativefield 2015\". Most of the searches also add wild-cards implicitly at the start and the end of the search string. For example, a search string of \"creativefield\" will match creative fields with the name \"my creativefield\", \"creativefield 2015\", or simply \"creativefield\".", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creativeFields", - "response": { - "$ref": "CreativeFieldsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing creative field. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/creativeFields", - "httpMethod": "PATCH", - "id": "dfareporting.creativeFields.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "CreativeField ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creativeFields", - "request": { - "$ref": "CreativeField" - }, - "response": { - "$ref": "CreativeField" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing creative field.", - "flatPath": "userprofiles/{profileId}/creativeFields", - "httpMethod": "PUT", - "id": "dfareporting.creativeFields.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creativeFields", - "request": { - "$ref": "CreativeField" - }, - "response": { - "$ref": "CreativeField" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "creativeGroups": { - "methods": { - "get": { - "description": "Gets one creative group by ID.", - "flatPath": "userprofiles/{profileId}/creativeGroups/{id}", - "httpMethod": "GET", - "id": "dfareporting.creativeGroups.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Creative group ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creativeGroups/{id}", - "response": { - "$ref": "CreativeGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new creative group.", - "flatPath": "userprofiles/{profileId}/creativeGroups", - "httpMethod": "POST", - "id": "dfareporting.creativeGroups.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creativeGroups", - "request": { - "$ref": "CreativeGroup" - }, - "response": { - "$ref": "CreativeGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of creative groups, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/creativeGroups", - "httpMethod": "GET", - "id": "dfareporting.creativeGroups.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "advertiserIds": { - "description": "Select only creative groups that belong to these advertisers.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "groupNumber": { - "description": "Select only creative groups that belong to this subgroup.", - "format": "int32", - "location": "query", - "maximum": "2", - "minimum": "1", - "type": "integer" - }, - "ids": { - "description": "Select only creative groups with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for creative groups by name or ID. Wildcards (*) are allowed. For example, \"creativegroup*2015\" will return creative groups with names like \"creativegroup June 2015\", \"creativegroup April 2015\", or simply \"creativegroup 2015\". Most of the searches also add wild-cards implicitly at the start and the end of the search string. For example, a search string of \"creativegroup\" will match creative groups with the name \"my creativegroup\", \"creativegroup 2015\", or simply \"creativegroup\".", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creativeGroups", - "response": { - "$ref": "CreativeGroupsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing creative group. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/creativeGroups", - "httpMethod": "PATCH", - "id": "dfareporting.creativeGroups.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "CreativeGroup ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creativeGroups", - "request": { - "$ref": "CreativeGroup" - }, - "response": { - "$ref": "CreativeGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing creative group.", - "flatPath": "userprofiles/{profileId}/creativeGroups", - "httpMethod": "PUT", - "id": "dfareporting.creativeGroups.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creativeGroups", - "request": { - "$ref": "CreativeGroup" - }, - "response": { - "$ref": "CreativeGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "creatives": { - "methods": { - "get": { - "description": "Gets one creative by ID.", - "flatPath": "userprofiles/{profileId}/creatives/{id}", - "httpMethod": "GET", - "id": "dfareporting.creatives.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Creative ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creatives/{id}", - "response": { - "$ref": "Creative" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new creative.", - "flatPath": "userprofiles/{profileId}/creatives", - "httpMethod": "POST", - "id": "dfareporting.creatives.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creatives", - "request": { - "$ref": "Creative" - }, - "response": { - "$ref": "Creative" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of creatives, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/creatives", - "httpMethod": "GET", - "id": "dfareporting.creatives.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "active": { - "description": "Select only active creatives. Leave blank to select active and inactive creatives.", - "location": "query", - "type": "boolean" - }, - "advertiserId": { - "description": "Select only creatives with this advertiser ID.", - "format": "int64", - "location": "query", - "type": "string" - }, - "archived": { - "description": "Select only archived creatives. Leave blank to select archived and unarchived creatives.", - "location": "query", - "type": "boolean" - }, - "campaignId": { - "description": "Select only creatives with this campaign ID.", - "format": "int64", - "location": "query", - "type": "string" - }, - "companionCreativeIds": { - "description": "Select only in-stream video creatives with these companion IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "creativeFieldIds": { - "description": "Select only creatives with these creative field IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "ids": { - "description": "Select only creatives with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "renderingIds": { - "description": "Select only creatives with these rendering IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"creative*2015\" will return objects with names like \"creative June 2015\", \"creative April 2015\", or simply \"creative 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"creative\" will match objects with name \"my creative\", \"creative 2015\", or simply \"creative\".", - "location": "query", - "type": "string" - }, - "sizeIds": { - "description": "Select only creatives with these size IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "studioCreativeId": { - "description": "Select only creatives corresponding to this Studio creative ID.", - "format": "int64", - "location": "query", - "type": "string" - }, - "types": { - "description": "Select only creatives with these creative types.", - "enum": [ - "IMAGE", - "DISPLAY_REDIRECT", - "CUSTOM_DISPLAY", - "INTERNAL_REDIRECT", - "CUSTOM_DISPLAY_INTERSTITIAL", - "INTERSTITIAL_INTERNAL_REDIRECT", - "TRACKING_TEXT", - "RICH_MEDIA_DISPLAY_BANNER", - "RICH_MEDIA_INPAGE_FLOATING", - "RICH_MEDIA_IM_EXPAND", - "RICH_MEDIA_DISPLAY_EXPANDING", - "RICH_MEDIA_DISPLAY_INTERSTITIAL", - "RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL", - "RICH_MEDIA_MOBILE_IN_APP", - "FLASH_INPAGE", - "INSTREAM_VIDEO", - "VPAID_LINEAR_VIDEO", - "VPAID_NON_LINEAR_VIDEO", - "INSTREAM_VIDEO_REDIRECT", - "RICH_MEDIA_PEEL_DOWN", - "HTML5_BANNER", - "DISPLAY", - "DISPLAY_IMAGE_GALLERY", - "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO", - "INSTREAM_AUDIO" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "location": "query", - "repeated": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creatives", - "response": { - "$ref": "CreativesListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing creative. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/creatives", - "httpMethod": "PATCH", - "id": "dfareporting.creatives.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Creative ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creatives", - "request": { - "$ref": "Creative" - }, - "response": { - "$ref": "Creative" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing creative.", - "flatPath": "userprofiles/{profileId}/creatives", - "httpMethod": "PUT", - "id": "dfareporting.creatives.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/creatives", - "request": { - "$ref": "Creative" - }, - "response": { - "$ref": "Creative" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "dimensionValues": { - "methods": { - "query": { - "description": "Retrieves list of report dimension values for a list of filters.", - "flatPath": "userprofiles/{profileId}/dimensionvalues/query", - "httpMethod": "POST", - "id": "dfareporting.dimensionValues.query", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "maxResults": { - "default": "100", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "100", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "The value of the nextToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "The Campaign Manager 360 user profile ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/dimensionvalues/query", - "request": { - "$ref": "DimensionValueRequest" - }, - "response": { - "$ref": "DimensionValueList" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfareporting" - ] - } - } - }, - "directorySites": { - "methods": { - "get": { - "description": "Gets one directory site by ID.", - "flatPath": "userprofiles/{profileId}/directorySites/{id}", - "httpMethod": "GET", - "id": "dfareporting.directorySites.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Directory site ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/directorySites/{id}", - "response": { - "$ref": "DirectorySite" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new directory site.", - "flatPath": "userprofiles/{profileId}/directorySites", - "httpMethod": "POST", - "id": "dfareporting.directorySites.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/directorySites", - "request": { - "$ref": "DirectorySite" - }, - "response": { - "$ref": "DirectorySite" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of directory sites, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/directorySites", - "httpMethod": "GET", - "id": "dfareporting.directorySites.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "acceptsInStreamVideoPlacements": { - "description": "This search filter is no longer supported and will have no effect on the results returned.", - "location": "query", - "type": "boolean" - }, - "acceptsInterstitialPlacements": { - "description": "This search filter is no longer supported and will have no effect on the results returned.", - "location": "query", - "type": "boolean" - }, - "acceptsPublisherPaidPlacements": { - "description": "Select only directory sites that accept publisher paid placements. This field can be left blank.", - "location": "query", - "type": "boolean" - }, - "active": { - "description": "Select only active directory sites. Leave blank to retrieve both active and inactive directory sites.", - "location": "query", - "type": "boolean" - }, - "dfpNetworkCode": { - "description": "Select only directory sites with this Ad Manager network code.", - "location": "query", - "type": "string" - }, - "ids": { - "description": "Select only directory sites with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for objects by name, ID or URL. Wildcards (*) are allowed. For example, \"directory site*2015\" will return objects with names like \"directory site June 2015\", \"directory site April 2015\", or simply \"directory site 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"directory site\" will match objects with name \"my directory site\", \"directory site 2015\" or simply, \"directory site\".", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/directorySites", - "response": { - "$ref": "DirectorySitesListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "dynamicTargetingKeys": { - "methods": { - "delete": { - "description": "Deletes an existing dynamic targeting key.", - "flatPath": "userprofiles/{profileId}/dynamicTargetingKeys/{objectId}", - "httpMethod": "DELETE", - "id": "dfareporting.dynamicTargetingKeys.delete", - "parameterOrder": [ - "profileId", - "objectId", - "name", - "objectType" - ], - "parameters": { - "name": { - "description": "Name of this dynamic targeting key. This is a required field. Must be less than 256 characters long and cannot contain commas. All characters are converted to lowercase.", - "location": "query", - "required": true, - "type": "string" - }, - "objectId": { - "description": "ID of the object of this dynamic targeting key. This is a required field.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "objectType": { - "description": "Type of the object of this dynamic targeting key. This is a required field.", - "enum": [ - "OBJECT_ADVERTISER", - "OBJECT_AD", - "OBJECT_CREATIVE", - "OBJECT_PLACEMENT" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/dynamicTargetingKeys/{objectId}", - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new dynamic targeting key. Keys must be created at the advertiser level before being assigned to the advertiser's ads, creatives, or placements. There is a maximum of 1000 keys per advertiser, out of which a maximum of 20 keys can be assigned per ad, creative, or placement.", - "flatPath": "userprofiles/{profileId}/dynamicTargetingKeys", - "httpMethod": "POST", - "id": "dfareporting.dynamicTargetingKeys.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/dynamicTargetingKeys", - "request": { - "$ref": "DynamicTargetingKey" - }, - "response": { - "$ref": "DynamicTargetingKey" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of dynamic targeting keys.", - "flatPath": "userprofiles/{profileId}/dynamicTargetingKeys", - "httpMethod": "GET", - "id": "dfareporting.dynamicTargetingKeys.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "advertiserId": { - "description": "Select only dynamic targeting keys whose object has this advertiser ID.", - "format": "int64", - "location": "query", - "type": "string" - }, - "names": { - "description": "Select only dynamic targeting keys exactly matching these names.", - "location": "query", - "repeated": true, - "type": "string" - }, - "objectId": { - "description": "Select only dynamic targeting keys with this object ID.", - "format": "int64", - "location": "query", - "type": "string" - }, - "objectType": { - "description": "Select only dynamic targeting keys with this object type.", - "enum": [ - "OBJECT_ADVERTISER", - "OBJECT_AD", - "OBJECT_CREATIVE", - "OBJECT_PLACEMENT" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/dynamicTargetingKeys", - "response": { - "$ref": "DynamicTargetingKeysListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "eventTags": { - "methods": { - "delete": { - "description": "Deletes an existing event tag.", - "flatPath": "userprofiles/{profileId}/eventTags/{id}", - "httpMethod": "DELETE", - "id": "dfareporting.eventTags.delete", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Event tag ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/eventTags/{id}", - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "get": { - "description": "Gets one event tag by ID.", - "flatPath": "userprofiles/{profileId}/eventTags/{id}", - "httpMethod": "GET", - "id": "dfareporting.eventTags.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Event tag ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/eventTags/{id}", - "response": { - "$ref": "EventTag" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new event tag.", - "flatPath": "userprofiles/{profileId}/eventTags", - "httpMethod": "POST", - "id": "dfareporting.eventTags.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/eventTags", - "request": { - "$ref": "EventTag" - }, - "response": { - "$ref": "EventTag" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of event tags, possibly filtered.", - "flatPath": "userprofiles/{profileId}/eventTags", - "httpMethod": "GET", - "id": "dfareporting.eventTags.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "adId": { - "description": "Select only event tags that belong to this ad.", - "format": "int64", - "location": "query", - "type": "string" - }, - "advertiserId": { - "description": "Select only event tags that belong to this advertiser.", - "format": "int64", - "location": "query", - "type": "string" - }, - "campaignId": { - "description": "Select only event tags that belong to this campaign.", - "format": "int64", - "location": "query", - "type": "string" - }, - "definitionsOnly": { - "description": "Examine only the specified campaign or advertiser's event tags for matching selector criteria. When set to false, the parent advertiser and parent campaign of the specified ad or campaign is examined as well. In addition, when set to false, the status field is examined as well, along with the enabledByDefault field. This parameter can not be set to true when adId is specified as ads do not define their own even tags.", - "location": "query", - "type": "boolean" - }, - "enabled": { - "description": "Select only enabled event tags. What is considered enabled or disabled depends on the definitionsOnly parameter. When definitionsOnly is set to true, only the specified advertiser or campaign's event tags' enabledByDefault field is examined. When definitionsOnly is set to false, the specified ad or specified campaign's parent advertiser's or parent campaign's event tags' enabledByDefault and status fields are examined as well.", - "location": "query", - "type": "boolean" - }, - "eventTagTypes": { - "description": "Select only event tags with the specified event tag types. Event tag types can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking.", - "enum": [ - "IMPRESSION_IMAGE_EVENT_TAG", - "IMPRESSION_JAVASCRIPT_EVENT_TAG", - "CLICK_THROUGH_EVENT_TAG" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "location": "query", - "repeated": true, - "type": "string" - }, - "ids": { - "description": "Select only event tags with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"eventtag*2015\" will return objects with names like \"eventtag June 2015\", \"eventtag April 2015\", or simply \"eventtag 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"eventtag\" will match objects with name \"my eventtag\", \"eventtag 2015\", or simply \"eventtag\".", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/eventTags", - "response": { - "$ref": "EventTagsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing event tag. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/eventTags", - "httpMethod": "PATCH", - "id": "dfareporting.eventTags.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "EventTag ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/eventTags", - "request": { - "$ref": "EventTag" - }, - "response": { - "$ref": "EventTag" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing event tag.", - "flatPath": "userprofiles/{profileId}/eventTags", - "httpMethod": "PUT", - "id": "dfareporting.eventTags.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/eventTags", - "request": { - "$ref": "EventTag" - }, - "response": { - "$ref": "EventTag" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "files": { - "methods": { - "get": { - "description": "Retrieves a report file by its report ID and file ID. This method supports media download.", - "flatPath": "reports/{reportId}/files/{fileId}", - "httpMethod": "GET", - "id": "dfareporting.files.get", - "parameterOrder": [ - "reportId", - "fileId" - ], - "parameters": { - "fileId": { - "description": "The ID of the report file.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "reportId": { - "description": "The ID of the report.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "reports/{reportId}/files/{fileId}", - "response": { - "$ref": "File" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfareporting" - ], - "supportsMediaDownload": true - }, - "list": { - "description": "Lists files for a user profile.", - "flatPath": "userprofiles/{profileId}/files", - "httpMethod": "GET", - "id": "dfareporting.files.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "maxResults": { - "default": "10", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "10", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "The value of the nextToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "The Campaign Manager 360 user profile ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "scope": { - "default": "MINE", - "description": "The scope that defines which results are returned.", - "enum": [ - "ALL", - "MINE", - "SHARED_WITH_ME" - ], - "enumDescriptions": [ - "All files in account.", - "My files.", - "Files shared with me." - ], - "location": "query", - "type": "string" - }, - "sortField": { - "default": "LAST_MODIFIED_TIME", - "description": "The field by which to sort the list.", - "enum": [ - "ID", - "LAST_MODIFIED_TIME" - ], - "enumDescriptions": [ - "Sort by file ID.", - "Sort by 'lastmodifiedAt' field." - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "DESCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "Ascending order.", - "Descending order." - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/files", - "response": { - "$ref": "FileList" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfareporting" - ] - } - } - }, - "floodlightActivities": { - "methods": { - "delete": { - "description": "Deletes an existing floodlight activity.", - "flatPath": "userprofiles/{profileId}/floodlightActivities/{id}", - "httpMethod": "DELETE", - "id": "dfareporting.floodlightActivities.delete", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Floodlight activity ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/floodlightActivities/{id}", - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "generatetag": { - "description": "Generates a tag for a floodlight activity.", - "flatPath": "userprofiles/{profileId}/floodlightActivities/generatetag", - "httpMethod": "POST", - "id": "dfareporting.floodlightActivities.generatetag", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "floodlightActivityId": { - "description": "Floodlight activity ID for which we want to generate a tag.", - "format": "int64", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/floodlightActivities/generatetag", - "response": { - "$ref": "FloodlightActivitiesGenerateTagResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "get": { - "description": "Gets one floodlight activity by ID.", - "flatPath": "userprofiles/{profileId}/floodlightActivities/{id}", - "httpMethod": "GET", - "id": "dfareporting.floodlightActivities.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Floodlight activity ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/floodlightActivities/{id}", - "response": { - "$ref": "FloodlightActivity" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new floodlight activity.", - "flatPath": "userprofiles/{profileId}/floodlightActivities", - "httpMethod": "POST", - "id": "dfareporting.floodlightActivities.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/floodlightActivities", - "request": { - "$ref": "FloodlightActivity" - }, - "response": { - "$ref": "FloodlightActivity" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of floodlight activities, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/floodlightActivities", - "httpMethod": "GET", - "id": "dfareporting.floodlightActivities.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "advertiserId": { - "description": "Select only floodlight activities for the specified advertiser ID. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.", - "format": "int64", - "location": "query", - "type": "string" - }, - "floodlightActivityGroupIds": { - "description": "Select only floodlight activities with the specified floodlight activity group IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "floodlightActivityGroupName": { - "description": "Select only floodlight activities with the specified floodlight activity group name.", - "location": "query", - "type": "string" - }, - "floodlightActivityGroupTagString": { - "description": "Select only floodlight activities with the specified floodlight activity group tag string.", - "location": "query", - "type": "string" - }, - "floodlightActivityGroupType": { - "description": "Select only floodlight activities with the specified floodlight activity group type.", - "enum": [ - "COUNTER", - "SALE" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "floodlightConfigurationId": { - "description": "Select only floodlight activities for the specified floodlight configuration ID. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.", - "format": "int64", - "location": "query", - "type": "string" - }, - "ids": { - "description": "Select only floodlight activities with the specified IDs. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"floodlightactivity*2015\" will return objects with names like \"floodlightactivity June 2015\", \"floodlightactivity April 2015\", or simply \"floodlightactivity 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"floodlightactivity\" will match objects with name \"my floodlightactivity activity\", \"floodlightactivity 2015\", or simply \"floodlightactivity\".", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "tagString": { - "description": "Select only floodlight activities with the specified tag string.", - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/floodlightActivities", - "response": { - "$ref": "FloodlightActivitiesListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing floodlight activity. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/floodlightActivities", - "httpMethod": "PATCH", - "id": "dfareporting.floodlightActivities.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "FloodlightActivity ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/floodlightActivities", - "request": { - "$ref": "FloodlightActivity" - }, - "response": { - "$ref": "FloodlightActivity" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing floodlight activity.", - "flatPath": "userprofiles/{profileId}/floodlightActivities", - "httpMethod": "PUT", - "id": "dfareporting.floodlightActivities.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/floodlightActivities", - "request": { - "$ref": "FloodlightActivity" - }, - "response": { - "$ref": "FloodlightActivity" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "floodlightActivityGroups": { - "methods": { - "get": { - "description": "Gets one floodlight activity group by ID.", - "flatPath": "userprofiles/{profileId}/floodlightActivityGroups/{id}", - "httpMethod": "GET", - "id": "dfareporting.floodlightActivityGroups.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Floodlight activity Group ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/floodlightActivityGroups/{id}", - "response": { - "$ref": "FloodlightActivityGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new floodlight activity group.", - "flatPath": "userprofiles/{profileId}/floodlightActivityGroups", - "httpMethod": "POST", - "id": "dfareporting.floodlightActivityGroups.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/floodlightActivityGroups", - "request": { - "$ref": "FloodlightActivityGroup" - }, - "response": { - "$ref": "FloodlightActivityGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of floodlight activity groups, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/floodlightActivityGroups", - "httpMethod": "GET", - "id": "dfareporting.floodlightActivityGroups.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "advertiserId": { - "description": "Select only floodlight activity groups with the specified advertiser ID. Must specify either advertiserId or floodlightConfigurationId for a non-empty result.", - "format": "int64", - "location": "query", - "type": "string" - }, - "floodlightConfigurationId": { - "description": "Select only floodlight activity groups with the specified floodlight configuration ID. Must specify either advertiserId, or floodlightConfigurationId for a non-empty result.", - "format": "int64", - "location": "query", - "type": "string" - }, - "ids": { - "description": "Select only floodlight activity groups with the specified IDs. Must specify either advertiserId or floodlightConfigurationId for a non-empty result.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"floodlightactivitygroup*2015\" will return objects with names like \"floodlightactivitygroup June 2015\", \"floodlightactivitygroup April 2015\", or simply \"floodlightactivitygroup 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"floodlightactivitygroup\" will match objects with name \"my floodlightactivitygroup activity\", \"floodlightactivitygroup 2015\", or simply \"floodlightactivitygroup\".", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "type": { - "description": "Select only floodlight activity groups with the specified floodlight activity group type.", - "enum": [ - "COUNTER", - "SALE" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/floodlightActivityGroups", - "response": { - "$ref": "FloodlightActivityGroupsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing floodlight activity group. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/floodlightActivityGroups", - "httpMethod": "PATCH", - "id": "dfareporting.floodlightActivityGroups.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "FloodlightActivityGroup ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/floodlightActivityGroups", - "request": { - "$ref": "FloodlightActivityGroup" - }, - "response": { - "$ref": "FloodlightActivityGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing floodlight activity group.", - "flatPath": "userprofiles/{profileId}/floodlightActivityGroups", - "httpMethod": "PUT", - "id": "dfareporting.floodlightActivityGroups.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/floodlightActivityGroups", - "request": { - "$ref": "FloodlightActivityGroup" - }, - "response": { - "$ref": "FloodlightActivityGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "floodlightConfigurations": { - "methods": { - "get": { - "description": "Gets one floodlight configuration by ID.", - "flatPath": "userprofiles/{profileId}/floodlightConfigurations/{id}", - "httpMethod": "GET", - "id": "dfareporting.floodlightConfigurations.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Floodlight configuration ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/floodlightConfigurations/{id}", - "response": { - "$ref": "FloodlightConfiguration" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of floodlight configurations, possibly filtered.", - "flatPath": "userprofiles/{profileId}/floodlightConfigurations", - "httpMethod": "GET", - "id": "dfareporting.floodlightConfigurations.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "ids": { - "description": "Set of IDs of floodlight configurations to retrieve. Required field; otherwise an empty list will be returned.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/floodlightConfigurations", - "response": { - "$ref": "FloodlightConfigurationsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing floodlight configuration. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/floodlightConfigurations", - "httpMethod": "PATCH", - "id": "dfareporting.floodlightConfigurations.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "FloodlightConfiguration ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/floodlightConfigurations", - "request": { - "$ref": "FloodlightConfiguration" - }, - "response": { - "$ref": "FloodlightConfiguration" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing floodlight configuration.", - "flatPath": "userprofiles/{profileId}/floodlightConfigurations", - "httpMethod": "PUT", - "id": "dfareporting.floodlightConfigurations.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/floodlightConfigurations", - "request": { - "$ref": "FloodlightConfiguration" - }, - "response": { - "$ref": "FloodlightConfiguration" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "inventoryItems": { - "methods": { - "get": { - "description": "Gets one inventory item by ID.", - "flatPath": "userprofiles/{profileId}/projects/{projectId}/inventoryItems/{id}", - "httpMethod": "GET", - "id": "dfareporting.inventoryItems.get", - "parameterOrder": [ - "profileId", - "projectId", - "id" - ], - "parameters": { - "id": { - "description": "Inventory item ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "projectId": { - "description": "Project ID for order documents.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/projects/{projectId}/inventoryItems/{id}", - "response": { - "$ref": "InventoryItem" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of inventory items, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/projects/{projectId}/inventoryItems", - "httpMethod": "GET", - "id": "dfareporting.inventoryItems.list", - "parameterOrder": [ - "profileId", - "projectId" - ], - "parameters": { - "ids": { - "description": "Select only inventory items with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "inPlan": { - "description": "Select only inventory items that are in plan.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "orderId": { - "description": "Select only inventory items that belong to specified orders.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "projectId": { - "description": "Project ID for order documents.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "siteId": { - "description": "Select only inventory items that are associated with these sites.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "type": { - "description": "Select only inventory items with this type.", - "enum": [ - "PLANNING_PLACEMENT_TYPE_REGULAR", - "PLANNING_PLACEMENT_TYPE_CREDIT" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/projects/{projectId}/inventoryItems", - "response": { - "$ref": "InventoryItemsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "languages": { - "methods": { - "list": { - "description": "Retrieves a list of languages.", - "flatPath": "userprofiles/{profileId}/languages", - "httpMethod": "GET", - "id": "dfareporting.languages.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/languages", - "response": { - "$ref": "LanguagesListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "metros": { - "methods": { - "list": { - "description": "Retrieves a list of metros.", - "flatPath": "userprofiles/{profileId}/metros", - "httpMethod": "GET", - "id": "dfareporting.metros.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/metros", - "response": { - "$ref": "MetrosListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "mobileApps": { - "methods": { - "get": { - "description": "Gets one mobile app by ID.", - "flatPath": "userprofiles/{profileId}/mobileApps/{id}", - "httpMethod": "GET", - "id": "dfareporting.mobileApps.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Mobile app ID.", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/mobileApps/{id}", - "response": { - "$ref": "MobileApp" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves list of available mobile apps.", - "flatPath": "userprofiles/{profileId}/mobileApps", - "httpMethod": "GET", - "id": "dfareporting.mobileApps.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "directories": { - "description": "Select only apps from these directories.", - "enum": [ - "UNKNOWN", - "APPLE_APP_STORE", - "GOOGLE_PLAY_STORE", - "ROKU_APP_STORE", - "AMAZON_FIRETV_APP_STORE", - "PLAYSTATION_APP_STORE", - "APPLE_TV_APP_STORE", - "XBOX_APP_STORE", - "SAMSUNG_TV_APP_STORE", - "ANDROID_TV_APP_STORE", - "GENERIC_CTV_APP_STORE" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "location": "query", - "repeated": true, - "type": "string" - }, - "ids": { - "description": "Select only apps with these IDs.", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"app*2015\" will return objects with names like \"app Jan 2018\", \"app Jan 2018\", or simply \"app 2018\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"app\" will match objects with name \"my app\", \"app 2018\", or simply \"app\".", - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/mobileApps", - "response": { - "$ref": "MobileAppsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "mobileCarriers": { - "methods": { - "get": { - "description": "Gets one mobile carrier by ID.", - "flatPath": "userprofiles/{profileId}/mobileCarriers/{id}", - "httpMethod": "GET", - "id": "dfareporting.mobileCarriers.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Mobile carrier ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/mobileCarriers/{id}", - "response": { - "$ref": "MobileCarrier" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of mobile carriers.", - "flatPath": "userprofiles/{profileId}/mobileCarriers", - "httpMethod": "GET", - "id": "dfareporting.mobileCarriers.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/mobileCarriers", - "response": { - "$ref": "MobileCarriersListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "operatingSystemVersions": { - "methods": { - "get": { - "description": "Gets one operating system version by ID.", - "flatPath": "userprofiles/{profileId}/operatingSystemVersions/{id}", - "httpMethod": "GET", - "id": "dfareporting.operatingSystemVersions.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Operating system version ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/operatingSystemVersions/{id}", - "response": { - "$ref": "OperatingSystemVersion" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of operating system versions.", - "flatPath": "userprofiles/{profileId}/operatingSystemVersions", - "httpMethod": "GET", - "id": "dfareporting.operatingSystemVersions.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/operatingSystemVersions", - "response": { - "$ref": "OperatingSystemVersionsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "operatingSystems": { - "methods": { - "get": { - "description": "Gets one operating system by DART ID.", - "flatPath": "userprofiles/{profileId}/operatingSystems/{dartId}", - "httpMethod": "GET", - "id": "dfareporting.operatingSystems.get", - "parameterOrder": [ - "profileId", - "dartId" - ], - "parameters": { - "dartId": { - "description": "Operating system DART ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/operatingSystems/{dartId}", - "response": { - "$ref": "OperatingSystem" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of operating systems.", - "flatPath": "userprofiles/{profileId}/operatingSystems", - "httpMethod": "GET", - "id": "dfareporting.operatingSystems.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/operatingSystems", - "response": { - "$ref": "OperatingSystemsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "orderDocuments": { - "methods": { - "get": { - "description": "Gets one order document by ID.", - "flatPath": "userprofiles/{profileId}/projects/{projectId}/orderDocuments/{id}", - "httpMethod": "GET", - "id": "dfareporting.orderDocuments.get", - "parameterOrder": [ - "profileId", - "projectId", - "id" - ], - "parameters": { - "id": { - "description": "Order document ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "projectId": { - "description": "Project ID for order documents.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/projects/{projectId}/orderDocuments/{id}", - "response": { - "$ref": "OrderDocument" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of order documents, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/projects/{projectId}/orderDocuments", - "httpMethod": "GET", - "id": "dfareporting.orderDocuments.list", - "parameterOrder": [ - "profileId", - "projectId" - ], - "parameters": { - "approved": { - "description": "Select only order documents that have been approved by at least one user.", - "location": "query", - "type": "boolean" - }, - "ids": { - "description": "Select only order documents with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "orderId": { - "description": "Select only order documents for specified orders.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "projectId": { - "description": "Project ID for order documents.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for order documents by name or ID. Wildcards (*) are allowed. For example, \"orderdocument*2015\" will return order documents with names like \"orderdocument June 2015\", \"orderdocument April 2015\", or simply \"orderdocument 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"orderdocument\" will match order documents with name \"my orderdocument\", \"orderdocument 2015\", or simply \"orderdocument\".", - "location": "query", - "type": "string" - }, - "siteId": { - "description": "Select only order documents that are associated with these sites.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/projects/{projectId}/orderDocuments", - "response": { - "$ref": "OrderDocumentsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "orders": { - "methods": { - "get": { - "description": "Gets one order by ID.", - "flatPath": "userprofiles/{profileId}/projects/{projectId}/orders/{id}", - "httpMethod": "GET", - "id": "dfareporting.orders.get", - "parameterOrder": [ - "profileId", - "projectId", - "id" - ], - "parameters": { - "id": { - "description": "Order ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "projectId": { - "description": "Project ID for orders.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/projects/{projectId}/orders/{id}", - "response": { - "$ref": "Order" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of orders, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/projects/{projectId}/orders", - "httpMethod": "GET", - "id": "dfareporting.orders.list", - "parameterOrder": [ - "profileId", - "projectId" - ], - "parameters": { - "ids": { - "description": "Select only orders with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "projectId": { - "description": "Project ID for orders.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for orders by name or ID. Wildcards (*) are allowed. For example, \"order*2015\" will return orders with names like \"order June 2015\", \"order April 2015\", or simply \"order 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"order\" will match orders with name \"my order\", \"order 2015\", or simply \"order\".", - "location": "query", - "type": "string" - }, - "siteId": { - "description": "Select only orders that are associated with these site IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/projects/{projectId}/orders", - "response": { - "$ref": "OrdersListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "placementGroups": { - "methods": { - "get": { - "description": "Gets one placement group by ID.", - "flatPath": "userprofiles/{profileId}/placementGroups/{id}", - "httpMethod": "GET", - "id": "dfareporting.placementGroups.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Placement group ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/placementGroups/{id}", - "response": { - "$ref": "PlacementGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new placement group.", - "flatPath": "userprofiles/{profileId}/placementGroups", - "httpMethod": "POST", - "id": "dfareporting.placementGroups.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/placementGroups", - "request": { - "$ref": "PlacementGroup" - }, - "response": { - "$ref": "PlacementGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of placement groups, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/placementGroups", - "httpMethod": "GET", - "id": "dfareporting.placementGroups.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "advertiserIds": { - "description": "Select only placement groups that belong to these advertisers.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "archived": { - "description": "Select only archived placements. Don't set this field to select both archived and non-archived placements.", - "location": "query", - "type": "boolean" - }, - "campaignIds": { - "description": "Select only placement groups that belong to these campaigns.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "contentCategoryIds": { - "description": "Select only placement groups that are associated with these content categories.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "directorySiteIds": { - "description": "Select only placement groups that are associated with these directory sites.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "ids": { - "description": "Select only placement groups with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxEndDate": { - "description": "Select only placements or placement groups whose end date is on or before the specified maxEndDate. The date should be formatted as \"yyyy-MM-dd\".", - "location": "query", - "type": "string" - }, - "maxResults": { - "default": "800", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "800", - "minimum": "0", - "type": "integer" - }, - "maxStartDate": { - "description": "Select only placements or placement groups whose start date is on or before the specified maxStartDate. The date should be formatted as \"yyyy-MM-dd\".", - "location": "query", - "type": "string" - }, - "minEndDate": { - "description": "Select only placements or placement groups whose end date is on or after the specified minEndDate. The date should be formatted as \"yyyy-MM-dd\".", - "location": "query", - "type": "string" - }, - "minStartDate": { - "description": "Select only placements or placement groups whose start date is on or after the specified minStartDate. The date should be formatted as \"yyyy-MM-dd\".", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "placementGroupType": { - "description": "Select only placement groups belonging with this group type. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting.", - "enum": [ - "PLACEMENT_PACKAGE", - "PLACEMENT_ROADBLOCK" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "placementStrategyIds": { - "description": "Select only placement groups that are associated with these placement strategies.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "pricingTypes": { - "description": "Select only placement groups with these pricing types.", - "enum": [ - "PRICING_TYPE_CPM", - "PRICING_TYPE_CPC", - "PRICING_TYPE_CPA", - "PRICING_TYPE_FLAT_RATE_IMPRESSIONS", - "PRICING_TYPE_FLAT_RATE_CLICKS", - "PRICING_TYPE_CPM_ACTIVEVIEW" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" - ], - "location": "query", - "repeated": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for placement groups by name or ID. Wildcards (*) are allowed. For example, \"placement*2015\" will return placement groups with names like \"placement group June 2015\", \"placement group May 2015\", or simply \"placements 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"placementgroup\" will match placement groups with name \"my placementgroup\", \"placementgroup 2015\", or simply \"placementgroup\".", - "location": "query", - "type": "string" - }, - "siteIds": { - "description": "Select only placement groups that are associated with these sites.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/placementGroups", - "response": { - "$ref": "PlacementGroupsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing placement group. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/placementGroups", - "httpMethod": "PATCH", - "id": "dfareporting.placementGroups.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "PlacementGroup ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/placementGroups", - "request": { - "$ref": "PlacementGroup" - }, - "response": { - "$ref": "PlacementGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing placement group.", - "flatPath": "userprofiles/{profileId}/placementGroups", - "httpMethod": "PUT", - "id": "dfareporting.placementGroups.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/placementGroups", - "request": { - "$ref": "PlacementGroup" - }, - "response": { - "$ref": "PlacementGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "placementStrategies": { - "methods": { - "delete": { - "description": "Deletes an existing placement strategy.", - "flatPath": "userprofiles/{profileId}/placementStrategies/{id}", - "httpMethod": "DELETE", - "id": "dfareporting.placementStrategies.delete", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Placement strategy ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/placementStrategies/{id}", - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "get": { - "description": "Gets one placement strategy by ID.", - "flatPath": "userprofiles/{profileId}/placementStrategies/{id}", - "httpMethod": "GET", - "id": "dfareporting.placementStrategies.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Placement strategy ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/placementStrategies/{id}", - "response": { - "$ref": "PlacementStrategy" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new placement strategy.", - "flatPath": "userprofiles/{profileId}/placementStrategies", - "httpMethod": "POST", - "id": "dfareporting.placementStrategies.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/placementStrategies", - "request": { - "$ref": "PlacementStrategy" - }, - "response": { - "$ref": "PlacementStrategy" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of placement strategies, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/placementStrategies", - "httpMethod": "GET", - "id": "dfareporting.placementStrategies.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "ids": { - "description": "Select only placement strategies with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"placementstrategy*2015\" will return objects with names like \"placementstrategy June 2015\", \"placementstrategy April 2015\", or simply \"placementstrategy 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"placementstrategy\" will match objects with name \"my placementstrategy\", \"placementstrategy 2015\", or simply \"placementstrategy\".", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/placementStrategies", - "response": { - "$ref": "PlacementStrategiesListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing placement strategy. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/placementStrategies", - "httpMethod": "PATCH", - "id": "dfareporting.placementStrategies.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "PlacementStrategy ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/placementStrategies", - "request": { - "$ref": "PlacementStrategy" - }, - "response": { - "$ref": "PlacementStrategy" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing placement strategy.", - "flatPath": "userprofiles/{profileId}/placementStrategies", - "httpMethod": "PUT", - "id": "dfareporting.placementStrategies.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/placementStrategies", - "request": { - "$ref": "PlacementStrategy" - }, - "response": { - "$ref": "PlacementStrategy" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "placements": { - "methods": { - "generatetags": { - "description": "Generates tags for a placement.", - "flatPath": "userprofiles/{profileId}/placements/generatetags", - "httpMethod": "POST", - "id": "dfareporting.placements.generatetags", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "campaignId": { - "description": "Generate placements belonging to this campaign. This is a required field.", - "format": "int64", - "location": "query", - "type": "string" - }, - "placementIds": { - "description": "Generate tags for these placements.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "tagFormats": { - "description": "Tag formats to generate for these placements. *Note:* PLACEMENT_TAG_STANDARD can only be generated for 1x1 placements.", - "enum": [ - "PLACEMENT_TAG_STANDARD", - "PLACEMENT_TAG_IFRAME_JAVASCRIPT", - "PLACEMENT_TAG_IFRAME_ILAYER", - "PLACEMENT_TAG_INTERNAL_REDIRECT", - "PLACEMENT_TAG_JAVASCRIPT", - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT", - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT", - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT", - "PLACEMENT_TAG_CLICK_COMMANDS", - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH", - "PLACEMENT_TAG_TRACKING", - "PLACEMENT_TAG_TRACKING_IFRAME", - "PLACEMENT_TAG_TRACKING_JAVASCRIPT", - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3", - "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY", - "PLACEMENT_TAG_JAVASCRIPT_LEGACY", - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY", - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY", - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4", - "PLACEMENT_TAG_TRACKING_THIRD_PARTY_MEASUREMENT" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "location": "query", - "repeated": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/placements/generatetags", - "response": { - "$ref": "PlacementsGenerateTagsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "get": { - "description": "Gets one placement by ID.", - "flatPath": "userprofiles/{profileId}/placements/{id}", - "httpMethod": "GET", - "id": "dfareporting.placements.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Placement ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/placements/{id}", - "response": { - "$ref": "Placement" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new placement.", - "flatPath": "userprofiles/{profileId}/placements", - "httpMethod": "POST", - "id": "dfareporting.placements.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/placements", - "request": { - "$ref": "Placement" - }, - "response": { - "$ref": "Placement" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of placements, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/placements", - "httpMethod": "GET", - "id": "dfareporting.placements.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "advertiserIds": { - "description": "Select only placements that belong to these advertisers.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "archived": { - "description": "Select only archived placements. Don't set this field to select both archived and non-archived placements.", - "location": "query", - "type": "boolean" - }, - "campaignIds": { - "description": "Select only placements that belong to these campaigns.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "compatibilities": { - "description": "Select only placements that are associated with these compatibilities. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard.", - "enum": [ - "DISPLAY", - "DISPLAY_INTERSTITIAL", - "APP", - "APP_INTERSTITIAL", - "IN_STREAM_VIDEO", - "IN_STREAM_AUDIO" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" - ], - "location": "query", - "repeated": true, - "type": "string" - }, - "contentCategoryIds": { - "description": "Select only placements that are associated with these content categories.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "directorySiteIds": { - "description": "Select only placements that are associated with these directory sites.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "groupIds": { - "description": "Select only placements that belong to these placement groups.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "ids": { - "description": "Select only placements with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxEndDate": { - "description": "Select only placements or placement groups whose end date is on or before the specified maxEndDate. The date should be formatted as \"yyyy-MM-dd\".", - "location": "query", - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "maxStartDate": { - "description": "Select only placements or placement groups whose start date is on or before the specified maxStartDate. The date should be formatted as \"yyyy-MM-dd\".", - "location": "query", - "type": "string" - }, - "minEndDate": { - "description": "Select only placements or placement groups whose end date is on or after the specified minEndDate. The date should be formatted as \"yyyy-MM-dd\".", - "location": "query", - "type": "string" - }, - "minStartDate": { - "description": "Select only placements or placement groups whose start date is on or after the specified minStartDate. The date should be formatted as \"yyyy-MM-dd\".", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "paymentSource": { - "description": "Select only placements with this payment source.", - "enum": [ - "PLACEMENT_AGENCY_PAID", - "PLACEMENT_PUBLISHER_PAID" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "placementStrategyIds": { - "description": "Select only placements that are associated with these placement strategies.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "pricingTypes": { - "description": "Select only placements with these pricing types.", - "enum": [ - "PRICING_TYPE_CPM", - "PRICING_TYPE_CPC", - "PRICING_TYPE_CPA", - "PRICING_TYPE_FLAT_RATE_IMPRESSIONS", - "PRICING_TYPE_FLAT_RATE_CLICKS", - "PRICING_TYPE_CPM_ACTIVEVIEW" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" - ], - "location": "query", - "repeated": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for placements by name or ID. Wildcards (*) are allowed. For example, \"placement*2015\" will return placements with names like \"placement June 2015\", \"placement May 2015\", or simply \"placements 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"placement\" will match placements with name \"my placement\", \"placement 2015\", or simply \"placement\" .", - "location": "query", - "type": "string" - }, - "siteIds": { - "description": "Select only placements that are associated with these sites.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "sizeIds": { - "description": "Select only placements that are associated with these sizes.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/placements", - "response": { - "$ref": "PlacementsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing placement. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/placements", - "httpMethod": "PATCH", - "id": "dfareporting.placements.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Placement ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/placements", - "request": { - "$ref": "Placement" - }, - "response": { - "$ref": "Placement" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing placement.", - "flatPath": "userprofiles/{profileId}/placements", - "httpMethod": "PUT", - "id": "dfareporting.placements.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/placements", - "request": { - "$ref": "Placement" - }, - "response": { - "$ref": "Placement" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "platformTypes": { - "methods": { - "get": { - "description": "Gets one platform type by ID.", - "flatPath": "userprofiles/{profileId}/platformTypes/{id}", - "httpMethod": "GET", - "id": "dfareporting.platformTypes.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Platform type ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/platformTypes/{id}", - "response": { - "$ref": "PlatformType" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of platform types.", - "flatPath": "userprofiles/{profileId}/platformTypes", - "httpMethod": "GET", - "id": "dfareporting.platformTypes.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/platformTypes", - "response": { - "$ref": "PlatformTypesListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "postalCodes": { - "methods": { - "get": { - "description": "Gets one postal code by ID.", - "flatPath": "userprofiles/{profileId}/postalCodes/{code}", - "httpMethod": "GET", - "id": "dfareporting.postalCodes.get", - "parameterOrder": [ - "profileId", - "code" - ], - "parameters": { - "code": { - "description": "Postal code ID.", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/postalCodes/{code}", - "response": { - "$ref": "PostalCode" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of postal codes.", - "flatPath": "userprofiles/{profileId}/postalCodes", - "httpMethod": "GET", - "id": "dfareporting.postalCodes.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/postalCodes", - "response": { - "$ref": "PostalCodesListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "projects": { - "methods": { - "get": { - "description": "Gets one project by ID.", - "flatPath": "userprofiles/{profileId}/projects/{id}", - "httpMethod": "GET", - "id": "dfareporting.projects.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Project ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/projects/{id}", - "response": { - "$ref": "Project" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of projects, possibly filtered. This method supports paging .", - "flatPath": "userprofiles/{profileId}/projects", - "httpMethod": "GET", - "id": "dfareporting.projects.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "advertiserIds": { - "description": "Select only projects with these advertiser IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "ids": { - "description": "Select only projects with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for projects by name or ID. Wildcards (*) are allowed. For example, \"project*2015\" will return projects with names like \"project June 2015\", \"project April 2015\", or simply \"project 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"project\" will match projects with name \"my project\", \"project 2015\", or simply \"project\".", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/projects", - "response": { - "$ref": "ProjectsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "regions": { - "methods": { - "list": { - "description": "Retrieves a list of regions.", - "flatPath": "userprofiles/{profileId}/regions", - "httpMethod": "GET", - "id": "dfareporting.regions.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/regions", - "response": { - "$ref": "RegionsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "remarketingListShares": { - "methods": { - "get": { - "description": "Gets one remarketing list share by remarketing list ID.", - "flatPath": "userprofiles/{profileId}/remarketingListShares/{remarketingListId}", - "httpMethod": "GET", - "id": "dfareporting.remarketingListShares.get", - "parameterOrder": [ - "profileId", - "remarketingListId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "remarketingListId": { - "description": "Remarketing list ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/remarketingListShares/{remarketingListId}", - "response": { - "$ref": "RemarketingListShare" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing remarketing list share. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/remarketingListShares", - "httpMethod": "PATCH", - "id": "dfareporting.remarketingListShares.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "RemarketingList ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/remarketingListShares", - "request": { - "$ref": "RemarketingListShare" - }, - "response": { - "$ref": "RemarketingListShare" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing remarketing list share.", - "flatPath": "userprofiles/{profileId}/remarketingListShares", - "httpMethod": "PUT", - "id": "dfareporting.remarketingListShares.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/remarketingListShares", - "request": { - "$ref": "RemarketingListShare" - }, - "response": { - "$ref": "RemarketingListShare" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "remarketingLists": { - "methods": { - "get": { - "description": "Gets one remarketing list by ID.", - "flatPath": "userprofiles/{profileId}/remarketingLists/{id}", - "httpMethod": "GET", - "id": "dfareporting.remarketingLists.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Remarketing list ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/remarketingLists/{id}", - "response": { - "$ref": "RemarketingList" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new remarketing list.", - "flatPath": "userprofiles/{profileId}/remarketingLists", - "httpMethod": "POST", - "id": "dfareporting.remarketingLists.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/remarketingLists", - "request": { - "$ref": "RemarketingList" - }, - "response": { - "$ref": "RemarketingList" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of remarketing lists, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/remarketingLists", - "httpMethod": "GET", - "id": "dfareporting.remarketingLists.list", - "parameterOrder": [ - "profileId", - "advertiserId" - ], - "parameters": { - "active": { - "description": "Select only active or only inactive remarketing lists.", - "location": "query", - "type": "boolean" - }, - "advertiserId": { - "description": "Select only remarketing lists owned by this advertiser.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "floodlightActivityId": { - "description": "Select only remarketing lists that have this floodlight activity ID.", - "format": "int64", - "location": "query", - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "name": { - "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"remarketing list*2015\" will return objects with names like \"remarketing list June 2015\", \"remarketing list April 2015\", or simply \"remarketing list 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"remarketing list\" will match objects with name \"my remarketing list\", \"remarketing list 2015\", or simply \"remarketing list\".", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/remarketingLists", - "response": { - "$ref": "RemarketingListsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing remarketing list. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/remarketingLists", - "httpMethod": "PATCH", - "id": "dfareporting.remarketingLists.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "RemarketingList ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/remarketingLists", - "request": { - "$ref": "RemarketingList" - }, - "response": { - "$ref": "RemarketingList" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing remarketing list.", - "flatPath": "userprofiles/{profileId}/remarketingLists", - "httpMethod": "PUT", - "id": "dfareporting.remarketingLists.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/remarketingLists", - "request": { - "$ref": "RemarketingList" - }, - "response": { - "$ref": "RemarketingList" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "reports": { - "methods": { - "delete": { - "description": "Deletes a report by its ID.", - "flatPath": "userprofiles/{profileId}/reports/{reportId}", - "httpMethod": "DELETE", - "id": "dfareporting.reports.delete", - "parameterOrder": [ - "profileId", - "reportId" - ], - "parameters": { - "profileId": { - "description": "The Campaign Manager 360 user profile ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "reportId": { - "description": "The ID of the report.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/reports/{reportId}", - "scopes": [ - "https://www.googleapis.com/auth/dfareporting" - ] - }, - "get": { - "description": "Retrieves a report by its ID.", - "flatPath": "userprofiles/{profileId}/reports/{reportId}", - "httpMethod": "GET", - "id": "dfareporting.reports.get", - "parameterOrder": [ - "profileId", - "reportId" - ], - "parameters": { - "profileId": { - "description": "The Campaign Manager 360 user profile ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "reportId": { - "description": "The ID of the report.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/reports/{reportId}", - "response": { - "$ref": "Report" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfareporting" - ] - }, - "insert": { - "description": "Creates a report.", - "flatPath": "userprofiles/{profileId}/reports", - "httpMethod": "POST", - "id": "dfareporting.reports.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "The Campaign Manager 360 user profile ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/reports", - "request": { - "$ref": "Report" - }, - "response": { - "$ref": "Report" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfareporting" - ] - }, - "list": { - "description": "Retrieves list of reports.", - "flatPath": "userprofiles/{profileId}/reports", - "httpMethod": "GET", - "id": "dfareporting.reports.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "maxResults": { - "default": "10", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "10", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "The value of the nextToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "The Campaign Manager 360 user profile ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "scope": { - "default": "MINE", - "description": "The scope that defines which results are returned.", - "enum": [ - "ALL", - "MINE" - ], - "enumDescriptions": [ - "All reports in account.", - "My reports." - ], - "location": "query", - "type": "string" - }, - "sortField": { - "default": "LAST_MODIFIED_TIME", - "description": "The field by which to sort the list.", - "enum": [ - "ID", - "LAST_MODIFIED_TIME", - "NAME" - ], - "enumDescriptions": [ - "Sort by report ID.", - "Sort by 'lastModifiedTime' field.", - "Sort by name of reports." - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "DESCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "Ascending order.", - "Descending order." - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/reports", - "response": { - "$ref": "ReportList" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfareporting" - ] - }, - "patch": { - "description": "Updates an existing report. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/reports/{reportId}", - "httpMethod": "PATCH", - "id": "dfareporting.reports.patch", - "parameterOrder": [ - "profileId", - "reportId" - ], - "parameters": { - "profileId": { - "description": "The DFA user profile ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "reportId": { - "description": "The ID of the report.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/reports/{reportId}", - "request": { - "$ref": "Report" - }, - "response": { - "$ref": "Report" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfareporting" - ] - }, - "run": { - "description": "Runs a report.", - "flatPath": "userprofiles/{profileId}/reports/{reportId}/run", - "httpMethod": "POST", - "id": "dfareporting.reports.run", - "parameterOrder": [ - "profileId", - "reportId" - ], - "parameters": { - "profileId": { - "description": "The Campaign Manager 360 user profile ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "reportId": { - "description": "The ID of the report.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "synchronous": { - "default": "false", - "description": "If set and true, tries to run the report synchronously.", - "location": "query", - "type": "boolean" - } - }, - "path": "userprofiles/{profileId}/reports/{reportId}/run", - "response": { - "$ref": "File" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfareporting" - ] - }, - "update": { - "description": "Updates a report.", - "flatPath": "userprofiles/{profileId}/reports/{reportId}", - "httpMethod": "PUT", - "id": "dfareporting.reports.update", - "parameterOrder": [ - "profileId", - "reportId" - ], - "parameters": { - "profileId": { - "description": "The Campaign Manager 360 user profile ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "reportId": { - "description": "The ID of the report.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/reports/{reportId}", - "request": { - "$ref": "Report" - }, - "response": { - "$ref": "Report" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfareporting" - ] - } - }, - "resources": { - "compatibleFields": { - "methods": { - "query": { - "description": "Returns the fields that are compatible to be selected in the respective sections of a report criteria, given the fields already selected in the input report and user permissions.", - "flatPath": "userprofiles/{profileId}/reports/compatiblefields/query", - "httpMethod": "POST", - "id": "dfareporting.reports.compatibleFields.query", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "The Campaign Manager 360 user profile ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/reports/compatiblefields/query", - "request": { - "$ref": "Report" - }, - "response": { - "$ref": "CompatibleFields" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfareporting" - ] - } - } - }, - "files": { - "methods": { - "get": { - "description": "Retrieves a report file by its report ID and file ID. This method supports media download.", - "flatPath": "userprofiles/{profileId}/reports/{reportId}/files/{fileId}", - "httpMethod": "GET", - "id": "dfareporting.reports.files.get", - "parameterOrder": [ - "profileId", - "reportId", - "fileId" - ], - "parameters": { - "fileId": { - "description": "The ID of the report file.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "The Campaign Manager 360 user profile ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "reportId": { - "description": "The ID of the report.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/reports/{reportId}/files/{fileId}", - "response": { - "$ref": "File" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfareporting" - ], - "supportsMediaDownload": true - }, - "list": { - "description": "Lists files for a report.", - "flatPath": "userprofiles/{profileId}/reports/{reportId}/files", - "httpMethod": "GET", - "id": "dfareporting.reports.files.list", - "parameterOrder": [ - "profileId", - "reportId" - ], - "parameters": { - "maxResults": { - "default": "10", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "10", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "The value of the nextToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "The Campaign Manager 360 user profile ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "reportId": { - "description": "The ID of the parent report.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "sortField": { - "default": "LAST_MODIFIED_TIME", - "description": "The field by which to sort the list.", - "enum": [ - "ID", - "LAST_MODIFIED_TIME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "DESCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/reports/{reportId}/files", - "response": { - "$ref": "FileList" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfareporting" - ] - } - } - } - } - }, - "sites": { - "methods": { - "get": { - "description": "Gets one site by ID.", - "flatPath": "userprofiles/{profileId}/sites/{id}", - "httpMethod": "GET", - "id": "dfareporting.sites.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Site ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/sites/{id}", - "response": { - "$ref": "Site" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new site.", - "flatPath": "userprofiles/{profileId}/sites", - "httpMethod": "POST", - "id": "dfareporting.sites.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/sites", - "request": { - "$ref": "Site" - }, - "response": { - "$ref": "Site" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of sites, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/sites", - "httpMethod": "GET", - "id": "dfareporting.sites.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "acceptsInStreamVideoPlacements": { - "description": "This search filter is no longer supported and will have no effect on the results returned.", - "location": "query", - "type": "boolean" - }, - "acceptsInterstitialPlacements": { - "description": "This search filter is no longer supported and will have no effect on the results returned.", - "location": "query", - "type": "boolean" - }, - "acceptsPublisherPaidPlacements": { - "description": "Select only sites that accept publisher paid placements.", - "location": "query", - "type": "boolean" - }, - "adWordsSite": { - "description": "Select only AdWords sites.", - "location": "query", - "type": "boolean" - }, - "approved": { - "description": "Select only approved sites.", - "location": "query", - "type": "boolean" - }, - "campaignIds": { - "description": "Select only sites with these campaign IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "directorySiteIds": { - "description": "Select only sites with these directory site IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "ids": { - "description": "Select only sites with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for objects by name, ID or keyName. Wildcards (*) are allowed. For example, \"site*2015\" will return objects with names like \"site June 2015\", \"site April 2015\", or simply \"site 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"site\" will match objects with name \"my site\", \"site 2015\", or simply \"site\".", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "subaccountId": { - "description": "Select only sites with this subaccount ID.", - "format": "int64", - "location": "query", - "type": "string" - }, - "unmappedSite": { - "description": "Select only sites that have not been mapped to a directory site.", - "location": "query", - "type": "boolean" - } - }, - "path": "userprofiles/{profileId}/sites", - "response": { - "$ref": "SitesListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing site. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/sites", - "httpMethod": "PATCH", - "id": "dfareporting.sites.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Site ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/sites", - "request": { - "$ref": "Site" - }, - "response": { - "$ref": "Site" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing site.", - "flatPath": "userprofiles/{profileId}/sites", - "httpMethod": "PUT", - "id": "dfareporting.sites.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/sites", - "request": { - "$ref": "Site" - }, - "response": { - "$ref": "Site" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "sizes": { - "methods": { - "get": { - "description": "Gets one size by ID.", - "flatPath": "userprofiles/{profileId}/sizes/{id}", - "httpMethod": "GET", - "id": "dfareporting.sizes.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Size ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/sizes/{id}", - "response": { - "$ref": "Size" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new size.", - "flatPath": "userprofiles/{profileId}/sizes", - "httpMethod": "POST", - "id": "dfareporting.sizes.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/sizes", - "request": { - "$ref": "Size" - }, - "response": { - "$ref": "Size" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of sizes, possibly filtered. Retrieved sizes are globally unique and may include values not currently in use by your account. Due to this, the list of sizes returned by this method may differ from the list seen in the Trafficking UI.", - "flatPath": "userprofiles/{profileId}/sizes", - "httpMethod": "GET", - "id": "dfareporting.sizes.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "height": { - "description": "Select only sizes with this height.", - "format": "int32", - "location": "query", - "maximum": "32767", - "minimum": "0", - "type": "integer" - }, - "iabStandard": { - "description": "Select only IAB standard sizes.", - "location": "query", - "type": "boolean" - }, - "ids": { - "description": "Select only sizes with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "width": { - "description": "Select only sizes with this width.", - "format": "int32", - "location": "query", - "maximum": "32767", - "minimum": "0", - "type": "integer" - } - }, - "path": "userprofiles/{profileId}/sizes", - "response": { - "$ref": "SizesListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "subaccounts": { - "methods": { - "get": { - "description": "Gets one subaccount by ID.", - "flatPath": "userprofiles/{profileId}/subaccounts/{id}", - "httpMethod": "GET", - "id": "dfareporting.subaccounts.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Subaccount ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/subaccounts/{id}", - "response": { - "$ref": "Subaccount" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new subaccount.", - "flatPath": "userprofiles/{profileId}/subaccounts", - "httpMethod": "POST", - "id": "dfareporting.subaccounts.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/subaccounts", - "request": { - "$ref": "Subaccount" - }, - "response": { - "$ref": "Subaccount" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Gets a list of subaccounts, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/subaccounts", - "httpMethod": "GET", - "id": "dfareporting.subaccounts.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "ids": { - "description": "Select only subaccounts with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"subaccount*2015\" will return objects with names like \"subaccount June 2015\", \"subaccount April 2015\", or simply \"subaccount 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"subaccount\" will match objects with name \"my subaccount\", \"subaccount 2015\", or simply \"subaccount\" .", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/subaccounts", - "response": { - "$ref": "SubaccountsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing subaccount. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/subaccounts", - "httpMethod": "PATCH", - "id": "dfareporting.subaccounts.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Subaccount ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/subaccounts", - "request": { - "$ref": "Subaccount" - }, - "response": { - "$ref": "Subaccount" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing subaccount.", - "flatPath": "userprofiles/{profileId}/subaccounts", - "httpMethod": "PUT", - "id": "dfareporting.subaccounts.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/subaccounts", - "request": { - "$ref": "Subaccount" - }, - "response": { - "$ref": "Subaccount" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "targetableRemarketingLists": { - "methods": { - "get": { - "description": "Gets one remarketing list by ID.", - "flatPath": "userprofiles/{profileId}/targetableRemarketingLists/{id}", - "httpMethod": "GET", - "id": "dfareporting.targetableRemarketingLists.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Remarketing list ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/targetableRemarketingLists/{id}", - "response": { - "$ref": "TargetableRemarketingList" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of targetable remarketing lists, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/targetableRemarketingLists", - "httpMethod": "GET", - "id": "dfareporting.targetableRemarketingLists.list", - "parameterOrder": [ - "profileId", - "advertiserId" - ], - "parameters": { - "active": { - "description": "Select only active or only inactive targetable remarketing lists.", - "location": "query", - "type": "boolean" - }, - "advertiserId": { - "description": "Select only targetable remarketing lists targetable by these advertisers.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "name": { - "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"remarketing list*2015\" will return objects with names like \"remarketing list June 2015\", \"remarketing list April 2015\", or simply \"remarketing list 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"remarketing list\" will match objects with name \"my remarketing list\", \"remarketing list 2015\", or simply \"remarketing list\".", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/targetableRemarketingLists", - "response": { - "$ref": "TargetableRemarketingListsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "targetingTemplates": { - "methods": { - "get": { - "description": "Gets one targeting template by ID.", - "flatPath": "userprofiles/{profileId}/targetingTemplates/{id}", - "httpMethod": "GET", - "id": "dfareporting.targetingTemplates.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Targeting template ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/targetingTemplates/{id}", - "response": { - "$ref": "TargetingTemplate" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new targeting template.", - "flatPath": "userprofiles/{profileId}/targetingTemplates", - "httpMethod": "POST", - "id": "dfareporting.targetingTemplates.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/targetingTemplates", - "request": { - "$ref": "TargetingTemplate" - }, - "response": { - "$ref": "TargetingTemplate" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of targeting templates, optionally filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/targetingTemplates", - "httpMethod": "GET", - "id": "dfareporting.targetingTemplates.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "advertiserId": { - "description": "Select only targeting templates with this advertiser ID.", - "format": "int64", - "location": "query", - "type": "string" - }, - "ids": { - "description": "Select only targeting templates with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"template*2015\" will return objects with names like \"template June 2015\", \"template April 2015\", or simply \"template 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"template\" will match objects with name \"my template\", \"template 2015\", or simply \"template\".", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/targetingTemplates", - "response": { - "$ref": "TargetingTemplatesListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing targeting template. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/targetingTemplates", - "httpMethod": "PATCH", - "id": "dfareporting.targetingTemplates.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "TargetingTemplate ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/targetingTemplates", - "request": { - "$ref": "TargetingTemplate" - }, - "response": { - "$ref": "TargetingTemplate" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing targeting template.", - "flatPath": "userprofiles/{profileId}/targetingTemplates", - "httpMethod": "PUT", - "id": "dfareporting.targetingTemplates.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/targetingTemplates", - "request": { - "$ref": "TargetingTemplate" - }, - "response": { - "$ref": "TargetingTemplate" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "userProfiles": { - "methods": { - "get": { - "description": "Gets one user profile by ID.", - "flatPath": "userprofiles/{profileId}", - "httpMethod": "GET", - "id": "dfareporting.userProfiles.get", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "The user profile ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}", - "response": { - "$ref": "UserProfile" - }, - "scopes": [ - "https://www.googleapis.com/auth/ddmconversions", - "https://www.googleapis.com/auth/dfareporting", - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves list of user profiles for a user.", - "flatPath": "userprofiles", - "httpMethod": "GET", - "id": "dfareporting.userProfiles.list", - "parameterOrder": [], - "parameters": {}, - "path": "userprofiles", - "response": { - "$ref": "UserProfileList" - }, - "scopes": [ - "https://www.googleapis.com/auth/ddmconversions", - "https://www.googleapis.com/auth/dfareporting", - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "userRolePermissionGroups": { - "methods": { - "get": { - "description": "Gets one user role permission group by ID.", - "flatPath": "userprofiles/{profileId}/userRolePermissionGroups/{id}", - "httpMethod": "GET", - "id": "dfareporting.userRolePermissionGroups.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "User role permission group ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/userRolePermissionGroups/{id}", - "response": { - "$ref": "UserRolePermissionGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Gets a list of all supported user role permission groups.", - "flatPath": "userprofiles/{profileId}/userRolePermissionGroups", - "httpMethod": "GET", - "id": "dfareporting.userRolePermissionGroups.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/userRolePermissionGroups", - "response": { - "$ref": "UserRolePermissionGroupsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "userRolePermissions": { - "methods": { - "get": { - "description": "Gets one user role permission by ID.", - "flatPath": "userprofiles/{profileId}/userRolePermissions/{id}", - "httpMethod": "GET", - "id": "dfareporting.userRolePermissions.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "User role permission ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/userRolePermissions/{id}", - "response": { - "$ref": "UserRolePermission" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Gets a list of user role permissions, possibly filtered.", - "flatPath": "userprofiles/{profileId}/userRolePermissions", - "httpMethod": "GET", - "id": "dfareporting.userRolePermissions.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "ids": { - "description": "Select only user role permissions with these IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/userRolePermissions", - "response": { - "$ref": "UserRolePermissionsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "userRoles": { - "methods": { - "delete": { - "description": "Deletes an existing user role.", - "flatPath": "userprofiles/{profileId}/userRoles/{id}", - "httpMethod": "DELETE", - "id": "dfareporting.userRoles.delete", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "User role ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/userRoles/{id}", - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "get": { - "description": "Gets one user role by ID.", - "flatPath": "userprofiles/{profileId}/userRoles/{id}", - "httpMethod": "GET", - "id": "dfareporting.userRoles.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "User role ID.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/userRoles/{id}", - "response": { - "$ref": "UserRole" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "insert": { - "description": "Inserts a new user role.", - "flatPath": "userprofiles/{profileId}/userRoles", - "httpMethod": "POST", - "id": "dfareporting.userRoles.insert", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/userRoles", - "request": { - "$ref": "UserRole" - }, - "response": { - "$ref": "UserRole" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Retrieves a list of user roles, possibly filtered. This method supports paging.", - "flatPath": "userprofiles/{profileId}/userRoles", - "httpMethod": "GET", - "id": "dfareporting.userRoles.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "accountUserRoleOnly": { - "description": "Select only account level user roles not associated with any specific subaccount.", - "location": "query", - "type": "boolean" - }, - "ids": { - "description": "Select only user roles with the specified IDs.", - "format": "int64", - "location": "query", - "repeated": true, - "type": "string" - }, - "maxResults": { - "default": "1000", - "description": "Maximum number of results to return.", - "format": "int32", - "location": "query", - "maximum": "1000", - "minimum": "0", - "type": "integer" - }, - "pageToken": { - "description": "Value of the nextPageToken from the previous result page.", - "location": "query", - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "searchString": { - "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"userrole*2015\" will return objects with names like \"userrole June 2015\", \"userrole April 2015\", or simply \"userrole 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"userrole\" will match objects with name \"my userrole\", \"userrole 2015\", or simply \"userrole\".", - "location": "query", - "type": "string" - }, - "sortField": { - "default": "ID", - "description": "Field by which to sort the list.", - "enum": [ - "ID", - "NAME" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "sortOrder": { - "default": "ASCENDING", - "description": "Order of sorted results.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "location": "query", - "type": "string" - }, - "subaccountId": { - "description": "Select only user roles that belong to this subaccount.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "userprofiles/{profileId}/userRoles", - "response": { - "$ref": "UserRolesListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "patch": { - "description": "Updates an existing user role. This method supports patch semantics.", - "flatPath": "userprofiles/{profileId}/userRoles", - "httpMethod": "PATCH", - "id": "dfareporting.userRoles.patch", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "UserRole ID.", - "format": "int64", - "location": "query", - "required": true, - "type": "string" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/userRoles", - "request": { - "$ref": "UserRole" - }, - "response": { - "$ref": "UserRole" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "update": { - "description": "Updates an existing user role.", - "flatPath": "userprofiles/{profileId}/userRoles", - "httpMethod": "PUT", - "id": "dfareporting.userRoles.update", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/userRoles", - "request": { - "$ref": "UserRole" - }, - "response": { - "$ref": "UserRole" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } - }, - "videoFormats": { - "methods": { - "get": { - "description": "Gets one video format by ID.", - "flatPath": "userprofiles/{profileId}/videoFormats/{id}", - "httpMethod": "GET", - "id": "dfareporting.videoFormats.get", - "parameterOrder": [ - "profileId", - "id" - ], - "parameters": { - "id": { - "description": "Video format ID.", - "format": "int32", - "location": "path", - "required": true, - "type": "integer" - }, - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/videoFormats/{id}", - "response": { - "$ref": "VideoFormat" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - }, - "list": { - "description": "Lists available video formats.", - "flatPath": "userprofiles/{profileId}/videoFormats", - "httpMethod": "GET", - "id": "dfareporting.videoFormats.list", - "parameterOrder": [ - "profileId" - ], - "parameters": { - "profileId": { - "description": "User profile ID associated with this request.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "userprofiles/{profileId}/videoFormats", - "response": { - "$ref": "VideoFormatsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/dfatrafficking" - ] - } - } } }, - "revision": "20230118", + "revision": "20240201", "rootUrl": "https://dfareporting.googleapis.com/", "schemas": { - "Account": { - "description": "Contains properties of a Campaign Manager account.", - "id": "Account", - "properties": { - "accountPermissionIds": { - "description": "Account permissions assigned to this account.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "accountProfile": { - "description": "Profile for this account. This is a read-only field that can be left blank.", - "enum": [ - "ACCOUNT_PROFILE_BASIC", - "ACCOUNT_PROFILE_STANDARD" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "active": { - "description": "Whether this account is active.", - "type": "boolean" - }, - "activeAdsLimitTier": { - "description": "Maximum number of active ads allowed for this account.", - "enum": [ - "ACTIVE_ADS_TIER_40K", - "ACTIVE_ADS_TIER_75K", - "ACTIVE_ADS_TIER_100K", - "ACTIVE_ADS_TIER_200K", - "ACTIVE_ADS_TIER_300K", - "ACTIVE_ADS_TIER_500K", - "ACTIVE_ADS_TIER_750K", - "ACTIVE_ADS_TIER_1M" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "activeViewOptOut": { - "description": "Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.", - "type": "boolean" - }, - "availablePermissionIds": { - "description": "User role permissions available to the user roles of this account.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "countryId": { - "description": "ID of the country associated with this account.", - "format": "int64", - "type": "string" - }, - "currencyId": { - "description": "ID of currency associated with this account. This is a required field. Acceptable values are: - \"1\" for USD - \"2\" for GBP - \"3\" for ESP - \"4\" for SEK - \"5\" for CAD - \"6\" for JPY - \"7\" for DEM - \"8\" for AUD - \"9\" for FRF - \"10\" for ITL - \"11\" for DKK - \"12\" for NOK - \"13\" for FIM - \"14\" for ZAR - \"15\" for IEP - \"16\" for NLG - \"17\" for EUR - \"18\" for KRW - \"19\" for TWD - \"20\" for SGD - \"21\" for CNY - \"22\" for HKD - \"23\" for NZD - \"24\" for MYR - \"25\" for BRL - \"26\" for PTE - \"28\" for CLP - \"29\" for TRY - \"30\" for ARS - \"31\" for PEN - \"32\" for ILS - \"33\" for CHF - \"34\" for VEF - \"35\" for COP - \"36\" for GTQ - \"37\" for PLN - \"39\" for INR - \"40\" for THB - \"41\" for IDR - \"42\" for CZK - \"43\" for RON - \"44\" for HUF - \"45\" for RUB - \"46\" for AED - \"47\" for BGN - \"48\" for HRK - \"49\" for MXN - \"50\" for NGN - \"51\" for EGP ", - "format": "int64", - "type": "string" - }, - "defaultCreativeSizeId": { - "description": "Default placement dimensions for this account.", - "format": "int64", - "type": "string" - }, - "description": { - "description": "Description of this account.", - "type": "string" - }, - "id": { - "description": "ID of this account. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#account\".", - "type": "string" - }, - "locale": { - "description": "Locale of this account. Acceptable values are: - \"cs\" (Czech) - \"de\" (German) - \"en\" (English) - \"en-GB\" (English United Kingdom) - \"es\" (Spanish) - \"fr\" (French) - \"it\" (Italian) - \"ja\" (Japanese) - \"ko\" (Korean) - \"pl\" (Polish) - \"pt-BR\" (Portuguese Brazil) - \"ru\" (Russian) - \"sv\" (Swedish) - \"tr\" (Turkish) - \"zh-CN\" (Chinese Simplified) - \"zh-TW\" (Chinese Traditional) ", - "type": "string" - }, - "maximumImageSize": { - "description": "Maximum image size allowed for this account, in kilobytes. Value must be greater than or equal to 1.", - "format": "int64", - "type": "string" - }, - "name": { - "description": "Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.", - "type": "string" - }, - "nielsenOcrEnabled": { - "description": "Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.", - "type": "boolean" - }, - "reportsConfiguration": { - "$ref": "ReportsConfiguration", - "description": "Reporting configuration of this account." - }, - "shareReportsWithTwitter": { - "description": "Share Path to Conversion reports with Twitter.", - "type": "boolean" - }, - "teaserSizeLimit": { - "description": "File size limit in kilobytes of Rich Media teaser creatives. Acceptable values are 1 to 10240, inclusive.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "AccountActiveAdSummary": { - "description": "Gets a summary of active ads in an account.", - "id": "AccountActiveAdSummary", - "properties": { - "accountId": { - "description": "ID of the account.", - "format": "int64", - "type": "string" - }, - "activeAds": { - "description": "Ads that have been activated for the account", - "format": "int64", - "type": "string" - }, - "activeAdsLimitTier": { - "description": "Maximum number of active ads allowed for the account.", - "enum": [ - "ACTIVE_ADS_TIER_40K", - "ACTIVE_ADS_TIER_75K", - "ACTIVE_ADS_TIER_100K", - "ACTIVE_ADS_TIER_200K", - "ACTIVE_ADS_TIER_300K", - "ACTIVE_ADS_TIER_500K", - "ACTIVE_ADS_TIER_750K", - "ACTIVE_ADS_TIER_1M" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "availableAds": { - "description": "Ads that can be activated for the account.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountActiveAdSummary\".", - "type": "string" - } - }, - "type": "object" - }, - "AccountPermission": { - "description": "AccountPermissions contains information about a particular account permission. Some features of Campaign Manager require an account permission to be present in the account.", - "id": "AccountPermission", - "properties": { - "accountProfiles": { - "description": "Account profiles associated with this account permission. Possible values are: - \"ACCOUNT_PROFILE_BASIC\" - \"ACCOUNT_PROFILE_STANDARD\" ", - "items": { - "enum": [ - "ACCOUNT_PROFILE_BASIC", - "ACCOUNT_PROFILE_STANDARD" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "type": "array" - }, - "id": { - "description": "ID of this account permission.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountPermission\".", - "type": "string" - }, - "level": { - "description": "Administrative level required to enable this account permission.", - "enum": [ - "USER", - "ADMINISTRATOR" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "name": { - "description": "Name of this account permission.", - "type": "string" - }, - "permissionGroupId": { - "description": "Permission group of this account permission.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "AccountPermissionGroup": { - "description": "AccountPermissionGroups contains a mapping of permission group IDs to names. A permission group is a grouping of account permissions.", - "id": "AccountPermissionGroup", - "properties": { - "id": { - "description": "ID of this account permission group.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountPermissionGroup\".", - "type": "string" - }, - "name": { - "description": "Name of this account permission group.", - "type": "string" - } - }, - "type": "object" - }, - "AccountPermissionGroupsListResponse": { - "description": "Account Permission Group List Response", - "id": "AccountPermissionGroupsListResponse", - "properties": { - "accountPermissionGroups": { - "description": "Account permission group collection.", - "items": { - "$ref": "AccountPermissionGroup" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountPermissionGroupsListResponse\".", - "type": "string" - } - }, - "type": "object" - }, - "AccountPermissionsListResponse": { - "description": "Account Permission List Response", - "id": "AccountPermissionsListResponse", - "properties": { - "accountPermissions": { - "description": "Account permission collection.", - "items": { - "$ref": "AccountPermission" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountPermissionsListResponse\".", - "type": "string" - } - }, - "type": "object" - }, - "AccountUserProfile": { - "description": "AccountUserProfiles contains properties of a Campaign Manager user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.", - "id": "AccountUserProfile", - "properties": { - "accountId": { - "description": "Account ID of the user profile. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "active": { - "description": "Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.", - "type": "boolean" - }, - "advertiserFilter": { - "$ref": "ObjectFilter", - "description": "Filter that describes which advertisers are visible to the user profile." - }, - "campaignFilter": { - "$ref": "ObjectFilter", - "description": "Filter that describes which campaigns are visible to the user profile." - }, - "comments": { - "description": "Comments for this user profile.", - "type": "string" - }, - "email": { - "description": "Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.", - "type": "string" - }, - "id": { - "description": "ID of the user profile. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountUserProfile\".", - "type": "string" - }, - "locale": { - "description": "Locale of the user profile. This is a required field. Acceptable values are: - \"cs\" (Czech) - \"de\" (German) - \"en\" (English) - \"en-GB\" (English United Kingdom) - \"es\" (Spanish) - \"fr\" (French) - \"it\" (Italian) - \"ja\" (Japanese) - \"ko\" (Korean) - \"pl\" (Polish) - \"pt-BR\" (Portuguese Brazil) - \"ru\" (Russian) - \"sv\" (Swedish) - \"tr\" (Turkish) - \"zh-CN\" (Chinese Simplified) - \"zh-TW\" (Chinese Traditional) ", - "type": "string" - }, - "name": { - "description": "Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: \"&;<>\"#%,\".", - "type": "string" - }, - "siteFilter": { - "$ref": "ObjectFilter", - "description": "Filter that describes which sites are visible to the user profile." - }, - "subaccountId": { - "description": "Subaccount ID of the user profile. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "traffickerType": { - "description": "Trafficker type of this user profile. This is a read-only field.", - "enum": [ - "INTERNAL_NON_TRAFFICKER", - "INTERNAL_TRAFFICKER", - "EXTERNAL_TRAFFICKER" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "userAccessType": { - "description": "User type of the user profile. This is a read-only field that can be left blank.", - "enum": [ - "NORMAL_USER", - "SUPER_USER", - "INTERNAL_ADMINISTRATOR", - "READ_ONLY_SUPER_USER" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "userRoleFilter": { - "$ref": "ObjectFilter", - "description": "Filter that describes which user roles are visible to the user profile." - }, - "userRoleId": { - "description": "User role ID of the user profile. This is a required field.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "AccountUserProfilesListResponse": { - "description": "Account User Profile List Response", - "id": "AccountUserProfilesListResponse", - "properties": { - "accountUserProfiles": { - "description": "Account user profile collection.", - "items": { - "$ref": "AccountUserProfile" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountUserProfilesListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - } - }, - "type": "object" - }, - "AccountsListResponse": { - "description": "Account List Response", - "id": "AccountsListResponse", - "properties": { - "accounts": { - "description": "Account collection.", - "items": { - "$ref": "Account" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountsListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - } - }, - "type": "object" - }, - "Activities": { - "description": "Represents an activity group.", - "id": "Activities", - "properties": { - "filters": { - "description": "List of activity filters. The dimension values need to be all either of type \"dfa:activity\" or \"dfa:activityGroup\".", - "items": { - "$ref": "DimensionValue" - }, - "type": "array" - }, - "kind": { - "description": "The kind of resource this is, in this case dfareporting#activities.", - "type": "string" - }, - "metricNames": { - "description": "List of names of floodlight activity metrics.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "Ad": { - "description": "Contains properties of a Campaign Manager ad.", - "id": "Ad", - "properties": { - "accountId": { - "description": "Account ID of this ad. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "active": { - "description": "Whether this ad is active. When true, archived must be false.", - "type": "boolean" - }, - "advertiserId": { - "description": "Advertiser ID of this ad. This is a required field on insertion.", - "format": "int64", - "type": "string" - }, - "advertiserIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." - }, - "archived": { - "description": "Whether this ad is archived. When true, active must be false.", - "type": "boolean" - }, - "audienceSegmentId": { - "description": "Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.", - "format": "int64", - "type": "string" - }, - "campaignId": { - "description": "Campaign ID of this ad. This is a required field on insertion.", - "format": "int64", - "type": "string" - }, - "campaignIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the campaign. This is a read-only, auto-generated field." - }, - "clickThroughUrl": { - "$ref": "ClickThroughUrl", - "description": "Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER." - }, - "clickThroughUrlSuffixProperties": { - "$ref": "ClickThroughUrlSuffixProperties", - "description": "Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative." - }, - "comments": { - "description": "Comments for this ad.", - "type": "string" - }, - "compatibility": { - "description": "Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.", - "enum": [ - "DISPLAY", - "DISPLAY_INTERSTITIAL", - "APP", - "APP_INTERSTITIAL", - "IN_STREAM_VIDEO", - "IN_STREAM_AUDIO" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "createInfo": { - "$ref": "LastModifiedInfo", - "description": "Information about the creation of this ad. This is a read-only field." - }, - "creativeGroupAssignments": { - "description": "Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.", - "items": { - "$ref": "CreativeGroupAssignment" - }, - "type": "array" - }, - "creativeRotation": { - "$ref": "CreativeRotation", - "description": "Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment ." - }, - "dayPartTargeting": { - "$ref": "DayPartTargeting", - "description": "Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD." - }, - "defaultClickThroughEventTagProperties": { - "$ref": "DefaultClickThroughEventTagProperties", - "description": "Default click-through event tag properties for this ad." - }, - "deliverySchedule": { - "$ref": "DeliverySchedule", - "description": "Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD." - }, - "dynamicClickTracker": { - "description": "Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.", - "type": "boolean" - }, - "endTime": { - "format": "date-time", - "type": "string" - }, - "eventTagOverrides": { - "description": "Event tag overrides for this ad.", - "items": { - "$ref": "EventTagOverride" - }, - "type": "array" - }, - "geoTargeting": { - "$ref": "GeoTargeting", - "description": "Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD." - }, - "id": { - "description": "ID of this ad. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "idDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of this ad. This is a read-only, auto-generated field." - }, - "keyValueTargetingExpression": { - "$ref": "KeyValueTargetingExpression", - "description": "Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD." - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#ad\".", - "type": "string" - }, - "languageTargeting": { - "$ref": "LanguageTargeting", - "description": "Language targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD." - }, - "lastModifiedInfo": { - "$ref": "LastModifiedInfo", - "description": "Information about the most recent modification of this ad. This is a read-only field." - }, - "name": { - "description": "Name of this ad. This is a required field and must be less than 256 characters long.", - "type": "string" - }, - "placementAssignments": { - "description": "Placement assignments for this ad.", - "items": { - "$ref": "PlacementAssignment" - }, - "type": "array" - }, - "remarketingListExpression": { - "$ref": "ListTargetingExpression", - "description": "Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD." - }, - "size": { - "$ref": "Size", - "description": "Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD." - }, - "sslCompliant": { - "description": "Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.", - "type": "boolean" - }, - "sslRequired": { - "description": "Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.", - "type": "boolean" - }, - "startTime": { - "format": "date-time", - "type": "string" - }, - "subaccountId": { - "description": "Subaccount ID of this ad. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "targetingTemplateId": { - "description": "Targeting template ID, used to apply preconfigured targeting information to this ad. This cannot be set while any of dayPartTargeting, geoTargeting, keyValueTargetingExpression, languageTargeting, remarketingListExpression, or technologyTargeting are set. Applicable when type is AD_SERVING_STANDARD_AD.", - "format": "int64", - "type": "string" - }, - "technologyTargeting": { - "$ref": "TechnologyTargeting", - "description": "Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD." - }, - "type": { - "description": "Type of ad. This is a required field on insertion. Note that default ads ( AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).", - "enum": [ - "AD_SERVING_STANDARD_AD", - "AD_SERVING_DEFAULT_AD", - "AD_SERVING_CLICK_TRACKER", - "AD_SERVING_TRACKING", - "AD_SERVING_BRAND_SAFE_AD" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "AdBlockingConfiguration": { - "description": "Campaign ad blocking settings.", - "id": "AdBlockingConfiguration", - "properties": { - "enabled": { - "description": "Whether this campaign has enabled ad blocking. When true, ad blocking is enabled for placements in the campaign, but this may be overridden by site and placement settings. When false, ad blocking is disabled for all placements under the campaign, regardless of site and placement settings.", - "type": "boolean" - } - }, - "type": "object" - }, - "AdSlot": { - "description": "Ad Slot", - "id": "AdSlot", - "properties": { - "comment": { - "description": "Comment for this ad slot.", - "type": "string" - }, - "compatibility": { - "description": "Ad slot compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop, mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard.", - "enum": [ - "DISPLAY", - "DISPLAY_INTERSTITIAL", - "APP", - "APP_INTERSTITIAL", - "IN_STREAM_VIDEO", - "IN_STREAM_AUDIO" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "height": { - "description": "Height of this ad slot.", - "format": "int64", - "type": "string" - }, - "linkedPlacementId": { - "description": "ID of the placement from an external platform that is linked to this ad slot.", - "format": "int64", - "type": "string" - }, - "name": { - "description": "Name of this ad slot.", - "type": "string" - }, - "paymentSourceType": { - "description": "Payment source type of this ad slot.", - "enum": [ - "PLANNING_PAYMENT_SOURCE_TYPE_AGENCY_PAID", - "PLANNING_PAYMENT_SOURCE_TYPE_PUBLISHER_PAID" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "primary": { - "description": "Primary ad slot of a roadblock inventory item.", - "type": "boolean" - }, - "width": { - "description": "Width of this ad slot.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "AdsListResponse": { - "description": "Ad List Response", - "id": "AdsListResponse", - "properties": { - "ads": { - "description": "Ad collection.", - "items": { - "$ref": "Ad" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#adsListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - } - }, - "type": "object" - }, - "Advertiser": { - "description": "Contains properties of a Campaign Manager advertiser.", - "id": "Advertiser", - "properties": { - "accountId": { - "description": "Account ID of this advertiser.This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "advertiserGroupId": { - "description": "ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.", - "format": "int64", - "type": "string" - }, - "clickThroughUrlSuffix": { - "description": "Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.", - "type": "string" - }, - "defaultClickThroughEventTagId": { - "description": "ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.", - "format": "int64", - "type": "string" - }, - "defaultEmail": { - "description": "Default email address used in sender field for tag emails.", - "type": "string" - }, - "floodlightConfigurationId": { - "description": "Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as: - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups. - This advertiser's original floodlight configuration is not already shared with another advertiser. ", - "format": "int64", - "type": "string" - }, - "floodlightConfigurationIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field." - }, - "id": { - "description": "ID of this advertiser. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "idDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of this advertiser. This is a read-only, auto-generated field." - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#advertiser\".", - "type": "string" - }, - "measurementPartnerLink": { - "$ref": "MeasurementPartnerAdvertiserLink", - "description": "Measurement partner advertiser link for tag wrapping." - }, - "name": { - "description": "Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.", - "type": "string" - }, - "originalFloodlightConfigurationId": { - "description": "Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.", - "format": "int64", - "type": "string" - }, - "status": { - "description": "Status of this advertiser.", - "enum": [ - "APPROVED", - "ON_HOLD" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "subaccountId": { - "description": "Subaccount ID of this advertiser.This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "suspended": { - "description": "Suspension status of this advertiser.", - "type": "boolean" - } - }, - "type": "object" - }, - "AdvertiserGroup": { - "description": "Groups advertisers together so that reports can be generated for the entire group at once.", - "id": "AdvertiserGroup", - "properties": { - "accountId": { - "description": "Account ID of this advertiser group. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "id": { - "description": "ID of this advertiser group. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#advertiserGroup\".", - "type": "string" - }, - "name": { - "description": "Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.", - "type": "string" - } - }, - "type": "object" - }, - "AdvertiserGroupsListResponse": { - "description": "Advertiser Group List Response", - "id": "AdvertiserGroupsListResponse", - "properties": { - "advertiserGroups": { - "description": "Advertiser group collection.", - "items": { - "$ref": "AdvertiserGroup" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#advertiserGroupsListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - } - }, - "type": "object" - }, - "AdvertiserLandingPagesListResponse": { - "description": "Landing Page List Response", - "id": "AdvertiserLandingPagesListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#advertiserLandingPagesListResponse\".", - "type": "string" - }, - "landingPages": { - "description": "Landing page collection", - "items": { - "$ref": "LandingPage" - }, - "type": "array" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - } - }, - "type": "object" - }, - "AdvertisersListResponse": { - "description": "Advertiser List Response", - "id": "AdvertisersListResponse", - "properties": { - "advertisers": { - "description": "Advertiser collection.", - "items": { - "$ref": "Advertiser" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#advertisersListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - } - }, - "type": "object" - }, - "AudienceSegment": { - "description": "Audience Segment.", - "id": "AudienceSegment", - "properties": { - "allocation": { - "description": "Weight allocated to this segment. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group. Acceptable values are 1 to 1000, inclusive.", - "format": "int32", - "type": "integer" - }, - "id": { - "description": "ID of this audience segment. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "name": { - "description": "Name of this audience segment. This is a required field and must be less than 65 characters long.", - "type": "string" - } - }, - "type": "object" - }, - "AudienceSegmentGroup": { - "description": "Audience Segment Group.", - "id": "AudienceSegmentGroup", - "properties": { - "audienceSegments": { - "description": "Audience segments assigned to this group. The number of segments must be between 2 and 100.", - "items": { - "$ref": "AudienceSegment" - }, - "type": "array" - }, - "id": { - "description": "ID of this audience segment group. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "name": { - "description": "Name of this audience segment group. This is a required field and must be less than 65 characters long.", - "type": "string" - } - }, - "type": "object" - }, - "Browser": { - "description": "Contains information about a browser that can be targeted by ads.", - "id": "Browser", - "properties": { - "browserVersionId": { - "description": "ID referring to this grouping of browser and version numbers. This is the ID used for targeting.", - "format": "int64", - "type": "string" - }, - "dartId": { - "description": "DART ID of this browser. This is the ID used when generating reports.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#browser\".", - "type": "string" - }, - "majorVersion": { - "description": "Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.", - "type": "string" - }, - "minorVersion": { - "description": "Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.", - "type": "string" - }, - "name": { - "description": "Name of this browser.", - "type": "string" - } - }, - "type": "object" - }, - "BrowsersListResponse": { - "description": "Browser List Response", - "id": "BrowsersListResponse", - "properties": { - "browsers": { - "description": "Browser collection.", - "items": { - "$ref": "Browser" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#browsersListResponse\".", - "type": "string" - } - }, - "type": "object" - }, - "Campaign": { - "description": "Contains properties of a Campaign Manager campaign.", - "id": "Campaign", - "properties": { - "accountId": { - "description": "Account ID of this campaign. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "adBlockingConfiguration": { - "$ref": "AdBlockingConfiguration", - "description": "Ad blocking settings for this campaign." - }, - "additionalCreativeOptimizationConfigurations": { - "description": "Additional creative optimization configurations for the campaign.", - "items": { - "$ref": "CreativeOptimizationConfiguration" - }, - "type": "array" - }, - "advertiserGroupId": { - "description": "Advertiser group ID of the associated advertiser.", - "format": "int64", - "type": "string" - }, - "advertiserId": { - "description": "Advertiser ID of this campaign. This is a required field.", - "format": "int64", - "type": "string" - }, - "advertiserIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field." - }, - "archived": { - "description": "Whether this campaign has been archived.", - "type": "boolean" - }, - "audienceSegmentGroups": { - "description": "Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.", - "items": { - "$ref": "AudienceSegmentGroup" - }, - "type": "array" - }, - "billingInvoiceCode": { - "description": "Billing invoice code included in the Campaign Manager client billing invoices associated with the campaign.", - "type": "string" - }, - "clickThroughUrlSuffixProperties": { - "$ref": "ClickThroughUrlSuffixProperties", - "description": "Click-through URL suffix override properties for this campaign." - }, - "comment": { - "description": "Arbitrary comments about this campaign. Must be less than 256 characters long.", - "type": "string" - }, - "createInfo": { - "$ref": "LastModifiedInfo", - "description": "Information about the creation of this campaign. This is a read-only field." - }, - "creativeGroupIds": { - "description": "List of creative group IDs that are assigned to the campaign.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "creativeOptimizationConfiguration": { - "$ref": "CreativeOptimizationConfiguration", - "description": "Creative optimization configuration for the campaign." - }, - "defaultClickThroughEventTagProperties": { - "$ref": "DefaultClickThroughEventTagProperties", - "description": "Click-through event tag ID override properties for this campaign." - }, - "defaultLandingPageId": { - "description": "The default landing page ID for this campaign.", - "format": "int64", - "type": "string" - }, - "endDate": { - "format": "date", - "type": "string" - }, - "eventTagOverrides": { - "description": "Overrides that can be used to activate or deactivate advertiser event tags.", - "items": { - "$ref": "EventTagOverride" - }, - "type": "array" - }, - "externalId": { - "description": "External ID for this campaign.", - "type": "string" - }, - "id": { - "description": "ID of this campaign. This is a read-only auto-generated field.", - "format": "int64", - "type": "string" - }, - "idDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of this campaign. This is a read-only, auto-generated field." - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#campaign\".", - "type": "string" - }, - "lastModifiedInfo": { - "$ref": "LastModifiedInfo", - "description": "Information about the most recent modification of this campaign. This is a read-only field." - }, - "measurementPartnerLink": { - "$ref": "MeasurementPartnerCampaignLink", - "description": "Measurement partner campaign link for tag wrapping." - }, - "name": { - "description": "Name of this campaign. This is a required field and must be less than 512 characters long and unique among campaigns of the same advertiser.", - "type": "string" - }, - "nielsenOcrEnabled": { - "description": "Whether Nielsen reports are enabled for this campaign.", - "type": "boolean" - }, - "startDate": { - "format": "date", - "type": "string" - }, - "subaccountId": { - "description": "Subaccount ID of this campaign. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "traffickerEmails": { - "description": "Campaign trafficker contact emails.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "CampaignCreativeAssociation": { - "description": "Identifies a creative which has been associated with a given campaign.", - "id": "CampaignCreativeAssociation", - "properties": { - "creativeId": { - "description": "ID of the creative associated with the campaign. This is a required field.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#campaignCreativeAssociation\".", - "type": "string" - } - }, - "type": "object" - }, - "CampaignCreativeAssociationsListResponse": { - "description": "Campaign Creative Association List Response", - "id": "CampaignCreativeAssociationsListResponse", - "properties": { - "campaignCreativeAssociations": { - "description": "Campaign creative association collection", - "items": { - "$ref": "CampaignCreativeAssociation" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#campaignCreativeAssociationsListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - } - }, - "type": "object" - }, - "CampaignsListResponse": { - "description": "Campaign List Response", - "id": "CampaignsListResponse", - "properties": { - "campaigns": { - "description": "Campaign collection.", - "items": { - "$ref": "Campaign" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#campaignsListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - } - }, - "type": "object" - }, - "ChangeLog": { - "description": "Describes a change that a user has made to a resource.", - "id": "ChangeLog", - "properties": { - "accountId": { - "description": "Account ID of the modified object.", - "format": "int64", - "type": "string" - }, - "action": { - "description": "Action which caused the change.", - "type": "string" - }, - "changeTime": { - "format": "date-time", - "type": "string" - }, - "fieldName": { - "description": "Field name of the object which changed.", - "type": "string" - }, - "id": { - "description": "ID of this change log.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#changeLog\".", - "type": "string" - }, - "newValue": { - "description": "New value of the object field.", - "type": "string" - }, - "objectId": { - "description": "ID of the object of this change log. The object could be a campaign, placement, ad, or other type.", - "format": "int64", - "type": "string" - }, - "objectType": { - "description": "Object type of the change log.", - "type": "string" - }, - "oldValue": { - "description": "Old value of the object field.", - "type": "string" - }, - "subaccountId": { - "description": "Subaccount ID of the modified object.", - "format": "int64", - "type": "string" - }, - "transactionId": { - "description": "Transaction ID of this change log. When a single API call results in many changes, each change will have a separate ID in the change log but will share the same transactionId.", - "format": "int64", - "type": "string" - }, - "userProfileId": { - "description": "ID of the user who modified the object.", - "format": "int64", - "type": "string" - }, - "userProfileName": { - "description": "User profile name of the user who modified the object.", - "type": "string" - } - }, - "type": "object" - }, - "ChangeLogsListResponse": { - "description": "Change Log List Response", - "id": "ChangeLogsListResponse", - "properties": { - "changeLogs": { - "description": "Change log collection.", - "items": { - "$ref": "ChangeLog" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#changeLogsListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - } - }, - "type": "object" - }, - "ChannelGrouping": { - "description": "Represents a DfaReporting channel grouping.", - "id": "ChannelGrouping", - "properties": { - "fallbackName": { - "description": "ChannelGrouping fallback name.", - "type": "string" - }, - "kind": { - "description": "The kind of resource this is, in this case dfareporting#channelGrouping.", - "type": "string" - }, - "name": { - "description": "ChannelGrouping name.", - "type": "string" - }, - "rules": { - "description": "The rules contained within this channel grouping.", - "items": { - "$ref": "ChannelGroupingRule" - }, - "type": "array" - } - }, - "type": "object" - }, - "ChannelGroupingRule": { - "description": "Represents a DfaReporting channel grouping rule.", - "id": "ChannelGroupingRule", - "properties": { - "disjunctiveMatchStatements": { - "description": "The disjunctive match statements contained within this rule.", - "items": { - "$ref": "DisjunctiveMatchStatement" - }, - "type": "array" - }, - "kind": { - "description": "The kind of resource this is, in this case dfareporting#channelGroupingRule.", - "type": "string" - }, - "name": { - "description": "Rule name.", - "type": "string" - } - }, - "type": "object" - }, - "CitiesListResponse": { - "description": "City List Response", - "id": "CitiesListResponse", - "properties": { - "cities": { - "description": "City collection.", - "items": { - "$ref": "City" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#citiesListResponse\".", - "type": "string" - } - }, - "type": "object" - }, - "City": { - "description": "Contains information about a city that can be targeted by ads.", - "id": "City", - "properties": { - "countryCode": { - "description": "Country code of the country to which this city belongs.", - "type": "string" - }, - "countryDartId": { - "description": "DART ID of the country to which this city belongs.", - "format": "int64", - "type": "string" - }, - "dartId": { - "description": "DART ID of this city. This is the ID used for targeting and generating reports.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#city\".", - "type": "string" - }, - "metroCode": { - "description": "Metro region code of the metro region (DMA) to which this city belongs.", - "type": "string" - }, - "metroDmaId": { - "description": "ID of the metro region (DMA) to which this city belongs.", - "format": "int64", - "type": "string" - }, - "name": { - "description": "Name of this city.", - "type": "string" - }, - "regionCode": { - "description": "Region code of the region to which this city belongs.", - "type": "string" - }, - "regionDartId": { - "description": "DART ID of the region to which this city belongs.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, "ClickTag": { "description": "Creative Click Tag.", "id": "ClickTag", @@ -11119,1555 +183,6 @@ }, "type": "object" }, - "ClickThroughUrl": { - "description": "Click-through URL", - "id": "ClickThroughUrl", - "properties": { - "computedClickThroughUrl": { - "description": "Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field. - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field. - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field. ", - "type": "string" - }, - "customClickThroughUrl": { - "description": "Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.", - "type": "string" - }, - "defaultLandingPage": { - "description": "Whether the campaign default landing page is used.", - "type": "boolean" - }, - "landingPageId": { - "description": "ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "ClickThroughUrlSuffixProperties": { - "description": "Click Through URL Suffix settings.", - "id": "ClickThroughUrlSuffixProperties", - "properties": { - "clickThroughUrlSuffix": { - "description": "Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.", - "type": "string" - }, - "overrideInheritedSuffix": { - "description": "Whether this entity should override the inherited click-through URL suffix with its own defined value.", - "type": "boolean" - } - }, - "type": "object" - }, - "CompanionClickThroughOverride": { - "description": "Companion Click-through override.", - "id": "CompanionClickThroughOverride", - "properties": { - "clickThroughUrl": { - "$ref": "ClickThroughUrl", - "description": "Click-through URL of this companion click-through override." - }, - "creativeId": { - "description": "ID of the creative for this companion click-through override.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "CompanionSetting": { - "description": "Companion Settings", - "id": "CompanionSetting", - "properties": { - "companionsDisabled": { - "description": "Whether companions are disabled for this placement.", - "type": "boolean" - }, - "enabledSizes": { - "description": "Allowlist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.", - "items": { - "$ref": "Size" - }, - "type": "array" - }, - "imageOnly": { - "description": "Whether to serve only static images as companions.", - "type": "boolean" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#companionSetting\".", - "type": "string" - } - }, - "type": "object" - }, - "CompatibleFields": { - "description": "Represents a response to the queryCompatibleFields method.", - "id": "CompatibleFields", - "properties": { - "crossDimensionReachReportCompatibleFields": { - "$ref": "CrossDimensionReachReportCompatibleFields", - "description": "Contains items that are compatible to be selected for a report of type \"CROSS_DIMENSION_REACH\"." - }, - "floodlightReportCompatibleFields": { - "$ref": "FloodlightReportCompatibleFields", - "description": "Contains items that are compatible to be selected for a report of type \"FLOODLIGHT\"." - }, - "kind": { - "description": "The kind of resource this is, in this case dfareporting#compatibleFields.", - "type": "string" - }, - "pathAttributionReportCompatibleFields": { - "$ref": "PathReportCompatibleFields", - "description": "Contains items that are compatible to be selected for a report of type \"PATH_ATTRIBUTION\"." - }, - "pathReportCompatibleFields": { - "$ref": "PathReportCompatibleFields", - "description": "Contains items that are compatible to be selected for a report of type \"PATH\"." - }, - "pathToConversionReportCompatibleFields": { - "$ref": "PathToConversionReportCompatibleFields", - "description": "Contains items that are compatible to be selected for a report of type \"PATH_TO_CONVERSION\"." - }, - "reachReportCompatibleFields": { - "$ref": "ReachReportCompatibleFields", - "description": "Contains items that are compatible to be selected for a report of type \"REACH\"." - }, - "reportCompatibleFields": { - "$ref": "ReportCompatibleFields", - "description": "Contains items that are compatible to be selected for a report of type \"STANDARD\"." - } - }, - "type": "object" - }, - "ConnectionType": { - "description": "Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.", - "id": "ConnectionType", - "properties": { - "id": { - "description": "ID of this connection type.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#connectionType\".", - "type": "string" - }, - "name": { - "description": "Name of this connection type.", - "type": "string" - } - }, - "type": "object" - }, - "ConnectionTypesListResponse": { - "description": "Connection Type List Response", - "id": "ConnectionTypesListResponse", - "properties": { - "connectionTypes": { - "description": "Collection of connection types such as broadband and mobile.", - "items": { - "$ref": "ConnectionType" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#connectionTypesListResponse\".", - "type": "string" - } - }, - "type": "object" - }, - "ContentCategoriesListResponse": { - "description": "Content Category List Response", - "id": "ContentCategoriesListResponse", - "properties": { - "contentCategories": { - "description": "Content category collection.", - "items": { - "$ref": "ContentCategory" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#contentCategoriesListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - } - }, - "type": "object" - }, - "ContentCategory": { - "description": "Organizes placements according to the contents of their associated webpages.", - "id": "ContentCategory", - "properties": { - "accountId": { - "description": "Account ID of this content category. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "id": { - "description": "ID of this content category. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#contentCategory\".", - "type": "string" - }, - "name": { - "description": "Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.", - "type": "string" - } - }, - "type": "object" - }, - "Conversion": { - "description": "A Conversion represents when a user successfully performs a desired action after seeing an ad.", - "id": "Conversion", - "properties": { - "childDirectedTreatment": { - "description": "Whether this particular request may come from a user under the age of 13, under COPPA compliance.", - "type": "boolean" - }, - "customVariables": { - "description": "Custom floodlight variables. This field may only be used when calling batchinsert; it is not supported by batchupdate.", - "items": { - "$ref": "CustomFloodlightVariable" - }, - "type": "array" - }, - "dclid": { - "description": "The display click ID. This field is mutually exclusive with encryptedUserId, encryptedUserIdCandidates[], matchId, mobileDeviceId and gclid. This or encryptedUserId or encryptedUserIdCandidates[] or matchId or mobileDeviceId or gclid is a required field.", - "type": "string" - }, - "encryptedUserId": { - "description": "The alphanumeric encrypted user ID. When set, encryptionInfo should also be specified. This field is mutually exclusive with encryptedUserIdCandidates[], matchId, mobileDeviceId, gclid and dclid. This or encryptedUserIdCandidates[] or matchId or mobileDeviceId or gclid or dclid is a required field.", - "type": "string" - }, - "encryptedUserIdCandidates": { - "description": "A list of the alphanumeric encrypted user IDs. Any user ID with exposure prior to the conversion timestamp will be used in the inserted conversion. If no such user ID is found then the conversion will be rejected with INVALID_ARGUMENT error. When set, encryptionInfo should also be specified. This field may only be used when calling batchinsert; it is not supported by batchupdate. This field is mutually exclusive with encryptedUserId, matchId, mobileDeviceId, gclid and dclid. This or encryptedUserId or matchId or mobileDeviceId or gclid or dclid is a required field.", - "items": { - "type": "string" - }, - "type": "array" - }, - "floodlightActivityId": { - "description": "Floodlight Activity ID of this conversion. This is a required field.", - "format": "int64", - "type": "string" - }, - "floodlightConfigurationId": { - "description": "Floodlight Configuration ID of this conversion. This is a required field.", - "format": "int64", - "type": "string" - }, - "gclid": { - "description": "The Google click ID. This field is mutually exclusive with encryptedUserId, encryptedUserIdCandidates[], matchId, mobileDeviceId and dclid. This or encryptedUserId or encryptedUserIdCandidates[] or matchId or mobileDeviceId or dclid is a required field.", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#conversion\".", - "type": "string" - }, - "limitAdTracking": { - "description": "Whether Limit Ad Tracking is enabled. When set to true, the conversion will be used for reporting but not targeting. This will prevent remarketing.", - "type": "boolean" - }, - "matchId": { - "description": "The match ID field. A match ID is your own first-party identifier that has been synced with Google using the match ID feature in Floodlight. This field is mutually exclusive with encryptedUserId, encryptedUserIdCandidates[],mobileDeviceId, gclid and dclid. This or encryptedUserId or encryptedUserIdCandidates[] or mobileDeviceId or gclid or dclid is a required field.", - "type": "string" - }, - "mobileDeviceId": { - "description": "The mobile device ID. This field is mutually exclusive with encryptedUserId, encryptedUserIdCandidates[], matchId, gclid and dclid. This or encryptedUserId or encryptedUserIdCandidates[] or matchId or gclid or dclid is a required field.", - "type": "string" - }, - "nonPersonalizedAd": { - "description": "Whether the conversion was for a non personalized ad.", - "type": "boolean" - }, - "ordinal": { - "description": "The ordinal of the conversion. Use this field to control how conversions of the same user and day are de-duplicated. This is a required field.", - "type": "string" - }, - "quantity": { - "description": "The quantity of the conversion.", - "format": "int64", - "type": "string" - }, - "timestampMicros": { - "description": "The timestamp of conversion, in Unix epoch micros. This is a required field.", - "format": "int64", - "type": "string" - }, - "treatmentForUnderage": { - "description": "Whether this particular request may come from a user under the age of 16 (may differ by country), under compliance with the European Union's General Data Protection Regulation (GDPR).", - "type": "boolean" - }, - "value": { - "description": "The value of the conversion.", - "format": "double", - "type": "number" - } - }, - "type": "object" - }, - "ConversionError": { - "description": "The error code and description for a conversion that failed to insert or update.", - "id": "ConversionError", - "properties": { - "code": { - "description": "The error code.", - "enum": [ - "INVALID_ARGUMENT", - "INTERNAL", - "PERMISSION_DENIED", - "NOT_FOUND" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#conversionError\".", - "type": "string" - }, - "message": { - "description": "A description of the error.", - "type": "string" - } - }, - "type": "object" - }, - "ConversionStatus": { - "description": "The original conversion that was inserted or updated and whether there were any errors.", - "id": "ConversionStatus", - "properties": { - "conversion": { - "$ref": "Conversion", - "description": "The original conversion that was inserted or updated." - }, - "errors": { - "description": "A list of errors related to this conversion.", - "items": { - "$ref": "ConversionError" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#conversionStatus\".", - "type": "string" - } - }, - "type": "object" - }, - "ConversionsBatchInsertRequest": { - "description": "Insert Conversions Request.", - "id": "ConversionsBatchInsertRequest", - "properties": { - "conversions": { - "description": "The set of conversions to insert.", - "items": { - "$ref": "Conversion" - }, - "type": "array" - }, - "encryptionInfo": { - "$ref": "EncryptionInfo", - "description": "Describes how encryptedUserId or encryptedUserIdCandidates[] is encrypted. This is a required field if encryptedUserId or encryptedUserIdCandidates[] is used." - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#conversionsBatchInsertRequest\".", - "type": "string" - } - }, - "type": "object" - }, - "ConversionsBatchInsertResponse": { - "description": "Insert Conversions Response.", - "id": "ConversionsBatchInsertResponse", - "properties": { - "hasFailures": { - "description": "Indicates that some or all conversions failed to insert.", - "type": "boolean" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#conversionsBatchInsertResponse\".", - "type": "string" - }, - "status": { - "description": "The insert status of each conversion. Statuses are returned in the same order that conversions are inserted.", - "items": { - "$ref": "ConversionStatus" - }, - "type": "array" - } - }, - "type": "object" - }, - "ConversionsBatchUpdateRequest": { - "description": "Update Conversions Request.", - "id": "ConversionsBatchUpdateRequest", - "properties": { - "conversions": { - "description": "The set of conversions to update.", - "items": { - "$ref": "Conversion" - }, - "type": "array" - }, - "encryptionInfo": { - "$ref": "EncryptionInfo", - "description": "Describes how encryptedUserId is encrypted. This is a required field if encryptedUserId is used." - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#conversionsBatchUpdateRequest\".", - "type": "string" - } - }, - "type": "object" - }, - "ConversionsBatchUpdateResponse": { - "description": "Update Conversions Response.", - "id": "ConversionsBatchUpdateResponse", - "properties": { - "hasFailures": { - "description": "Indicates that some or all conversions failed to update.", - "type": "boolean" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#conversionsBatchUpdateResponse\".", - "type": "string" - }, - "status": { - "description": "The update status of each conversion. Statuses are returned in the same order that conversions are updated.", - "items": { - "$ref": "ConversionStatus" - }, - "type": "array" - } - }, - "type": "object" - }, - "CountriesListResponse": { - "description": "Country List Response", - "id": "CountriesListResponse", - "properties": { - "countries": { - "description": "Country collection.", - "items": { - "$ref": "Country" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#countriesListResponse\".", - "type": "string" - } - }, - "type": "object" - }, - "Country": { - "description": "Contains information about a country that can be targeted by ads.", - "id": "Country", - "properties": { - "countryCode": { - "description": "Country code.", - "type": "string" - }, - "dartId": { - "description": "DART ID of this country. This is the ID used for targeting and generating reports.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#country\".", - "type": "string" - }, - "name": { - "description": "Name of this country.", - "type": "string" - }, - "sslEnabled": { - "description": "Whether ad serving supports secure servers in this country.", - "type": "boolean" - } - }, - "type": "object" - }, - "Creative": { - "description": "Contains properties of a Creative.", - "id": "Creative", - "properties": { - "accountId": { - "description": "Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.", - "format": "int64", - "type": "string" - }, - "active": { - "description": "Whether the creative is active. Applicable to all creative types.", - "type": "boolean" - }, - "adParameters": { - "description": "Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.", - "type": "string" - }, - "adTagKeys": { - "description": "Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", - "items": { - "type": "string" - }, - "type": "array" - }, - "additionalSizes": { - "description": "Additional sizes associated with a responsive creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. Applicable to DISPLAY creatives when the primary asset type is HTML_IMAGE.", - "items": { - "$ref": "Size" - }, - "type": "array" - }, - "advertiserId": { - "description": "Advertiser ID of this creative. This is a required field. Applicable to all creative types.", - "format": "int64", - "type": "string" - }, - "allowScriptAccess": { - "description": "Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.", - "type": "boolean" - }, - "archived": { - "description": "Whether the creative is archived. Applicable to all creative types.", - "type": "boolean" - }, - "artworkType": { - "description": "Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", - "enum": [ - "ARTWORK_TYPE_FLASH", - "ARTWORK_TYPE_HTML5", - "ARTWORK_TYPE_MIXED", - "ARTWORK_TYPE_IMAGE" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "authoringSource": { - "description": "Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.", - "enum": [ - "CREATIVE_AUTHORING_SOURCE_DCM", - "CREATIVE_AUTHORING_SOURCE_DBM", - "CREATIVE_AUTHORING_SOURCE_STUDIO", - "CREATIVE_AUTHORING_SOURCE_GWD", - "CREATIVE_AUTHORING_SOURCE_ACS" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "authoringTool": { - "description": "Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.", - "enum": [ - "NINJA", - "SWIFFY" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "autoAdvanceImages": { - "description": "Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.", - "type": "boolean" - }, - "backgroundColor": { - "description": "The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.", - "type": "string" - }, - "backupImageClickThroughUrl": { - "$ref": "CreativeClickThroughUrl", - "description": "Click-through URL for backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE." - }, - "backupImageFeatures": { - "description": "List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by Campaign Manager for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.", - "items": { - "enum": [ - "CSS_FONT_FACE", - "CSS_BACKGROUND_SIZE", - "CSS_BORDER_IMAGE", - "CSS_BORDER_RADIUS", - "CSS_BOX_SHADOW", - "CSS_FLEX_BOX", - "CSS_HSLA", - "CSS_MULTIPLE_BGS", - "CSS_OPACITY", - "CSS_RGBA", - "CSS_TEXT_SHADOW", - "CSS_ANIMATIONS", - "CSS_COLUMNS", - "CSS_GENERATED_CONTENT", - "CSS_GRADIENTS", - "CSS_REFLECTIONS", - "CSS_TRANSFORMS", - "CSS_TRANSFORMS3D", - "CSS_TRANSITIONS", - "APPLICATION_CACHE", - "CANVAS", - "CANVAS_TEXT", - "DRAG_AND_DROP", - "HASH_CHANGE", - "HISTORY", - "AUDIO", - "VIDEO", - "INDEXED_DB", - "INPUT_ATTR_AUTOCOMPLETE", - "INPUT_ATTR_AUTOFOCUS", - "INPUT_ATTR_LIST", - "INPUT_ATTR_PLACEHOLDER", - "INPUT_ATTR_MAX", - "INPUT_ATTR_MIN", - "INPUT_ATTR_MULTIPLE", - "INPUT_ATTR_PATTERN", - "INPUT_ATTR_REQUIRED", - "INPUT_ATTR_STEP", - "INPUT_TYPE_SEARCH", - "INPUT_TYPE_TEL", - "INPUT_TYPE_URL", - "INPUT_TYPE_EMAIL", - "INPUT_TYPE_DATETIME", - "INPUT_TYPE_DATE", - "INPUT_TYPE_MONTH", - "INPUT_TYPE_WEEK", - "INPUT_TYPE_TIME", - "INPUT_TYPE_DATETIME_LOCAL", - "INPUT_TYPE_NUMBER", - "INPUT_TYPE_RANGE", - "INPUT_TYPE_COLOR", - "LOCAL_STORAGE", - "POST_MESSAGE", - "SESSION_STORAGE", - "WEB_SOCKETS", - "WEB_SQL_DATABASE", - "WEB_WORKERS", - "GEO_LOCATION", - "INLINE_SVG", - "SMIL", - "SVG_HREF", - "SVG_CLIP_PATHS", - "TOUCH", - "WEBGL", - "SVG_FILTERS", - "SVG_FE_IMAGE" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "type": "array" - }, - "backupImageReportingLabel": { - "description": "Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.", - "type": "string" - }, - "backupImageTargetWindow": { - "$ref": "TargetWindow", - "description": "Target window for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE." - }, - "clickTags": { - "description": "Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.", - "items": { - "$ref": "ClickTag" - }, - "type": "array" - }, - "commercialId": { - "description": "Industry standard ID assigned to creative for reach and frequency. Applicable to INSTREAM_VIDEO_REDIRECT creatives.", - "type": "string" - }, - "companionCreatives": { - "description": "List of companion creatives assigned to an in-Stream video creative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all VPAID, all INSTREAM_AUDIO and all INSTREAM_VIDEO with dynamicAssetSelection set to false.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "compatibility": { - "description": "Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. IN_STREAM_AUDIO refers to rendering in in-stream audio ads developed with the VAST standard. Applicable to all creative types. Acceptable values are: - \"APP\" - \"APP_INTERSTITIAL\" - \"IN_STREAM_VIDEO\" - \"IN_STREAM_AUDIO\" - \"DISPLAY\" - \"DISPLAY_INTERSTITIAL\" ", - "items": { - "enum": [ - "DISPLAY", - "DISPLAY_INTERSTITIAL", - "APP", - "APP_INTERSTITIAL", - "IN_STREAM_VIDEO", - "IN_STREAM_AUDIO" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "type": "array" - }, - "convertFlashToHtml5": { - "description": "Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.", - "type": "boolean" - }, - "counterCustomEvents": { - "description": "List of counter events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID.", - "items": { - "$ref": "CreativeCustomEvent" - }, - "type": "array" - }, - "creativeAssetSelection": { - "$ref": "CreativeAssetSelection", - "description": "Required if dynamicAssetSelection is true." - }, - "creativeAssets": { - "description": "Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT", - "items": { - "$ref": "CreativeAsset" - }, - "type": "array" - }, - "creativeFieldAssignments": { - "description": "Creative field assignments for this creative. Applicable to all creative types.", - "items": { - "$ref": "CreativeFieldAssignment" - }, - "type": "array" - }, - "customKeyValues": { - "description": "Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", - "items": { - "type": "string" - }, - "type": "array" - }, - "dynamicAssetSelection": { - "description": "Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.", - "type": "boolean" - }, - "exitCustomEvents": { - "description": "List of exit events configured for the creative. For DISPLAY and DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags, For DISPLAY, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.", - "items": { - "$ref": "CreativeCustomEvent" - }, - "type": "array" - }, - "fsCommand": { - "$ref": "FsCommand", - "description": "OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE." - }, - "htmlCode": { - "description": "HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is true. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.", - "type": "string" - }, - "htmlCodeLocked": { - "description": "Whether HTML code is generated by Campaign Manager or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.", - "type": "boolean" - }, - "id": { - "description": "ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.", - "format": "int64", - "type": "string" - }, - "idDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types." - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creative\".", - "type": "string" - }, - "lastModifiedInfo": { - "$ref": "LastModifiedInfo", - "description": "Creative last modification information. This is a read-only field. Applicable to all creative types." - }, - "latestTraffickedCreativeId": { - "description": "Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", - "format": "int64", - "type": "string" - }, - "mediaDescription": { - "description": "Description of the audio or video ad. Applicable to the following creative types: all INSTREAM_VIDEO, INSTREAM_AUDIO, and all VPAID.", - "type": "string" - }, - "mediaDuration": { - "description": "Creative audio or video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, INSTREAM_AUDIO, all RICH_MEDIA, and all VPAID.", - "format": "float", - "type": "number" - }, - "name": { - "description": "Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.", - "type": "string" - }, - "obaIcon": { - "$ref": "ObaIcon", - "description": "Online behavioral advertising icon to be added to the creative. Applicable to the following creative types: all INSTREAM_VIDEO." - }, - "overrideCss": { - "description": "Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.", - "type": "string" - }, - "progressOffset": { - "$ref": "VideoOffset", - "description": "Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO." - }, - "redirectUrl": { - "description": "URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT", - "type": "string" - }, - "renderingId": { - "description": "ID of current rendering version. This is a read-only field. Applicable to all creative types.", - "format": "int64", - "type": "string" - }, - "renderingIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types." - }, - "requiredFlashPluginVersion": { - "description": "The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", - "type": "string" - }, - "requiredFlashVersion": { - "description": "The internal Flash version for this creative as calculated by Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.", - "format": "int32", - "type": "integer" - }, - "size": { - "$ref": "Size", - "description": "Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA." - }, - "skipOffset": { - "$ref": "VideoOffset", - "description": "Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO." - }, - "skippable": { - "description": "Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.", - "type": "boolean" - }, - "sslCompliant": { - "description": "Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.", - "type": "boolean" - }, - "sslOverride": { - "description": "Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.", - "type": "boolean" - }, - "studioAdvertiserId": { - "description": "Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", - "format": "int64", - "type": "string" - }, - "studioCreativeId": { - "description": "Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", - "format": "int64", - "type": "string" - }, - "studioTraffickedCreativeId": { - "description": "Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", - "format": "int64", - "type": "string" - }, - "subaccountId": { - "description": "Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.", - "format": "int64", - "type": "string" - }, - "thirdPartyBackupImageImpressionsUrl": { - "description": "Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.", - "type": "string" - }, - "thirdPartyRichMediaImpressionsUrl": { - "description": "Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.", - "type": "string" - }, - "thirdPartyUrls": { - "description": "Third-party URLs for tracking in-stream creative events. Applicable to the following creative types: all INSTREAM_VIDEO, all INSTREAM_AUDIO, and all VPAID.", - "items": { - "$ref": "ThirdPartyTrackingUrl" - }, - "type": "array" - }, - "timerCustomEvents": { - "description": "List of timer events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset is not HTML_IMAGE.", - "items": { - "$ref": "CreativeCustomEvent" - }, - "type": "array" - }, - "totalFileSize": { - "description": "Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", - "format": "int64", - "type": "string" - }, - "type": { - "description": "Type of this creative. This is a required field. Applicable to all creative types. *Note:* FLASH_INPAGE, HTML5_BANNER, and IMAGE are only used for existing creatives. New creatives should use DISPLAY as a replacement for these types.", - "enum": [ - "IMAGE", - "DISPLAY_REDIRECT", - "CUSTOM_DISPLAY", - "INTERNAL_REDIRECT", - "CUSTOM_DISPLAY_INTERSTITIAL", - "INTERSTITIAL_INTERNAL_REDIRECT", - "TRACKING_TEXT", - "RICH_MEDIA_DISPLAY_BANNER", - "RICH_MEDIA_INPAGE_FLOATING", - "RICH_MEDIA_IM_EXPAND", - "RICH_MEDIA_DISPLAY_EXPANDING", - "RICH_MEDIA_DISPLAY_INTERSTITIAL", - "RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL", - "RICH_MEDIA_MOBILE_IN_APP", - "FLASH_INPAGE", - "INSTREAM_VIDEO", - "VPAID_LINEAR_VIDEO", - "VPAID_NON_LINEAR_VIDEO", - "INSTREAM_VIDEO_REDIRECT", - "RICH_MEDIA_PEEL_DOWN", - "HTML5_BANNER", - "DISPLAY", - "DISPLAY_IMAGE_GALLERY", - "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO", - "INSTREAM_AUDIO" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "universalAdId": { - "$ref": "UniversalAdId", - "description": "A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO and INSTREAM_VIDEO and VPAID." - }, - "version": { - "description": "The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "CreativeAsset": { - "description": "Creative Asset.", - "id": "CreativeAsset", - "properties": { - "actionScript3": { - "description": "Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.", - "type": "boolean" - }, - "active": { - "description": "Whether the video or audio asset is active. This is a read-only field for VPAID_NON_LINEAR_VIDEO assets. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.", - "type": "boolean" - }, - "additionalSizes": { - "description": "Additional sizes associated with this creative asset. HTML5 asset generated by compatible software such as GWD will be able to support more sizes this creative asset can render.", - "items": { - "$ref": "Size" - }, - "type": "array" - }, - "alignment": { - "description": "Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL .", - "enum": [ - "ALIGNMENT_TOP", - "ALIGNMENT_RIGHT", - "ALIGNMENT_BOTTOM", - "ALIGNMENT_LEFT" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "artworkType": { - "description": "Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.", - "enum": [ - "ARTWORK_TYPE_FLASH", - "ARTWORK_TYPE_HTML5", - "ARTWORK_TYPE_MIXED", - "ARTWORK_TYPE_IMAGE" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "assetIdentifier": { - "$ref": "CreativeAssetId", - "description": "Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT." - }, - "audioBitRate": { - "description": "Audio stream bit rate in kbps. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.", - "format": "int32", - "type": "integer" - }, - "audioSampleRate": { - "description": "Audio sample bit rate in hertz. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.", - "format": "int32", - "type": "integer" - }, - "backupImageExit": { - "$ref": "CreativeCustomEvent", - "description": "Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA." - }, - "bitRate": { - "description": "Detected bit-rate for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.", - "format": "int32", - "type": "integer" - }, - "childAssetType": { - "description": "Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.", - "enum": [ - "CHILD_ASSET_TYPE_FLASH", - "CHILD_ASSET_TYPE_VIDEO", - "CHILD_ASSET_TYPE_IMAGE", - "CHILD_ASSET_TYPE_DATA" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "collapsedSize": { - "$ref": "Size", - "description": "Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN." - }, - "companionCreativeIds": { - "description": "List of companion creatives assigned to an in-stream video creative asset. Acceptable values include IDs of existing flash and image creatives. Applicable to INSTREAM_VIDEO creative type with dynamicAssetSelection set to true.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "customStartTimeValue": { - "description": "Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.", - "format": "int32", - "type": "integer" - }, - "detectedFeatures": { - "description": "List of feature dependencies for the creative asset that are detected by Campaign Manager. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.", - "items": { - "enum": [ - "CSS_FONT_FACE", - "CSS_BACKGROUND_SIZE", - "CSS_BORDER_IMAGE", - "CSS_BORDER_RADIUS", - "CSS_BOX_SHADOW", - "CSS_FLEX_BOX", - "CSS_HSLA", - "CSS_MULTIPLE_BGS", - "CSS_OPACITY", - "CSS_RGBA", - "CSS_TEXT_SHADOW", - "CSS_ANIMATIONS", - "CSS_COLUMNS", - "CSS_GENERATED_CONTENT", - "CSS_GRADIENTS", - "CSS_REFLECTIONS", - "CSS_TRANSFORMS", - "CSS_TRANSFORMS3D", - "CSS_TRANSITIONS", - "APPLICATION_CACHE", - "CANVAS", - "CANVAS_TEXT", - "DRAG_AND_DROP", - "HASH_CHANGE", - "HISTORY", - "AUDIO", - "VIDEO", - "INDEXED_DB", - "INPUT_ATTR_AUTOCOMPLETE", - "INPUT_ATTR_AUTOFOCUS", - "INPUT_ATTR_LIST", - "INPUT_ATTR_PLACEHOLDER", - "INPUT_ATTR_MAX", - "INPUT_ATTR_MIN", - "INPUT_ATTR_MULTIPLE", - "INPUT_ATTR_PATTERN", - "INPUT_ATTR_REQUIRED", - "INPUT_ATTR_STEP", - "INPUT_TYPE_SEARCH", - "INPUT_TYPE_TEL", - "INPUT_TYPE_URL", - "INPUT_TYPE_EMAIL", - "INPUT_TYPE_DATETIME", - "INPUT_TYPE_DATE", - "INPUT_TYPE_MONTH", - "INPUT_TYPE_WEEK", - "INPUT_TYPE_TIME", - "INPUT_TYPE_DATETIME_LOCAL", - "INPUT_TYPE_NUMBER", - "INPUT_TYPE_RANGE", - "INPUT_TYPE_COLOR", - "LOCAL_STORAGE", - "POST_MESSAGE", - "SESSION_STORAGE", - "WEB_SOCKETS", - "WEB_SQL_DATABASE", - "WEB_WORKERS", - "GEO_LOCATION", - "INLINE_SVG", - "SMIL", - "SVG_HREF", - "SVG_CLIP_PATHS", - "TOUCH", - "WEBGL", - "SVG_FILTERS", - "SVG_FE_IMAGE" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "type": "array" - }, - "displayType": { - "description": "Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.", - "enum": [ - "ASSET_DISPLAY_TYPE_INPAGE", - "ASSET_DISPLAY_TYPE_FLOATING", - "ASSET_DISPLAY_TYPE_OVERLAY", - "ASSET_DISPLAY_TYPE_EXPANDING", - "ASSET_DISPLAY_TYPE_FLASH_IN_FLASH", - "ASSET_DISPLAY_TYPE_FLASH_IN_FLASH_EXPANDING", - "ASSET_DISPLAY_TYPE_PEEL_DOWN", - "ASSET_DISPLAY_TYPE_VPAID_LINEAR", - "ASSET_DISPLAY_TYPE_VPAID_NON_LINEAR", - "ASSET_DISPLAY_TYPE_BACKDROP" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "duration": { - "description": "Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.", - "format": "int32", - "type": "integer" - }, - "durationType": { - "description": "Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.", - "enum": [ - "ASSET_DURATION_TYPE_AUTO", - "ASSET_DURATION_TYPE_NONE", - "ASSET_DURATION_TYPE_CUSTOM" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "expandedDimension": { - "$ref": "Size", - "description": "Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID." - }, - "fileSize": { - "description": "File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.", - "format": "int64", - "type": "string" - }, - "flashVersion": { - "description": "Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.", - "format": "int32", - "type": "integer" - }, - "frameRate": { - "description": "Video frame rate for video asset in frames per second. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.", - "format": "float", - "type": "number" - }, - "hideFlashObjects": { - "description": "Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.", - "type": "boolean" - }, - "hideSelectionBoxes": { - "description": "Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.", - "type": "boolean" - }, - "horizontallyLocked": { - "description": "Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.", - "type": "boolean" - }, - "id": { - "description": "Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.", - "format": "int64", - "type": "string" - }, - "idDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the asset. This is a read-only, auto-generated field." - }, - "mediaDuration": { - "description": "Detected duration for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.", - "format": "float", - "type": "number" - }, - "mimeType": { - "description": "Detected MIME type for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.", - "type": "string" - }, - "offset": { - "$ref": "OffsetPosition", - "description": "Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN." - }, - "orientation": { - "description": "Orientation of video asset. This is a read-only, auto-generated field.", - "enum": [ - "LANDSCAPE", - "PORTRAIT", - "SQUARE" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "originalBackup": { - "description": "Whether the backup asset is original or changed by the user in Campaign Manager. Applicable to the following creative types: all RICH_MEDIA.", - "type": "boolean" - }, - "politeLoad": { - "description": "Whether this asset is used as a polite load asset.", - "type": "boolean" - }, - "position": { - "$ref": "OffsetPosition", - "description": "Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA." - }, - "positionLeftUnit": { - "description": "Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.", - "enum": [ - "OFFSET_UNIT_PIXEL", - "OFFSET_UNIT_PERCENT", - "OFFSET_UNIT_PIXEL_FROM_CENTER" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "positionTopUnit": { - "description": "Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.", - "enum": [ - "OFFSET_UNIT_PIXEL", - "OFFSET_UNIT_PERCENT", - "OFFSET_UNIT_PIXEL_FROM_CENTER" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "progressiveServingUrl": { - "description": "Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.", - "type": "string" - }, - "pushdown": { - "description": "Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.", - "type": "boolean" - }, - "pushdownDuration": { - "description": "Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.", - "format": "float", - "type": "number" - }, - "role": { - "description": "Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field. PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER, IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives. BACKUP_IMAGE applies to FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE. ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives. OTHER refers to assets from sources other than Campaign Manager, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives. PARENT_VIDEO refers to videos uploaded by the user in Campaign Manager and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. TRANSCODED_VIDEO refers to videos transcoded by Campaign Manager from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. ALTERNATE_VIDEO refers to the Campaign Manager representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within Campaign Manager. For VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative. PARENT_AUDIO refers to audios uploaded by the user in Campaign Manager and is applicable to INSTREAM_AUDIO creatives. TRANSCODED_AUDIO refers to audios transcoded by Campaign Manager from PARENT_AUDIO assets and is applicable to INSTREAM_AUDIO creatives. ", - "enum": [ - "PRIMARY", - "BACKUP_IMAGE", - "ADDITIONAL_IMAGE", - "ADDITIONAL_FLASH", - "PARENT_VIDEO", - "TRANSCODED_VIDEO", - "OTHER", - "ALTERNATE_VIDEO", - "PARENT_AUDIO", - "TRANSCODED_AUDIO" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "size": { - "$ref": "Size", - "description": "Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE." - }, - "sslCompliant": { - "description": "Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.", - "type": "boolean" - }, - "startTimeType": { - "description": "Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.", - "enum": [ - "ASSET_START_TIME_TYPE_NONE", - "ASSET_START_TIME_TYPE_CUSTOM" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "streamingServingUrl": { - "description": "Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.", - "type": "string" - }, - "transparency": { - "description": "Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.", - "type": "boolean" - }, - "verticallyLocked": { - "description": "Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.", - "type": "boolean" - }, - "windowMode": { - "description": "Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and RICH_MEDIA_INPAGE_FLOATING.", - "enum": [ - "OPAQUE", - "WINDOW", - "TRANSPARENT" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "zIndex": { - "description": "zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.", - "format": "int32", - "type": "integer" - }, - "zipFilename": { - "description": "File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.", - "type": "string" - }, - "zipFilesize": { - "description": "Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.", - "type": "string" - } - }, - "type": "object" - }, "CreativeAssetId": { "description": "Creative Asset ID.", "id": "CreativeAssetId", @@ -12884,6 +399,12 @@ "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeAssetMetadata\".", "type": "string" }, + "mediaRequestInfo": { + "$ref": "MediaRequestInfo" + }, + "mediaResponseInfo": { + "$ref": "MediaResponseInfo" + }, "richMedia": { "description": "True if the uploaded asset is a rich media asset. This is a read-only, auto-generated field.", "type": "boolean" @@ -12961,96 +482,6 @@ }, "type": "object" }, - "CreativeAssetSelection": { - "description": "Encapsulates the list of rules for asset selection and a default asset in case none of the rules match. Applicable to INSTREAM_VIDEO creatives.", - "id": "CreativeAssetSelection", - "properties": { - "defaultAssetId": { - "description": "A creativeAssets[].id. This should refer to one of the parent assets in this creative, and will be served if none of the rules match. This is a required field.", - "format": "int64", - "type": "string" - }, - "rules": { - "description": "Rules determine which asset will be served to a viewer. Rules will be evaluated in the order in which they are stored in this list. This list must contain at least one rule. Applicable to INSTREAM_VIDEO creatives.", - "items": { - "$ref": "Rule" - }, - "type": "array" - } - }, - "type": "object" - }, - "CreativeAssignment": { - "description": "Creative Assignment.", - "id": "CreativeAssignment", - "properties": { - "active": { - "description": "Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.", - "type": "boolean" - }, - "applyEventTags": { - "description": "Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.", - "type": "boolean" - }, - "clickThroughUrl": { - "$ref": "ClickThroughUrl", - "description": "Click-through URL of the creative assignment." - }, - "companionCreativeOverrides": { - "description": "Companion creative overrides for this creative assignment. Applicable to video ads.", - "items": { - "$ref": "CompanionClickThroughOverride" - }, - "type": "array" - }, - "creativeGroupAssignments": { - "description": "Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.", - "items": { - "$ref": "CreativeGroupAssignment" - }, - "type": "array" - }, - "creativeId": { - "description": "ID of the creative to be assigned. This is a required field.", - "format": "int64", - "type": "string" - }, - "creativeIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the creative. This is a read-only, auto-generated field." - }, - "endTime": { - "format": "date-time", - "type": "string" - }, - "richMediaExitOverrides": { - "description": "Rich media exit overrides for this creative assignment. Applicable when the creative type is any of the following: - DISPLAY - RICH_MEDIA_INPAGE - RICH_MEDIA_INPAGE_FLOATING - RICH_MEDIA_IM_EXPAND - RICH_MEDIA_EXPANDING - RICH_MEDIA_INTERSTITIAL_FLOAT - RICH_MEDIA_MOBILE_IN_APP - RICH_MEDIA_MULTI_FLOATING - RICH_MEDIA_PEEL_DOWN - VPAID_LINEAR - VPAID_NON_LINEAR ", - "items": { - "$ref": "RichMediaExitOverride" - }, - "type": "array" - }, - "sequence": { - "description": "Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL. Acceptable values are 1 to 65535, inclusive.", - "format": "int32", - "type": "integer" - }, - "sslCompliant": { - "description": "Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.", - "type": "boolean" - }, - "startTime": { - "format": "date-time", - "type": "string" - }, - "weight": { - "description": "Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM. Value must be greater than or equal to 1.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, "CreativeClickThroughUrl": { "description": "Click-through URL", "id": "CreativeClickThroughUrl", @@ -13156,925 +587,6 @@ }, "type": "object" }, - "CreativeField": { - "description": "Contains properties of a creative field.", - "id": "CreativeField", - "properties": { - "accountId": { - "description": "Account ID of this creative field. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "advertiserId": { - "description": "Advertiser ID of this creative field. This is a required field on insertion.", - "format": "int64", - "type": "string" - }, - "advertiserIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." - }, - "id": { - "description": "ID of this creative field. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeField\".", - "type": "string" - }, - "name": { - "description": "Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.", - "type": "string" - }, - "subaccountId": { - "description": "Subaccount ID of this creative field. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "CreativeFieldAssignment": { - "description": "Creative Field Assignment.", - "id": "CreativeFieldAssignment", - "properties": { - "creativeFieldId": { - "description": "ID of the creative field.", - "format": "int64", - "type": "string" - }, - "creativeFieldValueId": { - "description": "ID of the creative field value.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "CreativeFieldValue": { - "description": "Contains properties of a creative field value.", - "id": "CreativeFieldValue", - "properties": { - "id": { - "description": "ID of this creative field value. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeFieldValue\".", - "type": "string" - }, - "value": { - "description": "Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.", - "type": "string" - } - }, - "type": "object" - }, - "CreativeFieldValuesListResponse": { - "description": "Creative Field Value List Response", - "id": "CreativeFieldValuesListResponse", - "properties": { - "creativeFieldValues": { - "description": "Creative field value collection.", - "items": { - "$ref": "CreativeFieldValue" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeFieldValuesListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - } - }, - "type": "object" - }, - "CreativeFieldsListResponse": { - "description": "Creative Field List Response", - "id": "CreativeFieldsListResponse", - "properties": { - "creativeFields": { - "description": "Creative field collection.", - "items": { - "$ref": "CreativeField" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeFieldsListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - } - }, - "type": "object" - }, - "CreativeGroup": { - "description": "Contains properties of a creative group.", - "id": "CreativeGroup", - "properties": { - "accountId": { - "description": "Account ID of this creative group. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "advertiserId": { - "description": "Advertiser ID of this creative group. This is a required field on insertion.", - "format": "int64", - "type": "string" - }, - "advertiserIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." - }, - "groupNumber": { - "description": "Subgroup of the creative group. Assign your creative groups to a subgroup in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion. Acceptable values are 1 to 2, inclusive.", - "format": "int32", - "type": "integer" - }, - "id": { - "description": "ID of this creative group. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeGroup\".", - "type": "string" - }, - "name": { - "description": "Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.", - "type": "string" - }, - "subaccountId": { - "description": "Subaccount ID of this creative group. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "CreativeGroupAssignment": { - "description": "Creative Group Assignment.", - "id": "CreativeGroupAssignment", - "properties": { - "creativeGroupId": { - "description": "ID of the creative group to be assigned.", - "format": "int64", - "type": "string" - }, - "creativeGroupNumber": { - "description": "Creative group number of the creative group assignment.", - "enum": [ - "CREATIVE_GROUP_ONE", - "CREATIVE_GROUP_TWO" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "CreativeGroupsListResponse": { - "description": "Creative Group List Response", - "id": "CreativeGroupsListResponse", - "properties": { - "creativeGroups": { - "description": "Creative group collection.", - "items": { - "$ref": "CreativeGroup" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeGroupsListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - } - }, - "type": "object" - }, - "CreativeOptimizationConfiguration": { - "description": "Creative optimization settings.", - "id": "CreativeOptimizationConfiguration", - "properties": { - "id": { - "description": "ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.", - "format": "int64", - "type": "string" - }, - "name": { - "description": "Name of this creative optimization config. This is a required field and must be less than 129 characters long.", - "type": "string" - }, - "optimizationActivitys": { - "description": "List of optimization activities associated with this configuration.", - "items": { - "$ref": "OptimizationActivity" - }, - "type": "array" - }, - "optimizationModel": { - "description": "Optimization model for this configuration.", - "enum": [ - "CLICK", - "POST_CLICK", - "POST_IMPRESSION", - "POST_CLICK_AND_IMPRESSION", - "VIDEO_COMPLETION" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "CreativeRotation": { - "description": "Creative Rotation.", - "id": "CreativeRotation", - "properties": { - "creativeAssignments": { - "description": "Creative assignments in this creative rotation.", - "items": { - "$ref": "CreativeAssignment" - }, - "type": "array" - }, - "creativeOptimizationConfigurationId": { - "description": "Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.", - "format": "int64", - "type": "string" - }, - "type": { - "description": "Type of creative rotation. Can be used to specify whether to use sequential or random rotation.", - "enum": [ - "CREATIVE_ROTATION_TYPE_SEQUENTIAL", - "CREATIVE_ROTATION_TYPE_RANDOM" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "weightCalculationStrategy": { - "description": "Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.", - "enum": [ - "WEIGHT_STRATEGY_EQUAL", - "WEIGHT_STRATEGY_CUSTOM", - "WEIGHT_STRATEGY_HIGHEST_CTR", - "WEIGHT_STRATEGY_OPTIMIZED" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "CreativesListResponse": { - "description": "Creative List Response", - "id": "CreativesListResponse", - "properties": { - "creatives": { - "description": "Creative collection.", - "items": { - "$ref": "Creative" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativesListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - } - }, - "type": "object" - }, - "CrossDimensionReachReportCompatibleFields": { - "description": "Represents fields that are compatible to be selected for a report of type \"CROSS_DIMENSION_REACH\".", - "id": "CrossDimensionReachReportCompatibleFields", - "properties": { - "breakdown": { - "description": "Dimensions which are compatible to be selected in the \"breakdown\" section of the report.", - "items": { - "$ref": "Dimension" - }, - "type": "array" - }, - "dimensionFilters": { - "description": "Dimensions which are compatible to be selected in the \"dimensionFilters\" section of the report.", - "items": { - "$ref": "Dimension" - }, - "type": "array" - }, - "kind": { - "description": "The kind of resource this is, in this case dfareporting#crossDimensionReachReportCompatibleFields.", - "type": "string" - }, - "metrics": { - "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", - "items": { - "$ref": "Metric" - }, - "type": "array" - }, - "overlapMetrics": { - "description": "Metrics which are compatible to be selected in the \"overlapMetricNames\" section of the report.", - "items": { - "$ref": "Metric" - }, - "type": "array" - } - }, - "type": "object" - }, - "CustomFloodlightVariable": { - "description": "A custom floodlight variable. This field may only be used when calling batchinsert; it is not supported by batchupdate.", - "id": "CustomFloodlightVariable", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#customFloodlightVariable\".", - "type": "string" - }, - "type": { - "description": "The type of custom floodlight variable to supply a value for. These map to the \"u[1-20]=\" in the tags.", - "enum": [ - "U1", - "U2", - "U3", - "U4", - "U5", - "U6", - "U7", - "U8", - "U9", - "U10", - "U11", - "U12", - "U13", - "U14", - "U15", - "U16", - "U17", - "U18", - "U19", - "U20", - "U21", - "U22", - "U23", - "U24", - "U25", - "U26", - "U27", - "U28", - "U29", - "U30", - "U31", - "U32", - "U33", - "U34", - "U35", - "U36", - "U37", - "U38", - "U39", - "U40", - "U41", - "U42", - "U43", - "U44", - "U45", - "U46", - "U47", - "U48", - "U49", - "U50", - "U51", - "U52", - "U53", - "U54", - "U55", - "U56", - "U57", - "U58", - "U59", - "U60", - "U61", - "U62", - "U63", - "U64", - "U65", - "U66", - "U67", - "U68", - "U69", - "U70", - "U71", - "U72", - "U73", - "U74", - "U75", - "U76", - "U77", - "U78", - "U79", - "U80", - "U81", - "U82", - "U83", - "U84", - "U85", - "U86", - "U87", - "U88", - "U89", - "U90", - "U91", - "U92", - "U93", - "U94", - "U95", - "U96", - "U97", - "U98", - "U99", - "U100" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "value": { - "description": "The value of the custom floodlight variable. The length of string must not exceed 100 characters.", - "type": "string" - } - }, - "type": "object" - }, - "CustomRichMediaEvents": { - "description": "Represents a Custom Rich Media Events group.", - "id": "CustomRichMediaEvents", - "properties": { - "filteredEventIds": { - "description": "List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.", - "items": { - "$ref": "DimensionValue" - }, - "type": "array" - }, - "kind": { - "description": "The kind of resource this is, in this case dfareporting#customRichMediaEvents.", - "type": "string" - } - }, - "type": "object" - }, - "CustomViewabilityMetric": { - "description": "Custom Viewability Metric", - "id": "CustomViewabilityMetric", - "properties": { - "configuration": { - "$ref": "CustomViewabilityMetricConfiguration", - "description": "Configuration of the custom viewability metric." - }, - "id": { - "description": "ID of the custom viewability metric.", - "format": "int64", - "type": "string" - }, - "name": { - "description": "Name of the custom viewability metric.", - "type": "string" - } - }, - "type": "object" - }, - "CustomViewabilityMetricConfiguration": { - "description": "The attributes, like playtime and percent onscreen, that define the Custom Viewability Metric.", - "id": "CustomViewabilityMetricConfiguration", - "properties": { - "audible": { - "description": "Whether the video must be audible to count an impression.", - "type": "boolean" - }, - "timeMillis": { - "description": "The time in milliseconds the video must play for the Custom Viewability Metric to count an impression. If both this and timePercent are specified, the earlier of the two will be used.", - "format": "int32", - "type": "integer" - }, - "timePercent": { - "description": "The percentage of video that must play for the Custom Viewability Metric to count an impression. If both this and timeMillis are specified, the earlier of the two will be used.", - "format": "int32", - "type": "integer" - }, - "viewabilityPercent": { - "description": "The percentage of video that must be on screen for the Custom Viewability Metric to count an impression.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "DateRange": { - "description": "Represents a date range.", - "id": "DateRange", - "properties": { - "endDate": { - "format": "date", - "type": "string" - }, - "kind": { - "description": "The kind of resource this is, in this case dfareporting#dateRange.", - "type": "string" - }, - "relativeDateRange": { - "description": "The date range relative to the date of when the report is run.", - "enum": [ - "TODAY", - "YESTERDAY", - "WEEK_TO_DATE", - "MONTH_TO_DATE", - "QUARTER_TO_DATE", - "YEAR_TO_DATE", - "PREVIOUS_WEEK", - "PREVIOUS_MONTH", - "PREVIOUS_QUARTER", - "PREVIOUS_YEAR", - "LAST_7_DAYS", - "LAST_30_DAYS", - "LAST_90_DAYS", - "LAST_365_DAYS", - "LAST_24_MONTHS", - "LAST_14_DAYS", - "LAST_60_DAYS" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "startDate": { - "format": "date", - "type": "string" - } - }, - "type": "object" - }, - "DayPartTargeting": { - "description": "Day Part Targeting.", - "id": "DayPartTargeting", - "properties": { - "daysOfWeek": { - "description": "Days of the week when the ad will serve. Acceptable values are: - \"SUNDAY\" - \"MONDAY\" - \"TUESDAY\" - \"WEDNESDAY\" - \"THURSDAY\" - \"FRIDAY\" - \"SATURDAY\" ", - "items": { - "enum": [ - "MONDAY", - "TUESDAY", - "WEDNESDAY", - "THURSDAY", - "FRIDAY", - "SATURDAY", - "SUNDAY" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "type": "array" - }, - "hoursOfDay": { - "description": "Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.", - "items": { - "format": "int32", - "type": "integer" - }, - "type": "array" - }, - "userLocalTime": { - "description": "Whether or not to use the user's local time. If false, the America/New York time zone applies.", - "type": "boolean" - } - }, - "type": "object" - }, - "DeepLink": { - "description": "Contains information about a landing page deep link.", - "id": "DeepLink", - "properties": { - "appUrl": { - "description": "The URL of the mobile app being linked to.", - "type": "string" - }, - "fallbackUrl": { - "description": "The fallback URL. This URL will be served to users who do not have the mobile app installed.", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#deepLink\".", - "type": "string" - }, - "mobileApp": { - "$ref": "MobileApp", - "description": "The mobile app targeted by this deep link." - }, - "remarketingListIds": { - "description": "Ads served to users on these remarketing lists will use this deep link. Applicable when mobileApp.directory is APPLE_APP_STORE.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "DefaultClickThroughEventTagProperties": { - "description": "Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further.", - "id": "DefaultClickThroughEventTagProperties", - "properties": { - "defaultClickThroughEventTagId": { - "description": "ID of the click-through event tag to apply to all ads in this entity's scope.", - "format": "int64", - "type": "string" - }, - "overrideInheritedEventTag": { - "description": "Whether this entity should override the inherited default click-through event tag with its own defined value.", - "type": "boolean" - } - }, - "type": "object" - }, - "DeliverySchedule": { - "description": "Delivery Schedule.", - "id": "DeliverySchedule", - "properties": { - "frequencyCap": { - "$ref": "FrequencyCap", - "description": "Limit on the number of times an individual user can be served the ad within a specified period of time." - }, - "hardCutoff": { - "description": "Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.", - "type": "boolean" - }, - "impressionRatio": { - "description": "Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then Campaign Manager will serve ad B three times as often as ad A. Acceptable values are 1 to 10, inclusive.", - "format": "int64", - "type": "string" - }, - "priority": { - "description": "Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.", - "enum": [ - "AD_PRIORITY_01", - "AD_PRIORITY_02", - "AD_PRIORITY_03", - "AD_PRIORITY_04", - "AD_PRIORITY_05", - "AD_PRIORITY_06", - "AD_PRIORITY_07", - "AD_PRIORITY_08", - "AD_PRIORITY_09", - "AD_PRIORITY_10", - "AD_PRIORITY_11", - "AD_PRIORITY_12", - "AD_PRIORITY_13", - "AD_PRIORITY_14", - "AD_PRIORITY_15", - "AD_PRIORITY_16" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "DfpSettings": { - "description": "Google Ad Manager Settings", - "id": "DfpSettings", - "properties": { - "dfpNetworkCode": { - "description": "Ad Manager network code for this directory site.", - "type": "string" - }, - "dfpNetworkName": { - "description": "Ad Manager network name for this directory site.", - "type": "string" - }, - "programmaticPlacementAccepted": { - "description": "Whether this directory site accepts programmatic placements.", - "type": "boolean" - }, - "pubPaidPlacementAccepted": { - "description": "Whether this directory site accepts publisher-paid tags.", - "type": "boolean" - }, - "publisherPortalOnly": { - "description": "Whether this directory site is available only via Publisher Portal.", - "type": "boolean" - } - }, - "type": "object" - }, - "Dimension": { - "description": "Represents a dimension.", - "id": "Dimension", - "properties": { - "kind": { - "description": "The kind of resource this is, in this case dfareporting#dimension.", - "type": "string" - }, - "name": { - "description": "The dimension name, e.g. dfa:advertiser", - "type": "string" - } - }, - "type": "object" - }, - "DimensionFilter": { - "description": "Represents a dimension filter.", - "id": "DimensionFilter", - "properties": { - "dimensionName": { - "description": "The name of the dimension to filter.", - "type": "string" - }, - "kind": { - "description": "The kind of resource this is, in this case dfareporting#dimensionFilter.", - "type": "string" - }, - "value": { - "description": "The value of the dimension to filter.", - "type": "string" - } - }, - "type": "object" - }, "DimensionValue": { "description": "Represents a DimensionValue resource.", "id": "DimensionValue", @@ -14118,2277 +630,148 @@ }, "type": "object" }, - "DimensionValueList": { - "description": "Represents the list of DimensionValue resources.", - "id": "DimensionValueList", + "MediaRequestInfo": { + "description": "Extra information added to operations that support Scotty media requests.", + "id": "MediaRequestInfo", "properties": { - "etag": { - "description": "The eTag of this response for caching purposes.", - "type": "string" - }, - "items": { - "description": "The dimension values returned in this response.", - "items": { - "$ref": "DimensionValue" - }, - "type": "array" - }, - "kind": { - "description": "The kind of list this is, in this case dfareporting#dimensionValueList.", - "type": "string" - }, - "nextPageToken": { - "description": "Continuation token used to page through dimension values. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.", - "type": "string" - } - }, - "type": "object" - }, - "DimensionValueRequest": { - "description": "Represents a DimensionValuesRequest.", - "id": "DimensionValueRequest", - "properties": { - "dimensionName": { - "annotations": { - "required": [ - "dfareporting.dimensionValues.query" - ] - }, - "description": "The name of the dimension for which values should be requested.", - "type": "string" - }, - "endDate": { - "format": "date", - "type": "string" - }, - "filters": { - "description": "The list of filters by which to filter values. The filters are ANDed.", - "items": { - "$ref": "DimensionFilter" - }, - "type": "array" - }, - "kind": { - "description": "The kind of request this is, in this case dfareporting#dimensionValueRequest .", - "type": "string" - }, - "startDate": { - "format": "date", - "type": "string" - } - }, - "type": "object" - }, - "DirectorySite": { - "description": "DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.", - "id": "DirectorySite", - "properties": { - "id": { - "description": "ID of this directory site. This is a read-only, auto-generated field.", + "currentBytes": { + "description": "The number of current bytes uploaded or downloaded.", "format": "int64", "type": "string" }, - "idDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of this directory site. This is a read-only, auto-generated field." - }, - "inpageTagFormats": { - "description": "Tag types for regular placements. Acceptable values are: - \"STANDARD\" - \"IFRAME_JAVASCRIPT_INPAGE\" - \"INTERNAL_REDIRECT_INPAGE\" - \"JAVASCRIPT_INPAGE\" ", - "items": { - "enum": [ - "STANDARD", - "IFRAME_JAVASCRIPT_INPAGE", - "INTERNAL_REDIRECT_INPAGE", - "JAVASCRIPT_INPAGE" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "type": "array" - }, - "interstitialTagFormats": { - "description": "Tag types for interstitial placements. Acceptable values are: - \"IFRAME_JAVASCRIPT_INTERSTITIAL\" - \"INTERNAL_REDIRECT_INTERSTITIAL\" - \"JAVASCRIPT_INTERSTITIAL\" ", - "items": { - "enum": [ - "IFRAME_JAVASCRIPT_INTERSTITIAL", - "INTERNAL_REDIRECT_INTERSTITIAL", - "JAVASCRIPT_INTERSTITIAL" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#directorySite\".", - "type": "string" - }, - "name": { - "description": "Name of this directory site.", - "type": "string" - }, - "settings": { - "$ref": "DirectorySiteSettings", - "description": "Directory site settings." - }, - "url": { - "description": "URL of this directory site.", - "type": "string" - } - }, - "type": "object" - }, - "DirectorySiteSettings": { - "description": "Directory Site Settings", - "id": "DirectorySiteSettings", - "properties": { - "activeViewOptOut": { - "description": "Whether this directory site has disabled active view creatives.", - "type": "boolean" - }, - "dfpSettings": { - "$ref": "DfpSettings", - "description": "Directory site Ad Manager settings." - }, - "instreamVideoPlacementAccepted": { - "description": "Whether this site accepts in-stream video ads.", - "type": "boolean" - }, - "interstitialPlacementAccepted": { - "description": "Whether this site accepts interstitial ads.", - "type": "boolean" - } - }, - "type": "object" - }, - "DirectorySitesListResponse": { - "description": "Directory Site List Response", - "id": "DirectorySitesListResponse", - "properties": { - "directorySites": { - "description": "Directory site collection.", - "items": { - "$ref": "DirectorySite" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#directorySitesListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - } - }, - "type": "object" - }, - "DisjunctiveMatchStatement": { - "description": "Represents a Disjunctive Match Statement resource, which is a conjunction (and) of disjunctive (or) boolean statements.", - "id": "DisjunctiveMatchStatement", - "properties": { - "eventFilters": { - "description": "The event filters contained within this disjunctive match statement.", - "items": { - "$ref": "EventFilter" - }, - "type": "array" - }, - "kind": { - "description": "The kind of resource this is, in this case dfareporting#disjunctiveMatchStatement.", - "type": "string" - } - }, - "type": "object" - }, - "DynamicTargetingKey": { - "description": "Contains properties of a dynamic targeting key. Dynamic targeting keys are unique, user-friendly labels, created at the advertiser level in DCM, that can be assigned to ads, creatives, and placements and used for targeting with Studio dynamic creatives. Use these labels instead of numeric Campaign Manager IDs (such as placement IDs) to save time and avoid errors in your dynamic feeds.", - "id": "DynamicTargetingKey", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#dynamicTargetingKey\".", - "type": "string" - }, - "name": { - "description": "Name of this dynamic targeting key. This is a required field. Must be less than 256 characters long and cannot contain commas. All characters are converted to lowercase.", - "type": "string" - }, - "objectId": { - "description": "ID of the object of this dynamic targeting key. This is a required field.", - "format": "int64", - "type": "string" - }, - "objectType": { - "description": "Type of the object of this dynamic targeting key. This is a required field.", - "enum": [ - "OBJECT_ADVERTISER", - "OBJECT_AD", - "OBJECT_CREATIVE", - "OBJECT_PLACEMENT" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "DynamicTargetingKeysListResponse": { - "description": "Dynamic Targeting Key List Response", - "id": "DynamicTargetingKeysListResponse", - "properties": { - "dynamicTargetingKeys": { - "description": "Dynamic targeting key collection.", - "items": { - "$ref": "DynamicTargetingKey" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#dynamicTargetingKeysListResponse\".", - "type": "string" - } - }, - "type": "object" - }, - "EncryptionInfo": { - "description": "A description of how user IDs are encrypted.", - "id": "EncryptionInfo", - "properties": { - "encryptionEntityId": { - "description": "The encryption entity ID. This should match the encryption configuration for ad serving or Data Transfer.", - "format": "int64", - "type": "string" - }, - "encryptionEntityType": { - "description": "The encryption entity type. This should match the encryption configuration for ad serving or Data Transfer.", - "enum": [ - "ENCRYPTION_ENTITY_TYPE_UNKNOWN", - "DCM_ACCOUNT", - "DCM_ADVERTISER", - "DBM_PARTNER", - "DBM_ADVERTISER", - "ADWORDS_CUSTOMER", - "DFP_NETWORK_CODE" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "encryptionSource": { - "description": "Describes whether the encrypted cookie was received from ad serving (the %m macro) or from Data Transfer.", - "enum": [ - "ENCRYPTION_SCOPE_UNKNOWN", - "AD_SERVING", - "DATA_TRANSFER" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#encryptionInfo\".", - "type": "string" - } - }, - "type": "object" - }, - "EventFilter": { - "description": "Represents a DfaReporting event filter.", - "id": "EventFilter", - "properties": { - "dimensionFilter": { - "$ref": "PathReportDimensionValue", - "description": "The dimension filter contained within this EventFilter." - }, - "kind": { - "description": "The kind of resource this is, in this case dfareporting#eventFilter.", - "type": "string" - } - }, - "type": "object" - }, - "EventTag": { - "description": "Contains properties of an event tag.", - "id": "EventTag", - "properties": { - "accountId": { - "description": "Account ID of this event tag. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "advertiserId": { - "description": "Advertiser ID of this event tag. This field or the campaignId field is required on insertion.", - "format": "int64", - "type": "string" - }, - "advertiserIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." - }, - "campaignId": { - "description": "Campaign ID of this event tag. This field or the advertiserId field is required on insertion.", - "format": "int64", - "type": "string" - }, - "campaignIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the campaign. This is a read-only, auto-generated field." - }, - "enabledByDefault": { - "description": "Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.", - "type": "boolean" - }, - "excludeFromAdxRequests": { - "description": "Whether to remove this event tag from ads that are trafficked through Display & Video 360 to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.", - "type": "boolean" - }, - "id": { - "description": "ID of this event tag. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#eventTag\".", - "type": "string" - }, - "name": { - "description": "Name of this event tag. This is a required field and must be less than 256 characters long.", - "type": "string" - }, - "siteFilterType": { - "description": "Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.", - "enum": [ - "ALLOWLIST", - "BLOCKLIST" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "siteIds": { - "description": "Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a allowlist or blocklist filter.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "sslCompliant": { - "description": "Whether this tag is SSL-compliant or not. This is a read-only field.", - "type": "boolean" - }, - "status": { - "description": "Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.", - "enum": [ - "ENABLED", - "DISABLED" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "subaccountId": { - "description": "Subaccount ID of this event tag. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "type": { - "description": "Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.", - "enum": [ - "IMPRESSION_IMAGE_EVENT_TAG", - "IMPRESSION_JAVASCRIPT_EVENT_TAG", - "CLICK_THROUGH_EVENT_TAG" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "url": { - "description": "Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.", - "type": "string" - }, - "urlEscapeLevels": { - "description": "Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "EventTagOverride": { - "description": "Event tag override information.", - "id": "EventTagOverride", - "properties": { - "enabled": { - "description": "Whether this override is enabled.", - "type": "boolean" - }, - "id": { - "description": "ID of this event tag override. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "EventTagsListResponse": { - "description": "Event Tag List Response", - "id": "EventTagsListResponse", - "properties": { - "eventTags": { - "description": "Event tag collection.", - "items": { - "$ref": "EventTag" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#eventTagsListResponse\".", - "type": "string" - } - }, - "type": "object" - }, - "File": { - "description": "Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is \"REPORT_AVAILABLE\".", - "id": "File", - "properties": { - "dateRange": { - "$ref": "DateRange", - "description": "The date range for which the file has report data. The date range will always be the absolute date range for which the report is run." - }, - "etag": { - "description": "Etag of this resource.", - "type": "string" - }, - "fileName": { - "description": "The filename of the file.", - "type": "string" - }, - "format": { - "description": "The output format of the report. Only available once the file is available.", - "enum": [ - "CSV", - "EXCEL" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "id": { - "description": "The unique ID of this report file.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#file\".", - "type": "string" - }, - "lastModifiedTime": { - "description": "The timestamp in milliseconds since epoch when this file was last modified.", - "format": "int64", - "type": "string" - }, - "reportId": { - "description": "The ID of the report this file was generated from.", - "format": "int64", - "type": "string" - }, - "status": { - "description": "The status of the report file.", - "enum": [ - "PROCESSING", - "REPORT_AVAILABLE", - "FAILED", - "CANCELLED" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], + "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" }, - "urls": { - "description": "The URLs where the completed report file can be downloaded.", - "properties": { - "apiUrl": { - "description": "The URL for downloading the report data through the API.", - "type": "string" - }, - "browserUrl": { - "description": "The URL for downloading the report data through a browser.", - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "FileList": { - "description": "List of files for a report.", - "id": "FileList", - "properties": { - "etag": { - "description": "Etag of this resource.", + "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" }, - "items": { - "description": "The files returned in this response.", - "items": { - "$ref": "File" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#fileList\".", - "type": "string" - }, - "nextPageToken": { - "description": "Continuation token used to page through files. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.", - "type": "string" - } - }, - "type": "object" - }, - "Flight": { - "description": "Flight", - "id": "Flight", - "properties": { - "endDate": { - "format": "date", - "type": "string" - }, - "rateOrCost": { - "description": "Rate or cost of this flight.", - "format": "int64", - "type": "string" - }, - "startDate": { - "format": "date", - "type": "string" - }, - "units": { - "description": "Units of this flight.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "FloodlightActivitiesGenerateTagResponse": { - "description": "Floodlight Activity GenerateTag Response", - "id": "FloodlightActivitiesGenerateTagResponse", - "properties": { - "floodlightActivityTag": { - "description": "Generated tag for this Floodlight activity. For global site tags, this is the event snippet.", - "type": "string" - }, - "globalSiteTagGlobalSnippet": { - "description": "The global snippet section of a global site tag. The global site tag sets new cookies on your domain, which will store a unique identifier for a user or the ad click that brought the user to your site. Learn more.", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightActivitiesGenerateTagResponse\".", - "type": "string" - } - }, - "type": "object" - }, - "FloodlightActivitiesListResponse": { - "description": "Floodlight Activity List Response", - "id": "FloodlightActivitiesListResponse", - "properties": { - "floodlightActivities": { - "description": "Floodlight activity collection.", - "items": { - "$ref": "FloodlightActivity" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightActivitiesListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - } - }, - "type": "object" - }, - "FloodlightActivity": { - "description": "Contains properties of a Floodlight activity.", - "id": "FloodlightActivity", - "properties": { - "accountId": { - "description": "Account ID of this floodlight activity. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "advertiserId": { - "description": "Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.", - "format": "int64", - "type": "string" - }, - "advertiserIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." - }, - "attributionEnabled": { - "description": "Whether the activity is enabled for attribution.", - "type": "boolean" - }, - "cacheBustingType": { - "description": "Code type used for cache busting in the generated tag. Applicable only when floodlightActivityGroupType is COUNTER and countingMethod is STANDARD_COUNTING or UNIQUE_COUNTING.", - "enum": [ - "JAVASCRIPT", - "ACTIVE_SERVER_PAGE", - "JSP", - "PHP", - "COLD_FUSION" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "countingMethod": { - "description": "Counting method for conversions for this floodlight activity. This is a required field.", - "enum": [ - "STANDARD_COUNTING", - "UNIQUE_COUNTING", - "SESSION_COUNTING", - "TRANSACTIONS_COUNTING", - "ITEMS_SOLD_COUNTING" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "defaultTags": { - "description": "Dynamic floodlight tags.", - "items": { - "$ref": "FloodlightActivityDynamicTag" - }, - "type": "array" - }, - "expectedUrl": { - "description": "URL where this tag will be deployed. If specified, must be less than 256 characters long.", - "type": "string" - }, - "floodlightActivityGroupId": { - "description": "Floodlight activity group ID of this floodlight activity. This is a required field.", - "format": "int64", - "type": "string" - }, - "floodlightActivityGroupName": { - "description": "Name of the associated floodlight activity group. This is a read-only field.", - "type": "string" - }, - "floodlightActivityGroupTagString": { - "description": "Tag string of the associated floodlight activity group. This is a read-only field.", - "type": "string" - }, - "floodlightActivityGroupType": { - "description": "Type of the associated floodlight activity group. This is a read-only field.", - "enum": [ - "COUNTER", - "SALE" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "floodlightConfigurationId": { - "description": "Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.", - "format": "int64", - "type": "string" - }, - "floodlightConfigurationIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field." - }, - "floodlightTagType": { - "description": "The type of Floodlight tag this activity will generate. This is a required field.", - "enum": [ - "IFRAME", - "IMAGE", - "GLOBAL_SITE_TAG" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "id": { - "description": "ID of this floodlight activity. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "idDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field." - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightActivity\".", - "type": "string" - }, - "name": { - "description": "Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.", - "type": "string" - }, - "notes": { - "description": "General notes or implementation instructions for the tag.", - "type": "string" - }, - "publisherTags": { - "description": "Publisher dynamic floodlight tags.", - "items": { - "$ref": "FloodlightActivityPublisherDynamicTag" - }, - "type": "array" - }, - "secure": { - "description": "Whether this tag should use SSL.", - "type": "boolean" - }, - "sslCompliant": { - "description": "Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.", - "type": "boolean" - }, - "sslRequired": { - "description": "Whether this floodlight activity must be SSL-compliant.", - "type": "boolean" - }, - "status": { - "description": "The status of the activity. This can only be set to ACTIVE or ARCHIVED_AND_DISABLED. The ARCHIVED status is no longer supported and cannot be set for Floodlight activities. The DISABLED_POLICY status indicates that a Floodlight activity is violating Google policy. Contact your account manager for more information.", - "enum": [ - "ACTIVE", - "ARCHIVED_AND_DISABLED", - "ARCHIVED", - "DISABLED_POLICY" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "subaccountId": { - "description": "Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "tagFormat": { - "description": "Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.", - "enum": [ - "HTML", - "XHTML" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "tagString": { - "description": "Value of the cat= parameter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being a-z0-9[ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.", - "type": "string" - }, - "userDefinedVariableTypes": { - "description": "List of the user-defined variables used by this conversion tag. These map to the \"u[1-100]=\" in the tags. Each of these can have a user defined type. Acceptable values are U1 to U100, inclusive. ", - "items": { - "enum": [ - "U1", - "U2", - "U3", - "U4", - "U5", - "U6", - "U7", - "U8", - "U9", - "U10", - "U11", - "U12", - "U13", - "U14", - "U15", - "U16", - "U17", - "U18", - "U19", - "U20", - "U21", - "U22", - "U23", - "U24", - "U25", - "U26", - "U27", - "U28", - "U29", - "U30", - "U31", - "U32", - "U33", - "U34", - "U35", - "U36", - "U37", - "U38", - "U39", - "U40", - "U41", - "U42", - "U43", - "U44", - "U45", - "U46", - "U47", - "U48", - "U49", - "U50", - "U51", - "U52", - "U53", - "U54", - "U55", - "U56", - "U57", - "U58", - "U59", - "U60", - "U61", - "U62", - "U63", - "U64", - "U65", - "U66", - "U67", - "U68", - "U69", - "U70", - "U71", - "U72", - "U73", - "U74", - "U75", - "U76", - "U77", - "U78", - "U79", - "U80", - "U81", - "U82", - "U83", - "U84", - "U85", - "U86", - "U87", - "U88", - "U89", - "U90", - "U91", - "U92", - "U93", - "U94", - "U95", - "U96", - "U97", - "U98", - "U99", - "U100" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "FloodlightActivityDynamicTag": { - "description": "Dynamic Tag", - "id": "FloodlightActivityDynamicTag", - "properties": { - "id": { - "description": "ID of this dynamic tag. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "name": { - "description": "Name of this tag.", - "type": "string" - }, - "tag": { - "description": "Tag code.", - "type": "string" - } - }, - "type": "object" - }, - "FloodlightActivityGroup": { - "description": "Contains properties of a Floodlight activity group.", - "id": "FloodlightActivityGroup", - "properties": { - "accountId": { - "description": "Account ID of this floodlight activity group. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "advertiserId": { - "description": "Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.", - "format": "int64", - "type": "string" - }, - "advertiserIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." - }, - "floodlightConfigurationId": { - "description": "Floodlight configuration ID of this floodlight activity group. This is a required field.", - "format": "int64", - "type": "string" - }, - "floodlightConfigurationIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field." - }, - "id": { - "description": "ID of this floodlight activity group. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "idDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field." - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightActivityGroup\".", - "type": "string" - }, - "name": { - "description": "Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.", - "type": "string" - }, - "subaccountId": { - "description": "Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "tagString": { - "description": "Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being a-z0-9[ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.", - "type": "string" - }, - "type": { - "description": "Type of the floodlight activity group. This is a required field that is read-only after insertion.", - "enum": [ - "COUNTER", - "SALE" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "FloodlightActivityGroupsListResponse": { - "description": "Floodlight Activity Group List Response", - "id": "FloodlightActivityGroupsListResponse", - "properties": { - "floodlightActivityGroups": { - "description": "Floodlight activity group collection.", - "items": { - "$ref": "FloodlightActivityGroup" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightActivityGroupsListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - } - }, - "type": "object" - }, - "FloodlightActivityPublisherDynamicTag": { - "description": "Publisher Dynamic Tag", - "id": "FloodlightActivityPublisherDynamicTag", - "properties": { - "clickThrough": { - "description": "Whether this tag is applicable only for click-throughs.", - "type": "boolean" - }, - "directorySiteId": { - "description": "Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.", - "format": "int64", - "type": "string" - }, - "dynamicTag": { - "$ref": "FloodlightActivityDynamicTag", - "description": "Dynamic floodlight tag." - }, - "siteId": { - "description": "Site ID of this dynamic tag.", - "format": "int64", - "type": "string" - }, - "siteIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the site. This is a read-only, auto-generated field." - }, - "viewThrough": { - "description": "Whether this tag is applicable only for view-throughs.", - "type": "boolean" - } - }, - "type": "object" - }, - "FloodlightConfiguration": { - "description": "Contains properties of a Floodlight configuration.", - "id": "FloodlightConfiguration", - "properties": { - "accountId": { - "description": "Account ID of this floodlight configuration. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "advertiserId": { - "description": "Advertiser ID of the parent advertiser of this floodlight configuration.", - "format": "int64", - "type": "string" - }, - "advertiserIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." - }, - "analyticsDataSharingEnabled": { - "description": "Whether advertiser data is shared with Google Analytics.", - "type": "boolean" - }, - "customViewabilityMetric": { - "$ref": "CustomViewabilityMetric", - "description": "Custom Viewability metric for the floodlight configuration." - }, - "exposureToConversionEnabled": { - "description": "Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.", - "type": "boolean" - }, - "firstDayOfWeek": { - "description": "Day that will be counted as the first day of the week in reports. This is a required field.", - "enum": [ - "MONDAY", - "SUNDAY" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "id": { - "description": "ID of this floodlight configuration. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "idDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field." - }, - "inAppAttributionTrackingEnabled": { - "description": "Whether in-app attribution tracking is enabled.", - "type": "boolean" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightConfiguration\".", - "type": "string" - }, - "lookbackConfiguration": { - "$ref": "LookbackConfiguration", - "description": "Lookback window settings for this floodlight configuration." - }, - "naturalSearchConversionAttributionOption": { - "description": "Types of attribution options for natural search conversions.", - "enum": [ - "EXCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION", - "INCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION", - "INCLUDE_NATURAL_SEARCH_TIERED_CONVERSION_ATTRIBUTION" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "omnitureSettings": { - "$ref": "OmnitureSettings", - "description": "Settings for Campaign Manager Omniture integration." - }, - "subaccountId": { - "description": "Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "tagSettings": { - "$ref": "TagSettings", - "description": "Configuration settings for dynamic and image floodlight tags." - }, - "thirdPartyAuthenticationTokens": { - "description": "List of third-party authentication tokens enabled for this configuration.", - "items": { - "$ref": "ThirdPartyAuthenticationToken" - }, - "type": "array" - }, - "userDefinedVariableConfigurations": { - "description": "List of user defined variables enabled for this configuration.", - "items": { - "$ref": "UserDefinedVariableConfiguration" - }, - "type": "array" - } - }, - "type": "object" - }, - "FloodlightConfigurationsListResponse": { - "description": "Floodlight Configuration List Response", - "id": "FloodlightConfigurationsListResponse", - "properties": { - "floodlightConfigurations": { - "description": "Floodlight configuration collection.", - "items": { - "$ref": "FloodlightConfiguration" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightConfigurationsListResponse\".", - "type": "string" - } - }, - "type": "object" - }, - "FloodlightReportCompatibleFields": { - "description": "Represents fields that are compatible to be selected for a report of type \"FlOODLIGHT\".", - "id": "FloodlightReportCompatibleFields", - "properties": { - "dimensionFilters": { - "description": "Dimensions which are compatible to be selected in the \"dimensionFilters\" section of the report.", - "items": { - "$ref": "Dimension" - }, - "type": "array" - }, - "dimensions": { - "description": "Dimensions which are compatible to be selected in the \"dimensions\" section of the report.", - "items": { - "$ref": "Dimension" - }, - "type": "array" - }, - "kind": { - "description": "The kind of resource this is, in this case dfareporting#floodlightReportCompatibleFields.", - "type": "string" - }, - "metrics": { - "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", - "items": { - "$ref": "Metric" - }, - "type": "array" - } - }, - "type": "object" - }, - "FrequencyCap": { - "description": "Frequency Cap.", - "id": "FrequencyCap", - "properties": { - "duration": { - "description": "Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days. Acceptable values are 1 to 7776000, inclusive.", - "format": "int64", - "type": "string" - }, - "impressions": { - "description": "Number of times an individual user can be served the ad within the specified duration. Acceptable values are 1 to 15, inclusive.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "FsCommand": { - "description": "FsCommand.", - "id": "FsCommand", - "properties": { - "left": { - "description": "Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.", + "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" }, - "positionOption": { - "description": "Position in the browser where the window will open.", + "notificationType": { + "description": "The type of notification received from Scotty.", "enum": [ - "CENTERED", - "DISTANCE_FROM_TOP_LEFT_CORNER" + "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" }, - "top": { - "description": "Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.", - "format": "int32", - "type": "integer" + "requestId": { + "description": "The Scotty request ID.", + "type": "string" }, - "windowHeight": { - "description": "Height of the window.", - "format": "int32", - "type": "integer" + "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" }, - "windowWidth": { - "description": "Width of the window.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "GeoTargeting": { - "description": "Geographical Targeting.", - "id": "GeoTargeting", - "properties": { - "cities": { - "description": "Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.", - "items": { - "$ref": "City" - }, - "type": "array" + "totalBytes": { + "description": "The total size of the file.", + "format": "int64", + "type": "string" }, - "countries": { - "description": "Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.", - "items": { - "$ref": "Country" - }, - "type": "array" - }, - "excludeCountries": { - "description": "Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.", + "totalBytesIsEstimated": { + "description": "Whether the total bytes field contains an estimated data.", "type": "boolean" - }, - "metros": { - "description": "Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.", - "items": { - "$ref": "Metro" - }, - "type": "array" - }, - "postalCodes": { - "description": "Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.", - "items": { - "$ref": "PostalCode" - }, - "type": "array" - }, - "regions": { - "description": "Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.", - "items": { - "$ref": "Region" - }, - "type": "array" } }, "type": "object" }, - "InventoryItem": { - "description": "Represents a buy from the Planning inventory store.", - "id": "InventoryItem", + "MediaResponseInfo": { + "description": "This message is for backends to pass their scotty media specific fields to ESF. Backend will include this in their response message to ESF. Example: ExportFile is an rpc defined for upload using scotty from ESF. rpc ExportFile(ExportFileRequest) returns (ExportFileResponse) Message ExportFileResponse will include apiserving.MediaResponseInfo to tell ESF about data like dynamic_dropzone it needs to pass to Scotty. message ExportFileResponse { optional gdata.Media blob = 1; optional apiserving.MediaResponseInfo media_response_info = 2 }", + "id": "MediaResponseInfo", "properties": { - "accountId": { - "description": "Account ID of this inventory item.", + "customData": { + "description": "Data to copy from backend response to the next backend requests. Custom data is returned to Scotty in the agent_state field, which Scotty will then provide in subsequent upload notifications.", + "type": "string" + }, + "dataStorageTransform": { + "description": "Specifies any transformation to be applied to data before persisting it or retrieving from storage. E.g., encryption options for blobstore2. This should be of the form uploader_service.DataStorageTransform.", + "format": "byte", + "type": "string" + }, + "dynamicDropTarget": { + "description": "Specifies the Scotty Drop Target to use for uploads. If present in a media response, Scotty does not upload to a standard drop zone. Instead, Scotty saves the upload directly to the location specified in this drop target. Unlike drop zones, the drop target is the final storage location for an upload. So, the agent does not need to clone the blob at the end of the upload. The agent is responsible for garbage collecting any orphaned blobs that may occur due to aborted uploads. For more information, see the drop target design doc here: http://goto/ScottyDropTarget This field will be preferred to dynamicDropzone. If provided, the identified field in the response must be of the type uploader.agent.DropTarget.", + "format": "byte", + "type": "string" + }, + "dynamicDropzone": { + "description": "Specifies the Scotty dropzone to use for uploads.", + "type": "string" + }, + "requestClass": { + "description": "Request class to use for all Blobstore operations for this request.", + "enum": [ + "UNKNOWN_REQUEST_CLASS", + "LATENCY_SENSITIVE", + "PRODUCTION_BATCH", + "BEST_EFFORT" + ], + "enumDescriptions": [ + "Unpopulated request_class in log files will be taken as 0 in dremel query. GoogleSQL will try to cast it to enum by default. An unused 0 value is added to avoid GoogleSQL casting error. Please refer to b/69677280.", + "A latency-sensitive request.", + "A request generated by a batch process.", + "A best-effort request." + ], + "type": "string" + }, + "scottyAgentUserId": { + "description": "Requester ID passed along to be recorded in the Scotty logs", "format": "int64", "type": "string" }, - "adSlots": { - "description": "Ad slots of this inventory item. If this inventory item represents a standalone placement, there will be exactly one ad slot. If this inventory item represents a placement group, there will be more than one ad slot, each representing one child placement in that placement group.", - "items": { - "$ref": "AdSlot" - }, - "type": "array" - }, - "advertiserId": { - "description": "Advertiser ID of this inventory item.", - "format": "int64", + "scottyCustomerLog": { + "description": "Customer-specific data to be recorded in the Scotty logs type is logs_proto_scotty.CustomerLog", + "format": "byte", "type": "string" }, - "contentCategoryId": { - "description": "Content category ID of this inventory item.", - "format": "int64", + "trafficClassField": { + "description": "Specifies the TrafficClass that Scotty should use for any RPCs to fetch the response bytes. Will override the traffic class GTOS of the incoming http request. This is a temporary field to facilitate whitelisting and experimentation by the bigstore agent only. For instance, this does not apply to RTMP reads. WARNING: DO NOT USE WITHOUT PERMISSION FROM THE SCOTTY TEAM.", + "enum": [ + "BE1", + "AF1", + "AF2", + "AF3", + "AF4", + "NC1", + "NC0", + "BE0", + "LLQ", + "LLQ1", + "LLQ2" + ], + "enumDescriptions": [ + "Application-selectable traffic classes Best effort", + "Assured forwarding priority 1", + "Assured forwarding priority 2", + "Assured forwarding priority 3", + "Assured forwarding priority 4", + "Network control", + "Network control", + "Best effort at high packet loss", + "Low-latency queue (LLQ) best effort (go/llq)", + "LLQ best effort (go/llq2)", + "LLQ assured forwarding priority 2 (go/llq2)" + ], "type": "string" }, - "estimatedClickThroughRate": { - "description": "Estimated click-through rate of this inventory item.", - "format": "int64", - "type": "string" - }, - "estimatedConversionRate": { - "description": "Estimated conversion rate of this inventory item.", - "format": "int64", - "type": "string" - }, - "id": { - "description": "ID of this inventory item.", - "format": "int64", - "type": "string" - }, - "inPlan": { - "description": "Whether this inventory item is in plan.", + "verifyHashFromHeader": { + "description": "Tells Scotty to verify hashes on the agent's behalf by parsing out the X-Goog-Hash header.", "type": "boolean" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#inventoryItem\".", - "type": "string" - }, - "lastModifiedInfo": { - "$ref": "LastModifiedInfo", - "description": "Information about the most recent modification of this inventory item." - }, - "name": { - "description": "Name of this inventory item. For standalone inventory items, this is the same name as that of its only ad slot. For group inventory items, this can differ from the name of any of its ad slots.", - "type": "string" - }, - "negotiationChannelId": { - "description": "Negotiation channel ID of this inventory item.", - "format": "int64", - "type": "string" - }, - "orderId": { - "description": "Order ID of this inventory item.", - "format": "int64", - "type": "string" - }, - "placementStrategyId": { - "description": "Placement strategy ID of this inventory item.", - "format": "int64", - "type": "string" - }, - "pricing": { - "$ref": "Pricing", - "description": "Pricing of this inventory item." - }, - "projectId": { - "description": "Project ID of this inventory item.", - "format": "int64", - "type": "string" - }, - "rfpId": { - "description": "RFP ID of this inventory item.", - "format": "int64", - "type": "string" - }, - "siteId": { - "description": "ID of the site this inventory item is associated with.", - "format": "int64", - "type": "string" - }, - "subaccountId": { - "description": "Subaccount ID of this inventory item.", - "format": "int64", - "type": "string" - }, - "type": { - "description": "Type of inventory item.", - "enum": [ - "PLANNING_PLACEMENT_TYPE_REGULAR", - "PLANNING_PLACEMENT_TYPE_CREDIT" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "InventoryItemsListResponse": { - "description": "Inventory item List Response", - "id": "InventoryItemsListResponse", - "properties": { - "inventoryItems": { - "description": "Inventory item collection", - "items": { - "$ref": "InventoryItem" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#inventoryItemsListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - } - }, - "type": "object" - }, - "KeyValueTargetingExpression": { - "description": "Key Value Targeting Expression.", - "id": "KeyValueTargetingExpression", - "properties": { - "expression": { - "description": "Keyword expression being targeted by the ad.", - "type": "string" - } - }, - "type": "object" - }, - "LandingPage": { - "description": "Contains information about where a user's browser is taken after the user clicks an ad.", - "id": "LandingPage", - "properties": { - "advertiserId": { - "description": "Advertiser ID of this landing page. This is a required field.", - "format": "int64", - "type": "string" - }, - "archived": { - "description": "Whether this landing page has been archived.", - "type": "boolean" - }, - "deepLinks": { - "description": "Links that will direct the user to a mobile app, if installed.", - "items": { - "$ref": "DeepLink" - }, - "type": "array" - }, - "id": { - "description": "ID of this landing page. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#landingPage\".", - "type": "string" - }, - "name": { - "description": "Name of this landing page. This is a required field. It must be less than 256 characters long.", - "type": "string" - }, - "url": { - "description": "URL of this landing page. This is a required field.", - "type": "string" - } - }, - "type": "object" - }, - "Language": { - "description": "Contains information about a language that can be targeted by ads.", - "id": "Language", - "properties": { - "id": { - "description": "Language ID of this language. This is the ID used for targeting and generating reports.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#language\".", - "type": "string" - }, - "languageCode": { - "description": "Format of language code is an ISO 639 two-letter language code optionally followed by an underscore followed by an ISO 3166 code. Examples are \"en\" for English or \"zh_CN\" for Simplified Chinese.", - "type": "string" - }, - "name": { - "description": "Name of this language.", - "type": "string" - } - }, - "type": "object" - }, - "LanguageTargeting": { - "description": "Language Targeting.", - "id": "LanguageTargeting", - "properties": { - "languages": { - "description": "Languages that this ad targets. For each language only languageId is required. The other fields are populated automatically when the ad is inserted or updated.", - "items": { - "$ref": "Language" - }, - "type": "array" - } - }, - "type": "object" - }, - "LanguagesListResponse": { - "description": "Language List Response", - "id": "LanguagesListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#languagesListResponse\".", - "type": "string" - }, - "languages": { - "description": "Language collection.", - "items": { - "$ref": "Language" - }, - "type": "array" - } - }, - "type": "object" - }, - "LastModifiedInfo": { - "description": "Modification timestamp.", - "id": "LastModifiedInfo", - "properties": { - "time": { - "description": "Timestamp of the last change in milliseconds since epoch.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "ListPopulationClause": { - "description": "A group clause made up of list population terms representing constraints joined by ORs.", - "id": "ListPopulationClause", - "properties": { - "terms": { - "description": "Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.", - "items": { - "$ref": "ListPopulationTerm" - }, - "type": "array" - } - }, - "type": "object" - }, - "ListPopulationRule": { - "description": "Remarketing List Population Rule.", - "id": "ListPopulationRule", - "properties": { - "floodlightActivityId": { - "description": "Floodlight activity ID associated with this rule. This field can be left blank.", - "format": "int64", - "type": "string" - }, - "floodlightActivityName": { - "description": "Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.", - "type": "string" - }, - "listPopulationClauses": { - "description": "Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.", - "items": { - "$ref": "ListPopulationClause" - }, - "type": "array" - } - }, - "type": "object" - }, - "ListPopulationTerm": { - "description": "Remarketing List Population Rule Term.", - "id": "ListPopulationTerm", - "properties": { - "contains": { - "description": "Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.", - "type": "boolean" - }, - "negation": { - "description": "Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.", - "type": "boolean" - }, - "operator": { - "description": "Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.", - "enum": [ - "NUM_EQUALS", - "NUM_LESS_THAN", - "NUM_LESS_THAN_EQUAL", - "NUM_GREATER_THAN", - "NUM_GREATER_THAN_EQUAL", - "STRING_EQUALS", - "STRING_CONTAINS" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "remarketingListId": { - "description": "ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.", - "format": "int64", - "type": "string" - }, - "type": { - "description": "List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.", - "enum": [ - "CUSTOM_VARIABLE_TERM", - "LIST_MEMBERSHIP_TERM", - "REFERRER_TERM" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "value": { - "description": "Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.", - "type": "string" - }, - "variableFriendlyName": { - "description": "Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.", - "type": "string" - }, - "variableName": { - "description": "Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.", - "type": "string" - } - }, - "type": "object" - }, - "ListTargetingExpression": { - "description": "Remarketing List Targeting Expression.", - "id": "ListTargetingExpression", - "properties": { - "expression": { - "description": "Expression describing which lists are being targeted by the ad.", - "type": "string" - } - }, - "type": "object" - }, - "LookbackConfiguration": { - "description": "Lookback configuration settings.", - "id": "LookbackConfiguration", - "properties": { - "clickDuration": { - "description": "Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.", - "format": "int32", - "type": "integer" - }, - "postImpressionActivitiesDuration": { - "description": "Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "MeasurementPartnerAdvertiserLink": { - "id": "MeasurementPartnerAdvertiserLink", - "properties": { - "linkStatus": { - "description": ".", - "enum": [ - "MEASUREMENT_PARTNER_UNLINKED", - "MEASUREMENT_PARTNER_LINKED", - "MEASUREMENT_PARTNER_LINK_PENDING", - "MEASUREMENT_PARTNER_LINK_FAILURE", - "MEASUREMENT_PARTNER_LINK_OPT_OUT", - "MEASUREMENT_PARTNER_LINK_OPT_OUT_PENDING", - "MEASUREMENT_PARTNER_LINK_WRAPPING_PENDING", - "MEASUREMENT_PARTNER_MODE_CHANGE_PENDING" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "measurementPartner": { - "description": "Measurement partner used for tag wrapping.", - "enum": [ - "NONE", - "INTEGRAL_AD_SCIENCE", - "DOUBLE_VERIFY" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "partnerAdvertiserId": { - "description": ".", - "type": "string" - } - }, - "type": "object" - }, - "MeasurementPartnerCampaignLink": { - "id": "MeasurementPartnerCampaignLink", - "properties": { - "linkStatus": { - "description": ".", - "enum": [ - "MEASUREMENT_PARTNER_UNLINKED", - "MEASUREMENT_PARTNER_LINKED", - "MEASUREMENT_PARTNER_LINK_PENDING", - "MEASUREMENT_PARTNER_LINK_FAILURE", - "MEASUREMENT_PARTNER_LINK_OPT_OUT", - "MEASUREMENT_PARTNER_LINK_OPT_OUT_PENDING", - "MEASUREMENT_PARTNER_LINK_WRAPPING_PENDING", - "MEASUREMENT_PARTNER_MODE_CHANGE_PENDING" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "measurementPartner": { - "description": "Measurement partner used for tag wrapping.", - "enum": [ - "NONE", - "INTEGRAL_AD_SCIENCE", - "DOUBLE_VERIFY" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "partnerCampaignId": { - "description": "Partner campaign ID needed for establishing linking with Measurement partner.", - "type": "string" - } - }, - "type": "object" - }, - "MeasurementPartnerWrappingData": { - "description": "Placement tag wrapping", - "id": "MeasurementPartnerWrappingData", - "properties": { - "linkStatus": { - "description": "Placement wrapping status.", - "enum": [ - "MEASUREMENT_PARTNER_UNLINKED", - "MEASUREMENT_PARTNER_LINKED", - "MEASUREMENT_PARTNER_LINK_PENDING", - "MEASUREMENT_PARTNER_LINK_FAILURE", - "MEASUREMENT_PARTNER_LINK_OPT_OUT", - "MEASUREMENT_PARTNER_LINK_OPT_OUT_PENDING", - "MEASUREMENT_PARTNER_LINK_WRAPPING_PENDING", - "MEASUREMENT_PARTNER_MODE_CHANGE_PENDING" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "measurementPartner": { - "description": "Measurement partner used for wrapping the placement.", - "enum": [ - "NONE", - "INTEGRAL_AD_SCIENCE", - "DOUBLE_VERIFY" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "tagWrappingMode": { - "description": "Measurement mode for the wrapped placement.", - "enum": [ - "NONE", - "BLOCKING", - "MONITORING", - "MONITORING_ONLY", - "VIDEO_PIXEL_MONITORING", - "TRACKING", - "VPAID_MONITORING", - "VPAID_BLOCKING", - "NON_VPAID_MONITORING", - "VPAID_ONLY_MONITORING", - "VPAID_ONLY_BLOCKING", - "VPAID_ONLY_FILTERING", - "VPAID_FILTERING", - "NON_VPAID_FILTERING" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "wrappedTag": { - "description": "Tag provided by the measurement partner during wrapping.", - "type": "string" - } - }, - "type": "object" - }, - "Metric": { - "description": "Represents a metric.", - "id": "Metric", - "properties": { - "kind": { - "description": "The kind of resource this is, in this case dfareporting#metric.", - "type": "string" - }, - "name": { - "description": "The metric name, e.g. dfa:impressions", - "type": "string" - } - }, - "type": "object" - }, - "Metro": { - "description": "Contains information about a metro region that can be targeted by ads.", - "id": "Metro", - "properties": { - "countryCode": { - "description": "Country code of the country to which this metro region belongs.", - "type": "string" - }, - "countryDartId": { - "description": "DART ID of the country to which this metro region belongs.", - "format": "int64", - "type": "string" - }, - "dartId": { - "description": "DART ID of this metro region.", - "format": "int64", - "type": "string" - }, - "dmaId": { - "description": "DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#metro\".", - "type": "string" - }, - "metroCode": { - "description": "Metro code of this metro region. This is equivalent to dma_id.", - "type": "string" - }, - "name": { - "description": "Name of this metro region.", - "type": "string" - } - }, - "type": "object" - }, - "MetrosListResponse": { - "description": "Metro List Response", - "id": "MetrosListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#metrosListResponse\".", - "type": "string" - }, - "metros": { - "description": "Metro collection.", - "items": { - "$ref": "Metro" - }, - "type": "array" - } - }, - "type": "object" - }, - "MobileApp": { - "description": "Contains information about a mobile app. Used as a landing page deep link.", - "id": "MobileApp", - "properties": { - "directory": { - "description": "Mobile app directory.", - "enum": [ - "UNKNOWN", - "APPLE_APP_STORE", - "GOOGLE_PLAY_STORE", - "ROKU_APP_STORE", - "AMAZON_FIRETV_APP_STORE", - "PLAYSTATION_APP_STORE", - "APPLE_TV_APP_STORE", - "XBOX_APP_STORE", - "SAMSUNG_TV_APP_STORE", - "ANDROID_TV_APP_STORE", - "GENERIC_CTV_APP_STORE" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "id": { - "description": "ID of this mobile app.", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#mobileApp\".", - "type": "string" - }, - "publisherName": { - "description": "Publisher name.", - "type": "string" - }, - "title": { - "description": "Title of this mobile app.", - "type": "string" - } - }, - "type": "object" - }, - "MobileAppsListResponse": { - "description": "Mobile app List Response", - "id": "MobileAppsListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#mobileAppsListResponse\".", - "type": "string" - }, - "mobileApps": { - "description": "Mobile apps collection.", - "items": { - "$ref": "MobileApp" - }, - "type": "array" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - } - }, - "type": "object" - }, - "MobileCarrier": { - "description": "Contains information about a mobile carrier that can be targeted by ads.", - "id": "MobileCarrier", - "properties": { - "countryCode": { - "description": "Country code of the country to which this mobile carrier belongs.", - "type": "string" - }, - "countryDartId": { - "description": "DART ID of the country to which this mobile carrier belongs.", - "format": "int64", - "type": "string" - }, - "id": { - "description": "ID of this mobile carrier.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#mobileCarrier\".", - "type": "string" - }, - "name": { - "description": "Name of this mobile carrier.", - "type": "string" - } - }, - "type": "object" - }, - "MobileCarriersListResponse": { - "description": "Mobile Carrier List Response", - "id": "MobileCarriersListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#mobileCarriersListResponse\".", - "type": "string" - }, - "mobileCarriers": { - "description": "Mobile carrier collection.", - "items": { - "$ref": "MobileCarrier" - }, - "type": "array" - } - }, - "type": "object" - }, - "ObaIcon": { - "description": "Online Behavioral Advertiser icon.", - "id": "ObaIcon", - "properties": { - "iconClickThroughUrl": { - "description": "URL to redirect to when an OBA icon is clicked.", - "type": "string" - }, - "iconClickTrackingUrl": { - "description": "URL to track click when an OBA icon is clicked.", - "type": "string" - }, - "iconViewTrackingUrl": { - "description": "URL to track view when an OBA icon is clicked.", - "type": "string" - }, - "program": { - "description": "Identifies the industry initiative that the icon supports. For example, AdChoices.", - "type": "string" - }, - "resourceUrl": { - "description": "OBA icon resource URL. Campaign Manager only supports image and JavaScript icons. Learn more", - "type": "string" - }, - "size": { - "$ref": "Size", - "description": "OBA icon size." - }, - "xPosition": { - "description": "OBA icon x coordinate position. Accepted values are left or right.", - "type": "string" - }, - "yPosition": { - "description": "OBA icon y coordinate position. Accepted values are top or bottom.", - "type": "string" - } - }, - "type": "object" - }, - "ObjectFilter": { - "description": "Object Filter.", - "id": "ObjectFilter", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#objectFilter\".", - "type": "string" - }, - "objectIds": { - "description": "Applicable when status is ASSIGNED. The user has access to objects with these object IDs.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "status": { - "description": "Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.", - "enum": [ - "NONE", - "ASSIGNED", - "ALL" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" } }, "type": "object" @@ -16410,1195 +793,6 @@ }, "type": "object" }, - "OmnitureSettings": { - "description": "Omniture Integration Settings.", - "id": "OmnitureSettings", - "properties": { - "omnitureCostDataEnabled": { - "description": "Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.", - "type": "boolean" - }, - "omnitureIntegrationEnabled": { - "description": "Whether Omniture integration is enabled. This property can be enabled only when the \"Advanced Ad Serving\" account setting is enabled.", - "type": "boolean" - } - }, - "type": "object" - }, - "OperatingSystem": { - "description": "Contains information about an operating system that can be targeted by ads.", - "id": "OperatingSystem", - "properties": { - "dartId": { - "description": "DART ID of this operating system. This is the ID used for targeting.", - "format": "int64", - "type": "string" - }, - "desktop": { - "description": "Whether this operating system is for desktop.", - "type": "boolean" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#operatingSystem\".", - "type": "string" - }, - "mobile": { - "description": "Whether this operating system is for mobile.", - "type": "boolean" - }, - "name": { - "description": "Name of this operating system.", - "type": "string" - } - }, - "type": "object" - }, - "OperatingSystemVersion": { - "description": "Contains information about a particular version of an operating system that can be targeted by ads.", - "id": "OperatingSystemVersion", - "properties": { - "id": { - "description": "ID of this operating system version.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#operatingSystemVersion\".", - "type": "string" - }, - "majorVersion": { - "description": "Major version (leftmost number) of this operating system version.", - "type": "string" - }, - "minorVersion": { - "description": "Minor version (number after the first dot) of this operating system version.", - "type": "string" - }, - "name": { - "description": "Name of this operating system version.", - "type": "string" - }, - "operatingSystem": { - "$ref": "OperatingSystem", - "description": "Operating system of this operating system version." - } - }, - "type": "object" - }, - "OperatingSystemVersionsListResponse": { - "description": "Operating System Version List Response", - "id": "OperatingSystemVersionsListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#operatingSystemVersionsListResponse\".", - "type": "string" - }, - "operatingSystemVersions": { - "description": "Operating system version collection.", - "items": { - "$ref": "OperatingSystemVersion" - }, - "type": "array" - } - }, - "type": "object" - }, - "OperatingSystemsListResponse": { - "description": "Operating System List Response", - "id": "OperatingSystemsListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#operatingSystemsListResponse\".", - "type": "string" - }, - "operatingSystems": { - "description": "Operating system collection.", - "items": { - "$ref": "OperatingSystem" - }, - "type": "array" - } - }, - "type": "object" - }, - "OptimizationActivity": { - "description": "Creative optimization activity.", - "id": "OptimizationActivity", - "properties": { - "floodlightActivityId": { - "description": "Floodlight activity ID of this optimization activity. This is a required field.", - "format": "int64", - "type": "string" - }, - "floodlightActivityIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field." - }, - "weight": { - "description": "Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "Order": { - "description": "Describes properties of a Planning order.", - "id": "Order", - "properties": { - "accountId": { - "description": "Account ID of this order.", - "format": "int64", - "type": "string" - }, - "advertiserId": { - "description": "Advertiser ID of this order.", - "format": "int64", - "type": "string" - }, - "approverUserProfileIds": { - "description": "IDs for users that have to approve documents created for this order.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "buyerInvoiceId": { - "description": "Buyer invoice ID associated with this order.", - "type": "string" - }, - "buyerOrganizationName": { - "description": "Name of the buyer organization.", - "type": "string" - }, - "comments": { - "description": "Comments in this order.", - "type": "string" - }, - "contacts": { - "description": "Contacts for this order.", - "items": { - "$ref": "OrderContact" - }, - "type": "array" - }, - "id": { - "description": "ID of this order. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#order\".", - "type": "string" - }, - "lastModifiedInfo": { - "$ref": "LastModifiedInfo", - "description": "Information about the most recent modification of this order." - }, - "name": { - "description": "Name of this order.", - "type": "string" - }, - "notes": { - "description": "Notes of this order.", - "type": "string" - }, - "planningTermId": { - "description": "ID of the terms and conditions template used in this order.", - "format": "int64", - "type": "string" - }, - "projectId": { - "description": "Project ID of this order.", - "format": "int64", - "type": "string" - }, - "sellerOrderId": { - "description": "Seller order ID associated with this order.", - "type": "string" - }, - "sellerOrganizationName": { - "description": "Name of the seller organization.", - "type": "string" - }, - "siteId": { - "description": "Site IDs this order is associated with.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "siteNames": { - "description": "Free-form site names this order is associated with.", - "items": { - "type": "string" - }, - "type": "array" - }, - "subaccountId": { - "description": "Subaccount ID of this order.", - "format": "int64", - "type": "string" - }, - "termsAndConditions": { - "description": "Terms and conditions of this order.", - "type": "string" - } - }, - "type": "object" - }, - "OrderContact": { - "description": "Contact of an order.", - "id": "OrderContact", - "properties": { - "contactInfo": { - "description": "Free-form information about this contact. It could be any information related to this contact in addition to type, title, name, and signature user profile ID.", - "type": "string" - }, - "contactName": { - "description": "Name of this contact.", - "type": "string" - }, - "contactTitle": { - "description": "Title of this contact.", - "type": "string" - }, - "contactType": { - "description": "Type of this contact.", - "enum": [ - "PLANNING_ORDER_CONTACT_BUYER_CONTACT", - "PLANNING_ORDER_CONTACT_BUYER_BILLING_CONTACT", - "PLANNING_ORDER_CONTACT_SELLER_CONTACT" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "signatureUserProfileId": { - "description": "ID of the user profile containing the signature that will be embedded into order documents.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "OrderDocument": { - "description": "Contains properties of a Planning order document.", - "id": "OrderDocument", - "properties": { - "accountId": { - "description": "Account ID of this order document.", - "format": "int64", - "type": "string" - }, - "advertiserId": { - "description": "Advertiser ID of this order document.", - "format": "int64", - "type": "string" - }, - "amendedOrderDocumentId": { - "description": "The amended order document ID of this order document. An order document can be created by optionally amending another order document so that the change history can be preserved.", - "format": "int64", - "type": "string" - }, - "approvedByUserProfileIds": { - "description": "IDs of users who have approved this order document.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "cancelled": { - "description": "Whether this order document is cancelled.", - "type": "boolean" - }, - "createdInfo": { - "$ref": "LastModifiedInfo", - "description": "Information about the creation of this order document." - }, - "effectiveDate": { - "format": "date", - "type": "string" - }, - "id": { - "description": "ID of this order document.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#orderDocument\".", - "type": "string" - }, - "lastSentRecipients": { - "description": "List of email addresses that received the last sent document.", - "items": { - "type": "string" - }, - "type": "array" - }, - "lastSentTime": { - "format": "date-time", - "type": "string" - }, - "orderId": { - "description": "ID of the order from which this order document is created.", - "format": "int64", - "type": "string" - }, - "projectId": { - "description": "Project ID of this order document.", - "format": "int64", - "type": "string" - }, - "signed": { - "description": "Whether this order document has been signed.", - "type": "boolean" - }, - "subaccountId": { - "description": "Subaccount ID of this order document.", - "format": "int64", - "type": "string" - }, - "title": { - "description": "Title of this order document.", - "type": "string" - }, - "type": { - "description": "Type of this order document", - "enum": [ - "PLANNING_ORDER_TYPE_INSERTION_ORDER", - "PLANNING_ORDER_TYPE_CHANGE_ORDER" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "OrderDocumentsListResponse": { - "description": "Order document List Response", - "id": "OrderDocumentsListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#orderDocumentsListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - }, - "orderDocuments": { - "description": "Order document collection", - "items": { - "$ref": "OrderDocument" - }, - "type": "array" - } - }, - "type": "object" - }, - "OrdersListResponse": { - "description": "Order List Response", - "id": "OrdersListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#ordersListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - }, - "orders": { - "description": "Order collection.", - "items": { - "$ref": "Order" - }, - "type": "array" - } - }, - "type": "object" - }, - "PathFilter": { - "description": "Represents a DfaReporting path filter.", - "id": "PathFilter", - "properties": { - "eventFilters": { - "description": "Event filters in path report.", - "items": { - "$ref": "EventFilter" - }, - "type": "array" - }, - "kind": { - "description": "The kind of resource this is, in this case dfareporting#pathFilter.", - "type": "string" - }, - "pathMatchPosition": { - "description": "Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.", - "enum": [ - "PATH_MATCH_POSITION_UNSPECIFIED", - "ANY", - "FIRST", - "LAST" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "PathReportCompatibleFields": { - "description": "Represents fields that are compatible to be selected for a report of type \"PATH\".", - "id": "PathReportCompatibleFields", - "properties": { - "channelGroupings": { - "description": "Dimensions which are compatible to be selected in the \"channelGroupings\" section of the report.", - "items": { - "$ref": "Dimension" - }, - "type": "array" - }, - "dimensions": { - "description": "Dimensions which are compatible to be selected in the \"dimensions\" section of the report.", - "items": { - "$ref": "Dimension" - }, - "type": "array" - }, - "kind": { - "description": "The kind of resource this is, in this case dfareporting#pathReportCompatibleFields.", - "type": "string" - }, - "metrics": { - "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", - "items": { - "$ref": "Metric" - }, - "type": "array" - }, - "pathFilters": { - "description": "Dimensions which are compatible to be selected in the \"pathFilters\" section of the report.", - "items": { - "$ref": "Dimension" - }, - "type": "array" - } - }, - "type": "object" - }, - "PathReportDimensionValue": { - "description": "Represents a PathReportDimensionValue resource.", - "id": "PathReportDimensionValue", - "properties": { - "dimensionName": { - "description": "The name of the dimension.", - "type": "string" - }, - "ids": { - "description": "The possible ID's associated with the value if available.", - "items": { - "type": "string" - }, - "type": "array" - }, - "kind": { - "description": "The kind of resource this is, in this case dfareporting#pathReportDimensionValue.", - "type": "string" - }, - "matchType": { - "description": "Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.", - "enum": [ - "EXACT", - "BEGINS_WITH", - "CONTAINS", - "WILDCARD_EXPRESSION" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "values": { - "description": "The possible values of the dimension.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "PathToConversionReportCompatibleFields": { - "description": "Represents fields that are compatible to be selected for a report of type \"PATH_TO_CONVERSION\".", - "id": "PathToConversionReportCompatibleFields", - "properties": { - "conversionDimensions": { - "description": "Conversion dimensions which are compatible to be selected in the \"conversionDimensions\" section of the report.", - "items": { - "$ref": "Dimension" - }, - "type": "array" - }, - "customFloodlightVariables": { - "description": "Custom floodlight variables which are compatible to be selected in the \"customFloodlightVariables\" section of the report.", - "items": { - "$ref": "Dimension" - }, - "type": "array" - }, - "kind": { - "description": "The kind of resource this is, in this case dfareporting#pathToConversionReportCompatibleFields.", - "type": "string" - }, - "metrics": { - "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", - "items": { - "$ref": "Metric" - }, - "type": "array" - }, - "perInteractionDimensions": { - "description": "Per-interaction dimensions which are compatible to be selected in the \"perInteractionDimensions\" section of the report.", - "items": { - "$ref": "Dimension" - }, - "type": "array" - } - }, - "type": "object" - }, - "Placement": { - "description": "Contains properties of a placement.", - "id": "Placement", - "properties": { - "accountId": { - "description": "Account ID of this placement. This field can be left blank.", - "format": "int64", - "type": "string" - }, - "adBlockingOptOut": { - "description": "Whether this placement opts out of ad blocking. When true, ad blocking is disabled for this placement. When false, the campaign and site settings take effect.", - "type": "boolean" - }, - "additionalSizes": { - "description": "Additional sizes associated with this placement. When inserting or updating a placement, only the size ID field is used.", - "items": { - "$ref": "Size" - }, - "type": "array" - }, - "advertiserId": { - "description": "Advertiser ID of this placement. This field can be left blank.", - "format": "int64", - "type": "string" - }, - "advertiserIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." - }, - "archived": { - "description": "Whether this placement is archived.", - "type": "boolean" - }, - "campaignId": { - "description": "Campaign ID of this placement. This field is a required field on insertion.", - "format": "int64", - "type": "string" - }, - "campaignIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the campaign. This is a read-only, auto-generated field." - }, - "comment": { - "description": "Comments for this placement.", - "type": "string" - }, - "compatibility": { - "description": "Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.", - "enum": [ - "DISPLAY", - "DISPLAY_INTERSTITIAL", - "APP", - "APP_INTERSTITIAL", - "IN_STREAM_VIDEO", - "IN_STREAM_AUDIO" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "contentCategoryId": { - "description": "ID of the content category assigned to this placement.", - "format": "int64", - "type": "string" - }, - "createInfo": { - "$ref": "LastModifiedInfo", - "description": "Information about the creation of this placement. This is a read-only field." - }, - "directorySiteId": { - "description": "Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.", - "format": "int64", - "type": "string" - }, - "directorySiteIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the directory site. This is a read-only, auto-generated field." - }, - "externalId": { - "description": "External ID for this placement.", - "type": "string" - }, - "id": { - "description": "ID of this placement. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "idDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of this placement. This is a read-only, auto-generated field." - }, - "keyName": { - "description": "Key name of this placement. This is a read-only, auto-generated field.", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placement\".", - "type": "string" - }, - "lastModifiedInfo": { - "$ref": "LastModifiedInfo", - "description": "Information about the most recent modification of this placement. This is a read-only field." - }, - "lookbackConfiguration": { - "$ref": "LookbackConfiguration", - "description": "Lookback window settings for this placement." - }, - "name": { - "description": "Name of this placement.This is a required field and must be less than or equal to 512 characters long.", - "type": "string" - }, - "partnerWrappingData": { - "$ref": "MeasurementPartnerWrappingData", - "description": "Measurement partner provided settings for a wrapped placement." - }, - "paymentApproved": { - "description": "Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.", - "type": "boolean" - }, - "paymentSource": { - "description": "Payment source for this placement. This is a required field that is read-only after insertion.", - "enum": [ - "PLACEMENT_AGENCY_PAID", - "PLACEMENT_PUBLISHER_PAID" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "placementGroupId": { - "description": "ID of this placement's group, if applicable.", - "format": "int64", - "type": "string" - }, - "placementGroupIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the placement group. This is a read-only, auto-generated field." - }, - "placementStrategyId": { - "description": "ID of the placement strategy assigned to this placement.", - "format": "int64", - "type": "string" - }, - "pricingSchedule": { - "$ref": "PricingSchedule", - "description": "Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType." - }, - "primary": { - "description": "Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.", - "type": "boolean" - }, - "publisherUpdateInfo": { - "$ref": "LastModifiedInfo", - "description": "Information about the last publisher update. This is a read-only field." - }, - "siteId": { - "description": "Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.", - "format": "int64", - "type": "string" - }, - "siteIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the site. This is a read-only, auto-generated field." - }, - "size": { - "$ref": "Size", - "description": "Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion." - }, - "sslRequired": { - "description": "Whether creatives assigned to this placement must be SSL-compliant.", - "type": "boolean" - }, - "status": { - "description": "Third-party placement status.", - "enum": [ - "PENDING_REVIEW", - "PAYMENT_ACCEPTED", - "PAYMENT_REJECTED", - "ACKNOWLEDGE_REJECTION", - "ACKNOWLEDGE_ACCEPTANCE", - "DRAFT" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "subaccountId": { - "description": "Subaccount ID of this placement. This field can be left blank.", - "format": "int64", - "type": "string" - }, - "tagFormats": { - "description": "Tag formats to generate for this placement. This field is required on insertion. Acceptable values are: - \"PLACEMENT_TAG_STANDARD\" - \"PLACEMENT_TAG_IFRAME_JAVASCRIPT\" - \"PLACEMENT_TAG_IFRAME_ILAYER\" - \"PLACEMENT_TAG_INTERNAL_REDIRECT\" - \"PLACEMENT_TAG_JAVASCRIPT\" - \"PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT\" - \"PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT\" - \"PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT\" - \"PLACEMENT_TAG_CLICK_COMMANDS\" - \"PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH\" - \"PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3\" - \"PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4\" - \"PLACEMENT_TAG_TRACKING\" - \"PLACEMENT_TAG_TRACKING_IFRAME\" - \"PLACEMENT_TAG_TRACKING_JAVASCRIPT\" ", - "items": { - "enum": [ - "PLACEMENT_TAG_STANDARD", - "PLACEMENT_TAG_IFRAME_JAVASCRIPT", - "PLACEMENT_TAG_IFRAME_ILAYER", - "PLACEMENT_TAG_INTERNAL_REDIRECT", - "PLACEMENT_TAG_JAVASCRIPT", - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT", - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT", - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT", - "PLACEMENT_TAG_CLICK_COMMANDS", - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH", - "PLACEMENT_TAG_TRACKING", - "PLACEMENT_TAG_TRACKING_IFRAME", - "PLACEMENT_TAG_TRACKING_JAVASCRIPT", - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3", - "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY", - "PLACEMENT_TAG_JAVASCRIPT_LEGACY", - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY", - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY", - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4", - "PLACEMENT_TAG_TRACKING_THIRD_PARTY_MEASUREMENT" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "type": "array" - }, - "tagSetting": { - "$ref": "TagSetting", - "description": "Tag settings for this placement." - }, - "videoActiveViewOptOut": { - "description": "Whether Verification and ActiveView are disabled for in-stream video creatives for this placement. The same setting videoActiveViewOptOut exists on the site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.", - "type": "boolean" - }, - "videoSettings": { - "$ref": "VideoSettings", - "description": "A collection of settings which affect video creatives served through this placement. Applicable to placements with IN_STREAM_VIDEO compatibility." - }, - "vpaidAdapterChoice": { - "description": "VPAID adapter setting for this placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to this placement. *Note:* Flash is no longer supported. This field now defaults to HTML5 when the following values are provided: FLASH, BOTH.", - "enum": [ - "DEFAULT", - "FLASH", - "HTML5", - "BOTH" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "wrappingOptOut": { - "description": "Whether this placement opts out of tag wrapping.", - "type": "boolean" - } - }, - "type": "object" - }, - "PlacementAssignment": { - "description": "Placement Assignment.", - "id": "PlacementAssignment", - "properties": { - "active": { - "description": "Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.", - "type": "boolean" - }, - "placementId": { - "description": "ID of the placement to be assigned. This is a required field.", - "format": "int64", - "type": "string" - }, - "placementIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the placement. This is a read-only, auto-generated field." - }, - "sslRequired": { - "description": "Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.", - "type": "boolean" - } - }, - "type": "object" - }, - "PlacementGroup": { - "description": "Contains properties of a package or roadblock.", - "id": "PlacementGroup", - "properties": { - "accountId": { - "description": "Account ID of this placement group. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "advertiserId": { - "description": "Advertiser ID of this placement group. This is a required field on insertion.", - "format": "int64", - "type": "string" - }, - "advertiserIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." - }, - "archived": { - "description": "Whether this placement group is archived.", - "type": "boolean" - }, - "campaignId": { - "description": "Campaign ID of this placement group. This field is required on insertion.", - "format": "int64", - "type": "string" - }, - "campaignIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the campaign. This is a read-only, auto-generated field." - }, - "childPlacementIds": { - "description": "IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "comment": { - "description": "Comments for this placement group.", - "type": "string" - }, - "contentCategoryId": { - "description": "ID of the content category assigned to this placement group.", - "format": "int64", - "type": "string" - }, - "createInfo": { - "$ref": "LastModifiedInfo", - "description": "Information about the creation of this placement group. This is a read-only field." - }, - "directorySiteId": { - "description": "Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.", - "format": "int64", - "type": "string" - }, - "directorySiteIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the directory site. This is a read-only, auto-generated field." - }, - "externalId": { - "description": "External ID for this placement.", - "type": "string" - }, - "id": { - "description": "ID of this placement group. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "idDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of this placement group. This is a read-only, auto-generated field." - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placementGroup\".", - "type": "string" - }, - "lastModifiedInfo": { - "$ref": "LastModifiedInfo", - "description": "Information about the most recent modification of this placement group. This is a read-only field." - }, - "name": { - "description": "Name of this placement group. This is a required field and must be less than 256 characters long.", - "type": "string" - }, - "placementGroupType": { - "description": "Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.", - "enum": [ - "PLACEMENT_PACKAGE", - "PLACEMENT_ROADBLOCK" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "placementStrategyId": { - "description": "ID of the placement strategy assigned to this placement group.", - "format": "int64", - "type": "string" - }, - "pricingSchedule": { - "$ref": "PricingSchedule", - "description": "Pricing schedule of this placement group. This field is required on insertion." - }, - "primaryPlacementId": { - "description": "ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.", - "format": "int64", - "type": "string" - }, - "primaryPlacementIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the primary placement. This is a read-only, auto-generated field." - }, - "siteId": { - "description": "Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.", - "format": "int64", - "type": "string" - }, - "siteIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the site. This is a read-only, auto-generated field." - }, - "subaccountId": { - "description": "Subaccount ID of this placement group. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "PlacementGroupsListResponse": { - "description": "Placement Group List Response", - "id": "PlacementGroupsListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placementGroupsListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - }, - "placementGroups": { - "description": "Placement group collection.", - "items": { - "$ref": "PlacementGroup" - }, - "type": "array" - } - }, - "type": "object" - }, - "PlacementStrategiesListResponse": { - "description": "Placement Strategy List Response", - "id": "PlacementStrategiesListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placementStrategiesListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - }, - "placementStrategies": { - "description": "Placement strategy collection.", - "items": { - "$ref": "PlacementStrategy" - }, - "type": "array" - } - }, - "type": "object" - }, - "PlacementStrategy": { - "description": "Contains properties of a placement strategy.", - "id": "PlacementStrategy", - "properties": { - "accountId": { - "description": "Account ID of this placement strategy.This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "id": { - "description": "ID of this placement strategy. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placementStrategy\".", - "type": "string" - }, - "name": { - "description": "Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.", - "type": "string" - } - }, - "type": "object" - }, - "PlacementTag": { - "description": "Placement Tag", - "id": "PlacementTag", - "properties": { - "placementId": { - "description": "Placement ID", - "format": "int64", - "type": "string" - }, - "tagDatas": { - "description": "Tags generated for this placement.", - "items": { - "$ref": "TagData" - }, - "type": "array" - } - }, - "type": "object" - }, - "PlacementsGenerateTagsResponse": { - "description": "Placement GenerateTags Response", - "id": "PlacementsGenerateTagsResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placementsGenerateTagsResponse\".", - "type": "string" - }, - "placementTags": { - "description": "Set of generated tags for the specified placements.", - "items": { - "$ref": "PlacementTag" - }, - "type": "array" - } - }, - "type": "object" - }, - "PlacementsListResponse": { - "description": "Placement List Response", - "id": "PlacementsListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placementsListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - }, - "placements": { - "description": "Placement collection.", - "items": { - "$ref": "Placement" - }, - "type": "array" - } - }, - "type": "object" - }, - "PlatformType": { - "description": "Contains information about a platform type that can be targeted by ads.", - "id": "PlatformType", - "properties": { - "id": { - "description": "ID of this platform type.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#platformType\".", - "type": "string" - }, - "name": { - "description": "Name of this platform type.", - "type": "string" - } - }, - "type": "object" - }, - "PlatformTypesListResponse": { - "description": "Platform Type List Response", - "id": "PlatformTypesListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#platformTypesListResponse\".", - "type": "string" - }, - "platformTypes": { - "description": "Platform type collection.", - "items": { - "$ref": "PlatformType" - }, - "type": "array" - } - }, - "type": "object" - }, "PopupWindowProperties": { "description": "Popup Window Properties.", "id": "PopupWindowProperties", @@ -17650,1701 +844,6 @@ }, "type": "object" }, - "PostalCode": { - "description": "Contains information about a postal code that can be targeted by ads.", - "id": "PostalCode", - "properties": { - "code": { - "description": "Postal code. This is equivalent to the id field.", - "type": "string" - }, - "countryCode": { - "description": "Country code of the country to which this postal code belongs.", - "type": "string" - }, - "countryDartId": { - "description": "DART ID of the country to which this postal code belongs.", - "format": "int64", - "type": "string" - }, - "id": { - "description": "ID of this postal code.", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#postalCode\".", - "type": "string" - } - }, - "type": "object" - }, - "PostalCodesListResponse": { - "description": "Postal Code List Response", - "id": "PostalCodesListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#postalCodesListResponse\".", - "type": "string" - }, - "postalCodes": { - "description": "Postal code collection.", - "items": { - "$ref": "PostalCode" - }, - "type": "array" - } - }, - "type": "object" - }, - "Pricing": { - "description": "Pricing Information", - "id": "Pricing", - "properties": { - "capCostType": { - "description": "Cap cost type of this inventory item.", - "enum": [ - "PLANNING_PLACEMENT_CAP_COST_TYPE_NONE", - "PLANNING_PLACEMENT_CAP_COST_TYPE_MONTHLY", - "PLANNING_PLACEMENT_CAP_COST_TYPE_CUMULATIVE" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "endDate": { - "format": "date", - "type": "string" - }, - "flights": { - "description": "Flights of this inventory item. A flight (a.k.a. pricing period) represents the inventory item pricing information for a specific period of time.", - "items": { - "$ref": "Flight" - }, - "type": "array" - }, - "groupType": { - "description": "Group type of this inventory item if it represents a placement group. Is null otherwise. There are two type of placement groups: PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE is a simple group of inventory items that acts as a single pricing point for a group of tags. PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK is a group of inventory items that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned inventory items to be marked as primary.", - "enum": [ - "PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE", - "PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "pricingType": { - "description": "Pricing type of this inventory item.", - "enum": [ - "PLANNING_PLACEMENT_PRICING_TYPE_IMPRESSIONS", - "PLANNING_PLACEMENT_PRICING_TYPE_CPM", - "PLANNING_PLACEMENT_PRICING_TYPE_CLICKS", - "PLANNING_PLACEMENT_PRICING_TYPE_CPC", - "PLANNING_PLACEMENT_PRICING_TYPE_CPA", - "PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_IMPRESSIONS", - "PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_CLICKS", - "PLANNING_PLACEMENT_PRICING_TYPE_CPM_ACTIVEVIEW" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "startDate": { - "format": "date", - "type": "string" - } - }, - "type": "object" - }, - "PricingSchedule": { - "description": "Pricing Schedule", - "id": "PricingSchedule", - "properties": { - "capCostOption": { - "description": "Placement cap cost option.", - "enum": [ - "CAP_COST_NONE", - "CAP_COST_MONTHLY", - "CAP_COST_CUMULATIVE" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "endDate": { - "format": "date", - "type": "string" - }, - "flighted": { - "description": "Whether this placement is flighted. If true, pricing periods will be computed automatically.", - "type": "boolean" - }, - "floodlightActivityId": { - "description": "Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.", - "format": "int64", - "type": "string" - }, - "pricingPeriods": { - "description": "Pricing periods for this placement.", - "items": { - "$ref": "PricingSchedulePricingPeriod" - }, - "type": "array" - }, - "pricingType": { - "description": "Placement pricing type. This field is required on insertion.", - "enum": [ - "PRICING_TYPE_CPM", - "PRICING_TYPE_CPC", - "PRICING_TYPE_CPA", - "PRICING_TYPE_FLAT_RATE_IMPRESSIONS", - "PRICING_TYPE_FLAT_RATE_CLICKS", - "PRICING_TYPE_CPM_ACTIVEVIEW" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "startDate": { - "format": "date", - "type": "string" - }, - "testingStartDate": { - "format": "date", - "type": "string" - } - }, - "type": "object" - }, - "PricingSchedulePricingPeriod": { - "description": "Pricing Period", - "id": "PricingSchedulePricingPeriod", - "properties": { - "endDate": { - "format": "date", - "type": "string" - }, - "pricingComment": { - "description": "Comments for this pricing period.", - "type": "string" - }, - "rateOrCostNanos": { - "description": "Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.", - "format": "int64", - "type": "string" - }, - "startDate": { - "format": "date", - "type": "string" - }, - "units": { - "description": "Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "Project": { - "description": "Contains properties of a Planning project.", - "id": "Project", - "properties": { - "accountId": { - "description": "Account ID of this project.", - "format": "int64", - "type": "string" - }, - "advertiserId": { - "description": "Advertiser ID of this project.", - "format": "int64", - "type": "string" - }, - "audienceAgeGroup": { - "description": "Audience age group of this project.", - "enum": [ - "PLANNING_AUDIENCE_AGE_18_24", - "PLANNING_AUDIENCE_AGE_25_34", - "PLANNING_AUDIENCE_AGE_35_44", - "PLANNING_AUDIENCE_AGE_45_54", - "PLANNING_AUDIENCE_AGE_55_64", - "PLANNING_AUDIENCE_AGE_65_OR_MORE", - "PLANNING_AUDIENCE_AGE_UNKNOWN" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "audienceGender": { - "description": "Audience gender of this project.", - "enum": [ - "PLANNING_AUDIENCE_GENDER_MALE", - "PLANNING_AUDIENCE_GENDER_FEMALE" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "budget": { - "description": "Budget of this project in the currency specified by the current account. The value stored in this field represents only the non-fractional amount. For example, for USD, the smallest value that can be represented by this field is 1 US dollar.", - "format": "int64", - "type": "string" - }, - "clientBillingCode": { - "description": "Client billing code of this project.", - "type": "string" - }, - "clientName": { - "description": "Name of the project client.", - "type": "string" - }, - "endDate": { - "format": "date", - "type": "string" - }, - "id": { - "description": "ID of this project. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#project\".", - "type": "string" - }, - "lastModifiedInfo": { - "$ref": "LastModifiedInfo", - "description": "Information about the most recent modification of this project." - }, - "name": { - "description": "Name of this project.", - "type": "string" - }, - "overview": { - "description": "Overview of this project.", - "type": "string" - }, - "startDate": { - "format": "date", - "type": "string" - }, - "subaccountId": { - "description": "Subaccount ID of this project.", - "format": "int64", - "type": "string" - }, - "targetClicks": { - "description": "Number of clicks that the advertiser is targeting.", - "format": "int64", - "type": "string" - }, - "targetConversions": { - "description": "Number of conversions that the advertiser is targeting.", - "format": "int64", - "type": "string" - }, - "targetCpaNanos": { - "description": "CPA that the advertiser is targeting.", - "format": "int64", - "type": "string" - }, - "targetCpcNanos": { - "description": "CPC that the advertiser is targeting.", - "format": "int64", - "type": "string" - }, - "targetCpmActiveViewNanos": { - "description": "vCPM from Active View that the advertiser is targeting.", - "format": "int64", - "type": "string" - }, - "targetCpmNanos": { - "description": "CPM that the advertiser is targeting.", - "format": "int64", - "type": "string" - }, - "targetImpressions": { - "description": "Number of impressions that the advertiser is targeting.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "ProjectsListResponse": { - "description": "Project List Response", - "id": "ProjectsListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#projectsListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - }, - "projects": { - "description": "Project collection.", - "items": { - "$ref": "Project" - }, - "type": "array" - } - }, - "type": "object" - }, - "ReachReportCompatibleFields": { - "description": "Represents fields that are compatible to be selected for a report of type \"REACH\".", - "id": "ReachReportCompatibleFields", - "properties": { - "dimensionFilters": { - "description": "Dimensions which are compatible to be selected in the \"dimensionFilters\" section of the report.", - "items": { - "$ref": "Dimension" - }, - "type": "array" - }, - "dimensions": { - "description": "Dimensions which are compatible to be selected in the \"dimensions\" section of the report.", - "items": { - "$ref": "Dimension" - }, - "type": "array" - }, - "kind": { - "description": "The kind of resource this is, in this case dfareporting#reachReportCompatibleFields.", - "type": "string" - }, - "metrics": { - "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", - "items": { - "$ref": "Metric" - }, - "type": "array" - }, - "pivotedActivityMetrics": { - "description": "Metrics which are compatible to be selected as activity metrics to pivot on in the \"activities\" section of the report.", - "items": { - "$ref": "Metric" - }, - "type": "array" - }, - "reachByFrequencyMetrics": { - "description": "Metrics which are compatible to be selected in the \"reachByFrequencyMetricNames\" section of the report.", - "items": { - "$ref": "Metric" - }, - "type": "array" - } - }, - "type": "object" - }, - "Recipient": { - "description": "Represents a recipient.", - "id": "Recipient", - "properties": { - "deliveryType": { - "annotations": { - "required": [ - "dfareporting.reports.insert", - "dfareporting.reports.update" - ] - }, - "description": "The delivery type for the recipient.", - "enum": [ - "LINK", - "ATTACHMENT" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "email": { - "annotations": { - "required": [ - "dfareporting.reports.insert", - "dfareporting.reports.update" - ] - }, - "description": "The email address of the recipient.", - "type": "string" - }, - "kind": { - "description": "The kind of resource this is, in this case dfareporting#recipient.", - "type": "string" - } - }, - "type": "object" - }, - "Region": { - "description": "Contains information about a region that can be targeted by ads.", - "id": "Region", - "properties": { - "countryCode": { - "description": "Country code of the country to which this region belongs.", - "type": "string" - }, - "countryDartId": { - "description": "DART ID of the country to which this region belongs.", - "format": "int64", - "type": "string" - }, - "dartId": { - "description": "DART ID of this region.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#region\".", - "type": "string" - }, - "name": { - "description": "Name of this region.", - "type": "string" - }, - "regionCode": { - "description": "Region code.", - "type": "string" - } - }, - "type": "object" - }, - "RegionsListResponse": { - "description": "Region List Response", - "id": "RegionsListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#regionsListResponse\".", - "type": "string" - }, - "regions": { - "description": "Region collection.", - "items": { - "$ref": "Region" - }, - "type": "array" - } - }, - "type": "object" - }, - "RemarketingList": { - "description": "Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.", - "id": "RemarketingList", - "properties": { - "accountId": { - "description": "Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.", - "format": "int64", - "type": "string" - }, - "active": { - "description": "Whether this remarketing list is active.", - "type": "boolean" - }, - "advertiserId": { - "description": "Dimension value for the advertiser ID that owns this remarketing list. This is a required field.", - "format": "int64", - "type": "string" - }, - "advertiserIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." - }, - "description": { - "description": "Remarketing list description.", - "type": "string" - }, - "id": { - "description": "Remarketing list ID. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#remarketingList\".", - "type": "string" - }, - "lifeSpan": { - "description": "Number of days that a user should remain in the remarketing list without an impression. Acceptable values are 1 to 540, inclusive.", - "format": "int64", - "type": "string" - }, - "listPopulationRule": { - "$ref": "ListPopulationRule", - "description": "Rule used to populate the remarketing list with users." - }, - "listSize": { - "description": "Number of users currently in the list. This is a read-only field.", - "format": "int64", - "type": "string" - }, - "listSource": { - "description": "Product from which this remarketing list was originated.", - "enum": [ - "REMARKETING_LIST_SOURCE_OTHER", - "REMARKETING_LIST_SOURCE_ADX", - "REMARKETING_LIST_SOURCE_DFP", - "REMARKETING_LIST_SOURCE_XFP", - "REMARKETING_LIST_SOURCE_DFA", - "REMARKETING_LIST_SOURCE_GA", - "REMARKETING_LIST_SOURCE_YOUTUBE", - "REMARKETING_LIST_SOURCE_DBM", - "REMARKETING_LIST_SOURCE_GPLUS", - "REMARKETING_LIST_SOURCE_DMP", - "REMARKETING_LIST_SOURCE_PLAY_STORE" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "name": { - "description": "Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.", - "type": "string" - }, - "subaccountId": { - "description": "Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "RemarketingListShare": { - "description": "Contains properties of a remarketing list's sharing information. Sharing allows other accounts or advertisers to target to your remarketing lists. This resource can be used to manage remarketing list sharing to other accounts and advertisers.", - "id": "RemarketingListShare", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#remarketingListShare\".", - "type": "string" - }, - "remarketingListId": { - "description": "Remarketing list ID. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "sharedAccountIds": { - "description": "Accounts that the remarketing list is shared with.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "sharedAdvertiserIds": { - "description": "Advertisers that the remarketing list is shared with.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "RemarketingListsListResponse": { - "description": "Remarketing list response", - "id": "RemarketingListsListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#remarketingListsListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - }, - "remarketingLists": { - "description": "Remarketing list collection.", - "items": { - "$ref": "RemarketingList" - }, - "type": "array" - } - }, - "type": "object" - }, - "Report": { - "description": "Represents a Report resource.", - "id": "Report", - "properties": { - "accountId": { - "annotations": { - "required": [ - "dfareporting.reports.update" - ] - }, - "description": "The account ID to which this report belongs.", - "format": "int64", - "type": "string" - }, - "criteria": { - "description": "The report criteria for a report of type \"STANDARD\".", - "properties": { - "activities": { - "$ref": "Activities", - "description": "Activity group." - }, - "customRichMediaEvents": { - "$ref": "CustomRichMediaEvents", - "description": "Custom Rich Media Events group." - }, - "dateRange": { - "$ref": "DateRange", - "description": "The date range for which this report should be run." - }, - "dimensionFilters": { - "description": "The list of filters on which dimensions are filtered. Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.", - "items": { - "$ref": "DimensionValue" - }, - "type": "array" - }, - "dimensions": { - "description": "The list of standard dimensions the report should include.", - "items": { - "$ref": "SortedDimension" - }, - "type": "array" - }, - "metricNames": { - "description": "The list of names of metrics the report should include.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "crossDimensionReachCriteria": { - "description": "The report criteria for a report of type \"CROSS_DIMENSION_REACH\".", - "properties": { - "breakdown": { - "description": "The list of dimensions the report should include.", - "items": { - "$ref": "SortedDimension" - }, - "type": "array" - }, - "dateRange": { - "$ref": "DateRange", - "description": "The date range this report should be run for." - }, - "dimension": { - "description": "The dimension option.", - "enum": [ - "ADVERTISER", - "CAMPAIGN", - "SITE_BY_ADVERTISER", - "SITE_BY_CAMPAIGN" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "dimensionFilters": { - "description": "The list of filters on which dimensions are filtered.", - "items": { - "$ref": "DimensionValue" - }, - "type": "array" - }, - "metricNames": { - "description": "The list of names of metrics the report should include.", - "items": { - "type": "string" - }, - "type": "array" - }, - "overlapMetricNames": { - "description": "The list of names of overlap metrics the report should include.", - "items": { - "type": "string" - }, - "type": "array" - }, - "pivoted": { - "description": "Whether the report is pivoted or not. Defaults to true.", - "type": "boolean" - } - }, - "type": "object" - }, - "delivery": { - "description": "The report's email delivery settings.", - "properties": { - "emailOwner": { - "description": "Whether the report should be emailed to the report owner.", - "type": "boolean" - }, - "emailOwnerDeliveryType": { - "description": "The type of delivery for the owner to receive, if enabled.", - "enum": [ - "LINK", - "ATTACHMENT" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "message": { - "description": "The message to be sent with each email.", - "type": "string" - }, - "recipients": { - "description": "The list of recipients to which to email the report.", - "items": { - "$ref": "Recipient" - }, - "type": "array" - } - }, - "type": "object" - }, - "etag": { - "description": "The eTag of this response for caching purposes.", - "type": "string" - }, - "fileName": { - "description": "The filename used when generating report files for this report.", - "type": "string" - }, - "floodlightCriteria": { - "description": "The report criteria for a report of type \"FLOODLIGHT\".", - "properties": { - "customRichMediaEvents": { - "description": "The list of custom rich media events to include.", - "items": { - "$ref": "DimensionValue" - }, - "type": "array" - }, - "dateRange": { - "$ref": "DateRange", - "description": "The date range this report should be run for." - }, - "dimensionFilters": { - "description": "The list of filters on which dimensions are filtered. Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.", - "items": { - "$ref": "DimensionValue" - }, - "type": "array" - }, - "dimensions": { - "description": "The list of dimensions the report should include.", - "items": { - "$ref": "SortedDimension" - }, - "type": "array" - }, - "floodlightConfigId": { - "$ref": "DimensionValue", - "description": "The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'." - }, - "metricNames": { - "description": "The list of names of metrics the report should include.", - "items": { - "type": "string" - }, - "type": "array" - }, - "reportProperties": { - "description": "The properties of the report.", - "properties": { - "includeAttributedIPConversions": { - "description": "Include conversions that have no cookie, but do have an exposure path.", - "type": "boolean" - }, - "includeUnattributedCookieConversions": { - "description": "Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.", - "type": "boolean" - }, - "includeUnattributedIPConversions": { - "description": "Include conversions that have no associated cookies and no exposures. It\u2019s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.", - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "format": { - "description": "The output format of the report. If not specified, default format is \"CSV\". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. \"CSV\" will then be the fallback format.", - "enum": [ - "CSV", - "EXCEL" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "id": { - "annotations": { - "required": [ - "dfareporting.reports.update" - ] - }, - "description": "The unique ID identifying this report resource.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "The kind of resource this is, in this case dfareporting#report.", - "type": "string" - }, - "lastModifiedTime": { - "annotations": { - "required": [ - "dfareporting.reports.update" - ] - }, - "description": "The timestamp (in milliseconds since epoch) of when this report was last modified.", - "format": "uint64", - "type": "string" - }, - "name": { - "annotations": { - "required": [ - "dfareporting.reports.insert", - "dfareporting.reports.update" - ] - }, - "description": "The name of the report.", - "type": "string" - }, - "ownerProfileId": { - "annotations": { - "required": [ - "dfareporting.reports.update" - ] - }, - "description": "The user profile id of the owner of this report.", - "format": "int64", - "type": "string" - }, - "pathAttributionCriteria": { - "description": "The report criteria for a report of type \"PATH_ATTRIBUTION\".", - "properties": { - "activityFilters": { - "description": "The list of 'dfa:activity' values to filter on.", - "items": { - "$ref": "DimensionValue" - }, - "type": "array" - }, - "customChannelGrouping": { - "$ref": "ChannelGrouping", - "description": "Channel Grouping." - }, - "dateRange": { - "$ref": "DateRange", - "description": "The date range this report should be run for." - }, - "dimensions": { - "description": "The list of dimensions the report should include.", - "items": { - "$ref": "SortedDimension" - }, - "type": "array" - }, - "floodlightConfigId": { - "$ref": "DimensionValue", - "description": "The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'." - }, - "metricNames": { - "description": "The list of names of metrics the report should include.", - "items": { - "type": "string" - }, - "type": "array" - }, - "pathFilters": { - "description": "Path Filters.", - "items": { - "$ref": "PathFilter" - }, - "type": "array" - } - }, - "type": "object" - }, - "pathCriteria": { - "description": "The report criteria for a report of type \"PATH\".", - "properties": { - "activityFilters": { - "description": "The list of 'dfa:activity' values to filter on.", - "items": { - "$ref": "DimensionValue" - }, - "type": "array" - }, - "customChannelGrouping": { - "$ref": "ChannelGrouping", - "description": "Channel Grouping." - }, - "dateRange": { - "$ref": "DateRange", - "description": "The date range this report should be run for." - }, - "dimensions": { - "description": "The list of dimensions the report should include.", - "items": { - "$ref": "SortedDimension" - }, - "type": "array" - }, - "floodlightConfigId": { - "$ref": "DimensionValue", - "description": "The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'." - }, - "metricNames": { - "description": "The list of names of metrics the report should include.", - "items": { - "type": "string" - }, - "type": "array" - }, - "pathFilters": { - "description": "Path Filters.", - "items": { - "$ref": "PathFilter" - }, - "type": "array" - } - }, - "type": "object" - }, - "pathToConversionCriteria": { - "description": "The report criteria for a report of type \"PATH_TO_CONVERSION\".", - "properties": { - "activityFilters": { - "description": "The list of 'dfa:activity' values to filter on.", - "items": { - "$ref": "DimensionValue" - }, - "type": "array" - }, - "conversionDimensions": { - "description": "The list of conversion dimensions the report should include.", - "items": { - "$ref": "SortedDimension" - }, - "type": "array" - }, - "customFloodlightVariables": { - "description": "The list of custom floodlight variables the report should include.", - "items": { - "$ref": "SortedDimension" - }, - "type": "array" - }, - "customRichMediaEvents": { - "description": "The list of custom rich media events to include.", - "items": { - "$ref": "DimensionValue" - }, - "type": "array" - }, - "dateRange": { - "$ref": "DateRange", - "description": "The date range this report should be run for." - }, - "floodlightConfigId": { - "$ref": "DimensionValue", - "description": "The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'." - }, - "metricNames": { - "description": "The list of names of metrics the report should include.", - "items": { - "type": "string" - }, - "type": "array" - }, - "perInteractionDimensions": { - "description": "The list of per interaction dimensions the report should include.", - "items": { - "$ref": "SortedDimension" - }, - "type": "array" - }, - "reportProperties": { - "description": "The properties of the report.", - "properties": { - "clicksLookbackWindow": { - "description": "CM360 checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.", - "format": "int32", - "type": "integer" - }, - "impressionsLookbackWindow": { - "description": "CM360 checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.", - "format": "int32", - "type": "integer" - }, - "includeAttributedIPConversions": { - "description": "Deprecated: has no effect.", - "type": "boolean" - }, - "includeUnattributedCookieConversions": { - "description": "Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.", - "type": "boolean" - }, - "includeUnattributedIPConversions": { - "description": "Include conversions that have no associated cookies and no exposures. It\u2019s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.", - "type": "boolean" - }, - "maximumClickInteractions": { - "description": "The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.", - "format": "int32", - "type": "integer" - }, - "maximumImpressionInteractions": { - "description": "The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.", - "format": "int32", - "type": "integer" - }, - "maximumInteractionGap": { - "description": "The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.", - "format": "int32", - "type": "integer" - }, - "pivotOnInteractionPath": { - "description": "Enable pivoting on interaction path.", - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "reachCriteria": { - "description": "The report criteria for a report of type \"REACH\".", - "properties": { - "activities": { - "$ref": "Activities", - "description": "Activity group." - }, - "customRichMediaEvents": { - "$ref": "CustomRichMediaEvents", - "description": "Custom Rich Media Events group." - }, - "dateRange": { - "$ref": "DateRange", - "description": "The date range this report should be run for." - }, - "dimensionFilters": { - "description": "The list of filters on which dimensions are filtered. Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.", - "items": { - "$ref": "DimensionValue" - }, - "type": "array" - }, - "dimensions": { - "description": "The list of dimensions the report should include.", - "items": { - "$ref": "SortedDimension" - }, - "type": "array" - }, - "enableAllDimensionCombinations": { - "description": "Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last 42 days.", - "type": "boolean" - }, - "metricNames": { - "description": "The list of names of metrics the report should include.", - "items": { - "type": "string" - }, - "type": "array" - }, - "reachByFrequencyMetricNames": { - "description": "The list of names of Reach By Frequency metrics the report should include.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "schedule": { - "description": "The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not \"TODAY\".", - "properties": { - "active": { - "annotations": { - "required": [ - "dfareporting.reports.insert", - "dfareporting.reports.update" - ] - }, - "description": "Whether the schedule is active or not. Must be set to either true or false.", - "type": "boolean" - }, - "every": { - "description": "Defines every how many days, weeks or months the report should be run. Needs to be set when \"repeats\" is either \"DAILY\", \"WEEKLY\" or \"MONTHLY\".", - "format": "int32", - "type": "integer" - }, - "expirationDate": { - "format": "date", - "type": "string" - }, - "repeats": { - "annotations": { - "required": [ - "dfareporting.reports.insert", - "dfareporting.reports.update" - ] - }, - "description": "The interval for which the report is repeated. Note: - \"DAILY\" also requires field \"every\" to be set. - \"WEEKLY\" also requires fields \"every\" and \"repeatsOnWeekDays\" to be set. - \"MONTHLY\" also requires fields \"every\" and \"runsOnDayOfMonth\" to be set. ", - "type": "string" - }, - "repeatsOnWeekDays": { - "description": "List of week days \"WEEKLY\" on which scheduled reports should run.", - "items": { - "enum": [ - "SUNDAY", - "MONDAY", - "TUESDAY", - "WEDNESDAY", - "THURSDAY", - "FRIDAY", - "SATURDAY" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "type": "array" - }, - "runsOnDayOfMonth": { - "description": "Enum to define for \"MONTHLY\" scheduled reports whether reports should be repeated on the same day of the month as \"startDate\" or the same day of the week of the month. Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), \"DAY_OF_MONTH\" would run subsequent reports on the 2nd of every Month, and \"WEEK_OF_MONTH\" would run subsequent reports on the first Monday of the month.", - "enum": [ - "DAY_OF_MONTH", - "WEEK_OF_MONTH" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "startDate": { - "format": "date", - "type": "string" - } - }, - "type": "object" - }, - "subAccountId": { - "description": "The subaccount ID to which this report belongs if applicable.", - "format": "int64", - "type": "string" - }, - "type": { - "annotations": { - "required": [ - "dfareporting.reports.insert", - "dfareporting.reports.update" - ] - }, - "description": "The type of the report.", - "enum": [ - "STANDARD", - "REACH", - "PATH_TO_CONVERSION", - "CROSS_DIMENSION_REACH", - "FLOODLIGHT", - "PATH", - "PATH_ATTRIBUTION" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "ReportCompatibleFields": { - "description": "Represents fields that are compatible to be selected for a report of type \"STANDARD\".", - "id": "ReportCompatibleFields", - "properties": { - "dimensionFilters": { - "description": "Dimensions which are compatible to be selected in the \"dimensionFilters\" section of the report.", - "items": { - "$ref": "Dimension" - }, - "type": "array" - }, - "dimensions": { - "description": "Dimensions which are compatible to be selected in the \"dimensions\" section of the report.", - "items": { - "$ref": "Dimension" - }, - "type": "array" - }, - "kind": { - "description": "The kind of resource this is, in this case dfareporting#reportCompatibleFields.", - "type": "string" - }, - "metrics": { - "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", - "items": { - "$ref": "Metric" - }, - "type": "array" - }, - "pivotedActivityMetrics": { - "description": "Metrics which are compatible to be selected as activity metrics to pivot on in the \"activities\" section of the report.", - "items": { - "$ref": "Metric" - }, - "type": "array" - } - }, - "type": "object" - }, - "ReportList": { - "description": "Represents the list of reports.", - "id": "ReportList", - "properties": { - "etag": { - "description": "The eTag of this response for caching purposes.", - "type": "string" - }, - "items": { - "description": "The reports returned in this response.", - "items": { - "$ref": "Report" - }, - "type": "array" - }, - "kind": { - "description": "The kind of list this is, in this case dfareporting#reportList.", - "type": "string" - }, - "nextPageToken": { - "description": "Continuation token used to page through reports. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.", - "type": "string" - } - }, - "type": "object" - }, - "ReportsConfiguration": { - "description": "Reporting Configuration", - "id": "ReportsConfiguration", - "properties": { - "exposureToConversionEnabled": { - "description": "Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.", - "type": "boolean" - }, - "lookbackConfiguration": { - "$ref": "LookbackConfiguration", - "description": "Default lookback windows for new advertisers in this account." - }, - "reportGenerationTimeZoneId": { - "description": "Report generation time zone ID of this account. This is a required field that can only be changed by a superuser. Acceptable values are: - \"1\" for \"America/New_York\" - \"2\" for \"Europe/London\" - \"3\" for \"Europe/Paris\" - \"4\" for \"Africa/Johannesburg\" - \"5\" for \"Asia/Jerusalem\" - \"6\" for \"Asia/Shanghai\" - \"7\" for \"Asia/Hong_Kong\" - \"8\" for \"Asia/Tokyo\" - \"9\" for \"Australia/Sydney\" - \"10\" for \"Asia/Dubai\" - \"11\" for \"America/Los_Angeles\" - \"12\" for \"Pacific/Auckland\" - \"13\" for \"America/Sao_Paulo\" - \"16\" for \"America/Asuncion\" - \"17\" for \"America/Chicago\" - \"18\" for \"America/Denver\" - \"19\" for \"America/St_Johns\" - \"20\" for \"Asia/Dhaka\" - \"21\" for \"Asia/Jakarta\" - \"22\" for \"Asia/Kabul\" - \"23\" for \"Asia/Karachi\" - \"24\" for \"Asia/Calcutta\" - \"25\" for \"Asia/Pyongyang\" - \"26\" for \"Asia/Rangoon\" - \"27\" for \"Atlantic/Cape_Verde\" - \"28\" for \"Atlantic/South_Georgia\" - \"29\" for \"Australia/Adelaide\" - \"30\" for \"Australia/Lord_Howe\" - \"31\" for \"Europe/Moscow\" - \"32\" for \"Pacific/Kiritimati\" - \"35\" for \"Pacific/Norfolk\" - \"36\" for \"Pacific/Tongatapu\" ", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "RichMediaExitOverride": { - "description": "Rich Media Exit Override.", - "id": "RichMediaExitOverride", - "properties": { - "clickThroughUrl": { - "$ref": "ClickThroughUrl", - "description": "Click-through URL of this rich media exit override. Applicable if the enabled field is set to true." - }, - "enabled": { - "description": "Whether to use the clickThroughUrl. If false, the creative-level exit will be used.", - "type": "boolean" - }, - "exitId": { - "description": "ID for the override to refer to a specific exit in the creative.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "Rule": { - "description": "A rule associates an asset with a targeting template for asset-level targeting. Applicable to INSTREAM_VIDEO creatives.", - "id": "Rule", - "properties": { - "assetId": { - "description": "A creativeAssets[].id. This should refer to one of the parent assets in this creative. This is a required field.", - "format": "int64", - "type": "string" - }, - "name": { - "description": "A user-friendly name for this rule. This is a required field.", - "type": "string" - }, - "targetingTemplateId": { - "description": "A targeting template ID. The targeting from the targeting template will be used to determine whether this asset should be served. This is a required field.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "Site": { - "description": "Contains properties of a site.", - "id": "Site", - "properties": { - "accountId": { - "description": "Account ID of this site. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "approved": { - "description": "Whether this site is approved.", - "type": "boolean" - }, - "directorySiteId": { - "description": "Directory site associated with this site. This is a required field that is read-only after insertion.", - "format": "int64", - "type": "string" - }, - "directorySiteIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the directory site. This is a read-only, auto-generated field." - }, - "id": { - "description": "ID of this site. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "idDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of this site. This is a read-only, auto-generated field." - }, - "keyName": { - "description": "Key name of this site. This is a read-only, auto-generated field.", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#site\".", - "type": "string" - }, - "name": { - "description": "Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.", - "type": "string" - }, - "siteContacts": { - "description": "Site contacts.", - "items": { - "$ref": "SiteContact" - }, - "type": "array" - }, - "siteSettings": { - "$ref": "SiteSettings", - "description": "Site-wide settings." - }, - "subaccountId": { - "description": "Subaccount ID of this site. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "videoSettings": { - "$ref": "SiteVideoSettings", - "description": "Default video settings for new placements created under this site. This value will be used to populate the placements.videoSettings field, when no value is specified for the new placement." - } - }, - "type": "object" - }, - "SiteCompanionSetting": { - "description": "Companion Settings", - "id": "SiteCompanionSetting", - "properties": { - "companionsDisabled": { - "description": "Whether companions are disabled for this site template.", - "type": "boolean" - }, - "enabledSizes": { - "description": "Allowlist of companion sizes to be served via this site template. Set this list to null or empty to serve all companion sizes.", - "items": { - "$ref": "Size" - }, - "type": "array" - }, - "imageOnly": { - "description": "Whether to serve only static images as companions.", - "type": "boolean" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#siteCompanionSetting\".", - "type": "string" - } - }, - "type": "object" - }, - "SiteContact": { - "description": "Site Contact", - "id": "SiteContact", - "properties": { - "address": { - "description": "Address of this site contact.", - "type": "string" - }, - "contactType": { - "description": "Site contact type.", - "enum": [ - "SALES_PERSON", - "TRAFFICKER" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "email": { - "description": "Email address of this site contact. This is a required field.", - "type": "string" - }, - "firstName": { - "description": "First name of this site contact.", - "type": "string" - }, - "id": { - "description": "ID of this site contact. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "lastName": { - "description": "Last name of this site contact.", - "type": "string" - }, - "phone": { - "description": "Primary phone number of this site contact.", - "type": "string" - }, - "title": { - "description": "Title or designation of this site contact.", - "type": "string" - } - }, - "type": "object" - }, - "SiteSettings": { - "description": "Site Settings", - "id": "SiteSettings", - "properties": { - "activeViewOptOut": { - "description": "Whether active view creatives are disabled for this site.", - "type": "boolean" - }, - "adBlockingOptOut": { - "description": "Whether this site opts out of ad blocking. When true, ad blocking is disabled for all placements under the site, regardless of the individual placement settings. When false, the campaign and placement settings take effect.", - "type": "boolean" - }, - "disableNewCookie": { - "description": "Whether new cookies are disabled for this site.", - "type": "boolean" - }, - "tagSetting": { - "$ref": "TagSetting", - "description": "Configuration settings for dynamic and image floodlight tags." - }, - "videoActiveViewOptOutTemplate": { - "description": "Whether Verification and ActiveView for in-stream video creatives are disabled by default for new placements created under this site. This value will be used to populate the placement.videoActiveViewOptOut field, when no value is specified for the new placement.", - "type": "boolean" - }, - "vpaidAdapterChoiceTemplate": { - "description": "Default VPAID adapter setting for new placements created under this site. This value will be used to populate the placements.vpaidAdapterChoice field, when no value is specified for the new placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to the placement. The publisher's specifications will typically determine this setting. For VPAID creatives, the adapter format will match the VPAID format (HTML5 VPAID creatives use the HTML5 adapter). *Note:* Flash is no longer supported. This field now defaults to HTML5 when the following values are provided: FLASH, BOTH.", - "enum": [ - "DEFAULT", - "FLASH", - "HTML5", - "BOTH" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "SiteSkippableSetting": { - "description": "Skippable Settings", - "id": "SiteSkippableSetting", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#siteSkippableSetting\".", - "type": "string" - }, - "progressOffset": { - "$ref": "VideoOffset", - "description": "Amount of time to play videos served to this site template before counting a view. Applicable when skippable is true." - }, - "skipOffset": { - "$ref": "VideoOffset", - "description": "Amount of time to play videos served to this site before the skip button should appear. Applicable when skippable is true." - }, - "skippable": { - "description": "Whether the user can skip creatives served to this site. This will act as default for new placements created under this site.", - "type": "boolean" - } - }, - "type": "object" - }, - "SiteTranscodeSetting": { - "description": "Transcode Settings", - "id": "SiteTranscodeSetting", - "properties": { - "enabledVideoFormats": { - "description": "Allowlist of video formats to be served to this site template. Set this list to null or empty to serve all video formats.", - "items": { - "format": "int32", - "type": "integer" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#siteTranscodeSetting\".", - "type": "string" - } - }, - "type": "object" - }, - "SiteVideoSettings": { - "description": "Video Settings", - "id": "SiteVideoSettings", - "properties": { - "companionSettings": { - "$ref": "SiteCompanionSetting", - "description": "Settings for the companion creatives of video creatives served to this site." - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#siteVideoSettings\".", - "type": "string" - }, - "obaEnabled": { - "description": "Whether OBA icons are enabled for this placement.", - "type": "boolean" - }, - "obaSettings": { - "$ref": "ObaIcon", - "description": "Settings for the OBA icon of video creatives served to this site. This will act as default for new placements created under this site." - }, - "orientation": { - "description": "Orientation of a site template used for video. This will act as default for new placements created under this site.", - "enum": [ - "ANY", - "LANDSCAPE", - "PORTRAIT" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "skippableSettings": { - "$ref": "SiteSkippableSetting", - "description": "Settings for the skippability of video creatives served to this site. This will act as default for new placements created under this site." - }, - "transcodeSettings": { - "$ref": "SiteTranscodeSetting", - "description": "Settings for the transcodes of video creatives served to this site. This will act as default for new placements created under this site." - } - }, - "type": "object" - }, - "SitesListResponse": { - "description": "Site List Response", - "id": "SitesListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#sitesListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - }, - "sites": { - "description": "Site collection.", - "items": { - "$ref": "Site" - }, - "type": "array" - } - }, - "type": "object" - }, "Size": { "description": "Represents the dimensions of ads, placements, creatives, or creative assets.", "id": "Size", @@ -19374,1228 +873,6 @@ } }, "type": "object" - }, - "SizesListResponse": { - "description": "Size List Response", - "id": "SizesListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#sizesListResponse\".", - "type": "string" - }, - "sizes": { - "description": "Size collection.", - "items": { - "$ref": "Size" - }, - "type": "array" - } - }, - "type": "object" - }, - "SkippableSetting": { - "description": "Skippable Settings", - "id": "SkippableSetting", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#skippableSetting\".", - "type": "string" - }, - "progressOffset": { - "$ref": "VideoOffset", - "description": "Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true." - }, - "skipOffset": { - "$ref": "VideoOffset", - "description": "Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true." - }, - "skippable": { - "description": "Whether the user can skip creatives served to this placement.", - "type": "boolean" - } - }, - "type": "object" - }, - "SortedDimension": { - "description": "Represents a sorted dimension.", - "id": "SortedDimension", - "properties": { - "kind": { - "description": "The kind of resource this is, in this case dfareporting#sortedDimension.", - "type": "string" - }, - "name": { - "description": "The name of the dimension.", - "type": "string" - }, - "sortOrder": { - "description": "An optional sort order for the dimension column.", - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "Subaccount": { - "description": "Contains properties of a Campaign Manager subaccount.", - "id": "Subaccount", - "properties": { - "accountId": { - "description": "ID of the account that contains this subaccount. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "availablePermissionIds": { - "description": "IDs of the available user role permissions for this subaccount.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "id": { - "description": "ID of this subaccount. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#subaccount\".", - "type": "string" - }, - "name": { - "description": "Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.", - "type": "string" - } - }, - "type": "object" - }, - "SubaccountsListResponse": { - "description": "Subaccount List Response", - "id": "SubaccountsListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#subaccountsListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - }, - "subaccounts": { - "description": "Subaccount collection.", - "items": { - "$ref": "Subaccount" - }, - "type": "array" - } - }, - "type": "object" - }, - "TagData": { - "description": "Placement Tag Data", - "id": "TagData", - "properties": { - "adId": { - "description": "Ad associated with this placement tag. Applicable only when format is PLACEMENT_TAG_TRACKING.", - "format": "int64", - "type": "string" - }, - "clickTag": { - "description": "Tag string to record a click.", - "type": "string" - }, - "creativeId": { - "description": "Creative associated with this placement tag. Applicable only when format is PLACEMENT_TAG_TRACKING.", - "format": "int64", - "type": "string" - }, - "format": { - "description": "TagData tag format of this tag.", - "enum": [ - "PLACEMENT_TAG_STANDARD", - "PLACEMENT_TAG_IFRAME_JAVASCRIPT", - "PLACEMENT_TAG_IFRAME_ILAYER", - "PLACEMENT_TAG_INTERNAL_REDIRECT", - "PLACEMENT_TAG_JAVASCRIPT", - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT", - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT", - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT", - "PLACEMENT_TAG_CLICK_COMMANDS", - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH", - "PLACEMENT_TAG_TRACKING", - "PLACEMENT_TAG_TRACKING_IFRAME", - "PLACEMENT_TAG_TRACKING_JAVASCRIPT", - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3", - "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY", - "PLACEMENT_TAG_JAVASCRIPT_LEGACY", - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY", - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY", - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4", - "PLACEMENT_TAG_TRACKING_THIRD_PARTY_MEASUREMENT" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "impressionTag": { - "description": "Tag string for serving an ad.", - "type": "string" - } - }, - "type": "object" - }, - "TagSetting": { - "description": "Tag Settings", - "id": "TagSetting", - "properties": { - "additionalKeyValues": { - "description": "Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.", - "type": "string" - }, - "includeClickThroughUrls": { - "description": "Whether static landing page URLs should be included in the tags. This setting applies only to placements.", - "type": "boolean" - }, - "includeClickTracking": { - "description": "Whether click-tracking string should be included in the tags.", - "type": "boolean" - }, - "keywordOption": { - "description": "Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.", - "enum": [ - "PLACEHOLDER_WITH_LIST_OF_KEYWORDS", - "IGNORE", - "GENERATE_SEPARATE_TAG_FOR_EACH_KEYWORD" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "TagSettings": { - "description": "Dynamic and Image Tag Settings.", - "id": "TagSettings", - "properties": { - "dynamicTagEnabled": { - "description": "Whether dynamic floodlight tags are enabled.", - "type": "boolean" - }, - "imageTagEnabled": { - "description": "Whether image tags are enabled.", - "type": "boolean" - } - }, - "type": "object" - }, - "TargetWindow": { - "description": "Target Window.", - "id": "TargetWindow", - "properties": { - "customHtml": { - "description": "User-entered value.", - "type": "string" - }, - "targetWindowOption": { - "description": "Type of browser window for which the backup image of the flash creative can be displayed.", - "enum": [ - "NEW_WINDOW", - "CURRENT_WINDOW", - "CUSTOM" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "TargetableRemarketingList": { - "description": "Contains properties of a targetable remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource is a read-only view of a remarketing list to be used to faciliate targeting ads to specific lists. Remarketing lists that are owned by your advertisers and those that are shared to your advertisers or account are accessible via this resource. To manage remarketing lists that are owned by your advertisers, use the RemarketingLists resource.", - "id": "TargetableRemarketingList", - "properties": { - "accountId": { - "description": "Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.", - "format": "int64", - "type": "string" - }, - "active": { - "description": "Whether this targetable remarketing list is active.", - "type": "boolean" - }, - "advertiserId": { - "description": "Dimension value for the advertiser ID that owns this targetable remarketing list.", - "format": "int64", - "type": "string" - }, - "advertiserIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the advertiser." - }, - "description": { - "description": "Targetable remarketing list description.", - "type": "string" - }, - "id": { - "description": "Targetable remarketing list ID.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#targetableRemarketingList\".", - "type": "string" - }, - "lifeSpan": { - "description": "Number of days that a user should remain in the targetable remarketing list without an impression.", - "format": "int64", - "type": "string" - }, - "listSize": { - "description": "Number of users currently in the list. This is a read-only field.", - "format": "int64", - "type": "string" - }, - "listSource": { - "description": "Product from which this targetable remarketing list was originated.", - "enum": [ - "REMARKETING_LIST_SOURCE_OTHER", - "REMARKETING_LIST_SOURCE_ADX", - "REMARKETING_LIST_SOURCE_DFP", - "REMARKETING_LIST_SOURCE_XFP", - "REMARKETING_LIST_SOURCE_DFA", - "REMARKETING_LIST_SOURCE_GA", - "REMARKETING_LIST_SOURCE_YOUTUBE", - "REMARKETING_LIST_SOURCE_DBM", - "REMARKETING_LIST_SOURCE_GPLUS", - "REMARKETING_LIST_SOURCE_DMP", - "REMARKETING_LIST_SOURCE_PLAY_STORE" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "name": { - "description": "Name of the targetable remarketing list. Is no greater than 128 characters long.", - "type": "string" - }, - "subaccountId": { - "description": "Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "TargetableRemarketingListsListResponse": { - "description": "Targetable remarketing list response", - "id": "TargetableRemarketingListsListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#targetableRemarketingListsListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - }, - "targetableRemarketingLists": { - "description": "Targetable remarketing list collection.", - "items": { - "$ref": "TargetableRemarketingList" - }, - "type": "array" - } - }, - "type": "object" - }, - "TargetingTemplate": { - "description": "Contains properties of a targeting template. A targeting template encapsulates targeting information which can be reused across multiple ads.", - "id": "TargetingTemplate", - "properties": { - "accountId": { - "description": "Account ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.", - "format": "int64", - "type": "string" - }, - "advertiserId": { - "description": "Advertiser ID of this targeting template. This is a required field on insert and is read-only after insert.", - "format": "int64", - "type": "string" - }, - "advertiserIdDimensionValue": { - "$ref": "DimensionValue", - "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." - }, - "dayPartTargeting": { - "$ref": "DayPartTargeting", - "description": "Time and day targeting criteria." - }, - "geoTargeting": { - "$ref": "GeoTargeting", - "description": "Geographical targeting criteria." - }, - "id": { - "description": "ID of this targeting template. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "keyValueTargetingExpression": { - "$ref": "KeyValueTargetingExpression", - "description": "Key-value targeting criteria." - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#targetingTemplate\".", - "type": "string" - }, - "languageTargeting": { - "$ref": "LanguageTargeting", - "description": "Language targeting criteria." - }, - "listTargetingExpression": { - "$ref": "ListTargetingExpression", - "description": "Remarketing list targeting criteria." - }, - "name": { - "description": "Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.", - "type": "string" - }, - "subaccountId": { - "description": "Subaccount ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.", - "format": "int64", - "type": "string" - }, - "technologyTargeting": { - "$ref": "TechnologyTargeting", - "description": "Technology platform targeting criteria." - } - }, - "type": "object" - }, - "TargetingTemplatesListResponse": { - "description": "Targeting Template List Response", - "id": "TargetingTemplatesListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#targetingTemplatesListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - }, - "targetingTemplates": { - "description": "Targeting template collection.", - "items": { - "$ref": "TargetingTemplate" - }, - "type": "array" - } - }, - "type": "object" - }, - "TechnologyTargeting": { - "description": "Technology Targeting.", - "id": "TechnologyTargeting", - "properties": { - "browsers": { - "description": "Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.", - "items": { - "$ref": "Browser" - }, - "type": "array" - }, - "connectionTypes": { - "description": "Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.", - "items": { - "$ref": "ConnectionType" - }, - "type": "array" - }, - "mobileCarriers": { - "description": "Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.", - "items": { - "$ref": "MobileCarrier" - }, - "type": "array" - }, - "operatingSystemVersions": { - "description": "Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.", - "items": { - "$ref": "OperatingSystemVersion" - }, - "type": "array" - }, - "operatingSystems": { - "description": "Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.", - "items": { - "$ref": "OperatingSystem" - }, - "type": "array" - }, - "platformTypes": { - "description": "Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.", - "items": { - "$ref": "PlatformType" - }, - "type": "array" - } - }, - "type": "object" - }, - "ThirdPartyAuthenticationToken": { - "description": "Third Party Authentication Token", - "id": "ThirdPartyAuthenticationToken", - "properties": { - "name": { - "description": "Name of the third-party authentication token.", - "type": "string" - }, - "value": { - "description": "Value of the third-party authentication token. This is a read-only, auto-generated field.", - "type": "string" - } - }, - "type": "object" - }, - "ThirdPartyTrackingUrl": { - "description": "Third-party Tracking URL.", - "id": "ThirdPartyTrackingUrl", - "properties": { - "thirdPartyUrlType": { - "description": "Third-party URL type for in-stream video and in-stream audio creatives.", - "enum": [ - "IMPRESSION", - "CLICK_TRACKING", - "VIDEO_START", - "VIDEO_FIRST_QUARTILE", - "VIDEO_MIDPOINT", - "VIDEO_THIRD_QUARTILE", - "VIDEO_COMPLETE", - "VIDEO_MUTE", - "VIDEO_PAUSE", - "VIDEO_REWIND", - "VIDEO_FULLSCREEN", - "VIDEO_STOP", - "VIDEO_CUSTOM", - "SURVEY", - "RICH_MEDIA_IMPRESSION", - "RICH_MEDIA_RM_IMPRESSION", - "RICH_MEDIA_BACKUP_IMPRESSION", - "VIDEO_SKIP", - "VIDEO_PROGRESS" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "url": { - "description": "URL for the specified third-party URL type.", - "type": "string" - } - }, - "type": "object" - }, - "TranscodeSetting": { - "description": "Transcode Settings", - "id": "TranscodeSetting", - "properties": { - "enabledVideoFormats": { - "description": "Allowlist of video formats to be served to this placement. Set this list to null or empty to serve all video formats.", - "items": { - "format": "int32", - "type": "integer" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#transcodeSetting\".", - "type": "string" - } - }, - "type": "object" - }, - "UniversalAdId": { - "description": "A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID.", - "id": "UniversalAdId", - "properties": { - "registry": { - "description": "Registry used for the Ad ID value.", - "enum": [ - "OTHER", - "AD_ID_OFFICIAL", - "CLEARCAST", - "DCM" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "value": { - "description": "ID value for this creative. Only alphanumeric characters and the following symbols are valid: \"_/\\-\". Maximum length is 64 characters. Read only when registry is DCM.", - "type": "string" - } - }, - "type": "object" - }, - "UserDefinedVariableConfiguration": { - "description": "User Defined Variable configuration.", - "id": "UserDefinedVariableConfiguration", - "properties": { - "dataType": { - "description": "Data type for the variable. This is a required field.", - "enum": [ - "STRING", - "NUMBER" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "reportName": { - "description": "User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: \"\"<>\".", - "type": "string" - }, - "variableType": { - "description": "Variable name in the tag. This is a required field.", - "enum": [ - "U1", - "U2", - "U3", - "U4", - "U5", - "U6", - "U7", - "U8", - "U9", - "U10", - "U11", - "U12", - "U13", - "U14", - "U15", - "U16", - "U17", - "U18", - "U19", - "U20", - "U21", - "U22", - "U23", - "U24", - "U25", - "U26", - "U27", - "U28", - "U29", - "U30", - "U31", - "U32", - "U33", - "U34", - "U35", - "U36", - "U37", - "U38", - "U39", - "U40", - "U41", - "U42", - "U43", - "U44", - "U45", - "U46", - "U47", - "U48", - "U49", - "U50", - "U51", - "U52", - "U53", - "U54", - "U55", - "U56", - "U57", - "U58", - "U59", - "U60", - "U61", - "U62", - "U63", - "U64", - "U65", - "U66", - "U67", - "U68", - "U69", - "U70", - "U71", - "U72", - "U73", - "U74", - "U75", - "U76", - "U77", - "U78", - "U79", - "U80", - "U81", - "U82", - "U83", - "U84", - "U85", - "U86", - "U87", - "U88", - "U89", - "U90", - "U91", - "U92", - "U93", - "U94", - "U95", - "U96", - "U97", - "U98", - "U99", - "U100" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "UserProfile": { - "description": "A UserProfile resource lets you list all DFA user profiles that are associated with a Google user account. The profile_id needs to be specified in other API requests. ", - "id": "UserProfile", - "properties": { - "accountId": { - "description": "The account ID to which this profile belongs.", - "format": "int64", - "type": "string" - }, - "accountName": { - "description": "The account name this profile belongs to.", - "type": "string" - }, - "etag": { - "description": "Etag of this resource.", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userProfile\".", - "type": "string" - }, - "profileId": { - "description": "The unique ID of the user profile.", - "format": "int64", - "type": "string" - }, - "subAccountId": { - "description": "The sub account ID this profile belongs to if applicable.", - "format": "int64", - "type": "string" - }, - "subAccountName": { - "description": "The sub account name this profile belongs to if applicable.", - "type": "string" - }, - "userName": { - "description": "The user name.", - "type": "string" - } - }, - "type": "object" - }, - "UserProfileList": { - "description": "Represents the list of user profiles.", - "id": "UserProfileList", - "properties": { - "etag": { - "description": "Etag of this resource.", - "type": "string" - }, - "items": { - "description": "The user profiles returned in this response.", - "items": { - "$ref": "UserProfile" - }, - "type": "array" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userProfileList\".", - "type": "string" - } - }, - "type": "object" - }, - "UserRole": { - "description": "Contains properties of auser role, which is used to manage user access.", - "id": "UserRole", - "properties": { - "accountId": { - "description": "Account ID of this user role. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - }, - "defaultUserRole": { - "description": "Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.", - "type": "boolean" - }, - "id": { - "description": "ID of this user role. This is a read-only, auto-generated field.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userRole\".", - "type": "string" - }, - "name": { - "description": "Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.", - "type": "string" - }, - "parentUserRoleId": { - "description": "ID of the user role that this user role is based on or copied from. This is a required field.", - "format": "int64", - "type": "string" - }, - "permissions": { - "description": "List of permissions associated with this user role.", - "items": { - "$ref": "UserRolePermission" - }, - "type": "array" - }, - "subaccountId": { - "description": "Subaccount ID of this user role. This is a read-only field that can be left blank.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "UserRolePermission": { - "description": "Contains properties of a user role permission.", - "id": "UserRolePermission", - "properties": { - "availability": { - "description": "Levels of availability for a user role permission.", - "enum": [ - "NOT_AVAILABLE_BY_DEFAULT", - "ACCOUNT_BY_DEFAULT", - "SUBACCOUNT_AND_ACCOUNT_BY_DEFAULT", - "ACCOUNT_ALWAYS", - "SUBACCOUNT_AND_ACCOUNT_ALWAYS", - "USER_PROFILE_ONLY" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "id": { - "description": "ID of this user role permission.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userRolePermission\".", - "type": "string" - }, - "name": { - "description": "Name of this user role permission.", - "type": "string" - }, - "permissionGroupId": { - "description": "ID of the permission group that this user role permission belongs to.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "UserRolePermissionGroup": { - "description": "Represents a grouping of related user role permissions.", - "id": "UserRolePermissionGroup", - "properties": { - "id": { - "description": "ID of this user role permission.", - "format": "int64", - "type": "string" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userRolePermissionGroup\".", - "type": "string" - }, - "name": { - "description": "Name of this user role permission group.", - "type": "string" - } - }, - "type": "object" - }, - "UserRolePermissionGroupsListResponse": { - "description": "User Role Permission Group List Response", - "id": "UserRolePermissionGroupsListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userRolePermissionGroupsListResponse\".", - "type": "string" - }, - "userRolePermissionGroups": { - "description": "User role permission group collection.", - "items": { - "$ref": "UserRolePermissionGroup" - }, - "type": "array" - } - }, - "type": "object" - }, - "UserRolePermissionsListResponse": { - "description": "User Role Permission List Response", - "id": "UserRolePermissionsListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userRolePermissionsListResponse\".", - "type": "string" - }, - "userRolePermissions": { - "description": "User role permission collection.", - "items": { - "$ref": "UserRolePermission" - }, - "type": "array" - } - }, - "type": "object" - }, - "UserRolesListResponse": { - "description": "User Role List Response", - "id": "UserRolesListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userRolesListResponse\".", - "type": "string" - }, - "nextPageToken": { - "description": "Pagination token to be used for the next list operation.", - "type": "string" - }, - "userRoles": { - "description": "User role collection.", - "items": { - "$ref": "UserRole" - }, - "type": "array" - } - }, - "type": "object" - }, - "VideoFormat": { - "description": "Contains information about supported video formats.", - "id": "VideoFormat", - "properties": { - "fileType": { - "description": "File type of the video format.", - "enum": [ - "FLV", - "THREEGPP", - "MP4", - "WEBM", - "M3U8" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "id": { - "description": "ID of the video format.", - "format": "int32", - "type": "integer" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#videoFormat\".", - "type": "string" - }, - "resolution": { - "$ref": "Size", - "description": "The resolution of this video format." - }, - "targetBitRate": { - "description": "The target bit rate of this video format.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "VideoFormatsListResponse": { - "description": "Video Format List Response", - "id": "VideoFormatsListResponse", - "properties": { - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#videoFormatsListResponse\".", - "type": "string" - }, - "videoFormats": { - "description": "Video format collection.", - "items": { - "$ref": "VideoFormat" - }, - "type": "array" - } - }, - "type": "object" - }, - "VideoOffset": { - "description": "Video Offset", - "id": "VideoOffset", - "properties": { - "offsetPercentage": { - "description": "Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.", - "format": "int32", - "type": "integer" - }, - "offsetSeconds": { - "description": "Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "VideoSettings": { - "description": "Video Settings", - "id": "VideoSettings", - "properties": { - "companionSettings": { - "$ref": "CompanionSetting", - "description": "Settings for the companion creatives of video creatives served to this placement." - }, - "durationSeconds": { - "description": "Duration of a video placement in seconds.", - "format": "int32", - "type": "integer" - }, - "kind": { - "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#videoSettings\".", - "type": "string" - }, - "obaEnabled": { - "description": "Whether OBA icons are enabled for this placement.", - "type": "boolean" - }, - "obaSettings": { - "$ref": "ObaIcon", - "description": "Settings for the OBA icon of video creatives served to this placement. If this object is provided, the creative-level OBA settings will be overridden." - }, - "orientation": { - "description": "Orientation of a video placement. If this value is set, placement will return assets matching the specified orientation.", - "enum": [ - "ANY", - "LANDSCAPE", - "PORTRAIT" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "skippableSettings": { - "$ref": "SkippableSetting", - "description": "Settings for the skippability of video creatives served to this placement. If this object is provided, the creative-level skippable settings will be overridden." - }, - "transcodeSettings": { - "$ref": "TranscodeSetting", - "description": "Settings for the transcodes of video creatives served to this placement. If this object is provided, the creative-level transcode settings will be overridden." - } - }, - "type": "object" } }, "servicePath": "dfareporting/v3.5/", diff --git a/etc/api/dialogflow/v2/dialogflow-api.json b/etc/api/dialogflow/v2/dialogflow-api.json index bbbb28b39e..ed4d4ef593 100644 --- a/etc/api/dialogflow/v2/dialogflow-api.json +++ b/etc/api/dialogflow/v2/dialogflow-api.json @@ -1230,7 +1230,7 @@ ], "parameters": { "name": { - "description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", + "description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", "location": "path", "pattern": "^projects/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+/contexts/[^/]+$", "required": true, @@ -2256,7 +2256,7 @@ ], "parameters": { "name": { - "description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", + "description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", "location": "path", "pattern": "^projects/[^/]+/agent/sessions/[^/]+/contexts/[^/]+$", "required": true, @@ -2613,6 +2613,7 @@ ], "parameters": { "filter": { + "deprecated": true, "description": "Optional. Filters to restrict results to specific answer records. Marked deprecated as it hasn't been, and isn't currently, supported. For more information about filtering, see [API Filtering](https://aip.dev/160).", "location": "query", "type": "string" @@ -3283,7 +3284,7 @@ ], "parameters": { "conversationId": { - "description": "Optional. Identifier of the conversation. Generally it's auto generated by Google. Only set it if you cannot wait for the response to return a auto-generated one to you. The conversation ID must be compliant with the regression fomula \"a-zA-Z*\" with the characters length in range of [3,64]. If the field is provided, the caller is resposible for 1. the uniqueness of the ID, otherwise the request will be rejected. 2. the consistency for whether to use custom ID or not under a project to better ensure uniqueness.", + "description": "Optional. Identifier of the conversation. Generally it's auto generated by Google. Only set it if you cannot wait for the response to return a auto-generated one to you. The conversation ID must be compliant with the regression fomula `a-zA-Z*` with the characters length in range of [3,64]. If the field is provided, the caller is resposible for 1. the uniqueness of the ID, otherwise the request will be rejected. 2. the consistency for whether to use custom ID or not under a project to better ensure uniqueness.", "location": "query", "type": "string" }, @@ -3678,6 +3679,35 @@ }, "suggestions": { "methods": { + "searchKnowledge": { + "description": "Get answers for the given query based on knowledge documents.", + "flatPath": "v2/projects/{projectsId}/conversations/{conversationsId}/suggestions:searchKnowledge", + "httpMethod": "POST", + "id": "dialogflow.projects.conversations.suggestions.searchKnowledge", + "parameterOrder": [ + "conversation" + ], + "parameters": { + "conversation": { + "description": "The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.", + "location": "path", + "pattern": "^projects/[^/]+/conversations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+conversation}/suggestions:searchKnowledge", + "request": { + "$ref": "GoogleCloudDialogflowV2SearchKnowledgeRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowV2SearchKnowledgeResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, "suggestConversationSummary": { "description": "Suggests summary for a conversation based on specific historical messages. The range of the messages to be used for summary can be specified in the request.", "flatPath": "v2/projects/{projectsId}/conversations/{conversationsId}/suggestions:suggestConversationSummary", @@ -5319,7 +5349,7 @@ ], "parameters": { "name": { - "description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", + "description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+/contexts/[^/]+$", "required": true, @@ -5985,7 +6015,7 @@ ], "parameters": { "name": { - "description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", + "description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/agent/sessions/[^/]+/contexts/[^/]+$", "required": true, @@ -6342,6 +6372,7 @@ ], "parameters": { "filter": { + "deprecated": true, "description": "Optional. Filters to restrict results to specific answer records. Marked deprecated as it hasn't been, and isn't currently, supported. For more information about filtering, see [API Filtering](https://aip.dev/160).", "location": "query", "type": "string" @@ -7096,7 +7127,7 @@ ], "parameters": { "conversationId": { - "description": "Optional. Identifier of the conversation. Generally it's auto generated by Google. Only set it if you cannot wait for the response to return a auto-generated one to you. The conversation ID must be compliant with the regression fomula \"a-zA-Z*\" with the characters length in range of [3,64]. If the field is provided, the caller is resposible for 1. the uniqueness of the ID, otherwise the request will be rejected. 2. the consistency for whether to use custom ID or not under a project to better ensure uniqueness.", + "description": "Optional. Identifier of the conversation. Generally it's auto generated by Google. Only set it if you cannot wait for the response to return a auto-generated one to you. The conversation ID must be compliant with the regression fomula `a-zA-Z*` with the characters length in range of [3,64]. If the field is provided, the caller is resposible for 1. the uniqueness of the ID, otherwise the request will be rejected. 2. the consistency for whether to use custom ID or not under a project to better ensure uniqueness.", "location": "query", "type": "string" }, @@ -7491,6 +7522,35 @@ }, "suggestions": { "methods": { + "searchKnowledge": { + "description": "Get answers for the given query based on knowledge documents.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}/suggestions:searchKnowledge", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.conversations.suggestions.searchKnowledge", + "parameterOrder": [ + "conversation" + ], + "parameters": { + "conversation": { + "description": "The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+conversation}/suggestions:searchKnowledge", + "request": { + "$ref": "GoogleCloudDialogflowV2SearchKnowledgeRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowV2SearchKnowledgeResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, "suggestConversationSummary": { "description": "Suggests summary for a conversation based on specific historical messages. The range of the messages to be used for summary can be specified in the request.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}/suggestions:suggestConversationSummary", @@ -7997,7 +8057,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "dialogflow.projects.locations.operations.list", @@ -8039,6 +8099,68 @@ ] } } + }, + "suggestions": { + "methods": { + "generateStatelessSummary": { + "description": "Generates and returns a summary for a conversation that does not have a resource created for it.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/suggestions:generateStatelessSummary", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.suggestions.generateStatelessSummary", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource to charge for the Summary's generation. Format: `projects//locations/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/suggestions:generateStatelessSummary", + "request": { + "$ref": "GoogleCloudDialogflowV2GenerateStatelessSummaryRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowV2GenerateStatelessSummaryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, + "searchKnowledge": { + "description": "Get answers for the given query based on knowledge documents.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/suggestions:searchKnowledge", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.suggestions.searchKnowledge", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/suggestions:searchKnowledge", + "request": { + "$ref": "GoogleCloudDialogflowV2SearchKnowledgeRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowV2SearchKnowledgeResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + } + } } } }, @@ -8097,7 +8219,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v2/projects/{projectsId}/operations", "httpMethod": "GET", "id": "dialogflow.projects.operations.list", @@ -8139,19 +8261,135 @@ ] } } + }, + "suggestions": { + "methods": { + "generateStatelessSummary": { + "description": "Generates and returns a summary for a conversation that does not have a resource created for it.", + "flatPath": "v2/projects/{projectsId}/suggestions:generateStatelessSummary", + "httpMethod": "POST", + "id": "dialogflow.projects.suggestions.generateStatelessSummary", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource to charge for the Summary's generation. Format: `projects//locations/`.", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/suggestions:generateStatelessSummary", + "request": { + "$ref": "GoogleCloudDialogflowV2GenerateStatelessSummaryRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowV2GenerateStatelessSummaryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, + "searchKnowledge": { + "description": "Get answers for the given query based on knowledge documents.", + "flatPath": "v2/projects/{projectsId}/suggestions:searchKnowledge", + "httpMethod": "POST", + "id": "dialogflow.projects.suggestions.searchKnowledge", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/suggestions:searchKnowledge", + "request": { + "$ref": "GoogleCloudDialogflowV2SearchKnowledgeRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowV2SearchKnowledgeResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + } + } } } } }, - "revision": "20230110", + "revision": "20240227", "rootUrl": "https://dialogflow.googleapis.com/", "schemas": { + "GoogleCloudDialogflowCxV3AdvancedSettings": { + "description": "Hierarchical advanced settings for agent/flow/page/fulfillment/parameter. Settings exposed at lower level overrides the settings exposed at higher level. Overriding occurs at the sub-setting level. For example, the playback_interruption_settings at fulfillment level only overrides the playback_interruption_settings at the agent level, leaving other settings at the agent level unchanged. DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter.", + "id": "GoogleCloudDialogflowCxV3AdvancedSettings", + "properties": { + "audioExportGcsDestination": { + "$ref": "GoogleCloudDialogflowCxV3GcsDestination", + "description": "If present, incoming audio is exported by Dialogflow to the configured Google Cloud Storage destination. Exposed at the following levels: - Agent level - Flow level" + }, + "dtmfSettings": { + "$ref": "GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings", + "description": "Settings for DTMF. Exposed at the following levels: - Agent level - Flow level - Page level - Parameter level." + }, + "loggingSettings": { + "$ref": "GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings", + "description": "Settings for logging. Settings for Dialogflow History, Contact Center messages, StackDriver logs, and speech logging. Exposed at the following levels: - Agent level." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings": { + "description": "Define behaviors for DTMF (dual tone multi frequency).", + "id": "GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings", + "properties": { + "enabled": { + "description": "If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a \"3\" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).", + "type": "boolean" + }, + "finishDigit": { + "description": "The digit that terminates a DTMF digit sequence.", + "type": "string" + }, + "maxDigits": { + "description": "Max length of DTMF digits.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings": { + "description": "Define behaviors on logging.", + "id": "GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings", + "properties": { + "enableInteractionLogging": { + "description": "If true, DF Interaction logging is currently enabled.", + "type": "boolean" + }, + "enableStackdriverLogging": { + "description": "If true, StackDriver logging is currently enabled.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3AudioInput": { "description": "Represents the natural speech audio to be processed.", "id": "GoogleCloudDialogflowCxV3AudioInput", "properties": { "audio": { - "description": "The natural language speech audio to be processed. A single request can contain up to 1 minute of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", + "description": "The natural language speech audio to be processed. A single request can contain up to 2 minutes of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", "format": "byte", "type": "string" }, @@ -8162,6 +8400,23 @@ }, "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 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": { + "description": "Duration that is not eligible for barge-in at the beginning of the input audio.", + "format": "google-duration", + "type": "string" + }, + "totalDuration": { + "description": "Total duration for the playback at the beginning of the input audio.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3BatchRunTestCasesMetadata": { "description": "Metadata returned for the TestCases.BatchRunTestCases long running operation.", "id": "GoogleCloudDialogflowCxV3BatchRunTestCasesMetadata", @@ -8352,6 +8607,33 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3DataStoreConnection": { + "description": "A data store connection. It represents a data store in Discovery Engine and the type of the contents it contains.", + "id": "GoogleCloudDialogflowCxV3DataStoreConnection", + "properties": { + "dataStore": { + "description": "The full name of the referenced data store. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}`", + "type": "string" + }, + "dataStoreType": { + "description": "The type of the connected data store.", + "enum": [ + "DATA_STORE_TYPE_UNSPECIFIED", + "PUBLIC_WEB", + "UNSTRUCTURED", + "STRUCTURED" + ], + "enumDescriptions": [ + "Not specified. This value indicates that the data store type is not specified, so it will not be used during search.", + "A data store that contains public web content.", + "A data store that contains unstructured private data.", + "A data store that contains structured data (for example FAQ)." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3DeleteDocumentOperationMetadata": { "description": "Metadata for DeleteDocument operation.", "id": "GoogleCloudDialogflowCxV3DeleteDocumentOperationMetadata", @@ -8434,7 +8716,7 @@ "type": "string" }, "versionConfigs": { - "description": "Required. A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", + "description": "A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", "items": { "$ref": "GoogleCloudDialogflowCxV3EnvironmentVersionConfig" }, @@ -8538,12 +8820,37 @@ "id": "GoogleCloudDialogflowCxV3ExportAgentResponse", "properties": { "agentContent": { - "description": "Uncompressed raw byte content for agent.", + "description": "Uncompressed raw byte content for agent. This field is populated if none of `agent_uri` and `git_destination` are specified in ExportAgentRequest.", "format": "byte", "type": "string" }, "agentUri": { - "description": "The URI to a file containing the exported agent. This field is populated only if `agent_uri` is specified in ExportAgentRequest.", + "description": "The URI to a file containing the exported agent. This field is populated if `agent_uri` is specified in ExportAgentRequest.", + "type": "string" + }, + "commitSha": { + "description": "Commit SHA of the git push. This field is populated if `git_destination` is specified in ExportAgentRequest.", + "type": "string" + } + }, + "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" } }, @@ -8565,6 +8872,27 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3ExportIntentsMetadata": { + "description": "Metadata returned for the Intents.ExportIntents long running operation.", + "id": "GoogleCloudDialogflowCxV3ExportIntentsMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ExportIntentsResponse": { + "description": "The response message for Intents.ExportIntents.", + "id": "GoogleCloudDialogflowCxV3ExportIntentsResponse", + "properties": { + "intentsContent": { + "$ref": "GoogleCloudDialogflowCxV3InlineDestination", + "description": "Uncompressed byte content for intents. This field is populated only if `intents_content_inline` is set to true in ExportIntentsRequest." + }, + "intentsUri": { + "description": "The URI to a file containing the exported intents. This field is populated only if `intents_uri` is specified in ExportIntentsRequest.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3ExportTestCasesMetadata": { "description": "Metadata returned for the TestCases.ExportTestCases long running operation. This message currently has no fields.", "id": "GoogleCloudDialogflowCxV3ExportTestCasesMetadata", @@ -8605,6 +8933,10 @@ "description": "Represents a form parameter.", "id": "GoogleCloudDialogflowCxV3FormParameter", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", + "description": "Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level." + }, "defaultValue": { "description": "The default value of an optional parameter. If the parameter is required, the default value will be ignored.", "type": "any" @@ -8658,6 +8990,10 @@ "description": "A fulfillment can do one or more of the following actions at the same time: * Generate rich message responses. * Set parameter values. * Call the webhook. Fulfillments can be called at various stages in the Page or Form lifecycle. For example, when a DetectIntentRequest drives a session to enter a new page, the page's entry fulfillment can add a static response to the QueryResult in the returning DetectIntentResponse, call the webhook (for example, to load user data from a database), or both.", "id": "GoogleCloudDialogflowCxV3Fulfillment", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", + "description": "Hierarchical advanced settings for this fulfillment. The settings exposed at the lower level overrides the settings exposed at the higher level." + }, "conditionalCases": { "description": "Conditional cases for this fulfillment.", "items": { @@ -8665,6 +9001,10 @@ }, "type": "array" }, + "enableGenerativeFallback": { + "description": "If the flag is true, the agent will utilize LLM to generate a text response. If LLM generation fails, the defined responses in the fulfillment will be respected. This flag is only useful for fulfillments associated with no-match event handlers.", + "type": "boolean" + }, "messages": { "description": "The list of rich message responses to present to the user.", "items": { @@ -8756,6 +9096,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3GcsDestination": { + "description": "Google Cloud Storage location for a Dialogflow operation that writes or exports objects (e.g. exported agent or transcripts) outside of Dialogflow.", + "id": "GoogleCloudDialogflowCxV3GcsDestination", + "properties": { + "uri": { + "description": "Required. The Google Cloud Storage URI for the exported objects. A URI is of the form: `gs://bucket/object-name-or-prefix` Whether a full object name, or just a prefix, its usage depends on the Dialogflow operation.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3GenericKnowledgeOperationMetadata": { "description": "Metadata in google::longrunning::Operation for Knowledge operations.", "id": "GoogleCloudDialogflowCxV3GenericKnowledgeOperationMetadata", @@ -8805,6 +9156,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", @@ -8816,6 +9212,51 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3ImportIntentsMetadata": { + "description": "Metadata returned for the Intents.ImportIntents long running operation.", + "id": "GoogleCloudDialogflowCxV3ImportIntentsMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ImportIntentsResponse": { + "description": "The response message for Intents.ImportIntents.", + "id": "GoogleCloudDialogflowCxV3ImportIntentsResponse", + "properties": { + "conflictingResources": { + "$ref": "GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources", + "description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportIntentsRequest." + }, + "intents": { + "description": "The unique identifier of the imported intents. Format: `projects//locations//agents//intents/`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources": { + "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": "GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources", + "properties": { + "entityDisplayNames": { + "description": "Display names of conflicting entities.", + "items": { + "type": "string" + }, + "type": "array" + }, + "intentDisplayNames": { + "description": "Display names of conflicting intents.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3ImportTestCasesMetadata": { "description": "Metadata returned for the TestCases.ImportTestCases long running operation.", "id": "GoogleCloudDialogflowCxV3ImportTestCasesMetadata", @@ -8844,6 +9285,19 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3InlineDestination": { + "description": "Inline destination for a Dialogflow operation that writes or exports objects (e.g. intents) outside of Dialogflow.", + "id": "GoogleCloudDialogflowCxV3InlineDestination", + "properties": { + "content": { + "description": "Output only. The uncompressed byte content for the objects. Only populated in responses.", + "format": "byte", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3InputAudioConfig": { "description": "Instructs the speech recognizer on how to process the audio content.", "id": "GoogleCloudDialogflowCxV3InputAudioConfig", @@ -8872,12 +9326,16 @@ ], "type": "string" }, + "bargeInConfig": { + "$ref": "GoogleCloudDialogflowCxV3BargeInConfig", + "description": "Configuration of barge-in behavior during the streaming of input audio." + }, "enableWordInfo": { "description": "Optional. If `true`, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words, e.g. start and end time offsets. If false or unspecified, Speech doesn't return any word-level information.", "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.", + "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": { @@ -8890,12 +9348,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": { @@ -9036,10 +9498,48 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3KnowledgeConnectorSettings": { + "description": "The Knowledge Connector settings for this page or flow. This includes information such as the attached Knowledge Bases, and the way to execute fulfillment.", + "id": "GoogleCloudDialogflowCxV3KnowledgeConnectorSettings", + "properties": { + "dataStoreConnections": { + "description": "Optional. List of related data store connections.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3DataStoreConnection" + }, + "type": "array" + }, + "enabled": { + "description": "Whether Knowledge Connector is enabled or not.", + "type": "boolean" + }, + "targetFlow": { + "description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", + "type": "string" + }, + "targetPage": { + "description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", + "type": "string" + }, + "triggerFulfillment": { + "$ref": "GoogleCloudDialogflowCxV3Fulfillment", + "description": "The fulfillment to be triggered. When the answers from the Knowledge Connector are selected by Dialogflow, you can utitlize the request scoped parameter `$request.knowledge.answers` (contains up to the 5 highest confidence answers) and `$request.knowledge.questions` (contains the corresponding questions) to construct the fulfillment." + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3Page": { "description": "A Dialogflow CX conversation (session) can be described and visualized as a state machine. The states of a CX session are represented by pages. For each flow, you define many pages, where your combined pages can handle a complete conversation on the topics the flow is designed for. At any given moment, exactly one page is the current page, the current page is considered active, and the flow associated with that page is considered active. Every flow has a special start page. When a flow initially becomes active, the start page page becomes the current page. For each conversational turn, the current page will either stay the same or transition to another page. You configure each page to collect information from the end-user that is relevant for the conversational state represented by the page. For more information, see the [Page guide](https://cloud.google.com/dialogflow/cx/docs/concept/page).", "id": "GoogleCloudDialogflowCxV3Page", "properties": { + "advancedSettings": { + "$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" @@ -9059,12 +9559,16 @@ "$ref": "GoogleCloudDialogflowCxV3Form", "description": "The form associated with the page, used for collecting parameters relevant to the page." }, + "knowledgeConnectorSettings": { + "$ref": "GoogleCloudDialogflowCxV3KnowledgeConnectorSettings", + "description": "Optional. Knowledge connector configuration." + }, "name": { "description": "The unique identifier of the page. Required for the Pages.UpdatePage method. Pages.CreatePage populates the name automatically. Format: `projects//locations//agents//flows//pages/`.", "type": "string" }, "transitionRouteGroups": { - "description": "Ordered list of `TransitionRouteGroups` associated with the page. Transition route groups must be unique within a page. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/`.", + "description": "Ordered list of `TransitionRouteGroups` added to the page. Transition route groups must be unique within a page. If the page links both flow-level transition route groups and agent-level transition route groups, the flow-level ones will have higher priority and will be put before the agent-level ones. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups.", "items": { "type": "string" }, @@ -9153,7 +9657,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. ", + "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": { @@ -9211,6 +9715,10 @@ "description": "Output only. A signal that indicates the interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only when the conversation reaches `END_SESSION` page. It is not supposed to be defined by the user. It's guaranteed that there is at most one such message in each response.", "readOnly": true }, + "knowledgeInfoCard": { + "$ref": "GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard", + "description": "Represents info card for knowledge answers, to be better rendered in Dialogflow Messenger." + }, "liveAgentHandoff": { "$ref": "GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff", "description": "Hands off conversation to a human agent." @@ -9236,6 +9744,22 @@ "$ref": "GoogleCloudDialogflowCxV3ResponseMessagePlayAudio", "description": "Signal that the client should play an audio clip hosted at a client-specific URI. Dialogflow uses this to construct mixed_audio. However, Dialogflow itself does not try to read or process the URI in any way." }, + "responseType": { + "description": "Response type.", + "enum": [ + "RESPONSE_TYPE_UNSPECIFIED", + "ENTRY_PROMPT", + "PARAMETER_PROMPT", + "HANDLER_PROMPT" + ], + "enumDescriptions": [ + "Not specified.", + "The response is from an entry prompt in the page.", + "The response is from form-filling prompt in the page.", + "The response is from a transition route or an event handler in the page or flow or transition route group." + ], + "type": "string" + }, "telephonyTransferCall": { "$ref": "GoogleCloudDialogflowCxV3ResponseMessageTelephonyTransferCall", "description": "A signal that the client should transfer the phone call connected to this agent to a third-party endpoint." @@ -9268,6 +9792,12 @@ "properties": {}, "type": "object" }, + "GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard": { + "description": "Represents info card response. If the response contains generative knowledge prediction, Dialogflow will return a payload with Infobot Messenger compatible info card. Otherwise, the info card response is skipped.", + "id": "GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard", + "properties": {}, + "type": "object" + }, "GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff": { "description": "Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates something went extremely wrong in the conversation. * In a webhook response when you determine that the customer issue can only be handled by a human.", "id": "GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff", @@ -9594,7 +10124,7 @@ "id": "GoogleCloudDialogflowCxV3TestRunDifference", "properties": { "description": { - "description": "A description of the diff, showing the actual output vs expected output.", + "description": "A human readable description of the diff, showing the actual output vs expected output.", "type": "string" }, "type": { @@ -9604,14 +10134,16 @@ "INTENT", "PAGE", "PARAMETERS", - "UTTERANCE" + "UTTERANCE", + "FLOW" ], "enumDescriptions": [ "Should never be used.", "The intent.", "The page.", "The parameters.", - "The message utterance." + "The message utterance.", + "The flow." ], "type": "string" } @@ -9623,7 +10155,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" } }, @@ -9637,6 +10169,10 @@ "description": "The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", "type": "string" }, + "description": { + "description": "Optional. The description of the transition route. The maximum length is 500 characters.", + "type": "string" + }, "intent": { "description": "The unique identifier of an Intent. Format: `projects//locations//agents//intents/`. Indicates that the transition can only happen when the given intent is matched. At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", "type": "string" @@ -9702,6 +10238,16 @@ "description": "Whether turn resulted in End Session page.", "type": "boolean" }, + "sentimentMagnitude": { + "description": "Sentiment magnitude of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, + "sentimentScore": { + "description": "Sentiment score of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, "userEscalated": { "description": "Whether user was specifically asking for a live agent.", "type": "boolean" @@ -9771,10 +10317,46 @@ }, "type": "array" }, + "httpMethod": { + "description": "Optional. HTTP method for the flexible webhook calls. Standard webhook always uses POST.", + "enum": [ + "HTTP_METHOD_UNSPECIFIED", + "POST", + "GET", + "HEAD", + "PUT", + "DELETE", + "PATCH", + "OPTIONS" + ], + "enumDescriptions": [ + "HTTP method not specified.", + "HTTP POST Method.", + "HTTP GET Method.", + "HTTP HEAD Method.", + "HTTP PUT Method.", + "HTTP DELETE Method.", + "HTTP PATCH Method.", + "HTTP OPTIONS Method." + ], + "type": "string" + }, + "parameterMapping": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Maps the values extracted from specific fields of the flexible webhook response into session parameters. - Key: session parameter name - Value: field path in the webhook response", + "type": "object" + }, "password": { + "deprecated": true, "description": "The password for HTTP Basic authentication.", "type": "string" }, + "requestBody": { + "description": "Optional. Defines a custom JSON object as request body to send to flexible webhook.", + "type": "string" + }, "requestHeaders": { "additionalProperties": { "type": "string" @@ -9787,8 +10369,23 @@ "type": "string" }, "username": { + "deprecated": true, "description": "The user name for HTTP Basic authentication.", "type": "string" + }, + "webhookType": { + "description": "Optional. Type of the webhook.", + "enum": [ + "WEBHOOK_TYPE_UNSPECIFIED", + "STANDARD", + "FLEXIBLE" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Represents a standard webhook.", + "Represents a flexible webhook." + ], + "type": "string" } }, "type": "object" @@ -9801,6 +10398,10 @@ "description": "Always present. The unique identifier of the DetectIntentResponse that will be returned to the API caller.", "type": "string" }, + "dtmfDigits": { + "description": "If DTMF was provided as input, this field will contain the DTMF digits.", + "type": "string" + }, "fulfillmentInfo": { "$ref": "GoogleCloudDialogflowCxV3WebhookRequestFulfillmentInfo", "description": "Always present. Information about the fulfillment that triggered this webhook call." @@ -10007,12 +10608,66 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1AdvancedSettings": { + "description": "Hierarchical advanced settings for agent/flow/page/fulfillment/parameter. Settings exposed at lower level overrides the settings exposed at higher level. Overriding occurs at the sub-setting level. For example, the playback_interruption_settings at fulfillment level only overrides the playback_interruption_settings at the agent level, leaving other settings at the agent level unchanged. DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter.", + "id": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", + "properties": { + "audioExportGcsDestination": { + "$ref": "GoogleCloudDialogflowCxV3beta1GcsDestination", + "description": "If present, incoming audio is exported by Dialogflow to the configured Google Cloud Storage destination. Exposed at the following levels: - Agent level - Flow level" + }, + "dtmfSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings", + "description": "Settings for DTMF. Exposed at the following levels: - Agent level - Flow level - Page level - Parameter level." + }, + "loggingSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings", + "description": "Settings for logging. Settings for Dialogflow History, Contact Center messages, StackDriver logs, and speech logging. Exposed at the following levels: - Agent level." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings": { + "description": "Define behaviors for DTMF (dual tone multi frequency).", + "id": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings", + "properties": { + "enabled": { + "description": "If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a \"3\" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).", + "type": "boolean" + }, + "finishDigit": { + "description": "The digit that terminates a DTMF digit sequence.", + "type": "string" + }, + "maxDigits": { + "description": "Max length of DTMF digits.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings": { + "description": "Define behaviors on logging.", + "id": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings", + "properties": { + "enableInteractionLogging": { + "description": "If true, DF Interaction logging is currently enabled.", + "type": "boolean" + }, + "enableStackdriverLogging": { + "description": "If true, StackDriver logging is currently enabled.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1AudioInput": { "description": "Represents the natural speech audio to be processed.", "id": "GoogleCloudDialogflowCxV3beta1AudioInput", "properties": { "audio": { - "description": "The natural language speech audio to be processed. A single request can contain up to 1 minute of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", + "description": "The natural language speech audio to be processed. A single request can contain up to 2 minutes of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", "format": "byte", "type": "string" }, @@ -10023,6 +10678,23 @@ }, "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 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": { + "description": "Duration that is not eligible for barge-in at the beginning of the input audio.", + "format": "google-duration", + "type": "string" + }, + "totalDuration": { + "description": "Total duration for the playback at the beginning of the input audio.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1BatchRunTestCasesMetadata": { "description": "Metadata returned for the TestCases.BatchRunTestCases long running operation.", "id": "GoogleCloudDialogflowCxV3beta1BatchRunTestCasesMetadata", @@ -10213,6 +10885,33 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1DataStoreConnection": { + "description": "A data store connection. It represents a data store in Discovery Engine and the type of the contents it contains.", + "id": "GoogleCloudDialogflowCxV3beta1DataStoreConnection", + "properties": { + "dataStore": { + "description": "The full name of the referenced data store. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}`", + "type": "string" + }, + "dataStoreType": { + "description": "The type of the connected data store.", + "enum": [ + "DATA_STORE_TYPE_UNSPECIFIED", + "PUBLIC_WEB", + "UNSTRUCTURED", + "STRUCTURED" + ], + "enumDescriptions": [ + "Not specified. This value indicates that the data store type is not specified, so it will not be used during search.", + "A data store that contains public web content.", + "A data store that contains unstructured private data.", + "A data store that contains structured data (for example FAQ)." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1DeleteDocumentOperationMetadata": { "description": "Metadata for DeleteDocument operation.", "id": "GoogleCloudDialogflowCxV3beta1DeleteDocumentOperationMetadata", @@ -10295,7 +10994,7 @@ "type": "string" }, "versionConfigs": { - "description": "Required. A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", + "description": "A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", "items": { "$ref": "GoogleCloudDialogflowCxV3beta1EnvironmentVersionConfig" }, @@ -10399,12 +11098,37 @@ "id": "GoogleCloudDialogflowCxV3beta1ExportAgentResponse", "properties": { "agentContent": { - "description": "Uncompressed raw byte content for agent.", + "description": "Uncompressed raw byte content for agent. This field is populated if none of `agent_uri` and `git_destination` are specified in ExportAgentRequest.", "format": "byte", "type": "string" }, "agentUri": { - "description": "The URI to a file containing the exported agent. This field is populated only if `agent_uri` is specified in ExportAgentRequest.", + "description": "The URI to a file containing the exported agent. This field is populated if `agent_uri` is specified in ExportAgentRequest.", + "type": "string" + }, + "commitSha": { + "description": "Commit SHA of the git push. This field is populated if `git_destination` is specified in ExportAgentRequest.", + "type": "string" + } + }, + "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" } }, @@ -10426,6 +11150,27 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ExportIntentsMetadata": { + "description": "Metadata returned for the Intents.ExportIntents long running operation.", + "id": "GoogleCloudDialogflowCxV3beta1ExportIntentsMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ExportIntentsResponse": { + "description": "The response message for Intents.ExportIntents.", + "id": "GoogleCloudDialogflowCxV3beta1ExportIntentsResponse", + "properties": { + "intentsContent": { + "$ref": "GoogleCloudDialogflowCxV3beta1InlineDestination", + "description": "Uncompressed byte content for intents. This field is populated only if `intents_content_inline` is set to true in ExportIntentsRequest." + }, + "intentsUri": { + "description": "The URI to a file containing the exported intents. This field is populated only if `intents_uri` is specified in ExportIntentsRequest.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ExportTestCasesMetadata": { "description": "Metadata returned for the TestCases.ExportTestCases long running operation. This message currently has no fields.", "id": "GoogleCloudDialogflowCxV3beta1ExportTestCasesMetadata", @@ -10466,6 +11211,10 @@ "description": "Represents a form parameter.", "id": "GoogleCloudDialogflowCxV3beta1FormParameter", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", + "description": "Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level." + }, "defaultValue": { "description": "The default value of an optional parameter. If the parameter is required, the default value will be ignored.", "type": "any" @@ -10519,6 +11268,10 @@ "description": "A fulfillment can do one or more of the following actions at the same time: * Generate rich message responses. * Set parameter values. * Call the webhook. Fulfillments can be called at various stages in the Page or Form lifecycle. For example, when a DetectIntentRequest drives a session to enter a new page, the page's entry fulfillment can add a static response to the QueryResult in the returning DetectIntentResponse, call the webhook (for example, to load user data from a database), or both.", "id": "GoogleCloudDialogflowCxV3beta1Fulfillment", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", + "description": "Hierarchical advanced settings for this fulfillment. The settings exposed at the lower level overrides the settings exposed at the higher level." + }, "conditionalCases": { "description": "Conditional cases for this fulfillment.", "items": { @@ -10526,6 +11279,10 @@ }, "type": "array" }, + "enableGenerativeFallback": { + "description": "If the flag is true, the agent will utilize LLM to generate a text response. If LLM generation fails, the defined responses in the fulfillment will be respected. This flag is only useful for fulfillments associated with no-match event handlers.", + "type": "boolean" + }, "messages": { "description": "The list of rich message responses to present to the user.", "items": { @@ -10617,6 +11374,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1GcsDestination": { + "description": "Google Cloud Storage location for a Dialogflow operation that writes or exports objects (e.g. exported agent or transcripts) outside of Dialogflow.", + "id": "GoogleCloudDialogflowCxV3beta1GcsDestination", + "properties": { + "uri": { + "description": "Required. The Google Cloud Storage URI for the exported objects. A URI is of the form: `gs://bucket/object-name-or-prefix` Whether a full object name, or just a prefix, its usage depends on the Dialogflow operation.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1GenericKnowledgeOperationMetadata": { "description": "Metadata in google::longrunning::Operation for Knowledge operations.", "id": "GoogleCloudDialogflowCxV3beta1GenericKnowledgeOperationMetadata", @@ -10666,6 +11434,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", @@ -10677,6 +11490,51 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ImportIntentsMetadata": { + "description": "Metadata returned for the Intents.ImportIntents long running operation.", + "id": "GoogleCloudDialogflowCxV3beta1ImportIntentsMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ImportIntentsResponse": { + "description": "The response message for Intents.ImportIntents.", + "id": "GoogleCloudDialogflowCxV3beta1ImportIntentsResponse", + "properties": { + "conflictingResources": { + "$ref": "GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources", + "description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportIntentsRequest." + }, + "intents": { + "description": "The unique identifier of the imported intents. Format: `projects//locations//agents//intents/`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources": { + "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": "GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources", + "properties": { + "entityDisplayNames": { + "description": "Display names of conflicting entities.", + "items": { + "type": "string" + }, + "type": "array" + }, + "intentDisplayNames": { + "description": "Display names of conflicting intents.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ImportTestCasesMetadata": { "description": "Metadata returned for the TestCases.ImportTestCases long running operation.", "id": "GoogleCloudDialogflowCxV3beta1ImportTestCasesMetadata", @@ -10705,6 +11563,19 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1InlineDestination": { + "description": "Inline destination for a Dialogflow operation that writes or exports objects (e.g. intents) outside of Dialogflow.", + "id": "GoogleCloudDialogflowCxV3beta1InlineDestination", + "properties": { + "content": { + "description": "Output only. The uncompressed byte content for the objects. Only populated in responses.", + "format": "byte", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1InputAudioConfig": { "description": "Instructs the speech recognizer on how to process the audio content.", "id": "GoogleCloudDialogflowCxV3beta1InputAudioConfig", @@ -10733,12 +11604,16 @@ ], "type": "string" }, + "bargeInConfig": { + "$ref": "GoogleCloudDialogflowCxV3beta1BargeInConfig", + "description": "Configuration of barge-in behavior during the streaming of input audio." + }, "enableWordInfo": { "description": "Optional. If `true`, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words, e.g. start and end time offsets. If false or unspecified, Speech doesn't return any word-level information.", "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.", + "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": { @@ -10751,12 +11626,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": { @@ -10897,10 +11776,48 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings": { + "description": "The Knowledge Connector settings for this page or flow. This includes information such as the attached Knowledge Bases, and the way to execute fulfillment.", + "id": "GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings", + "properties": { + "dataStoreConnections": { + "description": "Optional. List of related data store connections.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3beta1DataStoreConnection" + }, + "type": "array" + }, + "enabled": { + "description": "Whether Knowledge Connector is enabled or not.", + "type": "boolean" + }, + "targetFlow": { + "description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", + "type": "string" + }, + "targetPage": { + "description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", + "type": "string" + }, + "triggerFulfillment": { + "$ref": "GoogleCloudDialogflowCxV3beta1Fulfillment", + "description": "The fulfillment to be triggered. When the answers from the Knowledge Connector are selected by Dialogflow, you can utitlize the request scoped parameter `$request.knowledge.answers` (contains up to the 5 highest confidence answers) and `$request.knowledge.questions` (contains the corresponding questions) to construct the fulfillment." + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1Page": { "description": "A Dialogflow CX conversation (session) can be described and visualized as a state machine. The states of a CX session are represented by pages. For each flow, you define many pages, where your combined pages can handle a complete conversation on the topics the flow is designed for. At any given moment, exactly one page is the current page, the current page is considered active, and the flow associated with that page is considered active. Every flow has a special start page. When a flow initially becomes active, the start page page becomes the current page. For each conversational turn, the current page will either stay the same or transition to another page. You configure each page to collect information from the end-user that is relevant for the conversational state represented by the page. For more information, see the [Page guide](https://cloud.google.com/dialogflow/cx/docs/concept/page).", "id": "GoogleCloudDialogflowCxV3beta1Page", "properties": { + "advancedSettings": { + "$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" @@ -10920,12 +11837,16 @@ "$ref": "GoogleCloudDialogflowCxV3beta1Form", "description": "The form associated with the page, used for collecting parameters relevant to the page." }, + "knowledgeConnectorSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings", + "description": "Optional. Knowledge connector configuration." + }, "name": { "description": "The unique identifier of the page. Required for the Pages.UpdatePage method. Pages.CreatePage populates the name automatically. Format: `projects//locations//agents//flows//pages/`.", "type": "string" }, "transitionRouteGroups": { - "description": "Ordered list of `TransitionRouteGroups` associated with the page. Transition route groups must be unique within a page. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/`.", + "description": "Ordered list of `TransitionRouteGroups` added to the page. Transition route groups must be unique within a page. If the page links both flow-level transition route groups and agent-level transition route groups, the flow-level ones will have higher priority and will be put before the agent-level ones. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups.", "items": { "type": "string" }, @@ -11014,7 +11935,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. ", + "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": { @@ -11072,6 +11993,10 @@ "description": "Output only. A signal that indicates the interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only when the conversation reaches `END_SESSION` page. It is not supposed to be defined by the user. It's guaranteed that there is at most one such message in each response.", "readOnly": true }, + "knowledgeInfoCard": { + "$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard", + "description": "Represents info card for knowledge answers, to be better rendered in Dialogflow Messenger." + }, "liveAgentHandoff": { "$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff", "description": "Hands off conversation to a human agent." @@ -11129,6 +12054,12 @@ "properties": {}, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard": { + "description": "Represents info card response. If the response contains generative knowledge prediction, Dialogflow will return a payload with Infobot Messenger compatible info card. Otherwise, the info card response is skipped.", + "id": "GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard", + "properties": {}, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff": { "description": "Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates something went extremely wrong in the conversation. * In a webhook response when you determine that the customer issue can only be handled by a human.", "id": "GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff", @@ -11455,7 +12386,7 @@ "id": "GoogleCloudDialogflowCxV3beta1TestRunDifference", "properties": { "description": { - "description": "A description of the diff, showing the actual output vs expected output.", + "description": "A human readable description of the diff, showing the actual output vs expected output.", "type": "string" }, "type": { @@ -11465,14 +12396,16 @@ "INTENT", "PAGE", "PARAMETERS", - "UTTERANCE" + "UTTERANCE", + "FLOW" ], "enumDescriptions": [ "Should never be used.", "The intent.", "The page.", "The parameters.", - "The message utterance." + "The message utterance.", + "The flow." ], "type": "string" } @@ -11484,7 +12417,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" } }, @@ -11498,6 +12431,10 @@ "description": "The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", "type": "string" }, + "description": { + "description": "Optional. The description of the transition route. The maximum length is 500 characters.", + "type": "string" + }, "intent": { "description": "The unique identifier of an Intent. Format: `projects//locations//agents//intents/`. Indicates that the transition can only happen when the given intent is matched. At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", "type": "string" @@ -11563,6 +12500,16 @@ "description": "Whether turn resulted in End Session page.", "type": "boolean" }, + "sentimentMagnitude": { + "description": "Sentiment magnitude of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, + "sentimentScore": { + "description": "Sentiment score of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, "userEscalated": { "description": "Whether user was specifically asking for a live agent.", "type": "boolean" @@ -11632,10 +12579,46 @@ }, "type": "array" }, + "httpMethod": { + "description": "Optional. HTTP method for the flexible webhook calls. Standard webhook always uses POST.", + "enum": [ + "HTTP_METHOD_UNSPECIFIED", + "POST", + "GET", + "HEAD", + "PUT", + "DELETE", + "PATCH", + "OPTIONS" + ], + "enumDescriptions": [ + "HTTP method not specified.", + "HTTP POST Method.", + "HTTP GET Method.", + "HTTP HEAD Method.", + "HTTP PUT Method.", + "HTTP DELETE Method.", + "HTTP PATCH Method.", + "HTTP OPTIONS Method." + ], + "type": "string" + }, + "parameterMapping": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Maps the values extracted from specific fields of the flexible webhook response into session parameters. - Key: session parameter name - Value: field path in the webhook response", + "type": "object" + }, "password": { + "deprecated": true, "description": "The password for HTTP Basic authentication.", "type": "string" }, + "requestBody": { + "description": "Optional. Defines a custom JSON object as request body to send to flexible webhook.", + "type": "string" + }, "requestHeaders": { "additionalProperties": { "type": "string" @@ -11648,8 +12631,23 @@ "type": "string" }, "username": { + "deprecated": true, "description": "The user name for HTTP Basic authentication.", "type": "string" + }, + "webhookType": { + "description": "Optional. Type of the webhook.", + "enum": [ + "WEBHOOK_TYPE_UNSPECIFIED", + "STANDARD", + "FLEXIBLE" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Represents a standard webhook.", + "Represents a flexible webhook." + ], + "type": "string" } }, "type": "object" @@ -11662,6 +12660,10 @@ "description": "Always present. The unique identifier of the DetectIntentResponse that will be returned to the API caller.", "type": "string" }, + "dtmfDigits": { + "description": "If DTMF was provided as input, this field will contain the DTMF digits.", + "type": "string" + }, "fulfillmentInfo": { "$ref": "GoogleCloudDialogflowCxV3beta1WebhookRequestFulfillmentInfo", "description": "Always present. Information about the fulfillment that triggered this webhook call." @@ -11914,6 +12916,7 @@ "type": "boolean" }, "matchMode": { + "deprecated": true, "description": "Optional. Determines how intents are detected from user queries.", "enum": [ "MATCH_MODE_UNSPECIFIED", @@ -11946,6 +12949,12 @@ "TIER_ENTERPRISE", "TIER_ENTERPRISE_PLUS" ], + "enumDeprecated": [ + false, + false, + false, + true + ], "enumDescriptions": [ "Not specified. This value should never be used.", "Trial Edition, previously known as Standard Edition.", @@ -12007,6 +13016,10 @@ ], "type": "string" }, + "knowledgeSearchFeedback": { + "$ref": "GoogleCloudDialogflowV2AgentAssistantFeedbackKnowledgeSearchFeedback", + "description": "Optional. Feedback for knowledge search." + }, "summarizationFeedback": { "$ref": "GoogleCloudDialogflowV2AgentAssistantFeedbackSummarizationFeedback", "description": "Optional. Feedback for conversation summarization." @@ -12014,6 +13027,24 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2AgentAssistantFeedbackKnowledgeSearchFeedback": { + "description": "Feedback for knowledge search.", + "id": "GoogleCloudDialogflowV2AgentAssistantFeedbackKnowledgeSearchFeedback", + "properties": { + "answerCopied": { + "description": "Whether the answer was copied by the human agent or not. If the value is set to be true, AnswerFeedback.clicked will be updated to be true.", + "type": "boolean" + }, + "clickedUris": { + "description": "The URIs clicked by the human agent. The value is appended for each UpdateAnswerRecordRequest. If the value is not empty, AnswerFeedback.clicked will be updated to be true.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2AgentAssistantFeedbackSummarizationFeedback": { "description": "Feedback for conversation summarization.", "id": "GoogleCloudDialogflowV2AgentAssistantFeedbackSummarizationFeedback", @@ -12031,6 +13062,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" @@ -12044,6 +13082,11 @@ "description": "Output only. The article suggestion answer.", "readOnly": true }, + "dialogflowAssistAnswer": { + "$ref": "GoogleCloudDialogflowV2DialogflowAssistAnswer", + "description": "Output only. Dialogflow assist answer.", + "readOnly": true + }, "faqAnswer": { "$ref": "GoogleCloudDialogflowV2FaqAnswer", "description": "Output only. The FAQ answer.", @@ -12084,6 +13127,10 @@ "description": "A unique identifier for this request. Restricted to 36 ASCII characters. A random UUID is recommended. This request is only idempotent if a `request_id` is provided.", "type": "string" }, + "suggestionInput": { + "$ref": "GoogleCloudDialogflowV2SuggestionInput", + "description": "An input representing the selection of a suggestion." + }, "textInput": { "$ref": "GoogleCloudDialogflowV2TextInput", "description": "The natural language text to be processed." @@ -12165,7 +13212,7 @@ "type": "string" }, "clicked": { - "description": "Indicates whether the answer/item was clicked by the human agent or not. Default to false.", + "description": "Indicates whether the answer/item was clicked by the human agent or not. Default to false. For knowledge search and knowledge assist, the answer record is considered to be clicked if the answer was copied or any URI was clicked.", "type": "boolean" }, "correctnessLevel": { @@ -12296,6 +13343,11 @@ "agent": { "description": "Required. ID of the Dialogflow agent environment to use. This project needs to either be the same project as the conversation or you need to grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow API Service Agent` role in this project. - For ES agents, use format: `projects//locations//agent/environments/`. If environment is not specified, the default `draft` environment is used. Refer to [DetectIntentRequest](/dialogflow/docs/reference/rpc/google.cloud.dialogflow.v2#google.cloud.dialogflow.v2.DetectIntentRequest) for more details. - For CX agents, use format `projects//locations//agents//environments/`. If environment is not specified, the default `draft` environment is used.", "type": "string" + }, + "sessionTtl": { + "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" } }, "type": "object" @@ -12542,13 +13594,15 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model for chat.", - "Run smart reply model for chat." + "Run smart reply model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } @@ -12581,13 +13635,15 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model for chat.", - "Run smart reply model for chat." + "Run smart reply model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } @@ -12610,7 +13666,7 @@ "type": "integer" }, "name": { - "description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", + "description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", "type": "string" }, "parameters": { @@ -12618,7 +13674,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" } }, @@ -12950,6 +14006,10 @@ "description": "The time zone of this conversational profile from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York, Europe/Paris. Defaults to America/New_York.", "type": "string" }, + "ttsConfig": { + "$ref": "GoogleCloudDialogflowV2SynthesizeSpeechConfig", + "description": "Configuration for Text-to-Speech synthesization. Used by Phone Gateway to specify synthesization options. If agent defines synthesization options as well, agent settings overrides the option here." + }, "updateTime": { "description": "Output only. Update time of the conversation profile.", "format": "google-datetime", @@ -13160,6 +14220,25 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2DialogflowAssistAnswer": { + "description": "Represents a Dialogflow assist answer.", + "id": "GoogleCloudDialogflowV2DialogflowAssistAnswer", + "properties": { + "answerRecord": { + "description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", + "type": "string" + }, + "intentSuggestion": { + "$ref": "GoogleCloudDialogflowV2IntentSuggestion", + "description": "An intent suggestion generated from conversation." + }, + "queryResult": { + "$ref": "GoogleCloudDialogflowV2QueryResult", + "description": "Result from v2 agent." + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2Document": { "description": "A knowledge document to be used by a KnowledgeBase. For more information, see the [knowledge base guide](https://cloud.google.com/dialogflow/docs/how/knowledge-bases). Note: The `projects.agent.knowledgeBases.documents` resource is deprecated; only use `projects.knowledgeBases.documents`.", "id": "GoogleCloudDialogflowV2Document", @@ -13173,7 +14252,7 @@ "type": "string" }, "enableAutoReload": { - "description": "Optional. If true, we try to automatically reload the document every day (at a time picked by the system). If false or unspecified, we don't try to automatically reload the document. Currently you can only enable automatic reload for documents sourced from a public url, see `source` field for the source types. Reload status can be tracked in `latest_reload_status`. If a reload fails, we will keep the document unchanged. If a reload fails with internal errors, the system will try to reload the document on the next day. If a reload fails with non-retriable errors (e.g. PERMISION_DENIED), the system will not try to reload the document anymore. You need to manually reload the document successfully by calling `ReloadDocument` and clear the errors.", + "description": "Optional. If true, we try to automatically reload the document every day (at a time picked by the system). If false or unspecified, we don't try to automatically reload the document. Currently you can only enable automatic reload for documents sourced from a public url, see `source` field for the source types. Reload status can be tracked in `latest_reload_status`. If a reload fails, we will keep the document unchanged. If a reload fails with internal errors, the system will try to reload the document on the next day. If a reload fails with non-retriable errors (e.g. PERMISSION_DENIED), the system will not try to reload the document anymore. You need to manually reload the document successfully by calling `ReloadDocument` and clear the errors.", "type": "boolean" }, "knowledgeTypes": { @@ -13526,7 +14605,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" } }, @@ -13678,6 +14757,7 @@ "id": "GoogleCloudDialogflowV2FulfillmentGenericWebService", "properties": { "isCloudFunction": { + "deprecated": true, "description": "Optional. Indicates if generic web service is created through Cloud Functions integration. Defaults to false. is_cloud_function is deprecated. Cloud functions can be configured by its uri as a regular web service now.", "type": "boolean" }, @@ -13708,7 +14788,7 @@ "id": "GoogleCloudDialogflowV2GcsDestination", "properties": { "uri": { - "description": "The Google Cloud Storage URIs for the output. A URI is of the form: gs://bucket/object-prefix-or-name Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", + "description": "The Google Cloud Storage URIs for the output. A URI is of the form: `gs://bucket/object-prefix-or-name` Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", "type": "string" } }, @@ -13719,7 +14799,7 @@ "id": "GoogleCloudDialogflowV2GcsSources", "properties": { "uris": { - "description": "Required. Google Cloud Storage URIs for the inputs. A URI is of the form: gs://bucket/object-prefix-or-name Whether a prefix or name is used depends on the use case.", + "description": "Required. Google Cloud Storage URIs for the inputs. A URI is of the form: `gs://bucket/object-prefix-or-name` Whether a prefix or name is used depends on the use case.", "items": { "type": "string" }, @@ -13728,6 +14808,86 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2GenerateStatelessSummaryRequest": { + "description": "The request message for Conversations.GenerateStatelessSummary.", + "id": "GoogleCloudDialogflowV2GenerateStatelessSummaryRequest", + "properties": { + "conversationProfile": { + "$ref": "GoogleCloudDialogflowV2ConversationProfile", + "description": "Required. A ConversationProfile containing information required for Summary generation. Required fields: {language_code, security_settings} Optional fields: {agent_assistant_config}" + }, + "latestMessage": { + "description": "The name of the latest conversation message used as context for generating a Summary. If empty, the latest message of the conversation will be used. The format is specific to the user and the names of the messages provided.", + "type": "string" + }, + "maxContextSize": { + "description": "Max number of messages prior to and including [latest_message] to use as context when compiling the suggestion. By default 500 and at most 1000.", + "format": "int32", + "type": "integer" + }, + "statelessConversation": { + "$ref": "GoogleCloudDialogflowV2GenerateStatelessSummaryRequestMinimalConversation", + "description": "Required. The conversation to suggest a summary for." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2GenerateStatelessSummaryRequestMinimalConversation": { + "description": "The minimum amount of information required to generate a Summary without having a Conversation resource created.", + "id": "GoogleCloudDialogflowV2GenerateStatelessSummaryRequestMinimalConversation", + "properties": { + "messages": { + "description": "Required. The messages that the Summary will be generated from. It is expected that this message content is already redacted and does not contain any PII. Required fields: {content, language_code, participant, participant_role} Optional fields: {send_time} If send_time is not provided, then the messages must be provided in chronological order.", + "items": { + "$ref": "GoogleCloudDialogflowV2Message" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2GenerateStatelessSummaryResponse": { + "description": "The response message for Conversations.GenerateStatelessSummary.", + "id": "GoogleCloudDialogflowV2GenerateStatelessSummaryResponse", + "properties": { + "contextSize": { + "description": "Number of messages prior to and including last_conversation_message used to compile the suggestion. It may be smaller than the GenerateStatelessSummaryRequest.context_size field in the request if there weren't that many messages in the conversation.", + "format": "int32", + "type": "integer" + }, + "latestMessage": { + "description": "The name of the latest conversation message used as context for compiling suggestion. The format is specific to the user and the names of the messages provided.", + "type": "string" + }, + "summary": { + "$ref": "GoogleCloudDialogflowV2GenerateStatelessSummaryResponseSummary", + "description": "Generated summary." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2GenerateStatelessSummaryResponseSummary": { + "description": "Generated summary for a conversation.", + "id": "GoogleCloudDialogflowV2GenerateStatelessSummaryResponseSummary", + "properties": { + "baselineModelVersion": { + "description": "The baseline model version used to generate this summary. It is empty if a baseline model was not used to generate this summary.", + "type": "string" + }, + "text": { + "description": "The summary content that is concatenated into one string.", + "type": "string" + }, + "textSections": { + "additionalProperties": { + "type": "string" + }, + "description": "The summary content that is divided into sections. The key is the section's name and the value is the section's content. There is no specific format for the key or value.", + "type": "object" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2HumanAgentAssistantConfig": { "description": "Defines the Human Agent Assist to connect to a conversation.", "id": "GoogleCloudDialogflowV2HumanAgentAssistantConfig", @@ -13755,6 +14915,10 @@ "description": "Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY, CONVERSATION_SUMMARIZATION.", "id": "GoogleCloudDialogflowV2HumanAgentAssistantConfigConversationModelConfig", "properties": { + "baselineModelVersion": { + "description": "Version of current baseline model. It will be ignored if model is set. Valid versions are: Article Suggestion baseline model: - 0.9 - 1.0 (default) Summarization baseline model: - 1.0", + "type": "string" + }, "model": { "description": "Conversation model resource name. Format: `projects//conversationModels/`.", "type": "string" @@ -13819,8 +14983,16 @@ "$ref": "GoogleCloudDialogflowV2HumanAgentAssistantConfigConversationProcessConfig", "description": "Configs for processing conversation." }, + "disableAgentQueryLogging": { + "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.", + "description": "Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST, KNOWLEDGE_ASSIST.", "type": "boolean" }, "queryConfig": { @@ -13843,7 +15015,7 @@ "id": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfig", "properties": { "confidenceThreshold": { - "description": "Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it defaults to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE.", + "description": "Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it defaults to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE, KNOWLEDGE_SEARCH, KNOWLEDGE_ASSIST, ENTITY_EXTRACTION.", "format": "float", "type": "number" }, @@ -13867,6 +15039,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" @@ -13897,6 +15073,21 @@ "agent": { "description": "Required. The name of a Dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.", "type": "string" + }, + "humanAgentSideConfig": { + "$ref": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySourceHumanAgentSideConfig", + "description": "Optional. The Dialogflow assist configuration for human agent." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySourceHumanAgentSideConfig": { + "description": "The configuration used for human agent side Dialogflow assist suggestion.", + "id": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySourceHumanAgentSideConfig", + "properties": { + "agent": { + "description": "Optional. The name of a dialogflow virtual agent used for intent detection and suggestion triggered by human agent. Format: `projects//locations//agent`.", + "type": "string" } }, "type": "object" @@ -13929,6 +15120,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", @@ -14130,7 +15353,7 @@ }, "gcsSource": { "$ref": "GoogleCloudDialogflowV2GcsSources", - "description": "The Google Cloud Storage location for the documents. The path can include a wildcard. These URIs may have the forms `gs:///`. `gs:////*.`." + "description": "Optional. The Google Cloud Storage location for the documents. The path can include a wildcard. These URIs may have the forms `gs:///`. `gs:////*.`." }, "importGcsCustomMetadata": { "description": "Whether to import custom metadata from Google Cloud Storage. Only valid when the document source is Google Cloud Storage URI.", @@ -14185,6 +15408,10 @@ "description": "Only used in Participants.AnalyzeContent and Participants.StreamingAnalyzeContent. If `false` and recognition doesn't return any result, trigger `NO_SPEECH_RECOGNIZED` event to Dialogflow agent.", "type": "boolean" }, + "enableAutomaticPunctuation": { + "description": "Enable automatic punctuation option at the speech backend.", + "type": "boolean" + }, "enableWordInfo": { "description": "If `true`, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words, e.g. start and end time offsets. If false or unspecified, Speech doesn't return any word-level information.", "type": "boolean" @@ -14194,7 +15421,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.", + "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": { @@ -14213,8 +15440,13 @@ ], "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": { - "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]().", + "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`]().", "items": { "type": "string" }, @@ -15125,6 +16357,25 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2IntentSuggestion": { + "description": "Represents an intent suggestion.", + "id": "GoogleCloudDialogflowV2IntentSuggestion", + "properties": { + "description": { + "description": "Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters.", + "type": "string" + }, + "displayName": { + "description": "The display name of the intent.", + "type": "string" + }, + "intentV2": { + "description": "The unique identifier of this intent. Format: `projects//locations//agent/intents/`.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2IntentTrainingPhrase": { "description": "Represents an example that the agent is trained on.", "id": "GoogleCloudDialogflowV2IntentTrainingPhrase", @@ -15152,6 +16403,11 @@ "EXAMPLE", "TEMPLATE" ], + "enumDeprecated": [ + false, + false, + true + ], "enumDescriptions": [ "Not specified. This value should never be used.", "Examples do not contain @-prefixed entity type names, but example parts can be annotated with entity types.", @@ -15758,7 +17014,7 @@ "type": "object" }, "GoogleCloudDialogflowV2QueryInput": { - "description": "Represents the query input. It can contain either: 1. An audio config which instructs the speech recognizer how to process the speech audio. 2. A conversational query in the form of text,. 3. An event that specifies which intent to trigger.", + "description": "Represents the query input. It can contain either: 1. An audio config which instructs the speech recognizer how to process the speech audio. 2. A conversational query in the form of text. 3. An event that specifies which intent to trigger.", "id": "GoogleCloudDialogflowV2QueryInput", "properties": { "audioConfig": { @@ -15799,6 +17055,10 @@ "description": "This field can be used to pass custom data to your webhook. Arbitrary JSON objects are supported. If supplied, the value is used to populate the `WebhookRequest.original_detect_intent_request.payload` field sent to your webhook.", "type": "object" }, + "platform": { + "description": "The platform of the virtual agent response messages. If not empty, only emits messages from this platform in the response. Valid values are the enum names of platform.", + "type": "string" + }, "resetContexts": { "description": "Specifies whether to delete all contexts in the current session before the new ones are activated.", "type": "boolean" @@ -15888,7 +17148,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" }, "queryText": { @@ -15972,6 +17232,112 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2SearchKnowledgeAnswer": { + "description": "Represents a SearchKnowledge answer.", + "id": "GoogleCloudDialogflowV2SearchKnowledgeAnswer", + "properties": { + "answer": { + "description": "The piece of text from the knowledge base documents that answers the search query", + "type": "string" + }, + "answerRecord": { + "description": "The name of the answer record. Format: `projects//locations//answer Records/`", + "type": "string" + }, + "answerSources": { + "description": "All sources used to generate the answer.", + "items": { + "$ref": "GoogleCloudDialogflowV2SearchKnowledgeAnswerAnswerSource" + }, + "type": "array" + }, + "answerType": { + "description": "The type of the answer.", + "enum": [ + "ANSWER_TYPE_UNSPECIFIED", + "FAQ", + "GENERATIVE", + "INTENT" + ], + "enumDescriptions": [ + "The answer has a unspecified type.", + "The answer is from FAQ documents.", + "The answer is from generative model.", + "The answer is from intent matching." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2SearchKnowledgeAnswerAnswerSource": { + "description": "The sources of the answers.", + "id": "GoogleCloudDialogflowV2SearchKnowledgeAnswerAnswerSource", + "properties": { + "snippet": { + "description": "The relevant snippet of the article.", + "type": "string" + }, + "title": { + "description": "The title of the article.", + "type": "string" + }, + "uri": { + "description": "The URI of the article.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2SearchKnowledgeRequest": { + "description": "The request message for Conversations.SearchKnowledge.", + "id": "GoogleCloudDialogflowV2SearchKnowledgeRequest", + "properties": { + "conversation": { + "description": "The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.", + "type": "string" + }, + "conversationProfile": { + "description": "Required. The conversation profile used to configure the search. Format: `projects//locations//conversationProfiles/`.", + "type": "string" + }, + "latestMessage": { + "description": "The name of the latest conversation message when the request is triggered. Format: `projects//locations//conversations//messages/`.", + "type": "string" + }, + "parent": { + "description": "The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.", + "type": "string" + }, + "query": { + "$ref": "GoogleCloudDialogflowV2TextInput", + "description": "Required. The natural language text query for knowledge search." + }, + "sessionId": { + "description": "The ID of the search session. The session_id can be combined with Dialogflow V3 Agent ID retrieved from conversation profile or on its own to identify a search session. The search history of the same session will impact the search result. It's up to the API caller to choose an appropriate `Session ID`. It can be a random number or some type of session identifiers (preferably hashed). The length must not exceed 36 characters.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2SearchKnowledgeResponse": { + "description": "The response message for Conversations.SearchKnowledge.", + "id": "GoogleCloudDialogflowV2SearchKnowledgeResponse", + "properties": { + "answers": { + "description": "Most relevant snippets extracted from articles in the given knowledge base, ordered by confidence.", + "items": { + "$ref": "GoogleCloudDialogflowV2SearchKnowledgeAnswer" + }, + "type": "array" + }, + "rewrittenQuery": { + "description": "The rewritten query used to search knowledge.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2Sentiment": { "description": "The sentiment, such as positive/negative feeling or association, for a unit of analysis, such as the query text. See: https://cloud.google.com/natural-language/docs/basics#interpreting_sentiment_analysis_values for how to interpret the result.", "id": "GoogleCloudDialogflowV2Sentiment", @@ -16078,13 +17444,15 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model for chat.", - "Run smart reply model for chat." + "Run smart reply model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } @@ -16224,7 +17592,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": { @@ -16242,6 +17610,10 @@ "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." ], "type": "string" + }, + "useTimeoutBasedEndpointing": { + "description": "Use timeout based endpointing, interpreting endpointer sensitivy as seconds of timeout value.", + "type": "boolean" } }, "type": "object" @@ -16293,6 +17665,10 @@ "description": "The request message for Conversations.SuggestConversationSummary.", "id": "GoogleCloudDialogflowV2SuggestConversationSummaryRequest", "properties": { + "assistQueryParams": { + "$ref": "GoogleCloudDialogflowV2AssistQueryParameters", + "description": "Parameters for a human assist query. Only used for POC/demo purpose." + }, "contextSize": { "description": "Max number of messages prior to and including [latest_message] to use as context when compiling the suggestion. By default 500 and at most 1000.", "format": "int32", @@ -16333,6 +17709,10 @@ "description": "The name of the answer record. Format: \"projects//answerRecords/\"", "type": "string" }, + "baselineModelVersion": { + "description": "The baseline model version used to generate this summary. It is empty if a baseline model was not used to generate this summary.", + "type": "string" + }, "text": { "description": "The summary content that is concatenated into one string.", "type": "string" @@ -16444,19 +17824,32 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model for chat.", - "Run smart reply model for chat." + "Run smart reply model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } }, "type": "object" }, + "GoogleCloudDialogflowV2SuggestionInput": { + "description": "Represents the selection of a suggestion.", + "id": "GoogleCloudDialogflowV2SuggestionInput", + "properties": { + "answerRecord": { + "description": "Required. The ID of a suggestion selected by the human agent. The suggestion(s) were generated in a previous call to request Dialogflow assist. The format is: `projects//locations//answerRecords/` where is an alphanumeric string.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2SuggestionResult": { "description": "One response of different type of suggestion response which is used in the response of Participants.AnalyzeContent and Participants.AnalyzeContent, as well as HumanAgentAssistantEvent.", "id": "GoogleCloudDialogflowV2SuggestionResult", @@ -16514,7 +17907,7 @@ "type": "object" }, "GoogleCloudDialogflowV2TextInput": { - "description": "============================================================================ Auxiliary proto messages. Represents the natural language text to be processed.", + "description": "Auxiliary proto messages. Represents the natural language text to be processed.", "id": "GoogleCloudDialogflowV2TextInput", "properties": { "languageCode": { @@ -16604,7 +17997,7 @@ "id": "GoogleCloudDialogflowV2ValidationError", "properties": { "entries": { - "description": "The names of the entries that the error is associated with. Format: - \"projects//agent\", if the error is associated with the entire agent. - \"projects//agent/intents/\", if the error is associated with certain intents. - \"projects//agent/intents//trainingPhrases/\", if the error is associated with certain intent training phrases. - \"projects//agent/intents//parameters/\", if the error is associated with certain intent parameters. - \"projects//agent/entities/\", if the error is associated with certain entities.", + "description": "The names of the entries that the error is associated with. Format: - `projects//agent`, if the error is associated with the entire agent. - `projects//agent/intents/`, if the error is associated with certain intents. - `projects//agent/intents//trainingPhrases/`, if the error is associated with certain intent training phrases. - `projects//agent/intents//parameters/`, if the error is associated with certain intent parameters. - `projects//agent/entities/`, if the error is associated with certain entities.", "items": { "type": "string" }, @@ -16908,14 +18301,18 @@ "ARTICLE_SUGGESTION", "FAQ", "SMART_REPLY", - "CONVERSATION_SUMMARIZATION" + "DIALOGFLOW_ASSIST", + "CONVERSATION_SUMMARIZATION", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model.", "Run smart reply model for chat.", - "Run conversation summarization model for chat." + "Run Dialogflow assist model for chat, which will return automated agent response as suggestion.", + "Run conversation summarization model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } @@ -16932,7 +18329,7 @@ "type": "integer" }, "name": { - "description": "Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", + "description": "Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", "type": "string" }, "parameters": { @@ -16940,7 +18337,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" } }, @@ -16985,6 +18382,25 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1DialogflowAssistAnswer": { + "description": "Represents a Dialogflow assist answer.", + "id": "GoogleCloudDialogflowV2beta1DialogflowAssistAnswer", + "properties": { + "answerRecord": { + "description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", + "type": "string" + }, + "intentSuggestion": { + "$ref": "GoogleCloudDialogflowV2beta1IntentSuggestion", + "description": "An intent suggestion generated from conversation." + }, + "queryResult": { + "$ref": "GoogleCloudDialogflowV2beta1QueryResult", + "description": "Result from v2 agent." + } + }, + "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", @@ -17074,7 +18490,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" } }, @@ -17147,7 +18563,7 @@ "id": "GoogleCloudDialogflowV2beta1GcsDestination", "properties": { "uri": { - "description": "Required. The Google Cloud Storage URIs for the output. A URI is of the form: gs://bucket/object-prefix-or-name Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", + "description": "Required. The Google Cloud Storage URIs for the output. A URI is of the form: `gs://bucket/object-prefix-or-name` Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", "type": "string" } }, @@ -17280,6 +18696,7 @@ "type": "boolean" }, "mlEnabled": { + "deprecated": true, "description": "Optional. Indicates whether Machine Learning is enabled for the intent. Note: If `ml_enabled` setting is set to false, then this intent is not taken into account during inference in `ML ONLY` match mode. Also, auto-markup in the UI is turned off. DEPRECATED! Please use `ml_disabled` field instead. NOTE: If both `ml_enabled` and `ml_disabled` are either not set or false, then the default value is determined as follows: - Before April 15th, 2018 the default is: ml_enabled = false / ml_disabled = true. - After April 15th, 2018 the default is: ml_enabled = true / ml_disabled = false.", "type": "boolean" }, @@ -18335,6 +19752,25 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1IntentSuggestion": { + "description": "Represents an intent suggestion.", + "id": "GoogleCloudDialogflowV2beta1IntentSuggestion", + "properties": { + "description": { + "description": "Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters.", + "type": "string" + }, + "displayName": { + "description": "The display name of the intent.", + "type": "string" + }, + "intentV2": { + "description": "The unique identifier of this intent. Format: `projects//locations//agent/intents/`.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2beta1IntentTrainingPhrase": { "description": "Represents an example that the agent is trained on.", "id": "GoogleCloudDialogflowV2beta1IntentTrainingPhrase", @@ -18362,6 +19798,11 @@ "EXAMPLE", "TEMPLATE" ], + "enumDeprecated": [ + false, + false, + true + ], "enumDescriptions": [ "Not specified. This value should never be used.", "Examples do not contain @-prefixed entity type names, but example parts can be annotated with entity types.", @@ -18648,7 +20089,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" }, "queryText": { @@ -18775,14 +20216,18 @@ "ARTICLE_SUGGESTION", "FAQ", "SMART_REPLY", - "CONVERSATION_SUMMARIZATION" + "DIALOGFLOW_ASSIST", + "CONVERSATION_SUMMARIZATION", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model.", "Run smart reply model for chat.", - "Run conversation summarization model for chat." + "Run Dialogflow assist model for chat, which will return automated agent response as suggestion.", + "Run conversation summarization model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } @@ -18832,6 +20277,29 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse": { + "description": "The response message for Participants.SuggestDialogflowAssists.", + "id": "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse", + "properties": { + "contextSize": { + "description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestDialogflowAssistsRequest.context_size field in the request if there aren't that many messages in the conversation.", + "format": "int32", + "type": "integer" + }, + "dialogflowAssistAnswers": { + "description": "Output only. Multiple reply options provided by Dialogflow assist service. The order is based on the rank of the model prediction.", + "items": { + "$ref": "GoogleCloudDialogflowV2beta1DialogflowAssistAnswer" + }, + "type": "array" + }, + "latestMessage": { + "description": "The name of the latest conversation message used to suggest answer. Format: `projects//locations//conversations//messages/`.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2beta1SuggestFaqAnswersResponse": { "description": "The request message for Participants.SuggestFaqAnswers.", "id": "GoogleCloudDialogflowV2beta1SuggestFaqAnswersResponse", @@ -18890,6 +20358,14 @@ "$ref": "GoogleCloudDialogflowV2beta1SuggestArticlesResponse", "description": "SuggestArticlesResponse if request is for ARTICLE_SUGGESTION." }, + "suggestDialogflowAssistsResponse": { + "$ref": "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse", + "description": "SuggestDialogflowAssistsResponse if request is for DIALOGFLOW_ASSIST." + }, + "suggestEntityExtractionResponse": { + "$ref": "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse", + "description": "SuggestDialogflowAssistsResponse if request is for ENTITY_EXTRACTION." + }, "suggestFaqAnswersResponse": { "$ref": "GoogleCloudDialogflowV2beta1SuggestFaqAnswersResponse", "description": "SuggestFaqAnswersResponse if request is for FAQ_ANSWER." @@ -19121,6 +20597,16 @@ "description": "Whether turn resulted in End Session page.", "type": "boolean" }, + "sentimentMagnitude": { + "description": "Sentiment magnitude of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, + "sentimentScore": { + "description": "Sentiment score of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, "triggeredAbandonmentEvent": { "description": "Whether agent has triggered the event corresponding to user abandoning the conversation.", "type": "boolean" @@ -19169,7 +20655,7 @@ "type": "object" }, "GoogleCloudLocationLocation": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "GoogleCloudLocationLocation", "properties": { "displayName": { @@ -19249,7 +20735,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/etc/api/dialogflow/v2beta1/dialogflow-api.json b/etc/api/dialogflow/v2beta1/dialogflow-api.json index 00cecc4b48..d9e0cf37f0 100644 --- a/etc/api/dialogflow/v2beta1/dialogflow-api.json +++ b/etc/api/dialogflow/v2beta1/dialogflow-api.json @@ -1230,7 +1230,7 @@ ], "parameters": { "name": { - "description": "Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", + "description": "Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", "location": "path", "pattern": "^projects/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+/contexts/[^/]+$", "required": true, @@ -2261,7 +2261,7 @@ ], "parameters": { "name": { - "description": "Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", + "description": "Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", "location": "path", "pattern": "^projects/[^/]+/agent/sessions/[^/]+/contexts/[^/]+$", "required": true, @@ -2609,6 +2609,7 @@ "answerRecords": { "methods": { "get": { + "deprecated": true, "description": "Deprecated. Retrieves a specific answer record.", "flatPath": "v2beta1/projects/{projectsId}/answerRecords/{answerRecordsId}", "httpMethod": "GET", @@ -2644,6 +2645,7 @@ ], "parameters": { "filter": { + "deprecated": true, "description": "Optional. Filters to restrict results to specific answer records. For more information about filtering, see [API Filtering](https://aip.dev/160).", "location": "query", "type": "string" @@ -2969,7 +2971,7 @@ ], "parameters": { "conversationId": { - "description": "Optional. Identifier of the conversation. Generally it's auto generated by Google. Only set it if you cannot wait for the response to return a auto-generated one to you. The conversation ID must be compliant with the regression fomula \"a-zA-Z*\" with the characters length in range of [3,64]. If the field is provided, the caller is resposible for 1. the uniqueness of the ID, otherwise the request will be rejected. 2. the consistency for whether to use custom ID or not under a project to better ensure uniqueness.", + "description": "Optional. Identifier of the conversation. Generally it's auto generated by Google. Only set it if you cannot wait for the response to return a auto-generated one to you. The conversation ID must be compliant with the regression fomula `a-zA-Z*` with the characters length in range of [3,64]. If the field is provided, the caller is resposible for 1. the uniqueness of the ID, otherwise the request will be rejected. 2. the consistency for whether to use custom ID or not under a project to better ensure uniqueness.", "location": "query", "type": "string" }, @@ -3301,6 +3303,7 @@ "suggestions": { "methods": { "compile": { + "deprecated": true, "description": "Deprecated. use SuggestArticles and SuggestFaqAnswers instead. Gets suggestions for a participant based on specific historical messages. Note that ListSuggestions will only list the auto-generated suggestions, while CompileSuggestion will try to compile suggestion based on the provided conversation context in the real time.", "flatPath": "v2beta1/projects/{projectsId}/conversations/{conversationsId}/participants/{participantsId}/suggestions:compile", "httpMethod": "POST", @@ -3330,6 +3333,7 @@ ] }, "list": { + "deprecated": true, "description": "Deprecated: Use inline suggestion, event based suggestion or Suggestion* API instead. See HumanAgentAssistantConfig.name for more details. Removal Date: 2020-09-01. Retrieves suggestions for live agents. This method should be used by human agent client software to fetch auto generated suggestions in real-time, while the conversation with an end user is in progress. The functionality is implemented in terms of the [list pagination](https://cloud.google.com/apis/design/design_patterns#list_pagination) design pattern. The client app should use the `next_page_token` field to fetch the next batch of suggestions. `suggestions` are sorted by `create_time` in descending order. To fetch latest suggestion, just set `page_size` to 1. To fetch new suggestions without duplication, send request with filter `create_time_epoch_microseconds > [first item's create_time of previous request]` and empty page_token.", "flatPath": "v2beta1/projects/{projectsId}/conversations/{conversationsId}/participants/{participantsId}/suggestions", "httpMethod": "GET", @@ -3464,6 +3468,35 @@ }, "suggestions": { "methods": { + "searchKnowledge": { + "description": "Get answers for the given query based on knowledge documents.", + "flatPath": "v2beta1/projects/{projectsId}/conversations/{conversationsId}/suggestions:searchKnowledge", + "httpMethod": "POST", + "id": "dialogflow.projects.conversations.suggestions.searchKnowledge", + "parameterOrder": [ + "conversation" + ], + "parameters": { + "conversation": { + "description": "The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.", + "location": "path", + "pattern": "^projects/[^/]+/conversations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2beta1/{+conversation}/suggestions:searchKnowledge", + "request": { + "$ref": "GoogleCloudDialogflowV2beta1SearchKnowledgeRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowV2beta1SearchKnowledgeResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, "suggestConversationSummary": { "description": "Suggest summary for a conversation based on specific historical messages. The range of the messages to be used for summary can be specified in the request.", "flatPath": "v2beta1/projects/{projectsId}/conversations/{conversationsId}/suggestions:suggestConversationSummary", @@ -5081,7 +5114,7 @@ ], "parameters": { "name": { - "description": "Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", + "description": "Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+/contexts/[^/]+$", "required": true, @@ -5747,7 +5780,7 @@ ], "parameters": { "name": { - "description": "Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", + "description": "Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/agent/sessions/[^/]+/contexts/[^/]+$", "required": true, @@ -6095,6 +6128,7 @@ "answerRecords": { "methods": { "get": { + "deprecated": true, "description": "Deprecated. Retrieves a specific answer record.", "flatPath": "v2beta1/projects/{projectsId}/locations/{locationsId}/answerRecords/{answerRecordsId}", "httpMethod": "GET", @@ -6130,6 +6164,7 @@ ], "parameters": { "filter": { + "deprecated": true, "description": "Optional. Filters to restrict results to specific answer records. For more information about filtering, see [API Filtering](https://aip.dev/160).", "location": "query", "type": "string" @@ -6455,7 +6490,7 @@ ], "parameters": { "conversationId": { - "description": "Optional. Identifier of the conversation. Generally it's auto generated by Google. Only set it if you cannot wait for the response to return a auto-generated one to you. The conversation ID must be compliant with the regression fomula \"a-zA-Z*\" with the characters length in range of [3,64]. If the field is provided, the caller is resposible for 1. the uniqueness of the ID, otherwise the request will be rejected. 2. the consistency for whether to use custom ID or not under a project to better ensure uniqueness.", + "description": "Optional. Identifier of the conversation. Generally it's auto generated by Google. Only set it if you cannot wait for the response to return a auto-generated one to you. The conversation ID must be compliant with the regression fomula `a-zA-Z*` with the characters length in range of [3,64]. If the field is provided, the caller is resposible for 1. the uniqueness of the ID, otherwise the request will be rejected. 2. the consistency for whether to use custom ID or not under a project to better ensure uniqueness.", "location": "query", "type": "string" }, @@ -6879,6 +6914,35 @@ }, "suggestions": { "methods": { + "searchKnowledge": { + "description": "Get answers for the given query based on knowledge documents.", + "flatPath": "v2beta1/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}/suggestions:searchKnowledge", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.conversations.suggestions.searchKnowledge", + "parameterOrder": [ + "conversation" + ], + "parameters": { + "conversation": { + "description": "The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2beta1/{+conversation}/suggestions:searchKnowledge", + "request": { + "$ref": "GoogleCloudDialogflowV2beta1SearchKnowledgeRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowV2beta1SearchKnowledgeResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, "suggestConversationSummary": { "description": "Suggest summary for a conversation based on specific historical messages. The range of the messages to be used for summary can be specified in the request.", "flatPath": "v2beta1/projects/{projectsId}/locations/{locationsId}/conversations/{conversationsId}/suggestions:suggestConversationSummary", @@ -7361,7 +7425,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v2beta1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "dialogflow.projects.locations.operations.list", @@ -7403,6 +7467,68 @@ ] } } + }, + "suggestions": { + "methods": { + "generateStatelessSummary": { + "description": "Generates and returns a summary for a conversation that does not have a resource created for it.", + "flatPath": "v2beta1/projects/{projectsId}/locations/{locationsId}/suggestions:generateStatelessSummary", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.suggestions.generateStatelessSummary", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource to charge for the Summary's generation. Format: `projects//locations/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2beta1/{+parent}/suggestions:generateStatelessSummary", + "request": { + "$ref": "GoogleCloudDialogflowV2beta1GenerateStatelessSummaryRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowV2beta1GenerateStatelessSummaryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, + "searchKnowledge": { + "description": "Get answers for the given query based on knowledge documents.", + "flatPath": "v2beta1/projects/{projectsId}/locations/{locationsId}/suggestions:searchKnowledge", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.suggestions.searchKnowledge", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2beta1/{+parent}/suggestions:searchKnowledge", + "request": { + "$ref": "GoogleCloudDialogflowV2beta1SearchKnowledgeRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowV2beta1SearchKnowledgeResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + } + } } } }, @@ -7461,7 +7587,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v2beta1/projects/{projectsId}/operations", "httpMethod": "GET", "id": "dialogflow.projects.operations.list", @@ -7503,19 +7629,135 @@ ] } } + }, + "suggestions": { + "methods": { + "generateStatelessSummary": { + "description": "Generates and returns a summary for a conversation that does not have a resource created for it.", + "flatPath": "v2beta1/projects/{projectsId}/suggestions:generateStatelessSummary", + "httpMethod": "POST", + "id": "dialogflow.projects.suggestions.generateStatelessSummary", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource to charge for the Summary's generation. Format: `projects//locations/`.", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2beta1/{+parent}/suggestions:generateStatelessSummary", + "request": { + "$ref": "GoogleCloudDialogflowV2beta1GenerateStatelessSummaryRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowV2beta1GenerateStatelessSummaryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, + "searchKnowledge": { + "description": "Get answers for the given query based on knowledge documents.", + "flatPath": "v2beta1/projects/{projectsId}/suggestions:searchKnowledge", + "httpMethod": "POST", + "id": "dialogflow.projects.suggestions.searchKnowledge", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2beta1/{+parent}/suggestions:searchKnowledge", + "request": { + "$ref": "GoogleCloudDialogflowV2beta1SearchKnowledgeRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowV2beta1SearchKnowledgeResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + } + } } } } }, - "revision": "20230110", + "revision": "20240227", "rootUrl": "https://dialogflow.googleapis.com/", "schemas": { + "GoogleCloudDialogflowCxV3AdvancedSettings": { + "description": "Hierarchical advanced settings for agent/flow/page/fulfillment/parameter. Settings exposed at lower level overrides the settings exposed at higher level. Overriding occurs at the sub-setting level. For example, the playback_interruption_settings at fulfillment level only overrides the playback_interruption_settings at the agent level, leaving other settings at the agent level unchanged. DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter.", + "id": "GoogleCloudDialogflowCxV3AdvancedSettings", + "properties": { + "audioExportGcsDestination": { + "$ref": "GoogleCloudDialogflowCxV3GcsDestination", + "description": "If present, incoming audio is exported by Dialogflow to the configured Google Cloud Storage destination. Exposed at the following levels: - Agent level - Flow level" + }, + "dtmfSettings": { + "$ref": "GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings", + "description": "Settings for DTMF. Exposed at the following levels: - Agent level - Flow level - Page level - Parameter level." + }, + "loggingSettings": { + "$ref": "GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings", + "description": "Settings for logging. Settings for Dialogflow History, Contact Center messages, StackDriver logs, and speech logging. Exposed at the following levels: - Agent level." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings": { + "description": "Define behaviors for DTMF (dual tone multi frequency).", + "id": "GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings", + "properties": { + "enabled": { + "description": "If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a \"3\" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).", + "type": "boolean" + }, + "finishDigit": { + "description": "The digit that terminates a DTMF digit sequence.", + "type": "string" + }, + "maxDigits": { + "description": "Max length of DTMF digits.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings": { + "description": "Define behaviors on logging.", + "id": "GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings", + "properties": { + "enableInteractionLogging": { + "description": "If true, DF Interaction logging is currently enabled.", + "type": "boolean" + }, + "enableStackdriverLogging": { + "description": "If true, StackDriver logging is currently enabled.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3AudioInput": { "description": "Represents the natural speech audio to be processed.", "id": "GoogleCloudDialogflowCxV3AudioInput", "properties": { "audio": { - "description": "The natural language speech audio to be processed. A single request can contain up to 1 minute of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", + "description": "The natural language speech audio to be processed. A single request can contain up to 2 minutes of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", "format": "byte", "type": "string" }, @@ -7526,6 +7768,23 @@ }, "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 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": { + "description": "Duration that is not eligible for barge-in at the beginning of the input audio.", + "format": "google-duration", + "type": "string" + }, + "totalDuration": { + "description": "Total duration for the playback at the beginning of the input audio.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3BatchRunTestCasesMetadata": { "description": "Metadata returned for the TestCases.BatchRunTestCases long running operation.", "id": "GoogleCloudDialogflowCxV3BatchRunTestCasesMetadata", @@ -7716,6 +7975,33 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3DataStoreConnection": { + "description": "A data store connection. It represents a data store in Discovery Engine and the type of the contents it contains.", + "id": "GoogleCloudDialogflowCxV3DataStoreConnection", + "properties": { + "dataStore": { + "description": "The full name of the referenced data store. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}`", + "type": "string" + }, + "dataStoreType": { + "description": "The type of the connected data store.", + "enum": [ + "DATA_STORE_TYPE_UNSPECIFIED", + "PUBLIC_WEB", + "UNSTRUCTURED", + "STRUCTURED" + ], + "enumDescriptions": [ + "Not specified. This value indicates that the data store type is not specified, so it will not be used during search.", + "A data store that contains public web content.", + "A data store that contains unstructured private data.", + "A data store that contains structured data (for example FAQ)." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3DeleteDocumentOperationMetadata": { "description": "Metadata for DeleteDocument operation.", "id": "GoogleCloudDialogflowCxV3DeleteDocumentOperationMetadata", @@ -7798,7 +8084,7 @@ "type": "string" }, "versionConfigs": { - "description": "Required. A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", + "description": "A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", "items": { "$ref": "GoogleCloudDialogflowCxV3EnvironmentVersionConfig" }, @@ -7902,12 +8188,37 @@ "id": "GoogleCloudDialogflowCxV3ExportAgentResponse", "properties": { "agentContent": { - "description": "Uncompressed raw byte content for agent.", + "description": "Uncompressed raw byte content for agent. This field is populated if none of `agent_uri` and `git_destination` are specified in ExportAgentRequest.", "format": "byte", "type": "string" }, "agentUri": { - "description": "The URI to a file containing the exported agent. This field is populated only if `agent_uri` is specified in ExportAgentRequest.", + "description": "The URI to a file containing the exported agent. This field is populated if `agent_uri` is specified in ExportAgentRequest.", + "type": "string" + }, + "commitSha": { + "description": "Commit SHA of the git push. This field is populated if `git_destination` is specified in ExportAgentRequest.", + "type": "string" + } + }, + "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" } }, @@ -7929,6 +8240,27 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3ExportIntentsMetadata": { + "description": "Metadata returned for the Intents.ExportIntents long running operation.", + "id": "GoogleCloudDialogflowCxV3ExportIntentsMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ExportIntentsResponse": { + "description": "The response message for Intents.ExportIntents.", + "id": "GoogleCloudDialogflowCxV3ExportIntentsResponse", + "properties": { + "intentsContent": { + "$ref": "GoogleCloudDialogflowCxV3InlineDestination", + "description": "Uncompressed byte content for intents. This field is populated only if `intents_content_inline` is set to true in ExportIntentsRequest." + }, + "intentsUri": { + "description": "The URI to a file containing the exported intents. This field is populated only if `intents_uri` is specified in ExportIntentsRequest.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3ExportTestCasesMetadata": { "description": "Metadata returned for the TestCases.ExportTestCases long running operation. This message currently has no fields.", "id": "GoogleCloudDialogflowCxV3ExportTestCasesMetadata", @@ -7969,6 +8301,10 @@ "description": "Represents a form parameter.", "id": "GoogleCloudDialogflowCxV3FormParameter", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", + "description": "Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level." + }, "defaultValue": { "description": "The default value of an optional parameter. If the parameter is required, the default value will be ignored.", "type": "any" @@ -8022,6 +8358,10 @@ "description": "A fulfillment can do one or more of the following actions at the same time: * Generate rich message responses. * Set parameter values. * Call the webhook. Fulfillments can be called at various stages in the Page or Form lifecycle. For example, when a DetectIntentRequest drives a session to enter a new page, the page's entry fulfillment can add a static response to the QueryResult in the returning DetectIntentResponse, call the webhook (for example, to load user data from a database), or both.", "id": "GoogleCloudDialogflowCxV3Fulfillment", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", + "description": "Hierarchical advanced settings for this fulfillment. The settings exposed at the lower level overrides the settings exposed at the higher level." + }, "conditionalCases": { "description": "Conditional cases for this fulfillment.", "items": { @@ -8029,6 +8369,10 @@ }, "type": "array" }, + "enableGenerativeFallback": { + "description": "If the flag is true, the agent will utilize LLM to generate a text response. If LLM generation fails, the defined responses in the fulfillment will be respected. This flag is only useful for fulfillments associated with no-match event handlers.", + "type": "boolean" + }, "messages": { "description": "The list of rich message responses to present to the user.", "items": { @@ -8120,6 +8464,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3GcsDestination": { + "description": "Google Cloud Storage location for a Dialogflow operation that writes or exports objects (e.g. exported agent or transcripts) outside of Dialogflow.", + "id": "GoogleCloudDialogflowCxV3GcsDestination", + "properties": { + "uri": { + "description": "Required. The Google Cloud Storage URI for the exported objects. A URI is of the form: `gs://bucket/object-name-or-prefix` Whether a full object name, or just a prefix, its usage depends on the Dialogflow operation.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3GenericKnowledgeOperationMetadata": { "description": "Metadata in google::longrunning::Operation for Knowledge operations.", "id": "GoogleCloudDialogflowCxV3GenericKnowledgeOperationMetadata", @@ -8169,6 +8524,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", @@ -8180,6 +8580,51 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3ImportIntentsMetadata": { + "description": "Metadata returned for the Intents.ImportIntents long running operation.", + "id": "GoogleCloudDialogflowCxV3ImportIntentsMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ImportIntentsResponse": { + "description": "The response message for Intents.ImportIntents.", + "id": "GoogleCloudDialogflowCxV3ImportIntentsResponse", + "properties": { + "conflictingResources": { + "$ref": "GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources", + "description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportIntentsRequest." + }, + "intents": { + "description": "The unique identifier of the imported intents. Format: `projects//locations//agents//intents/`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources": { + "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": "GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources", + "properties": { + "entityDisplayNames": { + "description": "Display names of conflicting entities.", + "items": { + "type": "string" + }, + "type": "array" + }, + "intentDisplayNames": { + "description": "Display names of conflicting intents.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3ImportTestCasesMetadata": { "description": "Metadata returned for the TestCases.ImportTestCases long running operation.", "id": "GoogleCloudDialogflowCxV3ImportTestCasesMetadata", @@ -8208,6 +8653,19 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3InlineDestination": { + "description": "Inline destination for a Dialogflow operation that writes or exports objects (e.g. intents) outside of Dialogflow.", + "id": "GoogleCloudDialogflowCxV3InlineDestination", + "properties": { + "content": { + "description": "Output only. The uncompressed byte content for the objects. Only populated in responses.", + "format": "byte", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3InputAudioConfig": { "description": "Instructs the speech recognizer on how to process the audio content.", "id": "GoogleCloudDialogflowCxV3InputAudioConfig", @@ -8236,12 +8694,16 @@ ], "type": "string" }, + "bargeInConfig": { + "$ref": "GoogleCloudDialogflowCxV3BargeInConfig", + "description": "Configuration of barge-in behavior during the streaming of input audio." + }, "enableWordInfo": { "description": "Optional. If `true`, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words, e.g. start and end time offsets. If false or unspecified, Speech doesn't return any word-level information.", "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.", + "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": { @@ -8254,12 +8716,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": { @@ -8400,10 +8866,48 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3KnowledgeConnectorSettings": { + "description": "The Knowledge Connector settings for this page or flow. This includes information such as the attached Knowledge Bases, and the way to execute fulfillment.", + "id": "GoogleCloudDialogflowCxV3KnowledgeConnectorSettings", + "properties": { + "dataStoreConnections": { + "description": "Optional. List of related data store connections.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3DataStoreConnection" + }, + "type": "array" + }, + "enabled": { + "description": "Whether Knowledge Connector is enabled or not.", + "type": "boolean" + }, + "targetFlow": { + "description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", + "type": "string" + }, + "targetPage": { + "description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", + "type": "string" + }, + "triggerFulfillment": { + "$ref": "GoogleCloudDialogflowCxV3Fulfillment", + "description": "The fulfillment to be triggered. When the answers from the Knowledge Connector are selected by Dialogflow, you can utitlize the request scoped parameter `$request.knowledge.answers` (contains up to the 5 highest confidence answers) and `$request.knowledge.questions` (contains the corresponding questions) to construct the fulfillment." + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3Page": { "description": "A Dialogflow CX conversation (session) can be described and visualized as a state machine. The states of a CX session are represented by pages. For each flow, you define many pages, where your combined pages can handle a complete conversation on the topics the flow is designed for. At any given moment, exactly one page is the current page, the current page is considered active, and the flow associated with that page is considered active. Every flow has a special start page. When a flow initially becomes active, the start page page becomes the current page. For each conversational turn, the current page will either stay the same or transition to another page. You configure each page to collect information from the end-user that is relevant for the conversational state represented by the page. For more information, see the [Page guide](https://cloud.google.com/dialogflow/cx/docs/concept/page).", "id": "GoogleCloudDialogflowCxV3Page", "properties": { + "advancedSettings": { + "$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" @@ -8423,12 +8927,16 @@ "$ref": "GoogleCloudDialogflowCxV3Form", "description": "The form associated with the page, used for collecting parameters relevant to the page." }, + "knowledgeConnectorSettings": { + "$ref": "GoogleCloudDialogflowCxV3KnowledgeConnectorSettings", + "description": "Optional. Knowledge connector configuration." + }, "name": { "description": "The unique identifier of the page. Required for the Pages.UpdatePage method. Pages.CreatePage populates the name automatically. Format: `projects//locations//agents//flows//pages/`.", "type": "string" }, "transitionRouteGroups": { - "description": "Ordered list of `TransitionRouteGroups` associated with the page. Transition route groups must be unique within a page. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/`.", + "description": "Ordered list of `TransitionRouteGroups` added to the page. Transition route groups must be unique within a page. If the page links both flow-level transition route groups and agent-level transition route groups, the flow-level ones will have higher priority and will be put before the agent-level ones. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups.", "items": { "type": "string" }, @@ -8517,7 +9025,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. ", + "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": { @@ -8575,6 +9083,10 @@ "description": "Output only. A signal that indicates the interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only when the conversation reaches `END_SESSION` page. It is not supposed to be defined by the user. It's guaranteed that there is at most one such message in each response.", "readOnly": true }, + "knowledgeInfoCard": { + "$ref": "GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard", + "description": "Represents info card for knowledge answers, to be better rendered in Dialogflow Messenger." + }, "liveAgentHandoff": { "$ref": "GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff", "description": "Hands off conversation to a human agent." @@ -8600,6 +9112,22 @@ "$ref": "GoogleCloudDialogflowCxV3ResponseMessagePlayAudio", "description": "Signal that the client should play an audio clip hosted at a client-specific URI. Dialogflow uses this to construct mixed_audio. However, Dialogflow itself does not try to read or process the URI in any way." }, + "responseType": { + "description": "Response type.", + "enum": [ + "RESPONSE_TYPE_UNSPECIFIED", + "ENTRY_PROMPT", + "PARAMETER_PROMPT", + "HANDLER_PROMPT" + ], + "enumDescriptions": [ + "Not specified.", + "The response is from an entry prompt in the page.", + "The response is from form-filling prompt in the page.", + "The response is from a transition route or an event handler in the page or flow or transition route group." + ], + "type": "string" + }, "telephonyTransferCall": { "$ref": "GoogleCloudDialogflowCxV3ResponseMessageTelephonyTransferCall", "description": "A signal that the client should transfer the phone call connected to this agent to a third-party endpoint." @@ -8632,6 +9160,12 @@ "properties": {}, "type": "object" }, + "GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard": { + "description": "Represents info card response. If the response contains generative knowledge prediction, Dialogflow will return a payload with Infobot Messenger compatible info card. Otherwise, the info card response is skipped.", + "id": "GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard", + "properties": {}, + "type": "object" + }, "GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff": { "description": "Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates something went extremely wrong in the conversation. * In a webhook response when you determine that the customer issue can only be handled by a human.", "id": "GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff", @@ -8958,7 +9492,7 @@ "id": "GoogleCloudDialogflowCxV3TestRunDifference", "properties": { "description": { - "description": "A description of the diff, showing the actual output vs expected output.", + "description": "A human readable description of the diff, showing the actual output vs expected output.", "type": "string" }, "type": { @@ -8968,14 +9502,16 @@ "INTENT", "PAGE", "PARAMETERS", - "UTTERANCE" + "UTTERANCE", + "FLOW" ], "enumDescriptions": [ "Should never be used.", "The intent.", "The page.", "The parameters.", - "The message utterance." + "The message utterance.", + "The flow." ], "type": "string" } @@ -8987,7 +9523,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" } }, @@ -9001,6 +9537,10 @@ "description": "The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", "type": "string" }, + "description": { + "description": "Optional. The description of the transition route. The maximum length is 500 characters.", + "type": "string" + }, "intent": { "description": "The unique identifier of an Intent. Format: `projects//locations//agents//intents/`. Indicates that the transition can only happen when the given intent is matched. At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", "type": "string" @@ -9066,6 +9606,16 @@ "description": "Whether turn resulted in End Session page.", "type": "boolean" }, + "sentimentMagnitude": { + "description": "Sentiment magnitude of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, + "sentimentScore": { + "description": "Sentiment score of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, "userEscalated": { "description": "Whether user was specifically asking for a live agent.", "type": "boolean" @@ -9135,10 +9685,46 @@ }, "type": "array" }, + "httpMethod": { + "description": "Optional. HTTP method for the flexible webhook calls. Standard webhook always uses POST.", + "enum": [ + "HTTP_METHOD_UNSPECIFIED", + "POST", + "GET", + "HEAD", + "PUT", + "DELETE", + "PATCH", + "OPTIONS" + ], + "enumDescriptions": [ + "HTTP method not specified.", + "HTTP POST Method.", + "HTTP GET Method.", + "HTTP HEAD Method.", + "HTTP PUT Method.", + "HTTP DELETE Method.", + "HTTP PATCH Method.", + "HTTP OPTIONS Method." + ], + "type": "string" + }, + "parameterMapping": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Maps the values extracted from specific fields of the flexible webhook response into session parameters. - Key: session parameter name - Value: field path in the webhook response", + "type": "object" + }, "password": { + "deprecated": true, "description": "The password for HTTP Basic authentication.", "type": "string" }, + "requestBody": { + "description": "Optional. Defines a custom JSON object as request body to send to flexible webhook.", + "type": "string" + }, "requestHeaders": { "additionalProperties": { "type": "string" @@ -9151,8 +9737,23 @@ "type": "string" }, "username": { + "deprecated": true, "description": "The user name for HTTP Basic authentication.", "type": "string" + }, + "webhookType": { + "description": "Optional. Type of the webhook.", + "enum": [ + "WEBHOOK_TYPE_UNSPECIFIED", + "STANDARD", + "FLEXIBLE" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Represents a standard webhook.", + "Represents a flexible webhook." + ], + "type": "string" } }, "type": "object" @@ -9165,6 +9766,10 @@ "description": "Always present. The unique identifier of the DetectIntentResponse that will be returned to the API caller.", "type": "string" }, + "dtmfDigits": { + "description": "If DTMF was provided as input, this field will contain the DTMF digits.", + "type": "string" + }, "fulfillmentInfo": { "$ref": "GoogleCloudDialogflowCxV3WebhookRequestFulfillmentInfo", "description": "Always present. Information about the fulfillment that triggered this webhook call." @@ -9371,12 +9976,66 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1AdvancedSettings": { + "description": "Hierarchical advanced settings for agent/flow/page/fulfillment/parameter. Settings exposed at lower level overrides the settings exposed at higher level. Overriding occurs at the sub-setting level. For example, the playback_interruption_settings at fulfillment level only overrides the playback_interruption_settings at the agent level, leaving other settings at the agent level unchanged. DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter.", + "id": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", + "properties": { + "audioExportGcsDestination": { + "$ref": "GoogleCloudDialogflowCxV3beta1GcsDestination", + "description": "If present, incoming audio is exported by Dialogflow to the configured Google Cloud Storage destination. Exposed at the following levels: - Agent level - Flow level" + }, + "dtmfSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings", + "description": "Settings for DTMF. Exposed at the following levels: - Agent level - Flow level - Page level - Parameter level." + }, + "loggingSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings", + "description": "Settings for logging. Settings for Dialogflow History, Contact Center messages, StackDriver logs, and speech logging. Exposed at the following levels: - Agent level." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings": { + "description": "Define behaviors for DTMF (dual tone multi frequency).", + "id": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings", + "properties": { + "enabled": { + "description": "If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a \"3\" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).", + "type": "boolean" + }, + "finishDigit": { + "description": "The digit that terminates a DTMF digit sequence.", + "type": "string" + }, + "maxDigits": { + "description": "Max length of DTMF digits.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings": { + "description": "Define behaviors on logging.", + "id": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings", + "properties": { + "enableInteractionLogging": { + "description": "If true, DF Interaction logging is currently enabled.", + "type": "boolean" + }, + "enableStackdriverLogging": { + "description": "If true, StackDriver logging is currently enabled.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1AudioInput": { "description": "Represents the natural speech audio to be processed.", "id": "GoogleCloudDialogflowCxV3beta1AudioInput", "properties": { "audio": { - "description": "The natural language speech audio to be processed. A single request can contain up to 1 minute of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", + "description": "The natural language speech audio to be processed. A single request can contain up to 2 minutes of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", "format": "byte", "type": "string" }, @@ -9387,6 +10046,23 @@ }, "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 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": { + "description": "Duration that is not eligible for barge-in at the beginning of the input audio.", + "format": "google-duration", + "type": "string" + }, + "totalDuration": { + "description": "Total duration for the playback at the beginning of the input audio.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1BatchRunTestCasesMetadata": { "description": "Metadata returned for the TestCases.BatchRunTestCases long running operation.", "id": "GoogleCloudDialogflowCxV3beta1BatchRunTestCasesMetadata", @@ -9577,6 +10253,33 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1DataStoreConnection": { + "description": "A data store connection. It represents a data store in Discovery Engine and the type of the contents it contains.", + "id": "GoogleCloudDialogflowCxV3beta1DataStoreConnection", + "properties": { + "dataStore": { + "description": "The full name of the referenced data store. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}`", + "type": "string" + }, + "dataStoreType": { + "description": "The type of the connected data store.", + "enum": [ + "DATA_STORE_TYPE_UNSPECIFIED", + "PUBLIC_WEB", + "UNSTRUCTURED", + "STRUCTURED" + ], + "enumDescriptions": [ + "Not specified. This value indicates that the data store type is not specified, so it will not be used during search.", + "A data store that contains public web content.", + "A data store that contains unstructured private data.", + "A data store that contains structured data (for example FAQ)." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1DeleteDocumentOperationMetadata": { "description": "Metadata for DeleteDocument operation.", "id": "GoogleCloudDialogflowCxV3beta1DeleteDocumentOperationMetadata", @@ -9659,7 +10362,7 @@ "type": "string" }, "versionConfigs": { - "description": "Required. A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", + "description": "A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", "items": { "$ref": "GoogleCloudDialogflowCxV3beta1EnvironmentVersionConfig" }, @@ -9763,12 +10466,37 @@ "id": "GoogleCloudDialogflowCxV3beta1ExportAgentResponse", "properties": { "agentContent": { - "description": "Uncompressed raw byte content for agent.", + "description": "Uncompressed raw byte content for agent. This field is populated if none of `agent_uri` and `git_destination` are specified in ExportAgentRequest.", "format": "byte", "type": "string" }, "agentUri": { - "description": "The URI to a file containing the exported agent. This field is populated only if `agent_uri` is specified in ExportAgentRequest.", + "description": "The URI to a file containing the exported agent. This field is populated if `agent_uri` is specified in ExportAgentRequest.", + "type": "string" + }, + "commitSha": { + "description": "Commit SHA of the git push. This field is populated if `git_destination` is specified in ExportAgentRequest.", + "type": "string" + } + }, + "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" } }, @@ -9790,6 +10518,27 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ExportIntentsMetadata": { + "description": "Metadata returned for the Intents.ExportIntents long running operation.", + "id": "GoogleCloudDialogflowCxV3beta1ExportIntentsMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ExportIntentsResponse": { + "description": "The response message for Intents.ExportIntents.", + "id": "GoogleCloudDialogflowCxV3beta1ExportIntentsResponse", + "properties": { + "intentsContent": { + "$ref": "GoogleCloudDialogflowCxV3beta1InlineDestination", + "description": "Uncompressed byte content for intents. This field is populated only if `intents_content_inline` is set to true in ExportIntentsRequest." + }, + "intentsUri": { + "description": "The URI to a file containing the exported intents. This field is populated only if `intents_uri` is specified in ExportIntentsRequest.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ExportTestCasesMetadata": { "description": "Metadata returned for the TestCases.ExportTestCases long running operation. This message currently has no fields.", "id": "GoogleCloudDialogflowCxV3beta1ExportTestCasesMetadata", @@ -9830,6 +10579,10 @@ "description": "Represents a form parameter.", "id": "GoogleCloudDialogflowCxV3beta1FormParameter", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", + "description": "Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level." + }, "defaultValue": { "description": "The default value of an optional parameter. If the parameter is required, the default value will be ignored.", "type": "any" @@ -9883,6 +10636,10 @@ "description": "A fulfillment can do one or more of the following actions at the same time: * Generate rich message responses. * Set parameter values. * Call the webhook. Fulfillments can be called at various stages in the Page or Form lifecycle. For example, when a DetectIntentRequest drives a session to enter a new page, the page's entry fulfillment can add a static response to the QueryResult in the returning DetectIntentResponse, call the webhook (for example, to load user data from a database), or both.", "id": "GoogleCloudDialogflowCxV3beta1Fulfillment", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", + "description": "Hierarchical advanced settings for this fulfillment. The settings exposed at the lower level overrides the settings exposed at the higher level." + }, "conditionalCases": { "description": "Conditional cases for this fulfillment.", "items": { @@ -9890,6 +10647,10 @@ }, "type": "array" }, + "enableGenerativeFallback": { + "description": "If the flag is true, the agent will utilize LLM to generate a text response. If LLM generation fails, the defined responses in the fulfillment will be respected. This flag is only useful for fulfillments associated with no-match event handlers.", + "type": "boolean" + }, "messages": { "description": "The list of rich message responses to present to the user.", "items": { @@ -9981,6 +10742,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1GcsDestination": { + "description": "Google Cloud Storage location for a Dialogflow operation that writes or exports objects (e.g. exported agent or transcripts) outside of Dialogflow.", + "id": "GoogleCloudDialogflowCxV3beta1GcsDestination", + "properties": { + "uri": { + "description": "Required. The Google Cloud Storage URI for the exported objects. A URI is of the form: `gs://bucket/object-name-or-prefix` Whether a full object name, or just a prefix, its usage depends on the Dialogflow operation.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1GenericKnowledgeOperationMetadata": { "description": "Metadata in google::longrunning::Operation for Knowledge operations.", "id": "GoogleCloudDialogflowCxV3beta1GenericKnowledgeOperationMetadata", @@ -10030,6 +10802,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", @@ -10041,6 +10858,51 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ImportIntentsMetadata": { + "description": "Metadata returned for the Intents.ImportIntents long running operation.", + "id": "GoogleCloudDialogflowCxV3beta1ImportIntentsMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ImportIntentsResponse": { + "description": "The response message for Intents.ImportIntents.", + "id": "GoogleCloudDialogflowCxV3beta1ImportIntentsResponse", + "properties": { + "conflictingResources": { + "$ref": "GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources", + "description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportIntentsRequest." + }, + "intents": { + "description": "The unique identifier of the imported intents. Format: `projects//locations//agents//intents/`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources": { + "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": "GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources", + "properties": { + "entityDisplayNames": { + "description": "Display names of conflicting entities.", + "items": { + "type": "string" + }, + "type": "array" + }, + "intentDisplayNames": { + "description": "Display names of conflicting intents.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ImportTestCasesMetadata": { "description": "Metadata returned for the TestCases.ImportTestCases long running operation.", "id": "GoogleCloudDialogflowCxV3beta1ImportTestCasesMetadata", @@ -10069,6 +10931,19 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1InlineDestination": { + "description": "Inline destination for a Dialogflow operation that writes or exports objects (e.g. intents) outside of Dialogflow.", + "id": "GoogleCloudDialogflowCxV3beta1InlineDestination", + "properties": { + "content": { + "description": "Output only. The uncompressed byte content for the objects. Only populated in responses.", + "format": "byte", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1InputAudioConfig": { "description": "Instructs the speech recognizer on how to process the audio content.", "id": "GoogleCloudDialogflowCxV3beta1InputAudioConfig", @@ -10097,12 +10972,16 @@ ], "type": "string" }, + "bargeInConfig": { + "$ref": "GoogleCloudDialogflowCxV3beta1BargeInConfig", + "description": "Configuration of barge-in behavior during the streaming of input audio." + }, "enableWordInfo": { "description": "Optional. If `true`, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words, e.g. start and end time offsets. If false or unspecified, Speech doesn't return any word-level information.", "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.", + "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": { @@ -10115,12 +10994,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": { @@ -10261,10 +11144,48 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings": { + "description": "The Knowledge Connector settings for this page or flow. This includes information such as the attached Knowledge Bases, and the way to execute fulfillment.", + "id": "GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings", + "properties": { + "dataStoreConnections": { + "description": "Optional. List of related data store connections.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3beta1DataStoreConnection" + }, + "type": "array" + }, + "enabled": { + "description": "Whether Knowledge Connector is enabled or not.", + "type": "boolean" + }, + "targetFlow": { + "description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", + "type": "string" + }, + "targetPage": { + "description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", + "type": "string" + }, + "triggerFulfillment": { + "$ref": "GoogleCloudDialogflowCxV3beta1Fulfillment", + "description": "The fulfillment to be triggered. When the answers from the Knowledge Connector are selected by Dialogflow, you can utitlize the request scoped parameter `$request.knowledge.answers` (contains up to the 5 highest confidence answers) and `$request.knowledge.questions` (contains the corresponding questions) to construct the fulfillment." + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1Page": { "description": "A Dialogflow CX conversation (session) can be described and visualized as a state machine. The states of a CX session are represented by pages. For each flow, you define many pages, where your combined pages can handle a complete conversation on the topics the flow is designed for. At any given moment, exactly one page is the current page, the current page is considered active, and the flow associated with that page is considered active. Every flow has a special start page. When a flow initially becomes active, the start page page becomes the current page. For each conversational turn, the current page will either stay the same or transition to another page. You configure each page to collect information from the end-user that is relevant for the conversational state represented by the page. For more information, see the [Page guide](https://cloud.google.com/dialogflow/cx/docs/concept/page).", "id": "GoogleCloudDialogflowCxV3beta1Page", "properties": { + "advancedSettings": { + "$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" @@ -10284,12 +11205,16 @@ "$ref": "GoogleCloudDialogflowCxV3beta1Form", "description": "The form associated with the page, used for collecting parameters relevant to the page." }, + "knowledgeConnectorSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings", + "description": "Optional. Knowledge connector configuration." + }, "name": { "description": "The unique identifier of the page. Required for the Pages.UpdatePage method. Pages.CreatePage populates the name automatically. Format: `projects//locations//agents//flows//pages/`.", "type": "string" }, "transitionRouteGroups": { - "description": "Ordered list of `TransitionRouteGroups` associated with the page. Transition route groups must be unique within a page. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/`.", + "description": "Ordered list of `TransitionRouteGroups` added to the page. Transition route groups must be unique within a page. If the page links both flow-level transition route groups and agent-level transition route groups, the flow-level ones will have higher priority and will be put before the agent-level ones. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups.", "items": { "type": "string" }, @@ -10378,7 +11303,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. ", + "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": { @@ -10436,6 +11361,10 @@ "description": "Output only. A signal that indicates the interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only when the conversation reaches `END_SESSION` page. It is not supposed to be defined by the user. It's guaranteed that there is at most one such message in each response.", "readOnly": true }, + "knowledgeInfoCard": { + "$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard", + "description": "Represents info card for knowledge answers, to be better rendered in Dialogflow Messenger." + }, "liveAgentHandoff": { "$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff", "description": "Hands off conversation to a human agent." @@ -10493,6 +11422,12 @@ "properties": {}, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard": { + "description": "Represents info card response. If the response contains generative knowledge prediction, Dialogflow will return a payload with Infobot Messenger compatible info card. Otherwise, the info card response is skipped.", + "id": "GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard", + "properties": {}, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff": { "description": "Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates something went extremely wrong in the conversation. * In a webhook response when you determine that the customer issue can only be handled by a human.", "id": "GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff", @@ -10819,7 +11754,7 @@ "id": "GoogleCloudDialogflowCxV3beta1TestRunDifference", "properties": { "description": { - "description": "A description of the diff, showing the actual output vs expected output.", + "description": "A human readable description of the diff, showing the actual output vs expected output.", "type": "string" }, "type": { @@ -10829,14 +11764,16 @@ "INTENT", "PAGE", "PARAMETERS", - "UTTERANCE" + "UTTERANCE", + "FLOW" ], "enumDescriptions": [ "Should never be used.", "The intent.", "The page.", "The parameters.", - "The message utterance." + "The message utterance.", + "The flow." ], "type": "string" } @@ -10848,7 +11785,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" } }, @@ -10862,6 +11799,10 @@ "description": "The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", "type": "string" }, + "description": { + "description": "Optional. The description of the transition route. The maximum length is 500 characters.", + "type": "string" + }, "intent": { "description": "The unique identifier of an Intent. Format: `projects//locations//agents//intents/`. Indicates that the transition can only happen when the given intent is matched. At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", "type": "string" @@ -10927,6 +11868,16 @@ "description": "Whether turn resulted in End Session page.", "type": "boolean" }, + "sentimentMagnitude": { + "description": "Sentiment magnitude of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, + "sentimentScore": { + "description": "Sentiment score of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, "userEscalated": { "description": "Whether user was specifically asking for a live agent.", "type": "boolean" @@ -10996,10 +11947,46 @@ }, "type": "array" }, + "httpMethod": { + "description": "Optional. HTTP method for the flexible webhook calls. Standard webhook always uses POST.", + "enum": [ + "HTTP_METHOD_UNSPECIFIED", + "POST", + "GET", + "HEAD", + "PUT", + "DELETE", + "PATCH", + "OPTIONS" + ], + "enumDescriptions": [ + "HTTP method not specified.", + "HTTP POST Method.", + "HTTP GET Method.", + "HTTP HEAD Method.", + "HTTP PUT Method.", + "HTTP DELETE Method.", + "HTTP PATCH Method.", + "HTTP OPTIONS Method." + ], + "type": "string" + }, + "parameterMapping": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Maps the values extracted from specific fields of the flexible webhook response into session parameters. - Key: session parameter name - Value: field path in the webhook response", + "type": "object" + }, "password": { + "deprecated": true, "description": "The password for HTTP Basic authentication.", "type": "string" }, + "requestBody": { + "description": "Optional. Defines a custom JSON object as request body to send to flexible webhook.", + "type": "string" + }, "requestHeaders": { "additionalProperties": { "type": "string" @@ -11012,8 +11999,23 @@ "type": "string" }, "username": { + "deprecated": true, "description": "The user name for HTTP Basic authentication.", "type": "string" + }, + "webhookType": { + "description": "Optional. Type of the webhook.", + "enum": [ + "WEBHOOK_TYPE_UNSPECIFIED", + "STANDARD", + "FLEXIBLE" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Represents a standard webhook.", + "Represents a flexible webhook." + ], + "type": "string" } }, "type": "object" @@ -11026,6 +12028,10 @@ "description": "Always present. The unique identifier of the DetectIntentResponse that will be returned to the API caller.", "type": "string" }, + "dtmfDigits": { + "description": "If DTMF was provided as input, this field will contain the DTMF digits.", + "type": "string" + }, "fulfillmentInfo": { "$ref": "GoogleCloudDialogflowCxV3beta1WebhookRequestFulfillmentInfo", "description": "Always present. Information about the fulfillment that triggered this webhook call." @@ -11373,13 +12379,15 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model for chat.", - "Run smart reply model for chat." + "Run smart reply model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } @@ -11396,7 +12404,7 @@ "type": "integer" }, "name": { - "description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", + "description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", "type": "string" }, "parameters": { @@ -11404,7 +12412,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" } }, @@ -11732,7 +12740,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" } }, @@ -11805,7 +12813,7 @@ "id": "GoogleCloudDialogflowV2GcsDestination", "properties": { "uri": { - "description": "The Google Cloud Storage URIs for the output. A URI is of the form: gs://bucket/object-prefix-or-name Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", + "description": "The Google Cloud Storage URIs for the output. A URI is of the form: `gs://bucket/object-prefix-or-name` Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", "type": "string" } }, @@ -12774,6 +13782,11 @@ "EXAMPLE", "TEMPLATE" ], + "enumDeprecated": [ + false, + false, + true + ], "enumDescriptions": [ "Not specified. This value should never be used.", "Examples do not contain @-prefixed entity type names, but example parts can be annotated with entity types.", @@ -13002,7 +14015,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" }, "queryText": { @@ -13128,13 +14141,15 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model for chat.", - "Run smart reply model for chat." + "Run smart reply model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } @@ -13408,6 +14423,7 @@ "type": "boolean" }, "matchMode": { + "deprecated": true, "description": "Optional. Determines how intents are detected from user queries.", "enum": [ "MATCH_MODE_UNSPECIFIED", @@ -13440,6 +14456,12 @@ "TIER_ENTERPRISE", "TIER_ENTERPRISE_PLUS" ], + "enumDeprecated": [ + false, + false, + false, + true + ], "enumDescriptions": [ "Not specified. This value should never be used.", "Trial Edition, previously known as Standard Edition.", @@ -13501,6 +14523,10 @@ ], "type": "string" }, + "knowledgeSearchFeedback": { + "$ref": "GoogleCloudDialogflowV2beta1AgentAssistantFeedbackKnowledgeSearchFeedback", + "description": "Optional. Feedback for knowledge search." + }, "summarizationFeedback": { "$ref": "GoogleCloudDialogflowV2beta1AgentAssistantFeedbackSummarizationFeedback", "description": "Feedback for conversation summarization." @@ -13508,6 +14534,24 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1AgentAssistantFeedbackKnowledgeSearchFeedback": { + "description": "Feedback for knowledge search.", + "id": "GoogleCloudDialogflowV2beta1AgentAssistantFeedbackKnowledgeSearchFeedback", + "properties": { + "answerCopied": { + "description": "Whether the answer was copied by the human agent or not. If the value is set to be true, AnswerFeedback.clicked will be updated to be true.", + "type": "boolean" + }, + "clickedUris": { + "description": "The URIs clicked by the human agent. The value is appended for each UpdateAnswerRecordRequest. If the value is not empty, AnswerFeedback.clicked will be updated to be true.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2beta1AgentAssistantFeedbackSummarizationFeedback": { "description": "Feedback for conversation summarization.", "id": "GoogleCloudDialogflowV2beta1AgentAssistantFeedbackSummarizationFeedback", @@ -13525,6 +14569,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" @@ -13538,6 +14589,11 @@ "description": "Output only. The article suggestion answer.", "readOnly": true }, + "dialogflowAssistAnswer": { + "$ref": "GoogleCloudDialogflowV2beta1DialogflowAssistAnswer", + "description": "Output only. The Dialogflow assist answer.", + "readOnly": true + }, "faqAnswer": { "$ref": "GoogleCloudDialogflowV2beta1FaqAnswer", "description": "Output only. The FAQ answer.", @@ -13574,8 +14630,12 @@ "$ref": "GoogleCloudDialogflowV2beta1EventInput", "description": "An input event to send to Dialogflow." }, + "intentInput": { + "$ref": "GoogleCloudDialogflowV2beta1IntentInput", + "description": "The intent to be triggered on V3 agent." + }, "messageSendTime": { - "description": "Optional. The send time of the message from end user or human agent's perspective. It is used for identifying the same message under one participant. Given two messages under the same participant: - If send time are different regardless of whether the content of the messages are exactly the same, the conversation will regard them as two distinct messages sent by the participant. - If send time is the same regardless of whether the content of the messages are exactly the same, the conversation will regard them as same message, and ignore the message received later. If the value is not provided, a new request will always be regarded as a new message without any de-duplication.", + "description": "Optional. The send time of the message from end user or human agent's perspective. It is used for identifying the same message under one participant. Given two messages under the same participant: * If send time are different regardless of whether the content of the messages are exactly the same, the conversation will regard them as two distinct messages sent by the participant. * If send time is the same regardless of whether the content of the messages are exactly the same, the conversation will regard them as same message, and ignore the message received later. If the value is not provided, a new request will always be regarded as a new message without any de-duplication.", "format": "google-datetime", "type": "string" }, @@ -13591,6 +14651,10 @@ "description": "A unique identifier for this request. Restricted to 36 ASCII characters. A random UUID is recommended. This request is only idempotent if a `request_id` is provided.", "type": "string" }, + "suggestionInput": { + "$ref": "GoogleCloudDialogflowV2beta1SuggestionInput", + "description": "An input representing the selection of a suggestion." + }, "textInput": { "$ref": "GoogleCloudDialogflowV2beta1TextInput", "description": "The natural language text to be processed." @@ -13672,7 +14736,7 @@ "type": "string" }, "clicked": { - "description": "Indicates whether the answer/item was clicked by the human agent or not. Default to false.", + "description": "Indicates whether the answer/item was clicked by the human agent or not. Default to false. For knowledge search, the answer record is considered to be clicked if the answer was copied or any URI was clicked.", "type": "boolean" }, "correctnessLevel": { @@ -13792,6 +14856,11 @@ "agent": { "description": "Required. ID of the Dialogflow agent environment to use. This project needs to either be the same project as the conversation or you need to grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow API Service Agent` role in this project. - For ES agents, use format: `projects//locations//agent/environments/`. If environment is not specified, the default `draft` environment is used. Refer to [DetectIntentRequest](/dialogflow/docs/reference/rpc/google.cloud.dialogflow.v2beta1#google.cloud.dialogflow.v2beta1.DetectIntentRequest) for more details. - For CX agents, use format `projects//locations//agents//environments/`. If environment is not specified, the default `draft` environment is used.", "type": "string" + }, + "sessionTtl": { + "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" } }, "type": "object" @@ -13827,6 +14896,7 @@ "description": "Properties of the object.", "type": "any" }, + "deprecated": true, "description": "The collection of current Dialogflow CX agent session parameters at the time of this response. Deprecated: Use `parameters` instead.", "type": "object" }, @@ -13865,6 +14935,23 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1BargeInConfig": { + "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 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.", + "id": "GoogleCloudDialogflowV2beta1BargeInConfig", + "properties": { + "noBargeInDuration": { + "description": "Duration that is not eligible for barge-in at the beginning of the input audio.", + "format": "google-duration", + "type": "string" + }, + "totalDuration": { + "description": "Total duration for the playback at the beginning of the input audio.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2beta1BatchCreateEntitiesRequest": { "description": "The request message for EntityTypes.BatchCreateEntities.", "id": "GoogleCloudDialogflowV2beta1BatchCreateEntitiesRequest", @@ -13888,7 +14975,7 @@ "id": "GoogleCloudDialogflowV2beta1BatchCreateMessagesRequest", "properties": { "requests": { - "description": "Required. A maximum of 1000 Messages can be created in a batch. CreateMessageRequest.message.send_time is required. All created messages will have identical Message.create_time.", + "description": "Required. A maximum of 300 messages can be created in a batch. CreateMessageRequest.message.send_time is required. All created messages will have identical Message.create_time.", "items": { "$ref": "GoogleCloudDialogflowV2beta1CreateMessageRequest" }, @@ -14104,14 +15191,18 @@ "ARTICLE_SUGGESTION", "FAQ", "SMART_REPLY", - "CONVERSATION_SUMMARIZATION" + "DIALOGFLOW_ASSIST", + "CONVERSATION_SUMMARIZATION", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model.", "Run smart reply model for chat.", - "Run conversation summarization model for chat." + "Run Dialogflow assist model for chat, which will return automated agent response as suggestion.", + "Run conversation summarization model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } @@ -14145,14 +15236,18 @@ "ARTICLE_SUGGESTION", "FAQ", "SMART_REPLY", - "CONVERSATION_SUMMARIZATION" + "DIALOGFLOW_ASSIST", + "CONVERSATION_SUMMARIZATION", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model.", "Run smart reply model for chat.", - "Run conversation summarization model for chat." + "Run Dialogflow assist model for chat, which will return automated agent response as suggestion.", + "Run conversation summarization model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } @@ -14160,6 +15255,7 @@ "type": "object" }, "GoogleCloudDialogflowV2beta1CompileSuggestionRequest": { + "deprecated": true, "description": "The request message for Participants.CompileSuggestion.", "id": "GoogleCloudDialogflowV2beta1CompileSuggestionRequest", "properties": { @@ -14176,6 +15272,7 @@ "type": "object" }, "GoogleCloudDialogflowV2beta1CompileSuggestionResponse": { + "deprecated": true, "description": "The response message for Participants.CompileSuggestion.", "id": "GoogleCloudDialogflowV2beta1CompileSuggestionResponse", "properties": { @@ -14211,7 +15308,7 @@ "type": "integer" }, "name": { - "description": "Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", + "description": "Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", "type": "string" }, "parameters": { @@ -14219,7 +15316,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" } }, @@ -14396,6 +15493,10 @@ "description": "The time zone of this conversational profile from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York, Europe/Paris. Defaults to America/New_York.", "type": "string" }, + "ttsConfig": { + "$ref": "GoogleCloudDialogflowV2beta1SynthesizeSpeechConfig", + "description": "Configuration for Text-to-Speech synthesization. Used by Phone Gateway to specify synthesization options. If agent defines synthesization options as well, agent settings overrides the option here." + }, "updateTime": { "description": "Output only. Update time of the conversation profile.", "format": "google-datetime", @@ -14484,11 +15585,31 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1DialogflowAssistAnswer": { + "description": "Represents a Dialogflow assist answer.", + "id": "GoogleCloudDialogflowV2beta1DialogflowAssistAnswer", + "properties": { + "answerRecord": { + "description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", + "type": "string" + }, + "intentSuggestion": { + "$ref": "GoogleCloudDialogflowV2beta1IntentSuggestion", + "description": "An intent suggestion generated from conversation." + }, + "queryResult": { + "$ref": "GoogleCloudDialogflowV2beta1QueryResult", + "description": "Result from v2 agent." + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2beta1Document": { "description": "A knowledge document to be used by a KnowledgeBase. For more information, see the [knowledge base guide](https://cloud.google.com/dialogflow/docs/how/knowledge-bases). Note: The `projects.agent.knowledgeBases.documents` resource is deprecated; only use `projects.knowledgeBases.documents`.", "id": "GoogleCloudDialogflowV2beta1Document", "properties": { "content": { + "deprecated": true, "description": "The raw content of the document. This field is only permitted for EXTRACTIVE_QA and FAQ knowledge types. Note: This field is in the process of being deprecated, please use raw_content instead.", "type": "string" }, @@ -14802,7 +15923,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" } }, @@ -14935,6 +16056,7 @@ "id": "GoogleCloudDialogflowV2beta1FulfillmentGenericWebService", "properties": { "isCloudFunction": { + "deprecated": true, "description": "Optional. Indicates if generic web service is created through Cloud Functions integration. Defaults to false. is_cloud_function is deprecated. Cloud functions can be configured by its uri as a regular web service now.", "type": "boolean" }, @@ -14965,7 +16087,7 @@ "id": "GoogleCloudDialogflowV2beta1GcsDestination", "properties": { "uri": { - "description": "Required. The Google Cloud Storage URIs for the output. A URI is of the form: gs://bucket/object-prefix-or-name Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", + "description": "Required. The Google Cloud Storage URIs for the output. A URI is of the form: `gs://bucket/object-prefix-or-name` Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", "type": "string" } }, @@ -14976,7 +16098,7 @@ "id": "GoogleCloudDialogflowV2beta1GcsSource", "properties": { "uri": { - "description": "Required. The Google Cloud Storage URIs for the inputs. A URI is of the form: gs://bucket/object-prefix-or-name Whether a prefix or name is used depends on the use case.", + "description": "Required. The Google Cloud Storage URIs for the inputs. A URI is of the form: `gs://bucket/object-prefix-or-name` Whether a prefix or name is used depends on the use case.", "type": "string" } }, @@ -14987,7 +16109,7 @@ "id": "GoogleCloudDialogflowV2beta1GcsSources", "properties": { "uris": { - "description": "Required. Google Cloud Storage URIs for the inputs. A URI is of the form: gs://bucket/object-prefix-or-name Whether a prefix or name is used depends on the use case.", + "description": "Required. Google Cloud Storage URIs for the inputs. A URI is of the form: `gs://bucket/object-prefix-or-name` Whether a prefix or name is used depends on the use case.", "items": { "type": "string" }, @@ -14996,6 +16118,86 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1GenerateStatelessSummaryRequest": { + "description": "The request message for Conversations.GenerateStatelessSummary.", + "id": "GoogleCloudDialogflowV2beta1GenerateStatelessSummaryRequest", + "properties": { + "conversationProfile": { + "$ref": "GoogleCloudDialogflowV2beta1ConversationProfile", + "description": "Required. A ConversationProfile containing information required for Summary generation. Required fields: {language_code, security_settings} Optional fields: {agent_assistant_config}" + }, + "latestMessage": { + "description": "The name of the latest conversation message used as context for generating a Summary. If empty, the latest message of the conversation will be used. The format is specific to the user and the names of the messages provided.", + "type": "string" + }, + "maxContextSize": { + "description": "Max number of messages prior to and including [latest_message] to use as context when compiling the suggestion. By default 500 and at most 1000.", + "format": "int32", + "type": "integer" + }, + "statelessConversation": { + "$ref": "GoogleCloudDialogflowV2beta1GenerateStatelessSummaryRequestMinimalConversation", + "description": "Required. The conversation to suggest a summary for." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2beta1GenerateStatelessSummaryRequestMinimalConversation": { + "description": "The minimum amount of information required to generate a Summary without having a Conversation resource created.", + "id": "GoogleCloudDialogflowV2beta1GenerateStatelessSummaryRequestMinimalConversation", + "properties": { + "messages": { + "description": "Required. The messages that the Summary will be generated from. It is expected that this message content is already redacted and does not contain any PII. Required fields: {content, language_code, participant, participant_role} Optional fields: {send_time} If send_time is not provided, then the messages must be provided in chronological order.", + "items": { + "$ref": "GoogleCloudDialogflowV2beta1Message" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2beta1GenerateStatelessSummaryResponse": { + "description": "The response message for Conversations.GenerateStatelessSummary.", + "id": "GoogleCloudDialogflowV2beta1GenerateStatelessSummaryResponse", + "properties": { + "contextSize": { + "description": "Number of messages prior to and including last_conversation_message used to compile the suggestion. It may be smaller than the GenerateStatelessSummaryRequest.context_size field in the request if there weren't that many messages in the conversation.", + "format": "int32", + "type": "integer" + }, + "latestMessage": { + "description": "The name of the latest conversation message used as context for compiling suggestion. The format is specific to the user and the names of the messages provided.", + "type": "string" + }, + "summary": { + "$ref": "GoogleCloudDialogflowV2beta1GenerateStatelessSummaryResponseSummary", + "description": "Generated summary." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2beta1GenerateStatelessSummaryResponseSummary": { + "description": "Generated summary for a conversation.", + "id": "GoogleCloudDialogflowV2beta1GenerateStatelessSummaryResponseSummary", + "properties": { + "baselineModelVersion": { + "description": "The baseline model version used to generate this summary. It is empty if a baseline model was not used to generate this summary.", + "type": "string" + }, + "text": { + "description": "The summary content that is concatenated into one string.", + "type": "string" + }, + "textSections": { + "additionalProperties": { + "type": "string" + }, + "description": "The summary content that is divided into sections. The key is the section's name and the value is the section's content. There is no specific format for the key or value.", + "type": "object" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2beta1HumanAgentAssistantConfig": { "description": "Defines the Human Agent Assistant to connect to a conversation.", "id": "GoogleCloudDialogflowV2beta1HumanAgentAssistantConfig", @@ -15023,6 +16225,10 @@ "description": "Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY, CONVERSATION_SUMMARIZATION.", "id": "GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigConversationModelConfig", "properties": { + "baselineModelVersion": { + "description": "Version of current baseline model. It will be ignored if model is set. Valid versions are: Article Suggestion baseline model: - 0.9 - 1.0 (default) Summarization baseline model: - 1.0", + "type": "string" + }, "model": { "description": "Conversation model resource name. Format: `projects//conversationModels/`.", "type": "string" @@ -15087,8 +16293,16 @@ "$ref": "GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigConversationProcessConfig", "description": "Configs for processing conversation." }, + "disableAgentQueryLogging": { + "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.", + "description": "Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST, ENTITY_EXTRACTION, KNOWLEDGE_ASSIST.", "type": "boolean" }, "queryConfig": { @@ -15111,7 +16325,7 @@ "id": "GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfig", "properties": { "confidenceThreshold": { - "description": "Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it is default to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE.", + "description": "Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it is default to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE, KNOWLEDGE_SEARCH, KNOWLEDGE_ASSIST, ENTITY_EXTRACTION.", "format": "float", "type": "number" }, @@ -15121,7 +16335,7 @@ }, "dialogflowQuerySource": { "$ref": "GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySource", - "description": "Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST." + "description": "Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST, ENTITY_EXTRACTION." }, "documentQuerySource": { "$ref": "GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigDocumentQuerySource", @@ -15135,6 +16349,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": "GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigSections", + "description": "Optional. The customized sections chosen to return when requesting a summary of a conversation." } }, "type": "object" @@ -15159,12 +16377,27 @@ "type": "object" }, "GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySource": { - "description": "Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST.", + "description": "Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST, ENTITY_EXTRACTION.", "id": "GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySource", "properties": { "agent": { "description": "Required. The name of a dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.", "type": "string" + }, + "humanAgentSideConfig": { + "$ref": "GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySourceHumanAgentSideConfig", + "description": "The Dialogflow assist configuration for human agent." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySourceHumanAgentSideConfig": { + "description": "The configuration used for human agent side Dialogflow assist suggestion.", + "id": "GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySourceHumanAgentSideConfig", + "properties": { + "agent": { + "description": "Optional. The name of a dialogflow virtual agent used for intent detection and suggestion triggered by human agent. Format: `projects//locations//agent`.", + "type": "string" } }, "type": "object" @@ -15197,6 +16430,38 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigSections": { + "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": "GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigSections", + "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" + }, "GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionTriggerSettings": { "description": "Settings of suggestion trigger.", "id": "GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionTriggerSettings", @@ -15350,7 +16615,7 @@ }, "gcsSource": { "$ref": "GoogleCloudDialogflowV2beta1GcsSources", - "description": "The Google Cloud Storage location for the documents. The path can include a wildcard. These URIs may have the forms `gs:///`. `gs:////*.`." + "description": "Optional. The Google Cloud Storage location for the documents. The path can include a wildcard. These URIs may have the forms `gs:///`. `gs:////*.`." }, "importGcsCustomMetadata": { "description": "Whether to import custom metadata from Google Cloud Storage. Only valid when the document source is Google Cloud Storage URI.", @@ -15401,10 +16666,18 @@ ], "type": "string" }, + "bargeInConfig": { + "$ref": "GoogleCloudDialogflowV2beta1BargeInConfig", + "description": "Configuration of barge-in behavior during the streaming of input audio." + }, "disableNoSpeechRecognizedEvent": { "description": "Only used in Participants.AnalyzeContent and Participants.StreamingAnalyzeContent. If `false` and recognition doesn't return any result, trigger `NO_SPEECH_RECOGNIZED` event to Dialogflow agent.", "type": "boolean" }, + "enableAutomaticPunctuation": { + "description": "Enable automatic punctuation option at the speech backend.", + "type": "boolean" + }, "enableWordInfo": { "description": "If `true`, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words, e.g. start and end time offsets. If false or unspecified, Speech doesn't return any word-level information.", "type": "boolean" @@ -15414,7 +16687,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.", + "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": { @@ -15433,8 +16706,13 @@ ], "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": { - "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]().", + "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`]().", "items": { "type": "string" }, @@ -15550,6 +16828,7 @@ "type": "boolean" }, "mlEnabled": { + "deprecated": true, "description": "Optional. Indicates whether Machine Learning is enabled for the intent. Note: If `ml_enabled` setting is set to false, then this intent is not taken into account during inference in `ML ONLY` match mode. Also, auto-markup in the UI is turned off. DEPRECATED! Please use `ml_disabled` field instead. NOTE: If both `ml_enabled` and `ml_disabled` are either not set or false, then the default value is determined as follows: - Before April 15th, 2018 the default is: ml_enabled = false / ml_disabled = true. - After April 15th, 2018 the default is: ml_enabled = true / ml_disabled = false.", "type": "boolean" }, @@ -15642,6 +16921,21 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1IntentInput": { + "description": "Represents the intent to trigger programmatically rather than as a result of natural language processing. The intent input is only used for V3 agent.", + "id": "GoogleCloudDialogflowV2beta1IntentInput", + "properties": { + "intent": { + "description": "Required. The unique identifier of the intent in V3 agent. Format: `projects//locations//locations//agents//intents/`.", + "type": "string" + }, + "languageCode": { + "description": "Required. The language of this conversational query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2beta1IntentMessage": { "description": "Corresponds to the `Response` field in the Dialogflow console.", "id": "GoogleCloudDialogflowV2beta1IntentMessage", @@ -16619,6 +17913,25 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1IntentSuggestion": { + "description": "Represents an intent suggestion.", + "id": "GoogleCloudDialogflowV2beta1IntentSuggestion", + "properties": { + "description": { + "description": "Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters.", + "type": "string" + }, + "displayName": { + "description": "The display name of the intent.", + "type": "string" + }, + "intentV2": { + "description": "The unique identifier of this intent. Format: `projects//locations//agent/intents/`.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2beta1IntentTrainingPhrase": { "description": "Represents an example that the agent is trained on.", "id": "GoogleCloudDialogflowV2beta1IntentTrainingPhrase", @@ -16646,6 +17959,11 @@ "EXAMPLE", "TEMPLATE" ], + "enumDeprecated": [ + false, + false, + true + ], "enumDescriptions": [ "Not specified. This value should never be used.", "Examples do not contain @-prefixed entity type names, but example parts can be annotated with entity types.", @@ -17001,6 +18319,7 @@ "type": "object" }, "GoogleCloudDialogflowV2beta1ListSuggestionsResponse": { + "deprecated": true, "description": "The response message for Participants.ListSuggestions.", "id": "GoogleCloudDialogflowV2beta1ListSuggestionsResponse", "properties": { @@ -17140,8 +18459,8 @@ ], "enumDescriptions": [ "If it is unspecified, PROTO will be used.", - "Pubsub message will be serialized proto.", - "Pubsub message will be json." + "Pub/Sub message will be serialized proto.", + "Pub/Sub message will be json." ], "type": "string" }, @@ -17243,7 +18562,7 @@ "type": "string" }, "obfuscatedExternalUserId": { - "description": "Optional. Obfuscated user id that should be associated with the created participant. You can specify a user id as follows: 1. If you set this field in CreateParticipantRequest or UpdateParticipantRequest, Dialogflow adds the obfuscated user id with the participant. 2. If you set this field in AnalyzeContent or StreamingAnalyzeContent, Dialogflow will update Participant.obfuscated_external_user_id. Dialogflow uses this user id for following purposes: 1) Billing and measurement. If user with the same obfuscated_external_user_id is created in a later conversation, dialogflow will know it's the same user. 2) Agent assist suggestion personalization. For example, Dialogflow can use it to provide personalized smart reply suggestions for this user. Note: * Please never pass raw user ids to Dialogflow. Always obfuscate your user id first. * Dialogflow only accepts a UTF-8 encoded string, e.g., a hex digest of a hash function like SHA-512. * The length of the user id must be <= 256 characters.", + "description": "Optional. Obfuscated user id that should be associated with the created participant. You can specify a user id as follows: 1. If you set this field in CreateParticipantRequest or UpdateParticipantRequest, Dialogflow adds the obfuscated user id with the participant. 2. If you set this field in AnalyzeContent or StreamingAnalyzeContent, Dialogflow will update Participant.obfuscated_external_user_id. Dialogflow uses this user id for billing and measurement. If a user with the same obfuscated_external_user_id is created in a later conversation, Dialogflow will know it's the same user. Dialogflow also uses this user id for Agent Assist suggestion personalization. For example, Dialogflow can use it to provide personalized smart reply suggestions for this user. Note: * Please never pass raw user ids to Dialogflow. Always obfuscate your user id first. * Dialogflow only accepts a UTF-8 encoded string, e.g., a hex digest of a hash function like SHA-512. * The length of the user id must be <= 256 characters.", "type": "string" }, "role": { @@ -17318,6 +18637,10 @@ "description": "This field can be used to pass custom data to your webhook. Arbitrary JSON objects are supported. If supplied, the value is used to populate the `WebhookRequest.original_detect_intent_request.payload` field sent to your webhook.", "type": "object" }, + "platform": { + "description": "The platform of the virtual agent response messages. If not empty, only emits messages from this platform in the response. Valid values are the enum names of platform.", + "type": "string" + }, "resetContexts": { "description": "Specifies whether to delete all contexts in the current session before the new ones are activated.", "type": "boolean" @@ -17418,7 +18741,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" }, "queryText": { @@ -17617,6 +18940,112 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1SearchKnowledgeAnswer": { + "description": "Represents a SearchKnowledge answer.", + "id": "GoogleCloudDialogflowV2beta1SearchKnowledgeAnswer", + "properties": { + "answer": { + "description": "The piece of text from the knowledge base documents that answers the search query", + "type": "string" + }, + "answerRecord": { + "description": "The name of the answer record. Format: `projects//locations//answer Records/`", + "type": "string" + }, + "answerSources": { + "description": "All sources used to generate the answer.", + "items": { + "$ref": "GoogleCloudDialogflowV2beta1SearchKnowledgeAnswerAnswerSource" + }, + "type": "array" + }, + "answerType": { + "description": "The type of the answer.", + "enum": [ + "ANSWER_TYPE_UNSPECIFIED", + "FAQ", + "GENERATIVE", + "INTENT" + ], + "enumDescriptions": [ + "The answer has a unspecified type.", + "The answer is from FAQ documents.", + "The answer is from generative model.", + "The answer is from intent matching." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2beta1SearchKnowledgeAnswerAnswerSource": { + "description": "The sources of the answers.", + "id": "GoogleCloudDialogflowV2beta1SearchKnowledgeAnswerAnswerSource", + "properties": { + "snippet": { + "description": "The relevant snippet of the article.", + "type": "string" + }, + "title": { + "description": "The title of the article.", + "type": "string" + }, + "uri": { + "description": "The URI of the article.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2beta1SearchKnowledgeRequest": { + "description": "The request message for Conversations.SearchKnowledge.", + "id": "GoogleCloudDialogflowV2beta1SearchKnowledgeRequest", + "properties": { + "conversation": { + "description": "The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.", + "type": "string" + }, + "conversationProfile": { + "description": "Required. The conversation profile used to configure the search. Format: `projects//locations//conversationProfiles/`.", + "type": "string" + }, + "latestMessage": { + "description": "The name of the latest conversation message when the request is triggered. Format: `projects//locations//conversations//messages/`.", + "type": "string" + }, + "parent": { + "description": "The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.", + "type": "string" + }, + "query": { + "$ref": "GoogleCloudDialogflowV2beta1TextInput", + "description": "Required. The natural language text query for knowledge search." + }, + "sessionId": { + "description": "The ID of the search session. The session_id can be combined with Dialogflow V3 Agent ID retrieved from conversation profile or on its own to identify a search session. The search history of the same session will impact the search result. It's up to the API caller to choose an appropriate `Session ID`. It can be a random number or some type of session identifiers (preferably hashed). The length must not exceed 36 characters.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2beta1SearchKnowledgeResponse": { + "description": "The response message for Conversations.SearchKnowledge.", + "id": "GoogleCloudDialogflowV2beta1SearchKnowledgeResponse", + "properties": { + "answers": { + "description": "Most relevant snippets extracted from articles in the given knowledge base, ordered by confidence.", + "items": { + "$ref": "GoogleCloudDialogflowV2beta1SearchKnowledgeAnswer" + }, + "type": "array" + }, + "rewrittenQuery": { + "description": "The rewritten query used to search knowledge.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2beta1Sentiment": { "description": "The sentiment, such as positive/negative feeling or association, for a unit of analysis, such as the query text. See: https://cloud.google.com/natural-language/docs/basics#interpreting_sentiment_analysis_values for how to interpret the result.", "id": "GoogleCloudDialogflowV2beta1Sentiment", @@ -17724,14 +19153,18 @@ "ARTICLE_SUGGESTION", "FAQ", "SMART_REPLY", - "CONVERSATION_SUMMARIZATION" + "DIALOGFLOW_ASSIST", + "CONVERSATION_SUMMARIZATION", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model.", "Run smart reply model for chat.", - "Run conversation summarization model for chat." + "Run Dialogflow assist model for chat, which will return automated agent response as suggestion.", + "Run conversation summarization model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } @@ -17809,7 +19242,7 @@ "id": "GoogleCloudDialogflowV2beta1SpeechToTextConfig", "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": { @@ -17827,6 +19260,10 @@ "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." ], "type": "string" + }, + "useTimeoutBasedEndpointing": { + "description": "Use timeout based endpointing, interpreting endpointer sensitivy as seconds of timeout value.", + "type": "boolean" } }, "type": "object" @@ -17893,6 +19330,10 @@ "description": "The request message for Conversations.SuggestConversationSummary.", "id": "GoogleCloudDialogflowV2beta1SuggestConversationSummaryRequest", "properties": { + "assistQueryParams": { + "$ref": "GoogleCloudDialogflowV2beta1AssistQueryParameters", + "description": "Parameters for a human assist query. Only used for POC/demo purpose." + }, "contextSize": { "description": "Max number of messages prior to and including [latest_message] to use as context when compiling the suggestion. By default 500 and at most 1000.", "format": "int32", @@ -17933,6 +19374,10 @@ "description": "The name of the answer record. Format: \"projects//answerRecords/\"", "type": "string" }, + "baselineModelVersion": { + "description": "The baseline model version used to generate this summary. It is empty if a baseline model was not used to generate this summary.", + "type": "string" + }, "text": { "description": "The summary content that is concatenated into one string.", "type": "string" @@ -17947,6 +19392,29 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse": { + "description": "The response message for Participants.SuggestDialogflowAssists.", + "id": "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse", + "properties": { + "contextSize": { + "description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestDialogflowAssistsRequest.context_size field in the request if there aren't that many messages in the conversation.", + "format": "int32", + "type": "integer" + }, + "dialogflowAssistAnswers": { + "description": "Output only. Multiple reply options provided by Dialogflow assist service. The order is based on the rank of the model prediction.", + "items": { + "$ref": "GoogleCloudDialogflowV2beta1DialogflowAssistAnswer" + }, + "type": "array" + }, + "latestMessage": { + "description": "The name of the latest conversation message used to suggest answer. Format: `projects//locations//conversations//messages/`.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2beta1SuggestFaqAnswersRequest": { "description": "The request message for Participants.SuggestFaqAnswers.", "id": "GoogleCloudDialogflowV2beta1SuggestFaqAnswersRequest", @@ -18034,6 +19502,7 @@ "type": "object" }, "GoogleCloudDialogflowV2beta1Suggestion": { + "deprecated": true, "description": "Represents a suggestion for a human agent.", "id": "GoogleCloudDialogflowV2beta1Suggestion", "properties": { @@ -18146,20 +19615,51 @@ "ARTICLE_SUGGESTION", "FAQ", "SMART_REPLY", - "CONVERSATION_SUMMARIZATION" + "DIALOGFLOW_ASSIST", + "CONVERSATION_SUMMARIZATION", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model.", "Run smart reply model for chat.", - "Run conversation summarization model for chat." + "Run Dialogflow assist model for chat, which will return automated agent response as suggestion.", + "Run conversation summarization model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } }, "type": "object" }, + "GoogleCloudDialogflowV2beta1SuggestionInput": { + "description": "Represents the selection of a suggestion.", + "id": "GoogleCloudDialogflowV2beta1SuggestionInput", + "properties": { + "answerRecord": { + "description": "Required. The ID of a suggestion selected by the human agent. The suggestion(s) were generated in a previous call to request Dialogflow assist. The format is: `projects//locations//answerRecords/` where is an alphanumeric string.", + "type": "string" + }, + "intentInput": { + "$ref": "GoogleCloudDialogflowV2beta1IntentInput", + "description": "The intent to be triggered on V3 agent." + }, + "parameters": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "In Dialogflow assist for v3, the user can submit a form by sending a SuggestionInput. The form is uniquely determined by the answer_record field, which identifies a v3 QueryResult containing the current page. The form parameters are specified via the parameters field. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", + "type": "object" + }, + "textOverride": { + "$ref": "GoogleCloudDialogflowV2beta1TextInput", + "description": "Optional. If the customer edited the suggestion before using it, include the revised text here." + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2beta1SuggestionResult": { "description": "One response of different type of suggestion response which is used in the response of Participants.AnalyzeContent and Participants.AnalyzeContent, as well as HumanAgentAssistantEvent.", "id": "GoogleCloudDialogflowV2beta1SuggestionResult", @@ -18172,6 +19672,14 @@ "$ref": "GoogleCloudDialogflowV2beta1SuggestArticlesResponse", "description": "SuggestArticlesResponse if request is for ARTICLE_SUGGESTION." }, + "suggestDialogflowAssistsResponse": { + "$ref": "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse", + "description": "SuggestDialogflowAssistsResponse if request is for DIALOGFLOW_ASSIST." + }, + "suggestEntityExtractionResponse": { + "$ref": "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse", + "description": "SuggestDialogflowAssistsResponse if request is for ENTITY_EXTRACTION." + }, "suggestFaqAnswersResponse": { "$ref": "GoogleCloudDialogflowV2beta1SuggestFaqAnswersResponse", "description": "SuggestFaqAnswersResponse if request is for FAQ_ANSWER." @@ -18337,7 +19845,7 @@ "id": "GoogleCloudDialogflowV2beta1ValidationError", "properties": { "entries": { - "description": "The names of the entries that the error is associated with. Format: - \"projects//agent\", if the error is associated with the entire agent. - \"projects//agent/intents/\", if the error is associated with certain intents. - \"projects//agent/intents//trainingPhrases/\", if the error is associated with certain intent training phrases. - \"projects//agent/intents//parameters/\", if the error is associated with certain intent parameters. - \"projects//agent/entities/\", if the error is associated with certain entities.", + "description": "The names of the entries that the error is associated with. Format: - `projects//agent`, if the error is associated with the entire agent. - `projects//agent/intents/`, if the error is associated with certain intents. - `projects//agent/intents//trainingPhrases/`, if the error is associated with certain intent training phrases. - `projects//agent/intents//parameters/`, if the error is associated with certain intent parameters. - `projects//agent/entities/`, if the error is associated with certain entities.", "items": { "type": "string" }, @@ -18674,6 +20182,16 @@ "description": "Whether turn resulted in End Session page.", "type": "boolean" }, + "sentimentMagnitude": { + "description": "Sentiment magnitude of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, + "sentimentScore": { + "description": "Sentiment score of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, "triggeredAbandonmentEvent": { "description": "Whether agent has triggered the event corresponding to user abandoning the conversation.", "type": "boolean" @@ -18722,7 +20240,7 @@ "type": "object" }, "GoogleCloudLocationLocation": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "GoogleCloudLocationLocation", "properties": { "displayName": { @@ -18802,7 +20320,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/etc/api/dialogflow/v3/dialogflow-api.json b/etc/api/dialogflow/v3/dialogflow-api.json index 4ec88aabb8..beb21ecad6 100644 --- a/etc/api/dialogflow/v3/dialogflow-api.json +++ b/etc/api/dialogflow/v3/dialogflow-api.json @@ -294,6 +294,37 @@ "https://www.googleapis.com/auth/dialogflow" ] }, + "getGenerativeSettings": { + "description": "Gets the generative settings for the agent.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/generativeSettings", + "httpMethod": "GET", + "id": "dialogflow.projects.locations.agents.getGenerativeSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "languageCode": { + "description": "Required. Language code of the generative settings.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. Format: `projects//locations//agents//generativeSettings`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/generativeSettings$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+name}", + "response": { + "$ref": "GoogleCloudDialogflowCxV3GenerativeSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, "getValidationResult": { "description": "Gets the latest agent validation result. Agent validation is performed when ValidateAgent is called.", "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/validationResult", @@ -426,6 +457,41 @@ "https://www.googleapis.com/auth/dialogflow" ] }, + "updateGenerativeSettings": { + "description": "Updates the generative settings for the agent.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/generativeSettings", + "httpMethod": "PATCH", + "id": "dialogflow.projects.locations.agents.updateGenerativeSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Format: `projects//locations//agents//generativeSettings`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/generativeSettings$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. 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": "GoogleCloudDialogflowCxV3GenerativeSettings" + }, + "response": { + "$ref": "GoogleCloudDialogflowCxV3GenerativeSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, "validate": { "description": "Validates the specified agent and creates or updates validation results. The agent in draft version is validated. Please call this API after the training is completed to get the complete validation results.", "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}:validate", @@ -596,6 +662,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}", @@ -627,6 +722,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", @@ -1374,6 +1498,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": { @@ -2066,7 +2219,7 @@ "type": "string" }, "parent": { - "description": "Required. The flow to create an TransitionRouteGroup for. Format: `projects//locations//agents//flows/`.", + "description": "Required. The flow to create an TransitionRouteGroup for. Format: `projects//locations//agents//flows/` or `projects//locations//agents/` for agent-level groups.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+$", "required": true, @@ -2100,7 +2253,7 @@ "type": "boolean" }, "name": { - "description": "Required. The name of the TransitionRouteGroup to delete. Format: `projects//locations//agents//flows//transitionRouteGroups/`.", + "description": "Required. The name of the TransitionRouteGroup to delete. Format: `projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+/transitionRouteGroups/[^/]+$", "required": true, @@ -2131,7 +2284,7 @@ "type": "string" }, "name": { - "description": "Required. The name of the TransitionRouteGroup. Format: `projects//locations//agents//flows//transitionRouteGroups/`.", + "description": "Required. The name of the TransitionRouteGroup. Format: `projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+/transitionRouteGroups/[^/]+$", "required": true, @@ -2173,7 +2326,7 @@ "type": "string" }, "parent": { - "description": "Required. The flow to list all transition route groups for. Format: `projects//locations//agents//flows/`.", + "description": "Required. The flow to list all transition route groups for. Format: `projects//locations//agents//flows/` or `projects//locations//agents/.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+$", "required": true, @@ -2204,7 +2357,7 @@ "type": "string" }, "name": { - "description": "The unique identifier of the transition route group. TransitionRouteGroups.CreateTransitionRouteGroup populates the name automatically. Format: `projects//locations//agents//flows//transitionRouteGroups/`.", + "description": "The unique identifier of the transition route group. TransitionRouteGroups.CreateTransitionRouteGroup populates the name automatically. Format: `projects//locations//agents//flows//transitionRouteGroups/` .", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+/transitionRouteGroups/[^/]+$", "required": true, @@ -2448,6 +2601,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": { @@ -2510,6 +2845,35 @@ "https://www.googleapis.com/auth/dialogflow" ] }, + "export": { + "description": "Exports the selected intents. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: ExportIntentsMetadata - `response`: ExportIntentsResponse", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/intents:export", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.agents.intents.export", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The name of the parent agent to export intents. Format: `projects//locations//agents/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/intents:export", + "request": { + "$ref": "GoogleCloudDialogflowCxV3ExportIntentsRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, "get": { "description": "Retrieves the specified intent.", "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/intents/{intentsId}", @@ -2541,6 +2905,35 @@ "https://www.googleapis.com/auth/dialogflow" ] }, + "import": { + "description": "Imports the specified intents into the agent. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: ImportIntentsMetadata - `response`: ImportIntentsResponse", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/intents:import", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.agents.intents.import", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The agent to import the intents into. Format: `projects//locations//agents/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/intents:import", + "request": { + "$ref": "GoogleCloudDialogflowCxV3ImportIntentsRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, "list": { "description": "Returns the list of all intents in the specified agent.", "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/intents", @@ -2728,6 +3121,64 @@ "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}/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", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.agents.sessions.submitAnswerFeedback", + "parameterOrder": [ + "session" + ], + "parameters": { + "session": { + "description": "Required. The name of the session the feedback was sent to.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/sessions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+session}:submitAnswerFeedback", + "request": { + "$ref": "GoogleCloudDialogflowCxV3SubmitAnswerFeedbackRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowCxV3AnswerFeedback" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] } }, "resources": { @@ -3253,7 +3704,7 @@ ] }, "list": { - "description": "Fetches a list of results for a given test case.", + "description": "Fetches the list of run results for the given test case. A maximum of 100 results are kept for each test case.", "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/testCases/{testCasesId}/results", "httpMethod": "GET", "id": "dialogflow.projects.locations.agents.testCases.results.list", @@ -3298,6 +3749,188 @@ } } }, + "transitionRouteGroups": { + "methods": { + "create": { + "description": "Creates an TransitionRouteGroup in the specified flow. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/transitionRouteGroups", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.agents.transitionRouteGroups.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "languageCode": { + "description": "The language of the following fields in `TransitionRouteGroup`: * `TransitionRouteGroup.transition_routes.trigger_fulfillment.messages` * `TransitionRouteGroup.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The flow to create an TransitionRouteGroup for. Format: `projects//locations//agents//flows/` or `projects//locations//agents/` for agent-level groups.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/transitionRouteGroups", + "request": { + "$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroup" + }, + "response": { + "$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, + "delete": { + "description": "Deletes the specified TransitionRouteGroup. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/transitionRouteGroups/{transitionRouteGroupsId}", + "httpMethod": "DELETE", + "id": "dialogflow.projects.locations.agents.transitionRouteGroups.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "force": { + "description": "This field has no effect for transition route group that no page is using. If the transition route group is referenced by any page: * If `force` is set to false, an error will be returned with message indicating pages that reference the transition route group. * If `force` is set to true, Dialogflow will remove the transition route group, as well as any reference to it.", + "location": "query", + "type": "boolean" + }, + "name": { + "description": "Required. The name of the TransitionRouteGroup to delete. Format: `projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/transitionRouteGroups/[^/]+$", + "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 TransitionRouteGroup.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/transitionRouteGroups/{transitionRouteGroupsId}", + "httpMethod": "GET", + "id": "dialogflow.projects.locations.agents.transitionRouteGroups.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "languageCode": { + "description": "The language to retrieve the transition route group for. The following fields are language dependent: * `TransitionRouteGroup.transition_routes.trigger_fulfillment.messages` * `TransitionRouteGroup.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The name of the TransitionRouteGroup. Format: `projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/transitionRouteGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+name}", + "response": { + "$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, + "list": { + "description": "Returns the list of all transition route groups in the specified flow.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/transitionRouteGroups", + "httpMethod": "GET", + "id": "dialogflow.projects.locations.agents.transitionRouteGroups.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "languageCode": { + "description": "The language to list transition route groups for. The following fields are language dependent: * `TransitionRouteGroup.transition_routes.trigger_fulfillment.messages` * `TransitionRouteGroup.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", + "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 flow to list all transition route groups for. Format: `projects//locations//agents//flows/` or `projects//locations//agents/.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/transitionRouteGroups", + "response": { + "$ref": "GoogleCloudDialogflowCxV3ListTransitionRouteGroupsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, + "patch": { + "description": "Updates the specified TransitionRouteGroup. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/transitionRouteGroups/{transitionRouteGroupsId}", + "httpMethod": "PATCH", + "id": "dialogflow.projects.locations.agents.transitionRouteGroups.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "languageCode": { + "description": "The language of the following fields in `TransitionRouteGroup`: * `TransitionRouteGroup.transition_routes.trigger_fulfillment.messages` * `TransitionRouteGroup.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", + "location": "query", + "type": "string" + }, + "name": { + "description": "The unique identifier of the transition route group. TransitionRouteGroups.CreateTransitionRouteGroup populates the name automatically. Format: `projects//locations//agents//flows//transitionRouteGroups/` .", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/transitionRouteGroups/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The mask to control which fields get updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v3/{+name}", + "request": { + "$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroup" + }, + "response": { + "$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + } + } + }, "webhooks": { "methods": { "create": { @@ -3517,7 +4150,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "dialogflow.projects.locations.operations.list", @@ -3774,7 +4407,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v3/projects/{projectsId}/operations", "httpMethod": "GET", "id": "dialogflow.projects.operations.list", @@ -3820,13 +4453,21 @@ } } }, - "revision": "20230110", + "revision": "20240227", "rootUrl": "https://dialogflow.googleapis.com/", "schemas": { "GoogleCloudDialogflowCxV3AdvancedSettings": { "description": "Hierarchical advanced settings for agent/flow/page/fulfillment/parameter. Settings exposed at lower level overrides the settings exposed at higher level. Overriding occurs at the sub-setting level. For example, the playback_interruption_settings at fulfillment level only overrides the playback_interruption_settings at the agent level, leaving other settings at the agent level unchanged. DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter.", "id": "GoogleCloudDialogflowCxV3AdvancedSettings", "properties": { + "audioExportGcsDestination": { + "$ref": "GoogleCloudDialogflowCxV3GcsDestination", + "description": "If present, incoming audio is exported by Dialogflow to the configured Google Cloud Storage destination. Exposed at the following levels: - Agent level - Flow level" + }, + "dtmfSettings": { + "$ref": "GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings", + "description": "Settings for DTMF. Exposed at the following levels: - Agent level - Flow level - Page level - Parameter level." + }, "loggingSettings": { "$ref": "GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings", "description": "Settings for logging. Settings for Dialogflow History, Contact Center messages, StackDriver logs, and speech logging. Exposed at the following levels: - Agent level." @@ -3834,6 +4475,26 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings": { + "description": "Define behaviors for DTMF (dual tone multi frequency).", + "id": "GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings", + "properties": { + "enabled": { + "description": "If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a \"3\" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).", + "type": "boolean" + }, + "finishDigit": { + "description": "The digit that terminates a DTMF digit sequence.", + "type": "string" + }, + "maxDigits": { + "description": "Max length of DTMF digits.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings": { "description": "Define behaviors on logging.", "id": "GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings", @@ -3850,13 +4511,17 @@ "type": "object" }, "GoogleCloudDialogflowCxV3Agent": { - "description": "Agents are best described as Natural Language Understanding (NLU) modules that transform user requests into actionable data. You can include agents in your app, product, or service to determine user intent and respond to the user in a natural way. After you create an agent, you can add Intents, Entity Types, Flows, Fulfillments, Webhooks, and so on to manage the conversation flows..", + "description": "Agents are best described as Natural Language Understanding (NLU) modules that transform user requests into actionable data. You can include agents in your app, product, or service to determine user intent and respond to the user in a natural way. After you create an agent, you can add Intents, Entity Types, Flows, Fulfillments, Webhooks, TransitionRouteGroups and so on to manage the conversation flows.", "id": "GoogleCloudDialogflowCxV3Agent", "properties": { "advancedSettings": { "$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", "description": "Hierarchical advanced settings for this agent. The settings exposed at the lower level overrides the settings exposed at the higher level." }, + "answerFeedbackSettings": { + "$ref": "GoogleCloudDialogflowCxV3AgentAnswerFeedbackSettings", + "description": "Optional. Answer feedback collection settings." + }, "avatarUri": { "description": "The URI of the agent's avatar. Avatars are used throughout the Dialogflow console and in the self-hosted [Web Demo](https://cloud.google.com/dialogflow/docs/integrations/web-demo) integration.", "type": "string" @@ -3878,9 +4543,18 @@ "type": "boolean" }, "enableStackdriverLogging": { + "deprecated": true, "description": "Indicates if stackdriver logging is enabled for the agent. Please use agent.advanced_settings instead.", "type": "boolean" }, + "genAppBuilderSettings": { + "$ref": "GoogleCloudDialogflowCxV3AgentGenAppBuilderSettings", + "description": "Gen App Builder-related agent-level settings." + }, + "gitIntegrationSettings": { + "$ref": "GoogleCloudDialogflowCxV3AgentGitIntegrationSettings", + "description": "Git integration settings for this agent." + }, "locked": { "description": "Indicates whether the agent is locked for changes. If the agent is locked, modifications to the agent will be rejected except for RestoreAgent.", "type": "boolean" @@ -3908,6 +4582,10 @@ }, "type": "array" }, + "textToSpeechSettings": { + "$ref": "GoogleCloudDialogflowCxV3TextToSpeechSettings", + "description": "Settings on instructing the speech synthesizer on how to generate the output audio content." + }, "timeZone": { "description": "Required. The time zone of the agent from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York, Europe/Paris.", "type": "string" @@ -3915,6 +4593,69 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3AgentAnswerFeedbackSettings": { + "description": "Settings for answer feedback collection.", + "id": "GoogleCloudDialogflowCxV3AgentAnswerFeedbackSettings", + "properties": { + "enableAnswerFeedback": { + "description": "Optional. If enabled, end users will be able to provide answer feedback to Dialogflow responses. Feature works only if interaction logging is enabled in the Dialogflow agent.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3AgentGenAppBuilderSettings": { + "description": "Settings for Gen App Builder.", + "id": "GoogleCloudDialogflowCxV3AgentGenAppBuilderSettings", + "properties": { + "engine": { + "description": "Required. The full name of the Gen App Builder engine related to this agent if there is one. Format: `projects/{Project ID}/locations/{Location ID}/collections/{Collection ID}/engines/{Engine ID}`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3AgentGitIntegrationSettings": { + "description": "Settings for connecting to Git repository for an agent.", + "id": "GoogleCloudDialogflowCxV3AgentGitIntegrationSettings", + "properties": { + "githubSettings": { + "$ref": "GoogleCloudDialogflowCxV3AgentGitIntegrationSettingsGithubSettings", + "description": "GitHub settings." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3AgentGitIntegrationSettingsGithubSettings": { + "description": "Settings of integration with GitHub.", + "id": "GoogleCloudDialogflowCxV3AgentGitIntegrationSettingsGithubSettings", + "properties": { + "accessToken": { + "description": "The access token used to authenticate the access to the GitHub repository.", + "type": "string" + }, + "branches": { + "description": "A list of branches configured to be used from Dialogflow.", + "items": { + "type": "string" + }, + "type": "array" + }, + "displayName": { + "description": "The unique repository display name for the GitHub repository.", + "type": "string" + }, + "repositoryUri": { + "description": "The GitHub repository URI related to the agent.", + "type": "string" + }, + "trackingBranch": { + "description": "The branch of the GitHub repository tracked for this agent.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3AgentValidationResult": { "description": "The response message for Agents.GetAgentValidationResult.", "id": "GoogleCloudDialogflowCxV3AgentValidationResult", @@ -3933,12 +4674,59 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3AnswerFeedback": { + "description": "Stores information about feedback provided by users about a response.", + "id": "GoogleCloudDialogflowCxV3AnswerFeedback", + "properties": { + "customRating": { + "description": "Optional. Custom rating from the user about the provided answer, with maximum length of 1024 characters. For example, client could use a customized JSON object to indicate the rating.", + "type": "string" + }, + "rating": { + "description": "Optional. Rating from user for the specific Dialogflow response.", + "enum": [ + "RATING_UNSPECIFIED", + "THUMBS_UP", + "THUMBS_DOWN" + ], + "enumDescriptions": [ + "Rating not specified.", + "Thumbs up feedback from user.", + "Thumbs down feedback from user." + ], + "type": "string" + }, + "ratingReason": { + "$ref": "GoogleCloudDialogflowCxV3AnswerFeedbackRatingReason", + "description": "Optional. In case of thumbs down rating provided, users can optionally provide context about the rating." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3AnswerFeedbackRatingReason": { + "description": "Stores extra information about why users provided thumbs down rating.", + "id": "GoogleCloudDialogflowCxV3AnswerFeedbackRatingReason", + "properties": { + "feedback": { + "description": "Optional. Additional feedback about the rating. This field can be populated without choosing a predefined `reason`.", + "type": "string" + }, + "reasonLabels": { + "description": "Optional. Custom reason labels for thumbs down rating provided by the user. The maximum number of labels allowed is 10 and the maximum length of a single label is 128 characters.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3AudioInput": { "description": "Represents the natural speech audio to be processed.", "id": "GoogleCloudDialogflowCxV3AudioInput", "properties": { "audio": { - "description": "The natural language speech audio to be processed. A single request can contain up to 1 minute of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", + "description": "The natural language speech audio to be processed. A single request can contain up to 2 minutes of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", "format": "byte", "type": "string" }, @@ -3949,6 +4737,23 @@ }, "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 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": { + "description": "Duration that is not eligible for barge-in at the beginning of the input audio.", + "format": "google-duration", + "type": "string" + }, + "totalDuration": { + "description": "Total duration for the playback at the beginning of the input audio.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3BatchDeleteTestCasesRequest": { "description": "The request message for TestCases.BatchDeleteTestCases.", "id": "GoogleCloudDialogflowCxV3BatchDeleteTestCasesRequest", @@ -4009,6 +4814,57 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3BoostSpec": { + "description": "Boost specification to boost certain documents. A copy of google.cloud.discoveryengine.v1main.BoostSpec, field documentation is available at https://cloud.google.com/generative-ai-app-builder/docs/reference/rest/v1alpha/BoostSpec", + "id": "GoogleCloudDialogflowCxV3BoostSpec", + "properties": { + "conditionBoostSpecs": { + "description": "Optional. Condition boost specifications. If a document matches multiple conditions in the specifictions, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 20.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3BoostSpecConditionBoostSpec" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3BoostSpecConditionBoostSpec": { + "description": "Boost applies to documents which match a condition.", + "id": "GoogleCloudDialogflowCxV3BoostSpecConditionBoostSpec", + "properties": { + "boost": { + "description": "Optional. Strength of the condition boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the document a big promotion. However, it does not necessarily mean that the boosted document will be the top result at all times, nor that other documents will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant documents. Setting to -1.0 gives the document a big demotion. However, results that are deeply relevant might still be shown. The document will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.", + "format": "float", + "type": "number" + }, + "condition": { + "description": "Optional. An expression which specifies a boost condition. The syntax and supported fields are the same as a filter expression. Examples: * To boost documents with document ID \"doc_1\" or \"doc_2\", and color \"Red\" or \"Blue\": * (id: ANY(\"doc_1\", \"doc_2\")) AND (color: ANY(\"Red\",\"Blue\"))", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3BoostSpecs": { + "description": "Boost specifications for data stores.", + "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}`", + "items": { + "type": "string" + }, + "type": "array" + }, + "spec": { + "description": "Optional. A list of boosting specifications.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3BoostSpec" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3CalculateCoverageResponse": { "description": "The response message for TestCases.CalculateCoverage.", "id": "GoogleCloudDialogflowCxV3CalculateCoverageResponse", @@ -4049,6 +4905,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" @@ -4265,6 +5125,33 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3DataStoreConnection": { + "description": "A data store connection. It represents a data store in Discovery Engine and the type of the contents it contains.", + "id": "GoogleCloudDialogflowCxV3DataStoreConnection", + "properties": { + "dataStore": { + "description": "The full name of the referenced data store. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}`", + "type": "string" + }, + "dataStoreType": { + "description": "The type of the connected data store.", + "enum": [ + "DATA_STORE_TYPE_UNSPECIFIED", + "PUBLIC_WEB", + "UNSTRUCTURED", + "STRUCTURED" + ], + "enumDescriptions": [ + "Not specified. This value indicates that the data store type is not specified, so it will not be used during search.", + "A data store that contains public web content.", + "A data store that contains unstructured private data.", + "A data store that contains structured data (for example FAQ)." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3DeleteDocumentOperationMetadata": { "description": "Metadata for DeleteDocument operation.", "id": "GoogleCloudDialogflowCxV3DeleteDocumentOperationMetadata", @@ -4317,7 +5204,7 @@ "type": "object" }, "GoogleCloudDialogflowCxV3Deployment": { - "description": "Represents an deployment in an environment. A deployment happens when a flow version configured to be active in the environment. You can configure running pre-deployment steps, e.g. running validation test cases, experiment auto-rollout, etc.", + "description": "Represents a deployment in an environment. A deployment happens when a flow version configured to be active in the environment. You can configure running pre-deployment steps, e.g. running validation test cases, experiment auto-rollout, etc.", "id": "GoogleCloudDialogflowCxV3Deployment", "properties": { "endTime": { @@ -4576,7 +5463,7 @@ "type": "string" }, "versionConfigs": { - "description": "Required. A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", + "description": "A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", "items": { "$ref": "GoogleCloudDialogflowCxV3EnvironmentVersionConfig" }, @@ -4917,17 +5804,42 @@ "description": "Optional. The data format of the exported agent. If not specified, `BLOB` is assumed.", "enum": [ "DATA_FORMAT_UNSPECIFIED", - "BLOB" + "BLOB", + "JSON_PACKAGE" ], "enumDescriptions": [ "Unspecified format.", - "Agent content will be exported as raw bytes." + "Agent content will be exported as raw bytes.", + "Agent content will be exported in JSON Package format." ], "type": "string" }, "environment": { "description": "Optional. Environment name. If not set, draft environment is assumed. Format: `projects//locations//agents//environments/`.", "type": "string" + }, + "gitDestination": { + "$ref": "GoogleCloudDialogflowCxV3ExportAgentRequestGitDestination", + "description": "Optional. The Git branch to export the agent to." + }, + "includeBigqueryExportSettings": { + "description": "Optional. Whether to include BigQuery Export setting.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ExportAgentRequestGitDestination": { + "description": "Settings for exporting to a git branch.", + "id": "GoogleCloudDialogflowCxV3ExportAgentRequestGitDestination", + "properties": { + "commitMessage": { + "description": "Commit message for the git push.", + "type": "string" + }, + "trackingBranch": { + "description": "Tracking branch for the git push.", + "type": "string" } }, "type": "object" @@ -4937,12 +5849,77 @@ "id": "GoogleCloudDialogflowCxV3ExportAgentResponse", "properties": { "agentContent": { - "description": "Uncompressed raw byte content for agent.", + "description": "Uncompressed raw byte content for agent. This field is populated if none of `agent_uri` and `git_destination` are specified in ExportAgentRequest.", "format": "byte", "type": "string" }, "agentUri": { - "description": "The URI to a file containing the exported agent. This field is populated only if `agent_uri` is specified in ExportAgentRequest.", + "description": "The URI to a file containing the exported agent. This field is populated if `agent_uri` is specified in ExportAgentRequest.", + "type": "string" + }, + "commitSha": { + "description": "Commit SHA of the git push. This field is populated if `git_destination` is specified in ExportAgentRequest.", + "type": "string" + } + }, + "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" } }, @@ -4979,6 +5956,65 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3ExportIntentsMetadata": { + "description": "Metadata returned for the Intents.ExportIntents long running operation.", + "id": "GoogleCloudDialogflowCxV3ExportIntentsMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ExportIntentsRequest": { + "description": "The request message for Intents.ExportIntents.", + "id": "GoogleCloudDialogflowCxV3ExportIntentsRequest", + "properties": { + "dataFormat": { + "description": "Optional. The data format of the exported intents. If not specified, `BLOB` is assumed.", + "enum": [ + "DATA_FORMAT_UNSPECIFIED", + "BLOB", + "JSON", + "CSV" + ], + "enumDescriptions": [ + "Unspecified format. Treated as `BLOB`.", + "Intents will be exported as raw bytes.", + "Intents will be exported in JSON format.", + "Intents will be exported in CSV format." + ], + "type": "string" + }, + "intents": { + "description": "Required. The name of the intents to export. Format: `projects//locations//agents//intents/`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "intentsContentInline": { + "description": "Optional. The option to return the serialized intents inline.", + "type": "boolean" + }, + "intentsUri": { + "description": "Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the intents 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" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ExportIntentsResponse": { + "description": "The response message for Intents.ExportIntents.", + "id": "GoogleCloudDialogflowCxV3ExportIntentsResponse", + "properties": { + "intentsContent": { + "$ref": "GoogleCloudDialogflowCxV3InlineDestination", + "description": "Uncompressed byte content for intents. This field is populated only if `intents_content_inline` is set to true in ExportIntentsRequest." + }, + "intentsUri": { + "description": "The URI to a file containing the exported intents. This field is populated only if `intents_uri` is specified in ExportIntentsRequest.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3ExportTestCasesMetadata": { "description": "Metadata returned for the TestCases.ExportTestCases long running operation. This message currently has no fields.", "id": "GoogleCloudDialogflowCxV3ExportTestCasesMetadata", @@ -5030,10 +6066,32 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3FilterSpecs": { + "description": "Filter specifications for data stores.", + "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}`", + "items": { + "type": "string" + }, + "type": "array" + }, + "filter": { + "description": "Optional. The filter expression to be applied. Expression syntax is documented at https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata#filter-expression-syntax", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3Flow": { "description": "Flows represents the conversation flows when you build your chatbot agent. A flow consists of many pages connected by the transition routes. Conversations always start with the built-in Start Flow (with an all-0 ID). Transition routes can direct the conversation session from the current flow (parent flow) to another flow (sub flow). When the sub flow is finished, Dialogflow will bring the session back to the parent flow, where the sub flow is started. Usually, when a transition route is followed by a matched intent, the intent will be \"consumed\". This means the intent won't activate more transition routes. However, when the followed transition route moves the conversation session into a different flow, the matched intent can be carried over and to be consumed in the target flow.", "id": "GoogleCloudDialogflowCxV3Flow", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", + "description": "Hierarchical advanced settings for this flow. The settings exposed at the lower level overrides the settings exposed at the higher level." + }, "description": { "description": "The description of the flow. The maximum length is 500 characters. If exceeded, the request is rejected.", "type": "string" @@ -5049,6 +6107,10 @@ }, "type": "array" }, + "knowledgeConnectorSettings": { + "$ref": "GoogleCloudDialogflowCxV3KnowledgeConnectorSettings", + "description": "Optional. Knowledge connector configuration." + }, "name": { "description": "The unique identifier of the flow. Format: `projects//locations//agents//flows/`.", "type": "string" @@ -5058,7 +6120,7 @@ "description": "NLU related settings of the flow." }, "transitionRouteGroups": { - "description": "A flow's transition route group serve two purposes: * They are responsible for matching the user's first utterances in the flow. * They are inherited by every page's transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/`.", + "description": "A flow's transition route group serve two purposes: * They are responsible for matching the user's first utterances in the flow. * They are inherited by every page's transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups.", "items": { "type": "string" }, @@ -5074,6 +6136,33 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3FlowImportStrategy": { + "description": "The flow import strategy used for resource conflict resolution associated with an ImportFlowRequest.", + "id": "GoogleCloudDialogflowCxV3FlowImportStrategy", + "properties": { + "globalImportStrategy": { + "description": "Optional. Import strategy for resource conflict resolution, applied globally throughout the flow. It will be applied for all display name conflicts in the imported content. If not specified, 'CREATE_NEW' is assumed.", + "enum": [ + "IMPORT_STRATEGY_UNSPECIFIED", + "IMPORT_STRATEGY_CREATE_NEW", + "IMPORT_STRATEGY_REPLACE", + "IMPORT_STRATEGY_KEEP", + "IMPORT_STRATEGY_MERGE", + "IMPORT_STRATEGY_THROW_ERROR" + ], + "enumDescriptions": [ + "Unspecified. Treated as 'CREATE_NEW'.", + "Create a new resource with a numeric suffix appended to the end of the existing display name.", + "Replace existing resource with incoming resource in the content to be imported.", + "Keep existing resource and discard incoming resource in the content to be imported.", + "Combine existing and incoming resources when a conflict is encountered.", + "Throw error if a conflict is encountered." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3FlowValidationResult": { "description": "The response message for Flows.GetFlowValidationResult.", "id": "GoogleCloudDialogflowCxV3FlowValidationResult", @@ -5115,6 +6204,10 @@ "description": "Represents a form parameter.", "id": "GoogleCloudDialogflowCxV3FormParameter", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", + "description": "Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level." + }, "defaultValue": { "description": "The default value of an optional parameter. If the parameter is required, the default value will be ignored.", "type": "any" @@ -5211,6 +6304,10 @@ "description": "A fulfillment can do one or more of the following actions at the same time: * Generate rich message responses. * Set parameter values. * Call the webhook. Fulfillments can be called at various stages in the Page or Form lifecycle. For example, when a DetectIntentRequest drives a session to enter a new page, the page's entry fulfillment can add a static response to the QueryResult in the returning DetectIntentResponse, call the webhook (for example, to load user data from a database), or both.", "id": "GoogleCloudDialogflowCxV3Fulfillment", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", + "description": "Hierarchical advanced settings for this fulfillment. The settings exposed at the lower level overrides the settings exposed at the higher level." + }, "conditionalCases": { "description": "Conditional cases for this fulfillment.", "items": { @@ -5218,6 +6315,10 @@ }, "type": "array" }, + "enableGenerativeFallback": { + "description": "If the flag is true, the agent will utilize LLM to generate a text response. If LLM generation fails, the defined responses in the fulfillment will be respected. This flag is only useful for fulfillments associated with no-match event handlers.", + "type": "boolean" + }, "messages": { "description": "The list of rich message responses to present to the user.", "items": { @@ -5309,6 +6410,153 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3GcsDestination": { + "description": "Google Cloud Storage location for a Dialogflow operation that writes or exports objects (e.g. exported agent or transcripts) outside of Dialogflow.", + "id": "GoogleCloudDialogflowCxV3GcsDestination", + "properties": { + "uri": { + "description": "Required. The Google Cloud Storage URI for the exported objects. A URI is of the form: `gs://bucket/object-name-or-prefix` Whether a full object name, or just a prefix, its usage depends on the Dialogflow operation.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3GenerativeSettings": { + "description": "Settings for Generative AI.", + "id": "GoogleCloudDialogflowCxV3GenerativeSettings", + "properties": { + "fallbackSettings": { + "$ref": "GoogleCloudDialogflowCxV3GenerativeSettingsFallbackSettings", + "description": "Settings for Generative Fallback." + }, + "generativeSafetySettings": { + "$ref": "GoogleCloudDialogflowCxV3SafetySettings", + "description": "Settings for Generative Safety." + }, + "knowledgeConnectorSettings": { + "$ref": "GoogleCloudDialogflowCxV3GenerativeSettingsKnowledgeConnectorSettings", + "description": "Settings for knowledge connector." + }, + "languageCode": { + "description": "Language for this settings.", + "type": "string" + }, + "name": { + "description": "Format: `projects//locations//agents//generativeSettings`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3GenerativeSettingsFallbackSettings": { + "description": "Settings for Generative Fallback.", + "id": "GoogleCloudDialogflowCxV3GenerativeSettingsFallbackSettings", + "properties": { + "promptTemplates": { + "description": "Stored prompts that can be selected, for example default templates like \"conservative\" or \"chatty\", or user defined ones.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3GenerativeSettingsFallbackSettingsPromptTemplate" + }, + "type": "array" + }, + "selectedPrompt": { + "description": "Display name of the selected prompt.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3GenerativeSettingsFallbackSettingsPromptTemplate": { + "description": "Prompt template.", + "id": "GoogleCloudDialogflowCxV3GenerativeSettingsFallbackSettingsPromptTemplate", + "properties": { + "displayName": { + "description": "Prompt name.", + "type": "string" + }, + "frozen": { + "description": "If the flag is true, the prompt is frozen and cannot be modified by users.", + "type": "boolean" + }, + "promptText": { + "description": "Prompt text that is sent to a LLM on no-match default, placeholders are filled downstream. For example: \"Here is a conversation $conversation, a response is: \"", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3GenerativeSettingsKnowledgeConnectorSettings": { + "description": "Settings for knowledge connector. These parameters are used for LLM prompt like \"You are . You are a helpful and verbose at , . Your task is to help humans on \".", + "id": "GoogleCloudDialogflowCxV3GenerativeSettingsKnowledgeConnectorSettings", + "properties": { + "agent": { + "description": "Name of the virtual agent. Used for LLM prompt. Can be left empty.", + "type": "string" + }, + "agentIdentity": { + "description": "Identity of the agent, e.g. \"virtual agent\", \"AI assistant\".", + "type": "string" + }, + "agentScope": { + "description": "Agent scope, e.g. \"Example company website\", \"internal Example company website for employees\", \"manual of car owner\".", + "type": "string" + }, + "business": { + "description": "Name of the company, organization or other entity that the agent represents. Used for knowledge connector LLM prompt and for knowledge search.", + "type": "string" + }, + "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" + }, "GoogleCloudDialogflowCxV3GenericKnowledgeOperationMetadata": { "description": "Metadata in google::longrunning::Operation for Knowledge operations.", "id": "GoogleCloudDialogflowCxV3GenericKnowledgeOperationMetadata", @@ -5358,6 +6606,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", @@ -5367,6 +6699,10 @@ "format": "byte", "type": "string" }, + "flowImportStrategy": { + "$ref": "GoogleCloudDialogflowCxV3FlowImportStrategy", + "description": "Optional. Specifies the import strategy used when resolving resource conflicts." + }, "flowUri": { "description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to import flow from. The format of this URI must be `gs:///`. Dialogflow performs a read operation for the Cloud Storage object on the caller's behalf, so your request authentication must have read permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", "type": "string" @@ -5399,6 +6735,97 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3ImportIntentsMetadata": { + "description": "Metadata returned for the Intents.ImportIntents long running operation.", + "id": "GoogleCloudDialogflowCxV3ImportIntentsMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ImportIntentsRequest": { + "description": "The request message for Intents.ImportIntents.", + "id": "GoogleCloudDialogflowCxV3ImportIntentsRequest", + "properties": { + "intentsContent": { + "$ref": "GoogleCloudDialogflowCxV3InlineSource", + "description": "Uncompressed byte content of intents." + }, + "intentsUri": { + "description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to import intents 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": "Merge option for importing intents. If not specified, `REJECT` is assumed.", + "enum": [ + "MERGE_OPTION_UNSPECIFIED", + "REJECT", + "REPLACE", + "MERGE", + "RENAME", + "REPORT_CONFLICT", + "KEEP" + ], + "enumDeprecated": [ + false, + true, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Unspecified. Should not be used.", + "DEPRECATED: Please use REPORT_CONFLICT instead. Fail the request if there are intents whose display names conflict with the display names of intents in the agent.", + "Replace the original intent in the agent with the new intent when display name conflicts exist.", + "Merge the original intent with the new intent when display name conflicts exist.", + "Create new intents with new display names to differentiate them from the existing intents when display name conflicts exist.", + "Report conflict information if display names conflict is detected. Otherwise, import intents.", + "Keep the original intent and discard the conflicting new intent when display name conflicts exist." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ImportIntentsResponse": { + "description": "The response message for Intents.ImportIntents.", + "id": "GoogleCloudDialogflowCxV3ImportIntentsResponse", + "properties": { + "conflictingResources": { + "$ref": "GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources", + "description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportIntentsRequest." + }, + "intents": { + "description": "The unique identifier of the imported intents. Format: `projects//locations//agents//intents/`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources": { + "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": "GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources", + "properties": { + "entityDisplayNames": { + "description": "Display names of conflicting entities.", + "items": { + "type": "string" + }, + "type": "array" + }, + "intentDisplayNames": { + "description": "Display names of conflicting intents.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3ImportTestCasesMetadata": { "description": "Metadata returned for the TestCases.ImportTestCases long running operation.", "id": "GoogleCloudDialogflowCxV3ImportTestCasesMetadata", @@ -5443,6 +6870,31 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3InlineDestination": { + "description": "Inline destination for a Dialogflow operation that writes or exports objects (e.g. intents) outside of Dialogflow.", + "id": "GoogleCloudDialogflowCxV3InlineDestination", + "properties": { + "content": { + "description": "Output only. The uncompressed byte content for the objects. Only populated in responses.", + "format": "byte", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3InlineSource": { + "description": "Inline source for a Dialogflow operation that reads or imports objects (e.g. intents) into Dialogflow.", + "id": "GoogleCloudDialogflowCxV3InlineSource", + "properties": { + "content": { + "description": "The uncompressed byte content for the objects.", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3InputAudioConfig": { "description": "Instructs the speech recognizer on how to process the audio content.", "id": "GoogleCloudDialogflowCxV3InputAudioConfig", @@ -5471,12 +6923,16 @@ ], "type": "string" }, + "bargeInConfig": { + "$ref": "GoogleCloudDialogflowCxV3BargeInConfig", + "description": "Configuration of barge-in behavior during the streaming of input audio." + }, "enableWordInfo": { "description": "Optional. If `true`, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words, e.g. start and end time offsets. If false or unspecified, Speech doesn't return any word-level information.", "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.", + "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": { @@ -5489,12 +6945,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": { @@ -5587,7 +7047,7 @@ "id": "GoogleCloudDialogflowCxV3IntentCoverageIntent", "properties": { "covered": { - "description": "Whether or not the intent is covered by at least one of the agent's test cases.", + "description": "Whether the intent is covered by at least one of the agent's test cases.", "type": "boolean" }, "intent": { @@ -5669,6 +7129,36 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3KnowledgeConnectorSettings": { + "description": "The Knowledge Connector settings for this page or flow. This includes information such as the attached Knowledge Bases, and the way to execute fulfillment.", + "id": "GoogleCloudDialogflowCxV3KnowledgeConnectorSettings", + "properties": { + "dataStoreConnections": { + "description": "Optional. List of related data store connections.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3DataStoreConnection" + }, + "type": "array" + }, + "enabled": { + "description": "Whether Knowledge Connector is enabled or not.", + "type": "boolean" + }, + "targetFlow": { + "description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", + "type": "string" + }, + "targetPage": { + "description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", + "type": "string" + }, + "triggerFulfillment": { + "$ref": "GoogleCloudDialogflowCxV3Fulfillment", + "description": "The fulfillment to be triggered. When the answers from the Knowledge Connector are selected by Dialogflow, you can utitlize the request scoped parameter `$request.knowledge.answers` (contains up to the 5 highest confidence answers) and `$request.knowledge.questions` (contains the corresponding questions) to construct the fulfillment." + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3ListAgentsResponse": { "description": "The response message for Agents.ListAgents.", "id": "GoogleCloudDialogflowCxV3ListAgentsResponse", @@ -5813,6 +7303,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", @@ -6062,6 +7570,10 @@ "description": "Request of MatchIntent.", "id": "GoogleCloudDialogflowCxV3MatchIntentRequest", "properties": { + "persistParameterChanges": { + "description": "Persist session parameter changes from `query_params`.", + "type": "boolean" + }, "queryInput": { "$ref": "GoogleCloudDialogflowCxV3QueryInput", "description": "Required. The input specification." @@ -6178,7 +7690,7 @@ }, "synthesizeSpeechConfig": { "$ref": "GoogleCloudDialogflowCxV3SynthesizeSpeechConfig", - "description": "Optional. Configuration of how speech should be synthesized." + "description": "Optional. Configuration of how speech should be synthesized. If not specified, Agent.text_to_speech_settings is applied." } }, "type": "object" @@ -6187,6 +7699,14 @@ "description": "A Dialogflow CX conversation (session) can be described and visualized as a state machine. The states of a CX session are represented by pages. For each flow, you define many pages, where your combined pages can handle a complete conversation on the topics the flow is designed for. At any given moment, exactly one page is the current page, the current page is considered active, and the flow associated with that page is considered active. Every flow has a special start page. When a flow initially becomes active, the start page page becomes the current page. For each conversational turn, the current page will either stay the same or transition to another page. You configure each page to collect information from the end-user that is relevant for the conversational state represented by the page. For more information, see the [Page guide](https://cloud.google.com/dialogflow/cx/docs/concept/page).", "id": "GoogleCloudDialogflowCxV3Page", "properties": { + "advancedSettings": { + "$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" @@ -6206,12 +7726,16 @@ "$ref": "GoogleCloudDialogflowCxV3Form", "description": "The form associated with the page, used for collecting parameters relevant to the page." }, + "knowledgeConnectorSettings": { + "$ref": "GoogleCloudDialogflowCxV3KnowledgeConnectorSettings", + "description": "Optional. Knowledge connector configuration." + }, "name": { "description": "The unique identifier of the page. Required for the Pages.UpdatePage method. Pages.CreatePage populates the name automatically. Format: `projects//locations//agents//flows//pages/`.", "type": "string" }, "transitionRouteGroups": { - "description": "Ordered list of `TransitionRouteGroups` associated with the page. Transition route groups must be unique within a page. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/`.", + "description": "Ordered list of `TransitionRouteGroups` added to the page. Transition route groups must be unique within a page. If the page links both flow-level transition route groups and agent-level transition route groups, the flow-level ones will have higher priority and will be put before the agent-level ones. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups.", "items": { "type": "string" }, @@ -6299,8 +7823,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. ", + "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": { @@ -6350,6 +7885,14 @@ "description": "Whether to disable webhook calls for this request.", "type": "boolean" }, + "endUserMetadata": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Optional. Information about the end-user to improve the relevance and accuracy of generative answers. This will be interpreted and used by a language model, so, for good results, the data should be self-descriptive, and in a simple structure. Example: ```json { \"subscription plan\": \"Business Premium Plus\", \"devices owned\": [ {\"model\": \"Google Pixel 7\"}, {\"model\": \"Google Pixel Tablet\"} ] } ```", + "type": "object" + }, "flowVersions": { "description": "A list of flow versions to override for the request. Format: `projects//locations//agents//flows//versions/`. If version 1 of flow X is included in this list, the traffic of flow X will go through version 1 regardless of the version configuration in the environment. Each flow can have at most one version specified in this list.", "items": { @@ -6377,6 +7920,10 @@ "description": "This field can be used to pass custom data into the webhook associated with the agent. Arbitrary JSON objects are supported. Some integrations that query a Dialogflow agent may provide additional information in the payload. In particular, for the Dialogflow Phone Gateway integration, this field has the form: ``` { \"telephony\": { \"caller_id\": \"+18558363987\" } } ```", "type": "object" }, + "searchConfig": { + "$ref": "GoogleCloudDialogflowCxV3SearchConfig", + "description": "Optional. Search configuration for UCS search queries." + }, "sessionEntityTypes": { "description": "Additional session entity types to replace or extend developer entity types with. The entity synonyms apply to all languages and persist for the session of this query.", "items": { @@ -6384,6 +7931,11 @@ }, "type": "array" }, + "sessionTtl": { + "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" + }, "timeZone": { "description": "The time zone of this conversational query from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York, Europe/Paris. If not provided, the time zone specified in the agent is used.", "type": "string" @@ -6402,6 +7954,14 @@ "description": "Represents the result of a conversational query.", "id": "GoogleCloudDialogflowCxV3QueryResult", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", + "description": "Returns the current advanced settings including IVR settings. Even though the operations configured by these settings are performed by Dialogflow, the client may need to perform special logic at the moment. For example, if Dialogflow exports audio to Google Cloud Storage, then the client may need to wait for the resulting object to appear in the bucket before proceeding." + }, + "allowAnswerFeedback": { + "description": "Indicates whether the Thumbs up/Thumbs down rating controls are need to be shown for the response in the Dialogflow Messenger widget.", + "type": "boolean" + }, "currentPage": { "$ref": "GoogleCloudDialogflowCxV3Page", "description": "The current Page. Some, not all fields are filled in this message, including but not limited to `name` and `display_name`." @@ -6416,13 +7976,15 @@ }, "dtmf": { "$ref": "GoogleCloudDialogflowCxV3DtmfInput", - "description": "If a DTMF was provided as input, this field will contain a copy of the DTMFInput." + "description": "If a DTMF was provided as input, this field will contain a copy of the DtmfInput." }, "intent": { "$ref": "GoogleCloudDialogflowCxV3Intent", + "deprecated": true, "description": "The Intent that matched the conversational query. Some, not all fields are filled in this message, including but not limited to: `name` and `display_name`. This field is deprecated, please use QueryResult.match instead." }, "intentDetectionConfidence": { + "deprecated": true, "description": "The intent detection confidence. Values range from 0.0 (completely uncertain) to 1.0 (completely certain). This value is for informational purpose only and is only used to help match the best intent within the classification threshold. This value may change for the same end-user expression at any time due to a model retraining or change in implementation. This field is deprecated, please use QueryResult.match instead.", "format": "float", "type": "number" @@ -6534,6 +8096,10 @@ "description": "Output only. A signal that indicates the interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only when the conversation reaches `END_SESSION` page. It is not supposed to be defined by the user. It's guaranteed that there is at most one such message in each response.", "readOnly": true }, + "knowledgeInfoCard": { + "$ref": "GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard", + "description": "Represents info card for knowledge answers, to be better rendered in Dialogflow Messenger." + }, "liveAgentHandoff": { "$ref": "GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff", "description": "Hands off conversation to a human agent." @@ -6559,6 +8125,22 @@ "$ref": "GoogleCloudDialogflowCxV3ResponseMessagePlayAudio", "description": "Signal that the client should play an audio clip hosted at a client-specific URI. Dialogflow uses this to construct mixed_audio. However, Dialogflow itself does not try to read or process the URI in any way." }, + "responseType": { + "description": "Response type.", + "enum": [ + "RESPONSE_TYPE_UNSPECIFIED", + "ENTRY_PROMPT", + "PARAMETER_PROMPT", + "HANDLER_PROMPT" + ], + "enumDescriptions": [ + "Not specified.", + "The response is from an entry prompt in the page.", + "The response is from form-filling prompt in the page.", + "The response is from a transition route or an event handler in the page or flow or transition route group." + ], + "type": "string" + }, "telephonyTransferCall": { "$ref": "GoogleCloudDialogflowCxV3ResponseMessageTelephonyTransferCall", "description": "A signal that the client should transfer the phone call connected to this agent to a third-party endpoint." @@ -6591,6 +8173,12 @@ "properties": {}, "type": "object" }, + "GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard": { + "description": "Represents info card response. If the response contains generative knowledge prediction, Dialogflow will return a payload with Infobot Messenger compatible info card. Otherwise, the info card response is skipped.", + "id": "GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard", + "properties": {}, + "type": "object" + }, "GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff": { "description": "Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates something went extremely wrong in the conversation. * In a webhook response when you determine that the customer issue can only be handled by a human.", "id": "GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff", @@ -6720,6 +8308,10 @@ "description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to restore agent from. The format of this URI must be `gs:///`. Dialogflow performs a read operation for the Cloud Storage object on the caller's behalf, so your request authentication must have read permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", "type": "string" }, + "gitSource": { + "$ref": "GoogleCloudDialogflowCxV3RestoreAgentRequestGitSource", + "description": "Setting for restoring from a git branch" + }, "restoreOption": { "description": "Agent restore mode. If not specified, `KEEP` is assumed.", "enum": [ @@ -6737,6 +8329,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3RestoreAgentRequestGitSource": { + "description": "Settings for restoring from a git branch", + "id": "GoogleCloudDialogflowCxV3RestoreAgentRequestGitSource", + "properties": { + "trackingBranch": { + "description": "tracking branch for the git pull", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3RolloutConfig": { "description": "The configuration for auto rollout.", "id": "GoogleCloudDialogflowCxV3RolloutConfig", @@ -6860,6 +8463,56 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3SafetySettings": { + "description": "Settings for Generative Safety.", + "id": "GoogleCloudDialogflowCxV3SafetySettings", + "properties": { + "bannedPhrases": { + "description": "Banned phrases for generated text.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3SafetySettingsPhrase" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3SafetySettingsPhrase": { + "description": "Text input which can be used for prompt or banned phrases.", + "id": "GoogleCloudDialogflowCxV3SafetySettingsPhrase", + "properties": { + "languageCode": { + "description": "Required. Language code of the phrase.", + "type": "string" + }, + "text": { + "description": "Required. Text input which can be used for prompt or banned phrases.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3SearchConfig": { + "description": "Search configuration for UCS search queries.", + "id": "GoogleCloudDialogflowCxV3SearchConfig", + "properties": { + "boostSpecs": { + "description": "Optional. Boosting configuration for the datastores.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3BoostSpecs" + }, + "type": "array" + }, + "filterSpecs": { + "description": "Optional. Filter configuration for the datastores.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3FilterSpecs" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3SecuritySettings": { "description": "Represents the settings related to security issues, such as data redaction and data retention. It may take hours for updates on the settings to propagate to all the related components and take effect.", "id": "GoogleCloudDialogflowCxV3SecuritySettings", @@ -6927,6 +8580,18 @@ ], "type": "string" }, + "retentionStrategy": { + "description": "Specifies the retention behavior defined by SecuritySettings.RetentionStrategy.", + "enum": [ + "RETENTION_STRATEGY_UNSPECIFIED", + "REMOVE_AFTER_CONVERSATION" + ], + "enumDescriptions": [ + "Retains the persisted data with Dialogflow's internal default 365d TTLs.", + "Removes data when the conversation ends. If there is no Conversation explicitly established, a default conversation ends when the corresponding Dialogflow session ends." + ], + "type": "string" + }, "retentionWindowDays": { "description": "Retains the data for the specified number of days. User must set a value lower than Dialogflow's default 365d TTL (30 days for Agent Assist traffic), higher value will be ignored and use default. Setting a value higher than that has no effect. A missing value or setting to 0 also means we use default TTL.", "format": "int32", @@ -7071,6 +8736,26 @@ "properties": {}, "type": "object" }, + "GoogleCloudDialogflowCxV3SubmitAnswerFeedbackRequest": { + "description": "The request to set the feedback for a bot answer.", + "id": "GoogleCloudDialogflowCxV3SubmitAnswerFeedbackRequest", + "properties": { + "answerFeedback": { + "$ref": "GoogleCloudDialogflowCxV3AnswerFeedback", + "description": "Required. Feedback provided for a bot answer." + }, + "responseId": { + "description": "Required. ID of the response to update its feedback. This is the same as DetectIntentResponse.response_id.", + "type": "string" + }, + "updateMask": { + "description": "Optional. The mask to control which fields to update. If the mask is not present, all fields will be updated.", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3SynthesizeSpeechConfig": { "description": "Configuration of how speech should be synthesized.", "id": "GoogleCloudDialogflowCxV3SynthesizeSpeechConfig", @@ -7254,7 +8939,7 @@ "id": "GoogleCloudDialogflowCxV3TestRunDifference", "properties": { "description": { - "description": "A description of the diff, showing the actual output vs expected output.", + "description": "A human readable description of the diff, showing the actual output vs expected output.", "type": "string" }, "type": { @@ -7264,14 +8949,16 @@ "INTENT", "PAGE", "PARAMETERS", - "UTTERANCE" + "UTTERANCE", + "FLOW" ], "enumDescriptions": [ "Should never be used.", "The intent.", "The page.", "The parameters.", - "The message utterance." + "The message utterance.", + "The flow." ], "type": "string" } @@ -7283,12 +8970,26 @@ "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" } }, "type": "object" }, + "GoogleCloudDialogflowCxV3TextToSpeechSettings": { + "description": "Settings related to speech synthesizing.", + "id": "GoogleCloudDialogflowCxV3TextToSpeechSettings", + "properties": { + "synthesizeSpeechConfigs": { + "additionalProperties": { + "$ref": "GoogleCloudDialogflowCxV3SynthesizeSpeechConfig" + }, + "description": "Configuration of how speech should be synthesized, mapping from language (https://cloud.google.com/dialogflow/cx/docs/reference/language) to SynthesizeSpeechConfig. These settings affect: - The [phone gateway](https://cloud.google.com/dialogflow/cx/docs/concept/integration/phone-gateway) synthesize configuration set via Agent.text_to_speech_settings. - How speech is synthesized when invoking session APIs. Agent.text_to_speech_settings only applies if OutputAudioConfig.synthesize_speech_config is not specified.", + "type": "object" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3TrainFlowRequest": { "description": "The request message for Flows.TrainFlow.", "id": "GoogleCloudDialogflowCxV3TrainFlowRequest", @@ -7319,7 +9020,7 @@ "id": "GoogleCloudDialogflowCxV3TransitionCoverageTransition", "properties": { "covered": { - "description": "Whether or not the transition is covered by at least one of the agent's test cases.", + "description": "Whether the transition is covered by at least one of the agent's test cases.", "type": "boolean" }, "eventHandler": { @@ -7369,6 +9070,10 @@ "description": "The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", "type": "string" }, + "description": { + "description": "Optional. The description of the transition route. The maximum length is 500 characters.", + "type": "string" + }, "intent": { "description": "The unique identifier of an Intent. Format: `projects//locations//agents//intents/`. Indicates that the transition can only happen when the given intent is matched. At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", "type": "string" @@ -7394,7 +9099,7 @@ "type": "object" }, "GoogleCloudDialogflowCxV3TransitionRouteGroup": { - "description": "An TransitionRouteGroup represents a group of `TransitionRoutes` to be used by a Page.", + "description": "A TransitionRouteGroup represents a group of `TransitionRoutes` to be used by a Page.", "id": "GoogleCloudDialogflowCxV3TransitionRouteGroup", "properties": { "displayName": { @@ -7402,7 +9107,7 @@ "type": "string" }, "name": { - "description": "The unique identifier of the transition route group. TransitionRouteGroups.CreateTransitionRouteGroup populates the name automatically. Format: `projects//locations//agents//flows//transitionRouteGroups/`.", + "description": "The unique identifier of the transition route group. TransitionRouteGroups.CreateTransitionRouteGroup populates the name automatically. Format: `projects//locations//agents//flows//transitionRouteGroups/` .", "type": "string" }, "transitionRoutes": { @@ -7462,7 +9167,7 @@ "id": "GoogleCloudDialogflowCxV3TransitionRouteGroupCoverageCoverageTransition", "properties": { "covered": { - "description": "Whether or not the transition route is covered by at least one of the agent's test cases.", + "description": "Whether the transition route is covered by at least one of the agent's test cases.", "type": "boolean" }, "transitionRoute": { @@ -7513,6 +9218,16 @@ "description": "Whether turn resulted in End Session page.", "type": "boolean" }, + "sentimentMagnitude": { + "description": "Sentiment magnitude of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, + "sentimentScore": { + "description": "Sentiment score of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, "userEscalated": { "description": "Whether user was specifically asking for a live agent.", "type": "boolean" @@ -7591,7 +9306,8 @@ "FLOW", "PAGE", "PAGES", - "TRANSITION_ROUTE_GROUP" + "TRANSITION_ROUTE_GROUP", + "AGENT_TRANSITION_ROUTE_GROUP" ], "enumDescriptions": [ "Unspecified.", @@ -7607,11 +9323,13 @@ "Flow.", "Page.", "Multiple pages.", - "Transition route group." + "Transition route group.", + "Agent transition route group." ], "type": "string" }, "resources": { + "deprecated": true, "description": "The names of the resources where the message is found.", "items": { "type": "string" @@ -7805,10 +9523,46 @@ }, "type": "array" }, + "httpMethod": { + "description": "Optional. HTTP method for the flexible webhook calls. Standard webhook always uses POST.", + "enum": [ + "HTTP_METHOD_UNSPECIFIED", + "POST", + "GET", + "HEAD", + "PUT", + "DELETE", + "PATCH", + "OPTIONS" + ], + "enumDescriptions": [ + "HTTP method not specified.", + "HTTP POST Method.", + "HTTP GET Method.", + "HTTP HEAD Method.", + "HTTP PUT Method.", + "HTTP DELETE Method.", + "HTTP PATCH Method.", + "HTTP OPTIONS Method." + ], + "type": "string" + }, + "parameterMapping": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Maps the values extracted from specific fields of the flexible webhook response into session parameters. - Key: session parameter name - Value: field path in the webhook response", + "type": "object" + }, "password": { + "deprecated": true, "description": "The password for HTTP Basic authentication.", "type": "string" }, + "requestBody": { + "description": "Optional. Defines a custom JSON object as request body to send to flexible webhook.", + "type": "string" + }, "requestHeaders": { "additionalProperties": { "type": "string" @@ -7821,8 +9575,23 @@ "type": "string" }, "username": { + "deprecated": true, "description": "The user name for HTTP Basic authentication.", "type": "string" + }, + "webhookType": { + "description": "Optional. Type of the webhook.", + "enum": [ + "WEBHOOK_TYPE_UNSPECIFIED", + "STANDARD", + "FLEXIBLE" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Represents a standard webhook.", + "Represents a flexible webhook." + ], + "type": "string" } }, "type": "object" @@ -7835,6 +9604,10 @@ "description": "Always present. The unique identifier of the DetectIntentResponse that will be returned to the API caller.", "type": "string" }, + "dtmfDigits": { + "description": "If DTMF was provided as input, this field will contain the DTMF digits.", + "type": "string" + }, "fulfillmentInfo": { "$ref": "GoogleCloudDialogflowCxV3WebhookRequestFulfillmentInfo", "description": "Always present. Information about the fulfillment that triggered this webhook call." @@ -8041,12 +9814,66 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1AdvancedSettings": { + "description": "Hierarchical advanced settings for agent/flow/page/fulfillment/parameter. Settings exposed at lower level overrides the settings exposed at higher level. Overriding occurs at the sub-setting level. For example, the playback_interruption_settings at fulfillment level only overrides the playback_interruption_settings at the agent level, leaving other settings at the agent level unchanged. DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter.", + "id": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", + "properties": { + "audioExportGcsDestination": { + "$ref": "GoogleCloudDialogflowCxV3beta1GcsDestination", + "description": "If present, incoming audio is exported by Dialogflow to the configured Google Cloud Storage destination. Exposed at the following levels: - Agent level - Flow level" + }, + "dtmfSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings", + "description": "Settings for DTMF. Exposed at the following levels: - Agent level - Flow level - Page level - Parameter level." + }, + "loggingSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings", + "description": "Settings for logging. Settings for Dialogflow History, Contact Center messages, StackDriver logs, and speech logging. Exposed at the following levels: - Agent level." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings": { + "description": "Define behaviors for DTMF (dual tone multi frequency).", + "id": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings", + "properties": { + "enabled": { + "description": "If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a \"3\" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).", + "type": "boolean" + }, + "finishDigit": { + "description": "The digit that terminates a DTMF digit sequence.", + "type": "string" + }, + "maxDigits": { + "description": "Max length of DTMF digits.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings": { + "description": "Define behaviors on logging.", + "id": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings", + "properties": { + "enableInteractionLogging": { + "description": "If true, DF Interaction logging is currently enabled.", + "type": "boolean" + }, + "enableStackdriverLogging": { + "description": "If true, StackDriver logging is currently enabled.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1AudioInput": { "description": "Represents the natural speech audio to be processed.", "id": "GoogleCloudDialogflowCxV3beta1AudioInput", "properties": { "audio": { - "description": "The natural language speech audio to be processed. A single request can contain up to 1 minute of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", + "description": "The natural language speech audio to be processed. A single request can contain up to 2 minutes of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", "format": "byte", "type": "string" }, @@ -8057,6 +9884,23 @@ }, "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 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": { + "description": "Duration that is not eligible for barge-in at the beginning of the input audio.", + "format": "google-duration", + "type": "string" + }, + "totalDuration": { + "description": "Total duration for the playback at the beginning of the input audio.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1BatchRunTestCasesMetadata": { "description": "Metadata returned for the TestCases.BatchRunTestCases long running operation.", "id": "GoogleCloudDialogflowCxV3beta1BatchRunTestCasesMetadata", @@ -8247,6 +10091,33 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1DataStoreConnection": { + "description": "A data store connection. It represents a data store in Discovery Engine and the type of the contents it contains.", + "id": "GoogleCloudDialogflowCxV3beta1DataStoreConnection", + "properties": { + "dataStore": { + "description": "The full name of the referenced data store. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}`", + "type": "string" + }, + "dataStoreType": { + "description": "The type of the connected data store.", + "enum": [ + "DATA_STORE_TYPE_UNSPECIFIED", + "PUBLIC_WEB", + "UNSTRUCTURED", + "STRUCTURED" + ], + "enumDescriptions": [ + "Not specified. This value indicates that the data store type is not specified, so it will not be used during search.", + "A data store that contains public web content.", + "A data store that contains unstructured private data.", + "A data store that contains structured data (for example FAQ)." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1DeleteDocumentOperationMetadata": { "description": "Metadata for DeleteDocument operation.", "id": "GoogleCloudDialogflowCxV3beta1DeleteDocumentOperationMetadata", @@ -8329,7 +10200,7 @@ "type": "string" }, "versionConfigs": { - "description": "Required. A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", + "description": "A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", "items": { "$ref": "GoogleCloudDialogflowCxV3beta1EnvironmentVersionConfig" }, @@ -8433,12 +10304,37 @@ "id": "GoogleCloudDialogflowCxV3beta1ExportAgentResponse", "properties": { "agentContent": { - "description": "Uncompressed raw byte content for agent.", + "description": "Uncompressed raw byte content for agent. This field is populated if none of `agent_uri` and `git_destination` are specified in ExportAgentRequest.", "format": "byte", "type": "string" }, "agentUri": { - "description": "The URI to a file containing the exported agent. This field is populated only if `agent_uri` is specified in ExportAgentRequest.", + "description": "The URI to a file containing the exported agent. This field is populated if `agent_uri` is specified in ExportAgentRequest.", + "type": "string" + }, + "commitSha": { + "description": "Commit SHA of the git push. This field is populated if `git_destination` is specified in ExportAgentRequest.", + "type": "string" + } + }, + "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" } }, @@ -8460,6 +10356,27 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ExportIntentsMetadata": { + "description": "Metadata returned for the Intents.ExportIntents long running operation.", + "id": "GoogleCloudDialogflowCxV3beta1ExportIntentsMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ExportIntentsResponse": { + "description": "The response message for Intents.ExportIntents.", + "id": "GoogleCloudDialogflowCxV3beta1ExportIntentsResponse", + "properties": { + "intentsContent": { + "$ref": "GoogleCloudDialogflowCxV3beta1InlineDestination", + "description": "Uncompressed byte content for intents. This field is populated only if `intents_content_inline` is set to true in ExportIntentsRequest." + }, + "intentsUri": { + "description": "The URI to a file containing the exported intents. This field is populated only if `intents_uri` is specified in ExportIntentsRequest.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ExportTestCasesMetadata": { "description": "Metadata returned for the TestCases.ExportTestCases long running operation. This message currently has no fields.", "id": "GoogleCloudDialogflowCxV3beta1ExportTestCasesMetadata", @@ -8500,6 +10417,10 @@ "description": "Represents a form parameter.", "id": "GoogleCloudDialogflowCxV3beta1FormParameter", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", + "description": "Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level." + }, "defaultValue": { "description": "The default value of an optional parameter. If the parameter is required, the default value will be ignored.", "type": "any" @@ -8553,6 +10474,10 @@ "description": "A fulfillment can do one or more of the following actions at the same time: * Generate rich message responses. * Set parameter values. * Call the webhook. Fulfillments can be called at various stages in the Page or Form lifecycle. For example, when a DetectIntentRequest drives a session to enter a new page, the page's entry fulfillment can add a static response to the QueryResult in the returning DetectIntentResponse, call the webhook (for example, to load user data from a database), or both.", "id": "GoogleCloudDialogflowCxV3beta1Fulfillment", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", + "description": "Hierarchical advanced settings for this fulfillment. The settings exposed at the lower level overrides the settings exposed at the higher level." + }, "conditionalCases": { "description": "Conditional cases for this fulfillment.", "items": { @@ -8560,6 +10485,10 @@ }, "type": "array" }, + "enableGenerativeFallback": { + "description": "If the flag is true, the agent will utilize LLM to generate a text response. If LLM generation fails, the defined responses in the fulfillment will be respected. This flag is only useful for fulfillments associated with no-match event handlers.", + "type": "boolean" + }, "messages": { "description": "The list of rich message responses to present to the user.", "items": { @@ -8651,6 +10580,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1GcsDestination": { + "description": "Google Cloud Storage location for a Dialogflow operation that writes or exports objects (e.g. exported agent or transcripts) outside of Dialogflow.", + "id": "GoogleCloudDialogflowCxV3beta1GcsDestination", + "properties": { + "uri": { + "description": "Required. The Google Cloud Storage URI for the exported objects. A URI is of the form: `gs://bucket/object-name-or-prefix` Whether a full object name, or just a prefix, its usage depends on the Dialogflow operation.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1GenericKnowledgeOperationMetadata": { "description": "Metadata in google::longrunning::Operation for Knowledge operations.", "id": "GoogleCloudDialogflowCxV3beta1GenericKnowledgeOperationMetadata", @@ -8700,6 +10640,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", @@ -8711,6 +10696,51 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ImportIntentsMetadata": { + "description": "Metadata returned for the Intents.ImportIntents long running operation.", + "id": "GoogleCloudDialogflowCxV3beta1ImportIntentsMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ImportIntentsResponse": { + "description": "The response message for Intents.ImportIntents.", + "id": "GoogleCloudDialogflowCxV3beta1ImportIntentsResponse", + "properties": { + "conflictingResources": { + "$ref": "GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources", + "description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportIntentsRequest." + }, + "intents": { + "description": "The unique identifier of the imported intents. Format: `projects//locations//agents//intents/`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources": { + "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": "GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources", + "properties": { + "entityDisplayNames": { + "description": "Display names of conflicting entities.", + "items": { + "type": "string" + }, + "type": "array" + }, + "intentDisplayNames": { + "description": "Display names of conflicting intents.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ImportTestCasesMetadata": { "description": "Metadata returned for the TestCases.ImportTestCases long running operation.", "id": "GoogleCloudDialogflowCxV3beta1ImportTestCasesMetadata", @@ -8739,6 +10769,19 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1InlineDestination": { + "description": "Inline destination for a Dialogflow operation that writes or exports objects (e.g. intents) outside of Dialogflow.", + "id": "GoogleCloudDialogflowCxV3beta1InlineDestination", + "properties": { + "content": { + "description": "Output only. The uncompressed byte content for the objects. Only populated in responses.", + "format": "byte", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1InputAudioConfig": { "description": "Instructs the speech recognizer on how to process the audio content.", "id": "GoogleCloudDialogflowCxV3beta1InputAudioConfig", @@ -8767,12 +10810,16 @@ ], "type": "string" }, + "bargeInConfig": { + "$ref": "GoogleCloudDialogflowCxV3beta1BargeInConfig", + "description": "Configuration of barge-in behavior during the streaming of input audio." + }, "enableWordInfo": { "description": "Optional. If `true`, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words, e.g. start and end time offsets. If false or unspecified, Speech doesn't return any word-level information.", "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.", + "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": { @@ -8785,12 +10832,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": { @@ -8931,10 +10982,48 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings": { + "description": "The Knowledge Connector settings for this page or flow. This includes information such as the attached Knowledge Bases, and the way to execute fulfillment.", + "id": "GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings", + "properties": { + "dataStoreConnections": { + "description": "Optional. List of related data store connections.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3beta1DataStoreConnection" + }, + "type": "array" + }, + "enabled": { + "description": "Whether Knowledge Connector is enabled or not.", + "type": "boolean" + }, + "targetFlow": { + "description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", + "type": "string" + }, + "targetPage": { + "description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", + "type": "string" + }, + "triggerFulfillment": { + "$ref": "GoogleCloudDialogflowCxV3beta1Fulfillment", + "description": "The fulfillment to be triggered. When the answers from the Knowledge Connector are selected by Dialogflow, you can utitlize the request scoped parameter `$request.knowledge.answers` (contains up to the 5 highest confidence answers) and `$request.knowledge.questions` (contains the corresponding questions) to construct the fulfillment." + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1Page": { "description": "A Dialogflow CX conversation (session) can be described and visualized as a state machine. The states of a CX session are represented by pages. For each flow, you define many pages, where your combined pages can handle a complete conversation on the topics the flow is designed for. At any given moment, exactly one page is the current page, the current page is considered active, and the flow associated with that page is considered active. Every flow has a special start page. When a flow initially becomes active, the start page page becomes the current page. For each conversational turn, the current page will either stay the same or transition to another page. You configure each page to collect information from the end-user that is relevant for the conversational state represented by the page. For more information, see the [Page guide](https://cloud.google.com/dialogflow/cx/docs/concept/page).", "id": "GoogleCloudDialogflowCxV3beta1Page", "properties": { + "advancedSettings": { + "$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" @@ -8954,12 +11043,16 @@ "$ref": "GoogleCloudDialogflowCxV3beta1Form", "description": "The form associated with the page, used for collecting parameters relevant to the page." }, + "knowledgeConnectorSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings", + "description": "Optional. Knowledge connector configuration." + }, "name": { "description": "The unique identifier of the page. Required for the Pages.UpdatePage method. Pages.CreatePage populates the name automatically. Format: `projects//locations//agents//flows//pages/`.", "type": "string" }, "transitionRouteGroups": { - "description": "Ordered list of `TransitionRouteGroups` associated with the page. Transition route groups must be unique within a page. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/`.", + "description": "Ordered list of `TransitionRouteGroups` added to the page. Transition route groups must be unique within a page. If the page links both flow-level transition route groups and agent-level transition route groups, the flow-level ones will have higher priority and will be put before the agent-level ones. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups.", "items": { "type": "string" }, @@ -9048,7 +11141,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. ", + "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": { @@ -9106,6 +11199,10 @@ "description": "Output only. A signal that indicates the interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only when the conversation reaches `END_SESSION` page. It is not supposed to be defined by the user. It's guaranteed that there is at most one such message in each response.", "readOnly": true }, + "knowledgeInfoCard": { + "$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard", + "description": "Represents info card for knowledge answers, to be better rendered in Dialogflow Messenger." + }, "liveAgentHandoff": { "$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff", "description": "Hands off conversation to a human agent." @@ -9163,6 +11260,12 @@ "properties": {}, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard": { + "description": "Represents info card response. If the response contains generative knowledge prediction, Dialogflow will return a payload with Infobot Messenger compatible info card. Otherwise, the info card response is skipped.", + "id": "GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard", + "properties": {}, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff": { "description": "Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates something went extremely wrong in the conversation. * In a webhook response when you determine that the customer issue can only be handled by a human.", "id": "GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff", @@ -9489,7 +11592,7 @@ "id": "GoogleCloudDialogflowCxV3beta1TestRunDifference", "properties": { "description": { - "description": "A description of the diff, showing the actual output vs expected output.", + "description": "A human readable description of the diff, showing the actual output vs expected output.", "type": "string" }, "type": { @@ -9499,14 +11602,16 @@ "INTENT", "PAGE", "PARAMETERS", - "UTTERANCE" + "UTTERANCE", + "FLOW" ], "enumDescriptions": [ "Should never be used.", "The intent.", "The page.", "The parameters.", - "The message utterance." + "The message utterance.", + "The flow." ], "type": "string" } @@ -9518,7 +11623,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" } }, @@ -9532,6 +11637,10 @@ "description": "The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", "type": "string" }, + "description": { + "description": "Optional. The description of the transition route. The maximum length is 500 characters.", + "type": "string" + }, "intent": { "description": "The unique identifier of an Intent. Format: `projects//locations//agents//intents/`. Indicates that the transition can only happen when the given intent is matched. At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", "type": "string" @@ -9597,6 +11706,16 @@ "description": "Whether turn resulted in End Session page.", "type": "boolean" }, + "sentimentMagnitude": { + "description": "Sentiment magnitude of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, + "sentimentScore": { + "description": "Sentiment score of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, "userEscalated": { "description": "Whether user was specifically asking for a live agent.", "type": "boolean" @@ -9666,10 +11785,46 @@ }, "type": "array" }, + "httpMethod": { + "description": "Optional. HTTP method for the flexible webhook calls. Standard webhook always uses POST.", + "enum": [ + "HTTP_METHOD_UNSPECIFIED", + "POST", + "GET", + "HEAD", + "PUT", + "DELETE", + "PATCH", + "OPTIONS" + ], + "enumDescriptions": [ + "HTTP method not specified.", + "HTTP POST Method.", + "HTTP GET Method.", + "HTTP HEAD Method.", + "HTTP PUT Method.", + "HTTP DELETE Method.", + "HTTP PATCH Method.", + "HTTP OPTIONS Method." + ], + "type": "string" + }, + "parameterMapping": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Maps the values extracted from specific fields of the flexible webhook response into session parameters. - Key: session parameter name - Value: field path in the webhook response", + "type": "object" + }, "password": { + "deprecated": true, "description": "The password for HTTP Basic authentication.", "type": "string" }, + "requestBody": { + "description": "Optional. Defines a custom JSON object as request body to send to flexible webhook.", + "type": "string" + }, "requestHeaders": { "additionalProperties": { "type": "string" @@ -9682,8 +11837,23 @@ "type": "string" }, "username": { + "deprecated": true, "description": "The user name for HTTP Basic authentication.", "type": "string" + }, + "webhookType": { + "description": "Optional. Type of the webhook.", + "enum": [ + "WEBHOOK_TYPE_UNSPECIFIED", + "STANDARD", + "FLEXIBLE" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Represents a standard webhook.", + "Represents a flexible webhook." + ], + "type": "string" } }, "type": "object" @@ -9696,6 +11866,10 @@ "description": "Always present. The unique identifier of the DetectIntentResponse that will be returned to the API caller.", "type": "string" }, + "dtmfDigits": { + "description": "If DTMF was provided as input, this field will contain the DTMF digits.", + "type": "string" + }, "fulfillmentInfo": { "$ref": "GoogleCloudDialogflowCxV3beta1WebhookRequestFulfillmentInfo", "description": "Always present. Information about the fulfillment that triggered this webhook call." @@ -10043,13 +12217,15 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model for chat.", - "Run smart reply model for chat." + "Run smart reply model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } @@ -10066,7 +12242,7 @@ "type": "integer" }, "name": { - "description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", + "description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", "type": "string" }, "parameters": { @@ -10074,7 +12250,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" } }, @@ -10402,7 +12578,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" } }, @@ -10475,7 +12651,7 @@ "id": "GoogleCloudDialogflowV2GcsDestination", "properties": { "uri": { - "description": "The Google Cloud Storage URIs for the output. A URI is of the form: gs://bucket/object-prefix-or-name Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", + "description": "The Google Cloud Storage URIs for the output. A URI is of the form: `gs://bucket/object-prefix-or-name` Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", "type": "string" } }, @@ -11444,6 +13620,11 @@ "EXAMPLE", "TEMPLATE" ], + "enumDeprecated": [ + false, + false, + true + ], "enumDescriptions": [ "Not specified. This value should never be used.", "Examples do not contain @-prefixed entity type names, but example parts can be annotated with entity types.", @@ -11672,7 +13853,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" }, "queryText": { @@ -11798,13 +13979,15 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model for chat.", - "Run smart reply model for chat." + "Run smart reply model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } @@ -12148,14 +14331,18 @@ "ARTICLE_SUGGESTION", "FAQ", "SMART_REPLY", - "CONVERSATION_SUMMARIZATION" + "DIALOGFLOW_ASSIST", + "CONVERSATION_SUMMARIZATION", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model.", "Run smart reply model for chat.", - "Run conversation summarization model for chat." + "Run Dialogflow assist model for chat, which will return automated agent response as suggestion.", + "Run conversation summarization model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } @@ -12172,7 +14359,7 @@ "type": "integer" }, "name": { - "description": "Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", + "description": "Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", "type": "string" }, "parameters": { @@ -12180,7 +14367,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" } }, @@ -12225,6 +14412,25 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1DialogflowAssistAnswer": { + "description": "Represents a Dialogflow assist answer.", + "id": "GoogleCloudDialogflowV2beta1DialogflowAssistAnswer", + "properties": { + "answerRecord": { + "description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", + "type": "string" + }, + "intentSuggestion": { + "$ref": "GoogleCloudDialogflowV2beta1IntentSuggestion", + "description": "An intent suggestion generated from conversation." + }, + "queryResult": { + "$ref": "GoogleCloudDialogflowV2beta1QueryResult", + "description": "Result from v2 agent." + } + }, + "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", @@ -12314,7 +14520,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" } }, @@ -12387,7 +14593,7 @@ "id": "GoogleCloudDialogflowV2beta1GcsDestination", "properties": { "uri": { - "description": "Required. The Google Cloud Storage URIs for the output. A URI is of the form: gs://bucket/object-prefix-or-name Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", + "description": "Required. The Google Cloud Storage URIs for the output. A URI is of the form: `gs://bucket/object-prefix-or-name` Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", "type": "string" } }, @@ -12520,6 +14726,7 @@ "type": "boolean" }, "mlEnabled": { + "deprecated": true, "description": "Optional. Indicates whether Machine Learning is enabled for the intent. Note: If `ml_enabled` setting is set to false, then this intent is not taken into account during inference in `ML ONLY` match mode. Also, auto-markup in the UI is turned off. DEPRECATED! Please use `ml_disabled` field instead. NOTE: If both `ml_enabled` and `ml_disabled` are either not set or false, then the default value is determined as follows: - Before April 15th, 2018 the default is: ml_enabled = false / ml_disabled = true. - After April 15th, 2018 the default is: ml_enabled = true / ml_disabled = false.", "type": "boolean" }, @@ -13575,6 +15782,25 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1IntentSuggestion": { + "description": "Represents an intent suggestion.", + "id": "GoogleCloudDialogflowV2beta1IntentSuggestion", + "properties": { + "description": { + "description": "Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters.", + "type": "string" + }, + "displayName": { + "description": "The display name of the intent.", + "type": "string" + }, + "intentV2": { + "description": "The unique identifier of this intent. Format: `projects//locations//agent/intents/`.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2beta1IntentTrainingPhrase": { "description": "Represents an example that the agent is trained on.", "id": "GoogleCloudDialogflowV2beta1IntentTrainingPhrase", @@ -13602,6 +15828,11 @@ "EXAMPLE", "TEMPLATE" ], + "enumDeprecated": [ + false, + false, + true + ], "enumDescriptions": [ "Not specified. This value should never be used.", "Examples do not contain @-prefixed entity type names, but example parts can be annotated with entity types.", @@ -13888,7 +16119,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" }, "queryText": { @@ -14015,14 +16246,18 @@ "ARTICLE_SUGGESTION", "FAQ", "SMART_REPLY", - "CONVERSATION_SUMMARIZATION" + "DIALOGFLOW_ASSIST", + "CONVERSATION_SUMMARIZATION", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model.", "Run smart reply model for chat.", - "Run conversation summarization model for chat." + "Run Dialogflow assist model for chat, which will return automated agent response as suggestion.", + "Run conversation summarization model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } @@ -14072,6 +16307,29 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse": { + "description": "The response message for Participants.SuggestDialogflowAssists.", + "id": "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse", + "properties": { + "contextSize": { + "description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestDialogflowAssistsRequest.context_size field in the request if there aren't that many messages in the conversation.", + "format": "int32", + "type": "integer" + }, + "dialogflowAssistAnswers": { + "description": "Output only. Multiple reply options provided by Dialogflow assist service. The order is based on the rank of the model prediction.", + "items": { + "$ref": "GoogleCloudDialogflowV2beta1DialogflowAssistAnswer" + }, + "type": "array" + }, + "latestMessage": { + "description": "The name of the latest conversation message used to suggest answer. Format: `projects//locations//conversations//messages/`.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2beta1SuggestFaqAnswersResponse": { "description": "The request message for Participants.SuggestFaqAnswers.", "id": "GoogleCloudDialogflowV2beta1SuggestFaqAnswersResponse", @@ -14130,6 +16388,14 @@ "$ref": "GoogleCloudDialogflowV2beta1SuggestArticlesResponse", "description": "SuggestArticlesResponse if request is for ARTICLE_SUGGESTION." }, + "suggestDialogflowAssistsResponse": { + "$ref": "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse", + "description": "SuggestDialogflowAssistsResponse if request is for DIALOGFLOW_ASSIST." + }, + "suggestEntityExtractionResponse": { + "$ref": "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse", + "description": "SuggestDialogflowAssistsResponse if request is for ENTITY_EXTRACTION." + }, "suggestFaqAnswersResponse": { "$ref": "GoogleCloudDialogflowV2beta1SuggestFaqAnswersResponse", "description": "SuggestFaqAnswersResponse if request is for FAQ_ANSWER." @@ -14361,6 +16627,16 @@ "description": "Whether turn resulted in End Session page.", "type": "boolean" }, + "sentimentMagnitude": { + "description": "Sentiment magnitude of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, + "sentimentScore": { + "description": "Sentiment score of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, "triggeredAbandonmentEvent": { "description": "Whether agent has triggered the event corresponding to user abandoning the conversation.", "type": "boolean" @@ -14409,7 +16685,7 @@ "type": "object" }, "GoogleCloudLocationLocation": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "GoogleCloudLocationLocation", "properties": { "displayName": { @@ -14489,7 +16765,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/etc/api/dialogflow/v3beta1/dialogflow-api.json b/etc/api/dialogflow/v3beta1/dialogflow-api.json index 08838d8dd6..7c6bec44e1 100644 --- a/etc/api/dialogflow/v3beta1/dialogflow-api.json +++ b/etc/api/dialogflow/v3beta1/dialogflow-api.json @@ -294,6 +294,37 @@ "https://www.googleapis.com/auth/dialogflow" ] }, + "getGenerativeSettings": { + "description": "Gets the generative settings for the agent.", + "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/generativeSettings", + "httpMethod": "GET", + "id": "dialogflow.projects.locations.agents.getGenerativeSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "languageCode": { + "description": "Required. Language code of the generative settings.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. Format: `projects//locations//agents//generativeSettings`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/generativeSettings$", + "required": true, + "type": "string" + } + }, + "path": "v3beta1/{+name}", + "response": { + "$ref": "GoogleCloudDialogflowCxV3beta1GenerativeSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, "getValidationResult": { "description": "Gets the latest agent validation result. Agent validation is performed when ValidateAgent is called.", "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/validationResult", @@ -426,6 +457,41 @@ "https://www.googleapis.com/auth/dialogflow" ] }, + "updateGenerativeSettings": { + "description": "Updates the generative settings for the agent.", + "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/generativeSettings", + "httpMethod": "PATCH", + "id": "dialogflow.projects.locations.agents.updateGenerativeSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Format: `projects//locations//agents//generativeSettings`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/generativeSettings$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. 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": "v3beta1/{+name}", + "request": { + "$ref": "GoogleCloudDialogflowCxV3beta1GenerativeSettings" + }, + "response": { + "$ref": "GoogleCloudDialogflowCxV3beta1GenerativeSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, "validate": { "description": "Validates the specified agent and creates or updates validation results. The agent in draft version is validated. Please call this API after the training is completed to get the complete validation results.", "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}:validate", @@ -596,6 +662,35 @@ "https://www.googleapis.com/auth/dialogflow" ] }, + "export": { + "description": "Exports the selected entity types.", + "flatPath": "v3beta1/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": "v3beta1/{+parent}/entityTypes:export", + "request": { + "$ref": "GoogleCloudDialogflowCxV3beta1ExportEntityTypesRequest" + }, + "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": "v3beta1/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/entityTypes/{entityTypesId}", @@ -627,6 +722,35 @@ "https://www.googleapis.com/auth/dialogflow" ] }, + "import": { + "description": "Imports the specified entitytypes into the agent.", + "flatPath": "v3beta1/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": "v3beta1/{+parent}/entityTypes:import", + "request": { + "$ref": "GoogleCloudDialogflowCxV3beta1ImportEntityTypesRequest" + }, + "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": "v3beta1/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/entityTypes", @@ -1374,6 +1498,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": "v3beta1/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": "v3beta1/{+session}:serverStreamingDetectIntent", + "request": { + "$ref": "GoogleCloudDialogflowCxV3beta1DetectIntentRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowCxV3beta1DetectIntentResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] } }, "resources": { @@ -2066,7 +2219,7 @@ "type": "string" }, "parent": { - "description": "Required. The flow to create an TransitionRouteGroup for. Format: `projects//locations//agents//flows/`.", + "description": "Required. The flow to create an TransitionRouteGroup for. Format: `projects//locations//agents//flows/` or `projects//locations//agents/` for agent-level groups.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+$", "required": true, @@ -2100,7 +2253,7 @@ "type": "boolean" }, "name": { - "description": "Required. The name of the TransitionRouteGroup to delete. Format: `projects//locations//agents//flows//transitionRouteGroups/`.", + "description": "Required. The name of the TransitionRouteGroup to delete. Format: `projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+/transitionRouteGroups/[^/]+$", "required": true, @@ -2131,7 +2284,7 @@ "type": "string" }, "name": { - "description": "Required. The name of the TransitionRouteGroup. Format: `projects//locations//agents//flows//transitionRouteGroups/`.", + "description": "Required. The name of the TransitionRouteGroup. Format: `projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+/transitionRouteGroups/[^/]+$", "required": true, @@ -2173,7 +2326,7 @@ "type": "string" }, "parent": { - "description": "Required. The flow to list all transition route groups for. Format: `projects//locations//agents//flows/`.", + "description": "Required. The flow to list all transition route groups for. Format: `projects//locations//agents//flows/` or `projects//locations//agents/.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+$", "required": true, @@ -2204,7 +2357,7 @@ "type": "string" }, "name": { - "description": "The unique identifier of the transition route group. TransitionRouteGroups.CreateTransitionRouteGroup populates the name automatically. Format: `projects//locations//agents//flows//transitionRouteGroups/`.", + "description": "The unique identifier of the transition route group. TransitionRouteGroups.CreateTransitionRouteGroup populates the name automatically. Format: `projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+/transitionRouteGroups/[^/]+$", "required": true, @@ -2448,6 +2601,188 @@ } } }, + "generators": { + "methods": { + "create": { + "description": "Creates a generator in the specified agent.", + "flatPath": "v3beta1/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": "v3beta1/{+parent}/generators", + "request": { + "$ref": "GoogleCloudDialogflowCxV3beta1Generator" + }, + "response": { + "$ref": "GoogleCloudDialogflowCxV3beta1Generator" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, + "delete": { + "description": "Deletes the specified generators.", + "flatPath": "v3beta1/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": "v3beta1/{+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": "v3beta1/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": "v3beta1/{+name}", + "response": { + "$ref": "GoogleCloudDialogflowCxV3beta1Generator" + }, + "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": "v3beta1/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": "v3beta1/{+parent}/generators", + "response": { + "$ref": "GoogleCloudDialogflowCxV3beta1ListGeneratorsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, + "patch": { + "description": "Update the specified generator.", + "flatPath": "v3beta1/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": "v3beta1/{+name}", + "request": { + "$ref": "GoogleCloudDialogflowCxV3beta1Generator" + }, + "response": { + "$ref": "GoogleCloudDialogflowCxV3beta1Generator" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + } + } + }, "intents": { "methods": { "create": { @@ -2510,6 +2845,35 @@ "https://www.googleapis.com/auth/dialogflow" ] }, + "export": { + "description": "Exports the selected intents. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: ExportIntentsMetadata - `response`: ExportIntentsResponse", + "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/intents:export", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.agents.intents.export", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The name of the parent agent to export intents. Format: `projects//locations//agents/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3beta1/{+parent}/intents:export", + "request": { + "$ref": "GoogleCloudDialogflowCxV3beta1ExportIntentsRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, "get": { "description": "Retrieves the specified intent.", "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/intents/{intentsId}", @@ -2541,6 +2905,35 @@ "https://www.googleapis.com/auth/dialogflow" ] }, + "import": { + "description": "Imports the specified intents into the agent. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: ImportIntentsMetadata - `response`: ImportIntentsResponse", + "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/intents:import", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.agents.intents.import", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The agent to import the intents into. Format: `projects//locations//agents/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3beta1/{+parent}/intents:import", + "request": { + "$ref": "GoogleCloudDialogflowCxV3beta1ImportIntentsRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, "list": { "description": "Returns the list of all intents in the specified agent.", "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/intents", @@ -2728,6 +3121,64 @@ "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": "v3beta1/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": "v3beta1/{+session}:serverStreamingDetectIntent", + "request": { + "$ref": "GoogleCloudDialogflowCxV3beta1DetectIntentRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowCxV3beta1DetectIntentResponse" + }, + "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": "v3beta1/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/sessions/{sessionsId}:submitAnswerFeedback", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.agents.sessions.submitAnswerFeedback", + "parameterOrder": [ + "session" + ], + "parameters": { + "session": { + "description": "Required. The name of the session the feedback was sent to.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/sessions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3beta1/{+session}:submitAnswerFeedback", + "request": { + "$ref": "GoogleCloudDialogflowCxV3beta1SubmitAnswerFeedbackRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowCxV3beta1AnswerFeedback" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] } }, "resources": { @@ -3253,7 +3704,7 @@ ] }, "list": { - "description": "Fetches a list of results for a given test case.", + "description": "Fetches the list of run results for the given test case. A maximum of 100 results are kept for each test case.", "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/testCases/{testCasesId}/results", "httpMethod": "GET", "id": "dialogflow.projects.locations.agents.testCases.results.list", @@ -3298,6 +3749,188 @@ } } }, + "transitionRouteGroups": { + "methods": { + "create": { + "description": "Creates an TransitionRouteGroup in the specified flow. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", + "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/transitionRouteGroups", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.agents.transitionRouteGroups.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "languageCode": { + "description": "The language of the following fields in `TransitionRouteGroup`: * `TransitionRouteGroup.transition_routes.trigger_fulfillment.messages` * `TransitionRouteGroup.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The flow to create an TransitionRouteGroup for. Format: `projects//locations//agents//flows/` or `projects//locations//agents/` for agent-level groups.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3beta1/{+parent}/transitionRouteGroups", + "request": { + "$ref": "GoogleCloudDialogflowCxV3beta1TransitionRouteGroup" + }, + "response": { + "$ref": "GoogleCloudDialogflowCxV3beta1TransitionRouteGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, + "delete": { + "description": "Deletes the specified TransitionRouteGroup. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", + "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/transitionRouteGroups/{transitionRouteGroupsId}", + "httpMethod": "DELETE", + "id": "dialogflow.projects.locations.agents.transitionRouteGroups.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "force": { + "description": "This field has no effect for transition route group that no page is using. If the transition route group is referenced by any page: * If `force` is set to false, an error will be returned with message indicating pages that reference the transition route group. * If `force` is set to true, Dialogflow will remove the transition route group, as well as any reference to it.", + "location": "query", + "type": "boolean" + }, + "name": { + "description": "Required. The name of the TransitionRouteGroup to delete. Format: `projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/transitionRouteGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3beta1/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, + "get": { + "description": "Retrieves the specified TransitionRouteGroup.", + "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/transitionRouteGroups/{transitionRouteGroupsId}", + "httpMethod": "GET", + "id": "dialogflow.projects.locations.agents.transitionRouteGroups.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "languageCode": { + "description": "The language to retrieve the transition route group for. The following fields are language dependent: * `TransitionRouteGroup.transition_routes.trigger_fulfillment.messages` * `TransitionRouteGroup.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The name of the TransitionRouteGroup. Format: `projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/transitionRouteGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3beta1/{+name}", + "response": { + "$ref": "GoogleCloudDialogflowCxV3beta1TransitionRouteGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, + "list": { + "description": "Returns the list of all transition route groups in the specified flow.", + "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/transitionRouteGroups", + "httpMethod": "GET", + "id": "dialogflow.projects.locations.agents.transitionRouteGroups.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "languageCode": { + "description": "The language to list transition route groups for. The following fields are language dependent: * `TransitionRouteGroup.transition_routes.trigger_fulfillment.messages` * `TransitionRouteGroup.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", + "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 flow to list all transition route groups for. Format: `projects//locations//agents//flows/` or `projects//locations//agents/.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3beta1/{+parent}/transitionRouteGroups", + "response": { + "$ref": "GoogleCloudDialogflowCxV3beta1ListTransitionRouteGroupsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, + "patch": { + "description": "Updates the specified TransitionRouteGroup. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", + "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/transitionRouteGroups/{transitionRouteGroupsId}", + "httpMethod": "PATCH", + "id": "dialogflow.projects.locations.agents.transitionRouteGroups.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "languageCode": { + "description": "The language of the following fields in `TransitionRouteGroup`: * `TransitionRouteGroup.transition_routes.trigger_fulfillment.messages` * `TransitionRouteGroup.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", + "location": "query", + "type": "string" + }, + "name": { + "description": "The unique identifier of the transition route group. TransitionRouteGroups.CreateTransitionRouteGroup populates the name automatically. Format: `projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/transitionRouteGroups/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The mask to control which fields get updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v3beta1/{+name}", + "request": { + "$ref": "GoogleCloudDialogflowCxV3beta1TransitionRouteGroup" + }, + "response": { + "$ref": "GoogleCloudDialogflowCxV3beta1TransitionRouteGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + } + } + }, "webhooks": { "methods": { "create": { @@ -3517,7 +4150,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "dialogflow.projects.locations.operations.list", @@ -3774,7 +4407,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v3beta1/projects/{projectsId}/operations", "httpMethod": "GET", "id": "dialogflow.projects.operations.list", @@ -3820,15 +4453,69 @@ } } }, - "revision": "20230110", + "revision": "20240228", "rootUrl": "https://dialogflow.googleapis.com/", "schemas": { + "GoogleCloudDialogflowCxV3AdvancedSettings": { + "description": "Hierarchical advanced settings for agent/flow/page/fulfillment/parameter. Settings exposed at lower level overrides the settings exposed at higher level. Overriding occurs at the sub-setting level. For example, the playback_interruption_settings at fulfillment level only overrides the playback_interruption_settings at the agent level, leaving other settings at the agent level unchanged. DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter.", + "id": "GoogleCloudDialogflowCxV3AdvancedSettings", + "properties": { + "audioExportGcsDestination": { + "$ref": "GoogleCloudDialogflowCxV3GcsDestination", + "description": "If present, incoming audio is exported by Dialogflow to the configured Google Cloud Storage destination. Exposed at the following levels: - Agent level - Flow level" + }, + "dtmfSettings": { + "$ref": "GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings", + "description": "Settings for DTMF. Exposed at the following levels: - Agent level - Flow level - Page level - Parameter level." + }, + "loggingSettings": { + "$ref": "GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings", + "description": "Settings for logging. Settings for Dialogflow History, Contact Center messages, StackDriver logs, and speech logging. Exposed at the following levels: - Agent level." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings": { + "description": "Define behaviors for DTMF (dual tone multi frequency).", + "id": "GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings", + "properties": { + "enabled": { + "description": "If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a \"3\" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).", + "type": "boolean" + }, + "finishDigit": { + "description": "The digit that terminates a DTMF digit sequence.", + "type": "string" + }, + "maxDigits": { + "description": "Max length of DTMF digits.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings": { + "description": "Define behaviors on logging.", + "id": "GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings", + "properties": { + "enableInteractionLogging": { + "description": "If true, DF Interaction logging is currently enabled.", + "type": "boolean" + }, + "enableStackdriverLogging": { + "description": "If true, StackDriver logging is currently enabled.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3AudioInput": { "description": "Represents the natural speech audio to be processed.", "id": "GoogleCloudDialogflowCxV3AudioInput", "properties": { "audio": { - "description": "The natural language speech audio to be processed. A single request can contain up to 1 minute of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", + "description": "The natural language speech audio to be processed. A single request can contain up to 2 minutes of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", "format": "byte", "type": "string" }, @@ -3839,6 +4526,23 @@ }, "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 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": { + "description": "Duration that is not eligible for barge-in at the beginning of the input audio.", + "format": "google-duration", + "type": "string" + }, + "totalDuration": { + "description": "Total duration for the playback at the beginning of the input audio.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3BatchRunTestCasesMetadata": { "description": "Metadata returned for the TestCases.BatchRunTestCases long running operation.", "id": "GoogleCloudDialogflowCxV3BatchRunTestCasesMetadata", @@ -4029,6 +4733,33 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3DataStoreConnection": { + "description": "A data store connection. It represents a data store in Discovery Engine and the type of the contents it contains.", + "id": "GoogleCloudDialogflowCxV3DataStoreConnection", + "properties": { + "dataStore": { + "description": "The full name of the referenced data store. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}`", + "type": "string" + }, + "dataStoreType": { + "description": "The type of the connected data store.", + "enum": [ + "DATA_STORE_TYPE_UNSPECIFIED", + "PUBLIC_WEB", + "UNSTRUCTURED", + "STRUCTURED" + ], + "enumDescriptions": [ + "Not specified. This value indicates that the data store type is not specified, so it will not be used during search.", + "A data store that contains public web content.", + "A data store that contains unstructured private data.", + "A data store that contains structured data (for example FAQ)." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3DeleteDocumentOperationMetadata": { "description": "Metadata for DeleteDocument operation.", "id": "GoogleCloudDialogflowCxV3DeleteDocumentOperationMetadata", @@ -4111,7 +4842,7 @@ "type": "string" }, "versionConfigs": { - "description": "Required. A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", + "description": "A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", "items": { "$ref": "GoogleCloudDialogflowCxV3EnvironmentVersionConfig" }, @@ -4215,12 +4946,37 @@ "id": "GoogleCloudDialogflowCxV3ExportAgentResponse", "properties": { "agentContent": { - "description": "Uncompressed raw byte content for agent.", + "description": "Uncompressed raw byte content for agent. This field is populated if none of `agent_uri` and `git_destination` are specified in ExportAgentRequest.", "format": "byte", "type": "string" }, "agentUri": { - "description": "The URI to a file containing the exported agent. This field is populated only if `agent_uri` is specified in ExportAgentRequest.", + "description": "The URI to a file containing the exported agent. This field is populated if `agent_uri` is specified in ExportAgentRequest.", + "type": "string" + }, + "commitSha": { + "description": "Commit SHA of the git push. This field is populated if `git_destination` is specified in ExportAgentRequest.", + "type": "string" + } + }, + "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" } }, @@ -4242,6 +4998,27 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3ExportIntentsMetadata": { + "description": "Metadata returned for the Intents.ExportIntents long running operation.", + "id": "GoogleCloudDialogflowCxV3ExportIntentsMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ExportIntentsResponse": { + "description": "The response message for Intents.ExportIntents.", + "id": "GoogleCloudDialogflowCxV3ExportIntentsResponse", + "properties": { + "intentsContent": { + "$ref": "GoogleCloudDialogflowCxV3InlineDestination", + "description": "Uncompressed byte content for intents. This field is populated only if `intents_content_inline` is set to true in ExportIntentsRequest." + }, + "intentsUri": { + "description": "The URI to a file containing the exported intents. This field is populated only if `intents_uri` is specified in ExportIntentsRequest.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3ExportTestCasesMetadata": { "description": "Metadata returned for the TestCases.ExportTestCases long running operation. This message currently has no fields.", "id": "GoogleCloudDialogflowCxV3ExportTestCasesMetadata", @@ -4282,6 +5059,10 @@ "description": "Represents a form parameter.", "id": "GoogleCloudDialogflowCxV3FormParameter", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", + "description": "Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level." + }, "defaultValue": { "description": "The default value of an optional parameter. If the parameter is required, the default value will be ignored.", "type": "any" @@ -4335,6 +5116,10 @@ "description": "A fulfillment can do one or more of the following actions at the same time: * Generate rich message responses. * Set parameter values. * Call the webhook. Fulfillments can be called at various stages in the Page or Form lifecycle. For example, when a DetectIntentRequest drives a session to enter a new page, the page's entry fulfillment can add a static response to the QueryResult in the returning DetectIntentResponse, call the webhook (for example, to load user data from a database), or both.", "id": "GoogleCloudDialogflowCxV3Fulfillment", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", + "description": "Hierarchical advanced settings for this fulfillment. The settings exposed at the lower level overrides the settings exposed at the higher level." + }, "conditionalCases": { "description": "Conditional cases for this fulfillment.", "items": { @@ -4342,6 +5127,10 @@ }, "type": "array" }, + "enableGenerativeFallback": { + "description": "If the flag is true, the agent will utilize LLM to generate a text response. If LLM generation fails, the defined responses in the fulfillment will be respected. This flag is only useful for fulfillments associated with no-match event handlers.", + "type": "boolean" + }, "messages": { "description": "The list of rich message responses to present to the user.", "items": { @@ -4433,6 +5222,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3GcsDestination": { + "description": "Google Cloud Storage location for a Dialogflow operation that writes or exports objects (e.g. exported agent or transcripts) outside of Dialogflow.", + "id": "GoogleCloudDialogflowCxV3GcsDestination", + "properties": { + "uri": { + "description": "Required. The Google Cloud Storage URI for the exported objects. A URI is of the form: `gs://bucket/object-name-or-prefix` Whether a full object name, or just a prefix, its usage depends on the Dialogflow operation.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3GenericKnowledgeOperationMetadata": { "description": "Metadata in google::longrunning::Operation for Knowledge operations.", "id": "GoogleCloudDialogflowCxV3GenericKnowledgeOperationMetadata", @@ -4482,6 +5282,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", @@ -4493,6 +5338,51 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3ImportIntentsMetadata": { + "description": "Metadata returned for the Intents.ImportIntents long running operation.", + "id": "GoogleCloudDialogflowCxV3ImportIntentsMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ImportIntentsResponse": { + "description": "The response message for Intents.ImportIntents.", + "id": "GoogleCloudDialogflowCxV3ImportIntentsResponse", + "properties": { + "conflictingResources": { + "$ref": "GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources", + "description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportIntentsRequest." + }, + "intents": { + "description": "The unique identifier of the imported intents. Format: `projects//locations//agents//intents/`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources": { + "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": "GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources", + "properties": { + "entityDisplayNames": { + "description": "Display names of conflicting entities.", + "items": { + "type": "string" + }, + "type": "array" + }, + "intentDisplayNames": { + "description": "Display names of conflicting intents.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3ImportTestCasesMetadata": { "description": "Metadata returned for the TestCases.ImportTestCases long running operation.", "id": "GoogleCloudDialogflowCxV3ImportTestCasesMetadata", @@ -4521,6 +5411,19 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3InlineDestination": { + "description": "Inline destination for a Dialogflow operation that writes or exports objects (e.g. intents) outside of Dialogflow.", + "id": "GoogleCloudDialogflowCxV3InlineDestination", + "properties": { + "content": { + "description": "Output only. The uncompressed byte content for the objects. Only populated in responses.", + "format": "byte", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3InputAudioConfig": { "description": "Instructs the speech recognizer on how to process the audio content.", "id": "GoogleCloudDialogflowCxV3InputAudioConfig", @@ -4549,12 +5452,16 @@ ], "type": "string" }, + "bargeInConfig": { + "$ref": "GoogleCloudDialogflowCxV3BargeInConfig", + "description": "Configuration of barge-in behavior during the streaming of input audio." + }, "enableWordInfo": { "description": "Optional. If `true`, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words, e.g. start and end time offsets. If false or unspecified, Speech doesn't return any word-level information.", "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.", + "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": { @@ -4567,12 +5474,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": { @@ -4713,10 +5624,48 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3KnowledgeConnectorSettings": { + "description": "The Knowledge Connector settings for this page or flow. This includes information such as the attached Knowledge Bases, and the way to execute fulfillment.", + "id": "GoogleCloudDialogflowCxV3KnowledgeConnectorSettings", + "properties": { + "dataStoreConnections": { + "description": "Optional. List of related data store connections.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3DataStoreConnection" + }, + "type": "array" + }, + "enabled": { + "description": "Whether Knowledge Connector is enabled or not.", + "type": "boolean" + }, + "targetFlow": { + "description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", + "type": "string" + }, + "targetPage": { + "description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", + "type": "string" + }, + "triggerFulfillment": { + "$ref": "GoogleCloudDialogflowCxV3Fulfillment", + "description": "The fulfillment to be triggered. When the answers from the Knowledge Connector are selected by Dialogflow, you can utitlize the request scoped parameter `$request.knowledge.answers` (contains up to the 5 highest confidence answers) and `$request.knowledge.questions` (contains the corresponding questions) to construct the fulfillment." + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3Page": { "description": "A Dialogflow CX conversation (session) can be described and visualized as a state machine. The states of a CX session are represented by pages. For each flow, you define many pages, where your combined pages can handle a complete conversation on the topics the flow is designed for. At any given moment, exactly one page is the current page, the current page is considered active, and the flow associated with that page is considered active. Every flow has a special start page. When a flow initially becomes active, the start page page becomes the current page. For each conversational turn, the current page will either stay the same or transition to another page. You configure each page to collect information from the end-user that is relevant for the conversational state represented by the page. For more information, see the [Page guide](https://cloud.google.com/dialogflow/cx/docs/concept/page).", "id": "GoogleCloudDialogflowCxV3Page", "properties": { + "advancedSettings": { + "$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" @@ -4736,12 +5685,16 @@ "$ref": "GoogleCloudDialogflowCxV3Form", "description": "The form associated with the page, used for collecting parameters relevant to the page." }, + "knowledgeConnectorSettings": { + "$ref": "GoogleCloudDialogflowCxV3KnowledgeConnectorSettings", + "description": "Optional. Knowledge connector configuration." + }, "name": { "description": "The unique identifier of the page. Required for the Pages.UpdatePage method. Pages.CreatePage populates the name automatically. Format: `projects//locations//agents//flows//pages/`.", "type": "string" }, "transitionRouteGroups": { - "description": "Ordered list of `TransitionRouteGroups` associated with the page. Transition route groups must be unique within a page. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/`.", + "description": "Ordered list of `TransitionRouteGroups` added to the page. Transition route groups must be unique within a page. If the page links both flow-level transition route groups and agent-level transition route groups, the flow-level ones will have higher priority and will be put before the agent-level ones. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups.", "items": { "type": "string" }, @@ -4830,7 +5783,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. ", + "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": { @@ -4888,6 +5841,10 @@ "description": "Output only. A signal that indicates the interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only when the conversation reaches `END_SESSION` page. It is not supposed to be defined by the user. It's guaranteed that there is at most one such message in each response.", "readOnly": true }, + "knowledgeInfoCard": { + "$ref": "GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard", + "description": "Represents info card for knowledge answers, to be better rendered in Dialogflow Messenger." + }, "liveAgentHandoff": { "$ref": "GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff", "description": "Hands off conversation to a human agent." @@ -4913,6 +5870,22 @@ "$ref": "GoogleCloudDialogflowCxV3ResponseMessagePlayAudio", "description": "Signal that the client should play an audio clip hosted at a client-specific URI. Dialogflow uses this to construct mixed_audio. However, Dialogflow itself does not try to read or process the URI in any way." }, + "responseType": { + "description": "Response type.", + "enum": [ + "RESPONSE_TYPE_UNSPECIFIED", + "ENTRY_PROMPT", + "PARAMETER_PROMPT", + "HANDLER_PROMPT" + ], + "enumDescriptions": [ + "Not specified.", + "The response is from an entry prompt in the page.", + "The response is from form-filling prompt in the page.", + "The response is from a transition route or an event handler in the page or flow or transition route group." + ], + "type": "string" + }, "telephonyTransferCall": { "$ref": "GoogleCloudDialogflowCxV3ResponseMessageTelephonyTransferCall", "description": "A signal that the client should transfer the phone call connected to this agent to a third-party endpoint." @@ -4945,6 +5918,12 @@ "properties": {}, "type": "object" }, + "GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard": { + "description": "Represents info card response. If the response contains generative knowledge prediction, Dialogflow will return a payload with Infobot Messenger compatible info card. Otherwise, the info card response is skipped.", + "id": "GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard", + "properties": {}, + "type": "object" + }, "GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff": { "description": "Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates something went extremely wrong in the conversation. * In a webhook response when you determine that the customer issue can only be handled by a human.", "id": "GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff", @@ -5271,7 +6250,7 @@ "id": "GoogleCloudDialogflowCxV3TestRunDifference", "properties": { "description": { - "description": "A description of the diff, showing the actual output vs expected output.", + "description": "A human readable description of the diff, showing the actual output vs expected output.", "type": "string" }, "type": { @@ -5281,14 +6260,16 @@ "INTENT", "PAGE", "PARAMETERS", - "UTTERANCE" + "UTTERANCE", + "FLOW" ], "enumDescriptions": [ "Should never be used.", "The intent.", "The page.", "The parameters.", - "The message utterance." + "The message utterance.", + "The flow." ], "type": "string" } @@ -5300,7 +6281,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" } }, @@ -5314,6 +6295,10 @@ "description": "The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", "type": "string" }, + "description": { + "description": "Optional. The description of the transition route. The maximum length is 500 characters.", + "type": "string" + }, "intent": { "description": "The unique identifier of an Intent. Format: `projects//locations//agents//intents/`. Indicates that the transition can only happen when the given intent is matched. At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", "type": "string" @@ -5379,6 +6364,16 @@ "description": "Whether turn resulted in End Session page.", "type": "boolean" }, + "sentimentMagnitude": { + "description": "Sentiment magnitude of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, + "sentimentScore": { + "description": "Sentiment score of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, "userEscalated": { "description": "Whether user was specifically asking for a live agent.", "type": "boolean" @@ -5448,10 +6443,46 @@ }, "type": "array" }, + "httpMethod": { + "description": "Optional. HTTP method for the flexible webhook calls. Standard webhook always uses POST.", + "enum": [ + "HTTP_METHOD_UNSPECIFIED", + "POST", + "GET", + "HEAD", + "PUT", + "DELETE", + "PATCH", + "OPTIONS" + ], + "enumDescriptions": [ + "HTTP method not specified.", + "HTTP POST Method.", + "HTTP GET Method.", + "HTTP HEAD Method.", + "HTTP PUT Method.", + "HTTP DELETE Method.", + "HTTP PATCH Method.", + "HTTP OPTIONS Method." + ], + "type": "string" + }, + "parameterMapping": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Maps the values extracted from specific fields of the flexible webhook response into session parameters. - Key: session parameter name - Value: field path in the webhook response", + "type": "object" + }, "password": { + "deprecated": true, "description": "The password for HTTP Basic authentication.", "type": "string" }, + "requestBody": { + "description": "Optional. Defines a custom JSON object as request body to send to flexible webhook.", + "type": "string" + }, "requestHeaders": { "additionalProperties": { "type": "string" @@ -5464,8 +6495,23 @@ "type": "string" }, "username": { + "deprecated": true, "description": "The user name for HTTP Basic authentication.", "type": "string" + }, + "webhookType": { + "description": "Optional. Type of the webhook.", + "enum": [ + "WEBHOOK_TYPE_UNSPECIFIED", + "STANDARD", + "FLEXIBLE" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Represents a standard webhook.", + "Represents a flexible webhook." + ], + "type": "string" } }, "type": "object" @@ -5478,6 +6524,10 @@ "description": "Always present. The unique identifier of the DetectIntentResponse that will be returned to the API caller.", "type": "string" }, + "dtmfDigits": { + "description": "If DTMF was provided as input, this field will contain the DTMF digits.", + "type": "string" + }, "fulfillmentInfo": { "$ref": "GoogleCloudDialogflowCxV3WebhookRequestFulfillmentInfo", "description": "Always present. Information about the fulfillment that triggered this webhook call." @@ -5688,6 +6738,14 @@ "description": "Hierarchical advanced settings for agent/flow/page/fulfillment/parameter. Settings exposed at lower level overrides the settings exposed at higher level. Overriding occurs at the sub-setting level. For example, the playback_interruption_settings at fulfillment level only overrides the playback_interruption_settings at the agent level, leaving other settings at the agent level unchanged. DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter.", "id": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", "properties": { + "audioExportGcsDestination": { + "$ref": "GoogleCloudDialogflowCxV3beta1GcsDestination", + "description": "If present, incoming audio is exported by Dialogflow to the configured Google Cloud Storage destination. Exposed at the following levels: - Agent level - Flow level" + }, + "dtmfSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings", + "description": "Settings for DTMF. Exposed at the following levels: - Agent level - Flow level - Page level - Parameter level." + }, "loggingSettings": { "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings", "description": "Settings for logging. Settings for Dialogflow History, Contact Center messages, StackDriver logs, and speech logging. Exposed at the following levels: - Agent level." @@ -5695,6 +6753,26 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings": { + "description": "Define behaviors for DTMF (dual tone multi frequency).", + "id": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings", + "properties": { + "enabled": { + "description": "If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a \"3\" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).", + "type": "boolean" + }, + "finishDigit": { + "description": "The digit that terminates a DTMF digit sequence.", + "type": "string" + }, + "maxDigits": { + "description": "Max length of DTMF digits.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings": { "description": "Define behaviors on logging.", "id": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings", @@ -5711,13 +6789,17 @@ "type": "object" }, "GoogleCloudDialogflowCxV3beta1Agent": { - "description": "Agents are best described as Natural Language Understanding (NLU) modules that transform user requests into actionable data. You can include agents in your app, product, or service to determine user intent and respond to the user in a natural way. After you create an agent, you can add Intents, Entity Types, Flows, Fulfillments, Webhooks, and so on to manage the conversation flows..", + "description": "Agents are best described as Natural Language Understanding (NLU) modules that transform user requests into actionable data. You can include agents in your app, product, or service to determine user intent and respond to the user in a natural way. After you create an agent, you can add Intents, Entity Types, Flows, Fulfillments, Webhooks, TransitionRouteGroups and so on to manage the conversation flows.", "id": "GoogleCloudDialogflowCxV3beta1Agent", "properties": { "advancedSettings": { "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", "description": "Hierarchical advanced settings for this agent. The settings exposed at the lower level overrides the settings exposed at the higher level." }, + "answerFeedbackSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AgentAnswerFeedbackSettings", + "description": "Optional. Answer feedback collection settings." + }, "avatarUri": { "description": "The URI of the agent's avatar. Avatars are used throughout the Dialogflow console and in the self-hosted [Web Demo](https://cloud.google.com/dialogflow/docs/integrations/web-demo) integration.", "type": "string" @@ -5739,9 +6821,18 @@ "type": "boolean" }, "enableStackdriverLogging": { + "deprecated": true, "description": "Indicates if stackdriver logging is enabled for the agent. Please use agent.advanced_settings instead.", "type": "boolean" }, + "genAppBuilderSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AgentGenAppBuilderSettings", + "description": "Gen App Builder-related agent-level settings." + }, + "gitIntegrationSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AgentGitIntegrationSettings", + "description": "Git integration settings for this agent." + }, "locked": { "description": "Indicates whether the agent is locked for changes. If the agent is locked, modifications to the agent will be rejected except for RestoreAgent.", "type": "boolean" @@ -5750,6 +6841,10 @@ "description": "The unique identifier of the agent. Required for the Agents.UpdateAgent method. Agents.CreateAgent populates the name automatically. Format: `projects//locations//agents/`.", "type": "string" }, + "personalizationSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AgentPersonalizationSettings", + "description": "Optional. Settings for end user personalization." + }, "securitySettings": { "description": "Name of the SecuritySettings reference for the agent. Format: `projects//locations//securitySettings/`.", "type": "string" @@ -5769,6 +6864,10 @@ }, "type": "array" }, + "textToSpeechSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1TextToSpeechSettings", + "description": "Settings on instructing the speech synthesizer on how to generate the output audio content." + }, "timeZone": { "description": "Required. The time zone of the agent from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York, Europe/Paris.", "type": "string" @@ -5776,6 +6875,84 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1AgentAnswerFeedbackSettings": { + "description": "Settings for answer feedback collection.", + "id": "GoogleCloudDialogflowCxV3beta1AgentAnswerFeedbackSettings", + "properties": { + "enableAnswerFeedback": { + "description": "Optional. If enabled, end users will be able to provide answer feedback to Dialogflow responses. Feature works only if interaction logging is enabled in the Dialogflow agent.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1AgentGenAppBuilderSettings": { + "description": "Settings for Gen App Builder.", + "id": "GoogleCloudDialogflowCxV3beta1AgentGenAppBuilderSettings", + "properties": { + "engine": { + "description": "Required. The full name of the Gen App Builder engine related to this agent if there is one. Format: `projects/{Project ID}/locations/{Location ID}/collections/{Collection ID}/engines/{Engine ID}`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1AgentGitIntegrationSettings": { + "description": "Settings for connecting to Git repository for an agent.", + "id": "GoogleCloudDialogflowCxV3beta1AgentGitIntegrationSettings", + "properties": { + "githubSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AgentGitIntegrationSettingsGithubSettings", + "description": "GitHub settings." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1AgentGitIntegrationSettingsGithubSettings": { + "description": "Settings of integration with GitHub.", + "id": "GoogleCloudDialogflowCxV3beta1AgentGitIntegrationSettingsGithubSettings", + "properties": { + "accessToken": { + "description": "The access token used to authenticate the access to the GitHub repository.", + "type": "string" + }, + "branches": { + "description": "A list of branches configured to be used from Dialogflow.", + "items": { + "type": "string" + }, + "type": "array" + }, + "displayName": { + "description": "The unique repository display name for the GitHub repository.", + "type": "string" + }, + "repositoryUri": { + "description": "The GitHub repository URI related to the agent.", + "type": "string" + }, + "trackingBranch": { + "description": "The branch of the GitHub repository tracked for this agent.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1AgentPersonalizationSettings": { + "description": "Settings for end user personalization.", + "id": "GoogleCloudDialogflowCxV3beta1AgentPersonalizationSettings", + "properties": { + "defaultEndUserMetadata": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Optional. Default end user metadata, used when processing DetectIntent requests. Recommended to be filled as a template instead of hard-coded value, for example { \"age\": \"$session.params.age\" }. The data will be merged with the QueryParameters.end_user_metadata in DetectIntentRequest.query_params during query processing.", + "type": "object" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1AgentValidationResult": { "description": "The response message for Agents.GetAgentValidationResult.", "id": "GoogleCloudDialogflowCxV3beta1AgentValidationResult", @@ -5794,12 +6971,59 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1AnswerFeedback": { + "description": "Stores information about feedback provided by users about a response.", + "id": "GoogleCloudDialogflowCxV3beta1AnswerFeedback", + "properties": { + "customRating": { + "description": "Optional. Custom rating from the user about the provided answer, with maximum length of 1024 characters. For example, client could use a customized JSON object to indicate the rating.", + "type": "string" + }, + "rating": { + "description": "Optional. Rating from user for the specific Dialogflow response.", + "enum": [ + "RATING_UNSPECIFIED", + "THUMBS_UP", + "THUMBS_DOWN" + ], + "enumDescriptions": [ + "Rating not specified.", + "Thumbs up feedback from user.", + "Thumbs down feedback from user." + ], + "type": "string" + }, + "ratingReason": { + "$ref": "GoogleCloudDialogflowCxV3beta1AnswerFeedbackRatingReason", + "description": "Optional. In case of thumbs down rating provided, users can optionally provide context about the rating." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1AnswerFeedbackRatingReason": { + "description": "Stores extra information about why users provided thumbs down rating.", + "id": "GoogleCloudDialogflowCxV3beta1AnswerFeedbackRatingReason", + "properties": { + "feedback": { + "description": "Optional. Additional feedback about the rating. This field can be populated without choosing a predefined `reason`.", + "type": "string" + }, + "reasonLabels": { + "description": "Optional. Custom reason labels for thumbs down rating provided by the user. The maximum number of labels allowed is 10 and the maximum length of a single label is 128 characters.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1AudioInput": { "description": "Represents the natural speech audio to be processed.", "id": "GoogleCloudDialogflowCxV3beta1AudioInput", "properties": { "audio": { - "description": "The natural language speech audio to be processed. A single request can contain up to 1 minute of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", + "description": "The natural language speech audio to be processed. A single request can contain up to 2 minutes of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", "format": "byte", "type": "string" }, @@ -5810,6 +7034,23 @@ }, "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 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": { + "description": "Duration that is not eligible for barge-in at the beginning of the input audio.", + "format": "google-duration", + "type": "string" + }, + "totalDuration": { + "description": "Total duration for the playback at the beginning of the input audio.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1BatchDeleteTestCasesRequest": { "description": "The request message for TestCases.BatchDeleteTestCases.", "id": "GoogleCloudDialogflowCxV3beta1BatchDeleteTestCasesRequest", @@ -5870,6 +7111,57 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1BoostSpec": { + "description": "Boost specification to boost certain documents. A copy of google.cloud.discoveryengine.v1main.BoostSpec, field documentation is available at https://cloud.google.com/generative-ai-app-builder/docs/reference/rest/v1alpha/BoostSpec", + "id": "GoogleCloudDialogflowCxV3beta1BoostSpec", + "properties": { + "conditionBoostSpecs": { + "description": "Optional. Condition boost specifications. If a document matches multiple conditions in the specifictions, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 20.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3beta1BoostSpecConditionBoostSpec" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1BoostSpecConditionBoostSpec": { + "description": "Boost applies to documents which match a condition.", + "id": "GoogleCloudDialogflowCxV3beta1BoostSpecConditionBoostSpec", + "properties": { + "boost": { + "description": "Optional. Strength of the condition boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the document a big promotion. However, it does not necessarily mean that the boosted document will be the top result at all times, nor that other documents will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant documents. Setting to -1.0 gives the document a big demotion. However, results that are deeply relevant might still be shown. The document will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.", + "format": "float", + "type": "number" + }, + "condition": { + "description": "Optional. An expression which specifies a boost condition. The syntax and supported fields are the same as a filter expression. Examples: * To boost documents with document ID \"doc_1\" or \"doc_2\", and color \"Red\" or \"Blue\": * (id: ANY(\"doc_1\", \"doc_2\")) AND (color: ANY(\"Red\",\"Blue\"))", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1BoostSpecs": { + "description": "Boost specifications for data stores.", + "id": "GoogleCloudDialogflowCxV3beta1BoostSpecs", + "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}", + "items": { + "type": "string" + }, + "type": "array" + }, + "spec": { + "description": "Optional. A list of boosting specifications.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3beta1BoostSpec" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1CalculateCoverageResponse": { "description": "The response message for TestCases.CalculateCoverage.", "id": "GoogleCloudDialogflowCxV3beta1CalculateCoverageResponse", @@ -5910,6 +7202,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" @@ -6126,6 +7422,33 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1DataStoreConnection": { + "description": "A data store connection. It represents a data store in Discovery Engine and the type of the contents it contains.", + "id": "GoogleCloudDialogflowCxV3beta1DataStoreConnection", + "properties": { + "dataStore": { + "description": "The full name of the referenced data store. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}`", + "type": "string" + }, + "dataStoreType": { + "description": "The type of the connected data store.", + "enum": [ + "DATA_STORE_TYPE_UNSPECIFIED", + "PUBLIC_WEB", + "UNSTRUCTURED", + "STRUCTURED" + ], + "enumDescriptions": [ + "Not specified. This value indicates that the data store type is not specified, so it will not be used during search.", + "A data store that contains public web content.", + "A data store that contains unstructured private data.", + "A data store that contains structured data (for example FAQ)." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1DeleteDocumentOperationMetadata": { "description": "Metadata for DeleteDocument operation.", "id": "GoogleCloudDialogflowCxV3beta1DeleteDocumentOperationMetadata", @@ -6178,7 +7501,7 @@ "type": "object" }, "GoogleCloudDialogflowCxV3beta1Deployment": { - "description": "Represents an deployment in an environment. A deployment happens when a flow version configured to be active in the environment. You can configure running pre-deployment steps, e.g. running validation test cases, experiment auto-rollout, etc.", + "description": "Represents a deployment in an environment. A deployment happens when a flow version configured to be active in the environment. You can configure running pre-deployment steps, e.g. running validation test cases, experiment auto-rollout, etc.", "id": "GoogleCloudDialogflowCxV3beta1Deployment", "properties": { "endTime": { @@ -6437,7 +7760,7 @@ "type": "string" }, "versionConfigs": { - "description": "Required. A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", + "description": "A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", "items": { "$ref": "GoogleCloudDialogflowCxV3beta1EnvironmentVersionConfig" }, @@ -6778,17 +8101,42 @@ "description": "Optional. The data format of the exported agent. If not specified, `BLOB` is assumed.", "enum": [ "DATA_FORMAT_UNSPECIFIED", - "BLOB" + "BLOB", + "JSON_PACKAGE" ], "enumDescriptions": [ "Unspecified format.", - "Agent content will be exported as raw bytes." + "Agent content will be exported as raw bytes.", + "Agent content will be exported in JSON Package format." ], "type": "string" }, "environment": { "description": "Optional. Environment name. If not set, draft environment is assumed. Format: `projects//locations//agents//environments/`.", "type": "string" + }, + "gitDestination": { + "$ref": "GoogleCloudDialogflowCxV3beta1ExportAgentRequestGitDestination", + "description": "Optional. The Git branch to export the agent to." + }, + "includeBigqueryExportSettings": { + "description": "Optional. Whether to include BigQuery Export setting.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ExportAgentRequestGitDestination": { + "description": "Settings for exporting to a git branch.", + "id": "GoogleCloudDialogflowCxV3beta1ExportAgentRequestGitDestination", + "properties": { + "commitMessage": { + "description": "Commit message for the git push.", + "type": "string" + }, + "trackingBranch": { + "description": "Tracking branch for the git push.", + "type": "string" } }, "type": "object" @@ -6798,12 +8146,77 @@ "id": "GoogleCloudDialogflowCxV3beta1ExportAgentResponse", "properties": { "agentContent": { - "description": "Uncompressed raw byte content for agent.", + "description": "Uncompressed raw byte content for agent. This field is populated if none of `agent_uri` and `git_destination` are specified in ExportAgentRequest.", "format": "byte", "type": "string" }, "agentUri": { - "description": "The URI to a file containing the exported agent. This field is populated only if `agent_uri` is specified in ExportAgentRequest.", + "description": "The URI to a file containing the exported agent. This field is populated if `agent_uri` is specified in ExportAgentRequest.", + "type": "string" + }, + "commitSha": { + "description": "Commit SHA of the git push. This field is populated if `git_destination` is specified in ExportAgentRequest.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ExportEntityTypesMetadata": { + "description": "Metadata returned for the EntityTypes.ExportEntityTypes long running operation.", + "id": "GoogleCloudDialogflowCxV3beta1ExportEntityTypesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ExportEntityTypesRequest": { + "description": "The request message for EntityTypes.ExportEntityTypes.", + "id": "GoogleCloudDialogflowCxV3beta1ExportEntityTypesRequest", + "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" + }, + "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" } }, @@ -6840,6 +8253,65 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ExportIntentsMetadata": { + "description": "Metadata returned for the Intents.ExportIntents long running operation.", + "id": "GoogleCloudDialogflowCxV3beta1ExportIntentsMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ExportIntentsRequest": { + "description": "The request message for Intents.ExportIntents.", + "id": "GoogleCloudDialogflowCxV3beta1ExportIntentsRequest", + "properties": { + "dataFormat": { + "description": "Optional. The data format of the exported intents. If not specified, `BLOB` is assumed.", + "enum": [ + "DATA_FORMAT_UNSPECIFIED", + "BLOB", + "JSON", + "CSV" + ], + "enumDescriptions": [ + "Unspecified format. Treated as `BLOB`.", + "Intents will be exported as raw bytes.", + "Intents will be exported in JSON format.", + "Intents will be exported in CSV format." + ], + "type": "string" + }, + "intents": { + "description": "Required. The name of the intents to export. Format: `projects//locations//agents//intents/`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "intentsContentInline": { + "description": "Optional. The option to return the serialized intents inline.", + "type": "boolean" + }, + "intentsUri": { + "description": "Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the intents 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" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ExportIntentsResponse": { + "description": "The response message for Intents.ExportIntents.", + "id": "GoogleCloudDialogflowCxV3beta1ExportIntentsResponse", + "properties": { + "intentsContent": { + "$ref": "GoogleCloudDialogflowCxV3beta1InlineDestination", + "description": "Uncompressed byte content for intents. This field is populated only if `intents_content_inline` is set to true in ExportIntentsRequest." + }, + "intentsUri": { + "description": "The URI to a file containing the exported intents. This field is populated only if `intents_uri` is specified in ExportIntentsRequest.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ExportTestCasesMetadata": { "description": "Metadata returned for the TestCases.ExportTestCases long running operation. This message currently has no fields.", "id": "GoogleCloudDialogflowCxV3beta1ExportTestCasesMetadata", @@ -6891,10 +8363,32 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1FilterSpecs": { + "description": "Filter specifications for data stores.", + "id": "GoogleCloudDialogflowCxV3beta1FilterSpecs", + "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}", + "items": { + "type": "string" + }, + "type": "array" + }, + "filter": { + "description": "Optional. The filter expression to be applied. Expression syntax is documented at https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata#filter-expression-syntax", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1Flow": { "description": "Flows represents the conversation flows when you build your chatbot agent. A flow consists of many pages connected by the transition routes. Conversations always start with the built-in Start Flow (with an all-0 ID). Transition routes can direct the conversation session from the current flow (parent flow) to another flow (sub flow). When the sub flow is finished, Dialogflow will bring the session back to the parent flow, where the sub flow is started. Usually, when a transition route is followed by a matched intent, the intent will be \"consumed\". This means the intent won't activate more transition routes. However, when the followed transition route moves the conversation session into a different flow, the matched intent can be carried over and to be consumed in the target flow.", "id": "GoogleCloudDialogflowCxV3beta1Flow", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", + "description": "Hierarchical advanced settings for this flow. The settings exposed at the lower level overrides the settings exposed at the higher level." + }, "description": { "description": "The description of the flow. The maximum length is 500 characters. If exceeded, the request is rejected.", "type": "string" @@ -6910,6 +8404,10 @@ }, "type": "array" }, + "knowledgeConnectorSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings", + "description": "Optional. Knowledge connector configuration." + }, "name": { "description": "The unique identifier of the flow. Format: `projects//locations//agents//flows/`.", "type": "string" @@ -6919,7 +8417,7 @@ "description": "NLU related settings of the flow." }, "transitionRouteGroups": { - "description": "A flow's transition route group serve two purposes: * They are responsible for matching the user's first utterances in the flow. * They are inherited by every page's transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/`.", + "description": "A flow's transition route group serve two purposes: * They are responsible for matching the user's first utterances in the flow. * They are inherited by every page's transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups.", "items": { "type": "string" }, @@ -6935,6 +8433,33 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1FlowImportStrategy": { + "description": "The flow import strategy used for resource conflict resolution associated with an ImportFlowRequest.", + "id": "GoogleCloudDialogflowCxV3beta1FlowImportStrategy", + "properties": { + "globalImportStrategy": { + "description": "Optional. Global flow import strategy for resource conflict resolution. The import Import strategy for resource conflict resolution, applied globally throughout the flow. It will be applied for all display name conflicts in the imported content. If not specified, 'CREATE_NEW' is assumed.", + "enum": [ + "IMPORT_STRATEGY_UNSPECIFIED", + "IMPORT_STRATEGY_CREATE_NEW", + "IMPORT_STRATEGY_REPLACE", + "IMPORT_STRATEGY_KEEP", + "IMPORT_STRATEGY_MERGE", + "IMPORT_STRATEGY_THROW_ERROR" + ], + "enumDescriptions": [ + "Unspecified. Treated as 'CREATE_NEW'.", + "Create a new resource with a numeric suffix appended to the end of the existing display name.", + "Replace existing resource with incoming resource in the content to be imported.", + "Keep existing resource and discard incoming resource in the content to be imported.", + "Combine existing and incoming resources when a conflict is encountered.", + "Throw error if a conflict is encountered." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1FlowValidationResult": { "description": "The response message for Flows.GetFlowValidationResult.", "id": "GoogleCloudDialogflowCxV3beta1FlowValidationResult", @@ -6976,6 +8501,10 @@ "description": "Represents a form parameter.", "id": "GoogleCloudDialogflowCxV3beta1FormParameter", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", + "description": "Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level." + }, "defaultValue": { "description": "The default value of an optional parameter. If the parameter is required, the default value will be ignored.", "type": "any" @@ -7072,6 +8601,10 @@ "description": "A fulfillment can do one or more of the following actions at the same time: * Generate rich message responses. * Set parameter values. * Call the webhook. Fulfillments can be called at various stages in the Page or Form lifecycle. For example, when a DetectIntentRequest drives a session to enter a new page, the page's entry fulfillment can add a static response to the QueryResult in the returning DetectIntentResponse, call the webhook (for example, to load user data from a database), or both.", "id": "GoogleCloudDialogflowCxV3beta1Fulfillment", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", + "description": "Hierarchical advanced settings for this fulfillment. The settings exposed at the lower level overrides the settings exposed at the higher level." + }, "conditionalCases": { "description": "Conditional cases for this fulfillment.", "items": { @@ -7079,6 +8612,10 @@ }, "type": "array" }, + "enableGenerativeFallback": { + "description": "If the flag is true, the agent will utilize LLM to generate a text response. If LLM generation fails, the defined responses in the fulfillment will be respected. This flag is only useful for fulfillments associated with no-match event handlers.", + "type": "boolean" + }, "messages": { "description": "The list of rich message responses to present to the user.", "items": { @@ -7170,6 +8707,153 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1GcsDestination": { + "description": "Google Cloud Storage location for a Dialogflow operation that writes or exports objects (e.g. exported agent or transcripts) outside of Dialogflow.", + "id": "GoogleCloudDialogflowCxV3beta1GcsDestination", + "properties": { + "uri": { + "description": "Required. The Google Cloud Storage URI for the exported objects. A URI is of the form: `gs://bucket/object-name-or-prefix` Whether a full object name, or just a prefix, its usage depends on the Dialogflow operation.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1GenerativeSettings": { + "description": "Settings for Generative AI.", + "id": "GoogleCloudDialogflowCxV3beta1GenerativeSettings", + "properties": { + "fallbackSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1GenerativeSettingsFallbackSettings", + "description": "Settings for Generative Fallback." + }, + "generativeSafetySettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1SafetySettings", + "description": "Settings for Generative Safety." + }, + "knowledgeConnectorSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1GenerativeSettingsKnowledgeConnectorSettings", + "description": "Settings for knowledge connector." + }, + "languageCode": { + "description": "Language for this settings.", + "type": "string" + }, + "name": { + "description": "Format: `projects//locations//agents//generativeSettings`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1GenerativeSettingsFallbackSettings": { + "description": "Settings for Generative Fallback.", + "id": "GoogleCloudDialogflowCxV3beta1GenerativeSettingsFallbackSettings", + "properties": { + "promptTemplates": { + "description": "Stored prompts that can be selected, for example default templates like \"conservative\" or \"chatty\", or user defined ones.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3beta1GenerativeSettingsFallbackSettingsPromptTemplate" + }, + "type": "array" + }, + "selectedPrompt": { + "description": "Display name of the selected prompt.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1GenerativeSettingsFallbackSettingsPromptTemplate": { + "description": "Prompt template.", + "id": "GoogleCloudDialogflowCxV3beta1GenerativeSettingsFallbackSettingsPromptTemplate", + "properties": { + "displayName": { + "description": "Prompt name.", + "type": "string" + }, + "frozen": { + "description": "If the flag is true, the prompt is frozen and cannot be modified by users.", + "type": "boolean" + }, + "promptText": { + "description": "Prompt text that is sent to a LLM on no-match default, placeholders are filled downstream. For example: \"Here is a conversation $conversation, a response is: \"", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1GenerativeSettingsKnowledgeConnectorSettings": { + "description": "Settings for knowledge connector. These parameters are used for LLM prompt like \"You are . You are a helpful and verbose at , . Your task is to help humans on \".", + "id": "GoogleCloudDialogflowCxV3beta1GenerativeSettingsKnowledgeConnectorSettings", + "properties": { + "agent": { + "description": "Name of the virtual agent. Used for LLM prompt. Can be left empty.", + "type": "string" + }, + "agentIdentity": { + "description": "Identity of the agent, e.g. \"virtual agent\", \"AI assistant\".", + "type": "string" + }, + "agentScope": { + "description": "Agent scope, e.g. \"Example company website\", \"internal Example company website for employees\", \"manual of car owner\".", + "type": "string" + }, + "business": { + "description": "Name of the company, organization or other entity that the agent represents. Used for knowledge connector LLM prompt and for knowledge search.", + "type": "string" + }, + "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" + }, + "GoogleCloudDialogflowCxV3beta1Generator": { + "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": "GoogleCloudDialogflowCxV3beta1Generator", + "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": "GoogleCloudDialogflowCxV3beta1GeneratorPlaceholder" + }, + "type": "array" + }, + "promptText": { + "$ref": "GoogleCloudDialogflowCxV3beta1Phrase", + "description": "Required. Prompt for the LLM model." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1GeneratorPlaceholder": { + "description": "Represents a custom placeholder in the prompt text.", + "id": "GoogleCloudDialogflowCxV3beta1GeneratorPlaceholder", + "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" + }, "GoogleCloudDialogflowCxV3beta1GenericKnowledgeOperationMetadata": { "description": "Metadata in google::longrunning::Operation for Knowledge operations.", "id": "GoogleCloudDialogflowCxV3beta1GenericKnowledgeOperationMetadata", @@ -7219,6 +8903,90 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ImportEntityTypesMetadata": { + "description": "Metadata returned for the EntityTypes.ImportEntityTypes long running operation.", + "id": "GoogleCloudDialogflowCxV3beta1ImportEntityTypesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ImportEntityTypesRequest": { + "description": "The request message for EntityTypes.ImportEntityTypes.", + "id": "GoogleCloudDialogflowCxV3beta1ImportEntityTypesRequest", + "properties": { + "entityTypesContent": { + "$ref": "GoogleCloudDialogflowCxV3beta1InlineSource", + "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" + }, + "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" + }, "GoogleCloudDialogflowCxV3beta1ImportFlowRequest": { "description": "The request message for Flows.ImportFlow.", "id": "GoogleCloudDialogflowCxV3beta1ImportFlowRequest", @@ -7228,6 +8996,10 @@ "format": "byte", "type": "string" }, + "flowImportStrategy": { + "$ref": "GoogleCloudDialogflowCxV3beta1FlowImportStrategy", + "description": "Optional. Specifies the import strategy used when resolving resource conflicts." + }, "flowUri": { "description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to import flow from. The format of this URI must be `gs:///`. Dialogflow performs a read operation for the Cloud Storage object on the caller's behalf, so your request authentication must have read permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", "type": "string" @@ -7260,6 +9032,97 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ImportIntentsMetadata": { + "description": "Metadata returned for the Intents.ImportIntents long running operation.", + "id": "GoogleCloudDialogflowCxV3beta1ImportIntentsMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ImportIntentsRequest": { + "description": "The request message for Intents.ImportIntents.", + "id": "GoogleCloudDialogflowCxV3beta1ImportIntentsRequest", + "properties": { + "intentsContent": { + "$ref": "GoogleCloudDialogflowCxV3beta1InlineSource", + "description": "Uncompressed byte content of intents." + }, + "intentsUri": { + "description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to import intents 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": "Merge option for importing intents. If not specified, `REJECT` is assumed.", + "enum": [ + "MERGE_OPTION_UNSPECIFIED", + "REJECT", + "REPLACE", + "MERGE", + "RENAME", + "REPORT_CONFLICT", + "KEEP" + ], + "enumDeprecated": [ + false, + true, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Unspecified. Should not be used.", + "DEPRECATED: Please use REPORT_CONFLICT instead. Fail the request if there are intents whose display names conflict with the display names of intents in the agent.", + "Replace the original intent in the agent with the new intent when display name conflicts exist.", + "Merge the original intent with the new intent when display name conflicts exist.", + "Create new intents with new display names to differentiate them from the existing intents when display name conflicts exist.", + "Report conflict information if display names conflict is detected. Otherwise, import intents.", + "Keep the original intent and discard the conflicting new intent when display name conflicts exist." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ImportIntentsResponse": { + "description": "The response message for Intents.ImportIntents.", + "id": "GoogleCloudDialogflowCxV3beta1ImportIntentsResponse", + "properties": { + "conflictingResources": { + "$ref": "GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources", + "description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportIntentsRequest." + }, + "intents": { + "description": "The unique identifier of the imported intents. Format: `projects//locations//agents//intents/`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources": { + "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": "GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources", + "properties": { + "entityDisplayNames": { + "description": "Display names of conflicting entities.", + "items": { + "type": "string" + }, + "type": "array" + }, + "intentDisplayNames": { + "description": "Display names of conflicting intents.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ImportTestCasesMetadata": { "description": "Metadata returned for the TestCases.ImportTestCases long running operation.", "id": "GoogleCloudDialogflowCxV3beta1ImportTestCasesMetadata", @@ -7304,6 +9167,31 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1InlineDestination": { + "description": "Inline destination for a Dialogflow operation that writes or exports objects (e.g. intents) outside of Dialogflow.", + "id": "GoogleCloudDialogflowCxV3beta1InlineDestination", + "properties": { + "content": { + "description": "Output only. The uncompressed byte content for the objects. Only populated in responses.", + "format": "byte", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1InlineSource": { + "description": "Inline source for a Dialogflow operation that reads or imports objects (e.g. intents) into Dialogflow.", + "id": "GoogleCloudDialogflowCxV3beta1InlineSource", + "properties": { + "content": { + "description": "The uncompressed byte content for the objects.", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1InputAudioConfig": { "description": "Instructs the speech recognizer on how to process the audio content.", "id": "GoogleCloudDialogflowCxV3beta1InputAudioConfig", @@ -7332,12 +9220,16 @@ ], "type": "string" }, + "bargeInConfig": { + "$ref": "GoogleCloudDialogflowCxV3beta1BargeInConfig", + "description": "Configuration of barge-in behavior during the streaming of input audio." + }, "enableWordInfo": { "description": "Optional. If `true`, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words, e.g. start and end time offsets. If false or unspecified, Speech doesn't return any word-level information.", "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.", + "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": { @@ -7350,12 +9242,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": { @@ -7448,7 +9344,7 @@ "id": "GoogleCloudDialogflowCxV3beta1IntentCoverageIntent", "properties": { "covered": { - "description": "Whether or not the intent is covered by at least one of the agent's test cases.", + "description": "Whether the intent is covered by at least one of the agent's test cases.", "type": "boolean" }, "intent": { @@ -7530,6 +9426,36 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings": { + "description": "The Knowledge Connector settings for this page or flow. This includes information such as the attached Knowledge Bases, and the way to execute fulfillment.", + "id": "GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings", + "properties": { + "dataStoreConnections": { + "description": "Optional. List of related data store connections.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3beta1DataStoreConnection" + }, + "type": "array" + }, + "enabled": { + "description": "Whether Knowledge Connector is enabled or not.", + "type": "boolean" + }, + "targetFlow": { + "description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", + "type": "string" + }, + "targetPage": { + "description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", + "type": "string" + }, + "triggerFulfillment": { + "$ref": "GoogleCloudDialogflowCxV3beta1Fulfillment", + "description": "The fulfillment to be triggered. When the answers from the Knowledge Connector are selected by Dialogflow, you can utitlize the request scoped parameter `$request.knowledge.answers` (contains up to the 5 highest confidence answers) and `$request.knowledge.questions` (contains the corresponding questions) to construct the fulfillment." + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ListAgentsResponse": { "description": "The response message for Agents.ListAgents.", "id": "GoogleCloudDialogflowCxV3beta1ListAgentsResponse", @@ -7674,6 +9600,24 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ListGeneratorsResponse": { + "description": "The response message for Generators.ListGenerators.", + "id": "GoogleCloudDialogflowCxV3beta1ListGeneratorsResponse", + "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": "GoogleCloudDialogflowCxV3beta1Generator" + }, + "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" + }, "GoogleCloudDialogflowCxV3beta1ListIntentsResponse": { "description": "The response message for Intents.ListIntents.", "id": "GoogleCloudDialogflowCxV3beta1ListIntentsResponse", @@ -7923,6 +9867,10 @@ "description": "Request of MatchIntent.", "id": "GoogleCloudDialogflowCxV3beta1MatchIntentRequest", "properties": { + "persistParameterChanges": { + "description": "Persist session parameter changes from `query_params`.", + "type": "boolean" + }, "queryInput": { "$ref": "GoogleCloudDialogflowCxV3beta1QueryInput", "description": "Required. The input specification." @@ -8039,7 +9987,7 @@ }, "synthesizeSpeechConfig": { "$ref": "GoogleCloudDialogflowCxV3beta1SynthesizeSpeechConfig", - "description": "Optional. Configuration of how speech should be synthesized." + "description": "Optional. Configuration of how speech should be synthesized. If not specified, Agent.text_to_speech_settings is applied." } }, "type": "object" @@ -8048,6 +9996,14 @@ "description": "A Dialogflow CX conversation (session) can be described and visualized as a state machine. The states of a CX session are represented by pages. For each flow, you define many pages, where your combined pages can handle a complete conversation on the topics the flow is designed for. At any given moment, exactly one page is the current page, the current page is considered active, and the flow associated with that page is considered active. Every flow has a special start page. When a flow initially becomes active, the start page page becomes the current page. For each conversational turn, the current page will either stay the same or transition to another page. You configure each page to collect information from the end-user that is relevant for the conversational state represented by the page. For more information, see the [Page guide](https://cloud.google.com/dialogflow/cx/docs/concept/page).", "id": "GoogleCloudDialogflowCxV3beta1Page", "properties": { + "advancedSettings": { + "$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" @@ -8067,12 +10023,16 @@ "$ref": "GoogleCloudDialogflowCxV3beta1Form", "description": "The form associated with the page, used for collecting parameters relevant to the page." }, + "knowledgeConnectorSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings", + "description": "Optional. Knowledge connector configuration." + }, "name": { "description": "The unique identifier of the page. Required for the Pages.UpdatePage method. Pages.CreatePage populates the name automatically. Format: `projects//locations//agents//flows//pages/`.", "type": "string" }, "transitionRouteGroups": { - "description": "Ordered list of `TransitionRouteGroups` associated with the page. Transition route groups must be unique within a page. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/`.", + "description": "Ordered list of `TransitionRouteGroups` added to the page. Transition route groups must be unique within a page. If the page links both flow-level transition route groups and agent-level transition route groups, the flow-level ones will have higher priority and will be put before the agent-level ones. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups.", "items": { "type": "string" }, @@ -8160,8 +10120,19 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1Phrase": { + "description": "Text input which can be used for prompt or banned phrases.", + "id": "GoogleCloudDialogflowCxV3beta1Phrase", + "properties": { + "text": { + "description": "Required. Text input which can be used for prompt or banned phrases.", + "type": "string" + } + }, + "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. ", + "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": { @@ -8211,6 +10182,14 @@ "description": "Whether to disable webhook calls for this request.", "type": "boolean" }, + "endUserMetadata": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Optional. Information about the end-user to improve the relevance and accuracy of generative answers. This will be interpreted and used by a language model, so, for good results, the data should be self-descriptive, and in a simple structure. Example: ```json { \"subscription plan\": \"Business Premium Plus\", \"devices owned\": [ {\"model\": \"Google Pixel 7\"}, {\"model\": \"Google Pixel Tablet\"} ] } ```", + "type": "object" + }, "flowVersions": { "description": "A list of flow versions to override for the request. Format: `projects//locations//agents//flows//versions/`. If version 1 of flow X is included in this list, the traffic of flow X will go through version 1 regardless of the version configuration in the environment. Each flow can have at most one version specified in this list.", "items": { @@ -8238,6 +10217,10 @@ "description": "This field can be used to pass custom data into the webhook associated with the agent. Arbitrary JSON objects are supported. Some integrations that query a Dialogflow agent may provide additional information in the payload. In particular, for the Dialogflow Phone Gateway integration, this field has the form: ``` { \"telephony\": { \"caller_id\": \"+18558363987\" } } ```", "type": "object" }, + "searchConfig": { + "$ref": "GoogleCloudDialogflowCxV3beta1SearchConfig", + "description": "Optional. Search configuration for UCS search queries." + }, "sessionEntityTypes": { "description": "Additional session entity types to replace or extend developer entity types with. The entity synonyms apply to all languages and persist for the session of this query.", "items": { @@ -8245,6 +10228,11 @@ }, "type": "array" }, + "sessionTtl": { + "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" + }, "timeZone": { "description": "The time zone of this conversational query from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York, Europe/Paris. If not provided, the time zone specified in the agent is used.", "type": "string" @@ -8263,6 +10251,14 @@ "description": "Represents the result of a conversational query.", "id": "GoogleCloudDialogflowCxV3beta1QueryResult", "properties": { + "advancedSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", + "description": "Returns the current advanced settings including IVR settings. Even though the operations configured by these settings are performed by Dialogflow, the client may need to perform special logic at the moment. For example, if Dialogflow exports audio to Google Cloud Storage, then the client may need to wait for the resulting object to appear in the bucket before proceeding." + }, + "allowAnswerFeedback": { + "description": "Indicates whether the Thumbs up/Thumbs down rating controls are need to be shown for the response in the Dialogflow Messenger widget.", + "type": "boolean" + }, "currentPage": { "$ref": "GoogleCloudDialogflowCxV3beta1Page", "description": "The current Page. Some, not all fields are filled in this message, including but not limited to `name` and `display_name`." @@ -8277,13 +10273,15 @@ }, "dtmf": { "$ref": "GoogleCloudDialogflowCxV3beta1DtmfInput", - "description": "If a DTMF was provided as input, this field will contain a copy of the DTMFInput." + "description": "If a DTMF was provided as input, this field will contain a copy of the DtmfInput." }, "intent": { "$ref": "GoogleCloudDialogflowCxV3beta1Intent", + "deprecated": true, "description": "The Intent that matched the conversational query. Some, not all fields are filled in this message, including but not limited to: `name` and `display_name`. This field is deprecated, please use QueryResult.match instead." }, "intentDetectionConfidence": { + "deprecated": true, "description": "The intent detection confidence. Values range from 0.0 (completely uncertain) to 1.0 (completely certain). This value is for informational purpose only and is only used to help match the best intent within the classification threshold. This value may change for the same end-user expression at any time due to a model retraining or change in implementation. This field is deprecated, please use QueryResult.match instead.", "format": "float", "type": "number" @@ -8331,6 +10329,28 @@ "description": "If an intent was provided as input, this field will contain a copy of the intent identifier. Format: `projects//locations//agents//intents/`.", "type": "string" }, + "webhookDisplayNames": { + "description": "The list of webhook display names in the order of call sequence.", + "items": { + "type": "string" + }, + "type": "array" + }, + "webhookIds": { + "description": "The list of webhook ids in the order of call sequence.", + "items": { + "type": "string" + }, + "type": "array" + }, + "webhookLatencies": { + "description": "The list of webhook latencies in the order of call sequence.", + "items": { + "format": "google-duration", + "type": "string" + }, + "type": "array" + }, "webhookPayloads": { "description": "The list of webhook payload in WebhookResponse.payload, in the order of call sequence. If some webhook call fails or doesn't return any payload, an empty `Struct` would be used instead.", "items": { @@ -8348,6 +10368,13 @@ "$ref": "GoogleRpcStatus" }, "type": "array" + }, + "webhookTags": { + "description": "The list of webhook tags in the order of call sequence.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -8395,6 +10422,10 @@ "description": "Output only. A signal that indicates the interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only when the conversation reaches `END_SESSION` page. It is not supposed to be defined by the user. It's guaranteed that there is at most one such message in each response.", "readOnly": true }, + "knowledgeInfoCard": { + "$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard", + "description": "Represents info card for knowledge answers, to be better rendered in Dialogflow Messenger." + }, "liveAgentHandoff": { "$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff", "description": "Hands off conversation to a human agent." @@ -8452,6 +10483,12 @@ "properties": {}, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard": { + "description": "Represents info card response. If the response contains generative knowledge prediction, Dialogflow will return a payload with Infobot Messenger compatible info card. Otherwise, the info card response is skipped.", + "id": "GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard", + "properties": {}, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff": { "description": "Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates something went extremely wrong in the conversation. * In a webhook response when you determine that the customer issue can only be handled by a human.", "id": "GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff", @@ -8581,6 +10618,10 @@ "description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to restore agent from. The format of this URI must be `gs:///`. Dialogflow performs a read operation for the Cloud Storage object on the caller's behalf, so your request authentication must have read permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", "type": "string" }, + "gitSource": { + "$ref": "GoogleCloudDialogflowCxV3beta1RestoreAgentRequestGitSource", + "description": "Setting for restoring from a git branch" + }, "restoreOption": { "description": "Agent restore mode. If not specified, `KEEP` is assumed.", "enum": [ @@ -8598,6 +10639,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1RestoreAgentRequestGitSource": { + "description": "Settings for restoring from a git branch", + "id": "GoogleCloudDialogflowCxV3beta1RestoreAgentRequestGitSource", + "properties": { + "trackingBranch": { + "description": "tracking branch for the git pull", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1RolloutConfig": { "description": "The configuration for auto rollout.", "id": "GoogleCloudDialogflowCxV3beta1RolloutConfig", @@ -8721,6 +10773,56 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1SafetySettings": { + "description": "Settings for Generative Safety.", + "id": "GoogleCloudDialogflowCxV3beta1SafetySettings", + "properties": { + "bannedPhrases": { + "description": "Banned phrases for generated text.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3beta1SafetySettingsPhrase" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1SafetySettingsPhrase": { + "description": "Text input which can be used for prompt or banned phrases.", + "id": "GoogleCloudDialogflowCxV3beta1SafetySettingsPhrase", + "properties": { + "languageCode": { + "description": "Required. Language code of the phrase.", + "type": "string" + }, + "text": { + "description": "Required. Text input which can be used for prompt or banned phrases.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1SearchConfig": { + "description": "Search configuration for UCS search queries.", + "id": "GoogleCloudDialogflowCxV3beta1SearchConfig", + "properties": { + "boostSpecs": { + "description": "Optional. Boosting configuration for the datastores.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3beta1BoostSpecs" + }, + "type": "array" + }, + "filterSpecs": { + "description": "Optional. Filter configuration for the datastores.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3beta1FilterSpecs" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1SecuritySettings": { "description": "Represents the settings related to security issues, such as data redaction and data retention. It may take hours for updates on the settings to propagate to all the related components and take effect.", "id": "GoogleCloudDialogflowCxV3beta1SecuritySettings", @@ -8788,8 +10890,20 @@ ], "type": "string" }, + "retentionStrategy": { + "description": "Specifies the retention behavior defined by SecuritySettings.RetentionStrategy.", + "enum": [ + "RETENTION_STRATEGY_UNSPECIFIED", + "REMOVE_AFTER_CONVERSATION" + ], + "enumDescriptions": [ + "Retains the persisted data with Dialogflow's internal default 365d TTLs.", + "Removes data when the conversation ends. If there is no Conversation explicitly established, a default conversation ends when the corresponding Dialogflow session ends." + ], + "type": "string" + }, "retentionWindowDays": { - "description": "Retains data in interaction logging for the specified number of days. This does not apply to Cloud logging, which is owned by the user - not Dialogflow. User must set a value lower than Dialogflow's default 365d TTL (30 days for Agent Assist traffic), higher value will be ignored and use default. Setting a value higher than that has no effect. A missing value or setting to 0 also means we use default TTL.", + "description": "Retains data in interaction logging for the specified number of days. This does not apply to Cloud logging, which is owned by the user - not Dialogflow. User must set a value lower than Dialogflow's default 365d TTL (30 days for Agent Assist traffic), higher value will be ignored and use default. Setting a value higher than that has no effect. A missing value or setting to 0 also means we use default TTL. When data retention configuration is changed, it only applies to the data created after the change; the TTL of existing data created before the change stays intact.", "format": "int32", "type": "integer" } @@ -8821,7 +10935,7 @@ "type": "string" }, "enableAudioRedaction": { - "description": "Enable audio redaction if it is true.", + "description": "Enable audio redaction if it is true. Note that this only redacts end-user audio data; Synthesised audio from the virtual agent is not redacted.", "type": "boolean" }, "gcsBucket": { @@ -8932,6 +11046,26 @@ "properties": {}, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1SubmitAnswerFeedbackRequest": { + "description": "The request to set the feedback for a bot answer.", + "id": "GoogleCloudDialogflowCxV3beta1SubmitAnswerFeedbackRequest", + "properties": { + "answerFeedback": { + "$ref": "GoogleCloudDialogflowCxV3beta1AnswerFeedback", + "description": "Required. Feedback provided for a bot answer." + }, + "responseId": { + "description": "Required. ID of the response to update its feedback. This is the same as DetectIntentResponse.response_id.", + "type": "string" + }, + "updateMask": { + "description": "Optional. The mask to control which fields to update. If the mask is not present, all fields will be updated.", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1SynthesizeSpeechConfig": { "description": "Configuration of how speech should be synthesized.", "id": "GoogleCloudDialogflowCxV3beta1SynthesizeSpeechConfig", @@ -9115,7 +11249,7 @@ "id": "GoogleCloudDialogflowCxV3beta1TestRunDifference", "properties": { "description": { - "description": "A description of the diff, showing the actual output vs expected output.", + "description": "A human readable description of the diff, showing the actual output vs expected output.", "type": "string" }, "type": { @@ -9125,14 +11259,16 @@ "INTENT", "PAGE", "PARAMETERS", - "UTTERANCE" + "UTTERANCE", + "FLOW" ], "enumDescriptions": [ "Should never be used.", "The intent.", "The page.", "The parameters.", - "The message utterance." + "The message utterance.", + "The flow." ], "type": "string" } @@ -9144,12 +11280,26 @@ "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" } }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1TextToSpeechSettings": { + "description": "Settings related to speech synthesizing.", + "id": "GoogleCloudDialogflowCxV3beta1TextToSpeechSettings", + "properties": { + "synthesizeSpeechConfigs": { + "additionalProperties": { + "$ref": "GoogleCloudDialogflowCxV3beta1SynthesizeSpeechConfig" + }, + "description": "Configuration of how speech should be synthesized, mapping from language (https://cloud.google.com/dialogflow/cx/docs/reference/language) to SynthesizeSpeechConfig. These settings affect: - The [phone gateway](https://cloud.google.com/dialogflow/cx/docs/concept/integration/phone-gateway) synthesize configuration set via Agent.text_to_speech_settings. - How speech is synthesized when invoking session APIs. Agent.text_to_speech_settings only applies if OutputAudioConfig.synthesize_speech_config is not specified.", + "type": "object" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1TrainFlowRequest": { "description": "The request message for Flows.TrainFlow.", "id": "GoogleCloudDialogflowCxV3beta1TrainFlowRequest", @@ -9180,7 +11330,7 @@ "id": "GoogleCloudDialogflowCxV3beta1TransitionCoverageTransition", "properties": { "covered": { - "description": "Whether or not the transition is covered by at least one of the agent's test cases.", + "description": "Whether the transition is covered by at least one of the agent's test cases.", "type": "boolean" }, "eventHandler": { @@ -9230,6 +11380,10 @@ "description": "The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", "type": "string" }, + "description": { + "description": "Optional. The description of the transition route. The maximum length is 500 characters.", + "type": "string" + }, "intent": { "description": "The unique identifier of an Intent. Format: `projects//locations//agents//intents/`. Indicates that the transition can only happen when the given intent is matched. At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", "type": "string" @@ -9255,7 +11409,7 @@ "type": "object" }, "GoogleCloudDialogflowCxV3beta1TransitionRouteGroup": { - "description": "An TransitionRouteGroup represents a group of `TransitionRoutes` to be used by a Page.", + "description": "A TransitionRouteGroup represents a group of `TransitionRoutes` to be used by a Page.", "id": "GoogleCloudDialogflowCxV3beta1TransitionRouteGroup", "properties": { "displayName": { @@ -9263,7 +11417,7 @@ "type": "string" }, "name": { - "description": "The unique identifier of the transition route group. TransitionRouteGroups.CreateTransitionRouteGroup populates the name automatically. Format: `projects//locations//agents//flows//transitionRouteGroups/`.", + "description": "The unique identifier of the transition route group. TransitionRouteGroups.CreateTransitionRouteGroup populates the name automatically. Format: `projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups.", "type": "string" }, "transitionRoutes": { @@ -9323,7 +11477,7 @@ "id": "GoogleCloudDialogflowCxV3beta1TransitionRouteGroupCoverageCoverageTransition", "properties": { "covered": { - "description": "Whether or not the transition route is covered by at least one of the agent's test cases.", + "description": "Whether the transition route is covered by at least one of the agent's test cases.", "type": "boolean" }, "transitionRoute": { @@ -9374,6 +11528,16 @@ "description": "Whether turn resulted in End Session page.", "type": "boolean" }, + "sentimentMagnitude": { + "description": "Sentiment magnitude of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, + "sentimentScore": { + "description": "Sentiment score of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, "userEscalated": { "description": "Whether user was specifically asking for a live agent.", "type": "boolean" @@ -9452,7 +11616,8 @@ "FLOW", "PAGE", "PAGES", - "TRANSITION_ROUTE_GROUP" + "TRANSITION_ROUTE_GROUP", + "AGENT_TRANSITION_ROUTE_GROUP" ], "enumDescriptions": [ "Unspecified.", @@ -9468,11 +11633,13 @@ "Flow.", "Page.", "Multiple pages.", - "Transition route group." + "Transition route group.", + "Agent transition route group." ], "type": "string" }, "resources": { + "deprecated": true, "description": "The names of the resources where the message is found.", "items": { "type": "string" @@ -9666,10 +11833,46 @@ }, "type": "array" }, + "httpMethod": { + "description": "Optional. HTTP method for the flexible webhook calls. Standard webhook always uses POST.", + "enum": [ + "HTTP_METHOD_UNSPECIFIED", + "POST", + "GET", + "HEAD", + "PUT", + "DELETE", + "PATCH", + "OPTIONS" + ], + "enumDescriptions": [ + "HTTP method not specified.", + "HTTP POST Method.", + "HTTP GET Method.", + "HTTP HEAD Method.", + "HTTP PUT Method.", + "HTTP DELETE Method.", + "HTTP PATCH Method.", + "HTTP OPTIONS Method." + ], + "type": "string" + }, + "parameterMapping": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Maps the values extracted from specific fields of the flexible webhook response into session parameters. - Key: session parameter name - Value: field path in the webhook response", + "type": "object" + }, "password": { + "deprecated": true, "description": "The password for HTTP Basic authentication.", "type": "string" }, + "requestBody": { + "description": "Optional. Defines a custom JSON object as request body to send to flexible webhook.", + "type": "string" + }, "requestHeaders": { "additionalProperties": { "type": "string" @@ -9682,8 +11885,23 @@ "type": "string" }, "username": { + "deprecated": true, "description": "The user name for HTTP Basic authentication.", "type": "string" + }, + "webhookType": { + "description": "Optional. Type of the webhook.", + "enum": [ + "WEBHOOK_TYPE_UNSPECIFIED", + "STANDARD", + "FLEXIBLE" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Represents a standard webhook.", + "Represents a flexible webhook." + ], + "type": "string" } }, "type": "object" @@ -9696,6 +11914,10 @@ "description": "Always present. The unique identifier of the DetectIntentResponse that will be returned to the API caller.", "type": "string" }, + "dtmfDigits": { + "description": "If DTMF was provided as input, this field will contain the DTMF digits.", + "type": "string" + }, "fulfillmentInfo": { "$ref": "GoogleCloudDialogflowCxV3beta1WebhookRequestFulfillmentInfo", "description": "Always present. Information about the fulfillment that triggered this webhook call." @@ -10043,13 +12265,15 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model for chat.", - "Run smart reply model for chat." + "Run smart reply model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } @@ -10066,7 +12290,7 @@ "type": "integer" }, "name": { - "description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", + "description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", "type": "string" }, "parameters": { @@ -10074,7 +12298,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" } }, @@ -10402,7 +12626,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" } }, @@ -10475,7 +12699,7 @@ "id": "GoogleCloudDialogflowV2GcsDestination", "properties": { "uri": { - "description": "The Google Cloud Storage URIs for the output. A URI is of the form: gs://bucket/object-prefix-or-name Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", + "description": "The Google Cloud Storage URIs for the output. A URI is of the form: `gs://bucket/object-prefix-or-name` Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", "type": "string" } }, @@ -11444,6 +13668,11 @@ "EXAMPLE", "TEMPLATE" ], + "enumDeprecated": [ + false, + false, + true + ], "enumDescriptions": [ "Not specified. This value should never be used.", "Examples do not contain @-prefixed entity type names, but example parts can be annotated with entity types.", @@ -11672,7 +13901,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" }, "queryText": { @@ -11798,13 +14027,15 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model for chat.", - "Run smart reply model for chat." + "Run smart reply model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } @@ -12148,14 +14379,18 @@ "ARTICLE_SUGGESTION", "FAQ", "SMART_REPLY", - "CONVERSATION_SUMMARIZATION" + "DIALOGFLOW_ASSIST", + "CONVERSATION_SUMMARIZATION", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model.", "Run smart reply model for chat.", - "Run conversation summarization model for chat." + "Run Dialogflow assist model for chat, which will return automated agent response as suggestion.", + "Run conversation summarization model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } @@ -12172,7 +14407,7 @@ "type": "integer" }, "name": { - "description": "Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", + "description": "Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", "type": "string" }, "parameters": { @@ -12180,7 +14415,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" } }, @@ -12225,6 +14460,25 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1DialogflowAssistAnswer": { + "description": "Represents a Dialogflow assist answer.", + "id": "GoogleCloudDialogflowV2beta1DialogflowAssistAnswer", + "properties": { + "answerRecord": { + "description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", + "type": "string" + }, + "intentSuggestion": { + "$ref": "GoogleCloudDialogflowV2beta1IntentSuggestion", + "description": "An intent suggestion generated from conversation." + }, + "queryResult": { + "$ref": "GoogleCloudDialogflowV2beta1QueryResult", + "description": "Result from v2 agent." + } + }, + "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", @@ -12314,7 +14568,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" } }, @@ -12387,7 +14641,7 @@ "id": "GoogleCloudDialogflowV2beta1GcsDestination", "properties": { "uri": { - "description": "Required. The Google Cloud Storage URIs for the output. A URI is of the form: gs://bucket/object-prefix-or-name Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", + "description": "Required. The Google Cloud Storage URIs for the output. A URI is of the form: `gs://bucket/object-prefix-or-name` Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", "type": "string" } }, @@ -12520,6 +14774,7 @@ "type": "boolean" }, "mlEnabled": { + "deprecated": true, "description": "Optional. Indicates whether Machine Learning is enabled for the intent. Note: If `ml_enabled` setting is set to false, then this intent is not taken into account during inference in `ML ONLY` match mode. Also, auto-markup in the UI is turned off. DEPRECATED! Please use `ml_disabled` field instead. NOTE: If both `ml_enabled` and `ml_disabled` are either not set or false, then the default value is determined as follows: - Before April 15th, 2018 the default is: ml_enabled = false / ml_disabled = true. - After April 15th, 2018 the default is: ml_enabled = true / ml_disabled = false.", "type": "boolean" }, @@ -13575,6 +15830,25 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1IntentSuggestion": { + "description": "Represents an intent suggestion.", + "id": "GoogleCloudDialogflowV2beta1IntentSuggestion", + "properties": { + "description": { + "description": "Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters.", + "type": "string" + }, + "displayName": { + "description": "The display name of the intent.", + "type": "string" + }, + "intentV2": { + "description": "The unique identifier of this intent. Format: `projects//locations//agent/intents/`.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2beta1IntentTrainingPhrase": { "description": "Represents an example that the agent is trained on.", "id": "GoogleCloudDialogflowV2beta1IntentTrainingPhrase", @@ -13602,6 +15876,11 @@ "EXAMPLE", "TEMPLATE" ], + "enumDeprecated": [ + false, + false, + true + ], "enumDescriptions": [ "Not specified. This value should never be used.", "Examples do not contain @-prefixed entity type names, but example parts can be annotated with entity types.", @@ -13888,7 +16167,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value", + "description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", "type": "object" }, "queryText": { @@ -14015,14 +16294,18 @@ "ARTICLE_SUGGESTION", "FAQ", "SMART_REPLY", - "CONVERSATION_SUMMARIZATION" + "DIALOGFLOW_ASSIST", + "CONVERSATION_SUMMARIZATION", + "KNOWLEDGE_SEARCH" ], "enumDescriptions": [ "Unspecified feature type.", "Run article suggestion model for chat.", "Run FAQ model.", "Run smart reply model for chat.", - "Run conversation summarization model for chat." + "Run Dialogflow assist model for chat, which will return automated agent response as suggestion.", + "Run conversation summarization model for chat.", + "Run knowledge search with text input from agent or text generated query." ], "type": "string" } @@ -14072,6 +16355,29 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse": { + "description": "The response message for Participants.SuggestDialogflowAssists.", + "id": "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse", + "properties": { + "contextSize": { + "description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestDialogflowAssistsRequest.context_size field in the request if there aren't that many messages in the conversation.", + "format": "int32", + "type": "integer" + }, + "dialogflowAssistAnswers": { + "description": "Output only. Multiple reply options provided by Dialogflow assist service. The order is based on the rank of the model prediction.", + "items": { + "$ref": "GoogleCloudDialogflowV2beta1DialogflowAssistAnswer" + }, + "type": "array" + }, + "latestMessage": { + "description": "The name of the latest conversation message used to suggest answer. Format: `projects//locations//conversations//messages/`.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2beta1SuggestFaqAnswersResponse": { "description": "The request message for Participants.SuggestFaqAnswers.", "id": "GoogleCloudDialogflowV2beta1SuggestFaqAnswersResponse", @@ -14130,6 +16436,14 @@ "$ref": "GoogleCloudDialogflowV2beta1SuggestArticlesResponse", "description": "SuggestArticlesResponse if request is for ARTICLE_SUGGESTION." }, + "suggestDialogflowAssistsResponse": { + "$ref": "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse", + "description": "SuggestDialogflowAssistsResponse if request is for DIALOGFLOW_ASSIST." + }, + "suggestEntityExtractionResponse": { + "$ref": "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse", + "description": "SuggestDialogflowAssistsResponse if request is for ENTITY_EXTRACTION." + }, "suggestFaqAnswersResponse": { "$ref": "GoogleCloudDialogflowV2beta1SuggestFaqAnswersResponse", "description": "SuggestFaqAnswersResponse if request is for FAQ_ANSWER." @@ -14361,6 +16675,16 @@ "description": "Whether turn resulted in End Session page.", "type": "boolean" }, + "sentimentMagnitude": { + "description": "Sentiment magnitude of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, + "sentimentScore": { + "description": "Sentiment score of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", + "format": "float", + "type": "number" + }, "triggeredAbandonmentEvent": { "description": "Whether agent has triggered the event corresponding to user abandoning the conversation.", "type": "boolean" @@ -14409,7 +16733,7 @@ "type": "object" }, "GoogleCloudLocationLocation": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "GoogleCloudLocationLocation", "properties": { "displayName": { @@ -14489,7 +16813,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/etc/api/digitalassetlinks/v1/digitalassetlinks-api.json b/etc/api/digitalassetlinks/v1/digitalassetlinks-api.json index 8f987ac580..5d59bec889 100644 --- a/etc/api/digitalassetlinks/v1/digitalassetlinks-api.json +++ b/etc/api/digitalassetlinks/v1/digitalassetlinks-api.json @@ -199,7 +199,7 @@ } } }, - "revision": "20230117", + "revision": "20240224", "rootUrl": "https://digitalassetlinks.googleapis.com/", "schemas": { "AndroidAppAsset": { diff --git a/etc/api/discovery/v1/discovery-api.json b/etc/api/discovery/v1/discovery-api.json index 5f026b9db6..591ce6ad6b 100644 --- a/etc/api/discovery/v1/discovery-api.json +++ b/etc/api/discovery/v1/discovery-api.json @@ -234,6 +234,10 @@ "description": "The default value of this property (if one exists).", "type": "string" }, + "deprecated": { + "description": "Whether the parameter is deprecated.", + "type": "boolean" + }, "description": { "description": "A description of this object.", "type": "string" @@ -245,6 +249,13 @@ }, "type": "array" }, + "enumDeprecated": { + "description": "The deprecation status for the enums. Each position maps to the corresponding value in the \"enum\" array.", + "items": { + "type": "boolean" + }, + "type": "array" + }, "enumDescriptions": { "description": "The descriptions for the enums. Each position maps to the corresponding value in the \"enum\" array.", "items": { @@ -390,6 +401,32 @@ "description": "A link to human readable documentation for the API.", "type": "string" }, + "endpoints": { + "description": "A list of location-based endpoint objects for this API. Each object contains the endpoint URL, location, description and deprecation status.", + "items": { + "description": "A single endpoint object", + "properties": { + "deprecated": { + "description": "Whether this endpoint is deprecated", + "type": "boolean" + }, + "description": { + "description": "A string describing the host designated by the URL", + "type": "string" + }, + "endpointUrl": { + "description": "The URL of the endpoint target host", + "type": "string" + }, + "location": { + "description": "The location of the endpoint", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, "etag": { "description": "The ETag for this response.", "readOnly": true, @@ -518,6 +555,10 @@ "RestMethod": { "id": "RestMethod", "properties": { + "deprecated": { + "description": "Whether this method is deprecated.", + "type": "boolean" + }, "description": { "description": "Description of this method.", "type": "string" @@ -663,6 +704,10 @@ "RestResource": { "id": "RestResource", "properties": { + "deprecated": { + "description": "Whether this resource is deprecated.", + "type": "boolean" + }, "methods": { "additionalProperties": { "$ref": "RestMethod", diff --git a/etc/api/displayvideo/v1/displayvideo-api.json b/etc/api/displayvideo/v1/displayvideo-api.json index 64837d9bf0..33ce0a5cb8 100644 --- a/etc/api/displayvideo/v1/displayvideo-api.json +++ b/etc/api/displayvideo/v1/displayvideo-api.json @@ -195,7 +195,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by assigned targeting option properties. 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}`. * The operator must be `EQUALS (=)`. * 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.", + "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" }, @@ -225,7 +225,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": "v1/advertisers", "httpMethod": "POST", "id": "displayvideo.advertisers.create", @@ -302,7 +302,7 @@ "parameterOrder": [], "parameters": { "filter": { - "description": "Allows filtering by advertiser properties. 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 operator used on `updateTime` must be `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)`. * The operator must be `EQUALS (=)`. * 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.", + "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" }, @@ -448,7 +448,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR` on the same field. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `targetingType` - `inheritance` Examples: * AssignedTargetingOptions of targeting type TARGETING_TYPE_LANGUAGE or TARGETING_TYPE_GENDER `targetingType=\"TARGETING_TYPE_LANGUAGE\" OR targetingType=\"TARGETING_TYPE_GENDER\"` * AssignedTargetingOptions 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.", + "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" }, @@ -508,7 +508,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": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}", "httpMethod": "DELETE", "id": "displayvideo.advertisers.campaigns.delete", @@ -597,7 +597,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by campaign properties. 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 operator used on `updateTime` must be `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)`. * The operator must be `EQUALS (=)`. * 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.", + "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" }, @@ -797,7 +797,7 @@ "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.", + "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.", @@ -853,7 +853,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by assigned targeting option properties. 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}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedTargetingOptionId` - `inheritance` Examples: * AssignedTargetingOptions with ID 1 or 2 `assignedTargetingOptionId=\"1\" OR assignedTargetingOptionId=\"2\"` * AssignedTargetingOptions 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.", + "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" }, @@ -957,7 +957,7 @@ "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.", + "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.", @@ -1087,7 +1087,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by channel fields. Supported syntax: * Filter expressions for channel currently can only contain at most one * restriction. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`. * 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.", + "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" }, @@ -1330,7 +1330,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by site fields. Supported syntax: * Filter expressions for site currently can only contain at most one * restriction. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`. * Supported fields: - `urlOrAppId` Examples: * All sites for which the URL or app ID contains \"google\": `urlOrAppId : \"google\"`", + "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" }, @@ -1366,7 +1366,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": "v1/advertisers/{advertiserId}/channels/{channelsId}/sites:replace", "httpMethod": "POST", "id": "displayvideo.advertisers.channels.sites.replace", @@ -1409,7 +1409,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": "v1/advertisers/{advertisersId}/creatives", "httpMethod": "POST", "id": "displayvideo.advertisers.creatives.create", @@ -1438,7 +1438,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": "v1/advertisers/{advertisersId}/creatives/{creativesId}", "httpMethod": "DELETE", "id": "displayvideo.advertisers.creatives.delete", @@ -1525,7 +1525,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by creative properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restriction for the same field must be combined by `OR`. * Restriction for different fields must be combined by `AND`. * Between `(` and `)` there can only be restrictions combined by `OR` for the same field. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)` for the following fields: - `entityStatus` - `creativeType`. - `dimensions` - `minDuration` - `maxDuration` - `approvalStatus` - `exchangeReviewStatus` - `dynamic` - `creativeId` * The operator must be `HAS (:)` for the following fields: - `lineItemIds` * The operator must be `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` for the following fields: - `updateTime` (input in ISO 8601 format, or YYYY-MM-DDTHH:MM:SSZ) * For `entityStatus`, `minDuration`, `maxDuration`, `updateTime`, and `dynamic`, there may be at most one restriction. * For `dimensions`, the value is in the form of `\"{width}x{height}\"`. * For `exchangeReviewStatus`, the value is in the form of `{exchange}-{reviewStatus}`. * For `minDuration` and `maxDuration`, the value is in the form of `\"{duration}s\"`. Only seconds are supported with millisecond granularity. * 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). * There may be multiple `lineItemIds` restrictions in order to search against multiple possible line item IDs. * There may be multiple `creativeId` restrictions in order to search against multiple possible creative IDs. 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.", + "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" }, @@ -1555,7 +1555,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": "v1/advertisers/{advertisersId}/creatives/{creativesId}", "httpMethod": "PATCH", "id": "displayvideo.advertisers.creatives.patch", @@ -1621,7 +1621,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR` on the same field. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `targetingType` - `inheritance` Examples: * AssignedTargetingOptions of targeting type TARGETING_TYPE_PROXIMITY_LOCATION_LIST or TARGETING_TYPE_CHANNEL `targetingType=\"TARGETING_TYPE_PROXIMITY_LOCATION_LIST\" OR targetingType=\"TARGETING_TYPE_CHANNEL\"` * AssignedTargetingOptions 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.", + "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" }, @@ -1775,7 +1775,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by insertion order properties. 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 operator used on `budget.budget_segments.date_range.end_date` must be LESS THAN (<). * The operator used on `updateTime` must be `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)`. * The operators used on all other fields must be `EQUALS (=)`. * Supported fields: - `campaignId` - `displayName` - `entityStatus` - `budget.budget_segments.date_range.end_date` (input as YYYY-MM-DD) - `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 whose budget segments' dates end before March 28, 2019: `budget.budget_segments.date_range.end_date<\"2019-03-28\"` * 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.", + "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" }, @@ -1890,7 +1890,7 @@ "type": "string" }, "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option.", + "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", @@ -1973,7 +1973,7 @@ "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.", + "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.", @@ -2021,7 +2021,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by assigned targeting option properties. 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}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedTargetingOptionId` - `inheritance` Examples: * AssignedTargetingOptions with ID 1 or 2 `assignedTargetingOptionId=\"1\" OR assignedTargetingOptionId=\"2\"` * AssignedTargetingOptions 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.", + "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" }, @@ -2050,7 +2050,7 @@ "type": "string" }, "targetingType": { - "description": "Required. Identifies the type of assigned targeting options to list.", + "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", @@ -2133,7 +2133,7 @@ "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.", + "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.", @@ -2264,7 +2264,7 @@ "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: * UpdateLineItem * CreateLineItemAssignedTargetingOption * DeleteLineItemAssignedTargetingOption", + "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 YouTube & Partners line items cannot be created or updated using the API.", "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}:bulkEditLineItemAssignedTargetingOptions", "httpMethod": "POST", "id": "displayvideo.advertisers.lineItems.bulkEditLineItemAssignedTargetingOptions", @@ -2320,7 +2320,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR` on the same field. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `targetingType` - `inheritance` Examples: * AssignedTargetingOptions of targeting type TARGETING_TYPE_PROXIMITY_LOCATION_LIST or TARGETING_TYPE_CHANNEL `targetingType=\"TARGETING_TYPE_PROXIMITY_LOCATION_LIST\" OR targetingType=\"TARGETING_TYPE_CHANNEL\"` * AssignedTargetingOptions 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.", + "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" }, @@ -2338,7 +2338,7 @@ "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.", + "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" @@ -2358,7 +2358,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": "v1/advertisers/{advertisersId}/lineItems", "httpMethod": "POST", "id": "displayvideo.advertisers.lineItems.create", @@ -2387,7 +2387,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": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}", "httpMethod": "DELETE", "id": "displayvideo.advertisers.lineItems.delete", @@ -2422,7 +2422,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": "v1/advertisers/{advertisersId}/lineItems:generateDefault", "httpMethod": "POST", "id": "displayvideo.advertisers.lineItems.generateDefault", @@ -2503,12 +2503,12 @@ "type": "string" }, "filter": { - "description": "Allows filtering by line item properties. 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 operator used on `flight.dateRange.endDate` must be LESS THAN (<). * The operator used on `updateTime` must be `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)`. * The operator used on `warningMessages` must be `HAS (:)`. * The operators used on all other fields must be `EQUALS (=)`. * Supported properties: - `campaignId` - `displayName` - `insertionOrderId` - `entityStatus` - `lineItemId` - `lineItemType` - `flight.dateRange.endDate` (input formatted as YYYY-MM-DD) - `warningMessages` - `flight.triggerId` - `updateTime` (input in ISO 8601 format, or YYYY-MM-DDTHH:MM:SSZ) - `targetedChannelId` - `targetedNegativeKeywordListId` 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 whose flight dates end before March 28, 2019: `flight.dateRange.endDate<\"2019-03-28\"` * All line items that have `NO_VALID_CREATIVE` in `warningMessages`: `warningMessages:\"NO_VALID_CREATIVE\"` * 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\"` * All line items that are using both the specified channel and specified negative keyword list in their targeting: `targetedNegativeKeywordListId=789 AND targetedChannelId=12345` The length of this field should be no more than 500 characters.", + "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` * `flight.dateRange.endDate` * `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`.", + "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" }, @@ -2533,7 +2533,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 * CreateLineItemAssignedTargetingOption * DeleteLineItemAssignedTargetingOption", + "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": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}", "httpMethod": "PATCH", "id": "displayvideo.advertisers.lineItems.patch", @@ -2583,7 +2583,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: * BulkEditAssignedTargetingOptions * BulkUpdate * UpdateLineItem * 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": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", "httpMethod": "POST", "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.create", @@ -2610,7 +2610,7 @@ "type": "string" }, "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option.", + "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", @@ -2693,7 +2693,7 @@ "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.", + "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.", @@ -2725,7 +2725,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: * BulkEditAssignedTargetingOptions * BulkUpdate * UpdateLineItem * 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": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", "httpMethod": "DELETE", "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete", @@ -2760,7 +2760,7 @@ "type": "string" }, "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option.", + "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", @@ -2843,7 +2843,7 @@ "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.", + "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.", @@ -2907,7 +2907,7 @@ "type": "string" }, "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option.", + "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", @@ -2990,7 +2990,7 @@ "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.", + "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.", @@ -3038,7 +3038,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by assigned targeting option properties. 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}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedTargetingOptionId` - `inheritance` Examples: * AssignedTargetingOptions with ID 1 or 2 `assignedTargetingOptionId=\"1\" OR assignedTargetingOptionId=\"2\"` * AssignedTargetingOptions 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.", + "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" }, @@ -3067,7 +3067,7 @@ "type": "string" }, "targetingType": { - "description": "Required. Identifies the type of assigned targeting options to list.", + "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", @@ -3150,7 +3150,7 @@ "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.", + "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.", @@ -3268,7 +3268,7 @@ "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}`. * The operator must be `EQUALS (=)`. * Supported fields: - `locationType` Examples: * All regional location list: `locationType=\"TARGETING_LOCATION_TYPE_REGIONAL\"` * All proximity location list: `locationType=\"TARGETING_LOCATION_TYPE_PROXIMITY\"`", + "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" }, @@ -3345,7 +3345,7 @@ "assignedLocations": { "methods": { "bulkEdit": { - "description": "Bulk edits multiple assignments between locations and a single location list. The operation will delete the assigned locations provided in BulkEditAssignedLocationsRequest.deleted_assigned_locations and then create the assigned locations provided in BulkEditAssignedLocationsRequest.created_assigned_locations.", + "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", @@ -3477,7 +3477,7 @@ "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 logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedLocationId` The length of this field should be no more than 500 characters.", + "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" }, @@ -3520,7 +3520,7 @@ "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.", + "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", @@ -3558,7 +3558,7 @@ ] }, "create": { - "description": "Creates a new manual trigger. Returns the newly created manual trigger if successful.", + "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", @@ -3587,7 +3587,7 @@ ] }, "deactivate": { - "description": "Deactivates a manual trigger.", + "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", @@ -3625,7 +3625,7 @@ ] }, "get": { - "description": "Gets a manual trigger.", + "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", @@ -3660,7 +3660,7 @@ ] }, "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.", + "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", @@ -3677,7 +3677,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by manual trigger properties. 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 operator must be `EQUALS (=)`. * 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.", + "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" }, @@ -3707,7 +3707,7 @@ ] }, "patch": { - "description": "Updates a manual trigger. Returns the updated manual trigger if successful.", + "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", @@ -4072,7 +4072,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by negative keyword fields. Supported syntax: * Filter expressions for negative keyword currently can only contain at most one * restriction. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`. * Supported fields: - `keywordValue` Examples: * All negative keywords for which the keyword value contains \"google\": `keywordValue : \"google\"`", + "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" }, @@ -4256,7 +4256,7 @@ "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.", + "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.", @@ -4397,7 +4397,7 @@ "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.", + "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.", @@ -4452,7 +4452,7 @@ "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`", + "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", @@ -4535,7 +4535,7 @@ "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.", + "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.", @@ -4582,7 +4582,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by assigned targeting option properties. 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}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedTargetingOptionId` Examples: * AssignedTargetingOption with ID 123456 `assignedTargetingOptionId=\"123456\"` The length of this field should be no more than 500 characters.", + "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" }, @@ -4603,7 +4603,7 @@ "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`", + "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", @@ -4686,7 +4686,7 @@ "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.", + "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.", @@ -4774,7 +4774,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by combined audience fields. Supported syntax: * Filter expressions for combined audiences currently can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`. * 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.", + "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" }, @@ -4883,7 +4883,7 @@ "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 operator must be `CONTAINS (:)` or `EQUALS (=)`. * The operator must be `CONTAINS (:)` for the following field: - `displayName` * The operator must be `EQUALS (=)` for the following field: - `customBiddingAlgorithmType` * For `displayName`, the value is a string. We return all custom bidding algorithms whose display_name contains such string. * For `customBiddingAlgorithmType`, the value is a string. We return all algorithms whose custom_bidding_algorithm_type is equal to the given type. 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.", + "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" }, @@ -5189,7 +5189,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by custom list fields. Supported syntax: * Filter expressions for custom lists currently can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`. * 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.", + "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" }, @@ -5328,7 +5328,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by first and third party audience fields. Supported syntax: * Filter expressions for first and third party audiences currently can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`. * 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.", + "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" }, @@ -5536,7 +5536,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by Google audience fields. Supported syntax: * Filter expressions for Google audiences currently can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`. * 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.", + "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" }, @@ -5685,7 +5685,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by guaranteed order properties. * 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 operator must be `EQUALS (=)`. * 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.", + "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" }, @@ -5891,7 +5891,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by inventory source group properties. 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}`. * The operator must be `EQUALS (=)`. * Supported fields: - `inventorySourceGroupId` The length of this field should be no more than 500 characters.", + "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" }, @@ -6109,7 +6109,7 @@ "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 logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedInventorySourceId` The length of this field should be no more than 500 characters.", + "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" }, @@ -6264,7 +6264,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by inventory source properties. 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 operator must be `EQUALS (=)`. * 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.", + "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" }, @@ -6485,7 +6485,7 @@ "parameterOrder": [], "parameters": { "filter": { - "description": "Allows filtering by partner properties. 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 operator must be `EQUALS (=)`. * Supported fields: - `entityStatus` Examples: * All active partners: `entityStatus=\"ENTITY_STATUS_ACTIVE\"` The length of this field should be no more than 500 characters.", + "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" }, @@ -6610,7 +6610,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by channel fields. Supported syntax: * Filter expressions for channel currently can only contain at most one * restriction. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`. * 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.", + "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" }, @@ -6853,7 +6853,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by site fields. Supported syntax: * Filter expressions for site currently can only contain at most one * restriction. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`. * Supported fields: - `urlOrAppId` Examples: * All sites for which the URL or app ID contains \"google\": `urlOrAppId : \"google\"`", + "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" }, @@ -6891,7 +6891,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": "v1/partners/{partnerId}/channels/{channelsId}/sites:replace", "httpMethod": "POST", "id": "displayvideo.partners.channels.sites.replace", @@ -7037,7 +7037,7 @@ "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.", + "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.", @@ -7178,7 +7178,7 @@ "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.", + "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.", @@ -7316,7 +7316,7 @@ "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.", + "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.", @@ -7355,7 +7355,7 @@ ], "parameters": { "filter": { - "description": "Allows filtering by assigned targeting option properties. 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}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedTargetingOptionId` Examples: * AssignedTargetingOption with ID 123456 `assignedTargetingOptionId=\"123456\"` The length of this field should be no more than 500 characters.", + "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" }, @@ -7467,7 +7467,7 @@ "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.", + "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.", @@ -7666,7 +7666,7 @@ "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.", + "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.", @@ -7710,7 +7710,7 @@ "type": "string" }, "filter": { - "description": "Allows filtering by targeting option properties. 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}`. * The operator must be \"=\" (equal sign). * 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.", + "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" }, @@ -7814,7 +7814,7 @@ "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.", + "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.", @@ -7935,7 +7935,7 @@ "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.", + "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.", @@ -7973,7 +7973,7 @@ "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.", + "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", @@ -8002,7 +8002,7 @@ ] }, "create": { - "description": "Creates a new user. Returns the newly created user if successful.", + "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", @@ -8020,7 +8020,7 @@ ] }, "delete": { - "description": "Deletes a user.", + "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", @@ -8046,7 +8046,7 @@ ] }, "get": { - "description": "Gets a user.", + "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", @@ -8072,14 +8072,14 @@ ] }, "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.", + "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 properties. 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 operator must be `CONTAINS (:)` or `EQUALS (=)`. * The operator must be `CONTAINS (:)` for the following fields: - `displayName` - `email` * The operator must be `EQUALS (=)` for the following fields: - `assignedUserRole.userRole` - `assignedUserRole.partnerId` - `assignedUserRole.advertiserId` - `assignedUserRole.entityType`: A 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`: A synthetic field of AssignedUserRole used for filtering. Identifies the parent partner of the entity to which the user role is assigned.\" 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.", + "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" }, @@ -8109,7 +8109,7 @@ ] }, "patch": { - "description": "Updates an existing user. Returns the updated user if successful.", + "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", @@ -8146,7 +8146,7 @@ } } }, - "revision": "20230119", + "revision": "20240229", "rootUrl": "https://displayvideo.googleapis.com/", "schemas": { "ActivateManualTriggerRequest": { @@ -8416,7 +8416,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": { @@ -8488,7 +8488,7 @@ "id": "AgeRangeAssignedTargetingOptionDetails", "properties": { "ageRange": { - "description": "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. Output only in v1. Required in v2.", + "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", @@ -8641,7 +8641,7 @@ "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.", + "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" } @@ -8682,18 +8682,18 @@ "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_APP_INSTALL` * `CREATIVE_TYPE_NATIVE_APP_INSTALL_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_APP_INSTALL` * `CREATIVE_TYPE_NATIVE_APP_INSTALL_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_APP_INSTALL` * `CREATIVE_TYPE_NATIVE_APP_INSTALL_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_APP_INSTALL` * `CREATIVE_TYPE_NATIVE_APP_INSTALL_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_APP_INSTALL` * `CREATIVE_TYPE_NATIVE_APP_INSTALL_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_APP_INSTALL` * `CREATIVE_TYPE_NATIVE_APP_INSTALL_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_APP_INSTALL` * `CREATIVE_TYPE_NATIVE_APP_INSTALL_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. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE_APP_INSTALL` * `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`", - "The ID of an Android app in the Google play store. You can find this ID in the App\u2019s Google Play Store URL after \u2018id\u2019. For example, in https://play.google.com/store/apps/details?id=com.company.appname the identifier is com.company.appname. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE_APP_INSTALL` * `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`", - "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. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE_APP_INSTALL` * `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`", - "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. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE_APP_INSTALL` * `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`", - "The icon of a creative. This role is only supported and required in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_APP_INSTALL` * `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`", + "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\u2019s Google Play Store URL after \u2018id\u2019. 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" @@ -8724,7 +8724,7 @@ "type": "object" }, "AssignedLocation": { - "description": "An assignment between a location list and a relevant targeting option. Currently, geo region targeting options are the only supported option for assignment.", + "description": "An assignment between a location list and a relevant targeting option.", "id": "AssignedLocation", "properties": { "assignedLocationId": { @@ -8739,7 +8739,7 @@ "type": "string" }, "targetingOptionId": { - "description": "Required. The ID of the targeting option assigned to the location list. Must be of type TARGETING_TYPE_GEO_REGION.", + "description": "Required. The ID of the targeting option assigned to the location list.", "type": "string" } }, @@ -9020,7 +9020,7 @@ "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.", + "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.", @@ -9153,7 +9153,7 @@ "id": "AudioContentTypeAssignedTargetingOptionDetails", "properties": { "audioContentType": { - "description": "The audio content type. Output only in v1. Required in v2.", + "description": "Required. The audio content type.", "enum": [ "AUDIO_CONTENT_TYPE_UNSPECIFIED", "AUDIO_CONTENT_TYPE_UNKNOWN", @@ -9268,7 +9268,7 @@ "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`.", + "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": { @@ -9279,9 +9279,9 @@ "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 default value and does not represent a real authorized seller status option.", - "Only authorized sellers that directly own the inventory being monetized, as indicated by a DIRECT declaration in the ads.txt file.", - "All authorized sellers, including publishers that have not posted an ads.txt file. Display & Video 360 automatically disallows unauthorized sellers." + "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" @@ -9305,9 +9305,9 @@ "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 default value and does not represent a real authorized seller status option.", - "Only authorized sellers that directly own the inventory being monetized, as indicated by a DIRECT declaration in the ads.txt file.", - "All authorized sellers, including publishers that have not posted an ads.txt file. Display & Video 360 automatically disallows unauthorized sellers." + "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" @@ -9481,14 +9481,14 @@ "id": "BulkEditAssignedLocationsRequest", "properties": { "createdAssignedLocations": { - "description": "The assigned locations to create in bulk, specified as a list of AssignedLocations.", + "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 assigned_location_ids.", + "description": "The IDs of the assigned locations to delete in bulk, specified as a list of assignedLocationId values.", "items": { "format": "int64", "type": "string" @@ -9499,7 +9499,6 @@ "type": "object" }, "BulkEditAssignedLocationsResponse": { - "description": "Response message for AssignedLocationService.BulkEditAssignedLocations.", "id": "BulkEditAssignedLocationsResponse", "properties": { "assignedLocations": { @@ -9712,7 +9711,6 @@ "type": "object" }, "BulkListCampaignAssignedTargetingOptionsResponse": { - "description": "Response message for BulkListCampaignAssignedTargetingOptions.", "id": "BulkListCampaignAssignedTargetingOptionsResponse", "properties": { "assignedTargetingOptions": { @@ -9730,7 +9728,6 @@ "type": "object" }, "BulkListInsertionOrderAssignedTargetingOptionsResponse": { - "description": "Response message for BulkListInsertionOrderAssignedTargetingOptions.", "id": "BulkListInsertionOrderAssignedTargetingOptionsResponse", "properties": { "assignedTargetingOptions": { @@ -10229,6 +10226,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", @@ -10328,6 +10334,41 @@ }, "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": [ + "Type value is not specified or is unknown in this version.", + "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": [ + "Type value is not specified or is unknown in this version.", + "Consent is granted.", + "Consent is denied." + ], + "type": "string" + } + }, + "type": "object" + }, "ContactInfo": { "description": "Contact information defining a Customer Match audience member.", "id": "ContactInfo", @@ -10372,6 +10413,10 @@ "description": "Wrapper message for a list of contact information defining Customer Match audience members.", "id": "ContactInfoList", "properties": { + "consent": { + "$ref": "Consent", + "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.", "items": { @@ -10504,7 +10549,7 @@ "type": "string" }, "contentInstreamPosition": { - "description": "The content instream position for video or audio ads. Output only in v1. Required in v2.", + "description": "Required. The content instream position for video or audio ads.", "enum": [ "CONTENT_INSTREAM_POSITION_UNSPECIFIED", "CONTENT_INSTREAM_POSITION_PRE_ROLL", @@ -10576,7 +10621,7 @@ "type": "string" }, "contentOutstreamPosition": { - "description": "The content outstream position. Output only in v1. Required in v2.", + "description": "Required. The content outstream position.", "enum": [ "CONTENT_OUTSTREAM_POSITION_UNSPECIFIED", "CONTENT_OUTSTREAM_POSITION_UNKNOWN", @@ -10829,7 +10874,7 @@ "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.", + "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.", @@ -10887,7 +10932,24 @@ "SDF_VERSION_5_2", "SDF_VERSION_5_3", "SDF_VERSION_5_4", - "SDF_VERSION_5_5" + "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.", @@ -10900,7 +10962,9 @@ "SDF version 5.2", "SDF version 5.3", "SDF version 5.4", - "SDF version 5.5" + "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" } @@ -10912,7 +10976,7 @@ "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_TEMPLATED_APP_INSTALL` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_LIGHTBOX` * `CREATIVE_TYPE_NATIVE_APP_INSTALL` * `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` * `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.", + "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" }, @@ -10929,7 +10993,7 @@ "type": "string" }, "assets": { - "description": "Required. Assets associated to this creative. Assets can be associated to the creative in one of following roles: * `ASSET_ROLE_UNSPECIFIED` * `ASSET_ROLE_MAIN` * `ASSET_ROLE_BACKUP` * `ASSET_ROLE_POLITE_LOAD`", + "description": "Required. Assets associated to this creative.", "items": { "$ref": "AssetAssociation" }, @@ -10943,7 +11007,7 @@ }, "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` * `CREATIVE_TYPE_NATIVE_APP_INSTALL` * `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` Output only for other cases." + "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`", @@ -11021,8 +11085,8 @@ "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 supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", - "Square native app install creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", + "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`", @@ -11032,7 +11096,7 @@ }, "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_TEMPLATED_APP_INSTALL_INTERSTITIAL` * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_NATIVE_VIDEO` * `CREATIVE_TYPE_TEMPLATED_APP_INSTALL_VIDEO`" + "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.", @@ -11121,7 +11185,7 @@ "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_APP_INSTALL` * `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO` * `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" @@ -11140,7 +11204,7 @@ "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 supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_APP_INSTALL` * `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", + "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": { @@ -11229,7 +11293,7 @@ "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 supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_APP_INSTALL` * `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", + "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" }, @@ -11298,8 +11362,8 @@ "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 supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", - "Square native app install creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", + "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`", @@ -11334,6 +11398,7 @@ "type": "string" }, "customBiddingAlgorithmState": { + "deprecated": true, "description": "Output only. The status of custom bidding algorithm.", "enum": [ "STATE_UNSPECIFIED", @@ -11477,7 +11542,7 @@ "type": "string" }, "errors": { - "description": "Output only. Error details of a rejected custom bidding script. This field will only be populated when Script.state is REJECTED.", + "description": "Output only. Error details of a rejected custom bidding script. This field will only be populated when state is REJECTED.", "items": { "$ref": "ScriptError" }, @@ -11766,7 +11831,7 @@ "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.", + "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.", @@ -11822,7 +11887,7 @@ "id": "DeviceTypeAssignedTargetingOptionDetails", "properties": { "deviceType": { - "description": "The display name of the device type. Output only in v1. Required in v2.", + "description": "Required. The display name of the device type.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "DEVICE_TYPE_COMPUTER", @@ -11832,10 +11897,10 @@ ], "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.", - "The device type is computer.", - "The device type is connected TV.", - "The device type is smart phone..", - "The device type is tablet." + "Computer.", + "Connected TV.", + "Smart phone.", + "Tablet." ], "type": "string" }, @@ -11861,10 +11926,10 @@ ], "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.", - "The device type is computer.", - "The device type is connected TV.", - "The device type is smart phone..", - "The device type is tablet." + "Computer.", + "Connected TV.", + "Smart phone.", + "Tablet." ], "readOnly": true, "type": "string" @@ -12311,6 +12376,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" @@ -12431,7 +12504,7 @@ "id": "EnvironmentAssignedTargetingOptionDetails", "properties": { "environment": { - "description": "The serving environment. Output only in v1. Required in v2.", + "description": "Required. The serving environment.", "enum": [ "ENVIRONMENT_UNSPECIFIED", "ENVIRONMENT_WEB_OPTIMIZED", @@ -12581,7 +12654,15 @@ "EXCHANGE_JCD", "EXCHANGE_PLACE_EXCHANGE", "EXCHANGE_APPLOVIN", - "EXCHANGE_CONNATIX" + "EXCHANGE_CONNATIX", + "EXCHANGE_RESET_DIGITAL", + "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.", @@ -12656,7 +12737,15 @@ "JCD.", "Place Exchange.", "AppLovin.", - "Connatix." + "Connatix.", + "Reset Digital.", + "Hivestack.", + "AppLovin MAX.", + "DT Fairbid.", + "Unity LevelPlay.", + "Chartboost Mediation.", + "AdMost.", + "TopOn." ], "type": "string" }, @@ -12757,7 +12846,15 @@ "EXCHANGE_JCD", "EXCHANGE_PLACE_EXCHANGE", "EXCHANGE_APPLOVIN", - "EXCHANGE_CONNATIX" + "EXCHANGE_CONNATIX", + "EXCHANGE_RESET_DIGITAL", + "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.", @@ -12832,7 +12929,15 @@ "JCD.", "Place Exchange.", "AppLovin.", - "Connatix." + "Connatix.", + "Reset Digital.", + "Hivestack.", + "AppLovin MAX.", + "DT Fairbid.", + "Unity LevelPlay.", + "Chartboost Mediation.", + "AdMost.", + "TopOn." ], "type": "string" }, @@ -12934,7 +13039,15 @@ "EXCHANGE_JCD", "EXCHANGE_PLACE_EXCHANGE", "EXCHANGE_APPLOVIN", - "EXCHANGE_CONNATIX" + "EXCHANGE_CONNATIX", + "EXCHANGE_RESET_DIGITAL", + "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.", @@ -13009,7 +13122,15 @@ "JCD.", "Place Exchange.", "AppLovin.", - "Connatix." + "Connatix.", + "Reset Digital.", + "Hivestack.", + "AppLovin MAX.", + "DT Fairbid.", + "Unity LevelPlay.", + "Chartboost Mediation.", + "AdMost.", + "TopOn." ], "readOnly": true, "type": "string" @@ -13100,6 +13221,17 @@ "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.", @@ -13406,7 +13538,7 @@ "id": "GenderAssignedTargetingOptionDetails", "properties": { "gender": { - "description": "The gender of the audience. Output only in v1. Required in v2.", + "description": "Required. The gender of the audience.", "enum": [ "GENDER_UNSPECIFIED", "GENDER_MALE", @@ -13476,7 +13608,9 @@ "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_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.", @@ -13487,7 +13621,9 @@ "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`." + "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" }, @@ -13701,6 +13837,15 @@ "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.", @@ -13852,7 +13997,15 @@ "EXCHANGE_JCD", "EXCHANGE_PLACE_EXCHANGE", "EXCHANGE_APPLOVIN", - "EXCHANGE_CONNATIX" + "EXCHANGE_CONNATIX", + "EXCHANGE_RESET_DIGITAL", + "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.", @@ -13927,7 +14080,15 @@ "JCD.", "Place Exchange.", "AppLovin.", - "Connatix." + "Connatix.", + "Reset Digital.", + "Hivestack.", + "AppLovin MAX.", + "DT Fairbid.", + "Unity LevelPlay.", + "Chartboost Mediation.", + "AdMost.", + "TopOn." ], "type": "string" }, @@ -14036,7 +14197,7 @@ "id": "HouseholdIncomeAssignedTargetingOptionDetails", "properties": { "householdIncome": { - "description": "The household income of the audience. Output only in v1. Required in v2.", + "description": "Required. The household income of the audience.", "enum": [ "HOUSEHOLD_INCOME_UNSPECIFIED", "HOUSEHOLD_INCOME_UNKNOWN", @@ -14168,13 +14329,19 @@ "description": "The bidding strategy of the insertion order. By default, fixed_bid is set." }, "billableOutcome": { - "description": "Immutable. The billable outcome of the insertion order.", + "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.", @@ -14304,9 +14471,9 @@ ], "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 performance_goal. No automation on bid settings.", + "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 performance_goal." + "Allow the system to automatically adjust bids and shift budget to owning line items to optimize performance defined by kpi." ], "type": "string" }, @@ -14701,7 +14868,15 @@ "EXCHANGE_JCD", "EXCHANGE_PLACE_EXCHANGE", "EXCHANGE_APPLOVIN", - "EXCHANGE_CONNATIX" + "EXCHANGE_CONNATIX", + "EXCHANGE_RESET_DIGITAL", + "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.", @@ -14776,7 +14951,15 @@ "JCD.", "Place Exchange.", "AppLovin.", - "Connatix." + "Connatix.", + "Reset Digital.", + "Hivestack.", + "AppLovin MAX.", + "DT Fairbid.", + "Unity LevelPlay.", + "Chartboost Mediation.", + "AdMost.", + "TopOn." ], "type": "string" }, @@ -14872,11 +15055,6 @@ "$ref": "InventorySourceStatus", "description": "The status settings of the inventory source." }, - "subSitePropertyId": { - "description": "Immutable. The unique ID of the sub-site property assigned to this inventory source.", - "format": "int64", - "type": "string" - }, "timeRange": { "$ref": "TimeRange", "description": "The time range when this inventory source starts and stops serving." @@ -15348,7 +15526,9 @@ "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_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.", @@ -15359,7 +15539,9 @@ "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`." + "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" }, @@ -15406,7 +15588,7 @@ }, "targetingExpansion": { "$ref": "TargetingExpansionConfig", - "description": "The [targeting expansion](//support.google.com/displayvideo/answer/10191558) settings of the line item. This config is only applicable when eligible audience list targeting is assigned to the line item. Beginning November 7, 2022, these settings may represent the [optimized targeting feature](//support.google.com/displayvideo/answer/12060859) in place of targeting expansion. This feature will be rolled out to all partners by November 9, 2022." + "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.", @@ -15435,7 +15617,8 @@ "APP_INSTALL_NO_OPTIMAL_BIDDING_STRATEGY", "CREATIVE_SIZE_NOT_IN_USE_FOR_TARGETED_DEALS", "NO_CREATIVE_FOR_TARGETED_DEALS", - "TARGETING_DEPRECATED_GEO_TARGET" + "TARGETING_DEPRECATED_GEO_TARGET", + "DEPRECATED_FIRST_PARTY_AUDIENCE_EXCLUSION" ], "enumDescriptions": [ "Not specified or is unknown.", @@ -15455,7 +15638,8 @@ "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 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" }, @@ -15528,12 +15712,12 @@ "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." + "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.", + "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" } @@ -15800,7 +15984,6 @@ "type": "object" }, "ListInsertionOrderAssignedTargetingOptionsResponse": { - "description": "Response message for ListInsertionOrderAssignedTargetingOptions.", "id": "ListInsertionOrderAssignedTargetingOptionsResponse", "properties": { "assignedTargetingOptions": { @@ -16147,7 +16330,7 @@ "type": "object" }, "ManualTrigger": { - "description": "A single manual trigger in Display & Video 360.", + "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": { @@ -16299,6 +16482,10 @@ "description": "Wrapper message for a list of mobile device IDs defining Customer Match audience members.", "id": "MobileDeviceIdList", "properties": { + "consent": { + "$ref": "Consent", + "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.", "items": { @@ -16335,7 +16522,7 @@ "id": "NativeContentPositionAssignedTargetingOptionDetails", "properties": { "contentPosition": { - "description": "The content position. Output only in v1. Required in v2.", + "description": "Required. The content position.", "enum": [ "NATIVE_CONTENT_POSITION_UNSPECIFIED", "NATIVE_CONTENT_POSITION_UNKNOWN", @@ -16509,7 +16696,7 @@ "id": "OmidAssignedTargetingOptionDetails", "properties": { "omid": { - "description": "The type of Open Measurement enabled inventory. Output only in v1. Required in v2.", + "description": "Required. The type of Open Measurement enabled inventory.", "enum": [ "OMID_UNSPECIFIED", "OMID_FOR_MOBILE_DISPLAY_ADS" @@ -16677,7 +16864,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" } }, @@ -16698,7 +16885,7 @@ "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 auto_budget_allocation, this field is output only and defaults to `PACING_PERIOD_FLIGHT`.", + "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", @@ -16797,7 +16984,7 @@ "id": "ParentalStatusAssignedTargetingOptionDetails", "properties": { "parentalStatus": { - "description": "The parental status of the audience. Output only in v1. Required in v2.", + "description": "Required. The parental status of the audience.", "enum": [ "PARENTAL_STATUS_UNSPECIFIED", "PARENTAL_STATUS_PARENT", @@ -16955,39 +17142,41 @@ "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_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.", - "The cost is charged for using Adloox Pre-Bid.", - "The cost is charged for using AdSafe.", - "The cost is charged for using AdExpose.", - "The cost is charged for using Aggregate Knowledge.", - "The cost is charged for using an Agency Trading Desk.", - "The cost is charged for using DV360.", - "The cost is charged for using comScore vCE.", - "The cost is charged for using a Data Management Platform.", - "The default cost type.", - "The cost is charged for using DoubleVerify.", - "The cost is charged for using DoubleVerify Pre-Bid.", - "The cost is charged for using Evidon.", - "The cost is charged for using Integral Ad Science Video.", - "The cost is charged for using Integral Ad Science Pre-Bid.", - "The cost is charged for using media cost data.", - "The cost is charged for using MOAT Video.", - "The cost is charged for using Nielsen Digital Ad Ratings.", - "The cost is charged for using ShopLocal.", - "The cost is charged for using Teracent.", - "The cost is charged for using a third-party ad server.", - "The cost is charged for using TrustMetrics.", - "The cost is charged for using Vizu.", - "The cost is charged for using AdLingo.", - "The cost is charged as custom fee 1.", - "The cost is charged as custom fee 2.", - "The cost is charged as custom fee 3.", - "The cost is charged as custom fee 4.", - "The cost is charged as custom fee 5." + "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" }, @@ -17075,6 +17264,12 @@ "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.", @@ -17087,7 +17282,7 @@ "type": "object" }, "PerformanceGoal": { - "description": "Settings that control the performance goal of a campaign or insertion order.", + "description": "Settings that control the performance goal of a campaign.", "id": "PerformanceGoal", "properties": { "performanceGoalAmountMicros": { @@ -17232,7 +17427,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" } }, @@ -17634,7 +17829,24 @@ "SDF_VERSION_5_2", "SDF_VERSION_5_3", "SDF_VERSION_5_4", - "SDF_VERSION_5_5" + "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.", @@ -17647,7 +17859,9 @@ "SDF version 5.2", "SDF version 5.3", "SDF version 5.4", - "SDF version 5.5" + "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" } @@ -17692,7 +17906,24 @@ "SDF_VERSION_5_2", "SDF_VERSION_5_3", "SDF_VERSION_5_4", - "SDF_VERSION_5_5" + "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.", @@ -17705,7 +17936,9 @@ "SDF version 5.2", "SDF version 5.3", "SDF version 5.4", - "SDF version 5.5" + "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" } @@ -17938,15 +18171,16 @@ "type": "object" }, "TargetingExpansionConfig": { - "description": "Settings that control the targeting expansion of the line item. Targeting expansion allows the line item to reach a larger audience based on the original audience list and the targeting expansion level. Beginning November 7, 2022, these settings may represent the [optimized targeting feature](//support.google.com/displayvideo/answer/12060859) in place of targeting expansion. This feature will be rolled out to all partners by November 9, 2022.", + "description": "Settings that control the [optimized targeting](//support.google.com/displayvideo/answer/12060859) settings of the line item.", "id": "TargetingExpansionConfig", "properties": { "excludeFirstPartyAudience": { - "description": "Required. Whether to exclude first-party audiences from use in targeting expansion or optimized targeting. Similar audiences of the excluded first-party lists will not be excluded. Only applicable when a first-party audience is positively targeted (directly or included in a combined audience), otherwise this selection will be ignored.", + "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. Magnitude of expansion for applicable targeting under this line item. Beginning November 7, 2022, the behavior of this field will change in the following ways with the replacement of targeting expansion with [optimized targeting](//support.google.com/displayvideo/answer/12060859): * This field will represent the optimized targeting checkbox, with a `NO_EXPANSION` value representing optimized targeting turned off and a `LEAST_EXPANSION` value representing optimized targeting turned on. * `NO_EXPANSION` will be the default value for the field and will be automatically assigned if you do not set the field. * If you set the field to any value other than `NO_EXPANSION`, it will automatically be set to `LEAST_EXPANSION`.", + "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", @@ -17956,14 +18190,23 @@ "MORE_EXPANSION", "MOST_EXPANSION" ], + "enumDeprecated": [ + false, + false, + false, + true, + true, + true, + true + ], "enumDescriptions": [ - "Targeting expansion level is not specified or is unknown in this version.", - "Targeting expansion off.", - "Conservative targeting expansion, lowest reach.", - "Moderately conservative targeting expansion, lower reach.", - "Moderate targeting expansion, medium reach.", - "Moderately aggressive targeting expansion, higher reach.", - "Aggressive targeting expansion, highest reach." + "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" } @@ -18188,7 +18431,7 @@ "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.", + "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.", @@ -18468,6 +18711,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, @@ -18539,7 +18788,7 @@ "type": "string" }, "videoPlayerSize": { - "description": "The video player size. Output only in v1. Required in v2.", + "description": "Required. The video player size.", "enum": [ "VIDEO_PLAYER_SIZE_UNSPECIFIED", "VIDEO_PLAYER_SIZE_SMALL", @@ -18594,7 +18843,7 @@ "type": "string" }, "viewability": { - "description": "The predicted viewability percentage. Output only in v1. Required in v2.", + "description": "Required. The predicted viewability percentage.", "enum": [ "VIEWABILITY_UNSPECIFIED", "VIEWABILITY_10_PERCENT_OR_MORE", diff --git a/etc/api/dlp/v2/dlp-api.json b/etc/api/dlp/v2/dlp-api.json index 33be9a9095..54b597a54a 100644 --- a/etc/api/dlp/v2/dlp-api.json +++ b/etc/api/dlp/v2/dlp-api.json @@ -12,9 +12,9 @@ "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/", + "documentationLink": "https://cloud.google.com/sensitive-data-protection/docs/", "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -108,7 +108,7 @@ "infoTypes": { "methods": { "list": { - "description": "Returns a list of the sensitive information types that DLP API supports. See https://cloud.google.com/dlp/docs/infotypes-reference to learn more.", + "description": "Returns a list of the sensitive information types that DLP API supports. See https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference to learn more.", "flatPath": "v2/infoTypes", "httpMethod": "GET", "id": "dlp.infoTypes.list", @@ -150,7 +150,7 @@ "infoTypes": { "methods": { "list": { - "description": "Returns a list of the sensitive information types that DLP API supports. See https://cloud.google.com/dlp/docs/infotypes-reference to learn more.", + "description": "Returns a list of the sensitive information types that DLP API supports. See https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference to learn more.", "flatPath": "v2/locations/{locationsId}/infoTypes", "httpMethod": "GET", "id": "dlp.locations.infoTypes.list", @@ -198,7 +198,7 @@ "deidentifyTemplates": { "methods": { "create": { - "description": "Creates a DeidentifyTemplate for reusing frequently used configuration for de-identifying content, images, and storage. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Creates a DeidentifyTemplate for reusing frequently used configuration for de-identifying content, images, and storage. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/organizations/{organizationsId}/deidentifyTemplates", "httpMethod": "POST", "id": "dlp.organizations.deidentifyTemplates.create", @@ -207,7 +207,7 @@ ], "parameters": { "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -226,7 +226,7 @@ ] }, "delete": { - "description": "Deletes a DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Deletes a DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/organizations/{organizationsId}/deidentifyTemplates/{deidentifyTemplatesId}", "httpMethod": "DELETE", "id": "dlp.organizations.deidentifyTemplates.delete", @@ -251,7 +251,7 @@ ] }, "get": { - "description": "Gets a DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Gets a DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/organizations/{organizationsId}/deidentifyTemplates/{deidentifyTemplatesId}", "httpMethod": "GET", "id": "dlp.organizations.deidentifyTemplates.get", @@ -276,7 +276,7 @@ ] }, "list": { - "description": "Lists DeidentifyTemplates. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Lists DeidentifyTemplates. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/organizations/{organizationsId}/deidentifyTemplates", "httpMethod": "GET", "id": "dlp.organizations.deidentifyTemplates.list", @@ -290,23 +290,23 @@ "type": "string" }, "orderBy": { - "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", + "description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Page token to continue retrieval. Comes from previous call to `ListDeidentifyTemplates`.", + "description": "Page token to continue retrieval. Comes from the previous call to `ListDeidentifyTemplates`.", "location": "query", "type": "string" }, "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -322,7 +322,7 @@ ] }, "patch": { - "description": "Updates the DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Updates the DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/organizations/{organizationsId}/deidentifyTemplates/{deidentifyTemplatesId}", "httpMethod": "PATCH", "id": "dlp.organizations.deidentifyTemplates.patch", @@ -354,7 +354,7 @@ "inspectTemplates": { "methods": { "create": { - "description": "Creates an InspectTemplate for reusing frequently used configuration for inspecting content, images, and storage. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Creates an InspectTemplate for reusing frequently used configuration for inspecting content, images, and storage. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/organizations/{organizationsId}/inspectTemplates", "httpMethod": "POST", "id": "dlp.organizations.inspectTemplates.create", @@ -363,7 +363,7 @@ ], "parameters": { "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -382,7 +382,7 @@ ] }, "delete": { - "description": "Deletes an InspectTemplate. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Deletes an InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/organizations/{organizationsId}/inspectTemplates/{inspectTemplatesId}", "httpMethod": "DELETE", "id": "dlp.organizations.inspectTemplates.delete", @@ -407,7 +407,7 @@ ] }, "get": { - "description": "Gets an InspectTemplate. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Gets an InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/organizations/{organizationsId}/inspectTemplates/{inspectTemplatesId}", "httpMethod": "GET", "id": "dlp.organizations.inspectTemplates.get", @@ -432,7 +432,7 @@ ] }, "list": { - "description": "Lists InspectTemplates. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Lists InspectTemplates. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/organizations/{organizationsId}/inspectTemplates", "httpMethod": "GET", "id": "dlp.organizations.inspectTemplates.list", @@ -446,23 +446,23 @@ "type": "string" }, "orderBy": { - "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", + "description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Page token to continue retrieval. Comes from previous call to `ListInspectTemplates`.", + "description": "Page token to continue retrieval. Comes from the previous call to `ListInspectTemplates`.", "location": "query", "type": "string" }, "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -478,7 +478,7 @@ ] }, "patch": { - "description": "Updates the InspectTemplate. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Updates the InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/organizations/{organizationsId}/inspectTemplates/{inspectTemplatesId}", "httpMethod": "PATCH", "id": "dlp.organizations.inspectTemplates.patch", @@ -509,10 +509,85 @@ }, "locations": { "resources": { + "columnDataProfiles": { + "methods": { + "get": { + "description": "Gets a column data profile.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/columnDataProfiles/{columnDataProfilesId}", + "httpMethod": "GET", + "id": "dlp.organizations.locations.columnDataProfiles.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name, for example `organizations/12345/locations/us/columnDataProfiles/53234423`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/columnDataProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GooglePrivacyDlpV2ColumnDataProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists data profiles for an organization.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/columnDataProfiles", + "httpMethod": "GET", + "id": "dlp.organizations.locations.columnDataProfiles.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values: - `table_data_profile_name` - The name of the related table data profile. - `project_id` - The Google Cloud project ID. (REQUIRED) - `dataset_id` - The BigQuery dataset ID. (REQUIRED) - `table_id` - The BigQuery table ID. (REQUIRED) - `field_id` - The ID of the BigQuery field. - `info_type` - The infotype detected in the resource. - `sensitivity_level` - HIGH|MEDIUM|LOW - `data_risk_level`: How much risk is associated with this data. - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` for project_id, dataset_id, and table_id. Other filters also support `!=`. Examples: * project_id = 12345 AND status_code = 1 * project_id = 12345 AND sensitivity_level = HIGH * project_id = 12345 AND info_type = STREET_ADDRESS The length of this field should be no more than 500 characters.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id asc` * `table_id` * `sensitivity_level desc` Supported fields are: - `project_id`: The Google Cloud project ID. - `dataset_id`: The ID of a BigQuery dataset. - `table_id`: The ID of a BigQuery table. - `sensitivity_level`: How sensitive the data in a column is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Size of the page. This value can be limited by the server. If zero, server returns a page of max size 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token to continue retrieval.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Resource name of the organization or project, for example `organizations/433245324/locations/europe` or projects/project-id/locations/asia.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/columnDataProfiles", + "response": { + "$ref": "GooglePrivacyDlpV2ListColumnDataProfilesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "deidentifyTemplates": { "methods": { "create": { - "description": "Creates a DeidentifyTemplate for reusing frequently used configuration for de-identifying content, images, and storage. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Creates a DeidentifyTemplate for reusing frequently used configuration for de-identifying content, images, and storage. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/deidentifyTemplates", "httpMethod": "POST", "id": "dlp.organizations.locations.deidentifyTemplates.create", @@ -521,7 +596,7 @@ ], "parameters": { "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^organizations/[^/]+/locations/[^/]+$", "required": true, @@ -540,7 +615,7 @@ ] }, "delete": { - "description": "Deletes a DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Deletes a DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/deidentifyTemplates/{deidentifyTemplatesId}", "httpMethod": "DELETE", "id": "dlp.organizations.locations.deidentifyTemplates.delete", @@ -565,7 +640,7 @@ ] }, "get": { - "description": "Gets a DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Gets a DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/deidentifyTemplates/{deidentifyTemplatesId}", "httpMethod": "GET", "id": "dlp.organizations.locations.deidentifyTemplates.get", @@ -590,7 +665,7 @@ ] }, "list": { - "description": "Lists DeidentifyTemplates. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Lists DeidentifyTemplates. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/deidentifyTemplates", "httpMethod": "GET", "id": "dlp.organizations.locations.deidentifyTemplates.list", @@ -604,23 +679,23 @@ "type": "string" }, "orderBy": { - "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", + "description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Page token to continue retrieval. Comes from previous call to `ListDeidentifyTemplates`.", + "description": "Page token to continue retrieval. Comes from the previous call to `ListDeidentifyTemplates`.", "location": "query", "type": "string" }, "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^organizations/[^/]+/locations/[^/]+$", "required": true, @@ -636,7 +711,7 @@ ] }, "patch": { - "description": "Updates the DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Updates the DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/deidentifyTemplates/{deidentifyTemplatesId}", "httpMethod": "PATCH", "id": "dlp.organizations.locations.deidentifyTemplates.patch", @@ -665,10 +740,161 @@ } } }, + "discoveryConfigs": { + "methods": { + "create": { + "description": "Creates a config for discovery to scan and profile storage.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/discoveryConfigs", + "httpMethod": "POST", + "id": "dlp.organizations.locations.discoveryConfigs.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Parent resource name. The format of this value is as follows: `projects/`PROJECT_ID`/locations/`LOCATION_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/discoveryConfigs", + "request": { + "$ref": "GooglePrivacyDlpV2CreateDiscoveryConfigRequest" + }, + "response": { + "$ref": "GooglePrivacyDlpV2DiscoveryConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a discovery configuration.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/discoveryConfigs/{discoveryConfigsId}", + "httpMethod": "DELETE", + "id": "dlp.organizations.locations.discoveryConfigs.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the project and the config, for example `projects/dlp-test-project/discoveryConfigs/53234423`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/discoveryConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a discovery configuration.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/discoveryConfigs/{discoveryConfigsId}", + "httpMethod": "GET", + "id": "dlp.organizations.locations.discoveryConfigs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the project and the configuration, for example `projects/dlp-test-project/discoveryConfigs/53234423`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/discoveryConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GooglePrivacyDlpV2DiscoveryConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists discovery configurations.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/discoveryConfigs", + "httpMethod": "GET", + "id": "dlp.organizations.locations.discoveryConfigs.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "orderBy": { + "description": "Comma separated list of config fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `last_run_time`: corresponds to the last time the DiscoveryConfig ran. - `name`: corresponds to the DiscoveryConfig's name. - `status`: corresponds to DiscoveryConfig's status.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Size of the page. This value can be limited by a server.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token to continue retrieval. Comes from the previous call to ListDiscoveryConfigs. `order_by` field must not change for subsequent calls.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent resource name. The format of this value is as follows: `projects/`PROJECT_ID`/locations/`LOCATION_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/discoveryConfigs", + "response": { + "$ref": "GooglePrivacyDlpV2ListDiscoveryConfigsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a discovery configuration.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/discoveryConfigs/{discoveryConfigsId}", + "httpMethod": "PATCH", + "id": "dlp.organizations.locations.discoveryConfigs.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the project and the configuration, for example `projects/dlp-test-project/discoveryConfigs/53234423`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/discoveryConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "request": { + "$ref": "GooglePrivacyDlpV2UpdateDiscoveryConfigRequest" + }, + "response": { + "$ref": "GooglePrivacyDlpV2DiscoveryConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "dlpJobs": { "methods": { "list": { - "description": "Lists DlpJobs that match the specified filter in the request. See https://cloud.google.com/dlp/docs/inspecting-storage and https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.", + "description": "Lists DlpJobs that match the specified filter in the request. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/dlpJobs", "httpMethod": "GET", "id": "dlp.organizations.locations.dlpJobs.list", @@ -687,7 +913,7 @@ "type": "string" }, "orderBy": { - "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc, end_time asc, create_time desc` Supported fields are: - `create_time`: corresponds to the time the job was created. - `end_time`: corresponds to the time the job ended. - `name`: corresponds to the job's name. - `state`: corresponds to `state`", + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc, end_time asc, create_time desc` Supported fields are: - `create_time`: corresponds to the time the job was created. - `end_time`: corresponds to the time the job ended. - `name`: corresponds to the job's name. - `state`: corresponds to `state`", "location": "query", "type": "string" }, @@ -703,7 +929,7 @@ "type": "string" }, "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^organizations/[^/]+/locations/[^/]+$", "required": true, @@ -738,7 +964,7 @@ "inspectTemplates": { "methods": { "create": { - "description": "Creates an InspectTemplate for reusing frequently used configuration for inspecting content, images, and storage. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Creates an InspectTemplate for reusing frequently used configuration for inspecting content, images, and storage. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/inspectTemplates", "httpMethod": "POST", "id": "dlp.organizations.locations.inspectTemplates.create", @@ -747,7 +973,7 @@ ], "parameters": { "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^organizations/[^/]+/locations/[^/]+$", "required": true, @@ -766,7 +992,7 @@ ] }, "delete": { - "description": "Deletes an InspectTemplate. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Deletes an InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/inspectTemplates/{inspectTemplatesId}", "httpMethod": "DELETE", "id": "dlp.organizations.locations.inspectTemplates.delete", @@ -791,7 +1017,7 @@ ] }, "get": { - "description": "Gets an InspectTemplate. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Gets an InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/inspectTemplates/{inspectTemplatesId}", "httpMethod": "GET", "id": "dlp.organizations.locations.inspectTemplates.get", @@ -816,7 +1042,7 @@ ] }, "list": { - "description": "Lists InspectTemplates. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Lists InspectTemplates. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/inspectTemplates", "httpMethod": "GET", "id": "dlp.organizations.locations.inspectTemplates.list", @@ -830,23 +1056,23 @@ "type": "string" }, "orderBy": { - "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", + "description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Page token to continue retrieval. Comes from previous call to `ListInspectTemplates`.", + "description": "Page token to continue retrieval. Comes from the previous call to `ListInspectTemplates`.", "location": "query", "type": "string" }, "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^organizations/[^/]+/locations/[^/]+$", "required": true, @@ -862,7 +1088,7 @@ ] }, "patch": { - "description": "Updates the InspectTemplate. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Updates the InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/inspectTemplates/{inspectTemplatesId}", "httpMethod": "PATCH", "id": "dlp.organizations.locations.inspectTemplates.patch", @@ -894,7 +1120,7 @@ "jobTriggers": { "methods": { "create": { - "description": "Creates a job trigger to run DLP actions such as scanning storage for sensitive information on a set schedule. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.", + "description": "Creates a job trigger to run DLP actions such as scanning storage for sensitive information on a set schedule. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/jobTriggers", "httpMethod": "POST", "id": "dlp.organizations.locations.jobTriggers.create", @@ -903,7 +1129,7 @@ ], "parameters": { "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^organizations/[^/]+/locations/[^/]+$", "required": true, @@ -922,7 +1148,7 @@ ] }, "delete": { - "description": "Deletes a job trigger. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.", + "description": "Deletes a job trigger. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/jobTriggers/{jobTriggersId}", "httpMethod": "DELETE", "id": "dlp.organizations.locations.jobTriggers.delete", @@ -947,7 +1173,7 @@ ] }, "get": { - "description": "Gets a job trigger. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.", + "description": "Gets a job trigger. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/jobTriggers/{jobTriggersId}", "httpMethod": "GET", "id": "dlp.organizations.locations.jobTriggers.get", @@ -972,7 +1198,7 @@ ] }, "list": { - "description": "Lists job triggers. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.", + "description": "Lists job triggers. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/jobTriggers", "httpMethod": "GET", "id": "dlp.organizations.locations.jobTriggers.list", @@ -991,23 +1217,23 @@ "type": "string" }, "orderBy": { - "description": "Comma separated list of triggeredJob fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the JobTrigger was created. - `update_time`: corresponds to the time the JobTrigger was last updated. - `last_run_time`: corresponds to the last time the JobTrigger ran. - `name`: corresponds to the JobTrigger's name. - `display_name`: corresponds to the JobTrigger's display name. - `status`: corresponds to JobTrigger's status.", + "description": "Comma separated list of triggeredJob fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the JobTrigger was created. - `update_time`: corresponds to the time the JobTrigger was last updated. - `last_run_time`: corresponds to the last time the JobTrigger ran. - `name`: corresponds to the JobTrigger's name. - `display_name`: corresponds to the JobTrigger's display name. - `status`: corresponds to JobTrigger's status.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by a server.", + "description": "Size of the page. This value can be limited by a server.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Page token to continue retrieval. Comes from previous call to ListJobTriggers. `order_by` field must not change for subsequent calls.", + "description": "Page token to continue retrieval. Comes from the previous call to ListJobTriggers. `order_by` field must not change for subsequent calls.", "location": "query", "type": "string" }, "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^organizations/[^/]+/locations/[^/]+$", "required": true, @@ -1038,7 +1264,7 @@ ] }, "patch": { - "description": "Updates a job trigger. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.", + "description": "Updates a job trigger. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/jobTriggers/{jobTriggersId}", "httpMethod": "PATCH", "id": "dlp.organizations.locations.jobTriggers.patch", @@ -1067,10 +1293,85 @@ } } }, + "projectDataProfiles": { + "methods": { + "get": { + "description": "Gets a project data profile.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/projectDataProfiles/{projectDataProfilesId}", + "httpMethod": "GET", + "id": "dlp.organizations.locations.projectDataProfiles.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name, for example `organizations/12345/locations/us/projectDataProfiles/53234423`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/projectDataProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GooglePrivacyDlpV2ProjectDataProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists data profiles for an organization.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/projectDataProfiles", + "httpMethod": "GET", + "id": "dlp.organizations.locations.projectDataProfiles.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values: - `sensitivity_level` - HIGH|MODERATE|LOW - `data_risk_level` - HIGH|MODERATE|LOW - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` or `!=`. Examples: * project_id = 12345 AND status_code = 1 * project_id = 12345 AND sensitivity_level = HIGH The length of this field should be no more than 500 characters.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id` * `sensitivity_level desc` Supported fields are: - `project_id`: GCP project ID - `sensitivity_level`: How sensitive the data in a project is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Size of the page. This value can be limited by the server. If zero, server returns a page of max size 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token to continue retrieval.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. organizations/{org_id}/locations/{loc_id}", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/projectDataProfiles", + "response": { + "$ref": "GooglePrivacyDlpV2ListProjectDataProfilesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "storedInfoTypes": { "methods": { "create": { - "description": "Creates a pre-built stored infoType to be used for inspection. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Creates a pre-built stored infoType to be used for inspection. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/storedInfoTypes", "httpMethod": "POST", "id": "dlp.organizations.locations.storedInfoTypes.create", @@ -1079,7 +1380,7 @@ ], "parameters": { "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^organizations/[^/]+/locations/[^/]+$", "required": true, @@ -1098,7 +1399,7 @@ ] }, "delete": { - "description": "Deletes a stored infoType. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Deletes a stored infoType. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/storedInfoTypes/{storedInfoTypesId}", "httpMethod": "DELETE", "id": "dlp.organizations.locations.storedInfoTypes.delete", @@ -1123,7 +1424,7 @@ ] }, "get": { - "description": "Gets a stored infoType. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Gets a stored infoType. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/storedInfoTypes/{storedInfoTypesId}", "httpMethod": "GET", "id": "dlp.organizations.locations.storedInfoTypes.get", @@ -1148,7 +1449,7 @@ ] }, "list": { - "description": "Lists stored infoTypes. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Lists stored infoTypes. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/storedInfoTypes", "httpMethod": "GET", "id": "dlp.organizations.locations.storedInfoTypes.list", @@ -1162,23 +1463,23 @@ "type": "string" }, "orderBy": { - "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc, display_name, create_time desc` Supported fields are: - `create_time`: corresponds to the time the most recent version of the resource was created. - `state`: corresponds to the state of the resource. - `name`: corresponds to resource name. - `display_name`: corresponds to info type's display name.", + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc, display_name, create_time desc` Supported fields are: - `create_time`: corresponds to the time the most recent version of the resource was created. - `state`: corresponds to the state of the resource. - `name`: corresponds to resource name. - `display_name`: corresponds to info type's display name.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", + "description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Page token to continue retrieval. Comes from previous call to `ListStoredInfoTypes`.", + "description": "Page token to continue retrieval. Comes from the previous call to `ListStoredInfoTypes`.", "location": "query", "type": "string" }, "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^organizations/[^/]+/locations/[^/]+$", "required": true, @@ -1194,7 +1495,7 @@ ] }, "patch": { - "description": "Updates the stored infoType by creating a new version. The existing version will continue to be used until the new version is ready. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Updates the stored infoType by creating a new version. The existing version will continue to be used until the new version is ready. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/storedInfoTypes/{storedInfoTypesId}", "httpMethod": "PATCH", "id": "dlp.organizations.locations.storedInfoTypes.patch", @@ -1222,13 +1523,88 @@ ] } } + }, + "tableDataProfiles": { + "methods": { + "get": { + "description": "Gets a table data profile.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/tableDataProfiles/{tableDataProfilesId}", + "httpMethod": "GET", + "id": "dlp.organizations.locations.tableDataProfiles.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name, for example `organizations/12345/locations/us/tableDataProfiles/53234423`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/tableDataProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GooglePrivacyDlpV2TableDataProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists data profiles for an organization.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/tableDataProfiles", + "httpMethod": "GET", + "id": "dlp.organizations.locations.tableDataProfiles.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values: - `project_id` - The GCP project ID. - `dataset_id` - The BigQuery dataset ID. - `table_id` - The ID of the BigQuery table. - `sensitivity_level` - HIGH|MODERATE|LOW - `data_risk_level` - HIGH|MODERATE|LOW - `resource_visibility`: PUBLIC|RESTRICTED - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` or `!=`. Examples: * project_id = 12345 AND status_code = 1 * project_id = 12345 AND sensitivity_level = HIGH * project_id = 12345 AND resource_visibility = PUBLIC The length of this field should be no more than 500 characters.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id asc` * `table_id` * `sensitivity_level desc` Supported fields are: - `project_id`: The GCP project ID. - `dataset_id`: The ID of a BigQuery dataset. - `table_id`: The ID of a BigQuery table. - `sensitivity_level`: How sensitive the data in a table is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds. - `last_modified`: The last time the resource was modified. - `resource_visibility`: Visibility restriction for this resource. - `row_count`: Number of rows in this resource.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Size of the page. This value can be limited by the server. If zero, server returns a page of max size 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token to continue retrieval.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Resource name of the organization or project, for example `organizations/433245324/locations/europe` or `projects/project-id/locations/asia`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/tableDataProfiles", + "response": { + "$ref": "GooglePrivacyDlpV2ListTableDataProfilesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } }, "storedInfoTypes": { "methods": { "create": { - "description": "Creates a pre-built stored infoType to be used for inspection. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Creates a pre-built stored infoType to be used for inspection. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/organizations/{organizationsId}/storedInfoTypes", "httpMethod": "POST", "id": "dlp.organizations.storedInfoTypes.create", @@ -1237,7 +1613,7 @@ ], "parameters": { "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -1256,7 +1632,7 @@ ] }, "delete": { - "description": "Deletes a stored infoType. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Deletes a stored infoType. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/organizations/{organizationsId}/storedInfoTypes/{storedInfoTypesId}", "httpMethod": "DELETE", "id": "dlp.organizations.storedInfoTypes.delete", @@ -1281,7 +1657,7 @@ ] }, "get": { - "description": "Gets a stored infoType. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Gets a stored infoType. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/organizations/{organizationsId}/storedInfoTypes/{storedInfoTypesId}", "httpMethod": "GET", "id": "dlp.organizations.storedInfoTypes.get", @@ -1306,7 +1682,7 @@ ] }, "list": { - "description": "Lists stored infoTypes. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Lists stored infoTypes. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/organizations/{organizationsId}/storedInfoTypes", "httpMethod": "GET", "id": "dlp.organizations.storedInfoTypes.list", @@ -1320,23 +1696,23 @@ "type": "string" }, "orderBy": { - "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc, display_name, create_time desc` Supported fields are: - `create_time`: corresponds to the time the most recent version of the resource was created. - `state`: corresponds to the state of the resource. - `name`: corresponds to resource name. - `display_name`: corresponds to info type's display name.", + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc, display_name, create_time desc` Supported fields are: - `create_time`: corresponds to the time the most recent version of the resource was created. - `state`: corresponds to the state of the resource. - `name`: corresponds to resource name. - `display_name`: corresponds to info type's display name.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", + "description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Page token to continue retrieval. Comes from previous call to `ListStoredInfoTypes`.", + "description": "Page token to continue retrieval. Comes from the previous call to `ListStoredInfoTypes`.", "location": "query", "type": "string" }, "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -1352,7 +1728,7 @@ ] }, "patch": { - "description": "Updates the stored infoType by creating a new version. The existing version will continue to be used until the new version is ready. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Updates the stored infoType by creating a new version. The existing version will continue to be used until the new version is ready. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/organizations/{organizationsId}/storedInfoTypes/{storedInfoTypesId}", "httpMethod": "PATCH", "id": "dlp.organizations.storedInfoTypes.patch", @@ -1388,7 +1764,7 @@ "content": { "methods": { "deidentify": { - "description": "De-identifies potentially sensitive info from a ContentItem. This method has limits on input size and output size. See https://cloud.google.com/dlp/docs/deidentify-sensitive-data to learn more. When no InfoTypes or CustomInfoTypes are specified in this request, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated.", + "description": "De-identifies potentially sensitive info from a ContentItem. This method has limits on input size and output size. See https://cloud.google.com/sensitive-data-protection/docs/deidentify-sensitive-data to learn more. When no InfoTypes or CustomInfoTypes are specified in this request, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated.", "flatPath": "v2/projects/{projectsId}/content:deidentify", "httpMethod": "POST", "id": "dlp.projects.content.deidentify", @@ -1397,7 +1773,7 @@ ], "parameters": { "parent": { - "description": "Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -1416,7 +1792,7 @@ ] }, "inspect": { - "description": "Finds potentially sensitive info in content. This method has limits on input size, processing time, and output size. When no InfoTypes or CustomInfoTypes are specified in this request, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated. For how to guides, see https://cloud.google.com/dlp/docs/inspecting-images and https://cloud.google.com/dlp/docs/inspecting-text,", + "description": "Finds potentially sensitive info in content. This method has limits on input size, processing time, and output size. When no InfoTypes or CustomInfoTypes are specified in this request, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated. For how to guides, see https://cloud.google.com/sensitive-data-protection/docs/inspecting-images and https://cloud.google.com/sensitive-data-protection/docs/inspecting-text,", "flatPath": "v2/projects/{projectsId}/content:inspect", "httpMethod": "POST", "id": "dlp.projects.content.inspect", @@ -1425,7 +1801,7 @@ ], "parameters": { "parent": { - "description": "Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -1444,7 +1820,7 @@ ] }, "reidentify": { - "description": "Re-identifies content that has been de-identified. See https://cloud.google.com/dlp/docs/pseudonymization#re-identification_in_free_text_code_example to learn more.", + "description": "Re-identifies content that has been de-identified. See https://cloud.google.com/sensitive-data-protection/docs/pseudonymization#re-identification_in_free_text_code_example to learn more.", "flatPath": "v2/projects/{projectsId}/content:reidentify", "httpMethod": "POST", "id": "dlp.projects.content.reidentify", @@ -1453,7 +1829,7 @@ ], "parameters": { "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -1476,7 +1852,7 @@ "deidentifyTemplates": { "methods": { "create": { - "description": "Creates a DeidentifyTemplate for reusing frequently used configuration for de-identifying content, images, and storage. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Creates a DeidentifyTemplate for reusing frequently used configuration for de-identifying content, images, and storage. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/projects/{projectsId}/deidentifyTemplates", "httpMethod": "POST", "id": "dlp.projects.deidentifyTemplates.create", @@ -1485,7 +1861,7 @@ ], "parameters": { "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -1504,7 +1880,7 @@ ] }, "delete": { - "description": "Deletes a DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Deletes a DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/projects/{projectsId}/deidentifyTemplates/{deidentifyTemplatesId}", "httpMethod": "DELETE", "id": "dlp.projects.deidentifyTemplates.delete", @@ -1529,7 +1905,7 @@ ] }, "get": { - "description": "Gets a DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Gets a DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/projects/{projectsId}/deidentifyTemplates/{deidentifyTemplatesId}", "httpMethod": "GET", "id": "dlp.projects.deidentifyTemplates.get", @@ -1554,7 +1930,7 @@ ] }, "list": { - "description": "Lists DeidentifyTemplates. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Lists DeidentifyTemplates. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/projects/{projectsId}/deidentifyTemplates", "httpMethod": "GET", "id": "dlp.projects.deidentifyTemplates.list", @@ -1568,23 +1944,23 @@ "type": "string" }, "orderBy": { - "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", + "description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Page token to continue retrieval. Comes from previous call to `ListDeidentifyTemplates`.", + "description": "Page token to continue retrieval. Comes from the previous call to `ListDeidentifyTemplates`.", "location": "query", "type": "string" }, "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -1600,7 +1976,7 @@ ] }, "patch": { - "description": "Updates the DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Updates the DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/projects/{projectsId}/deidentifyTemplates/{deidentifyTemplatesId}", "httpMethod": "PATCH", "id": "dlp.projects.deidentifyTemplates.patch", @@ -1632,7 +2008,7 @@ "dlpJobs": { "methods": { "cancel": { - "description": "Starts asynchronous cancellation on a long-running DlpJob. The server makes a best effort to cancel the DlpJob, but success is not guaranteed. See https://cloud.google.com/dlp/docs/inspecting-storage and https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.", + "description": "Starts asynchronous cancellation on a long-running DlpJob. The server makes a best effort to cancel the DlpJob, but success is not guaranteed. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more.", "flatPath": "v2/projects/{projectsId}/dlpJobs/{dlpJobsId}:cancel", "httpMethod": "POST", "id": "dlp.projects.dlpJobs.cancel", @@ -1660,7 +2036,7 @@ ] }, "create": { - "description": "Creates a new job to inspect storage or calculate risk metrics. See https://cloud.google.com/dlp/docs/inspecting-storage and https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated.", + "description": "Creates a new job to inspect storage or calculate risk metrics. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more. When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated.", "flatPath": "v2/projects/{projectsId}/dlpJobs", "httpMethod": "POST", "id": "dlp.projects.dlpJobs.create", @@ -1669,7 +2045,7 @@ ], "parameters": { "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -1688,7 +2064,7 @@ ] }, "delete": { - "description": "Deletes a long-running DlpJob. This method indicates that the client is no longer interested in the DlpJob result. The job will be canceled if possible. See https://cloud.google.com/dlp/docs/inspecting-storage and https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.", + "description": "Deletes a long-running DlpJob. This method indicates that the client is no longer interested in the DlpJob result. The job will be canceled if possible. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more.", "flatPath": "v2/projects/{projectsId}/dlpJobs/{dlpJobsId}", "httpMethod": "DELETE", "id": "dlp.projects.dlpJobs.delete", @@ -1713,7 +2089,7 @@ ] }, "get": { - "description": "Gets the latest state of a long-running DlpJob. See https://cloud.google.com/dlp/docs/inspecting-storage and https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.", + "description": "Gets the latest state of a long-running DlpJob. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more.", "flatPath": "v2/projects/{projectsId}/dlpJobs/{dlpJobsId}", "httpMethod": "GET", "id": "dlp.projects.dlpJobs.get", @@ -1738,7 +2114,7 @@ ] }, "list": { - "description": "Lists DlpJobs that match the specified filter in the request. See https://cloud.google.com/dlp/docs/inspecting-storage and https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.", + "description": "Lists DlpJobs that match the specified filter in the request. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more.", "flatPath": "v2/projects/{projectsId}/dlpJobs", "httpMethod": "GET", "id": "dlp.projects.dlpJobs.list", @@ -1757,7 +2133,7 @@ "type": "string" }, "orderBy": { - "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc, end_time asc, create_time desc` Supported fields are: - `create_time`: corresponds to the time the job was created. - `end_time`: corresponds to the time the job ended. - `name`: corresponds to the job's name. - `state`: corresponds to `state`", + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc, end_time asc, create_time desc` Supported fields are: - `create_time`: corresponds to the time the job was created. - `end_time`: corresponds to the time the job ended. - `name`: corresponds to the job's name. - `state`: corresponds to `state`", "location": "query", "type": "string" }, @@ -1773,7 +2149,7 @@ "type": "string" }, "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -1808,7 +2184,7 @@ "image": { "methods": { "redact": { - "description": "Redacts potentially sensitive info from an image. This method has limits on input size, processing time, and output size. See https://cloud.google.com/dlp/docs/redacting-sensitive-data-images to learn more. When no InfoTypes or CustomInfoTypes are specified in this request, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated.", + "description": "Redacts potentially sensitive info from an image. This method has limits on input size, processing time, and output size. See https://cloud.google.com/sensitive-data-protection/docs/redacting-sensitive-data-images to learn more. When no InfoTypes or CustomInfoTypes are specified in this request, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated.", "flatPath": "v2/projects/{projectsId}/image:redact", "httpMethod": "POST", "id": "dlp.projects.image.redact", @@ -1817,7 +2193,7 @@ ], "parameters": { "parent": { - "description": "Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -1840,7 +2216,7 @@ "inspectTemplates": { "methods": { "create": { - "description": "Creates an InspectTemplate for reusing frequently used configuration for inspecting content, images, and storage. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Creates an InspectTemplate for reusing frequently used configuration for inspecting content, images, and storage. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/projects/{projectsId}/inspectTemplates", "httpMethod": "POST", "id": "dlp.projects.inspectTemplates.create", @@ -1849,7 +2225,7 @@ ], "parameters": { "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -1868,7 +2244,7 @@ ] }, "delete": { - "description": "Deletes an InspectTemplate. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Deletes an InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/projects/{projectsId}/inspectTemplates/{inspectTemplatesId}", "httpMethod": "DELETE", "id": "dlp.projects.inspectTemplates.delete", @@ -1893,7 +2269,7 @@ ] }, "get": { - "description": "Gets an InspectTemplate. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Gets an InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/projects/{projectsId}/inspectTemplates/{inspectTemplatesId}", "httpMethod": "GET", "id": "dlp.projects.inspectTemplates.get", @@ -1918,7 +2294,7 @@ ] }, "list": { - "description": "Lists InspectTemplates. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Lists InspectTemplates. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/projects/{projectsId}/inspectTemplates", "httpMethod": "GET", "id": "dlp.projects.inspectTemplates.list", @@ -1932,23 +2308,23 @@ "type": "string" }, "orderBy": { - "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", + "description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Page token to continue retrieval. Comes from previous call to `ListInspectTemplates`.", + "description": "Page token to continue retrieval. Comes from the previous call to `ListInspectTemplates`.", "location": "query", "type": "string" }, "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -1964,7 +2340,7 @@ ] }, "patch": { - "description": "Updates the InspectTemplate. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Updates the InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/projects/{projectsId}/inspectTemplates/{inspectTemplatesId}", "httpMethod": "PATCH", "id": "dlp.projects.inspectTemplates.patch", @@ -2024,7 +2400,7 @@ ] }, "create": { - "description": "Creates a job trigger to run DLP actions such as scanning storage for sensitive information on a set schedule. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.", + "description": "Creates a job trigger to run DLP actions such as scanning storage for sensitive information on a set schedule. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", "flatPath": "v2/projects/{projectsId}/jobTriggers", "httpMethod": "POST", "id": "dlp.projects.jobTriggers.create", @@ -2033,7 +2409,7 @@ ], "parameters": { "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -2052,7 +2428,7 @@ ] }, "delete": { - "description": "Deletes a job trigger. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.", + "description": "Deletes a job trigger. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", "flatPath": "v2/projects/{projectsId}/jobTriggers/{jobTriggersId}", "httpMethod": "DELETE", "id": "dlp.projects.jobTriggers.delete", @@ -2077,7 +2453,7 @@ ] }, "get": { - "description": "Gets a job trigger. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.", + "description": "Gets a job trigger. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", "flatPath": "v2/projects/{projectsId}/jobTriggers/{jobTriggersId}", "httpMethod": "GET", "id": "dlp.projects.jobTriggers.get", @@ -2102,7 +2478,7 @@ ] }, "list": { - "description": "Lists job triggers. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.", + "description": "Lists job triggers. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", "flatPath": "v2/projects/{projectsId}/jobTriggers", "httpMethod": "GET", "id": "dlp.projects.jobTriggers.list", @@ -2121,23 +2497,23 @@ "type": "string" }, "orderBy": { - "description": "Comma separated list of triggeredJob fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the JobTrigger was created. - `update_time`: corresponds to the time the JobTrigger was last updated. - `last_run_time`: corresponds to the last time the JobTrigger ran. - `name`: corresponds to the JobTrigger's name. - `display_name`: corresponds to the JobTrigger's display name. - `status`: corresponds to JobTrigger's status.", + "description": "Comma separated list of triggeredJob fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the JobTrigger was created. - `update_time`: corresponds to the time the JobTrigger was last updated. - `last_run_time`: corresponds to the last time the JobTrigger ran. - `name`: corresponds to the JobTrigger's name. - `display_name`: corresponds to the JobTrigger's display name. - `status`: corresponds to JobTrigger's status.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by a server.", + "description": "Size of the page. This value can be limited by a server.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Page token to continue retrieval. Comes from previous call to ListJobTriggers. `order_by` field must not change for subsequent calls.", + "description": "Page token to continue retrieval. Comes from the previous call to ListJobTriggers. `order_by` field must not change for subsequent calls.", "location": "query", "type": "string" }, "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -2168,7 +2544,7 @@ ] }, "patch": { - "description": "Updates a job trigger. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.", + "description": "Updates a job trigger. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", "flatPath": "v2/projects/{projectsId}/jobTriggers/{jobTriggersId}", "httpMethod": "PATCH", "id": "dlp.projects.jobTriggers.patch", @@ -2199,10 +2575,85 @@ }, "locations": { "resources": { + "columnDataProfiles": { + "methods": { + "get": { + "description": "Gets a column data profile.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/columnDataProfiles/{columnDataProfilesId}", + "httpMethod": "GET", + "id": "dlp.projects.locations.columnDataProfiles.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name, for example `organizations/12345/locations/us/columnDataProfiles/53234423`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/columnDataProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GooglePrivacyDlpV2ColumnDataProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists data profiles for an organization.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/columnDataProfiles", + "httpMethod": "GET", + "id": "dlp.projects.locations.columnDataProfiles.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values: - `table_data_profile_name` - The name of the related table data profile. - `project_id` - The Google Cloud project ID. (REQUIRED) - `dataset_id` - The BigQuery dataset ID. (REQUIRED) - `table_id` - The BigQuery table ID. (REQUIRED) - `field_id` - The ID of the BigQuery field. - `info_type` - The infotype detected in the resource. - `sensitivity_level` - HIGH|MEDIUM|LOW - `data_risk_level`: How much risk is associated with this data. - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` for project_id, dataset_id, and table_id. Other filters also support `!=`. Examples: * project_id = 12345 AND status_code = 1 * project_id = 12345 AND sensitivity_level = HIGH * project_id = 12345 AND info_type = STREET_ADDRESS The length of this field should be no more than 500 characters.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id asc` * `table_id` * `sensitivity_level desc` Supported fields are: - `project_id`: The Google Cloud project ID. - `dataset_id`: The ID of a BigQuery dataset. - `table_id`: The ID of a BigQuery table. - `sensitivity_level`: How sensitive the data in a column is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Size of the page. This value can be limited by the server. If zero, server returns a page of max size 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token to continue retrieval.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Resource name of the organization or project, for example `organizations/433245324/locations/europe` or projects/project-id/locations/asia.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/columnDataProfiles", + "response": { + "$ref": "GooglePrivacyDlpV2ListColumnDataProfilesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "content": { "methods": { "deidentify": { - "description": "De-identifies potentially sensitive info from a ContentItem. This method has limits on input size and output size. See https://cloud.google.com/dlp/docs/deidentify-sensitive-data to learn more. When no InfoTypes or CustomInfoTypes are specified in this request, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated.", + "description": "De-identifies potentially sensitive info from a ContentItem. This method has limits on input size and output size. See https://cloud.google.com/sensitive-data-protection/docs/deidentify-sensitive-data to learn more. When no InfoTypes or CustomInfoTypes are specified in this request, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/content:deidentify", "httpMethod": "POST", "id": "dlp.projects.locations.content.deidentify", @@ -2211,7 +2662,7 @@ ], "parameters": { "parent": { - "description": "Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -2230,7 +2681,7 @@ ] }, "inspect": { - "description": "Finds potentially sensitive info in content. This method has limits on input size, processing time, and output size. When no InfoTypes or CustomInfoTypes are specified in this request, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated. For how to guides, see https://cloud.google.com/dlp/docs/inspecting-images and https://cloud.google.com/dlp/docs/inspecting-text,", + "description": "Finds potentially sensitive info in content. This method has limits on input size, processing time, and output size. When no InfoTypes or CustomInfoTypes are specified in this request, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated. For how to guides, see https://cloud.google.com/sensitive-data-protection/docs/inspecting-images and https://cloud.google.com/sensitive-data-protection/docs/inspecting-text,", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/content:inspect", "httpMethod": "POST", "id": "dlp.projects.locations.content.inspect", @@ -2239,7 +2690,7 @@ ], "parameters": { "parent": { - "description": "Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -2258,7 +2709,7 @@ ] }, "reidentify": { - "description": "Re-identifies content that has been de-identified. See https://cloud.google.com/dlp/docs/pseudonymization#re-identification_in_free_text_code_example to learn more.", + "description": "Re-identifies content that has been de-identified. See https://cloud.google.com/sensitive-data-protection/docs/pseudonymization#re-identification_in_free_text_code_example to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/content:reidentify", "httpMethod": "POST", "id": "dlp.projects.locations.content.reidentify", @@ -2267,7 +2718,7 @@ ], "parameters": { "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -2290,7 +2741,7 @@ "deidentifyTemplates": { "methods": { "create": { - "description": "Creates a DeidentifyTemplate for reusing frequently used configuration for de-identifying content, images, and storage. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Creates a DeidentifyTemplate for reusing frequently used configuration for de-identifying content, images, and storage. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/deidentifyTemplates", "httpMethod": "POST", "id": "dlp.projects.locations.deidentifyTemplates.create", @@ -2299,7 +2750,7 @@ ], "parameters": { "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -2318,7 +2769,7 @@ ] }, "delete": { - "description": "Deletes a DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Deletes a DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/deidentifyTemplates/{deidentifyTemplatesId}", "httpMethod": "DELETE", "id": "dlp.projects.locations.deidentifyTemplates.delete", @@ -2343,7 +2794,7 @@ ] }, "get": { - "description": "Gets a DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Gets a DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/deidentifyTemplates/{deidentifyTemplatesId}", "httpMethod": "GET", "id": "dlp.projects.locations.deidentifyTemplates.get", @@ -2368,7 +2819,7 @@ ] }, "list": { - "description": "Lists DeidentifyTemplates. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Lists DeidentifyTemplates. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/deidentifyTemplates", "httpMethod": "GET", "id": "dlp.projects.locations.deidentifyTemplates.list", @@ -2382,23 +2833,23 @@ "type": "string" }, "orderBy": { - "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", + "description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Page token to continue retrieval. Comes from previous call to `ListDeidentifyTemplates`.", + "description": "Page token to continue retrieval. Comes from the previous call to `ListDeidentifyTemplates`.", "location": "query", "type": "string" }, "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -2414,7 +2865,7 @@ ] }, "patch": { - "description": "Updates the DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.", + "description": "Updates the DeidentifyTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/deidentifyTemplates/{deidentifyTemplatesId}", "httpMethod": "PATCH", "id": "dlp.projects.locations.deidentifyTemplates.patch", @@ -2443,10 +2894,161 @@ } } }, + "discoveryConfigs": { + "methods": { + "create": { + "description": "Creates a config for discovery to scan and profile storage.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/discoveryConfigs", + "httpMethod": "POST", + "id": "dlp.projects.locations.discoveryConfigs.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Parent resource name. The format of this value is as follows: `projects/`PROJECT_ID`/locations/`LOCATION_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/discoveryConfigs", + "request": { + "$ref": "GooglePrivacyDlpV2CreateDiscoveryConfigRequest" + }, + "response": { + "$ref": "GooglePrivacyDlpV2DiscoveryConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a discovery configuration.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/discoveryConfigs/{discoveryConfigsId}", + "httpMethod": "DELETE", + "id": "dlp.projects.locations.discoveryConfigs.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the project and the config, for example `projects/dlp-test-project/discoveryConfigs/53234423`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/discoveryConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a discovery configuration.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/discoveryConfigs/{discoveryConfigsId}", + "httpMethod": "GET", + "id": "dlp.projects.locations.discoveryConfigs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the project and the configuration, for example `projects/dlp-test-project/discoveryConfigs/53234423`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/discoveryConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GooglePrivacyDlpV2DiscoveryConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists discovery configurations.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/discoveryConfigs", + "httpMethod": "GET", + "id": "dlp.projects.locations.discoveryConfigs.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "orderBy": { + "description": "Comma separated list of config fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `last_run_time`: corresponds to the last time the DiscoveryConfig ran. - `name`: corresponds to the DiscoveryConfig's name. - `status`: corresponds to DiscoveryConfig's status.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Size of the page. This value can be limited by a server.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token to continue retrieval. Comes from the previous call to ListDiscoveryConfigs. `order_by` field must not change for subsequent calls.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent resource name. The format of this value is as follows: `projects/`PROJECT_ID`/locations/`LOCATION_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/discoveryConfigs", + "response": { + "$ref": "GooglePrivacyDlpV2ListDiscoveryConfigsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a discovery configuration.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/discoveryConfigs/{discoveryConfigsId}", + "httpMethod": "PATCH", + "id": "dlp.projects.locations.discoveryConfigs.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the project and the configuration, for example `projects/dlp-test-project/discoveryConfigs/53234423`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/discoveryConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "request": { + "$ref": "GooglePrivacyDlpV2UpdateDiscoveryConfigRequest" + }, + "response": { + "$ref": "GooglePrivacyDlpV2DiscoveryConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "dlpJobs": { "methods": { "cancel": { - "description": "Starts asynchronous cancellation on a long-running DlpJob. The server makes a best effort to cancel the DlpJob, but success is not guaranteed. See https://cloud.google.com/dlp/docs/inspecting-storage and https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.", + "description": "Starts asynchronous cancellation on a long-running DlpJob. The server makes a best effort to cancel the DlpJob, but success is not guaranteed. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dlpJobs/{dlpJobsId}:cancel", "httpMethod": "POST", "id": "dlp.projects.locations.dlpJobs.cancel", @@ -2474,7 +3076,7 @@ ] }, "create": { - "description": "Creates a new job to inspect storage or calculate risk metrics. See https://cloud.google.com/dlp/docs/inspecting-storage and https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated.", + "description": "Creates a new job to inspect storage or calculate risk metrics. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more. When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dlpJobs", "httpMethod": "POST", "id": "dlp.projects.locations.dlpJobs.create", @@ -2483,7 +3085,7 @@ ], "parameters": { "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -2502,7 +3104,7 @@ ] }, "delete": { - "description": "Deletes a long-running DlpJob. This method indicates that the client is no longer interested in the DlpJob result. The job will be canceled if possible. See https://cloud.google.com/dlp/docs/inspecting-storage and https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.", + "description": "Deletes a long-running DlpJob. This method indicates that the client is no longer interested in the DlpJob result. The job will be canceled if possible. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dlpJobs/{dlpJobsId}", "httpMethod": "DELETE", "id": "dlp.projects.locations.dlpJobs.delete", @@ -2536,7 +3138,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, @@ -2555,7 +3157,7 @@ ] }, "get": { - "description": "Gets the latest state of a long-running DlpJob. See https://cloud.google.com/dlp/docs/inspecting-storage and https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.", + "description": "Gets the latest state of a long-running DlpJob. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dlpJobs/{dlpJobsId}", "httpMethod": "GET", "id": "dlp.projects.locations.dlpJobs.get", @@ -2608,7 +3210,7 @@ ] }, "list": { - "description": "Lists DlpJobs that match the specified filter in the request. See https://cloud.google.com/dlp/docs/inspecting-storage and https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.", + "description": "Lists DlpJobs that match the specified filter in the request. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage and https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dlpJobs", "httpMethod": "GET", "id": "dlp.projects.locations.dlpJobs.list", @@ -2627,7 +3229,7 @@ "type": "string" }, "orderBy": { - "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc, end_time asc, create_time desc` Supported fields are: - `create_time`: corresponds to the time the job was created. - `end_time`: corresponds to the time the job ended. - `name`: corresponds to the job's name. - `state`: corresponds to `state`", + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc, end_time asc, create_time desc` Supported fields are: - `create_time`: corresponds to the time the job was created. - `end_time`: corresponds to the time the job ended. - `name`: corresponds to the job's name. - `state`: corresponds to `state`", "location": "query", "type": "string" }, @@ -2643,7 +3245,7 @@ "type": "string" }, "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -2678,7 +3280,7 @@ "image": { "methods": { "redact": { - "description": "Redacts potentially sensitive info from an image. This method has limits on input size, processing time, and output size. See https://cloud.google.com/dlp/docs/redacting-sensitive-data-images to learn more. When no InfoTypes or CustomInfoTypes are specified in this request, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated.", + "description": "Redacts potentially sensitive info from an image. This method has limits on input size, processing time, and output size. See https://cloud.google.com/sensitive-data-protection/docs/redacting-sensitive-data-images to learn more. When no InfoTypes or CustomInfoTypes are specified in this request, the system will automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/image:redact", "httpMethod": "POST", "id": "dlp.projects.locations.image.redact", @@ -2687,7 +3289,7 @@ ], "parameters": { "parent": { - "description": "Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -2710,7 +3312,7 @@ "inspectTemplates": { "methods": { "create": { - "description": "Creates an InspectTemplate for reusing frequently used configuration for inspecting content, images, and storage. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Creates an InspectTemplate for reusing frequently used configuration for inspecting content, images, and storage. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/inspectTemplates", "httpMethod": "POST", "id": "dlp.projects.locations.inspectTemplates.create", @@ -2719,7 +3321,7 @@ ], "parameters": { "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -2738,7 +3340,7 @@ ] }, "delete": { - "description": "Deletes an InspectTemplate. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Deletes an InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/inspectTemplates/{inspectTemplatesId}", "httpMethod": "DELETE", "id": "dlp.projects.locations.inspectTemplates.delete", @@ -2763,7 +3365,7 @@ ] }, "get": { - "description": "Gets an InspectTemplate. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Gets an InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/inspectTemplates/{inspectTemplatesId}", "httpMethod": "GET", "id": "dlp.projects.locations.inspectTemplates.get", @@ -2788,7 +3390,7 @@ ] }, "list": { - "description": "Lists InspectTemplates. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Lists InspectTemplates. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/inspectTemplates", "httpMethod": "GET", "id": "dlp.projects.locations.inspectTemplates.list", @@ -2802,23 +3404,23 @@ "type": "string" }, "orderBy": { - "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the template was created. - `update_time`: corresponds to the time the template was last updated. - `name`: corresponds to the template's name. - `display_name`: corresponds to the template's display name.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", + "description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Page token to continue retrieval. Comes from previous call to `ListInspectTemplates`.", + "description": "Page token to continue retrieval. Comes from the previous call to `ListInspectTemplates`.", "location": "query", "type": "string" }, "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -2834,7 +3436,7 @@ ] }, "patch": { - "description": "Updates the InspectTemplate. See https://cloud.google.com/dlp/docs/creating-templates to learn more.", + "description": "Updates the InspectTemplate. See https://cloud.google.com/sensitive-data-protection/docs/creating-templates to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/inspectTemplates/{inspectTemplatesId}", "httpMethod": "PATCH", "id": "dlp.projects.locations.inspectTemplates.patch", @@ -2894,7 +3496,7 @@ ] }, "create": { - "description": "Creates a job trigger to run DLP actions such as scanning storage for sensitive information on a set schedule. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.", + "description": "Creates a job trigger to run DLP actions such as scanning storage for sensitive information on a set schedule. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobTriggers", "httpMethod": "POST", "id": "dlp.projects.locations.jobTriggers.create", @@ -2903,7 +3505,7 @@ ], "parameters": { "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -2922,7 +3524,7 @@ ] }, "delete": { - "description": "Deletes a job trigger. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.", + "description": "Deletes a job trigger. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobTriggers/{jobTriggersId}", "httpMethod": "DELETE", "id": "dlp.projects.locations.jobTriggers.delete", @@ -2947,7 +3549,7 @@ ] }, "get": { - "description": "Gets a job trigger. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.", + "description": "Gets a job trigger. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobTriggers/{jobTriggersId}", "httpMethod": "GET", "id": "dlp.projects.locations.jobTriggers.get", @@ -3000,7 +3602,7 @@ ] }, "list": { - "description": "Lists job triggers. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.", + "description": "Lists job triggers. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobTriggers", "httpMethod": "GET", "id": "dlp.projects.locations.jobTriggers.list", @@ -3019,23 +3621,23 @@ "type": "string" }, "orderBy": { - "description": "Comma separated list of triggeredJob fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the JobTrigger was created. - `update_time`: corresponds to the time the JobTrigger was last updated. - `last_run_time`: corresponds to the last time the JobTrigger ran. - `name`: corresponds to the JobTrigger's name. - `display_name`: corresponds to the JobTrigger's display name. - `status`: corresponds to JobTrigger's status.", + "description": "Comma separated list of triggeredJob fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to the time the JobTrigger was created. - `update_time`: corresponds to the time the JobTrigger was last updated. - `last_run_time`: corresponds to the last time the JobTrigger ran. - `name`: corresponds to the JobTrigger's name. - `display_name`: corresponds to the JobTrigger's display name. - `status`: corresponds to JobTrigger's status.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by a server.", + "description": "Size of the page. This value can be limited by a server.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Page token to continue retrieval. Comes from previous call to ListJobTriggers. `order_by` field must not change for subsequent calls.", + "description": "Page token to continue retrieval. Comes from the previous call to ListJobTriggers. `order_by` field must not change for subsequent calls.", "location": "query", "type": "string" }, "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -3066,7 +3668,7 @@ ] }, "patch": { - "description": "Updates a job trigger. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.", + "description": "Updates a job trigger. See https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobTriggers/{jobTriggersId}", "httpMethod": "PATCH", "id": "dlp.projects.locations.jobTriggers.patch", @@ -3095,10 +3697,85 @@ } } }, + "projectDataProfiles": { + "methods": { + "get": { + "description": "Gets a project data profile.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/projectDataProfiles/{projectDataProfilesId}", + "httpMethod": "GET", + "id": "dlp.projects.locations.projectDataProfiles.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name, for example `organizations/12345/locations/us/projectDataProfiles/53234423`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/projectDataProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GooglePrivacyDlpV2ProjectDataProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists data profiles for an organization.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/projectDataProfiles", + "httpMethod": "GET", + "id": "dlp.projects.locations.projectDataProfiles.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values: - `sensitivity_level` - HIGH|MODERATE|LOW - `data_risk_level` - HIGH|MODERATE|LOW - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` or `!=`. Examples: * project_id = 12345 AND status_code = 1 * project_id = 12345 AND sensitivity_level = HIGH The length of this field should be no more than 500 characters.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id` * `sensitivity_level desc` Supported fields are: - `project_id`: GCP project ID - `sensitivity_level`: How sensitive the data in a project is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Size of the page. This value can be limited by the server. If zero, server returns a page of max size 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token to continue retrieval.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. organizations/{org_id}/locations/{loc_id}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/projectDataProfiles", + "response": { + "$ref": "GooglePrivacyDlpV2ListProjectDataProfilesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "storedInfoTypes": { "methods": { "create": { - "description": "Creates a pre-built stored infoType to be used for inspection. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Creates a pre-built stored infoType to be used for inspection. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/storedInfoTypes", "httpMethod": "POST", "id": "dlp.projects.locations.storedInfoTypes.create", @@ -3107,7 +3784,7 @@ ], "parameters": { "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -3126,7 +3803,7 @@ ] }, "delete": { - "description": "Deletes a stored infoType. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Deletes a stored infoType. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/storedInfoTypes/{storedInfoTypesId}", "httpMethod": "DELETE", "id": "dlp.projects.locations.storedInfoTypes.delete", @@ -3151,7 +3828,7 @@ ] }, "get": { - "description": "Gets a stored infoType. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Gets a stored infoType. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/storedInfoTypes/{storedInfoTypesId}", "httpMethod": "GET", "id": "dlp.projects.locations.storedInfoTypes.get", @@ -3176,7 +3853,7 @@ ] }, "list": { - "description": "Lists stored infoTypes. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Lists stored infoTypes. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/storedInfoTypes", "httpMethod": "GET", "id": "dlp.projects.locations.storedInfoTypes.list", @@ -3190,23 +3867,23 @@ "type": "string" }, "orderBy": { - "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc, display_name, create_time desc` Supported fields are: - `create_time`: corresponds to the time the most recent version of the resource was created. - `state`: corresponds to the state of the resource. - `name`: corresponds to resource name. - `display_name`: corresponds to info type's display name.", + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc, display_name, create_time desc` Supported fields are: - `create_time`: corresponds to the time the most recent version of the resource was created. - `state`: corresponds to the state of the resource. - `name`: corresponds to resource name. - `display_name`: corresponds to info type's display name.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", + "description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Page token to continue retrieval. Comes from previous call to `ListStoredInfoTypes`.", + "description": "Page token to continue retrieval. Comes from the previous call to `ListStoredInfoTypes`.", "location": "query", "type": "string" }, "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -3222,7 +3899,7 @@ ] }, "patch": { - "description": "Updates the stored infoType by creating a new version. The existing version will continue to be used until the new version is ready. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Updates the stored infoType by creating a new version. The existing version will continue to be used until the new version is ready. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/storedInfoTypes/{storedInfoTypesId}", "httpMethod": "PATCH", "id": "dlp.projects.locations.storedInfoTypes.patch", @@ -3250,13 +3927,88 @@ ] } } + }, + "tableDataProfiles": { + "methods": { + "get": { + "description": "Gets a table data profile.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/tableDataProfiles/{tableDataProfilesId}", + "httpMethod": "GET", + "id": "dlp.projects.locations.tableDataProfiles.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name, for example `organizations/12345/locations/us/tableDataProfiles/53234423`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tableDataProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GooglePrivacyDlpV2TableDataProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists data profiles for an organization.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/tableDataProfiles", + "httpMethod": "GET", + "id": "dlp.projects.locations.tableDataProfiles.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields/values: - `project_id` - The GCP project ID. - `dataset_id` - The BigQuery dataset ID. - `table_id` - The ID of the BigQuery table. - `sensitivity_level` - HIGH|MODERATE|LOW - `data_risk_level` - HIGH|MODERATE|LOW - `resource_visibility`: PUBLIC|RESTRICTED - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` or `!=`. Examples: * project_id = 12345 AND status_code = 1 * project_id = 12345 AND sensitivity_level = HIGH * project_id = 12345 AND resource_visibility = PUBLIC The length of this field should be no more than 500 characters.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id asc` * `table_id` * `sensitivity_level desc` Supported fields are: - `project_id`: The GCP project ID. - `dataset_id`: The ID of a BigQuery dataset. - `table_id`: The ID of a BigQuery table. - `sensitivity_level`: How sensitive the data in a table is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds. - `last_modified`: The last time the resource was modified. - `resource_visibility`: Visibility restriction for this resource. - `row_count`: Number of rows in this resource.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Size of the page. This value can be limited by the server. If zero, server returns a page of max size 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token to continue retrieval.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Resource name of the organization or project, for example `organizations/433245324/locations/europe` or `projects/project-id/locations/asia`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/tableDataProfiles", + "response": { + "$ref": "GooglePrivacyDlpV2ListTableDataProfilesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } }, "storedInfoTypes": { "methods": { "create": { - "description": "Creates a pre-built stored infoType to be used for inspection. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Creates a pre-built stored infoType to be used for inspection. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/projects/{projectsId}/storedInfoTypes", "httpMethod": "POST", "id": "dlp.projects.storedInfoTypes.create", @@ -3265,7 +4017,7 @@ ], "parameters": { "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -3284,7 +4036,7 @@ ] }, "delete": { - "description": "Deletes a stored infoType. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Deletes a stored infoType. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/projects/{projectsId}/storedInfoTypes/{storedInfoTypesId}", "httpMethod": "DELETE", "id": "dlp.projects.storedInfoTypes.delete", @@ -3309,7 +4061,7 @@ ] }, "get": { - "description": "Gets a stored infoType. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Gets a stored infoType. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/projects/{projectsId}/storedInfoTypes/{storedInfoTypesId}", "httpMethod": "GET", "id": "dlp.projects.storedInfoTypes.get", @@ -3334,7 +4086,7 @@ ] }, "list": { - "description": "Lists stored infoTypes. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Lists stored infoTypes. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/projects/{projectsId}/storedInfoTypes", "httpMethod": "GET", "id": "dlp.projects.storedInfoTypes.list", @@ -3348,23 +4100,23 @@ "type": "string" }, "orderBy": { - "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc, display_name, create_time desc` Supported fields are: - `create_time`: corresponds to the time the most recent version of the resource was created. - `state`: corresponds to the state of the resource. - `name`: corresponds to resource name. - `display_name`: corresponds to info type's display name.", + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Example: `name asc, display_name, create_time desc` Supported fields are: - `create_time`: corresponds to the time the most recent version of the resource was created. - `state`: corresponds to the state of the resource. - `name`: corresponds to resource name. - `display_name`: corresponds to info type's display name.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", + "description": "Size of the page. This value can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Page token to continue retrieval. Comes from previous call to `ListStoredInfoTypes`.", + "description": "Page token to continue retrieval. Comes from the previous call to `ListStoredInfoTypes`.", "location": "query", "type": "string" }, "parent": { - "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", + "description": "Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -3380,7 +4132,7 @@ ] }, "patch": { - "description": "Updates the stored infoType by creating a new version. The existing version will continue to be used until the new version is ready. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to learn more.", + "description": "Updates the stored infoType by creating a new version. The existing version will continue to be used until the new version is ready. See https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes to learn more.", "flatPath": "v2/projects/{projectsId}/storedInfoTypes/{storedInfoTypesId}", "httpMethod": "PATCH", "id": "dlp.projects.storedInfoTypes.patch", @@ -3412,11 +4164,11 @@ } } }, - "revision": "20230121", + "revision": "20240225", "rootUrl": "https://dlp.googleapis.com/", "schemas": { "GooglePrivacyDlpV2Action": { - "description": "A task to execute on the completion of a job. See https://cloud.google.com/dlp/docs/concepts-actions to learn more.", + "description": "A task to execute on the completion of a job. See https://cloud.google.com/sensitive-data-protection/docs/concepts-actions to learn more.", "id": "GooglePrivacyDlpV2Action", "properties": { "deidentify": { @@ -3450,6 +4202,17 @@ }, "type": "object" }, + "GooglePrivacyDlpV2ActionDetails": { + "description": "The results of an Action.", + "id": "GooglePrivacyDlpV2ActionDetails", + "properties": { + "deidentifyDetails": { + "$ref": "GooglePrivacyDlpV2DeidentifyDataSourceDetails", + "description": "Outcome of a de-identification action." + } + }, + "type": "object" + }, "GooglePrivacyDlpV2ActivateJobTriggerRequest": { "description": "Request message for ActivateJobTrigger.", "id": "GooglePrivacyDlpV2ActivateJobTriggerRequest", @@ -3462,6 +4225,12 @@ "properties": {}, "type": "object" }, + "GooglePrivacyDlpV2AllOtherBigQueryTables": { + "description": "Catch-all for all other tables not specified by other filters. Should always be last, except for single-table configurations, which will only have a TableReference target.", + "id": "GooglePrivacyDlpV2AllOtherBigQueryTables", + "properties": {}, + "type": "object" + }, "GooglePrivacyDlpV2AllText": { "description": "Apply to all text.", "id": "GooglePrivacyDlpV2AllText", @@ -3533,6 +4302,29 @@ }, "type": "object" }, + "GooglePrivacyDlpV2BigQueryDiscoveryTarget": { + "description": "Target used to match against for discovery with BigQuery tables", + "id": "GooglePrivacyDlpV2BigQueryDiscoveryTarget", + "properties": { + "cadence": { + "$ref": "GooglePrivacyDlpV2DiscoveryGenerationCadence", + "description": "How often and when to update profiles. New tables that match both the filter and conditions are scanned as quickly as possible depending on system capacity." + }, + "conditions": { + "$ref": "GooglePrivacyDlpV2DiscoveryBigQueryConditions", + "description": "In addition to matching the filter, these conditions must be true before a profile is generated." + }, + "disabled": { + "$ref": "GooglePrivacyDlpV2Disabled", + "description": "Tables that match this filter will not have profiles created." + }, + "filter": { + "$ref": "GooglePrivacyDlpV2DiscoveryBigQueryFilter", + "description": "Required. The tables the discovery cadence applies to. The first target with a matching filter will be the one to apply to a table." + } + }, + "type": "object" + }, "GooglePrivacyDlpV2BigQueryField": { "description": "Message defining a field of a BigQuery table.", "id": "GooglePrivacyDlpV2BigQueryField", @@ -3569,7 +4361,7 @@ "id": "GooglePrivacyDlpV2BigQueryOptions", "properties": { "excludedFields": { - "description": "References to fields excluded from scanning. This allows you to skip inspection of entire columns which you know have no findings.", + "description": "References to fields excluded from scanning. This allows you to skip inspection of entire columns which you know have no findings. When inspecting a table, we recommend that you inspect all columns. Otherwise, findings might be affected because hints from excluded columns will not be used.", "items": { "$ref": "GooglePrivacyDlpV2FieldId" }, @@ -3583,7 +4375,7 @@ "type": "array" }, "includedFields": { - "description": "Limit scanning only to these fields.", + "description": "Limit scanning only to these fields. When inspecting a table, we recommend that you inspect all columns. Otherwise, findings might be affected because hints from excluded columns will not be used.", "items": { "$ref": "GooglePrivacyDlpV2FieldId" }, @@ -3595,18 +4387,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/sensitive-data-protection/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." ], @@ -3619,6 +4412,39 @@ }, "type": "object" }, + "GooglePrivacyDlpV2BigQueryRegex": { + "description": "A pattern to match against one or more tables, datasets, or projects that contain BigQuery tables. At least one pattern must be specified. Regular expressions use RE2 [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found under the google/re2 repository on GitHub.", + "id": "GooglePrivacyDlpV2BigQueryRegex", + "properties": { + "datasetIdRegex": { + "description": "If unset, this property matches all datasets.", + "type": "string" + }, + "projectIdRegex": { + "description": "For organizations, if unset, will match all projects. Has no effect for data profile configurations created within a project.", + "type": "string" + }, + "tableIdRegex": { + "description": "If unset, this property matches all tables.", + "type": "string" + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2BigQueryRegexes": { + "description": "A collection of regular expressions to determine what tables to match against.", + "id": "GooglePrivacyDlpV2BigQueryRegexes", + "properties": { + "patterns": { + "description": "A single BigQuery regular expression pattern to match against one or more tables, datasets, or projects that contain BigQuery tables.", + "items": { + "$ref": "GooglePrivacyDlpV2BigQueryRegex" + }, + "type": "array" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2BigQueryTable": { "description": "Message defining the location of a BigQuery table. A table is uniquely identified by its project_id, dataset_id, and table_name. Within a query a table is often referenced with a string in the format of: `:.` or `..`.", "id": "GooglePrivacyDlpV2BigQueryTable", @@ -3638,6 +4464,41 @@ }, "type": "object" }, + "GooglePrivacyDlpV2BigQueryTableCollection": { + "description": "Specifies a collection of BigQuery tables. Used for Discovery.", + "id": "GooglePrivacyDlpV2BigQueryTableCollection", + "properties": { + "includeRegexes": { + "$ref": "GooglePrivacyDlpV2BigQueryRegexes", + "description": "A collection of regular expressions to match a BigQuery table against." + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2BigQueryTableTypes": { + "description": "The types of BigQuery tables supported by Cloud DLP.", + "id": "GooglePrivacyDlpV2BigQueryTableTypes", + "properties": { + "types": { + "description": "A set of BigQuery table types.", + "items": { + "enum": [ + "BIG_QUERY_TABLE_TYPE_UNSPECIFIED", + "BIG_QUERY_TABLE_TYPE_TABLE", + "BIG_QUERY_TABLE_TYPE_EXTERNAL_BIG_LAKE" + ], + "enumDescriptions": [ + "Unused.", + "A normal BigQuery table.", + "A table that references data stored in Cloud Storage." + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2BoundingBox": { "description": "Bounding box encompassing detected text within an image.", "id": "GooglePrivacyDlpV2BoundingBox", @@ -3685,7 +4546,7 @@ "type": "object" }, "GooglePrivacyDlpV2BucketingConfig": { - "description": "Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -> LOW 31-65 -> MEDIUM 66-100 -> HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.", + "description": "Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -> LOW 31-65 -> MEDIUM 66-100 -> HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/sensitive-data-protection/docs/concepts-bucketing to learn more.", "id": "GooglePrivacyDlpV2BucketingConfig", "properties": { "buckets": { @@ -3885,12 +4746,12 @@ "id": "GooglePrivacyDlpV2CloudStorageOptions", "properties": { "bytesLimitPerFile": { - "description": "Max number of bytes to scan from a file. If a scanned file's size is bigger than this value then the rest of the bytes are omitted. Only one of bytes_limit_per_file and bytes_limit_per_file_percent can be specified. Cannot be set if de-identification is requested.", + "description": "Max number of bytes to scan from a file. If a scanned file's size is bigger than this value then the rest of the bytes are omitted. Only one of `bytes_limit_per_file` and `bytes_limit_per_file_percent` can be specified. This field can't be set if de-identification is requested. For certain file types, setting this field has no effect. For more information, see [Limits on bytes scanned per file](https://cloud.google.com/sensitive-data-protection/docs/supported-file-types#max-byte-size-per-file).", "format": "int64", "type": "string" }, "bytesLimitPerFilePercent": { - "description": "Max percentage of bytes to scan from a file. The rest are omitted. The number of bytes scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one of bytes_limit_per_file and bytes_limit_per_file_percent can be specified. Cannot be set if de-identification is requested.", + "description": "Max percentage of bytes to scan from a file. The rest are omitted. The number of bytes scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one of bytes_limit_per_file and bytes_limit_per_file_percent can be specified. This field can't be set if de-identification is requested. For certain file types, setting this field has no effect. For more information, see [Limits on bytes scanned per file](https://cloud.google.com/sensitive-data-protection/docs/supported-file-types#max-byte-size-per-file).", "format": "int32", "type": "integer" }, @@ -3916,16 +4777,16 @@ ], "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 FileType's 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: bmp, gif, jpg, jpeg, jpe, png. bytes_limit_per_file has no effect on image files. Image inspection is restricted to 'global', 'us', 'asia', and 'europe'.", - "Word files >30 MB will be scanned as binary files. Included file extensions: docx, dotx, docm, dotm", - "PDF files >30 MB will be scanned as binary files. Included file extensions: pdf", + "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, 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.", "Included file extensions: avro", "Included file extensions: csv", "Included file extensions: tsv", - "Powerpoint files >30 MB will be scanned as binary files. Included file extensions: pptx, pptm, potx, potm, pot", - "Excel files >30 MB will be scanned as binary files. Included file extensions: xlsx, xlsm, xltx, xltm" + "Microsoft PowerPoint files larger than 30 MB will be scanned as binary files. Included file extensions: pptx, pptm, potx, potm, pot. Setting `bytes_limit_per_file` or `bytes_limit_per_file_percent` has no effect on PowerPoint files.", + "Microsoft Excel files larger than 30 MB will be scanned as binary files. Included file extensions: xlsx, xlsm, xltx, xltm. Setting `bytes_limit_per_file` or `bytes_limit_per_file_percent` has no effect on Excel files." ], "type": "string" }, @@ -3937,13 +4798,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." ], @@ -3957,7 +4819,7 @@ "id": "GooglePrivacyDlpV2CloudStoragePath", "properties": { "path": { - "description": "A url representing a file or path (no wildcards) in Cloud Storage. Example: gs://[BUCKET_NAME]/dictionary.txt", + "description": "A URL representing a file or path (no wildcards) in Cloud Storage. Example: `gs://[BUCKET_NAME]/dictionary.txt`", "type": "string" } }, @@ -4010,6 +4872,176 @@ }, "type": "object" }, + "GooglePrivacyDlpV2ColumnDataProfile": { + "description": "The profile for a scanned column within a table.", + "id": "GooglePrivacyDlpV2ColumnDataProfile", + "properties": { + "column": { + "description": "The name of the column.", + "type": "string" + }, + "columnInfoType": { + "$ref": "GooglePrivacyDlpV2InfoTypeSummary", + "description": "If it's been determined this column can be identified as a single type, this will be set. Otherwise the column either has unidentifiable content or mixed types." + }, + "columnType": { + "description": "The data type of a given column.", + "enum": [ + "COLUMN_DATA_TYPE_UNSPECIFIED", + "TYPE_INT64", + "TYPE_BOOL", + "TYPE_FLOAT64", + "TYPE_STRING", + "TYPE_BYTES", + "TYPE_TIMESTAMP", + "TYPE_DATE", + "TYPE_TIME", + "TYPE_DATETIME", + "TYPE_GEOGRAPHY", + "TYPE_NUMERIC", + "TYPE_RECORD", + "TYPE_BIGNUMERIC", + "TYPE_JSON" + ], + "enumDescriptions": [ + "Invalid type.", + "Encoded as a string in decimal format.", + "Encoded as a boolean \"false\" or \"true\".", + "Encoded as a number, or string \"NaN\", \"Infinity\" or \"-Infinity\".", + "Encoded as a string value.", + "Encoded as a base64 string per RFC 4648, section 4.", + "Encoded as an RFC 3339 timestamp with mandatory \"Z\" time zone string: 1985-04-12T23:20:50.52Z", + "Encoded as RFC 3339 full-date format string: 1985-04-12", + "Encoded as RFC 3339 partial-time format string: 23:20:50.52", + "Encoded as RFC 3339 full-date \"T\" partial-time: 1985-04-12T23:20:50.52", + "Encoded as WKT", + "Encoded as a decimal string.", + "Container of ordered fields, each with a type and field name.", + "Decimal type.", + "Json type." + ], + "type": "string" + }, + "dataRiskLevel": { + "$ref": "GooglePrivacyDlpV2DataRiskLevel", + "description": "The data risk level for this column." + }, + "datasetId": { + "description": "The BigQuery dataset ID.", + "type": "string" + }, + "datasetLocation": { + "description": "The BigQuery location where the dataset's data is stored. See https://cloud.google.com/bigquery/docs/locations for supported locations.", + "type": "string" + }, + "datasetProjectId": { + "description": "The Google Cloud project ID that owns the profiled resource.", + "type": "string" + }, + "estimatedNullPercentage": { + "description": "Approximate percentage of entries being null in the column.", + "enum": [ + "NULL_PERCENTAGE_LEVEL_UNSPECIFIED", + "NULL_PERCENTAGE_VERY_LOW", + "NULL_PERCENTAGE_LOW", + "NULL_PERCENTAGE_MEDIUM", + "NULL_PERCENTAGE_HIGH" + ], + "enumDescriptions": [ + "Unused.", + "Very few null entries.", + "Some null entries.", + "A few null entries.", + "A lot of null entries." + ], + "type": "string" + }, + "estimatedUniquenessScore": { + "description": "Approximate uniqueness of the column.", + "enum": [ + "UNIQUENESS_SCORE_LEVEL_UNSPECIFIED", + "UNIQUENESS_SCORE_LOW", + "UNIQUENESS_SCORE_MEDIUM", + "UNIQUENESS_SCORE_HIGH" + ], + "enumDescriptions": [ + "Some columns do not have estimated uniqueness. Possible reasons include having too few values.", + "Low uniqueness, possibly a boolean, enum or similiarly typed column.", + "Medium uniqueness.", + "High uniqueness, possibly a column of free text or unique identifiers." + ], + "type": "string" + }, + "freeTextScore": { + "description": "The likelihood that this column contains free-form text. A value close to 1 may indicate the column is likely to contain free-form or natural language text. Range in 0-1.", + "format": "double", + "type": "number" + }, + "name": { + "description": "The name of the profile.", + "type": "string" + }, + "otherMatches": { + "description": "Other types found within this column. List will be unordered.", + "items": { + "$ref": "GooglePrivacyDlpV2OtherInfoTypeSummary" + }, + "type": "array" + }, + "policyState": { + "description": "Indicates if a policy tag has been applied to the column.", + "enum": [ + "COLUMN_POLICY_STATE_UNSPECIFIED", + "COLUMN_POLICY_TAGGED" + ], + "enumDescriptions": [ + "No policy tags.", + "Column has policy tag applied." + ], + "type": "string" + }, + "profileLastGenerated": { + "description": "The last time the profile was generated.", + "format": "google-datetime", + "type": "string" + }, + "profileStatus": { + "$ref": "GooglePrivacyDlpV2ProfileStatus", + "description": "Success or error status from the most recent profile generation attempt. May be empty if the profile is still being generated." + }, + "sensitivityScore": { + "$ref": "GooglePrivacyDlpV2SensitivityScore", + "description": "The sensitivity of this column." + }, + "state": { + "description": "State of a profile.", + "enum": [ + "STATE_UNSPECIFIED", + "RUNNING", + "DONE" + ], + "enumDescriptions": [ + "Unused.", + "The profile is currently running. Once a profile has finished it will transition to DONE.", + "The profile is no longer generating. If profile_status.status.code is 0, the profile succeeded, otherwise, it failed." + ], + "type": "string" + }, + "tableDataProfile": { + "description": "The resource name of the table data profile.", + "type": "string" + }, + "tableFullResource": { + "description": "The resource name of the resource this column is within.", + "type": "string" + }, + "tableId": { + "description": "The BigQuery table ID.", + "type": "string" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2Condition": { "description": "The field type of `value` and `field` do not need to match to be considered equal, but not all comparisons are possible. EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types, but all other comparisons are invalid with incompatible types. A `value` of type: - `string` can be compared against all other types - `boolean` can only be compared against other booleans - `integer` can be compared against doubles or a string if the string value can be parsed as an integer. - `double` can be compared against integers or a string if the string can be parsed as a double. - `Timestamp` can be compared against strings in RFC 3339 date string format. - `TimeOfDay` can be compared against timestamps and strings in the format of 'HH:mm:ss'. If we fail to compare do to type mismatch, a warning will be given and the condition will evaluate to false.", "id": "GooglePrivacyDlpV2Condition", @@ -4100,6 +5132,7 @@ "type": "object" }, "GooglePrivacyDlpV2ContentItem": { + "description": "Type of content to inspect.", "id": "GooglePrivacyDlpV2ContentItem", "properties": { "byteItem": { @@ -4108,7 +5141,7 @@ }, "table": { "$ref": "GooglePrivacyDlpV2Table", - "description": "Structured content for inspection. See https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to learn more." + "description": "Structured content for inspection. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-text#inspecting_a_table to learn more." }, "value": { "description": "String data to inspect or redact.", @@ -4172,6 +5205,21 @@ }, "type": "object" }, + "GooglePrivacyDlpV2CreateDiscoveryConfigRequest": { + "description": "Request message for CreateDiscoveryConfig.", + "id": "GooglePrivacyDlpV2CreateDiscoveryConfigRequest", + "properties": { + "configId": { + "description": "The config ID can contain uppercase and lowercase letters, numbers, and hyphens; that is, it must match the regular expression: `[a-zA-Z\\d-_]+`. The maximum length is 100 characters. Can be empty to allow the system to generate one.", + "type": "string" + }, + "discoveryConfig": { + "$ref": "GooglePrivacyDlpV2DiscoveryConfig", + "description": "Required. The DiscoveryConfig to create." + } + }, + "type": "object" + }, "GooglePrivacyDlpV2CreateDlpJobRequest": { "description": "Request message for CreateDlpJobRequest. Used to initiate long running jobs such as calculating risk metrics or inspecting Google Cloud Storage.", "id": "GooglePrivacyDlpV2CreateDlpJobRequest", @@ -4272,7 +5320,7 @@ "type": "object" }, "GooglePrivacyDlpV2CryptoHashConfig": { - "description": "Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more.", + "description": "Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/sensitive-data-protection/docs/pseudonymization to learn more.", "id": "GooglePrivacyDlpV2CryptoHashConfig", "properties": { "cryptoKey": { @@ -4302,7 +5350,7 @@ "type": "object" }, "GooglePrivacyDlpV2CryptoReplaceFfxFpeConfig": { - "description": "Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity.", + "description": "Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/sensitive-data-protection/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity.", "id": "GooglePrivacyDlpV2CryptoReplaceFfxFpeConfig", "properties": { "commonAlphabet": { @@ -4342,7 +5390,7 @@ }, "surrogateInfoType": { "$ref": "GooglePrivacyDlpV2InfoType", - "description": "The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc' This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: \u29ddMY_TOKEN_TYPE" + "description": "The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc' This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: \u29ddMY_TOKEN_TYPE" } }, "type": "object" @@ -4402,6 +5450,10 @@ "$ref": "GooglePrivacyDlpV2Regex", "description": "Regular expression based CustomInfoType." }, + "sensitivityScore": { + "$ref": "GooglePrivacyDlpV2SensitivityScore", + "description": "Sensitivity for this CustomInfoType. If this CustomInfoType extends an existing InfoType, the sensitivity here will take precedence over that of the original InfoType. If unset for a CustomInfoType, it will default to HIGH. This only applies to data profiling." + }, "storedType": { "$ref": "GooglePrivacyDlpV2StoredType", "description": "Load an existing `StoredInfoType` resource for use in `InspectDataSource`. Not currently supported in `InspectContent`." @@ -4428,23 +5480,52 @@ }, "type": "object" }, + "GooglePrivacyDlpV2DataProfileBigQueryRowSchema": { + "description": "The schema of data to be saved to the BigQuery table when the `DataProfileAction` is enabled.", + "id": "GooglePrivacyDlpV2DataProfileBigQueryRowSchema", + "properties": { + "columnProfile": { + "$ref": "GooglePrivacyDlpV2ColumnDataProfile", + "description": "Column data profile column" + }, + "tableProfile": { + "$ref": "GooglePrivacyDlpV2TableDataProfile", + "description": "Table data profile column" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2DataProfileConfigSnapshot": { "description": "Snapshot of the configurations used to generate the profile.", "id": "GooglePrivacyDlpV2DataProfileConfigSnapshot", "properties": { "dataProfileJob": { "$ref": "GooglePrivacyDlpV2DataProfileJobConfig", + "deprecated": true, + "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", "description": "A copy of the inspection config used to generate this profile. This is a copy of the inspect_template specified in `DataProfileJobConfig`." + }, + "inspectTemplateModifiedTime": { + "description": "Timestamp when the template was modified", + "format": "google-datetime", + "type": "string" + }, + "inspectTemplateName": { + "description": "Name of the inspection template used to generate this profile", + "type": "string" } }, "type": "object" }, "GooglePrivacyDlpV2DataProfileJobConfig": { - "description": "Configuration for setting up a job to scan resources for profile generation. Only one data profile configuration may exist per organization, folder, or project. The generated data profiles are retained according to the [data retention policy] (https://cloud.google.com/dlp/docs/data-profiles#retention).", + "description": "Configuration for setting up a job to scan resources for profile generation. Only one data profile configuration may exist per organization, folder, or project. The generated data profiles are retained according to the [data retention policy] (https://cloud.google.com/sensitive-data-protection/docs/data-profiles#retention).", "id": "GooglePrivacyDlpV2DataProfileJobConfig", "properties": { "dataProfileActions": { @@ -4455,7 +5536,7 @@ "type": "array" }, "inspectTemplates": { - "description": "Detection logic for profile generation. Not all template features are used by profiles. FindingLimits, include_quote and exclude_info_types have no impact on data profiling. Multiple templates may be provided if there is data in multiple regions. At most one template must be specified per-region (including \"global\"). Each region is scanned using the applicable template. If no region-specific template is specified, but a \"global\" template is specified, it will be copied to that region and used instead. If no global or region-specific template is provided for a region with data, that region's data will not be scanned. For more information, see https://cloud.google.com/dlp/docs/data-profiles#data_residency.", + "description": "Detection logic for profile generation. Not all template features are used by profiles. FindingLimits, include_quote and exclude_info_types have no impact on data profiling. Multiple templates may be provided if there is data in multiple regions. At most one template must be specified per-region (including \"global\"). Each region is scanned using the applicable template. If no region-specific template is specified, but a \"global\" template is specified, it will be copied to that region and used instead. If no global or region-specific template is provided for a region with data, that region's data will not be scanned. For more information, see https://cloud.google.com/sensitive-data-protection/docs/data-profiles#data-residency.", "items": { "type": "string" }, @@ -4552,6 +5633,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", @@ -4579,7 +5672,7 @@ "type": "object" }, "GooglePrivacyDlpV2DateShiftConfig": { - "description": "Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more.", + "description": "Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/sensitive-data-protection/docs/concepts-date-shifting to learn more.", "id": "GooglePrivacyDlpV2DateShiftConfig", "properties": { "context": { @@ -4672,16 +5765,16 @@ ], "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 FileType's 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: bmp, gif, jpg, jpeg, jpe, png. bytes_limit_per_file has no effect on image files. Image inspection is restricted to 'global', 'us', 'asia', and 'europe'.", - "Word files >30 MB will be scanned as binary files. Included file extensions: docx, dotx, docm, dotm", - "PDF files >30 MB will be scanned as binary files. Included file extensions: pdf", + "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, 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.", "Included file extensions: avro", "Included file extensions: csv", "Included file extensions: tsv", - "Powerpoint files >30 MB will be scanned as binary files. Included file extensions: pptx, pptm, potx, potm, pot", - "Excel files >30 MB will be scanned as binary files. Included file extensions: xlsx, xlsm, xltx, xltm" + "Microsoft PowerPoint files larger than 30 MB will be scanned as binary files. Included file extensions: pptx, pptm, potx, potm, pot. Setting `bytes_limit_per_file` or `bytes_limit_per_file_percent` has no effect on PowerPoint files.", + "Microsoft Excel files larger than 30 MB will be scanned as binary files. Included file extensions: xlsx, xlsm, xltx, xltm. Setting `bytes_limit_per_file` or `bytes_limit_per_file_percent` has no effect on Excel files." ], "type": "string" }, @@ -4767,8 +5860,45 @@ }, "type": "object" }, + "GooglePrivacyDlpV2DeidentifyDataSourceDetails": { + "description": "The results of a Deidentify action from an inspect job.", + "id": "GooglePrivacyDlpV2DeidentifyDataSourceDetails", + "properties": { + "deidentifyStats": { + "$ref": "GooglePrivacyDlpV2DeidentifyDataSourceStats", + "description": "Stats about the de-identification operation." + }, + "requestedOptions": { + "$ref": "GooglePrivacyDlpV2RequestedDeidentifyOptions", + "description": "De-identification config used for the request." + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2DeidentifyDataSourceStats": { + "description": "Summary of what was modified during a transformation.", + "id": "GooglePrivacyDlpV2DeidentifyDataSourceStats", + "properties": { + "transformationCount": { + "description": "Number of successfully applied transformations.", + "format": "int64", + "type": "string" + }, + "transformationErrorCount": { + "description": "Number of errors encountered while trying to apply transformations.", + "format": "int64", + "type": "string" + }, + "transformedBytes": { + "description": "Total size in bytes that were transformed in some way.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2DeidentifyTemplate": { - "description": "DeidentifyTemplates contains instructions on how to de-identify content. See https://cloud.google.com/dlp/docs/concepts-templates to learn more.", + "description": "DeidentifyTemplates contains instructions on how to de-identify content. See https://cloud.google.com/sensitive-data-protection/docs/concepts-templates to learn more.", "id": "GooglePrivacyDlpV2DeidentifyTemplate", "properties": { "createTime": { @@ -4907,7 +6037,7 @@ "type": "object" }, "GooglePrivacyDlpV2Dictionary": { - "description": "Custom information type based on a dictionary of words or phrases. This can be used to match sensitive information specific to the data, such as a list of employee IDs or job titles. Dictionary words are case-insensitive and all characters other than letters and digits in the unicode [Basic Multilingual Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane) will be replaced with whitespace when scanning for matches, so the dictionary phrase \"Sam Johnson\" will match all three phrases \"sam johnson\", \"Sam, Johnson\", and \"Sam (Johnson)\". Additionally, the characters surrounding any match must be of a different type than the adjacent characters within the word, so letters must be next to non-letters and digits next to non-digits. For example, the dictionary word \"jen\" will match the first three letters of the text \"jen123\" but will return no matches for \"jennifer\". Dictionary words containing a large number of characters that are not letters or digits may result in unexpected findings because such characters are treated as whitespace. The [limits](https://cloud.google.com/dlp/limits) page contains details about the size limits of dictionaries. For dictionaries that do not fit within these constraints, consider using `LargeCustomDictionaryConfig` in the `StoredInfoType` API.", + "description": "Custom information type based on a dictionary of words or phrases. This can be used to match sensitive information specific to the data, such as a list of employee IDs or job titles. Dictionary words are case-insensitive and all characters other than letters and digits in the unicode [Basic Multilingual Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane) will be replaced with whitespace when scanning for matches, so the dictionary phrase \"Sam Johnson\" will match all three phrases \"sam johnson\", \"Sam, Johnson\", and \"Sam (Johnson)\". Additionally, the characters surrounding any match must be of a different type than the adjacent characters within the word, so letters must be next to non-letters and digits next to non-digits. For example, the dictionary word \"jen\" will match the first three letters of the text \"jen123\" but will return no matches for \"jennifer\". Dictionary words containing a large number of characters that are not letters or digits may result in unexpected findings because such characters are treated as whitespace. The [limits](https://cloud.google.com/sensitive-data-protection/limits) page contains details about the size limits of dictionaries. For dictionaries that do not fit within these constraints, consider using `LargeCustomDictionaryConfig` in the `StoredInfoType` API.", "id": "GooglePrivacyDlpV2Dictionary", "properties": { "cloudStoragePath": { @@ -4921,10 +6051,273 @@ }, "type": "object" }, + "GooglePrivacyDlpV2Disabled": { + "description": "Do not profile the tables.", + "id": "GooglePrivacyDlpV2Disabled", + "properties": {}, + "type": "object" + }, + "GooglePrivacyDlpV2DiscoveryBigQueryConditions": { + "description": "Requirements that must be true before a table is scanned in discovery for the first time. There is an AND relationship between the top-level attributes. Additionally, minimum conditions with an OR relationship that must be met before Cloud DLP scans a table can be set (like a minimum row count or a minimum table age).", + "id": "GooglePrivacyDlpV2DiscoveryBigQueryConditions", + "properties": { + "createdAfter": { + "description": "BigQuery table must have been created after this date. Used to avoid backfilling.", + "format": "google-datetime", + "type": "string" + }, + "orConditions": { + "$ref": "GooglePrivacyDlpV2OrConditions", + "description": "At least one of the conditions must be true for a table to be scanned." + }, + "typeCollection": { + "description": "Restrict discovery to categories of table types.", + "enum": [ + "BIG_QUERY_COLLECTION_UNSPECIFIED", + "BIG_QUERY_COLLECTION_ALL_TYPES", + "BIG_QUERY_COLLECTION_ONLY_SUPPORTED_TYPES" + ], + "enumDescriptions": [ + "Unused.", + "Automatically generate profiles for all tables, even if the table type is not yet fully supported for analysis. Profiles for unsupported tables will be generated with errors to indicate their partial support. When full support is added, the tables will automatically be profiled during the next scheduled run.", + "Only those types fully supported will be profiled. Will expand automatically as Cloud DLP adds support for new table types. Unsupported table types will not have partial profiles generated." + ], + "type": "string" + }, + "types": { + "$ref": "GooglePrivacyDlpV2BigQueryTableTypes", + "description": "Restrict discovery to specific table types." + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2DiscoveryBigQueryFilter": { + "description": "Determines what tables will have profiles generated within an organization or project. Includes the ability to filter by regular expression patterns on project ID, dataset ID, and table ID.", + "id": "GooglePrivacyDlpV2DiscoveryBigQueryFilter", + "properties": { + "otherTables": { + "$ref": "GooglePrivacyDlpV2AllOtherBigQueryTables", + "description": "Catch-all. This should always be the last filter in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically." + }, + "tables": { + "$ref": "GooglePrivacyDlpV2BigQueryTableCollection", + "description": "A specific set of tables for this filter to apply to. A table collection must be specified in only one filter per config. If a table id or dataset is empty, Cloud DLP assumes all tables in that collection must be profiled. Must specify a project ID." + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2DiscoveryConfig": { + "description": "Configuration for discovery to scan resources for profile generation. Only one discovery configuration may exist per organization, folder, or project. The generated data profiles are retained according to the [data retention policy] (https://cloud.google.com/sensitive-data-protection/docs/data-profiles#retention).", + "id": "GooglePrivacyDlpV2DiscoveryConfig", + "properties": { + "actions": { + "description": "Actions to execute at the completion of scanning.", + "items": { + "$ref": "GooglePrivacyDlpV2DataProfileAction" + }, + "type": "array" + }, + "createTime": { + "description": "Output only. The creation timestamp of a DiscoveryConfig.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Display name (max 100 chars)", + "type": "string" + }, + "errors": { + "description": "Output only. A stream of errors encountered when the config was activated. Repeated errors may result in the config automatically being paused. Output only field. Will return the last 100 errors. Whenever the config is modified this list will be cleared.", + "items": { + "$ref": "GooglePrivacyDlpV2Error" + }, + "readOnly": true, + "type": "array" + }, + "inspectTemplates": { + "description": "Detection logic for profile generation. Not all template features are used by Discovery. FindingLimits, include_quote and exclude_info_types have no impact on Discovery. Multiple templates may be provided if there is data in multiple regions. At most one template must be specified per-region (including \"global\"). Each region is scanned using the applicable template. If no region-specific template is specified, but a \"global\" template is specified, it will be copied to that region and used instead. If no global or region-specific template is provided for a region with data, that region's data will not be scanned. For more information, see https://cloud.google.com/sensitive-data-protection/docs/data-profiles#data-residency.", + "items": { + "type": "string" + }, + "type": "array" + }, + "lastRunTime": { + "description": "Output only. The timestamp of the last time this config was executed.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Unique resource name for the DiscoveryConfig, assigned by the service when the DiscoveryConfig is created, for example `projects/dlp-test-project/locations/global/discoveryConfigs/53234423`.", + "type": "string" + }, + "orgConfig": { + "$ref": "GooglePrivacyDlpV2OrgConfig", + "description": "Only set when the parent is an org." + }, + "status": { + "description": "Required. A status for this configuration.", + "enum": [ + "STATUS_UNSPECIFIED", + "RUNNING", + "PAUSED" + ], + "enumDescriptions": [ + "Unused", + "The discovery config is currently active.", + "The discovery config is paused temporarily." + ], + "type": "string" + }, + "targets": { + "description": "Target to match against for determining what to scan and how frequently.", + "items": { + "$ref": "GooglePrivacyDlpV2DiscoveryTarget" + }, + "type": "array" + }, + "updateTime": { + "description": "Output only. The last update timestamp of a DiscoveryConfig.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2DiscoveryGenerationCadence": { + "description": "What must take place for a profile to be updated and how frequently it should occur. New tables are scanned as quickly as possible depending on system capacity.", + "id": "GooglePrivacyDlpV2DiscoveryGenerationCadence", + "properties": { + "schemaModifiedCadence": { + "$ref": "GooglePrivacyDlpV2DiscoverySchemaModifiedCadence", + "description": "Governs when to update data profiles when a schema is modified." + }, + "tableModifiedCadence": { + "$ref": "GooglePrivacyDlpV2DiscoveryTableModifiedCadence", + "description": "Governs when to update data profiles when a table is modified." + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2DiscoverySchemaModifiedCadence": { + "description": "The cadence at which to update data profiles when a schema is modified.", + "id": "GooglePrivacyDlpV2DiscoverySchemaModifiedCadence", + "properties": { + "frequency": { + "description": "How frequently profiles may be updated when schemas are modified. Defaults to monthly.", + "enum": [ + "UPDATE_FREQUENCY_UNSPECIFIED", + "UPDATE_FREQUENCY_NEVER", + "UPDATE_FREQUENCY_DAILY", + "UPDATE_FREQUENCY_MONTHLY" + ], + "enumDescriptions": [ + "Unspecified.", + "After the data profile is created, it will never be updated.", + "The data profile can be updated up to once every 24 hours.", + "The data profile can be updated up to once every 30 days. Default." + ], + "type": "string" + }, + "types": { + "description": "The type of events to consider when deciding if the table's schema has been modified and should have the profile updated. Defaults to NEW_COLUMNS.", + "items": { + "enum": [ + "SCHEMA_MODIFICATION_UNSPECIFIED", + "SCHEMA_NEW_COLUMNS", + "SCHEMA_REMOVED_COLUMNS" + ], + "enumDescriptions": [ + "Unused", + "Profiles should be regenerated when new columns are added to the table. Default.", + "Profiles should be regenerated when columns are removed from the table." + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2DiscoveryStartingLocation": { + "description": "The location to begin a discovery scan. Denotes an organization ID or folder ID within an organization.", + "id": "GooglePrivacyDlpV2DiscoveryStartingLocation", + "properties": { + "folderId": { + "description": "The ID of the Folder within an organization to scan.", + "format": "int64", + "type": "string" + }, + "organizationId": { + "description": "The ID of an organization to scan.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2DiscoveryTableModifiedCadence": { + "description": "The cadence at which to update data profiles when a table is modified.", + "id": "GooglePrivacyDlpV2DiscoveryTableModifiedCadence", + "properties": { + "frequency": { + "description": "How frequently data profiles can be updated when tables are modified. Defaults to never.", + "enum": [ + "UPDATE_FREQUENCY_UNSPECIFIED", + "UPDATE_FREQUENCY_NEVER", + "UPDATE_FREQUENCY_DAILY", + "UPDATE_FREQUENCY_MONTHLY" + ], + "enumDescriptions": [ + "Unspecified.", + "After the data profile is created, it will never be updated.", + "The data profile can be updated up to once every 24 hours.", + "The data profile can be updated up to once every 30 days. Default." + ], + "type": "string" + }, + "types": { + "description": "The type of events to consider when deciding if the table has been modified and should have the profile updated. Defaults to MODIFIED_TIMESTAMP.", + "items": { + "enum": [ + "TABLE_MODIFICATION_UNSPECIFIED", + "TABLE_MODIFIED_TIMESTAMP" + ], + "enumDescriptions": [ + "Unused.", + "A table will be considered modified when the last_modified_time from BigQuery has been updated." + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2DiscoveryTarget": { + "description": "Target used to match against for Discovery.", + "id": "GooglePrivacyDlpV2DiscoveryTarget", + "properties": { + "bigQueryTarget": { + "$ref": "GooglePrivacyDlpV2BigQueryDiscoveryTarget", + "description": "BigQuery target for Discovery. The first target to match a table will be the one applied." + } + }, + "type": "object" + }, "GooglePrivacyDlpV2DlpJob": { "description": "Combines all of the information about a DLP job.", "id": "GooglePrivacyDlpV2DlpJob", "properties": { + "actionDetails": { + "description": "Events that should occur after the job has completed.", + "items": { + "$ref": "GooglePrivacyDlpV2ActionDetails" + }, + "type": "array" + }, "createTime": { "description": "Time when the job was created.", "format": "google-datetime", @@ -4950,6 +6343,11 @@ "description": "If created by a job trigger, the resource name of the trigger that instantiated the job.", "type": "string" }, + "lastModified": { + "description": "Time when the job was last modified by the system.", + "format": "google-datetime", + "type": "string" + }, "name": { "description": "The server-assigned name.", "type": "string" @@ -5034,7 +6432,7 @@ "description": "Detailed error codes and messages." }, "timestamps": { - "description": "The times the error occurred.", + "description": "The times the error occurred. List includes the oldest timestamp and the last 9 timestamps.", "items": { "format": "google-datetime", "type": "string" @@ -5290,12 +6688,12 @@ "type": "array" }, "maxFindingsPerItem": { - "description": "Max number of findings that will be returned for each item scanned. When set within `InspectJobConfig`, the maximum returned is 2000 regardless if this is set higher. When set within `InspectContentRequest`, this field is ignored.", + "description": "Max number of findings that are returned for each item scanned. When set within an InspectContentRequest, this field is ignored. This value isn't a hard limit. If the number of findings for an item reaches this limit, the inspection of that item ends gradually, not abruptly. Therefore, the actual number of findings that Cloud DLP returns for the item can be multiple times higher than this value.", "format": "int32", "type": "integer" }, "maxFindingsPerRequest": { - "description": "Max number of findings that will be returned per request/job. When set within `InspectContentRequest`, the maximum returned is 2000 regardless if this is set higher.", + "description": "Max number of findings that are returned per request or job. If you set this field in an InspectContentRequest, the resulting maximum value is the value that you set or 3,000, whichever is lower. This value isn't a hard limit. If an inspection reaches this limit, the inspection ends gradually, not abruptly. Therefore, the actual number of findings that Cloud DLP returns can be multiple times higher than this value.", "format": "int32", "type": "integer" } @@ -5309,7 +6707,7 @@ "type": "object" }, "GooglePrivacyDlpV2FixedSizeBucketingConfig": { - "description": "Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}. For example, if lower_bound = 10 and upper_bound = 20, all values that are within this bucket will be replaced with \"10-20\". This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.", + "description": "Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}. For example, if lower_bound = 10 and upper_bound = 20, all values that are within this bucket will be replaced with \"10-20\". This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/sensitive-data-protection/docs/concepts-bucketing to learn more.", "id": "GooglePrivacyDlpV2FixedSizeBucketingConfig", "properties": { "bucketSize": { @@ -5342,7 +6740,7 @@ }, "proximity": { "$ref": "GooglePrivacyDlpV2Proximity", - "description": "Range of characters within which the entire hotword must reside. The total length of the window cannot exceed 1000 characters. The finding itself will be included in the window, so that hotwords can be used to match substrings of the finding itself. Suppose you want Cloud DLP to promote the likelihood of the phone number regex \"\\(\\d{3}\\) \\d{3}-\\d{4}\" if the area code is known to be the area code of a company's office. In this case, use the hotword regex \"\\(xxx\\)\", where \"xxx\" is the area code in question. For tabular data, if you want to modify the likelihood of an entire column of findngs, see [Hotword example: Set the match likelihood of a table column] (https://cloud.google.com/dlp/docs/creating-custom-infotypes-likelihood#match-column-values)." + "description": "Range of characters within which the entire hotword must reside. The total length of the window cannot exceed 1000 characters. The finding itself will be included in the window, so that hotwords can be used to match substrings of the finding itself. Suppose you want Cloud DLP to promote the likelihood of the phone number regex \"\\(\\d{3}\\) \\d{3}-\\d{4}\" if the area code is known to be the area code of a company's office. In this case, use the hotword regex \"\\(xxx\\)\", where \"xxx\" is the area code in question. For tabular data, if you want to modify the likelihood of an entire column of findngs, see [Hotword example: Set the match likelihood of a table column] (https://cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes-likelihood#match-column-values)." } }, "type": "object" @@ -5534,6 +6932,7 @@ "id": "GooglePrivacyDlpV2ImageTransformations", "properties": { "transforms": { + "description": "List of transforms to make.", "items": { "$ref": "GooglePrivacyDlpV2ImageTransformation" }, @@ -5547,9 +6946,13 @@ "id": "GooglePrivacyDlpV2InfoType", "properties": { "name": { - "description": "Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$_-]{1,64}`.", + "description": "Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$_-]{1,64}`.", "type": "string" }, + "sensitivityScore": { + "$ref": "GooglePrivacyDlpV2SensitivityScore", + "description": "Optional custom sensitivity for this InfoType. This only applies to data profiling." + }, "version": { "description": "Optional version name for this InfoType.", "type": "string" @@ -5590,6 +6993,7 @@ "CHILE", "CHINA", "COLOMBIA", + "CROATIA", "DENMARK", "FRANCE", "FINLAND", @@ -5604,6 +7008,7 @@ "KOREA", "MEXICO", "THE_NETHERLANDS", + "NEW_ZEALAND", "NORWAY", "PARAGUAY", "PERU", @@ -5613,6 +7018,7 @@ "SOUTH_AFRICA", "SPAIN", "SWEDEN", + "SWITZERLAND", "TAIWAN", "THAILAND", "TURKEY", @@ -5620,8 +7026,7 @@ "UNITED_STATES", "URUGUAY", "VENEZUELA", - "INTERNAL", - "NEW_ZEALAND" + "INTERNAL" ], "enumDescriptions": [ "Unused location", @@ -5634,6 +7039,7 @@ "The infoType is typically used in Chile.", "The infoType is typically used in China.", "The infoType is typically used in Colombia.", + "The infoType is typically used in Croatia.", "The infoType is typically used in Denmark.", "The infoType is typically used in France.", "The infoType is typically used in Finland.", @@ -5648,6 +7054,7 @@ "The infoType is typically used in Korea.", "The infoType is typically used in Mexico.", "The infoType is typically used in the Netherlands.", + "The infoType is typically used in New Zealand.", "The infoType is typically used in Norway.", "The infoType is typically used in Paraguay.", "The infoType is typically used in Peru.", @@ -5657,6 +7064,7 @@ "The infoType is typically used in South Africa.", "The infoType is typically used in Spain.", "The infoType is typically used in Sweden.", + "The infoType is typically used in Switzerland.", "The infoType is typically used in Taiwan.", "The infoType is typically used in Thailand.", "The infoType is typically used in Turkey.", @@ -5664,8 +7072,7 @@ "The infoType is typically used in the United States.", "The infoType is typically used in Uruguay.", "The infoType is typically used in Venezuela.", - "The infoType is typically used in Google internally.", - "The infoType is typically used in New Zealand." + "The infoType is typically used in Google internally." ], "type": "string" }, @@ -5750,6 +7157,37 @@ }, "type": "object" }, + "GooglePrivacyDlpV2InfoTypeLikelihood": { + "description": "Configuration for setting a minimum likelihood per infotype. Used to customize the minimum likelihood level for specific infotypes in the request. For example, use this if you want to lower the precision for PERSON_NAME without lowering the precision for the other infotypes in the request.", + "id": "GooglePrivacyDlpV2InfoTypeLikelihood", + "properties": { + "infoType": { + "$ref": "GooglePrivacyDlpV2InfoType", + "description": "Type of information the likelihood threshold applies to. Only one likelihood per info_type should be provided. If InfoTypeLikelihood does not have an info_type, the configuration fails." + }, + "minLikelihood": { + "description": "Only returns findings equal to or above this threshold. This field is required or else the configuration fails.", + "enum": [ + "LIKELIHOOD_UNSPECIFIED", + "VERY_UNLIKELY", + "UNLIKELY", + "POSSIBLE", + "LIKELY", + "VERY_LIKELY" + ], + "enumDescriptions": [ + "Default value; same as POSSIBLE.", + "Highest chance of a false positive.", + "High chance of a false positive.", + "Some matching signals. The default value.", + "Low chance of a false positive.", + "Confidence level is high. Lowest chance of a false positive." + ], + "type": "string" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2InfoTypeLimit": { "description": "Max findings configuration per infoType, per content item or long running DlpJob.", "id": "GooglePrivacyDlpV2InfoTypeLimit", @@ -5787,6 +7225,7 @@ "id": "GooglePrivacyDlpV2InfoTypeSummary", "properties": { "estimatedPrevalence": { + "deprecated": true, "description": "Not populated for predicted infotypes.", "format": "int32", "type": "integer" @@ -5852,7 +7291,7 @@ "type": "array" }, "customInfoTypes": { - "description": "CustomInfoTypes provided by the user. See https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.", + "description": "CustomInfoTypes provided by the user. See https://cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes to learn more.", "items": { "$ref": "GooglePrivacyDlpV2CustomInfoType" }, @@ -5867,7 +7306,7 @@ "type": "boolean" }, "infoTypes": { - "description": "Restricts what info_types to look for. The values must correspond to InfoType values returned by ListInfoTypes or listed at https://cloud.google.com/dlp/docs/infotypes-reference. When no InfoTypes or CustomInfoTypes are specified in a request, the system may automatically choose what detectors to run. By default this may be all types, but may change over time as detectors are updated. If you need precise control and predictability as to what detectors are run you should specify specific InfoTypes listed in the reference, otherwise a default list will be used, which may change over time.", + "description": "Restricts what info_types to look for. The values must correspond to InfoType values returned by ListInfoTypes or listed at https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference. When no InfoTypes or CustomInfoTypes are specified in a request, the system may automatically choose a default list of detectors to run, which may change over time. If you need precise control and predictability as to what detectors are run you should specify specific InfoTypes listed in the reference, otherwise a default list will be used, which may change over time.", "items": { "$ref": "GooglePrivacyDlpV2InfoType" }, @@ -5875,10 +7314,10 @@ }, "limits": { "$ref": "GooglePrivacyDlpV2FindingLimits", - "description": "Configuration to control the number of findings returned. This is not used for data profiling. When redacting sensitive data from images, finding limits don't apply. They can cause unexpected or inconsistent results, where only some data is redacted. Don't include finding limits in RedactImage requests. Otherwise, Cloud DLP returns an error." + "description": "Configuration to control the number of findings returned. This is not used for data profiling. When redacting sensitive data from images, finding limits don't apply. They can cause unexpected or inconsistent results, where only some data is redacted. Don't include finding limits in RedactImage requests. Otherwise, Cloud DLP returns an error. When set within an InspectJobConfig, the specified maximum values aren't hard limits. If an inspection job reaches these limits, the job ends gradually, not abruptly. Therefore, the actual number of findings that Cloud DLP returns can be multiple times higher than these maximum values." }, "minLikelihood": { - "description": "Only returns findings equal or above this threshold. The default is POSSIBLE. See https://cloud.google.com/dlp/docs/likelihood to learn more.", + "description": "Only returns findings equal to or above this threshold. The default is POSSIBLE. In general, the highest likelihood setting yields the fewest findings in results and the lowest chance of a false positive. For more information, see [Match likelihood](https://cloud.google.com/sensitive-data-protection/docs/likelihood).", "enum": [ "LIKELIHOOD_UNSPECIFIED", "VERY_UNLIKELY", @@ -5897,6 +7336,13 @@ ], "type": "string" }, + "minLikelihoodPerInfoType": { + "description": "Minimum likelihood per infotype. For each infotype, a user can specify a minimum likelihood. The system only returns a finding if its likelihood is above this threshold. If this field is not set, the system uses the InspectConfig min_likelihood.", + "items": { + "$ref": "GooglePrivacyDlpV2InfoTypeLikelihood" + }, + "type": "array" + }, "ruleSet": { "description": "Set of rules to apply to the findings for this InspectConfig. Exclusion rules, contained in the set are executed in the end, other rules are executed in the order they are specified for each info type.", "items": { @@ -6001,7 +7447,7 @@ "type": "object" }, "GooglePrivacyDlpV2InspectTemplate": { - "description": "The inspectTemplate contains a configuration (set of types of sensitive data to be detected) to be used anywhere you otherwise would normally specify InspectConfig. See https://cloud.google.com/dlp/docs/concepts-templates to learn more.", + "description": "The inspectTemplate contains a configuration (set of types of sensitive data to be detected) to be used anywhere you otherwise would normally specify InspectConfig. See https://cloud.google.com/sensitive-data-protection/docs/concepts-templates to learn more.", "id": "GooglePrivacyDlpV2InspectTemplate", "properties": { "createTime": { @@ -6079,7 +7525,7 @@ "type": "object" }, "GooglePrivacyDlpV2JobTrigger": { - "description": "Contains a configuration to make dlp api calls on a repeating basis. See https://cloud.google.com/dlp/docs/concepts-job-triggers to learn more.", + "description": "Contains a configuration to make dlp api calls on a repeating basis. See https://cloud.google.com/sensitive-data-protection/docs/concepts-job-triggers to learn more.", "id": "GooglePrivacyDlpV2JobTrigger", "properties": { "createTime": { @@ -6357,7 +7803,7 @@ "type": "object" }, "GooglePrivacyDlpV2KmsWrappedCryptoKey": { - "description": "Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a KMS-wrapped crypto key: dlp.kms.encrypt For more information, see [Creating a wrapped key] (https://cloud.google.com/dlp/docs/create-wrapped-key). Note: When you use Cloud KMS for cryptographic operations, [charges apply](https://cloud.google.com/kms/pricing).", + "description": "Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a KMS-wrapped crypto key: dlp.kms.encrypt For more information, see [Creating a wrapped key] (https://cloud.google.com/sensitive-data-protection/docs/create-wrapped-key). Note: When you use Cloud KMS for cryptographic operations, [charges apply](https://cloud.google.com/kms/pricing).", "id": "GooglePrivacyDlpV2KmsWrappedCryptoKey", "properties": { "cryptoKeyName": { @@ -6470,7 +7916,7 @@ "type": "object" }, "GooglePrivacyDlpV2LargeCustomDictionaryConfig": { - "description": "Configuration for a custom dictionary created from a data source of any size up to the maximum size defined in the [limits](https://cloud.google.com/dlp/limits) page. The artifacts of dictionary creation are stored in the specified Cloud Storage location. Consider using `CustomInfoType.Dictionary` for smaller dictionaries that satisfy the size requirements.", + "description": "Configuration for a custom dictionary created from a data source of any size up to the maximum size defined in the [limits](https://cloud.google.com/sensitive-data-protection/limits) page. The artifacts of dictionary creation are stored in the specified Cloud Storage location. Consider using `CustomInfoType.Dictionary` for smaller dictionaries that satisfy the size requirements.", "id": "GooglePrivacyDlpV2LargeCustomDictionaryConfig", "properties": { "bigQueryField": { @@ -6538,6 +7984,24 @@ }, "type": "object" }, + "GooglePrivacyDlpV2ListColumnDataProfilesResponse": { + "description": "List of profiles generated for a given organization or project.", + "id": "GooglePrivacyDlpV2ListColumnDataProfilesResponse", + "properties": { + "columnDataProfiles": { + "description": "List of data profiles.", + "items": { + "$ref": "GooglePrivacyDlpV2ColumnDataProfile" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The next page token.", + "type": "string" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2ListDeidentifyTemplatesResponse": { "description": "Response message for ListDeidentifyTemplates.", "id": "GooglePrivacyDlpV2ListDeidentifyTemplatesResponse", @@ -6550,7 +8014,25 @@ "type": "array" }, "nextPageToken": { - "description": "If the next page is available then the next page token to be used in following ListDeidentifyTemplates request.", + "description": "If the next page is available then the next page token to be used in the following ListDeidentifyTemplates request.", + "type": "string" + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2ListDiscoveryConfigsResponse": { + "description": "Response message for ListDiscoveryConfigs.", + "id": "GooglePrivacyDlpV2ListDiscoveryConfigsResponse", + "properties": { + "discoveryConfigs": { + "description": "List of configs, up to page_size in ListDiscoveryConfigsRequest.", + "items": { + "$ref": "GooglePrivacyDlpV2DiscoveryConfig" + }, + "type": "array" + }, + "nextPageToken": { + "description": "If the next page is available then this value is the next page token to be used in the following ListDiscoveryConfigs request.", "type": "string" } }, @@ -6600,7 +8082,7 @@ "type": "array" }, "nextPageToken": { - "description": "If the next page is available then the next page token to be used in following ListInspectTemplates request.", + "description": "If the next page is available then the next page token to be used in the following ListInspectTemplates request.", "type": "string" } }, @@ -6618,18 +8100,36 @@ "type": "array" }, "nextPageToken": { - "description": "If the next page is available then the next page token to be used in following ListJobTriggers request.", + "description": "If the next page is available then this value is the next page token to be used in the following ListJobTriggers request.", "type": "string" } }, "type": "object" }, + "GooglePrivacyDlpV2ListProjectDataProfilesResponse": { + "description": "List of profiles generated for a given organization or project.", + "id": "GooglePrivacyDlpV2ListProjectDataProfilesResponse", + "properties": { + "nextPageToken": { + "description": "The next page token.", + "type": "string" + }, + "projectDataProfiles": { + "description": "List of data profiles.", + "items": { + "$ref": "GooglePrivacyDlpV2ProjectDataProfile" + }, + "type": "array" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2ListStoredInfoTypesResponse": { "description": "Response message for ListStoredInfoTypes.", "id": "GooglePrivacyDlpV2ListStoredInfoTypesResponse", "properties": { "nextPageToken": { - "description": "If the next page is available then the next page token to be used in following ListStoredInfoTypes request.", + "description": "If the next page is available then the next page token to be used in the following ListStoredInfoTypes request.", "type": "string" }, "storedInfoTypes": { @@ -6642,6 +8142,24 @@ }, "type": "object" }, + "GooglePrivacyDlpV2ListTableDataProfilesResponse": { + "description": "List of profiles generated for a given organization or project.", + "id": "GooglePrivacyDlpV2ListTableDataProfilesResponse", + "properties": { + "nextPageToken": { + "description": "The next page token.", + "type": "string" + }, + "tableDataProfiles": { + "description": "List of data profiles.", + "items": { + "$ref": "GooglePrivacyDlpV2TableDataProfile" + }, + "type": "array" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2Location": { "description": "Specifies the location of the finding.", "id": "GooglePrivacyDlpV2Location", @@ -6730,6 +8248,38 @@ }, "type": "object" }, + "GooglePrivacyDlpV2OrConditions": { + "description": "There is an OR relationship between these attributes. They are used to determine if a table should be scanned or not in Discovery.", + "id": "GooglePrivacyDlpV2OrConditions", + "properties": { + "minAge": { + "description": "Minimum age a table must have before Cloud DLP can profile it. Value must be 1 hour or greater.", + "format": "google-duration", + "type": "string" + }, + "minRowCount": { + "description": "Minimum number of rows that should be present before Cloud DLP profiles a table", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2OrgConfig": { + "description": "Project and scan location information. Only set when the parent is an org.", + "id": "GooglePrivacyDlpV2OrgConfig", + "properties": { + "location": { + "$ref": "GooglePrivacyDlpV2DiscoveryStartingLocation", + "description": "The data to scan: folder, org, or project" + }, + "projectId": { + "description": "The project that will run the scan. The DLP service account that exists within this project must have access to all resources that are profiled, and the Cloud DLP API must be enabled.", + "type": "string" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2OtherInfoTypeSummary": { "description": "Infotype details for other infoTypes found within a column.", "id": "GooglePrivacyDlpV2OtherInfoTypeSummary", @@ -6739,6 +8289,10 @@ "format": "int32", "type": "integer" }, + "excludedFromAnalysis": { + "description": "Whether this infoType was excluded from sensitivity and risk analysis due to factors such as low prevalence (subject to change).", + "type": "boolean" + }, "infoType": { "$ref": "GooglePrivacyDlpV2InfoType", "description": "The other infoType." @@ -6899,11 +8453,12 @@ "type": "object" }, "GooglePrivacyDlpV2ProfileStatus": { + "description": "Success or errors for the profile generation.", "id": "GooglePrivacyDlpV2ProfileStatus", "properties": { "status": { "$ref": "GoogleRpcStatus", - "description": "Profiling status code and optional message" + "description": "Profiling status code and optional message. The `status.code` value is 0 (default value) for OK." }, "timestamp": { "description": "Time when the profile generation status was updated", @@ -6913,6 +8468,38 @@ }, "type": "object" }, + "GooglePrivacyDlpV2ProjectDataProfile": { + "description": "An aggregated profile for this project, based on the resources profiled within it.", + "id": "GooglePrivacyDlpV2ProjectDataProfile", + "properties": { + "dataRiskLevel": { + "$ref": "GooglePrivacyDlpV2DataRiskLevel", + "description": "The data risk level of this project." + }, + "name": { + "description": "The resource name of the profile.", + "type": "string" + }, + "profileLastGenerated": { + "description": "The last time the profile was generated.", + "format": "google-datetime", + "type": "string" + }, + "profileStatus": { + "$ref": "GooglePrivacyDlpV2ProfileStatus", + "description": "Success or error status of the last attempt to profile the project." + }, + "projectId": { + "description": "Project ID that was profiled.", + "type": "string" + }, + "sensitivityScore": { + "$ref": "GooglePrivacyDlpV2SensitivityScore", + "description": "The sensitivity score of this project." + } + }, + "type": "object" + }, "GooglePrivacyDlpV2Proximity": { "description": "Message for specifying a window around a finding to apply a detection rule.", "id": "GooglePrivacyDlpV2Proximity", @@ -6923,7 +8510,7 @@ "type": "integer" }, "windowBefore": { - "description": "Number of characters before the finding to consider. For tabular data, if you want to modify the likelihood of an entire column of findngs, set this to 1. For more information, see [Hotword example: Set the match likelihood of a table column] (https://cloud.google.com/dlp/docs/creating-custom-infotypes-likelihood#match-column-values).", + "description": "Number of characters before the finding to consider. For tabular data, if you want to modify the likelihood of an entire column of findngs, set this to 1. For more information, see [Hotword example: Set the match likelihood of a table column] (https://cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes-likelihood#match-column-values).", "format": "int32", "type": "integer" } @@ -7053,7 +8640,7 @@ "type": "object" }, "GooglePrivacyDlpV2PublishToPubSub": { - "description": "Publish a message into a given Pub/Sub topic when DlpJob has completed. The message contains a single field, `DlpJobName`, which is equal to the finished job's [`DlpJob.name`](https://cloud.google.com/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob). Compatible with: Inspect, Risk", + "description": "Publish a message into a given Pub/Sub topic when DlpJob has completed. The message contains a single field, `DlpJobName`, which is equal to the finished job's [`DlpJob.name`](https://cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/projects.dlpJobs#DlpJob). Compatible with: Inspect, Risk", "id": "GooglePrivacyDlpV2PublishToPubSub", "properties": { "topic": { @@ -7166,10 +8753,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.", @@ -7212,6 +8801,7 @@ "type": "object" }, "GooglePrivacyDlpV2RecordTransformation": { + "description": "The field in a record to transform.", "id": "GooglePrivacyDlpV2RecordTransformation", "properties": { "containerTimestamp": { @@ -7378,7 +8968,7 @@ "properties": { "wordList": { "$ref": "GooglePrivacyDlpV2WordList", - "description": "A list of words to select from for random replacement. The [limits](https://cloud.google.com/dlp/limits) page contains details about the size limits of dictionaries." + "description": "A list of words to select from for random replacement. The [limits](https://cloud.google.com/sensitive-data-protection/limits) page contains details about the size limits of dictionaries." } }, "type": "object" @@ -7400,6 +8990,25 @@ "properties": {}, "type": "object" }, + "GooglePrivacyDlpV2RequestedDeidentifyOptions": { + "description": "De-identification options.", + "id": "GooglePrivacyDlpV2RequestedDeidentifyOptions", + "properties": { + "snapshotDeidentifyTemplate": { + "$ref": "GooglePrivacyDlpV2DeidentifyTemplate", + "description": "Snapshot of the state of the `DeidentifyTemplate` from the Deidentify action at the time this job was run." + }, + "snapshotImageRedactTemplate": { + "$ref": "GooglePrivacyDlpV2DeidentifyTemplate", + "description": "Snapshot of the state of the image transformation `DeidentifyTemplate` from the `Deidentify` action at the time this job was run." + }, + "snapshotStructuredDeidentifyTemplate": { + "$ref": "GooglePrivacyDlpV2DeidentifyTemplate", + "description": "Snapshot of the state of the structured `DeidentifyTemplate` from the `Deidentify` action at the time this job was run." + } + }, + "type": "object" + }, "GooglePrivacyDlpV2RequestedOptions": { "description": "Snapshot of the inspection configuration.", "id": "GooglePrivacyDlpV2RequestedOptions", @@ -7455,7 +9064,7 @@ "type": "object" }, "GooglePrivacyDlpV2RiskAnalysisJobConfig": { - "description": "Configuration for a risk analysis job. See https://cloud.google.com/dlp/docs/concepts-risk-analysis to learn more.", + "description": "Configuration for a risk analysis job. See https://cloud.google.com/sensitive-data-protection/docs/concepts-risk-analysis to learn more.", "id": "GooglePrivacyDlpV2RiskAnalysisJobConfig", "properties": { "actions": { @@ -7528,11 +9137,11 @@ "type": "object" }, "GooglePrivacyDlpV2SensitivityScore": { - "description": "Score is a summary of all elements in the data profile. A higher number means more sensitive.", + "description": "Score is calculated from of all elements in the data profile. A higher level means the data is more sensitive.", "id": "GooglePrivacyDlpV2SensitivityScore", "properties": { "score": { - "description": "The score applied to the resource.", + "description": "The sensitivity score applied to the resource.", "enum": [ "SENSITIVITY_SCORE_UNSPECIFIED", "SENSITIVITY_LOW", @@ -7541,9 +9150,9 @@ ], "enumDescriptions": [ "Unused.", - "No sensitive information detected. Limited access.", - "Medium risk - PII, potentially sensitive data, or fields with free-text data that are at higher risk of having intermittent sensitive data. Consider limiting access.", - "High risk \u2013 SPII may be present. Exfiltration of data may lead to user data loss. Re-identification of users may be possible. Consider limiting usage and or removing SPII." + "No sensitive information detected. The resource isn't publicly accessible.", + "Medium risk. Contains personally identifiable information (PII), potentially sensitive data, or fields with free-text data that are at a higher risk of having intermittent sensitive data. Consider limiting access.", + "High risk. Sensitive personally identifiable information (SPII) can be present. Exfiltration of data can lead to user data loss. Re-identification of users might be possible. Consider limiting usage and or removing SPII." ], "type": "string" } @@ -7593,7 +9202,8 @@ "description": "Hybrid inspection options." }, "timespanConfig": { - "$ref": "GooglePrivacyDlpV2TimespanConfig" + "$ref": "GooglePrivacyDlpV2TimespanConfig", + "description": "Configuration of the timespan of the items to include in scanning." } }, "type": "object" @@ -7603,6 +9213,7 @@ "id": "GooglePrivacyDlpV2StorageMetadataLabel", "properties": { "key": { + "description": "Label name.", "type": "string" } }, @@ -7631,7 +9242,7 @@ "type": "object" }, "GooglePrivacyDlpV2StoredInfoTypeConfig": { - "description": "Configuration for stored infoTypes. All fields and subfield are provided by the user. For more information, see https://cloud.google.com/dlp/docs/creating-custom-infotypes.", + "description": "Configuration for stored infoTypes. All fields and subfield are provided by the user. For more information, see https://cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes.", "id": "GooglePrivacyDlpV2StoredInfoTypeConfig", "properties": { "description": { @@ -7760,13 +9371,13 @@ "type": "object" }, "GooglePrivacyDlpV2SurrogateType": { - "description": "Message for detecting output from deidentification transformations such as [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig). These types of transformations are those that perform pseudonymization, thereby producing a \"surrogate\" as output. This should be used in conjunction with a field on the transformation such as `surrogate_info_type`. This CustomInfoType does not support the use of `detection_rules`.", + "description": "Message for detecting output from deidentification transformations such as [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig). These types of transformations are those that perform pseudonymization, thereby producing a \"surrogate\" as output. This should be used in conjunction with a field on the transformation such as `surrogate_info_type`. This CustomInfoType does not support the use of `detection_rules`.", "id": "GooglePrivacyDlpV2SurrogateType", "properties": {}, "type": "object" }, "GooglePrivacyDlpV2Table": { - "description": "Structured content to inspect. Up to 50,000 `Value`s per request allowed. See https://cloud.google.com/dlp/docs/inspecting-structured-text#inspecting_a_table to learn more.", + "description": "Structured content to inspect. Up to 50,000 `Value`s per request allowed. See https://cloud.google.com/sensitive-data-protection/docs/inspecting-structured-text#inspecting_a_table to learn more.", "id": "GooglePrivacyDlpV2Table", "properties": { "headers": { @@ -7803,16 +9414,20 @@ "$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.", + "description": "If the resource is BigQuery, the dataset ID.", "type": "string" }, "datasetLocation": { - "description": "The BigQuery location where the dataset's data is stored. See https://cloud.google.com/bigquery/docs/locations for supported locations.", + "description": "If supported, the location where the dataset's data is stored. See https://cloud.google.com/bigquery/docs/locations for supported locations.", "type": "string" }, "datasetProjectId": { - "description": "The GCP project ID that owns the BigQuery dataset.", + "description": "The Google Cloud project ID that owns the resource.", "type": "string" }, "encryptionStatus": { @@ -7840,7 +9455,7 @@ "type": "string" }, "fullResource": { - "description": "The resource name of the table. https://cloud.google.com/apis/design/resource_names#full_resource_name", + "description": "The resource name of the resource profiled. https://cloud.google.com/apis/design/resource_names#full_resource_name", "type": "string" }, "lastModifiedTime": { @@ -7929,7 +9544,7 @@ "type": "string" }, "tableId": { - "description": "The BigQuery table ID.", + "description": "If the resource is BigQuery, the BigQuery table ID.", "type": "string" }, "tableSizeBytes": { @@ -8056,7 +9671,7 @@ }, "timestampField": { "$ref": "GooglePrivacyDlpV2FieldId", - "description": "Specification of the field containing the timestamp of scanned items. Used for data sources like Datastore and BigQuery. *For BigQuery* If this value is not specified and the table was modified between the given start and end times, the entire table will be scanned. If this value is specified, then rows are filtered based on the given start and end times. Rows with a `NULL` value in the provided BigQuery column are skipped. Valid data types of the provided BigQuery column are: `INTEGER`, `DATE`, `TIMESTAMP`, and `DATETIME`. If your BigQuery table is [partitioned at ingestion time](https://cloud.google.com/bigquery/docs/partitioned-tables#ingestion_time), you can use any of the following pseudo-columns as your timestamp field. When used with Cloud DLP, these pseudo-column names are case sensitive. - _PARTITIONTIME - _PARTITIONDATE - _PARTITION_LOAD_TIME *For Datastore* If this value is specified, then entities are filtered based on the given start and end times. If an entity does not contain the provided timestamp property or contains empty or invalid values, then it is included. Valid data types of the provided timestamp property are: `TIMESTAMP`. See the [known issue](https://cloud.google.com/dlp/docs/known-issues#bq-timespan) related to this operation." + "description": "Specification of the field containing the timestamp of scanned items. Used for data sources like Datastore and BigQuery. *For BigQuery* If this value is not specified and the table was modified between the given start and end times, the entire table will be scanned. If this value is specified, then rows are filtered based on the given start and end times. Rows with a `NULL` value in the provided BigQuery column are skipped. Valid data types of the provided BigQuery column are: `INTEGER`, `DATE`, `TIMESTAMP`, and `DATETIME`. If your BigQuery table is [partitioned at ingestion time](https://cloud.google.com/bigquery/docs/partitioned-tables#ingestion_time), you can use any of the following pseudo-columns as your timestamp field. When used with Cloud DLP, these pseudo-column names are case sensitive. - _PARTITIONTIME - _PARTITIONDATE - _PARTITION_LOAD_TIME *For Datastore* If this value is specified, then entities are filtered based on the given start and end times. If an entity does not contain the provided timestamp property or contains empty or invalid values, then it is included. Valid data types of the provided timestamp property are: `TIMESTAMP`. See the [known issue](https://cloud.google.com/sensitive-data-protection/docs/known-issues#bq-timespan) related to this operation." } }, "type": "object" @@ -8211,10 +9826,10 @@ "TRANSFORM_TABLE" ], "enumDescriptions": [ - "", - "", - "", - "" + "Unused.", + "Body of a file.", + "Metadata for a file.", + "A table." ], "type": "string" }, @@ -8249,6 +9864,7 @@ "type": "object" }, "GooglePrivacyDlpV2TransformationResultStatus": { + "description": "The outcome of a transformation.", "id": "GooglePrivacyDlpV2TransformationResultStatus", "properties": { "details": { @@ -8265,7 +9881,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.", @@ -8372,6 +9988,22 @@ }, "type": "object" }, + "GooglePrivacyDlpV2UpdateDiscoveryConfigRequest": { + "description": "Request message for UpdateDiscoveryConfig.", + "id": "GooglePrivacyDlpV2UpdateDiscoveryConfigRequest", + "properties": { + "discoveryConfig": { + "$ref": "GooglePrivacyDlpV2DiscoveryConfig", + "description": "Required. New DiscoveryConfig value." + }, + "updateMask": { + "description": "Mask to control which fields get updated.", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2UpdateInspectTemplateRequest": { "description": "Request message for UpdateInspectTemplate.", "id": "GooglePrivacyDlpV2UpdateInspectTemplateRequest", @@ -8611,7 +10243,7 @@ } }, "servicePath": "", - "title": "Cloud Data Loss Prevention (DLP) API", + "title": "Sensitive Data Protection (DLP)", "version": "v2", "version_module": true } \ No newline at end of file diff --git a/etc/api/dns/v1/dns-api.json b/etc/api/dns/v1/dns-api.json index 0f955bba3b..3f9af9ffa2 100644 --- a/etc/api/dns/v1/dns-api.json +++ b/etc/api/dns/v1/dns-api.json @@ -1824,7 +1824,7 @@ } } }, - "revision": "20230119", + "revision": "20240229", "rootUrl": "https://dns.googleapis.com/", "schemas": { "Change": { @@ -2156,14 +2156,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -2193,7 +2193,7 @@ "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/).", + "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": { "auditConfigs": { @@ -2938,6 +2938,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", @@ -3025,6 +3030,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" @@ -3043,7 +3052,7 @@ "id": "RRSetRoutingPolicyGeoPolicy", "properties": { "enableFencing": { - "description": "Without fencing, if health check fails for all configured items in the current geo bucket, we'll failover to the next nearest geo bucket. With fencing, if health check is enabled, as long as some targets in the current geo bucket are healthy, we'll return only the healthy targets. However, if they're all unhealthy, we won't failover to the next nearest bucket, we'll simply return all the items in the current bucket even though they're unhealthy.", + "description": "Without fencing, if health check fails for all configured items in the current geo bucket, we failover to the next nearest geo bucket. With fencing, if health checking is enabled, as long as some targets in the current geo bucket are healthy, we return only the healthy targets. However, if all targets are unhealthy, we don't failover to the next nearest bucket; instead, we return all the items in the current bucket even when all targets are unhealthy.", "type": "boolean" }, "items": { @@ -3083,7 +3092,7 @@ "type": "array" }, "signatureRrdatas": { - "description": "DNSSEC generated signatures for all the rrdata within this item. Note that if health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 ip per item. .", + "description": "DNSSEC generated signatures for all the rrdata within this item. If health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 IP address per item.", "items": { "type": "string" }, @@ -3093,10 +3102,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" }, @@ -3106,13 +3123,15 @@ "type": "object" }, "RRSetRoutingPolicyLoadBalancerTarget": { + "description": "The configuration for an individual load balancer to health check.", "id": "RRSetRoutingPolicyLoadBalancerTarget", "properties": { "ipAddress": { - "description": "The frontend IP address of the", + "description": "The frontend IP address of the load balancer to health check.", "type": "string" }, "ipProtocol": { + "description": "The protocol of the load balancer to health check.", "enum": [ "undefined", "tcp", @@ -3130,30 +3149,35 @@ "type": "string" }, "loadBalancerType": { + "description": "The type of load balancer specified by this target. This value must match the configuration of the load balancer located at the LoadBalancerTarget's IP address, port, and region. Use the following: - *regionalL4ilb*: for a regional internal passthrough Network Load Balancer. - *regionalL7ilb*: for a regional internal Application Load Balancer. - *globalL7ilb*: for a global internal Application Load Balancer. ", "enum": [ "none", - "regionalL4ilb" + "globalL7ilb", + "regionalL4ilb", + "regionalL7ilb" ], "enumDescriptions": [ + "", + "", "", "" ], "type": "string" }, "networkUrl": { - "description": "The fully qualified url of the network on which the ILB is", + "description": "The fully qualified URL of the network that the load balancer is attached to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network} .", "type": "string" }, "port": { - "description": "Load Balancer to health check. The configured port of the Load Balancer.", + "description": "The configured port of the load balancer.", "type": "string" }, "project": { - "description": "present. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network} The project ID in which the ILB exists.", + "description": "The project ID in which the load balancer is located.", "type": "string" }, "region": { - "description": "The region for regional ILBs.", + "description": "The region in which the load balancer is located.", "type": "string" } }, @@ -3172,7 +3196,8 @@ "type": "string" }, "primaryTargets": { - "$ref": "RRSetRoutingPolicyHealthCheckTargets" + "$ref": "RRSetRoutingPolicyHealthCheckTargets", + "description": "Endpoints that are health checked before making the routing decision. Unhealthy endpoints are omitted from the results. If all endpoints are unhealthy, we serve a response based on the backup_geo_targets." }, "trickleTraffic": { "description": "When serving state is PRIMARY, this field provides the option of sending a small percentage of the traffic to the backup targets.", @@ -3205,7 +3230,7 @@ "properties": { "healthCheckedTargets": { "$ref": "RRSetRoutingPolicyHealthCheckTargets", - "description": "endpoints that need to be health checked before making the routing decision. The unhealthy endpoints will be omitted from the result. If all endpoints within a buckete are unhealthy, we'll choose a different bucket (sampled w.r.t. its weight) for responding. Note that if DNSSEC is enabled for this zone, only one of rrdata or health_checked_targets can be set." + "description": "Endpoints that are health checked before making the routing decision. The unhealthy endpoints are omitted from the result. If all endpoints within a bucket are unhealthy, we choose a different bucket (sampled with respect to its weight) for responding. If DNSSEC is enabled for this zone, only one of rrdata or health_checked_targets can be set." }, "kind": { "default": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", @@ -3218,14 +3243,14 @@ "type": "array" }, "signatureRrdatas": { - "description": "DNSSEC generated signatures for all the rrdata within this item. Note that if health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 ip per item. .", + "description": "DNSSEC generated signatures for all the rrdata within this item. Note that if health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 IP address per item.", "items": { "type": "string" }, "type": "array" }, "weight": { - "description": "The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative.", + "description": "The weight corresponding to this WrrPolicyItem object. When multiple WrrPolicyItem objects are configured, the probability of returning an WrrPolicyItem object's data is proportional to its weight relative to the sum of weights configured for all items. This weight must be non-negative.", "format": "double", "type": "number" } @@ -3246,7 +3271,7 @@ }, "routingPolicy": { "$ref": "RRSetRoutingPolicy", - "description": "Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise." + "description": "Configures dynamic query responses based on either the geo location of the querying user or a weighted round robin based routing policy. A valid ResourceRecordSet contains only rrdata (for static resolution) or a routing_policy (for dynamic resolution)." }, "rrdatas": { "description": "As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples.", @@ -3291,7 +3316,7 @@ "type": "string" }, "nextPageToken": { - "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your pagination token. This lets you retrieve complete contents of even larger collections, one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of elements returned are an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.", + "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your pagination token. This lets you retrieve the complete contents of even larger collections, one page at a time. However, if the collection changes between paginated list requests, the set of elements returned is an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.", "type": "string" }, "rrsets": { diff --git a/etc/api/dns/v1beta2/dns-api.json b/etc/api/dns/v1beta2/dns-api.json index 962e54a5cc..044a145362 100644 --- a/etc/api/dns/v1beta2/dns-api.json +++ b/etc/api/dns/v1beta2/dns-api.json @@ -1821,7 +1821,7 @@ } } }, - "revision": "20230119", + "revision": "20240229", "rootUrl": "https://dns.googleapis.com/", "schemas": { "Change": { @@ -2153,14 +2153,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -2190,7 +2190,7 @@ "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/).", + "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": { "auditConfigs": { @@ -2935,6 +2935,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", @@ -3023,7 +3028,12 @@ "$ref": "RRSetRoutingPolicyGeoPolicy" }, "geoPolicy": { - "$ref": "RRSetRoutingPolicyGeoPolicy" + "$ref": "RRSetRoutingPolicyGeoPolicy", + "deprecated": true + }, + "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", @@ -3036,7 +3046,8 @@ "$ref": "RRSetRoutingPolicyWrrPolicy" }, "wrrPolicy": { - "$ref": "RRSetRoutingPolicyWrrPolicy" + "$ref": "RRSetRoutingPolicyWrrPolicy", + "deprecated": true } }, "type": "object" @@ -3046,7 +3057,7 @@ "id": "RRSetRoutingPolicyGeoPolicy", "properties": { "enableFencing": { - "description": "Without fencing, if health check fails for all configured items in the current geo bucket, we'll failover to the next nearest geo bucket. With fencing, if health check is enabled, as long as some targets in the current geo bucket are healthy, we'll return only the healthy targets. However, if they're all unhealthy, we won't failover to the next nearest bucket, we'll simply return all the items in the current bucket even though they're unhealthy.", + "description": "Without fencing, if health check fails for all configured items in the current geo bucket, we failover to the next nearest geo bucket. With fencing, if health checking is enabled, as long as some targets in the current geo bucket are healthy, we return only the healthy targets. However, if all targets are unhealthy, we don't failover to the next nearest bucket; instead, we return all the items in the current bucket even when all targets are unhealthy.", "type": "boolean" }, "items": { @@ -3086,7 +3097,7 @@ "type": "array" }, "signatureRrdatas": { - "description": "DNSSEC generated signatures for all the rrdata within this item. Note that if health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 ip per item. .", + "description": "DNSSEC generated signatures for all the rrdata within this item. If health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 IP address per item.", "items": { "type": "string" }, @@ -3096,10 +3107,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" }, @@ -3109,13 +3128,15 @@ "type": "object" }, "RRSetRoutingPolicyLoadBalancerTarget": { + "description": "The configuration for an individual load balancer to health check.", "id": "RRSetRoutingPolicyLoadBalancerTarget", "properties": { "ipAddress": { - "description": "The frontend IP address of the", + "description": "The frontend IP address of the load balancer to health check.", "type": "string" }, "ipProtocol": { + "description": "The protocol of the load balancer to health check.", "enum": [ "undefined", "tcp", @@ -3133,30 +3154,35 @@ "type": "string" }, "loadBalancerType": { + "description": "The type of load balancer specified by this target. This value must match the configuration of the load balancer located at the LoadBalancerTarget's IP address, port, and region. Use the following: - *regionalL4ilb*: for a regional internal passthrough Network Load Balancer. - *regionalL7ilb*: for a regional internal Application Load Balancer. - *globalL7ilb*: for a global internal Application Load Balancer. ", "enum": [ "none", - "regionalL4ilb" + "globalL7ilb", + "regionalL4ilb", + "regionalL7ilb" ], "enumDescriptions": [ + "", + "", "", "" ], "type": "string" }, "networkUrl": { - "description": "The fully qualified url of the network on which the ILB is", + "description": "The fully qualified URL of the network that the load balancer is attached to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network} .", "type": "string" }, "port": { - "description": "Load Balancer to health check. The configured port of the Load Balancer.", + "description": "The configured port of the load balancer.", "type": "string" }, "project": { - "description": "present. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network} The project ID in which the ILB exists.", + "description": "The project ID in which the load balancer is located.", "type": "string" }, "region": { - "description": "The region for regional ILBs.", + "description": "The region in which the load balancer is located.", "type": "string" } }, @@ -3175,7 +3201,8 @@ "type": "string" }, "primaryTargets": { - "$ref": "RRSetRoutingPolicyHealthCheckTargets" + "$ref": "RRSetRoutingPolicyHealthCheckTargets", + "description": "Endpoints that are health checked before making the routing decision. Unhealthy endpoints are omitted from the results. If all endpoints are unhealthy, we serve a response based on the backup_geo_targets." }, "trickleTraffic": { "description": "When serving state is PRIMARY, this field provides the option of sending a small percentage of the traffic to the backup targets.", @@ -3208,7 +3235,7 @@ "properties": { "healthCheckedTargets": { "$ref": "RRSetRoutingPolicyHealthCheckTargets", - "description": "endpoints that need to be health checked before making the routing decision. The unhealthy endpoints will be omitted from the result. If all endpoints within a buckete are unhealthy, we'll choose a different bucket (sampled w.r.t. its weight) for responding. Note that if DNSSEC is enabled for this zone, only one of rrdata or health_checked_targets can be set." + "description": "Endpoints that are health checked before making the routing decision. The unhealthy endpoints are omitted from the result. If all endpoints within a bucket are unhealthy, we choose a different bucket (sampled with respect to its weight) for responding. If DNSSEC is enabled for this zone, only one of rrdata or health_checked_targets can be set." }, "kind": { "default": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", @@ -3221,14 +3248,14 @@ "type": "array" }, "signatureRrdatas": { - "description": "DNSSEC generated signatures for all the rrdata within this item. Note that if health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 ip per item. .", + "description": "DNSSEC generated signatures for all the rrdata within this item. Note that if health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 IP address per item.", "items": { "type": "string" }, "type": "array" }, "weight": { - "description": "The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative.", + "description": "The weight corresponding to this WrrPolicyItem object. When multiple WrrPolicyItem objects are configured, the probability of returning an WrrPolicyItem object's data is proportional to its weight relative to the sum of weights configured for all items. This weight must be non-negative.", "format": "double", "type": "number" } @@ -3249,7 +3276,7 @@ }, "routingPolicy": { "$ref": "RRSetRoutingPolicy", - "description": "Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise." + "description": "Configures dynamic query responses based on either the geo location of the querying user or a weighted round robin based routing policy. A valid ResourceRecordSet contains only rrdata (for static resolution) or a routing_policy (for dynamic resolution)." }, "rrdatas": { "description": "As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples.", @@ -3289,7 +3316,7 @@ "type": "string" }, "nextPageToken": { - "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your pagination token. This lets you retrieve complete contents of even larger collections, one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of elements returned are an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.", + "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your pagination token. This lets you retrieve the complete contents of even larger collections, one page at a time. However, if the collection changes between paginated list requests, the set of elements returned is an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.", "type": "string" }, "rrsets": { diff --git a/etc/api/dns/v2/dns-api.json b/etc/api/dns/v2/dns-api.json index dcfa033b76..121009dc8c 100644 --- a/etc/api/dns/v2/dns-api.json +++ b/etc/api/dns/v2/dns-api.json @@ -1244,7 +1244,7 @@ }, "location": { "default": "global", - "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "description": "Specifies the location of the resource. This information is used for routing and is part of the resource name.", "location": "path", "required": true, "type": "string" @@ -1294,7 +1294,7 @@ }, "location": { "default": "global", - "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "description": "Specifies the location of the resource. This information is used for routing and is part of the resource name.", "location": "path", "required": true, "type": "string" @@ -1350,7 +1350,7 @@ }, "location": { "default": "global", - "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "description": "Specifies the location of the resource. This information is used for routing and is part of the resource name.", "location": "path", "required": true, "type": "string" @@ -1404,7 +1404,7 @@ "parameters": { "location": { "default": "global", - "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "description": "Specifies the location of the resource. This information is used for routing and is part of the resource name.", "location": "path", "required": true, "type": "string" @@ -2113,7 +2113,7 @@ } } }, - "revision": "20230119", + "revision": "20240229", "rootUrl": "https://dns.googleapis.com/", "schemas": { "Change": { @@ -2445,14 +2445,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -2482,7 +2482,7 @@ "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/).", + "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": { "auditConfigs": { @@ -3226,6 +3226,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", @@ -3313,6 +3318,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" @@ -3331,7 +3340,7 @@ "id": "RRSetRoutingPolicyGeoPolicy", "properties": { "enableFencing": { - "description": "Without fencing, if health check fails for all configured items in the current geo bucket, we'll failover to the next nearest geo bucket. With fencing, if health check is enabled, as long as some targets in the current geo bucket are healthy, we'll return only the healthy targets. However, if they're all unhealthy, we won't failover to the next nearest bucket, we'll simply return all the items in the current bucket even though they're unhealthy.", + "description": "Without fencing, if health check fails for all configured items in the current geo bucket, we failover to the next nearest geo bucket. With fencing, if health checking is enabled, as long as some targets in the current geo bucket are healthy, we return only the healthy targets. However, if all targets are unhealthy, we don't failover to the next nearest bucket; instead, we return all the items in the current bucket even when all targets are unhealthy.", "type": "boolean" }, "items": { @@ -3371,7 +3380,7 @@ "type": "array" }, "signatureRrdatas": { - "description": "DNSSEC generated signatures for all the rrdata within this item. Note that if health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 ip per item. .", + "description": "DNSSEC generated signatures for all the rrdata within this item. If health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 IP address per item.", "items": { "type": "string" }, @@ -3381,10 +3390,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" }, @@ -3394,13 +3411,15 @@ "type": "object" }, "RRSetRoutingPolicyLoadBalancerTarget": { + "description": "The configuration for an individual load balancer to health check.", "id": "RRSetRoutingPolicyLoadBalancerTarget", "properties": { "ipAddress": { - "description": "The frontend IP address of the", + "description": "The frontend IP address of the load balancer to health check.", "type": "string" }, "ipProtocol": { + "description": "The protocol of the load balancer to health check.", "enum": [ "UNDEFINED", "TCP", @@ -3418,30 +3437,35 @@ "type": "string" }, "loadBalancerType": { + "description": "The type of load balancer specified by this target. This value must match the configuration of the load balancer located at the LoadBalancerTarget's IP address, port, and region. Use the following: - *regionalL4ilb*: for a regional internal passthrough Network Load Balancer. - *regionalL7ilb*: for a regional internal Application Load Balancer. - *globalL7ilb*: for a global internal Application Load Balancer. ", "enum": [ "NONE", - "REGIONAL_L4ILB" + "GLOBAL_L7ILB", + "REGIONAL_L4ILB", + "REGIONAL_L7ILB" ], "enumDescriptions": [ + "", + "", "", "" ], "type": "string" }, "networkUrl": { - "description": "The fully qualified url of the network on which the ILB is", + "description": "The fully qualified URL of the network that the load balancer is attached to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network} .", "type": "string" }, "port": { - "description": "Load Balancer to health check. The configured port of the Load Balancer.", + "description": "The configured port of the load balancer.", "type": "string" }, "project": { - "description": "present. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network} The project ID in which the ILB exists.", + "description": "The project ID in which the load balancer is located.", "type": "string" }, "region": { - "description": "The region for regional ILBs.", + "description": "The region in which the load balancer is located.", "type": "string" } }, @@ -3460,7 +3484,8 @@ "type": "string" }, "primaryTargets": { - "$ref": "RRSetRoutingPolicyHealthCheckTargets" + "$ref": "RRSetRoutingPolicyHealthCheckTargets", + "description": "Endpoints that are health checked before making the routing decision. Unhealthy endpoints are omitted from the results. If all endpoints are unhealthy, we serve a response based on the backup_geo_targets." }, "trickleTraffic": { "description": "When serving state is PRIMARY, this field provides the option of sending a small percentage of the traffic to the backup targets.", @@ -3493,7 +3518,7 @@ "properties": { "healthCheckedTargets": { "$ref": "RRSetRoutingPolicyHealthCheckTargets", - "description": "endpoints that need to be health checked before making the routing decision. The unhealthy endpoints will be omitted from the result. If all endpoints within a buckete are unhealthy, we'll choose a different bucket (sampled w.r.t. its weight) for responding. Note that if DNSSEC is enabled for this zone, only one of rrdata or health_checked_targets can be set." + "description": "Endpoints that are health checked before making the routing decision. The unhealthy endpoints are omitted from the result. If all endpoints within a bucket are unhealthy, we choose a different bucket (sampled with respect to its weight) for responding. If DNSSEC is enabled for this zone, only one of rrdata or health_checked_targets can be set." }, "kind": { "default": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", @@ -3506,14 +3531,14 @@ "type": "array" }, "signatureRrdatas": { - "description": "DNSSEC generated signatures for all the rrdata within this item. Note that if health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 ip per item. .", + "description": "DNSSEC generated signatures for all the rrdata within this item. Note that if health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 IP address per item.", "items": { "type": "string" }, "type": "array" }, "weight": { - "description": "The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative.", + "description": "The weight corresponding to this WrrPolicyItem object. When multiple WrrPolicyItem objects are configured, the probability of returning an WrrPolicyItem object's data is proportional to its weight relative to the sum of weights configured for all items. This weight must be non-negative.", "format": "double", "type": "number" } @@ -3534,7 +3559,7 @@ }, "routingPolicy": { "$ref": "RRSetRoutingPolicy", - "description": "Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise." + "description": "Configures dynamic query responses based on either the geo location of the querying user or a weighted round robin based routing policy. A valid ResourceRecordSet contains only rrdata (for static resolution) or a routing_policy (for dynamic resolution)." }, "rrdatas": { "description": "As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples.", @@ -3574,7 +3599,7 @@ "type": "string" }, "nextPageToken": { - "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your pagination token. This lets you retrieve complete contents of even larger collections, one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of elements returned are an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.", + "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your pagination token. This lets you retrieve the complete contents of even larger collections, one page at a time. However, if the collection changes between paginated list requests, the set of elements returned is an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.", "type": "string" }, "rrsets": { diff --git a/etc/api/docs/v1/docs-api.json b/etc/api/docs/v1/docs-api.json index cd414c3569..9ef1cfb85b 100644 --- a/etc/api/docs/v1/docs-api.json +++ b/etc/api/docs/v1/docs-api.json @@ -216,7 +216,7 @@ } } }, - "revision": "20230119", + "revision": "20240229", "rootUrl": "https://docs.googleapis.com/", "schemas": { "AutoText": { @@ -911,6 +911,10 @@ "description": "The ID of the header used only for the first page. If not set then a unique header for the first page does not exist. The value of use_first_page_header_footer determines whether to use the default_header_id or this value for the header on the first page. If not set, there's no first page header. This property is read-only.", "type": "string" }, + "flipPageOrientation": { + "description": "Optional. Indicates whether to flip the dimensions of the page_size, which allows changing the page orientation between portrait and landscape.", + "type": "boolean" + }, "marginBottom": { "$ref": "Dimension", "description": "The bottom page margin. Updating the bottom page margin on the document style clears the bottom page margin on all section styles." @@ -991,6 +995,10 @@ "description": "Indicates if there was a suggested change to first_page_header_id.", "type": "boolean" }, + "flipPageOrientationSuggested": { + "description": "Optional. Indicates if there was a suggested change to flip_page_orientation.", + "type": "boolean" + }, "marginBottomSuggested": { "description": "Indicates if there was a suggested change to margin_bottom.", "type": "boolean" @@ -1558,7 +1566,7 @@ "description": "The size that the image should appear as in the document. This property is optional and the final size of the image in the document is determined by the following rules: * If neither width nor height is specified, then a default size of the image is calculated based on its resolution. * If one dimension is specified then the other dimension is calculated to preserve the aspect ratio of the image. * If both width and height are specified, the image is scaled to fit within the provided dimensions while maintaining its aspect ratio." }, "uri": { - "description": "The image URI. The image is fetched once at insertion time and a copy is stored for display inside the document. Images must be less than 50MB in size, cannot exceed 25 megapixels, and must be in one of PNG, JPEG, or GIF format. The provided URI can be at most 2 kB in length. The URI itself is saved with the image, and exposed via the ImageProperties.content_uri field.", + "description": "The image URI. The image is fetched once at insertion time and a copy is stored for display inside the document. Images must be less than 50MB in size, cannot exceed 25 megapixels, and must be in one of PNG, JPEG, or GIF format. The provided URI must be publicly accessible and at most 2 kB in length. The URI itself is saved with the image, and exposed via the ImageProperties.content_uri field.", "type": "string" } }, @@ -3192,6 +3200,10 @@ "description": "The ID of the header used only for the first page of the section. If use_first_page_header_footer is true, this value is used for the header on the first page of the section. If it's false, the header on the first page of the section uses the default_header_id. If unset, the value inherits from the previous SectionBreak's SectionStyle. If the value is unset in the first SectionBreak, it inherits from DocumentStyle's first_page_header_id. This property is read-only.", "type": "string" }, + "flipPageOrientation": { + "description": "Optional. Indicates whether to flip the dimensions of DocumentStyle's page_size for this section, which allows changing the page orientation between portrait and landscape. If unset, the value inherits from DocumentStyle's flip_page_orientation. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error.", + "type": "boolean" + }, "marginBottom": { "$ref": "Dimension", "description": "The bottom page margin of the section. If unset, the value defaults to margin_bottom from DocumentStyle. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error." diff --git a/etc/api/documentai/v1/documentai-api.json b/etc/api/documentai/v1/documentai-api.json index 4ff558aa8d..16c757730c 100644 --- a/etc/api/documentai/v1/documentai-api.json +++ b/etc/api/documentai/v1/documentai-api.json @@ -139,7 +139,7 @@ "locations": { "methods": { "fetchProcessorTypes": { - "description": "Fetches processor types. Note that we do not use ListProcessorTypes here because it is not paginated.", + "description": "Fetches processor types. Note that we don't use ListProcessorTypes here, because it isn't paginated.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:fetchProcessorTypes", "httpMethod": "GET", "id": "documentai.projects.locations.fetchProcessorTypes", @@ -148,7 +148,7 @@ ], "parameters": { "parent": { - "description": "Required. The project of processor type to list. The available processor types may depend on the allow-listing on projects. Format: `projects/{project}/locations/{location}`", + "description": "Required. The location of processor types to list. Format: `projects/{project}/locations/{location}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -284,7 +284,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "documentai.projects.locations.operations.list", @@ -363,7 +363,7 @@ ], "parameters": { "pageSize": { - "description": "The maximum number of processor types to return. If unspecified, at most 100 processor types will be returned. The maximum value is 500; values above 500 will be coerced to 500.", + "description": "The maximum number of processor types to return. If unspecified, at most `100` processor types will be returned. The maximum value is `500`. Values above `500` will be coerced to `500`.", "format": "int32", "location": "query", "type": "integer" @@ -374,7 +374,7 @@ "type": "string" }, "parent": { - "description": "Required. The location of processor type to list. The available processor types may depend on the allow-listing on projects. Format: `projects/{project}/locations/{location}`", + "description": "Required. The location of processor types to list. Format: `projects/{project}/locations/{location}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -422,7 +422,7 @@ ] }, "create": { - "description": "Creates a processor from the type processor that the user chose. The processor will be at \"ENABLED\" state by default after its creation.", + "description": "Creates a processor from the ProcessorType provided. The processor will be at `ENABLED` state by default after its creation.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors", "httpMethod": "POST", "id": "documentai.projects.locations.processors.create", @@ -565,7 +565,7 @@ ], "parameters": { "pageSize": { - "description": "The maximum number of processors to return. If unspecified, at most 50 processors will be returned. The maximum value is 100; values above 100 will be coerced to 100.", + "description": "The maximum number of processors to return. If unspecified, at most `50` processors will be returned. The maximum value is `100`. Values above `100` will be coerced to `100`.", "format": "int32", "location": "query", "type": "integer" @@ -827,7 +827,7 @@ ], "parameters": { "pageSize": { - "description": "The maximum number of processor versions to return. If unspecified, at most 10 processor versions will be returned. The maximum value is 20; values above 20 will be coerced to 20.", + "description": "The maximum number of processor versions to return. If unspecified, at most `10` processor versions will be returned. The maximum value is `20`. Values above `20` will be coerced to `20`.", "format": "int32", "location": "query", "type": "integer" @@ -882,7 +882,7 @@ ] }, "train": { - "description": "Trains a new processor version. Operation metadata is returned as cloud_documentai_core.TrainProcessorVersionMetadata.", + "description": "Trains a new processor version. Operation metadata is returned as TrainProcessorVersionMetadata.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions:train", "httpMethod": "POST", "id": "documentai.projects.locations.processors.processorVersions.train", @@ -976,7 +976,7 @@ ], "parameters": { "pageSize": { - "description": "The standard list page size. If unspecified, at most 5 evaluations will be returned. The maximum value is 100; values above 100 will be coerced to 100.", + "description": "The standard list page size. If unspecified, at most `5` evaluations are returned. The maximum value is `100`. Values above `100` are coerced to `100`.", "format": "int32", "location": "query", "type": "integer" @@ -1042,15 +1042,59 @@ } } }, - "revision": "20230117", + "revision": "20240223", "rootUrl": "https://documentai.googleapis.com/", "schemas": { + "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadata": { + "description": "Metadata of the auto-labeling documents operation.", + "id": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + }, + "individualAutoLabelStatuses": { + "description": "The list of individual auto-labeling statuses of the dataset documents.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadataIndividualAutoLabelStatus" + }, + "type": "array" + }, + "totalDocumentCount": { + "description": "Total number of the auto-labeling documents.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadataIndividualAutoLabelStatus": { + "description": "The status of individual documents in the auto-labeling process.", + "id": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadataIndividualAutoLabelStatus", + "properties": { + "documentId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", + "description": "The document id of the auto-labeled document. This will replace the gcs_uri." + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The status of the document auto-labeling." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsResponse": { + "description": "The response proto of AutoLabelDocuments method.", + "id": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadata": { "id": "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "errorDocumentCount": { "description": "Total number of documents that failed to be deleted in storage.", @@ -1098,9 +1142,10 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "destDatasetType": { + "deprecated": true, "description": "The destination dataset split type.", "enum": [ "DATASET_SPLIT_TYPE_UNSPECIFIED", @@ -1109,7 +1154,7 @@ "DATASET_SPLIT_UNASSIGNED" ], "enumDescriptions": [ - "Default value if the enum is not set. go/protodosdonts#do-include-an-unspecified-value-in-an-enum", + "Default value if the enum is not set.", "Identifies the train documents.", "Identifies the test documents.", "Identifies the unassigned documents." @@ -1125,7 +1170,7 @@ "DATASET_SPLIT_UNASSIGNED" ], "enumDescriptions": [ - "Default value if the enum is not set. go/protodosdonts#do-include-an-unspecified-value-in-an-enum", + "Default value if the enum is not set.", "Identifies the train documents.", "Identifies the test documents.", "Identifies the unassigned documents." @@ -1163,6 +1208,44 @@ "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadata": { + "id": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + }, + "individualBatchUpdateStatuses": { + "description": "The list of response details of each document.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadataIndividualBatchUpdateStatus" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadataIndividualBatchUpdateStatus": { + "description": "The status of each individual document in the batch update process.", + "id": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadataIndividualBatchUpdateStatus", + "properties": { + "documentId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", + "description": "The document id of the document." + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The status of updating the document in storage." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsResponse": { + "description": "Response of the batch update documents operation.", + "id": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata": { "description": "The common metadata for long running operations.", "id": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", @@ -1209,90 +1292,79 @@ "type": "object" }, "GoogleCloudDocumentaiUiv1beta3CreateLabelerPoolOperationMetadata": { - "description": "The long running operation metadata for CreateLabelerPool.", + "description": "The long-running operation metadata for the CreateLabelerPool method.", "id": "GoogleCloudDocumentaiUiv1beta3CreateLabelerPoolOperationMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." - } - }, - "type": "object" - }, - "GoogleCloudDocumentaiUiv1beta3DeleteDataLabelingJobOperationMetadata": { - "description": "The long running operation metadata for DeleteDataLabelingJob.", - "id": "GoogleCloudDocumentaiUiv1beta3DeleteDataLabelingJobOperationMetadata", - "properties": { - "commonMetadata": { - "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DeleteLabelerPoolOperationMetadata": { - "description": "The long running operation metadata for DeleteLabelerPool.", + "description": "The long-running operation metadata for DeleteLabelerPool.", "id": "GoogleCloudDocumentaiUiv1beta3DeleteLabelerPoolOperationMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DeleteProcessorMetadata": { - "description": "The long running operation metadata for delete processor method.", + "description": "The long-running operation metadata for the DeleteProcessor method.", "id": "GoogleCloudDocumentaiUiv1beta3DeleteProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DeleteProcessorVersionMetadata": { - "description": "The long running operation metadata for delete processor version method.", + "description": "The long-running operation metadata for the DeleteProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3DeleteProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionMetadata": { - "description": "The long running operation metadata for deploy processor version method.", + "description": "The long-running operation metadata for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionResponse": { - "description": "Response message for the deploy processor version method.", + "description": "Response message for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionResponse", "properties": {}, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DisableProcessorMetadata": { - "description": "The long running operation metadata for disable processor method.", + "description": "The long-running operation metadata for the DisableProcessor method.", "id": "GoogleCloudDocumentaiUiv1beta3DisableProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DisableProcessorResponse": { - "description": "Response message for the disable processor method. Intentionally empty proto for adding fields in future.", + "description": "Response message for the DisableProcessor method. Intentionally empty proto for adding fields in future.", "id": "GoogleCloudDocumentaiUiv1beta3DisableProcessorResponse", "properties": {}, "type": "object" @@ -1302,47 +1374,60 @@ "id": "GoogleCloudDocumentaiUiv1beta3DocumentId", "properties": { "gcsManagedDocId": { - "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId" + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId", + "description": "A document id within user-managed Cloud Storage." }, "revisionRef": { "$ref": "GoogleCloudDocumentaiUiv1beta3RevisionRef", "description": "Points to a specific revision of the document if set." }, - "revisionReference": { - "$ref": "GoogleCloudDocumentaiUiv1beta3RevisionReference", - "description": "Points to a specific revision of the document if set." + "unmanagedDocId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentIdUnmanagedDocumentId", + "description": "A document id within unmanaged dataset." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId": { - "description": "Identifies a document uniquely within the scope of a dataset in the Cloud Storage option.", + "description": "Identifies a document uniquely within the scope of a dataset in the user-managed Cloud Storage option.", "id": "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId", "properties": { "cwDocId": { + "deprecated": true, "description": "Id of the document (indexed) managed by Content Warehouse.", "type": "string" }, "gcsUri": { - "description": "Required. The Cloud Storage uri where the actual document is stored.", + "description": "Required. The Cloud Storage URI where the actual document is stored.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3DocumentIdUnmanagedDocumentId": { + "description": "Identifies a document uniquely within the scope of a dataset in unmanaged option.", + "id": "GoogleCloudDocumentaiUiv1beta3DocumentIdUnmanagedDocumentId", + "properties": { + "docId": { + "description": "Required. The id of the document.", "type": "string" } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3EnableProcessorMetadata": { - "description": "The long running operation metadata for enable processor method.", + "description": "The long-running operation metadata for the EnableProcessor method.", "id": "GoogleCloudDocumentaiUiv1beta3EnableProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3EnableProcessorResponse": { - "description": "Response message for the enable processor method. Intentionally empty proto for adding fields in future.", + "description": "Response message for the EnableProcessor method. Intentionally empty proto for adding fields in future.", "id": "GoogleCloudDocumentaiUiv1beta3EnableProcessorResponse", "properties": {}, "type": "object" @@ -1353,13 +1438,13 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3EvaluateProcessorVersionResponse": { - "description": "Metadata of the EvaluateProcessorVersion method.", + "description": "Response of the EvaluateProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3EvaluateProcessorVersionResponse", "properties": { "evaluation": { @@ -1375,7 +1460,7 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "individualExportStatuses": { "description": "The list of response details of each document.", @@ -1426,7 +1511,7 @@ "DATASET_SPLIT_UNASSIGNED" ], "enumDescriptions": [ - "Default value if the enum is not set. go/protodosdonts#do-include-an-unspecified-value-in-an-enum", + "Default value if the enum is not set.", "Identifies the train documents.", "Identifies the test documents.", "Identifies the unassigned documents." @@ -1475,7 +1560,7 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "importConfigValidationResults": { "description": "Validation statuses of the batch documents import config.", @@ -1500,7 +1585,7 @@ "type": "object" }, "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataImportConfigValidationResult": { - "description": "The validation status of each import config. Status is set to errors if there is no documents to import in the import_config, or OK if the operation will try to proceed at least one document.", + "description": "The validation status of each import config. Status is set to an error if there are no documents to import in the `import_config`, or `OK` if the operation will try to proceed with at least one document.", "id": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataImportConfigValidationResult", "properties": { "inputGcsSource": { @@ -1522,6 +1607,10 @@ "description": "The source Cloud Storage URI of the document.", "type": "string" }, + "outputDocumentId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", + "description": "The document id of imported document if it was successful, otherwise empty." + }, "outputGcsDestination": { "description": "The output_gcs_destination of the processed document if it was successful, otherwise empty.", "type": "string" @@ -1539,16 +1628,38 @@ "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionMetadata": { + "description": "The long-running operation metadata for the ImportProcessorVersion method.", + "id": "GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", + "description": "The basic metadata for the long-running operation." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionResponse": { + "description": "The response message for the ImportProcessorVersion method.", + "id": "GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionResponse", + "properties": { + "processorVersion": { + "description": "The destination processor version name.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadata": { - "description": "The metadata proto of ResyncDataset method.", + "description": "The metadata proto of `ResyncDataset` method.", "id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "datasetResyncStatuses": { - "description": "The list of dataset resync statuses. Not checked when `dataset_documents` is specified in ResyncRequest.", + "description": "The list of dataset resync statuses. Not checked when ResyncDatasetRequest.dataset_documents is specified.", "items": { "$ref": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataDatasetResyncStatus" }, @@ -1582,7 +1693,7 @@ }, "status": { "$ref": "GoogleRpcStatus", - "description": "The status of resyncing the dataset with regards to the detected inconsistency. Empty if `validate_only` is true in the request." + "description": "The status of resyncing the dataset with regards to the detected inconsistency. Empty if ResyncDatasetRequest.validate_only is `true`." } }, "type": "object" @@ -1613,7 +1724,7 @@ }, "status": { "$ref": "GoogleRpcStatus", - "description": "The status of resyncing the document with regards to the detected inconsistency. Empty if `validate_only` is true in the request." + "description": "The status of resyncing the document with regards to the detected inconsistency. Empty if ResyncDatasetRequest.validate_only is `true`." } }, "type": "object" @@ -1641,7 +1752,7 @@ "BASE_OCR_REVISION" ], "enumDescriptions": [ - "Unspecified case, fallback to read the first (OCR) revision.", + "Unspecified case, fall back to read the `LATEST_HUMAN_REVIEW`.", "The latest revision made by a human.", "The latest revision based on timestamp.", "The first (OCR) revision." @@ -1655,48 +1766,62 @@ }, "type": "object" }, - "GoogleCloudDocumentaiUiv1beta3RevisionReference": { - "description": "The revision reference specifies which revision on the document to read.", - "id": "GoogleCloudDocumentaiUiv1beta3RevisionReference", + "GoogleCloudDocumentaiUiv1beta3SampleDocumentsMetadata": { + "description": "Metadata of the sample documents operation.", + "id": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsMetadata", "properties": { - "latestProcessorVersion": { - "description": "Reads the revision generated by the processor version.", - "type": "string" + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponse": { + "description": "Response of the sample documents operation.", + "id": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponse", + "properties": { + "sampleTestStatus": { + "$ref": "GoogleRpcStatus", + "description": "The status of sampling documents in test split." }, - "revisionCase": { - "description": "Reads the revision by the predefined case.", - "enum": [ - "REVISION_CASE_UNSPECIFIED", - "LATEST_HUMAN_REVIEW", - "LATEST_TIMESTAMP" - ], - "enumDescriptions": [ - "Unspecified case, fallback to read the first (OCR) revision.", - "The latest revision made by a human.", - "The latest revision based on timestamp." - ], - "type": "string" + "sampleTrainingStatus": { + "$ref": "GoogleRpcStatus", + "description": "The status of sampling documents in training split." }, - "revisionId": { - "description": "Reads the revision given by the id.", + "selectedDocuments": { + "description": "The result of the sampling process.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponseSelectedDocument" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponseSelectedDocument": { + "id": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponseSelectedDocument", + "properties": { + "documentId": { + "description": "An internal identifier for document.", "type": "string" } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionMetadata": { - "description": "The long running operation metadata for set default processor version method.", + "description": "The long-running operation metadata for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionResponse": { - "description": "Response message for set default processor version method.", + "description": "Response message for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionResponse", "properties": {}, "type": "object" @@ -1707,7 +1832,7 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "testDatasetValidation": { "$ref": "GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadataDatasetValidation", @@ -1752,7 +1877,7 @@ "type": "object" }, "GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionResponse": { - "description": "The response for the TrainProcessorVersion method.", + "description": "The response for TrainProcessorVersion.", "id": "GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionResponse", "properties": { "processorVersion": { @@ -1763,18 +1888,18 @@ "type": "object" }, "GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionMetadata": { - "description": "The long running operation metadata for the undeploy processor version method.", + "description": "The long-running operation metadata for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionResponse": { - "description": "Response message for the undeploy processor version method.", + "description": "Response message for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionResponse", "properties": {}, "type": "object" @@ -1784,29 +1909,29 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3UpdateHumanReviewConfigMetadata": { - "description": "The long running operation metadata for updating the human review configuration.", + "description": "The long-running operation metadata for updating the human review configuration.", "id": "GoogleCloudDocumentaiUiv1beta3UpdateHumanReviewConfigMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3UpdateLabelerPoolOperationMetadata": { - "description": "The long running operation metadata for UpdateLabelerPool.", + "description": "The long-running operation metadata for UpdateLabelerPool.", "id": "GoogleCloudDocumentaiUiv1beta3UpdateLabelerPoolOperationMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" @@ -1846,7 +1971,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1BatchProcessMetadata": { - "description": "The long running operation metadata for batch process method.", + "description": "The long-running operation metadata for BatchProcessDocuments.", "id": "GoogleCloudDocumentaiV1BatchProcessMetadata", "properties": { "createTime": { @@ -1904,11 +2029,11 @@ "description": "The status of human review on the processed document." }, "inputGcsSource": { - "description": "The source of the document, same as the [input_gcs_source] field in the request when the batch process started. The batch process is started by take snapshot of that document, since a user can move or change that document during the process.", + "description": "The source of the document, same as the input_gcs_source field in the request when the batch process started.", "type": "string" }, "outputGcsDestination": { - "description": "The output_gcs_destination (in the request as `output_gcs_destination`) of the processed document if it was successful, otherwise empty.", + "description": "The Cloud Storage output destination (in the request as DocumentOutputConfig.GcsOutputConfig.gcs_uri) of the processed document if it was successful, otherwise empty.", "type": "string" }, "status": { @@ -1919,26 +2044,37 @@ "type": "object" }, "GoogleCloudDocumentaiV1BatchProcessRequest": { - "description": "Request message for batch process document method.", + "description": "Request message for BatchProcessDocuments.", "id": "GoogleCloudDocumentaiV1BatchProcessRequest", "properties": { "documentOutputConfig": { "$ref": "GoogleCloudDocumentaiV1DocumentOutputConfig", - "description": "The overall output config for batch process." + "description": "The output configuration for the BatchProcessDocuments method." }, "inputDocuments": { "$ref": "GoogleCloudDocumentaiV1BatchDocumentsInputConfig", - "description": "The input documents for batch process." + "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" }, "skipHumanReview": { - "description": "Whether Human Review feature should be skipped for this request. Default to false.", + "description": "Whether human review should be skipped for this request. Default to `false`.", "type": "boolean" } }, "type": "object" }, "GoogleCloudDocumentaiV1BatchProcessResponse": { - "description": "Response message for batch process document method.", + "description": "Response message for BatchProcessDocuments.", "id": "GoogleCloudDocumentaiV1BatchProcessResponse", "properties": {}, "type": "object" @@ -2010,69 +2146,69 @@ "type": "object" }, "GoogleCloudDocumentaiV1DeleteProcessorMetadata": { - "description": "The long running operation metadata for delete processor method.", + "description": "The long-running operation metadata for the DeleteProcessor method.", "id": "GoogleCloudDocumentaiV1DeleteProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1DeleteProcessorVersionMetadata": { - "description": "The long running operation metadata for delete processor version method.", + "description": "The long-running operation metadata for the DeleteProcessorVersion method.", "id": "GoogleCloudDocumentaiV1DeleteProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1DeployProcessorVersionMetadata": { - "description": "The long running operation metadata for deploy processor version method.", + "description": "The long-running operation metadata for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1DeployProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1DeployProcessorVersionRequest": { - "description": "Request message for the deploy processor version method.", + "description": "Request message for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1DeployProcessorVersionRequest", "properties": {}, "type": "object" }, "GoogleCloudDocumentaiV1DeployProcessorVersionResponse": { - "description": "Response message for the deploy processor version method.", + "description": "Response message for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1DeployProcessorVersionResponse", "properties": {}, "type": "object" }, "GoogleCloudDocumentaiV1DisableProcessorMetadata": { - "description": "The long running operation metadata for disable processor method.", + "description": "The long-running operation metadata for the DisableProcessor method.", "id": "GoogleCloudDocumentaiV1DisableProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1DisableProcessorRequest": { - "description": "Request message for the disable processor method.", + "description": "Request message for the DisableProcessor method.", "id": "GoogleCloudDocumentaiV1DisableProcessorRequest", "properties": {}, "type": "object" }, "GoogleCloudDocumentaiV1DisableProcessorResponse": { - "description": "Response message for the disable processor method. Intentionally empty proto for adding fields in future.", + "description": "Response message for the DisableProcessor method. Intentionally empty proto for adding fields in future.", "id": "GoogleCloudDocumentaiV1DisableProcessorResponse", "properties": {}, "type": "object" @@ -2105,7 +2241,7 @@ "description": "Any error that occurred while processing this document." }, "mimeType": { - "description": "An IANA published MIME type (also referred to as media type). For more information, see https://www.iana.org/assignments/media-types/media-types.xhtml.", + "description": "An IANA published [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml).", "type": "string" }, "pages": { @@ -2138,6 +2274,7 @@ "type": "array" }, "textStyles": { + "deprecated": true, "description": "Styles for the Document.text.", "items": { "$ref": "GoogleCloudDocumentaiV1DocumentStyle" @@ -2145,7 +2282,7 @@ "type": "array" }, "uri": { - "description": "Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. See [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris) for more info.", + "description": "Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. For more information, refer to [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris).", "type": "string" } }, @@ -2356,7 +2493,7 @@ }, "imageQualityScores": { "$ref": "GoogleCloudDocumentaiV1DocumentPageImageQualityScores", - "description": "Image Quality Scores." + "description": "Image quality scores." }, "layout": { "$ref": "GoogleCloudDocumentaiV1DocumentPageLayout", @@ -2383,6 +2520,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1DocumentProvenance", + "deprecated": true, "description": "The history of this page." }, "symbols": { @@ -2443,7 +2581,7 @@ "properties": { "boundingPoly": { "$ref": "GoogleCloudDocumentaiV1BoundingPoly", - "description": "Optional. Identifies the bounding polygon of a layout element on the page." + "description": "Optional. Identifies the bounding polygon of a layout element on the page. If `layout_type` is set, the bounding polygon must be exactly the same to the layout element it's referring to." }, "confidence": { "description": "Optional. Confidence of detected page element, if applicable. Range `[0, 1]`.", @@ -2451,6 +2589,7 @@ "type": "number" }, "layoutId": { + "deprecated": true, "description": "Optional. Deprecated. Use PageRef.bounding_poly instead.", "type": "string" }, @@ -2503,6 +2642,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -2533,7 +2673,7 @@ "type": "number" }, "languageCode": { - "description": "The BCP-47 language code, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", + "description": "The [BCP-47 language code](https://www.unicode.org/reports/tr35/#Unicode_locale_identifier), such as `en-US` or `sr-Latn`.", "type": "string" } }, @@ -2620,7 +2760,7 @@ "type": "integer" }, "mimeType": { - "description": "Encoding mime type for the image.", + "description": "Encoding [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml) for the image.", "type": "string" }, "width": { @@ -2632,7 +2772,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1DocumentPageImageQualityScores": { - "description": "Image Quality Scores for the page image", + "description": "Image quality scores for the page image.", "id": "GoogleCloudDocumentaiV1DocumentPageImageQualityScores", "properties": { "detectedDefects": { @@ -2643,7 +2783,7 @@ "type": "array" }, "qualityScore": { - "description": "The overall quality score. Range `[0, 1]` where 1 is perfect quality.", + "description": "The overall quality score. Range `[0, 1]` where `1` is perfect quality.", "format": "float", "type": "number" } @@ -2655,7 +2795,7 @@ "id": "GoogleCloudDocumentaiV1DocumentPageImageQualityScoresDetectedDefect", "properties": { "confidence": { - "description": "Confidence of detected defect. Range `[0, 1]` where 1 indicates strong confidence of that the defect exists.", + "description": "Confidence of detected defect. Range `[0, 1]` where `1` indicates strong confidence that the defect exists.", "format": "float", "type": "number" }, @@ -2721,6 +2861,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -2770,6 +2911,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -2824,6 +2966,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1DocumentProvenance", + "deprecated": true, "description": "The history of this table." } }, @@ -2892,7 +3035,12 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." + }, + "styleInfo": { + "$ref": "GoogleCloudDocumentaiV1DocumentPageTokenStyleInfo", + "description": "Text style attributes." } }, "type": "object" @@ -2920,6 +3068,77 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1DocumentPageTokenStyleInfo": { + "description": "Font and other text style attributes.", + "id": "GoogleCloudDocumentaiV1DocumentPageTokenStyleInfo", + "properties": { + "backgroundColor": { + "$ref": "GoogleTypeColor", + "description": "Color of the background." + }, + "bold": { + "description": "Whether the text is bold (equivalent to font_weight is at least `700`).", + "type": "boolean" + }, + "fontSize": { + "description": "Font size in points (`1` point is `\u00b9\u2044\u2087\u2082` inches).", + "format": "int32", + "type": "integer" + }, + "fontType": { + "description": "Name or style of the font.", + "type": "string" + }, + "fontWeight": { + "description": "TrueType weight on a scale `100` (thin) to `1000` (ultra-heavy). Normal is `400`, bold is `700`.", + "format": "int32", + "type": "integer" + }, + "handwritten": { + "description": "Whether the text is handwritten.", + "type": "boolean" + }, + "italic": { + "description": "Whether the text is italic.", + "type": "boolean" + }, + "letterSpacing": { + "description": "Letter spacing in points.", + "format": "double", + "type": "number" + }, + "pixelFontSize": { + "description": "Font size in pixels, equal to _unrounded font_size_ * _resolution_ \u00f7 `72.0`.", + "format": "double", + "type": "number" + }, + "smallcaps": { + "description": "Whether the text is in small caps.", + "type": "boolean" + }, + "strikeout": { + "description": "Whether the text is strikethrough.", + "type": "boolean" + }, + "subscript": { + "description": "Whether the text is a subscript.", + "type": "boolean" + }, + "superscript": { + "description": "Whether the text is a superscript.", + "type": "boolean" + }, + "textColor": { + "$ref": "GoogleTypeColor", + "description": "Color of the text." + }, + "underlined": { + "description": "Whether the text is underlined.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1DocumentPageVisualElement": { "description": "Detected non-text visual elements e.g. checkbox, signature etc. on the page.", "id": "GoogleCloudDocumentaiV1DocumentPageVisualElement", @@ -2947,6 +3166,7 @@ "id": "GoogleCloudDocumentaiV1DocumentProvenance", "properties": { "id": { + "deprecated": true, "description": "The Id of this operation. Needs to be unique within the scope of the revision.", "format": "int32", "type": "integer" @@ -2959,6 +3179,7 @@ "type": "array" }, "revision": { + "deprecated": true, "description": "The index of the revision that produced this element.", "format": "int32", "type": "integer" @@ -2969,19 +3190,31 @@ "OPERATION_TYPE_UNSPECIFIED", "ADD", "REMOVE", + "UPDATE", "REPLACE", "EVAL_REQUESTED", "EVAL_APPROVED", "EVAL_SKIPPED" ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + true, + true, + true + ], "enumDescriptions": [ "Operation type unspecified. If no operation is specified a provenance entry is simply used to match against a `parent`.", "Add an element.", "Remove an element identified by `parent`.", - "Replace an element identified by `parent`.", - "Request human review for the element identified by `parent`.", - "Element is reviewed and approved at human review, confidence will be set to 1.0.", - "Element is skipped in the validation process." + "Updates any fields within the given provenance scope of the message. It overwrites the fields rather than replacing them. Use this when you want to update a field value of an entity without also updating all the child properties.", + "Currently unused. Replace an element identified by `parent`.", + "Deprecated. Request human review for the element identified by `parent`.", + "Deprecated. Element is reviewed and approved at human review, confidence will be set to 1.0.", + "Deprecated. Element is skipped in the validation process." ], "type": "string" } @@ -2993,6 +3226,7 @@ "id": "GoogleCloudDocumentaiV1DocumentProvenanceParent", "properties": { "id": { + "deprecated": true, "description": "The id of the parent provenance.", "format": "int32", "type": "integer" @@ -3019,7 +3253,7 @@ "type": "string" }, "createTime": { - "description": "The time that the revision was created.", + "description": "The time that the revision was created, internally generated by doc proto storage at the time of create.", "format": "google-datetime", "type": "string" }, @@ -3028,10 +3262,11 @@ "description": "Human Review information of this revision." }, "id": { - "description": "Id of the revision. Unique within the context of the document.", + "description": "Id of the revision, internally generated by doc proto storage. Unique within the context of the document.", "type": "string" }, "parent": { + "deprecated": true, "description": "The revisions that this revision is based on. This can include one or more parent (when documents are merged.) This field represents the index into the `revisions` field.", "items": { "format": "int32", @@ -3114,11 +3349,11 @@ "description": "If specified, lists all the possible values for this entity. This should not be more than a handful of values. If the number of values is >10 or could change frequently use the `EntityType.value_ontology` field and specify a list of all possible values in a value ontology file." }, "name": { - "description": "Name of the type. It must be unique within the schema file and cannot be a 'Common Type'. Besides that we use the following naming conventions: - *use `snake_casing`* - name matching is case-sensitive - Maximum 64 characters. - Must start with a letter. - Allowed characters: ASCII letters `[a-z0-9_-]`. (For backward compatibility internal infrastructure and tooling can handle any ascii character) - The `/` is sometimes used to denote a property of a type. For example `line_item/amount`. This convention is deprecated, but will still be honored for backward compatibility.", + "description": "Name of the type. It must be unique within the schema file and cannot be a \"Common Type\". The following naming conventions are used: - Use `snake_casing`. - Name matching is case-sensitive. - Maximum 64 characters. - Must start with a letter. - Allowed characters: ASCII letters `[a-z0-9_-]`. (For backward compatibility internal infrastructure and tooling can handle any ascii character.) - The `/` is sometimes used to denote a property of a type. For example `line_item/amount`. This convention is deprecated, but will still be honored for backward compatibility.", "type": "string" }, "properties": { - "description": "Describing the nested structure, or composition of an entity.", + "description": "Description the nested structure, or composition of an entity.", "items": { "$ref": "GoogleCloudDocumentaiV1DocumentSchemaEntityTypeProperty" }, @@ -3145,6 +3380,10 @@ "description": "Defines properties that can be part of the entity type.", "id": "GoogleCloudDocumentaiV1DocumentSchemaEntityTypeProperty", "properties": { + "displayName": { + "description": "User defined name for the property.", + "type": "string" + }, "name": { "description": "The name of the property. Follows the same guidelines as the EntityType name.", "type": "string" @@ -3160,9 +3399,9 @@ ], "enumDescriptions": [ "Unspecified occurrence type.", - "There will be zero or one instance of this entity type.", + "There will be zero or one instance of this entity type. The same entity instance may be mentioned multiple times.", "The entity type will appear zero or multiple times.", - "The entity type will only appear exactly once.", + "The entity type will only appear exactly once. The same entity instance may be mentioned multiple times.", "The entity type will appear once or more times." ], "type": "string" @@ -3183,7 +3422,7 @@ "type": "boolean" }, "documentSplitter": { - "description": "If true, a `document` entity type can be applied to subdocument ( splitting). Otherwise, it can only be applied to the entire document (classification).", + "description": "If true, a `document` entity type can be applied to subdocument (splitting). Otherwise, it can only be applied to the entire document (classification).", "type": "boolean" }, "prefixedNamingOnProperties": { @@ -3240,7 +3479,7 @@ "description": "Font size." }, "fontWeight": { - "description": "Font weight. Possible values are normal, bold, bolder, and lighter. https://www.w3schools.com/cssref/pr_font_weight.asp", + "description": "[Font weight](https://www.w3schools.com/cssref/pr_font_weight.asp). Possible values are `normal`, `bold`, `bolder`, and `lighter`.", "type": "string" }, "textAnchor": { @@ -3248,11 +3487,11 @@ "description": "Text anchor indexing into the Document.text." }, "textDecoration": { - "description": "Text decoration. Follows CSS standard. https://www.w3schools.com/cssref/pr_text_text-decoration.asp", + "description": "[Text decoration](https://www.w3schools.com/cssref/pr_text_text-decoration.asp). Follows CSS standard. ", "type": "string" }, "textStyle": { - "description": "Text style. Possible values are normal, italic, and oblique. https://www.w3schools.com/cssref/pr_font_font-style.asp", + "description": "[Text style](https://www.w3schools.com/cssref/pr_font_font-style.asp). Possible values are `normal`, `italic`, and `oblique`.", "type": "string" } }, @@ -3268,7 +3507,7 @@ "type": "number" }, "unit": { - "description": "Unit for the font size. Follows CSS naming (in, px, pt, etc.).", + "description": "Unit for the font size. Follows CSS naming (such as `in`, `px`, and `pt`).", "type": "string" } }, @@ -3318,6 +3557,7 @@ "type": "string" }, "provenance": { + "deprecated": true, "description": "The history of this annotation.", "items": { "$ref": "GoogleCloudDocumentaiV1DocumentProvenance" @@ -3332,28 +3572,39 @@ "type": "object" }, "GoogleCloudDocumentaiV1EnableProcessorMetadata": { - "description": "The long running operation metadata for enable processor method.", + "description": "The long-running operation metadata for the EnableProcessor method.", "id": "GoogleCloudDocumentaiV1EnableProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1EnableProcessorRequest": { - "description": "Request message for the enable processor method.", + "description": "Request message for the EnableProcessor method.", "id": "GoogleCloudDocumentaiV1EnableProcessorRequest", "properties": {}, "type": "object" }, "GoogleCloudDocumentaiV1EnableProcessorResponse": { - "description": "Response message for the enable processor method. Intentionally empty proto for adding fields in future.", + "description": "Response message for the EnableProcessor method. Intentionally empty proto for adding fields in future.", "id": "GoogleCloudDocumentaiV1EnableProcessorResponse", "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiV1EvaluateProcessorVersionMetadata": { + "description": "Metadata of the EvaluateProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1EvaluateProcessorVersionMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1EvaluateProcessorVersionRequest": { "description": "Evaluates the given ProcessorVersion against the supplied documents.", "id": "GoogleCloudDocumentaiV1EvaluateProcessorVersionRequest", @@ -3365,6 +3616,17 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1EvaluateProcessorVersionResponse": { + "description": "Response of the EvaluateProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1EvaluateProcessorVersionResponse", + "properties": { + "evaluation": { + "description": "The resource name of the created evaluation.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1Evaluation": { "description": "An evaluation of a ProcessorVersion's performance.", "id": "GoogleCloudDocumentaiV1Evaluation", @@ -3586,7 +3848,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1FetchProcessorTypesResponse": { - "description": "Response message for fetch processor types.", + "description": "Response message for the FetchProcessorTypes method.", "id": "GoogleCloudDocumentaiV1FetchProcessorTypesResponse", "properties": { "processorTypes": { @@ -3644,7 +3906,7 @@ "id": "GoogleCloudDocumentaiV1HumanReviewStatus", "properties": { "humanReviewOperation": { - "description": "The name of the operation triggered by the processed document. This field is populated only when the [state] is [HUMAN_REVIEW_IN_PROGRESS]. It has the same response type and metadata as the long running operation returned by [ReviewDocument] method.", + "description": "The name of the operation triggered by the processed document. This field is populated only when the state is `HUMAN_REVIEW_IN_PROGRESS`. It has the same response type and metadata as the long-running operation returned by ReviewDocument.", "type": "string" }, "state": { @@ -3658,10 +3920,10 @@ ], "enumDescriptions": [ "Human review state is unspecified. Most likely due to an internal error.", - "Human review is skipped for the document. This can happen because human review is not enabled on the processor or the processing request has been set to skip this document.", + "Human review is skipped for the document. This can happen because human review isn't enabled on the processor or the processing request has been set to skip this document.", "Human review validation is triggered and passed, so no review is needed.", "Human review validation is triggered and the document is under review.", - "Some error happened during triggering human review, see the [state_message] for details." + "Some error happened during triggering human review, see the state_message for details." ], "type": "string" }, @@ -3673,7 +3935,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1ListEvaluationsResponse": { - "description": "The response from ListEvaluations.", + "description": "The response from `ListEvaluations`.", "id": "GoogleCloudDocumentaiV1ListEvaluationsResponse", "properties": { "evaluations": { @@ -3691,7 +3953,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1ListProcessorTypesResponse": { - "description": "Response message for list processor types.", + "description": "Response message for the ListProcessorTypes method.", "id": "GoogleCloudDocumentaiV1ListProcessorTypesResponse", "properties": { "nextPageToken": { @@ -3709,7 +3971,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1ListProcessorVersionsResponse": { - "description": "Response message for list processors.", + "description": "Response message for the ListProcessorVersions method.", "id": "GoogleCloudDocumentaiV1ListProcessorVersionsResponse", "properties": { "nextPageToken": { @@ -3727,7 +3989,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1ListProcessorsResponse": { - "description": "Response message for list processors.", + "description": "Response message for the ListProcessors method.", "id": "GoogleCloudDocumentaiV1ListProcessorsResponse", "properties": { "nextPageToken": { @@ -3761,32 +4023,167 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1OcrConfig": { + "description": "Config for Document OCR.", + "id": "GoogleCloudDocumentaiV1OcrConfig", + "properties": { + "advancedOcrOptions": { + "description": "A list of advanced OCR options to further fine-tune OCR behavior. Current valid values are: - `legacy_layout`: a heuristics layout detection algorithm, which serves as an alternative to the current ML-based layout detection algorithm. Customers can choose the best suitable layout algorithm based on their situation.", + "items": { + "type": "string" + }, + "type": "array" + }, + "computeStyleInfo": { + "deprecated": true, + "description": "Turn on font identification model and return font style information. Deprecated, use PremiumFeatures.compute_style_info instead.", + "type": "boolean" + }, + "disableCharacterBoxesDetection": { + "description": "Turn off character box detector in OCR engine. Character box detection is enabled by default in OCR 2.0 (and later) processors.", + "type": "boolean" + }, + "enableImageQualityScores": { + "description": "Enables intelligent document quality scores after OCR. Can help with diagnosing why OCR responses are of poor quality for a given input. Adds additional latency comparable to regular OCR to the process call.", + "type": "boolean" + }, + "enableNativePdfParsing": { + "description": "Enables special handling for PDFs with existing text information. Results in better text extraction quality in such PDF inputs.", + "type": "boolean" + }, + "enableSymbol": { + "description": "Includes symbol level OCR information if set to true.", + "type": "boolean" + }, + "hints": { + "$ref": "GoogleCloudDocumentaiV1OcrConfigHints", + "description": "Hints for the OCR model." + }, + "premiumFeatures": { + "$ref": "GoogleCloudDocumentaiV1OcrConfigPremiumFeatures", + "description": "Configurations for premium OCR features." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1OcrConfigHints": { + "description": "Hints for OCR Engine", + "id": "GoogleCloudDocumentaiV1OcrConfigHints", + "properties": { + "languageHints": { + "description": "List of BCP-47 language codes to use for OCR. In most cases, not specifying it yields the best results since it enables automatic language detection. For languages based on the Latin alphabet, setting hints is not needed. In rare cases, when the language of the text in the image is known, setting a hint will help get better results (although it will be a significant hindrance if the hint is wrong).", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1OcrConfigPremiumFeatures": { + "description": "Configurations for premium OCR features.", + "id": "GoogleCloudDocumentaiV1OcrConfigPremiumFeatures", + "properties": { + "computeStyleInfo": { + "description": "Turn on font identification model and return font style information.", + "type": "boolean" + }, + "enableMathOcr": { + "description": "Turn on the model that can extract LaTeX math formulas.", + "type": "boolean" + }, + "enableSelectionMarkDetection": { + "description": "Turn on selection mark detector in OCR engine. Only available in OCR 2.0 (and later) processors.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1ProcessOptions": { + "description": "Options for Process API", + "id": "GoogleCloudDocumentaiV1ProcessOptions", + "properties": { + "fromEnd": { + "description": "Only process certain pages from the end, same as above.", + "format": "int32", + "type": "integer" + }, + "fromStart": { + "description": "Only process certain pages from the start. Process all if the document has fewer pages.", + "format": "int32", + "type": "integer" + }, + "individualPageSelector": { + "$ref": "GoogleCloudDocumentaiV1ProcessOptionsIndividualPageSelector", + "description": "Which pages to process (1-indexed)." + }, + "ocrConfig": { + "$ref": "GoogleCloudDocumentaiV1OcrConfig", + "description": "Only applicable to `OCR_PROCESSOR` and `FORM_PARSER_PROCESSOR`. Returns error if set on other processor types." + }, + "schemaOverride": { + "$ref": "GoogleCloudDocumentaiV1DocumentSchema", + "description": "Optional. Override the schema of the ProcessorVersion. Will return an Invalid Argument error if this field is set when the underlying ProcessorVersion doesn't support schema override." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1ProcessOptionsIndividualPageSelector": { + "description": "A list of individual page numbers.", + "id": "GoogleCloudDocumentaiV1ProcessOptionsIndividualPageSelector", + "properties": { + "pages": { + "description": "Optional. Indices of the pages (starting from 1).", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1ProcessRequest": { - "description": "Request message for the process document method.", + "description": "Request message for the ProcessDocument method.", "id": "GoogleCloudDocumentaiV1ProcessRequest", "properties": { "fieldMask": { - "description": "Specifies which fields to include in ProcessResponse's document. Only supports top level document and pages field so it must be in the form of `{document_field_name}` or `pages.{page_field_name}`.", + "description": "Specifies which fields to include in the ProcessResponse.document output. Only supports top-level document and pages field, so it must be in the form of `{document_field_name}` or `pages.{page_field_name}`.", "format": "google-fieldmask", "type": "string" }, + "gcsDocument": { + "$ref": "GoogleCloudDocumentaiV1GcsDocument", + "description": "A raw document on Google Cloud Storage." + }, "inlineDocument": { "$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" + }, "rawDocument": { "$ref": "GoogleCloudDocumentaiV1RawDocument", "description": "A raw document content (bytes)." }, "skipHumanReview": { - "description": "Whether Human Review feature should be skipped for this request. Default to false.", + "description": "Whether human review should be skipped for this request. Default to `false`.", "type": "boolean" } }, "type": "object" }, "GoogleCloudDocumentaiV1ProcessResponse": { - "description": "Response message for the process document method.", + "description": "Response message for the ProcessDocument method.", "id": "GoogleCloudDocumentaiV1ProcessResponse", "properties": { "document": { @@ -3818,7 +4215,7 @@ "type": "string" }, "kmsKeyName": { - "description": "The KMS key used for encryption/decryption in CMEK scenarios. See https://cloud.google.com/security-key-management.", + "description": "The [KMS key](https://cloud.google.com/security-key-management) used for encryption and decryption in CMEK scenarios.", "type": "string" }, "name": { @@ -3831,6 +4228,14 @@ "readOnly": true, "type": "string" }, + "processorVersionAliases": { + "description": "Output only. The processor version aliases.", + "items": { + "$ref": "GoogleCloudDocumentaiV1ProcessorVersionAlias" + }, + "readOnly": true, + "type": "array" + }, "state": { "description": "Output only. The state of the processor.", "enum": [ @@ -3857,7 +4262,7 @@ "type": "string" }, "type": { - "description": "The processor type, e.g., `OCR_PROCESSOR`, `INVOICE_PROCESSOR`, etc. To get a list of processors types, see FetchProcessorTypes.", + "description": "The processor type, such as: `OCR_PROCESSOR`, `INVOICE_PROCESSOR`. To get a list of processor types, see FetchProcessorTypes.", "type": "string" } }, @@ -3918,7 +4323,7 @@ "type": "array" }, "type": { - "description": "The processor type, e.g., `OCR_PROCESSOR`, `INVOICE_PROCESSOR`, etc.", + "description": "The processor type, such as: `OCR_PROCESSOR`, `INVOICE_PROCESSOR`.", "type": "string" } }, @@ -3929,14 +4334,14 @@ "id": "GoogleCloudDocumentaiV1ProcessorTypeLocationInfo", "properties": { "locationId": { - "description": "The location id, currently must be one of [us, eu].", + "description": "The location ID. For supported locations, refer to [regional and multi-regional support](/document-ai/docs/regions).", "type": "string" } }, "type": "object" }, "GoogleCloudDocumentaiV1ProcessorVersion": { - "description": "A processor version is an implementation of a processor. Each processor can have multiple versions, pre-trained by Google internally or up-trained by the customer. At a time, a processor can only have one default version version. So the processor's behavior (when processing documents) is defined by a default version", + "description": "A processor version is an implementation of a processor. Each processor can have multiple versions, pretrained by Google internally or uptrained by the customer. A processor can only have one default version at a time. Its document-processing behavior is defined by that version.", "id": "GoogleCloudDocumentaiV1ProcessorVersion", "properties": { "createTime": { @@ -3957,7 +4362,8 @@ "description": "The schema of the processor version. Describes the output." }, "googleManaged": { - "description": "Denotes that this ProcessorVersion is managed by google.", + "description": "Output only. Denotes that this `ProcessorVersion` is managed by Google.", + "readOnly": true, "type": "boolean" }, "kmsKeyName": { @@ -3972,6 +4378,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" @@ -3986,7 +4407,8 @@ "UNDEPLOYING", "CREATING", "DELETING", - "FAILED" + "FAILED", + "IMPORTING" ], "enumDescriptions": [ "The processor version is in an unspecified state.", @@ -3996,13 +4418,29 @@ "The processor version is being undeployed.", "The processor version is being created.", "The processor version is being deleted.", - "The processor version failed and is in an indeterminate state." + "The processor version failed and is in an indeterminate state.", + "The processor version is being imported." ], "type": "string" } }, "type": "object" }, + "GoogleCloudDocumentaiV1ProcessorVersionAlias": { + "description": "Contains the alias and the aliased resource name of processor version.", + "id": "GoogleCloudDocumentaiV1ProcessorVersionAlias", + "properties": { + "alias": { + "description": "The alias in the form of `processor_version` resource name.", + "type": "string" + }, + "processorVersion": { + "description": "The resource name of aliased processor version.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1ProcessorVersionDeprecationInfo": { "description": "Information about the upcoming deprecation of this processor version.", "id": "GoogleCloudDocumentaiV1ProcessorVersionDeprecationInfo", @@ -4028,6 +4466,10 @@ "format": "byte", "type": "string" }, + "displayName": { + "description": "The display name of the document, it supports all Unicode characters except the following: `*`, `?`, `[`, `]`, `%`, `{`, `}`,`'`, `\\\"`, `,` `~`, `=` and `:` are reserved. If not specified, a default ID is generated.", + "type": "string" + }, "mimeType": { "description": "An IANA MIME type (RFC6838) indicating the nature and format of the content.", "type": "string" @@ -4036,12 +4478,12 @@ "type": "object" }, "GoogleCloudDocumentaiV1ReviewDocumentOperationMetadata": { - "description": "The long running operation metadata for review document method.", + "description": "The long-running operation metadata for the ReviewDocument method.", "id": "GoogleCloudDocumentaiV1ReviewDocumentOperationMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "questionId": { "description": "The Crowd Compute question ID.", @@ -4051,7 +4493,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1ReviewDocumentRequest": { - "description": "Request message for review document method.", + "description": "Request message for the ReviewDocument method.", "id": "GoogleCloudDocumentaiV1ReviewDocumentRequest", "properties": { "documentSchema": { @@ -4082,7 +4524,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1ReviewDocumentResponse": { - "description": "Response message for review document method.", + "description": "Response message for the ReviewDocument method.", "id": "GoogleCloudDocumentaiV1ReviewDocumentResponse", "properties": { "gcsDestination": { @@ -4111,18 +4553,18 @@ "type": "object" }, "GoogleCloudDocumentaiV1SetDefaultProcessorVersionMetadata": { - "description": "The long running operation metadata for set default processor version method.", + "description": "The long-running operation metadata for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiV1SetDefaultProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1SetDefaultProcessorVersionRequest": { - "description": "Request message for the set default processor version method.", + "description": "Request message for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiV1SetDefaultProcessorVersionRequest", "properties": { "defaultProcessorVersion": { @@ -4133,26 +4575,80 @@ "type": "object" }, "GoogleCloudDocumentaiV1SetDefaultProcessorVersionResponse": { - "description": "Response message for set default processor version method.", + "description": "Response message for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiV1SetDefaultProcessorVersionResponse", "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiV1TrainProcessorVersionMetadata": { + "description": "The metadata that represents a processor version being created.", + "id": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + }, + "testDatasetValidation": { + "$ref": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation", + "description": "The test dataset validation information." + }, + "trainingDatasetValidation": { + "$ref": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation", + "description": "The training dataset validation information." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation": { + "description": "The dataset validation information. This includes any and all errors with documents and the dataset.", + "id": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation", + "properties": { + "datasetErrorCount": { + "description": "The total number of dataset errors.", + "format": "int32", + "type": "integer" + }, + "datasetErrors": { + "description": "Error information for the dataset as a whole. A maximum of 10 dataset errors will be returned. A single dataset error is terminal for training.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + }, + "documentErrorCount": { + "description": "The total number of document errors.", + "format": "int32", + "type": "integer" + }, + "documentErrors": { + "description": "Error information pertaining to specific documents. A maximum of 10 document errors will be returned. Any document with errors will not be used throughout training.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1TrainProcessorVersionRequest": { - "description": "Request message for the create processor version method.", + "description": "Request message for the TrainProcessorVersion method.", "id": "GoogleCloudDocumentaiV1TrainProcessorVersionRequest", "properties": { "baseProcessorVersion": { "description": "Optional. The processor version to use as a base for training. This processor version must be a child of `parent`. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`.", "type": "string" }, + "customDocumentExtractionOptions": { + "$ref": "GoogleCloudDocumentaiV1TrainProcessorVersionRequestCustomDocumentExtractionOptions", + "description": "Options to control Custom Document Extraction (CDE) Processor." + }, "documentSchema": { "$ref": "GoogleCloudDocumentaiV1DocumentSchema", "description": "Optional. The schema the processor version will be trained with." }, "inputData": { "$ref": "GoogleCloudDocumentaiV1TrainProcessorVersionRequestInputData", - "description": "Optional. The input data used to train the `ProcessorVersion`." + "description": "Optional. The input data used to train the ProcessorVersion." }, "processorVersion": { "$ref": "GoogleCloudDocumentaiV1ProcessorVersion", @@ -4161,8 +4657,29 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1TrainProcessorVersionRequestCustomDocumentExtractionOptions": { + "description": "Options to control the training of the Custom Document Extraction (CDE) Processor.", + "id": "GoogleCloudDocumentaiV1TrainProcessorVersionRequestCustomDocumentExtractionOptions", + "properties": { + "trainingMethod": { + "description": "Training method to use for CDE training.", + "enum": [ + "TRAINING_METHOD_UNSPECIFIED", + "MODEL_BASED", + "TEMPLATE_BASED" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1TrainProcessorVersionRequestInputData": { - "description": "The input data used to train a new `ProcessorVersion`.", + "description": "The input data used to train a new ProcessorVersion.", "id": "GoogleCloudDocumentaiV1TrainProcessorVersionRequestInputData", "properties": { "testDocuments": { @@ -4176,25 +4693,36 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1TrainProcessorVersionResponse": { + "description": "The response for TrainProcessorVersion.", + "id": "GoogleCloudDocumentaiV1TrainProcessorVersionResponse", + "properties": { + "processorVersion": { + "description": "The resource name of the processor version produced by training.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1UndeployProcessorVersionMetadata": { - "description": "The long running operation metadata for the undeploy processor version method.", + "description": "The long-running operation metadata for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1UndeployProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1UndeployProcessorVersionRequest": { - "description": "Request message for the undeploy processor version method.", + "description": "Request message for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1UndeployProcessorVersionRequest", "properties": {}, "type": "object" }, "GoogleCloudDocumentaiV1UndeployProcessorVersionResponse": { - "description": "Response message for the undeploy processor version method.", + "description": "Response message for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1UndeployProcessorVersionResponse", "properties": {}, "type": "object" @@ -4298,7 +4826,7 @@ "description": "Any error that occurred while processing this document." }, "mimeType": { - "description": "An IANA published MIME type (also referred to as media type). For more information, see https://www.iana.org/assignments/media-types/media-types.xhtml.", + "description": "An IANA published [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml).", "type": "string" }, "pages": { @@ -4331,6 +4859,7 @@ "type": "array" }, "textStyles": { + "deprecated": true, "description": "Styles for the Document.text.", "items": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentStyle" @@ -4338,7 +4867,7 @@ "type": "array" }, "uri": { - "description": "Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. See [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris) for more info.", + "description": "Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. For more information, refer to [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris).", "type": "string" } }, @@ -4501,7 +5030,7 @@ }, "imageQualityScores": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScores", - "description": "Image Quality Scores." + "description": "Image quality scores." }, "layout": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageLayout", @@ -4528,6 +5057,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "deprecated": true, "description": "The history of this page." }, "symbols": { @@ -4588,7 +5118,7 @@ "properties": { "boundingPoly": { "$ref": "GoogleCloudDocumentaiV1beta1BoundingPoly", - "description": "Optional. Identifies the bounding polygon of a layout element on the page." + "description": "Optional. Identifies the bounding polygon of a layout element on the page. If `layout_type` is set, the bounding polygon must be exactly the same to the layout element it's referring to." }, "confidence": { "description": "Optional. Confidence of detected page element, if applicable. Range `[0, 1]`.", @@ -4596,6 +5126,7 @@ "type": "number" }, "layoutId": { + "deprecated": true, "description": "Optional. Deprecated. Use PageRef.bounding_poly instead.", "type": "string" }, @@ -4648,6 +5179,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -4678,7 +5210,7 @@ "type": "number" }, "languageCode": { - "description": "The BCP-47 language code, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", + "description": "The [BCP-47 language code](https://www.unicode.org/reports/tr35/#Unicode_locale_identifier), such as `en-US` or `sr-Latn`.", "type": "string" } }, @@ -4765,7 +5297,7 @@ "type": "integer" }, "mimeType": { - "description": "Encoding mime type for the image.", + "description": "Encoding [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml) for the image.", "type": "string" }, "width": { @@ -4777,7 +5309,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScores": { - "description": "Image Quality Scores for the page image", + "description": "Image quality scores for the page image.", "id": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScores", "properties": { "detectedDefects": { @@ -4788,7 +5320,7 @@ "type": "array" }, "qualityScore": { - "description": "The overall quality score. Range `[0, 1]` where 1 is perfect quality.", + "description": "The overall quality score. Range `[0, 1]` where `1` is perfect quality.", "format": "float", "type": "number" } @@ -4800,7 +5332,7 @@ "id": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScoresDetectedDefect", "properties": { "confidence": { - "description": "Confidence of detected defect. Range `[0, 1]` where 1 indicates strong confidence of that the defect exists.", + "description": "Confidence of detected defect. Range `[0, 1]` where `1` indicates strong confidence that the defect exists.", "format": "float", "type": "number" }, @@ -4866,6 +5398,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -4915,6 +5448,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -4969,6 +5503,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "deprecated": true, "description": "The history of this table." } }, @@ -5037,7 +5572,12 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." + }, + "styleInfo": { + "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageTokenStyleInfo", + "description": "Text style attributes." } }, "type": "object" @@ -5065,6 +5605,77 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta1DocumentPageTokenStyleInfo": { + "description": "Font and other text style attributes.", + "id": "GoogleCloudDocumentaiV1beta1DocumentPageTokenStyleInfo", + "properties": { + "backgroundColor": { + "$ref": "GoogleTypeColor", + "description": "Color of the background." + }, + "bold": { + "description": "Whether the text is bold (equivalent to font_weight is at least `700`).", + "type": "boolean" + }, + "fontSize": { + "description": "Font size in points (`1` point is `\u00b9\u2044\u2087\u2082` inches).", + "format": "int32", + "type": "integer" + }, + "fontType": { + "description": "Name or style of the font.", + "type": "string" + }, + "fontWeight": { + "description": "TrueType weight on a scale `100` (thin) to `1000` (ultra-heavy). Normal is `400`, bold is `700`.", + "format": "int32", + "type": "integer" + }, + "handwritten": { + "description": "Whether the text is handwritten.", + "type": "boolean" + }, + "italic": { + "description": "Whether the text is italic.", + "type": "boolean" + }, + "letterSpacing": { + "description": "Letter spacing in points.", + "format": "double", + "type": "number" + }, + "pixelFontSize": { + "description": "Font size in pixels, equal to _unrounded font_size_ * _resolution_ \u00f7 `72.0`.", + "format": "double", + "type": "number" + }, + "smallcaps": { + "description": "Whether the text is in small caps.", + "type": "boolean" + }, + "strikeout": { + "description": "Whether the text is strikethrough.", + "type": "boolean" + }, + "subscript": { + "description": "Whether the text is a subscript.", + "type": "boolean" + }, + "superscript": { + "description": "Whether the text is a superscript.", + "type": "boolean" + }, + "textColor": { + "$ref": "GoogleTypeColor", + "description": "Color of the text." + }, + "underlined": { + "description": "Whether the text is underlined.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta1DocumentPageVisualElement": { "description": "Detected non-text visual elements e.g. checkbox, signature etc. on the page.", "id": "GoogleCloudDocumentaiV1beta1DocumentPageVisualElement", @@ -5092,6 +5703,7 @@ "id": "GoogleCloudDocumentaiV1beta1DocumentProvenance", "properties": { "id": { + "deprecated": true, "description": "The Id of this operation. Needs to be unique within the scope of the revision.", "format": "int32", "type": "integer" @@ -5104,6 +5716,7 @@ "type": "array" }, "revision": { + "deprecated": true, "description": "The index of the revision that produced this element.", "format": "int32", "type": "integer" @@ -5114,19 +5727,31 @@ "OPERATION_TYPE_UNSPECIFIED", "ADD", "REMOVE", + "UPDATE", "REPLACE", "EVAL_REQUESTED", "EVAL_APPROVED", "EVAL_SKIPPED" ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + true, + true, + true + ], "enumDescriptions": [ "Operation type unspecified. If no operation is specified a provenance entry is simply used to match against a `parent`.", "Add an element.", "Remove an element identified by `parent`.", - "Replace an element identified by `parent`.", - "Request human review for the element identified by `parent`.", - "Element is reviewed and approved at human review, confidence will be set to 1.0.", - "Element is skipped in the validation process." + "Updates any fields within the given provenance scope of the message. It overwrites the fields rather than replacing them. Use this when you want to update a field value of an entity without also updating all the child properties.", + "Currently unused. Replace an element identified by `parent`.", + "Deprecated. Request human review for the element identified by `parent`.", + "Deprecated. Element is reviewed and approved at human review, confidence will be set to 1.0.", + "Deprecated. Element is skipped in the validation process." ], "type": "string" } @@ -5138,6 +5763,7 @@ "id": "GoogleCloudDocumentaiV1beta1DocumentProvenanceParent", "properties": { "id": { + "deprecated": true, "description": "The id of the parent provenance.", "format": "int32", "type": "integer" @@ -5164,7 +5790,7 @@ "type": "string" }, "createTime": { - "description": "The time that the revision was created.", + "description": "The time that the revision was created, internally generated by doc proto storage at the time of create.", "format": "google-datetime", "type": "string" }, @@ -5173,10 +5799,11 @@ "description": "Human Review information of this revision." }, "id": { - "description": "Id of the revision. Unique within the context of the document.", + "description": "Id of the revision, internally generated by doc proto storage. Unique within the context of the document.", "type": "string" }, "parent": { + "deprecated": true, "description": "The revisions that this revision is based on. This can include one or more parent (when documents are merged.) This field represents the index into the `revisions` field.", "items": { "format": "int32", @@ -5256,7 +5883,7 @@ "description": "Font size." }, "fontWeight": { - "description": "Font weight. Possible values are normal, bold, bolder, and lighter. https://www.w3schools.com/cssref/pr_font_weight.asp", + "description": "[Font weight](https://www.w3schools.com/cssref/pr_font_weight.asp). Possible values are `normal`, `bold`, `bolder`, and `lighter`.", "type": "string" }, "textAnchor": { @@ -5264,11 +5891,11 @@ "description": "Text anchor indexing into the Document.text." }, "textDecoration": { - "description": "Text decoration. Follows CSS standard. https://www.w3schools.com/cssref/pr_text_text-decoration.asp", + "description": "[Text decoration](https://www.w3schools.com/cssref/pr_text_text-decoration.asp). Follows CSS standard. ", "type": "string" }, "textStyle": { - "description": "Text style. Possible values are normal, italic, and oblique. https://www.w3schools.com/cssref/pr_font_font-style.asp", + "description": "[Text style](https://www.w3schools.com/cssref/pr_font_font-style.asp). Possible values are `normal`, `italic`, and `oblique`.", "type": "string" } }, @@ -5284,7 +5911,7 @@ "type": "number" }, "unit": { - "description": "Unit for the font size. Follows CSS naming (in, px, pt, etc.).", + "description": "Unit for the font size. Follows CSS naming (such as `in`, `px`, and `pt`).", "type": "string" } }, @@ -5334,6 +5961,7 @@ "type": "string" }, "provenance": { + "deprecated": true, "description": "The history of this annotation.", "items": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance" @@ -5579,7 +6207,7 @@ "type": "array" }, "mimeType": { - "description": "An IANA published MIME type (also referred to as media type). For more information, see https://www.iana.org/assignments/media-types/media-types.xhtml.", + "description": "An IANA published [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml).", "type": "string" }, "pages": { @@ -5612,6 +6240,7 @@ "type": "array" }, "textStyles": { + "deprecated": true, "description": "Styles for the Document.text.", "items": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentStyle" @@ -5619,7 +6248,7 @@ "type": "array" }, "uri": { - "description": "Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. See [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris) for more info.", + "description": "Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. For more information, refer to [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris).", "type": "string" } }, @@ -5802,7 +6431,7 @@ }, "imageQualityScores": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScores", - "description": "Image Quality Scores." + "description": "Image quality scores." }, "layout": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageLayout", @@ -5829,6 +6458,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "deprecated": true, "description": "The history of this page." }, "symbols": { @@ -5889,7 +6519,7 @@ "properties": { "boundingPoly": { "$ref": "GoogleCloudDocumentaiV1beta2BoundingPoly", - "description": "Optional. Identifies the bounding polygon of a layout element on the page." + "description": "Optional. Identifies the bounding polygon of a layout element on the page. If `layout_type` is set, the bounding polygon must be exactly the same to the layout element it's referring to." }, "confidence": { "description": "Optional. Confidence of detected page element, if applicable. Range `[0, 1]`.", @@ -5897,6 +6527,7 @@ "type": "number" }, "layoutId": { + "deprecated": true, "description": "Optional. Deprecated. Use PageRef.bounding_poly instead.", "type": "string" }, @@ -5949,6 +6580,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -5979,7 +6611,7 @@ "type": "number" }, "languageCode": { - "description": "The BCP-47 language code, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", + "description": "The [BCP-47 language code](https://www.unicode.org/reports/tr35/#Unicode_locale_identifier), such as `en-US` or `sr-Latn`.", "type": "string" } }, @@ -6066,7 +6698,7 @@ "type": "integer" }, "mimeType": { - "description": "Encoding mime type for the image.", + "description": "Encoding [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml) for the image.", "type": "string" }, "width": { @@ -6078,7 +6710,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScores": { - "description": "Image Quality Scores for the page image", + "description": "Image quality scores for the page image.", "id": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScores", "properties": { "detectedDefects": { @@ -6089,7 +6721,7 @@ "type": "array" }, "qualityScore": { - "description": "The overall quality score. Range `[0, 1]` where 1 is perfect quality.", + "description": "The overall quality score. Range `[0, 1]` where `1` is perfect quality.", "format": "float", "type": "number" } @@ -6101,7 +6733,7 @@ "id": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScoresDetectedDefect", "properties": { "confidence": { - "description": "Confidence of detected defect. Range `[0, 1]` where 1 indicates strong confidence of that the defect exists.", + "description": "Confidence of detected defect. Range `[0, 1]` where `1` indicates strong confidence that the defect exists.", "format": "float", "type": "number" }, @@ -6167,6 +6799,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -6216,6 +6849,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -6270,6 +6904,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "deprecated": true, "description": "The history of this table." } }, @@ -6338,7 +6973,12 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." + }, + "styleInfo": { + "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageTokenStyleInfo", + "description": "Text style attributes." } }, "type": "object" @@ -6366,6 +7006,77 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta2DocumentPageTokenStyleInfo": { + "description": "Font and other text style attributes.", + "id": "GoogleCloudDocumentaiV1beta2DocumentPageTokenStyleInfo", + "properties": { + "backgroundColor": { + "$ref": "GoogleTypeColor", + "description": "Color of the background." + }, + "bold": { + "description": "Whether the text is bold (equivalent to font_weight is at least `700`).", + "type": "boolean" + }, + "fontSize": { + "description": "Font size in points (`1` point is `\u00b9\u2044\u2087\u2082` inches).", + "format": "int32", + "type": "integer" + }, + "fontType": { + "description": "Name or style of the font.", + "type": "string" + }, + "fontWeight": { + "description": "TrueType weight on a scale `100` (thin) to `1000` (ultra-heavy). Normal is `400`, bold is `700`.", + "format": "int32", + "type": "integer" + }, + "handwritten": { + "description": "Whether the text is handwritten.", + "type": "boolean" + }, + "italic": { + "description": "Whether the text is italic.", + "type": "boolean" + }, + "letterSpacing": { + "description": "Letter spacing in points.", + "format": "double", + "type": "number" + }, + "pixelFontSize": { + "description": "Font size in pixels, equal to _unrounded font_size_ * _resolution_ \u00f7 `72.0`.", + "format": "double", + "type": "number" + }, + "smallcaps": { + "description": "Whether the text is in small caps.", + "type": "boolean" + }, + "strikeout": { + "description": "Whether the text is strikethrough.", + "type": "boolean" + }, + "subscript": { + "description": "Whether the text is a subscript.", + "type": "boolean" + }, + "superscript": { + "description": "Whether the text is a superscript.", + "type": "boolean" + }, + "textColor": { + "$ref": "GoogleTypeColor", + "description": "Color of the text." + }, + "underlined": { + "description": "Whether the text is underlined.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta2DocumentPageVisualElement": { "description": "Detected non-text visual elements e.g. checkbox, signature etc. on the page.", "id": "GoogleCloudDocumentaiV1beta2DocumentPageVisualElement", @@ -6393,6 +7104,7 @@ "id": "GoogleCloudDocumentaiV1beta2DocumentProvenance", "properties": { "id": { + "deprecated": true, "description": "The Id of this operation. Needs to be unique within the scope of the revision.", "format": "int32", "type": "integer" @@ -6405,6 +7117,7 @@ "type": "array" }, "revision": { + "deprecated": true, "description": "The index of the revision that produced this element.", "format": "int32", "type": "integer" @@ -6415,19 +7128,31 @@ "OPERATION_TYPE_UNSPECIFIED", "ADD", "REMOVE", + "UPDATE", "REPLACE", "EVAL_REQUESTED", "EVAL_APPROVED", "EVAL_SKIPPED" ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + true, + true, + true + ], "enumDescriptions": [ "Operation type unspecified. If no operation is specified a provenance entry is simply used to match against a `parent`.", "Add an element.", "Remove an element identified by `parent`.", - "Replace an element identified by `parent`.", - "Request human review for the element identified by `parent`.", - "Element is reviewed and approved at human review, confidence will be set to 1.0.", - "Element is skipped in the validation process." + "Updates any fields within the given provenance scope of the message. It overwrites the fields rather than replacing them. Use this when you want to update a field value of an entity without also updating all the child properties.", + "Currently unused. Replace an element identified by `parent`.", + "Deprecated. Request human review for the element identified by `parent`.", + "Deprecated. Element is reviewed and approved at human review, confidence will be set to 1.0.", + "Deprecated. Element is skipped in the validation process." ], "type": "string" } @@ -6439,6 +7164,7 @@ "id": "GoogleCloudDocumentaiV1beta2DocumentProvenanceParent", "properties": { "id": { + "deprecated": true, "description": "The id of the parent provenance.", "format": "int32", "type": "integer" @@ -6465,7 +7191,7 @@ "type": "string" }, "createTime": { - "description": "The time that the revision was created.", + "description": "The time that the revision was created, internally generated by doc proto storage at the time of create.", "format": "google-datetime", "type": "string" }, @@ -6474,10 +7200,11 @@ "description": "Human Review information of this revision." }, "id": { - "description": "Id of the revision. Unique within the context of the document.", + "description": "Id of the revision, internally generated by doc proto storage. Unique within the context of the document.", "type": "string" }, "parent": { + "deprecated": true, "description": "The revisions that this revision is based on. This can include one or more parent (when documents are merged.) This field represents the index into the `revisions` field.", "items": { "format": "int32", @@ -6557,7 +7284,7 @@ "description": "Font size." }, "fontWeight": { - "description": "Font weight. Possible values are normal, bold, bolder, and lighter. https://www.w3schools.com/cssref/pr_font_weight.asp", + "description": "[Font weight](https://www.w3schools.com/cssref/pr_font_weight.asp). Possible values are `normal`, `bold`, `bolder`, and `lighter`.", "type": "string" }, "textAnchor": { @@ -6565,11 +7292,11 @@ "description": "Text anchor indexing into the Document.text." }, "textDecoration": { - "description": "Text decoration. Follows CSS standard. https://www.w3schools.com/cssref/pr_text_text-decoration.asp", + "description": "[Text decoration](https://www.w3schools.com/cssref/pr_text_text-decoration.asp). Follows CSS standard. ", "type": "string" }, "textStyle": { - "description": "Text style. Possible values are normal, italic, and oblique. https://www.w3schools.com/cssref/pr_font_font-style.asp", + "description": "[Text style](https://www.w3schools.com/cssref/pr_font_font-style.asp). Possible values are `normal`, `italic`, and `oblique`.", "type": "string" } }, @@ -6585,7 +7312,7 @@ "type": "number" }, "unit": { - "description": "Unit for the font size. Follows CSS naming (in, px, pt, etc.).", + "description": "Unit for the font size. Follows CSS naming (such as `in`, `px`, and `pt`).", "type": "string" } }, @@ -6635,6 +7362,7 @@ "type": "string" }, "provenance": { + "deprecated": true, "description": "The history of this annotation.", "items": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance" @@ -6796,8 +7524,56 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadata": { + "id": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + }, + "errorDocumentCount": { + "description": "Total number of documents that failed to be deleted in storage.", + "format": "int32", + "type": "integer" + }, + "individualBatchDeleteStatuses": { + "description": "The list of response details of each document.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus" + }, + "type": "array" + }, + "totalDocumentCount": { + "description": "Total number of documents deleting from dataset.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus": { + "description": "The status of each individual document in the batch delete process.", + "id": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus", + "properties": { + "documentId": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentId", + "description": "The document id of the document." + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The status of deleting the document in storage." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsResponse": { + "description": "Response of the delete documents operation.", + "id": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3BatchProcessMetadata": { - "description": "The long running operation metadata for batch process method.", + "description": "The long-running operation metadata for BatchProcessDocuments.", "id": "GoogleCloudDocumentaiV1beta3BatchProcessMetadata", "properties": { "createTime": { @@ -6851,7 +7627,8 @@ "id": "GoogleCloudDocumentaiV1beta3BatchProcessMetadataIndividualProcessStatus", "properties": { "humanReviewOperation": { - "description": "The name of the operation triggered by the processed document. If the human review process is not triggered, this field will be empty. It has the same response type and metadata as the long running operation returned by ReviewDocument method.", + "deprecated": true, + "description": "The name of the operation triggered by the processed document. If the human review process isn't triggered, this field will be empty. It has the same response type and metadata as the long-running operation returned by the ReviewDocument method.", "type": "string" }, "humanReviewStatus": { @@ -6859,11 +7636,11 @@ "description": "The status of human review on the processed document." }, "inputGcsSource": { - "description": "The source of the document, same as the [input_gcs_source] field in the request when the batch process started. The batch process is started by take snapshot of that document, since a user can move or change that document during the process.", + "description": "The source of the document, same as the input_gcs_source field in the request when the batch process started.", "type": "string" }, "outputGcsDestination": { - "description": "The output_gcs_destination (in the request as `output_gcs_destination`) of the processed document if it was successful, otherwise empty.", + "description": "The Cloud Storage output destination (in the request as DocumentOutputConfig.GcsOutputConfig.gcs_uri) of the processed document if it was successful, otherwise empty.", "type": "string" }, "status": { @@ -6874,7 +7651,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3BatchProcessResponse": { - "description": "Response message for batch process document method.", + "description": "Response message for BatchProcessDocuments.", "id": "GoogleCloudDocumentaiV1beta3BatchProcessResponse", "properties": {}, "type": "object" @@ -6924,75 +7701,205 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3Dataset": { + "description": "A singleton resource under a Processor which configures a collection of documents.", + "id": "GoogleCloudDocumentaiV1beta3Dataset", + "properties": { + "documentWarehouseConfig": { + "$ref": "GoogleCloudDocumentaiV1beta3DatasetDocumentWarehouseConfig", + "deprecated": true, + "description": "Optional. Deprecated. Warehouse-based dataset configuration is not supported." + }, + "gcsManagedConfig": { + "$ref": "GoogleCloudDocumentaiV1beta3DatasetGCSManagedConfig", + "description": "Optional. User-managed Cloud Storage dataset configuration. Use this configuration if the dataset documents are stored under a user-managed Cloud Storage location." + }, + "name": { + "description": "Dataset resource name. Format: `projects/{project}/locations/{location}/processors/{processor}/dataset`", + "type": "string" + }, + "spannerIndexingConfig": { + "$ref": "GoogleCloudDocumentaiV1beta3DatasetSpannerIndexingConfig", + "description": "Optional. A lightweight indexing source with low latency and high reliability, but lacking advanced features like CMEK and content-based search." + }, + "state": { + "description": "Required. State of the dataset. Ignored when updating dataset.", + "enum": [ + "STATE_UNSPECIFIED", + "UNINITIALIZED", + "INITIALIZING", + "INITIALIZED" + ], + "enumDescriptions": [ + "Default unspecified enum, should not be used.", + "Dataset has not been initialized.", + "Dataset is being initialized.", + "Dataset has been initialized." + ], + "type": "string" + }, + "unmanagedDatasetConfig": { + "$ref": "GoogleCloudDocumentaiV1beta3DatasetUnmanagedDatasetConfig", + "description": "Optional. Unmanaged dataset configuration. Use this configuration if the dataset documents are managed by the document service internally (not user-managed)." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DatasetDocumentWarehouseConfig": { + "description": "Configuration specific to the Document AI Warehouse-based implementation.", + "id": "GoogleCloudDocumentaiV1beta3DatasetDocumentWarehouseConfig", + "properties": { + "collection": { + "description": "Output only. The collection in Document AI Warehouse associated with the dataset.", + "readOnly": true, + "type": "string" + }, + "schema": { + "description": "Output only. The schema in Document AI Warehouse associated with the dataset.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DatasetGCSManagedConfig": { + "description": "Configuration specific to the Cloud Storage-based implementation.", + "id": "GoogleCloudDocumentaiV1beta3DatasetGCSManagedConfig", + "properties": { + "gcsPrefix": { + "$ref": "GoogleCloudDocumentaiV1beta3GcsPrefix", + "description": "Required. The Cloud Storage URI (a directory) where the documents belonging to the dataset must be stored." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DatasetSpannerIndexingConfig": { + "description": "Configuration specific to spanner-based indexing.", + "id": "GoogleCloudDocumentaiV1beta3DatasetSpannerIndexingConfig", + "properties": {}, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DatasetUnmanagedDatasetConfig": { + "description": "Configuration specific to an unmanaged dataset.", + "id": "GoogleCloudDocumentaiV1beta3DatasetUnmanagedDatasetConfig", + "properties": {}, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3DeleteProcessorMetadata": { - "description": "The long running operation metadata for delete processor method.", + "description": "The long-running operation metadata for the DeleteProcessor method.", "id": "GoogleCloudDocumentaiV1beta3DeleteProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3DeleteProcessorVersionMetadata": { - "description": "The long running operation metadata for delete processor version method.", + "description": "The long-running operation metadata for the DeleteProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3DeleteProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3DeployProcessorVersionMetadata": { - "description": "The long running operation metadata for deploy processor version method.", + "description": "The long-running operation metadata for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3DeployProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3DeployProcessorVersionResponse": { - "description": "Response message for the deploy processor version method.", + "description": "Response message for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3DeployProcessorVersionResponse", "properties": {}, "type": "object" }, "GoogleCloudDocumentaiV1beta3DisableProcessorMetadata": { - "description": "The long running operation metadata for disable processor method.", + "description": "The long-running operation metadata for the DisableProcessor method.", "id": "GoogleCloudDocumentaiV1beta3DisableProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3DisableProcessorResponse": { - "description": "Response message for the disable processor method. Intentionally empty proto for adding fields in future.", + "description": "Response message for the DisableProcessor method. Intentionally empty proto for adding fields in future.", "id": "GoogleCloudDocumentaiV1beta3DisableProcessorResponse", "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiV1beta3DocumentId": { + "description": "Document Identifier.", + "id": "GoogleCloudDocumentaiV1beta3DocumentId", + "properties": { + "gcsManagedDocId": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentIdGCSManagedDocumentId", + "description": "A document id within user-managed Cloud Storage." + }, + "revisionRef": { + "$ref": "GoogleCloudDocumentaiV1beta3RevisionRef", + "description": "Points to a specific revision of the document if set." + }, + "unmanagedDocId": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentIdUnmanagedDocumentId", + "description": "A document id within unmanaged dataset." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentIdGCSManagedDocumentId": { + "description": "Identifies a document uniquely within the scope of a dataset in the user-managed Cloud Storage option.", + "id": "GoogleCloudDocumentaiV1beta3DocumentIdGCSManagedDocumentId", + "properties": { + "cwDocId": { + "deprecated": true, + "description": "Id of the document (indexed) managed by Content Warehouse.", + "type": "string" + }, + "gcsUri": { + "description": "Required. The Cloud Storage URI where the actual document is stored.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentIdUnmanagedDocumentId": { + "description": "Identifies a document uniquely within the scope of a dataset in unmanaged option.", + "id": "GoogleCloudDocumentaiV1beta3DocumentIdUnmanagedDocumentId", + "properties": { + "docId": { + "description": "Required. The id of the document.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3EnableProcessorMetadata": { - "description": "The long running operation metadata for enable processor method.", + "description": "The long-running operation metadata for the EnableProcessor method.", "id": "GoogleCloudDocumentaiV1beta3EnableProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3EnableProcessorResponse": { - "description": "Response message for the enable processor method. Intentionally empty proto for adding fields in future.", + "description": "Response message for the EnableProcessor method. Intentionally empty proto for adding fields in future.", "id": "GoogleCloudDocumentaiV1beta3EnableProcessorResponse", "properties": {}, "type": "object" @@ -7003,13 +7910,13 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionResponse": { - "description": "Metadata of the EvaluateProcessorVersion method.", + "description": "Response of the EvaluateProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionResponse", "properties": { "evaluation": { @@ -7019,12 +7926,23 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3GcsPrefix": { + "description": "Specifies all documents on Cloud Storage with a common prefix.", + "id": "GoogleCloudDocumentaiV1beta3GcsPrefix", + "properties": { + "gcsUriPrefix": { + "description": "The URI prefix.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3HumanReviewStatus": { "description": "The status of human review on a processed document.", "id": "GoogleCloudDocumentaiV1beta3HumanReviewStatus", "properties": { "humanReviewOperation": { - "description": "The name of the operation triggered by the processed document. This field is populated only when the [state] is [HUMAN_REVIEW_IN_PROGRESS]. It has the same response type and metadata as the long running operation returned by [ReviewDocument] method.", + "description": "The name of the operation triggered by the processed document. This field is populated only when the state is `HUMAN_REVIEW_IN_PROGRESS`. It has the same response type and metadata as the long-running operation returned by ReviewDocument.", "type": "string" }, "state": { @@ -7038,10 +7956,10 @@ ], "enumDescriptions": [ "Human review state is unspecified. Most likely due to an internal error.", - "Human review is skipped for the document. This can happen because human review is not enabled on the processor or the processing request has been set to skip this document.", + "Human review is skipped for the document. This can happen because human review isn't enabled on the processor or the processing request has been set to skip this document.", "Human review validation is triggered and passed, so no review is needed.", "Human review validation is triggered and the document is under review.", - "Some error happened during triggering human review, see the [state_message] for details." + "Some error happened during triggering human review, see the state_message for details." ], "type": "string" }, @@ -7052,13 +7970,105 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadata": { + "description": "Metadata of the import document operation.", + "id": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + }, + "importConfigValidationResults": { + "description": "Validation statuses of the batch documents import config.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataImportConfigValidationResult" + }, + "type": "array" + }, + "individualImportStatuses": { + "description": "The list of response details of each document.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataIndividualImportStatus" + }, + "type": "array" + }, + "totalDocumentCount": { + "description": "Total number of the documents that are qualified for importing.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataImportConfigValidationResult": { + "description": "The validation status of each import config. Status is set to an error if there are no documents to import in the `import_config`, or `OK` if the operation will try to proceed with at least one document.", + "id": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataImportConfigValidationResult", + "properties": { + "inputGcsSource": { + "description": "The source Cloud Storage URI specified in the import config.", + "type": "string" + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The validation status of import config." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataIndividualImportStatus": { + "description": "The status of each individual document in the import process.", + "id": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataIndividualImportStatus", + "properties": { + "inputGcsSource": { + "description": "The source Cloud Storage URI of the document.", + "type": "string" + }, + "outputDocumentId": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentId", + "description": "The document id of imported document if it was successful, otherwise empty." + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The status of the importing of the document." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportDocumentsResponse": { + "description": "Response of the import document operation.", + "id": "GoogleCloudDocumentaiV1beta3ImportDocumentsResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportProcessorVersionMetadata": { + "description": "The long-running operation metadata for the ImportProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1beta3ImportProcessorVersionMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", + "description": "The basic metadata for the long-running operation." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportProcessorVersionResponse": { + "description": "The response message for the ImportProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1beta3ImportProcessorVersionResponse", + "properties": { + "processorVersion": { + "description": "The destination processor version name.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3ReviewDocumentOperationMetadata": { - "description": "The long running operation metadata for review document method.", + "description": "The long-running operation metadata for the ReviewDocument method.", "id": "GoogleCloudDocumentaiV1beta3ReviewDocumentOperationMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "createTime": { "description": "The creation time of the operation.", @@ -7102,7 +8112,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3ReviewDocumentResponse": { - "description": "Response message for review document method.", + "description": "Response message for the ReviewDocument method.", "id": "GoogleCloudDocumentaiV1beta3ReviewDocumentResponse", "properties": { "gcsDestination": { @@ -7130,19 +8140,50 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3RevisionRef": { + "description": "The revision reference specifies which revision on the document to read.", + "id": "GoogleCloudDocumentaiV1beta3RevisionRef", + "properties": { + "latestProcessorVersion": { + "description": "Reads the revision generated by the processor version. The format takes the full resource name of processor version. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", + "type": "string" + }, + "revisionCase": { + "description": "Reads the revision by the predefined case.", + "enum": [ + "REVISION_CASE_UNSPECIFIED", + "LATEST_HUMAN_REVIEW", + "LATEST_TIMESTAMP", + "BASE_OCR_REVISION" + ], + "enumDescriptions": [ + "Unspecified case, fall back to read the `LATEST_HUMAN_REVIEW`.", + "The latest revision made by a human.", + "The latest revision based on timestamp.", + "The first (OCR) revision." + ], + "type": "string" + }, + "revisionId": { + "description": "Reads the revision given by the id.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionMetadata": { - "description": "The long running operation metadata for set default processor version method.", + "description": "The long-running operation metadata for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionResponse": { - "description": "Response message for set default processor version method.", + "description": "Response message for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionResponse", "properties": {}, "type": "object" @@ -7153,7 +8194,7 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "testDatasetValidation": { "$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation", @@ -7198,7 +8239,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3TrainProcessorVersionResponse": { - "description": "The response for the TrainProcessorVersion method.", + "description": "The response for TrainProcessorVersion.", "id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionResponse", "properties": { "processorVersion": { @@ -7209,22 +8250,32 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionMetadata": { - "description": "The long running operation metadata for the undeploy processor version method.", + "description": "The long-running operation metadata for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionResponse": { - "description": "Response message for the undeploy processor version method.", + "description": "Response message for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionResponse", "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiV1beta3UpdateDatasetOperationMetadata": { + "id": "GoogleCloudDocumentaiV1beta3UpdateDatasetOperationMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + } + }, + "type": "object" + }, "GoogleCloudLocationListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "GoogleCloudLocationListLocationsResponse", @@ -7244,7 +8295,7 @@ "type": "object" }, "GoogleCloudLocationLocation": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "GoogleCloudLocationLocation", "properties": { "displayName": { @@ -7324,7 +8375,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" } }, @@ -7364,7 +8415,7 @@ "type": "object" }, "GoogleTypeColor": { - "description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/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 carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). 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(''); }; // ...", + "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\u2014for 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": { diff --git a/etc/api/documentai/v1beta2/documentai-api.json b/etc/api/documentai/v1beta2/documentai-api.json index 743731a7d9..495942f4c6 100644 --- a/etc/api/documentai/v1beta2/documentai-api.json +++ b/etc/api/documentai/v1beta2/documentai-api.json @@ -292,15 +292,59 @@ } } }, - "revision": "20230117", + "revision": "20240223", "rootUrl": "https://documentai.googleapis.com/", "schemas": { + "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadata": { + "description": "Metadata of the auto-labeling documents operation.", + "id": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + }, + "individualAutoLabelStatuses": { + "description": "The list of individual auto-labeling statuses of the dataset documents.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadataIndividualAutoLabelStatus" + }, + "type": "array" + }, + "totalDocumentCount": { + "description": "Total number of the auto-labeling documents.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadataIndividualAutoLabelStatus": { + "description": "The status of individual documents in the auto-labeling process.", + "id": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadataIndividualAutoLabelStatus", + "properties": { + "documentId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", + "description": "The document id of the auto-labeled document. This will replace the gcs_uri." + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The status of the document auto-labeling." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsResponse": { + "description": "The response proto of AutoLabelDocuments method.", + "id": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadata": { "id": "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "errorDocumentCount": { "description": "Total number of documents that failed to be deleted in storage.", @@ -348,9 +392,10 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "destDatasetType": { + "deprecated": true, "description": "The destination dataset split type.", "enum": [ "DATASET_SPLIT_TYPE_UNSPECIFIED", @@ -359,7 +404,7 @@ "DATASET_SPLIT_UNASSIGNED" ], "enumDescriptions": [ - "Default value if the enum is not set. go/protodosdonts#do-include-an-unspecified-value-in-an-enum", + "Default value if the enum is not set.", "Identifies the train documents.", "Identifies the test documents.", "Identifies the unassigned documents." @@ -375,7 +420,7 @@ "DATASET_SPLIT_UNASSIGNED" ], "enumDescriptions": [ - "Default value if the enum is not set. go/protodosdonts#do-include-an-unspecified-value-in-an-enum", + "Default value if the enum is not set.", "Identifies the train documents.", "Identifies the test documents.", "Identifies the unassigned documents." @@ -413,6 +458,44 @@ "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadata": { + "id": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + }, + "individualBatchUpdateStatuses": { + "description": "The list of response details of each document.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadataIndividualBatchUpdateStatus" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadataIndividualBatchUpdateStatus": { + "description": "The status of each individual document in the batch update process.", + "id": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadataIndividualBatchUpdateStatus", + "properties": { + "documentId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", + "description": "The document id of the document." + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The status of updating the document in storage." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsResponse": { + "description": "Response of the batch update documents operation.", + "id": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata": { "description": "The common metadata for long running operations.", "id": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", @@ -459,90 +542,79 @@ "type": "object" }, "GoogleCloudDocumentaiUiv1beta3CreateLabelerPoolOperationMetadata": { - "description": "The long running operation metadata for CreateLabelerPool.", + "description": "The long-running operation metadata for the CreateLabelerPool method.", "id": "GoogleCloudDocumentaiUiv1beta3CreateLabelerPoolOperationMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." - } - }, - "type": "object" - }, - "GoogleCloudDocumentaiUiv1beta3DeleteDataLabelingJobOperationMetadata": { - "description": "The long running operation metadata for DeleteDataLabelingJob.", - "id": "GoogleCloudDocumentaiUiv1beta3DeleteDataLabelingJobOperationMetadata", - "properties": { - "commonMetadata": { - "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DeleteLabelerPoolOperationMetadata": { - "description": "The long running operation metadata for DeleteLabelerPool.", + "description": "The long-running operation metadata for DeleteLabelerPool.", "id": "GoogleCloudDocumentaiUiv1beta3DeleteLabelerPoolOperationMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DeleteProcessorMetadata": { - "description": "The long running operation metadata for delete processor method.", + "description": "The long-running operation metadata for the DeleteProcessor method.", "id": "GoogleCloudDocumentaiUiv1beta3DeleteProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DeleteProcessorVersionMetadata": { - "description": "The long running operation metadata for delete processor version method.", + "description": "The long-running operation metadata for the DeleteProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3DeleteProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionMetadata": { - "description": "The long running operation metadata for deploy processor version method.", + "description": "The long-running operation metadata for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionResponse": { - "description": "Response message for the deploy processor version method.", + "description": "Response message for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionResponse", "properties": {}, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DisableProcessorMetadata": { - "description": "The long running operation metadata for disable processor method.", + "description": "The long-running operation metadata for the DisableProcessor method.", "id": "GoogleCloudDocumentaiUiv1beta3DisableProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DisableProcessorResponse": { - "description": "Response message for the disable processor method. Intentionally empty proto for adding fields in future.", + "description": "Response message for the DisableProcessor method. Intentionally empty proto for adding fields in future.", "id": "GoogleCloudDocumentaiUiv1beta3DisableProcessorResponse", "properties": {}, "type": "object" @@ -552,47 +624,60 @@ "id": "GoogleCloudDocumentaiUiv1beta3DocumentId", "properties": { "gcsManagedDocId": { - "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId" + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId", + "description": "A document id within user-managed Cloud Storage." }, "revisionRef": { "$ref": "GoogleCloudDocumentaiUiv1beta3RevisionRef", "description": "Points to a specific revision of the document if set." }, - "revisionReference": { - "$ref": "GoogleCloudDocumentaiUiv1beta3RevisionReference", - "description": "Points to a specific revision of the document if set." + "unmanagedDocId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentIdUnmanagedDocumentId", + "description": "A document id within unmanaged dataset." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId": { - "description": "Identifies a document uniquely within the scope of a dataset in the Cloud Storage option.", + "description": "Identifies a document uniquely within the scope of a dataset in the user-managed Cloud Storage option.", "id": "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId", "properties": { "cwDocId": { + "deprecated": true, "description": "Id of the document (indexed) managed by Content Warehouse.", "type": "string" }, "gcsUri": { - "description": "Required. The Cloud Storage uri where the actual document is stored.", + "description": "Required. The Cloud Storage URI where the actual document is stored.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3DocumentIdUnmanagedDocumentId": { + "description": "Identifies a document uniquely within the scope of a dataset in unmanaged option.", + "id": "GoogleCloudDocumentaiUiv1beta3DocumentIdUnmanagedDocumentId", + "properties": { + "docId": { + "description": "Required. The id of the document.", "type": "string" } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3EnableProcessorMetadata": { - "description": "The long running operation metadata for enable processor method.", + "description": "The long-running operation metadata for the EnableProcessor method.", "id": "GoogleCloudDocumentaiUiv1beta3EnableProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3EnableProcessorResponse": { - "description": "Response message for the enable processor method. Intentionally empty proto for adding fields in future.", + "description": "Response message for the EnableProcessor method. Intentionally empty proto for adding fields in future.", "id": "GoogleCloudDocumentaiUiv1beta3EnableProcessorResponse", "properties": {}, "type": "object" @@ -603,13 +688,13 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3EvaluateProcessorVersionResponse": { - "description": "Metadata of the EvaluateProcessorVersion method.", + "description": "Response of the EvaluateProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3EvaluateProcessorVersionResponse", "properties": { "evaluation": { @@ -625,7 +710,7 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "individualExportStatuses": { "description": "The list of response details of each document.", @@ -676,7 +761,7 @@ "DATASET_SPLIT_UNASSIGNED" ], "enumDescriptions": [ - "Default value if the enum is not set. go/protodosdonts#do-include-an-unspecified-value-in-an-enum", + "Default value if the enum is not set.", "Identifies the train documents.", "Identifies the test documents.", "Identifies the unassigned documents." @@ -725,7 +810,7 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "importConfigValidationResults": { "description": "Validation statuses of the batch documents import config.", @@ -750,7 +835,7 @@ "type": "object" }, "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataImportConfigValidationResult": { - "description": "The validation status of each import config. Status is set to errors if there is no documents to import in the import_config, or OK if the operation will try to proceed at least one document.", + "description": "The validation status of each import config. Status is set to an error if there are no documents to import in the `import_config`, or `OK` if the operation will try to proceed with at least one document.", "id": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataImportConfigValidationResult", "properties": { "inputGcsSource": { @@ -772,6 +857,10 @@ "description": "The source Cloud Storage URI of the document.", "type": "string" }, + "outputDocumentId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", + "description": "The document id of imported document if it was successful, otherwise empty." + }, "outputGcsDestination": { "description": "The output_gcs_destination of the processed document if it was successful, otherwise empty.", "type": "string" @@ -789,16 +878,38 @@ "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionMetadata": { + "description": "The long-running operation metadata for the ImportProcessorVersion method.", + "id": "GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", + "description": "The basic metadata for the long-running operation." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionResponse": { + "description": "The response message for the ImportProcessorVersion method.", + "id": "GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionResponse", + "properties": { + "processorVersion": { + "description": "The destination processor version name.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadata": { - "description": "The metadata proto of ResyncDataset method.", + "description": "The metadata proto of `ResyncDataset` method.", "id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "datasetResyncStatuses": { - "description": "The list of dataset resync statuses. Not checked when `dataset_documents` is specified in ResyncRequest.", + "description": "The list of dataset resync statuses. Not checked when ResyncDatasetRequest.dataset_documents is specified.", "items": { "$ref": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataDatasetResyncStatus" }, @@ -832,7 +943,7 @@ }, "status": { "$ref": "GoogleRpcStatus", - "description": "The status of resyncing the dataset with regards to the detected inconsistency. Empty if `validate_only` is true in the request." + "description": "The status of resyncing the dataset with regards to the detected inconsistency. Empty if ResyncDatasetRequest.validate_only is `true`." } }, "type": "object" @@ -863,7 +974,7 @@ }, "status": { "$ref": "GoogleRpcStatus", - "description": "The status of resyncing the document with regards to the detected inconsistency. Empty if `validate_only` is true in the request." + "description": "The status of resyncing the document with regards to the detected inconsistency. Empty if ResyncDatasetRequest.validate_only is `true`." } }, "type": "object" @@ -891,7 +1002,7 @@ "BASE_OCR_REVISION" ], "enumDescriptions": [ - "Unspecified case, fallback to read the first (OCR) revision.", + "Unspecified case, fall back to read the `LATEST_HUMAN_REVIEW`.", "The latest revision made by a human.", "The latest revision based on timestamp.", "The first (OCR) revision." @@ -905,48 +1016,62 @@ }, "type": "object" }, - "GoogleCloudDocumentaiUiv1beta3RevisionReference": { - "description": "The revision reference specifies which revision on the document to read.", - "id": "GoogleCloudDocumentaiUiv1beta3RevisionReference", + "GoogleCloudDocumentaiUiv1beta3SampleDocumentsMetadata": { + "description": "Metadata of the sample documents operation.", + "id": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsMetadata", "properties": { - "latestProcessorVersion": { - "description": "Reads the revision generated by the processor version.", - "type": "string" + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponse": { + "description": "Response of the sample documents operation.", + "id": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponse", + "properties": { + "sampleTestStatus": { + "$ref": "GoogleRpcStatus", + "description": "The status of sampling documents in test split." }, - "revisionCase": { - "description": "Reads the revision by the predefined case.", - "enum": [ - "REVISION_CASE_UNSPECIFIED", - "LATEST_HUMAN_REVIEW", - "LATEST_TIMESTAMP" - ], - "enumDescriptions": [ - "Unspecified case, fallback to read the first (OCR) revision.", - "The latest revision made by a human.", - "The latest revision based on timestamp." - ], - "type": "string" + "sampleTrainingStatus": { + "$ref": "GoogleRpcStatus", + "description": "The status of sampling documents in training split." }, - "revisionId": { - "description": "Reads the revision given by the id.", + "selectedDocuments": { + "description": "The result of the sampling process.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponseSelectedDocument" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponseSelectedDocument": { + "id": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponseSelectedDocument", + "properties": { + "documentId": { + "description": "An internal identifier for document.", "type": "string" } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionMetadata": { - "description": "The long running operation metadata for set default processor version method.", + "description": "The long-running operation metadata for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionResponse": { - "description": "Response message for set default processor version method.", + "description": "Response message for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionResponse", "properties": {}, "type": "object" @@ -957,7 +1082,7 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "testDatasetValidation": { "$ref": "GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadataDatasetValidation", @@ -1002,7 +1127,7 @@ "type": "object" }, "GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionResponse": { - "description": "The response for the TrainProcessorVersion method.", + "description": "The response for TrainProcessorVersion.", "id": "GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionResponse", "properties": { "processorVersion": { @@ -1013,18 +1138,18 @@ "type": "object" }, "GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionMetadata": { - "description": "The long running operation metadata for the undeploy processor version method.", + "description": "The long-running operation metadata for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionResponse": { - "description": "Response message for the undeploy processor version method.", + "description": "Response message for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionResponse", "properties": {}, "type": "object" @@ -1034,35 +1159,35 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3UpdateHumanReviewConfigMetadata": { - "description": "The long running operation metadata for updating the human review configuration.", + "description": "The long-running operation metadata for updating the human review configuration.", "id": "GoogleCloudDocumentaiUiv1beta3UpdateHumanReviewConfigMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3UpdateLabelerPoolOperationMetadata": { - "description": "The long running operation metadata for UpdateLabelerPool.", + "description": "The long-running operation metadata for UpdateLabelerPool.", "id": "GoogleCloudDocumentaiUiv1beta3UpdateLabelerPoolOperationMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1BatchProcessMetadata": { - "description": "The long running operation metadata for batch process method.", + "description": "The long-running operation metadata for BatchProcessDocuments.", "id": "GoogleCloudDocumentaiV1BatchProcessMetadata", "properties": { "createTime": { @@ -1120,11 +1245,11 @@ "description": "The status of human review on the processed document." }, "inputGcsSource": { - "description": "The source of the document, same as the [input_gcs_source] field in the request when the batch process started. The batch process is started by take snapshot of that document, since a user can move or change that document during the process.", + "description": "The source of the document, same as the input_gcs_source field in the request when the batch process started.", "type": "string" }, "outputGcsDestination": { - "description": "The output_gcs_destination (in the request as `output_gcs_destination`) of the processed document if it was successful, otherwise empty.", + "description": "The Cloud Storage output destination (in the request as DocumentOutputConfig.GcsOutputConfig.gcs_uri) of the processed document if it was successful, otherwise empty.", "type": "string" }, "status": { @@ -1135,7 +1260,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1BatchProcessResponse": { - "description": "Response message for batch process document method.", + "description": "Response message for BatchProcessDocuments.", "id": "GoogleCloudDocumentaiV1BatchProcessResponse", "properties": {}, "type": "object" @@ -1186,84 +1311,106 @@ "type": "object" }, "GoogleCloudDocumentaiV1DeleteProcessorMetadata": { - "description": "The long running operation metadata for delete processor method.", + "description": "The long-running operation metadata for the DeleteProcessor method.", "id": "GoogleCloudDocumentaiV1DeleteProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1DeleteProcessorVersionMetadata": { - "description": "The long running operation metadata for delete processor version method.", + "description": "The long-running operation metadata for the DeleteProcessorVersion method.", "id": "GoogleCloudDocumentaiV1DeleteProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1DeployProcessorVersionMetadata": { - "description": "The long running operation metadata for deploy processor version method.", + "description": "The long-running operation metadata for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1DeployProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1DeployProcessorVersionResponse": { - "description": "Response message for the deploy processor version method.", + "description": "Response message for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1DeployProcessorVersionResponse", "properties": {}, "type": "object" }, "GoogleCloudDocumentaiV1DisableProcessorMetadata": { - "description": "The long running operation metadata for disable processor method.", + "description": "The long-running operation metadata for the DisableProcessor method.", "id": "GoogleCloudDocumentaiV1DisableProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1DisableProcessorResponse": { - "description": "Response message for the disable processor method. Intentionally empty proto for adding fields in future.", + "description": "Response message for the DisableProcessor method. Intentionally empty proto for adding fields in future.", "id": "GoogleCloudDocumentaiV1DisableProcessorResponse", "properties": {}, "type": "object" }, "GoogleCloudDocumentaiV1EnableProcessorMetadata": { - "description": "The long running operation metadata for enable processor method.", + "description": "The long-running operation metadata for the EnableProcessor method.", "id": "GoogleCloudDocumentaiV1EnableProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1EnableProcessorResponse": { - "description": "Response message for the enable processor method. Intentionally empty proto for adding fields in future.", + "description": "Response message for the EnableProcessor method. Intentionally empty proto for adding fields in future.", "id": "GoogleCloudDocumentaiV1EnableProcessorResponse", "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiV1EvaluateProcessorVersionMetadata": { + "description": "Metadata of the EvaluateProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1EvaluateProcessorVersionMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1EvaluateProcessorVersionResponse": { + "description": "Response of the EvaluateProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1EvaluateProcessorVersionResponse", + "properties": { + "evaluation": { + "description": "The resource name of the created evaluation.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1HumanReviewStatus": { "description": "The status of human review on a processed document.", "id": "GoogleCloudDocumentaiV1HumanReviewStatus", "properties": { "humanReviewOperation": { - "description": "The name of the operation triggered by the processed document. This field is populated only when the [state] is [HUMAN_REVIEW_IN_PROGRESS]. It has the same response type and metadata as the long running operation returned by [ReviewDocument] method.", + "description": "The name of the operation triggered by the processed document. This field is populated only when the state is `HUMAN_REVIEW_IN_PROGRESS`. It has the same response type and metadata as the long-running operation returned by ReviewDocument.", "type": "string" }, "state": { @@ -1277,10 +1424,10 @@ ], "enumDescriptions": [ "Human review state is unspecified. Most likely due to an internal error.", - "Human review is skipped for the document. This can happen because human review is not enabled on the processor or the processing request has been set to skip this document.", + "Human review is skipped for the document. This can happen because human review isn't enabled on the processor or the processing request has been set to skip this document.", "Human review validation is triggered and passed, so no review is needed.", "Human review validation is triggered and the document is under review.", - "Some error happened during triggering human review, see the [state_message] for details." + "Some error happened during triggering human review, see the state_message for details." ], "type": "string" }, @@ -1292,12 +1439,12 @@ "type": "object" }, "GoogleCloudDocumentaiV1ReviewDocumentOperationMetadata": { - "description": "The long running operation metadata for review document method.", + "description": "The long-running operation metadata for the ReviewDocument method.", "id": "GoogleCloudDocumentaiV1ReviewDocumentOperationMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "questionId": { "description": "The Crowd Compute question ID.", @@ -1307,7 +1454,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1ReviewDocumentResponse": { - "description": "Response message for review document method.", + "description": "Response message for the ReviewDocument method.", "id": "GoogleCloudDocumentaiV1ReviewDocumentResponse", "properties": { "gcsDestination": { @@ -1336,35 +1483,96 @@ "type": "object" }, "GoogleCloudDocumentaiV1SetDefaultProcessorVersionMetadata": { - "description": "The long running operation metadata for set default processor version method.", + "description": "The long-running operation metadata for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiV1SetDefaultProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1SetDefaultProcessorVersionResponse": { - "description": "Response message for set default processor version method.", + "description": "Response message for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiV1SetDefaultProcessorVersionResponse", "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiV1TrainProcessorVersionMetadata": { + "description": "The metadata that represents a processor version being created.", + "id": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + }, + "testDatasetValidation": { + "$ref": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation", + "description": "The test dataset validation information." + }, + "trainingDatasetValidation": { + "$ref": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation", + "description": "The training dataset validation information." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation": { + "description": "The dataset validation information. This includes any and all errors with documents and the dataset.", + "id": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation", + "properties": { + "datasetErrorCount": { + "description": "The total number of dataset errors.", + "format": "int32", + "type": "integer" + }, + "datasetErrors": { + "description": "Error information for the dataset as a whole. A maximum of 10 dataset errors will be returned. A single dataset error is terminal for training.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + }, + "documentErrorCount": { + "description": "The total number of document errors.", + "format": "int32", + "type": "integer" + }, + "documentErrors": { + "description": "Error information pertaining to specific documents. A maximum of 10 document errors will be returned. Any document with errors will not be used throughout training.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1TrainProcessorVersionResponse": { + "description": "The response for TrainProcessorVersion.", + "id": "GoogleCloudDocumentaiV1TrainProcessorVersionResponse", + "properties": { + "processorVersion": { + "description": "The resource name of the processor version produced by training.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1UndeployProcessorVersionMetadata": { - "description": "The long running operation metadata for the undeploy processor version method.", + "description": "The long-running operation metadata for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1UndeployProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1UndeployProcessorVersionResponse": { - "description": "Response message for the undeploy processor version method.", + "description": "Response message for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1UndeployProcessorVersionResponse", "properties": {}, "type": "object" @@ -1451,7 +1659,7 @@ "description": "Any error that occurred while processing this document." }, "mimeType": { - "description": "An IANA published MIME type (also referred to as media type). For more information, see https://www.iana.org/assignments/media-types/media-types.xhtml.", + "description": "An IANA published [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml).", "type": "string" }, "pages": { @@ -1484,6 +1692,7 @@ "type": "array" }, "textStyles": { + "deprecated": true, "description": "Styles for the Document.text.", "items": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentStyle" @@ -1491,7 +1700,7 @@ "type": "array" }, "uri": { - "description": "Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. See [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris) for more info.", + "description": "Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. For more information, refer to [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris).", "type": "string" } }, @@ -1654,7 +1863,7 @@ }, "imageQualityScores": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScores", - "description": "Image Quality Scores." + "description": "Image quality scores." }, "layout": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageLayout", @@ -1681,6 +1890,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "deprecated": true, "description": "The history of this page." }, "symbols": { @@ -1741,7 +1951,7 @@ "properties": { "boundingPoly": { "$ref": "GoogleCloudDocumentaiV1beta1BoundingPoly", - "description": "Optional. Identifies the bounding polygon of a layout element on the page." + "description": "Optional. Identifies the bounding polygon of a layout element on the page. If `layout_type` is set, the bounding polygon must be exactly the same to the layout element it's referring to." }, "confidence": { "description": "Optional. Confidence of detected page element, if applicable. Range `[0, 1]`.", @@ -1749,6 +1959,7 @@ "type": "number" }, "layoutId": { + "deprecated": true, "description": "Optional. Deprecated. Use PageRef.bounding_poly instead.", "type": "string" }, @@ -1801,6 +2012,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -1831,7 +2043,7 @@ "type": "number" }, "languageCode": { - "description": "The BCP-47 language code, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", + "description": "The [BCP-47 language code](https://www.unicode.org/reports/tr35/#Unicode_locale_identifier), such as `en-US` or `sr-Latn`.", "type": "string" } }, @@ -1918,7 +2130,7 @@ "type": "integer" }, "mimeType": { - "description": "Encoding mime type for the image.", + "description": "Encoding [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml) for the image.", "type": "string" }, "width": { @@ -1930,7 +2142,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScores": { - "description": "Image Quality Scores for the page image", + "description": "Image quality scores for the page image.", "id": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScores", "properties": { "detectedDefects": { @@ -1941,7 +2153,7 @@ "type": "array" }, "qualityScore": { - "description": "The overall quality score. Range `[0, 1]` where 1 is perfect quality.", + "description": "The overall quality score. Range `[0, 1]` where `1` is perfect quality.", "format": "float", "type": "number" } @@ -1953,7 +2165,7 @@ "id": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScoresDetectedDefect", "properties": { "confidence": { - "description": "Confidence of detected defect. Range `[0, 1]` where 1 indicates strong confidence of that the defect exists.", + "description": "Confidence of detected defect. Range `[0, 1]` where `1` indicates strong confidence that the defect exists.", "format": "float", "type": "number" }, @@ -2019,6 +2231,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -2068,6 +2281,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -2122,6 +2336,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "deprecated": true, "description": "The history of this table." } }, @@ -2190,7 +2405,12 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." + }, + "styleInfo": { + "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageTokenStyleInfo", + "description": "Text style attributes." } }, "type": "object" @@ -2218,6 +2438,77 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta1DocumentPageTokenStyleInfo": { + "description": "Font and other text style attributes.", + "id": "GoogleCloudDocumentaiV1beta1DocumentPageTokenStyleInfo", + "properties": { + "backgroundColor": { + "$ref": "GoogleTypeColor", + "description": "Color of the background." + }, + "bold": { + "description": "Whether the text is bold (equivalent to font_weight is at least `700`).", + "type": "boolean" + }, + "fontSize": { + "description": "Font size in points (`1` point is `\u00b9\u2044\u2087\u2082` inches).", + "format": "int32", + "type": "integer" + }, + "fontType": { + "description": "Name or style of the font.", + "type": "string" + }, + "fontWeight": { + "description": "TrueType weight on a scale `100` (thin) to `1000` (ultra-heavy). Normal is `400`, bold is `700`.", + "format": "int32", + "type": "integer" + }, + "handwritten": { + "description": "Whether the text is handwritten.", + "type": "boolean" + }, + "italic": { + "description": "Whether the text is italic.", + "type": "boolean" + }, + "letterSpacing": { + "description": "Letter spacing in points.", + "format": "double", + "type": "number" + }, + "pixelFontSize": { + "description": "Font size in pixels, equal to _unrounded font_size_ * _resolution_ \u00f7 `72.0`.", + "format": "double", + "type": "number" + }, + "smallcaps": { + "description": "Whether the text is in small caps.", + "type": "boolean" + }, + "strikeout": { + "description": "Whether the text is strikethrough.", + "type": "boolean" + }, + "subscript": { + "description": "Whether the text is a subscript.", + "type": "boolean" + }, + "superscript": { + "description": "Whether the text is a superscript.", + "type": "boolean" + }, + "textColor": { + "$ref": "GoogleTypeColor", + "description": "Color of the text." + }, + "underlined": { + "description": "Whether the text is underlined.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta1DocumentPageVisualElement": { "description": "Detected non-text visual elements e.g. checkbox, signature etc. on the page.", "id": "GoogleCloudDocumentaiV1beta1DocumentPageVisualElement", @@ -2245,6 +2536,7 @@ "id": "GoogleCloudDocumentaiV1beta1DocumentProvenance", "properties": { "id": { + "deprecated": true, "description": "The Id of this operation. Needs to be unique within the scope of the revision.", "format": "int32", "type": "integer" @@ -2257,6 +2549,7 @@ "type": "array" }, "revision": { + "deprecated": true, "description": "The index of the revision that produced this element.", "format": "int32", "type": "integer" @@ -2267,19 +2560,31 @@ "OPERATION_TYPE_UNSPECIFIED", "ADD", "REMOVE", + "UPDATE", "REPLACE", "EVAL_REQUESTED", "EVAL_APPROVED", "EVAL_SKIPPED" ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + true, + true, + true + ], "enumDescriptions": [ "Operation type unspecified. If no operation is specified a provenance entry is simply used to match against a `parent`.", "Add an element.", "Remove an element identified by `parent`.", - "Replace an element identified by `parent`.", - "Request human review for the element identified by `parent`.", - "Element is reviewed and approved at human review, confidence will be set to 1.0.", - "Element is skipped in the validation process." + "Updates any fields within the given provenance scope of the message. It overwrites the fields rather than replacing them. Use this when you want to update a field value of an entity without also updating all the child properties.", + "Currently unused. Replace an element identified by `parent`.", + "Deprecated. Request human review for the element identified by `parent`.", + "Deprecated. Element is reviewed and approved at human review, confidence will be set to 1.0.", + "Deprecated. Element is skipped in the validation process." ], "type": "string" } @@ -2291,6 +2596,7 @@ "id": "GoogleCloudDocumentaiV1beta1DocumentProvenanceParent", "properties": { "id": { + "deprecated": true, "description": "The id of the parent provenance.", "format": "int32", "type": "integer" @@ -2317,7 +2623,7 @@ "type": "string" }, "createTime": { - "description": "The time that the revision was created.", + "description": "The time that the revision was created, internally generated by doc proto storage at the time of create.", "format": "google-datetime", "type": "string" }, @@ -2326,10 +2632,11 @@ "description": "Human Review information of this revision." }, "id": { - "description": "Id of the revision. Unique within the context of the document.", + "description": "Id of the revision, internally generated by doc proto storage. Unique within the context of the document.", "type": "string" }, "parent": { + "deprecated": true, "description": "The revisions that this revision is based on. This can include one or more parent (when documents are merged.) This field represents the index into the `revisions` field.", "items": { "format": "int32", @@ -2409,7 +2716,7 @@ "description": "Font size." }, "fontWeight": { - "description": "Font weight. Possible values are normal, bold, bolder, and lighter. https://www.w3schools.com/cssref/pr_font_weight.asp", + "description": "[Font weight](https://www.w3schools.com/cssref/pr_font_weight.asp). Possible values are `normal`, `bold`, `bolder`, and `lighter`.", "type": "string" }, "textAnchor": { @@ -2417,11 +2724,11 @@ "description": "Text anchor indexing into the Document.text." }, "textDecoration": { - "description": "Text decoration. Follows CSS standard. https://www.w3schools.com/cssref/pr_text_text-decoration.asp", + "description": "[Text decoration](https://www.w3schools.com/cssref/pr_text_text-decoration.asp). Follows CSS standard. ", "type": "string" }, "textStyle": { - "description": "Text style. Possible values are normal, italic, and oblique. https://www.w3schools.com/cssref/pr_font_font-style.asp", + "description": "[Text style](https://www.w3schools.com/cssref/pr_font_font-style.asp). Possible values are `normal`, `italic`, and `oblique`.", "type": "string" } }, @@ -2437,7 +2744,7 @@ "type": "number" }, "unit": { - "description": "Unit for the font size. Follows CSS naming (in, px, pt, etc.).", + "description": "Unit for the font size. Follows CSS naming (such as `in`, `px`, and `pt`).", "type": "string" } }, @@ -2487,6 +2794,7 @@ "type": "string" }, "provenance": { + "deprecated": true, "description": "The history of this annotation.", "items": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance" @@ -2757,7 +3065,7 @@ "type": "array" }, "mimeType": { - "description": "An IANA published MIME type (also referred to as media type). For more information, see https://www.iana.org/assignments/media-types/media-types.xhtml.", + "description": "An IANA published [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml).", "type": "string" }, "pages": { @@ -2790,6 +3098,7 @@ "type": "array" }, "textStyles": { + "deprecated": true, "description": "Styles for the Document.text.", "items": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentStyle" @@ -2797,7 +3106,7 @@ "type": "array" }, "uri": { - "description": "Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. See [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris) for more info.", + "description": "Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. For more information, refer to [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris).", "type": "string" } }, @@ -2980,7 +3289,7 @@ }, "imageQualityScores": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScores", - "description": "Image Quality Scores." + "description": "Image quality scores." }, "layout": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageLayout", @@ -3007,6 +3316,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "deprecated": true, "description": "The history of this page." }, "symbols": { @@ -3067,7 +3377,7 @@ "properties": { "boundingPoly": { "$ref": "GoogleCloudDocumentaiV1beta2BoundingPoly", - "description": "Optional. Identifies the bounding polygon of a layout element on the page." + "description": "Optional. Identifies the bounding polygon of a layout element on the page. If `layout_type` is set, the bounding polygon must be exactly the same to the layout element it's referring to." }, "confidence": { "description": "Optional. Confidence of detected page element, if applicable. Range `[0, 1]`.", @@ -3075,6 +3385,7 @@ "type": "number" }, "layoutId": { + "deprecated": true, "description": "Optional. Deprecated. Use PageRef.bounding_poly instead.", "type": "string" }, @@ -3127,6 +3438,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -3157,7 +3469,7 @@ "type": "number" }, "languageCode": { - "description": "The BCP-47 language code, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", + "description": "The [BCP-47 language code](https://www.unicode.org/reports/tr35/#Unicode_locale_identifier), such as `en-US` or `sr-Latn`.", "type": "string" } }, @@ -3244,7 +3556,7 @@ "type": "integer" }, "mimeType": { - "description": "Encoding mime type for the image.", + "description": "Encoding [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml) for the image.", "type": "string" }, "width": { @@ -3256,7 +3568,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScores": { - "description": "Image Quality Scores for the page image", + "description": "Image quality scores for the page image.", "id": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScores", "properties": { "detectedDefects": { @@ -3267,7 +3579,7 @@ "type": "array" }, "qualityScore": { - "description": "The overall quality score. Range `[0, 1]` where 1 is perfect quality.", + "description": "The overall quality score. Range `[0, 1]` where `1` is perfect quality.", "format": "float", "type": "number" } @@ -3279,7 +3591,7 @@ "id": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScoresDetectedDefect", "properties": { "confidence": { - "description": "Confidence of detected defect. Range `[0, 1]` where 1 indicates strong confidence of that the defect exists.", + "description": "Confidence of detected defect. Range `[0, 1]` where `1` indicates strong confidence that the defect exists.", "format": "float", "type": "number" }, @@ -3345,6 +3657,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -3394,6 +3707,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -3448,6 +3762,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "deprecated": true, "description": "The history of this table." } }, @@ -3516,7 +3831,12 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." + }, + "styleInfo": { + "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageTokenStyleInfo", + "description": "Text style attributes." } }, "type": "object" @@ -3544,6 +3864,77 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta2DocumentPageTokenStyleInfo": { + "description": "Font and other text style attributes.", + "id": "GoogleCloudDocumentaiV1beta2DocumentPageTokenStyleInfo", + "properties": { + "backgroundColor": { + "$ref": "GoogleTypeColor", + "description": "Color of the background." + }, + "bold": { + "description": "Whether the text is bold (equivalent to font_weight is at least `700`).", + "type": "boolean" + }, + "fontSize": { + "description": "Font size in points (`1` point is `\u00b9\u2044\u2087\u2082` inches).", + "format": "int32", + "type": "integer" + }, + "fontType": { + "description": "Name or style of the font.", + "type": "string" + }, + "fontWeight": { + "description": "TrueType weight on a scale `100` (thin) to `1000` (ultra-heavy). Normal is `400`, bold is `700`.", + "format": "int32", + "type": "integer" + }, + "handwritten": { + "description": "Whether the text is handwritten.", + "type": "boolean" + }, + "italic": { + "description": "Whether the text is italic.", + "type": "boolean" + }, + "letterSpacing": { + "description": "Letter spacing in points.", + "format": "double", + "type": "number" + }, + "pixelFontSize": { + "description": "Font size in pixels, equal to _unrounded font_size_ * _resolution_ \u00f7 `72.0`.", + "format": "double", + "type": "number" + }, + "smallcaps": { + "description": "Whether the text is in small caps.", + "type": "boolean" + }, + "strikeout": { + "description": "Whether the text is strikethrough.", + "type": "boolean" + }, + "subscript": { + "description": "Whether the text is a subscript.", + "type": "boolean" + }, + "superscript": { + "description": "Whether the text is a superscript.", + "type": "boolean" + }, + "textColor": { + "$ref": "GoogleTypeColor", + "description": "Color of the text." + }, + "underlined": { + "description": "Whether the text is underlined.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta2DocumentPageVisualElement": { "description": "Detected non-text visual elements e.g. checkbox, signature etc. on the page.", "id": "GoogleCloudDocumentaiV1beta2DocumentPageVisualElement", @@ -3571,6 +3962,7 @@ "id": "GoogleCloudDocumentaiV1beta2DocumentProvenance", "properties": { "id": { + "deprecated": true, "description": "The Id of this operation. Needs to be unique within the scope of the revision.", "format": "int32", "type": "integer" @@ -3583,6 +3975,7 @@ "type": "array" }, "revision": { + "deprecated": true, "description": "The index of the revision that produced this element.", "format": "int32", "type": "integer" @@ -3593,19 +3986,31 @@ "OPERATION_TYPE_UNSPECIFIED", "ADD", "REMOVE", + "UPDATE", "REPLACE", "EVAL_REQUESTED", "EVAL_APPROVED", "EVAL_SKIPPED" ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + true, + true, + true + ], "enumDescriptions": [ "Operation type unspecified. If no operation is specified a provenance entry is simply used to match against a `parent`.", "Add an element.", "Remove an element identified by `parent`.", - "Replace an element identified by `parent`.", - "Request human review for the element identified by `parent`.", - "Element is reviewed and approved at human review, confidence will be set to 1.0.", - "Element is skipped in the validation process." + "Updates any fields within the given provenance scope of the message. It overwrites the fields rather than replacing them. Use this when you want to update a field value of an entity without also updating all the child properties.", + "Currently unused. Replace an element identified by `parent`.", + "Deprecated. Request human review for the element identified by `parent`.", + "Deprecated. Element is reviewed and approved at human review, confidence will be set to 1.0.", + "Deprecated. Element is skipped in the validation process." ], "type": "string" } @@ -3617,6 +4022,7 @@ "id": "GoogleCloudDocumentaiV1beta2DocumentProvenanceParent", "properties": { "id": { + "deprecated": true, "description": "The id of the parent provenance.", "format": "int32", "type": "integer" @@ -3643,7 +4049,7 @@ "type": "string" }, "createTime": { - "description": "The time that the revision was created.", + "description": "The time that the revision was created, internally generated by doc proto storage at the time of create.", "format": "google-datetime", "type": "string" }, @@ -3652,10 +4058,11 @@ "description": "Human Review information of this revision." }, "id": { - "description": "Id of the revision. Unique within the context of the document.", + "description": "Id of the revision, internally generated by doc proto storage. Unique within the context of the document.", "type": "string" }, "parent": { + "deprecated": true, "description": "The revisions that this revision is based on. This can include one or more parent (when documents are merged.) This field represents the index into the `revisions` field.", "items": { "format": "int32", @@ -3735,7 +4142,7 @@ "description": "Font size." }, "fontWeight": { - "description": "Font weight. Possible values are normal, bold, bolder, and lighter. https://www.w3schools.com/cssref/pr_font_weight.asp", + "description": "[Font weight](https://www.w3schools.com/cssref/pr_font_weight.asp). Possible values are `normal`, `bold`, `bolder`, and `lighter`.", "type": "string" }, "textAnchor": { @@ -3743,11 +4150,11 @@ "description": "Text anchor indexing into the Document.text." }, "textDecoration": { - "description": "Text decoration. Follows CSS standard. https://www.w3schools.com/cssref/pr_text_text-decoration.asp", + "description": "[Text decoration](https://www.w3schools.com/cssref/pr_text_text-decoration.asp). Follows CSS standard. ", "type": "string" }, "textStyle": { - "description": "Text style. Possible values are normal, italic, and oblique. https://www.w3schools.com/cssref/pr_font_font-style.asp", + "description": "[Text style](https://www.w3schools.com/cssref/pr_font_font-style.asp). Possible values are `normal`, `italic`, and `oblique`.", "type": "string" } }, @@ -3763,7 +4170,7 @@ "type": "number" }, "unit": { - "description": "Unit for the font size. Follows CSS naming (in, px, pt, etc.).", + "description": "Unit for the font size. Follows CSS naming (such as `in`, `px`, and `pt`).", "type": "string" } }, @@ -3813,6 +4220,7 @@ "type": "string" }, "provenance": { + "deprecated": true, "description": "The history of this annotation.", "items": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance" @@ -4131,8 +4539,56 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadata": { + "id": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + }, + "errorDocumentCount": { + "description": "Total number of documents that failed to be deleted in storage.", + "format": "int32", + "type": "integer" + }, + "individualBatchDeleteStatuses": { + "description": "The list of response details of each document.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus" + }, + "type": "array" + }, + "totalDocumentCount": { + "description": "Total number of documents deleting from dataset.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus": { + "description": "The status of each individual document in the batch delete process.", + "id": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus", + "properties": { + "documentId": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentId", + "description": "The document id of the document." + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The status of deleting the document in storage." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsResponse": { + "description": "Response of the delete documents operation.", + "id": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3BatchProcessMetadata": { - "description": "The long running operation metadata for batch process method.", + "description": "The long-running operation metadata for BatchProcessDocuments.", "id": "GoogleCloudDocumentaiV1beta3BatchProcessMetadata", "properties": { "createTime": { @@ -4186,7 +4642,8 @@ "id": "GoogleCloudDocumentaiV1beta3BatchProcessMetadataIndividualProcessStatus", "properties": { "humanReviewOperation": { - "description": "The name of the operation triggered by the processed document. If the human review process is not triggered, this field will be empty. It has the same response type and metadata as the long running operation returned by ReviewDocument method.", + "deprecated": true, + "description": "The name of the operation triggered by the processed document. If the human review process isn't triggered, this field will be empty. It has the same response type and metadata as the long-running operation returned by the ReviewDocument method.", "type": "string" }, "humanReviewStatus": { @@ -4194,11 +4651,11 @@ "description": "The status of human review on the processed document." }, "inputGcsSource": { - "description": "The source of the document, same as the [input_gcs_source] field in the request when the batch process started. The batch process is started by take snapshot of that document, since a user can move or change that document during the process.", + "description": "The source of the document, same as the input_gcs_source field in the request when the batch process started.", "type": "string" }, "outputGcsDestination": { - "description": "The output_gcs_destination (in the request as `output_gcs_destination`) of the processed document if it was successful, otherwise empty.", + "description": "The Cloud Storage output destination (in the request as DocumentOutputConfig.GcsOutputConfig.gcs_uri) of the processed document if it was successful, otherwise empty.", "type": "string" }, "status": { @@ -4209,7 +4666,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3BatchProcessResponse": { - "description": "Response message for batch process document method.", + "description": "Response message for BatchProcessDocuments.", "id": "GoogleCloudDocumentaiV1beta3BatchProcessResponse", "properties": {}, "type": "object" @@ -4259,75 +4716,205 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3Dataset": { + "description": "A singleton resource under a Processor which configures a collection of documents.", + "id": "GoogleCloudDocumentaiV1beta3Dataset", + "properties": { + "documentWarehouseConfig": { + "$ref": "GoogleCloudDocumentaiV1beta3DatasetDocumentWarehouseConfig", + "deprecated": true, + "description": "Optional. Deprecated. Warehouse-based dataset configuration is not supported." + }, + "gcsManagedConfig": { + "$ref": "GoogleCloudDocumentaiV1beta3DatasetGCSManagedConfig", + "description": "Optional. User-managed Cloud Storage dataset configuration. Use this configuration if the dataset documents are stored under a user-managed Cloud Storage location." + }, + "name": { + "description": "Dataset resource name. Format: `projects/{project}/locations/{location}/processors/{processor}/dataset`", + "type": "string" + }, + "spannerIndexingConfig": { + "$ref": "GoogleCloudDocumentaiV1beta3DatasetSpannerIndexingConfig", + "description": "Optional. A lightweight indexing source with low latency and high reliability, but lacking advanced features like CMEK and content-based search." + }, + "state": { + "description": "Required. State of the dataset. Ignored when updating dataset.", + "enum": [ + "STATE_UNSPECIFIED", + "UNINITIALIZED", + "INITIALIZING", + "INITIALIZED" + ], + "enumDescriptions": [ + "Default unspecified enum, should not be used.", + "Dataset has not been initialized.", + "Dataset is being initialized.", + "Dataset has been initialized." + ], + "type": "string" + }, + "unmanagedDatasetConfig": { + "$ref": "GoogleCloudDocumentaiV1beta3DatasetUnmanagedDatasetConfig", + "description": "Optional. Unmanaged dataset configuration. Use this configuration if the dataset documents are managed by the document service internally (not user-managed)." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DatasetDocumentWarehouseConfig": { + "description": "Configuration specific to the Document AI Warehouse-based implementation.", + "id": "GoogleCloudDocumentaiV1beta3DatasetDocumentWarehouseConfig", + "properties": { + "collection": { + "description": "Output only. The collection in Document AI Warehouse associated with the dataset.", + "readOnly": true, + "type": "string" + }, + "schema": { + "description": "Output only. The schema in Document AI Warehouse associated with the dataset.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DatasetGCSManagedConfig": { + "description": "Configuration specific to the Cloud Storage-based implementation.", + "id": "GoogleCloudDocumentaiV1beta3DatasetGCSManagedConfig", + "properties": { + "gcsPrefix": { + "$ref": "GoogleCloudDocumentaiV1beta3GcsPrefix", + "description": "Required. The Cloud Storage URI (a directory) where the documents belonging to the dataset must be stored." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DatasetSpannerIndexingConfig": { + "description": "Configuration specific to spanner-based indexing.", + "id": "GoogleCloudDocumentaiV1beta3DatasetSpannerIndexingConfig", + "properties": {}, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DatasetUnmanagedDatasetConfig": { + "description": "Configuration specific to an unmanaged dataset.", + "id": "GoogleCloudDocumentaiV1beta3DatasetUnmanagedDatasetConfig", + "properties": {}, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3DeleteProcessorMetadata": { - "description": "The long running operation metadata for delete processor method.", + "description": "The long-running operation metadata for the DeleteProcessor method.", "id": "GoogleCloudDocumentaiV1beta3DeleteProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3DeleteProcessorVersionMetadata": { - "description": "The long running operation metadata for delete processor version method.", + "description": "The long-running operation metadata for the DeleteProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3DeleteProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3DeployProcessorVersionMetadata": { - "description": "The long running operation metadata for deploy processor version method.", + "description": "The long-running operation metadata for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3DeployProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3DeployProcessorVersionResponse": { - "description": "Response message for the deploy processor version method.", + "description": "Response message for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3DeployProcessorVersionResponse", "properties": {}, "type": "object" }, "GoogleCloudDocumentaiV1beta3DisableProcessorMetadata": { - "description": "The long running operation metadata for disable processor method.", + "description": "The long-running operation metadata for the DisableProcessor method.", "id": "GoogleCloudDocumentaiV1beta3DisableProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3DisableProcessorResponse": { - "description": "Response message for the disable processor method. Intentionally empty proto for adding fields in future.", + "description": "Response message for the DisableProcessor method. Intentionally empty proto for adding fields in future.", "id": "GoogleCloudDocumentaiV1beta3DisableProcessorResponse", "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiV1beta3DocumentId": { + "description": "Document Identifier.", + "id": "GoogleCloudDocumentaiV1beta3DocumentId", + "properties": { + "gcsManagedDocId": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentIdGCSManagedDocumentId", + "description": "A document id within user-managed Cloud Storage." + }, + "revisionRef": { + "$ref": "GoogleCloudDocumentaiV1beta3RevisionRef", + "description": "Points to a specific revision of the document if set." + }, + "unmanagedDocId": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentIdUnmanagedDocumentId", + "description": "A document id within unmanaged dataset." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentIdGCSManagedDocumentId": { + "description": "Identifies a document uniquely within the scope of a dataset in the user-managed Cloud Storage option.", + "id": "GoogleCloudDocumentaiV1beta3DocumentIdGCSManagedDocumentId", + "properties": { + "cwDocId": { + "deprecated": true, + "description": "Id of the document (indexed) managed by Content Warehouse.", + "type": "string" + }, + "gcsUri": { + "description": "Required. The Cloud Storage URI where the actual document is stored.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentIdUnmanagedDocumentId": { + "description": "Identifies a document uniquely within the scope of a dataset in unmanaged option.", + "id": "GoogleCloudDocumentaiV1beta3DocumentIdUnmanagedDocumentId", + "properties": { + "docId": { + "description": "Required. The id of the document.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3EnableProcessorMetadata": { - "description": "The long running operation metadata for enable processor method.", + "description": "The long-running operation metadata for the EnableProcessor method.", "id": "GoogleCloudDocumentaiV1beta3EnableProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3EnableProcessorResponse": { - "description": "Response message for the enable processor method. Intentionally empty proto for adding fields in future.", + "description": "Response message for the EnableProcessor method. Intentionally empty proto for adding fields in future.", "id": "GoogleCloudDocumentaiV1beta3EnableProcessorResponse", "properties": {}, "type": "object" @@ -4338,13 +4925,13 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionResponse": { - "description": "Metadata of the EvaluateProcessorVersion method.", + "description": "Response of the EvaluateProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionResponse", "properties": { "evaluation": { @@ -4354,12 +4941,23 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3GcsPrefix": { + "description": "Specifies all documents on Cloud Storage with a common prefix.", + "id": "GoogleCloudDocumentaiV1beta3GcsPrefix", + "properties": { + "gcsUriPrefix": { + "description": "The URI prefix.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3HumanReviewStatus": { "description": "The status of human review on a processed document.", "id": "GoogleCloudDocumentaiV1beta3HumanReviewStatus", "properties": { "humanReviewOperation": { - "description": "The name of the operation triggered by the processed document. This field is populated only when the [state] is [HUMAN_REVIEW_IN_PROGRESS]. It has the same response type and metadata as the long running operation returned by [ReviewDocument] method.", + "description": "The name of the operation triggered by the processed document. This field is populated only when the state is `HUMAN_REVIEW_IN_PROGRESS`. It has the same response type and metadata as the long-running operation returned by ReviewDocument.", "type": "string" }, "state": { @@ -4373,10 +4971,10 @@ ], "enumDescriptions": [ "Human review state is unspecified. Most likely due to an internal error.", - "Human review is skipped for the document. This can happen because human review is not enabled on the processor or the processing request has been set to skip this document.", + "Human review is skipped for the document. This can happen because human review isn't enabled on the processor or the processing request has been set to skip this document.", "Human review validation is triggered and passed, so no review is needed.", "Human review validation is triggered and the document is under review.", - "Some error happened during triggering human review, see the [state_message] for details." + "Some error happened during triggering human review, see the state_message for details." ], "type": "string" }, @@ -4387,13 +4985,105 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadata": { + "description": "Metadata of the import document operation.", + "id": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + }, + "importConfigValidationResults": { + "description": "Validation statuses of the batch documents import config.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataImportConfigValidationResult" + }, + "type": "array" + }, + "individualImportStatuses": { + "description": "The list of response details of each document.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataIndividualImportStatus" + }, + "type": "array" + }, + "totalDocumentCount": { + "description": "Total number of the documents that are qualified for importing.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataImportConfigValidationResult": { + "description": "The validation status of each import config. Status is set to an error if there are no documents to import in the `import_config`, or `OK` if the operation will try to proceed with at least one document.", + "id": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataImportConfigValidationResult", + "properties": { + "inputGcsSource": { + "description": "The source Cloud Storage URI specified in the import config.", + "type": "string" + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The validation status of import config." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataIndividualImportStatus": { + "description": "The status of each individual document in the import process.", + "id": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataIndividualImportStatus", + "properties": { + "inputGcsSource": { + "description": "The source Cloud Storage URI of the document.", + "type": "string" + }, + "outputDocumentId": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentId", + "description": "The document id of imported document if it was successful, otherwise empty." + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The status of the importing of the document." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportDocumentsResponse": { + "description": "Response of the import document operation.", + "id": "GoogleCloudDocumentaiV1beta3ImportDocumentsResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportProcessorVersionMetadata": { + "description": "The long-running operation metadata for the ImportProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1beta3ImportProcessorVersionMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", + "description": "The basic metadata for the long-running operation." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportProcessorVersionResponse": { + "description": "The response message for the ImportProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1beta3ImportProcessorVersionResponse", + "properties": { + "processorVersion": { + "description": "The destination processor version name.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3ReviewDocumentOperationMetadata": { - "description": "The long running operation metadata for review document method.", + "description": "The long-running operation metadata for the ReviewDocument method.", "id": "GoogleCloudDocumentaiV1beta3ReviewDocumentOperationMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "createTime": { "description": "The creation time of the operation.", @@ -4437,7 +5127,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3ReviewDocumentResponse": { - "description": "Response message for review document method.", + "description": "Response message for the ReviewDocument method.", "id": "GoogleCloudDocumentaiV1beta3ReviewDocumentResponse", "properties": { "gcsDestination": { @@ -4465,19 +5155,50 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3RevisionRef": { + "description": "The revision reference specifies which revision on the document to read.", + "id": "GoogleCloudDocumentaiV1beta3RevisionRef", + "properties": { + "latestProcessorVersion": { + "description": "Reads the revision generated by the processor version. The format takes the full resource name of processor version. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", + "type": "string" + }, + "revisionCase": { + "description": "Reads the revision by the predefined case.", + "enum": [ + "REVISION_CASE_UNSPECIFIED", + "LATEST_HUMAN_REVIEW", + "LATEST_TIMESTAMP", + "BASE_OCR_REVISION" + ], + "enumDescriptions": [ + "Unspecified case, fall back to read the `LATEST_HUMAN_REVIEW`.", + "The latest revision made by a human.", + "The latest revision based on timestamp.", + "The first (OCR) revision." + ], + "type": "string" + }, + "revisionId": { + "description": "Reads the revision given by the id.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionMetadata": { - "description": "The long running operation metadata for set default processor version method.", + "description": "The long-running operation metadata for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionResponse": { - "description": "Response message for set default processor version method.", + "description": "Response message for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionResponse", "properties": {}, "type": "object" @@ -4488,7 +5209,7 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "testDatasetValidation": { "$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation", @@ -4533,7 +5254,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3TrainProcessorVersionResponse": { - "description": "The response for the TrainProcessorVersion method.", + "description": "The response for TrainProcessorVersion.", "id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionResponse", "properties": { "processorVersion": { @@ -4544,22 +5265,32 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionMetadata": { - "description": "The long running operation metadata for the undeploy processor version method.", + "description": "The long-running operation metadata for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionResponse": { - "description": "Response message for the undeploy processor version method.", + "description": "Response message for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionResponse", "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiV1beta3UpdateDatasetOperationMetadata": { + "id": "GoogleCloudDocumentaiV1beta3UpdateDatasetOperationMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + } + }, + "type": "object" + }, "GoogleLongrunningOperation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "GoogleLongrunningOperation", @@ -4589,7 +5320,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" } }, @@ -4629,7 +5360,7 @@ "type": "object" }, "GoogleTypeColor": { - "description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/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 carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). 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(''); }; // ...", + "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\u2014for 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": { diff --git a/etc/api/documentai/v1beta3/documentai-api.json b/etc/api/documentai/v1beta3/documentai-api.json index cca137d682..b20bd92e8c 100644 --- a/etc/api/documentai/v1beta3/documentai-api.json +++ b/etc/api/documentai/v1beta3/documentai-api.json @@ -110,7 +110,7 @@ "locations": { "methods": { "fetchProcessorTypes": { - "description": "Fetches processor types. Note that we do not use ListProcessorTypes here because it is not paginated.", + "description": "Fetches processor types. Note that we don't use ListProcessorTypes here, because it isn't paginated.", "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}:fetchProcessorTypes", "httpMethod": "GET", "id": "documentai.projects.locations.fetchProcessorTypes", @@ -119,7 +119,7 @@ ], "parameters": { "parent": { - "description": "Required. The project of processor type to list. The available processor types may depend on the allow-listing on projects. Format: `projects/{project}/locations/{location}`", + "description": "Required. The location of processor types to list. Format: `projects/{project}/locations/{location}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -255,7 +255,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "documentai.projects.locations.operations.list", @@ -334,7 +334,7 @@ ], "parameters": { "pageSize": { - "description": "The maximum number of processor types to return. If unspecified, at most 100 processor types will be returned. The maximum value is 500; values above 500 will be coerced to 500.", + "description": "The maximum number of processor types to return. If unspecified, at most `100` processor types will be returned. The maximum value is `500`. Values above `500` will be coerced to `500`.", "format": "int32", "location": "query", "type": "integer" @@ -345,7 +345,7 @@ "type": "string" }, "parent": { - "description": "Required. The location of processor type to list. The available processor types may depend on the allow-listing on projects. Format: `projects/{project}/locations/{location}`", + "description": "Required. The location of processor types to list. Format: `projects/{project}/locations/{location}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -393,7 +393,7 @@ ] }, "create": { - "description": "Creates a processor from the type processor that the user chose. The processor will be at \"ENABLED\" state by default after its creation.", + "description": "Creates a processor from the ProcessorType provided. The processor will be at `ENABLED` state by default after its creation.", "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors", "httpMethod": "POST", "id": "documentai.projects.locations.processors.create", @@ -536,7 +536,7 @@ ], "parameters": { "pageSize": { - "description": "The maximum number of processors to return. If unspecified, at most 50 processors will be returned. The maximum value is 100; values above 100 will be coerced to 100.", + "description": "The maximum number of processors to return. If unspecified, at most `50` processors will be returned. The maximum value is `100`. Values above `100` will be coerced to `100`.", "format": "int32", "location": "query", "type": "integer" @@ -617,9 +617,281 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "updateDataset": { + "description": "Updates metadata associated with a dataset.", + "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/dataset", + "httpMethod": "PATCH", + "id": "documentai.projects.locations.processors.updateDataset", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Dataset resource name. Format: `projects/{project}/locations/{location}/processors/{processor}/dataset`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/dataset$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The update mask applies to the resource.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta3/{+name}", + "request": { + "$ref": "GoogleCloudDocumentaiV1beta3Dataset" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { + "dataset": { + "methods": { + "batchDeleteDocuments": { + "description": "Deletes a set of documents.", + "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/dataset:batchDeleteDocuments", + "httpMethod": "POST", + "id": "documentai.projects.locations.processors.dataset.batchDeleteDocuments", + "parameterOrder": [ + "dataset" + ], + "parameters": { + "dataset": { + "description": "Required. The dataset resource name. Format: projects/{project}/locations/{location}/processors/{processor}/dataset", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/dataset$", + "required": true, + "type": "string" + } + }, + "path": "v1beta3/{+dataset}:batchDeleteDocuments", + "request": { + "$ref": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getDatasetSchema": { + "description": "Gets the `DatasetSchema` of a `Dataset`.", + "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/dataset/datasetSchema", + "httpMethod": "GET", + "id": "documentai.projects.locations.processors.dataset.getDatasetSchema", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The dataset schema resource name. Format: projects/{project}/locations/{location}/processors/{processor}/dataset/datasetSchema", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/dataset/datasetSchema$", + "required": true, + "type": "string" + }, + "visibleFieldsOnly": { + "description": "If set, only returns the visible fields of the schema.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1beta3/{+name}", + "response": { + "$ref": "GoogleCloudDocumentaiV1beta3DatasetSchema" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getDocument": { + "description": "Returns relevant fields present in the requested document.", + "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/dataset:getDocument", + "httpMethod": "GET", + "id": "documentai.projects.locations.processors.dataset.getDocument", + "parameterOrder": [ + "dataset" + ], + "parameters": { + "dataset": { + "description": "Required. The resource name of the dataset that the document belongs to . Format: projects/{project}/locations/{location}/processors/{processor}/dataset", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/dataset$", + "required": true, + "type": "string" + }, + "documentId.gcsManagedDocId.cwDocId": { + "deprecated": true, + "description": "Id of the document (indexed) managed by Content Warehouse.", + "location": "query", + "type": "string" + }, + "documentId.gcsManagedDocId.gcsUri": { + "description": "Required. The Cloud Storage URI where the actual document is stored.", + "location": "query", + "type": "string" + }, + "documentId.revisionRef.latestProcessorVersion": { + "description": "Reads the revision generated by the processor version. The format takes the full resource name of processor version. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", + "location": "query", + "type": "string" + }, + "documentId.revisionRef.revisionCase": { + "description": "Reads the revision by the predefined case.", + "enum": [ + "REVISION_CASE_UNSPECIFIED", + "LATEST_HUMAN_REVIEW", + "LATEST_TIMESTAMP", + "BASE_OCR_REVISION" + ], + "enumDescriptions": [ + "Unspecified case, fall back to read the `LATEST_HUMAN_REVIEW`.", + "The latest revision made by a human.", + "The latest revision based on timestamp.", + "The first (OCR) revision." + ], + "location": "query", + "type": "string" + }, + "documentId.revisionRef.revisionId": { + "description": "Reads the revision given by the id.", + "location": "query", + "type": "string" + }, + "documentId.unmanagedDocId.docId": { + "description": "Required. The id of the document.", + "location": "query", + "type": "string" + }, + "pageRange.end": { + "description": "Last page number (one-based index) to be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageRange.start": { + "description": "First page number (one-based index) to be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "readMask": { + "description": "If set, only fields listed here will be returned. Otherwise, all fields will be returned by default.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta3/{+dataset}:getDocument", + "response": { + "$ref": "GoogleCloudDocumentaiV1beta3GetDocumentResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "importDocuments": { + "description": "Import documents into a dataset.", + "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/dataset:importDocuments", + "httpMethod": "POST", + "id": "documentai.projects.locations.processors.dataset.importDocuments", + "parameterOrder": [ + "dataset" + ], + "parameters": { + "dataset": { + "description": "Required. The dataset resource name. Format: projects/{project}/locations/{location}/processors/{processor}/dataset", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/dataset$", + "required": true, + "type": "string" + } + }, + "path": "v1beta3/{+dataset}:importDocuments", + "request": { + "$ref": "GoogleCloudDocumentaiV1beta3ImportDocumentsRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "listDocuments": { + "description": "Returns a list of documents present in the dataset.", + "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/dataset:listDocuments", + "httpMethod": "POST", + "id": "documentai.projects.locations.processors.dataset.listDocuments", + "parameterOrder": [ + "dataset" + ], + "parameters": { + "dataset": { + "description": "Required. The resource name of the dataset to be listed. Format: projects/{project}/locations/{location}/processors/{processor}/dataset", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/dataset$", + "required": true, + "type": "string" + } + }, + "path": "v1beta3/{+dataset}:listDocuments", + "request": { + "$ref": "GoogleCloudDocumentaiV1beta3ListDocumentsRequest" + }, + "response": { + "$ref": "GoogleCloudDocumentaiV1beta3ListDocumentsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "updateDatasetSchema": { + "description": "Updates a `DatasetSchema`.", + "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/dataset/datasetSchema", + "httpMethod": "PATCH", + "id": "documentai.projects.locations.processors.dataset.updateDatasetSchema", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Dataset schema resource name. Format: `projects/{project}/locations/{location}/processors/{processor}/dataset/datasetSchema`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/dataset/datasetSchema$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The update mask applies to the resource.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta3/{+name}", + "request": { + "$ref": "GoogleCloudDocumentaiV1beta3DatasetSchema" + }, + "response": { + "$ref": "GoogleCloudDocumentaiV1beta3DatasetSchema" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "humanReviewConfig": { "methods": { "reviewDocument": { @@ -788,6 +1060,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "importProcessorVersion": { + "description": "Imports a processor version from source processor version.", + "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions:importProcessorVersion", + "httpMethod": "POST", + "id": "documentai.projects.locations.processors.processorVersions.importProcessorVersion", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The destination processor name to create the processor version in. Format: `projects/{project}/locations/{location}/processors/{processor}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta3/{+parent}/processorVersions:importProcessorVersion", + "request": { + "$ref": "GoogleCloudDocumentaiV1beta3ImportProcessorVersionRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists all versions of a processor.", "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions", @@ -798,7 +1098,7 @@ ], "parameters": { "pageSize": { - "description": "The maximum number of processor versions to return. If unspecified, at most 10 processor versions will be returned. The maximum value is 20; values above 20 will be coerced to 20.", + "description": "The maximum number of processor versions to return. If unspecified, at most `10` processor versions will be returned. The maximum value is `20`. Values above `20` will be coerced to `20`.", "format": "int32", "location": "query", "type": "integer" @@ -853,7 +1153,7 @@ ] }, "train": { - "description": "Trains a new processor version. Operation metadata is returned as cloud_documentai_core.TrainProcessorVersionMetadata.", + "description": "Trains a new processor version. Operation metadata is returned as TrainProcessorVersionMetadata.", "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions:train", "httpMethod": "POST", "id": "documentai.projects.locations.processors.processorVersions.train", @@ -947,7 +1247,7 @@ ], "parameters": { "pageSize": { - "description": "The standard list page size. If unspecified, at most 5 evaluations will be returned. The maximum value is 100; values above 100 will be coerced to 100.", + "description": "The standard list page size. If unspecified, at most `5` evaluations are returned. The maximum value is `100`. Values above `100` are coerced to `100`.", "format": "int32", "location": "query", "type": "integer" @@ -984,15 +1284,59 @@ } } }, - "revision": "20230117", + "revision": "20240223", "rootUrl": "https://documentai.googleapis.com/", "schemas": { + "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadata": { + "description": "Metadata of the auto-labeling documents operation.", + "id": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + }, + "individualAutoLabelStatuses": { + "description": "The list of individual auto-labeling statuses of the dataset documents.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadataIndividualAutoLabelStatus" + }, + "type": "array" + }, + "totalDocumentCount": { + "description": "Total number of the auto-labeling documents.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadataIndividualAutoLabelStatus": { + "description": "The status of individual documents in the auto-labeling process.", + "id": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadataIndividualAutoLabelStatus", + "properties": { + "documentId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", + "description": "The document id of the auto-labeled document. This will replace the gcs_uri." + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The status of the document auto-labeling." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsResponse": { + "description": "The response proto of AutoLabelDocuments method.", + "id": "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadata": { "id": "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "errorDocumentCount": { "description": "Total number of documents that failed to be deleted in storage.", @@ -1040,9 +1384,10 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "destDatasetType": { + "deprecated": true, "description": "The destination dataset split type.", "enum": [ "DATASET_SPLIT_TYPE_UNSPECIFIED", @@ -1051,7 +1396,7 @@ "DATASET_SPLIT_UNASSIGNED" ], "enumDescriptions": [ - "Default value if the enum is not set. go/protodosdonts#do-include-an-unspecified-value-in-an-enum", + "Default value if the enum is not set.", "Identifies the train documents.", "Identifies the test documents.", "Identifies the unassigned documents." @@ -1067,7 +1412,7 @@ "DATASET_SPLIT_UNASSIGNED" ], "enumDescriptions": [ - "Default value if the enum is not set. go/protodosdonts#do-include-an-unspecified-value-in-an-enum", + "Default value if the enum is not set.", "Identifies the train documents.", "Identifies the test documents.", "Identifies the unassigned documents." @@ -1105,6 +1450,44 @@ "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadata": { + "id": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + }, + "individualBatchUpdateStatuses": { + "description": "The list of response details of each document.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadataIndividualBatchUpdateStatus" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadataIndividualBatchUpdateStatus": { + "description": "The status of each individual document in the batch update process.", + "id": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsMetadataIndividualBatchUpdateStatus", + "properties": { + "documentId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", + "description": "The document id of the document." + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The status of updating the document in storage." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsResponse": { + "description": "Response of the batch update documents operation.", + "id": "GoogleCloudDocumentaiUiv1beta3BatchUpdateDocumentsResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata": { "description": "The common metadata for long running operations.", "id": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", @@ -1151,90 +1534,79 @@ "type": "object" }, "GoogleCloudDocumentaiUiv1beta3CreateLabelerPoolOperationMetadata": { - "description": "The long running operation metadata for CreateLabelerPool.", + "description": "The long-running operation metadata for the CreateLabelerPool method.", "id": "GoogleCloudDocumentaiUiv1beta3CreateLabelerPoolOperationMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." - } - }, - "type": "object" - }, - "GoogleCloudDocumentaiUiv1beta3DeleteDataLabelingJobOperationMetadata": { - "description": "The long running operation metadata for DeleteDataLabelingJob.", - "id": "GoogleCloudDocumentaiUiv1beta3DeleteDataLabelingJobOperationMetadata", - "properties": { - "commonMetadata": { - "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DeleteLabelerPoolOperationMetadata": { - "description": "The long running operation metadata for DeleteLabelerPool.", + "description": "The long-running operation metadata for DeleteLabelerPool.", "id": "GoogleCloudDocumentaiUiv1beta3DeleteLabelerPoolOperationMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DeleteProcessorMetadata": { - "description": "The long running operation metadata for delete processor method.", + "description": "The long-running operation metadata for the DeleteProcessor method.", "id": "GoogleCloudDocumentaiUiv1beta3DeleteProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DeleteProcessorVersionMetadata": { - "description": "The long running operation metadata for delete processor version method.", + "description": "The long-running operation metadata for the DeleteProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3DeleteProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionMetadata": { - "description": "The long running operation metadata for deploy processor version method.", + "description": "The long-running operation metadata for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionResponse": { - "description": "Response message for the deploy processor version method.", + "description": "Response message for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionResponse", "properties": {}, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DisableProcessorMetadata": { - "description": "The long running operation metadata for disable processor method.", + "description": "The long-running operation metadata for the DisableProcessor method.", "id": "GoogleCloudDocumentaiUiv1beta3DisableProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DisableProcessorResponse": { - "description": "Response message for the disable processor method. Intentionally empty proto for adding fields in future.", + "description": "Response message for the DisableProcessor method. Intentionally empty proto for adding fields in future.", "id": "GoogleCloudDocumentaiUiv1beta3DisableProcessorResponse", "properties": {}, "type": "object" @@ -1244,47 +1616,60 @@ "id": "GoogleCloudDocumentaiUiv1beta3DocumentId", "properties": { "gcsManagedDocId": { - "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId" + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId", + "description": "A document id within user-managed Cloud Storage." }, "revisionRef": { "$ref": "GoogleCloudDocumentaiUiv1beta3RevisionRef", "description": "Points to a specific revision of the document if set." }, - "revisionReference": { - "$ref": "GoogleCloudDocumentaiUiv1beta3RevisionReference", - "description": "Points to a specific revision of the document if set." + "unmanagedDocId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentIdUnmanagedDocumentId", + "description": "A document id within unmanaged dataset." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId": { - "description": "Identifies a document uniquely within the scope of a dataset in the Cloud Storage option.", + "description": "Identifies a document uniquely within the scope of a dataset in the user-managed Cloud Storage option.", "id": "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId", "properties": { "cwDocId": { + "deprecated": true, "description": "Id of the document (indexed) managed by Content Warehouse.", "type": "string" }, "gcsUri": { - "description": "Required. The Cloud Storage uri where the actual document is stored.", + "description": "Required. The Cloud Storage URI where the actual document is stored.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3DocumentIdUnmanagedDocumentId": { + "description": "Identifies a document uniquely within the scope of a dataset in unmanaged option.", + "id": "GoogleCloudDocumentaiUiv1beta3DocumentIdUnmanagedDocumentId", + "properties": { + "docId": { + "description": "Required. The id of the document.", "type": "string" } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3EnableProcessorMetadata": { - "description": "The long running operation metadata for enable processor method.", + "description": "The long-running operation metadata for the EnableProcessor method.", "id": "GoogleCloudDocumentaiUiv1beta3EnableProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3EnableProcessorResponse": { - "description": "Response message for the enable processor method. Intentionally empty proto for adding fields in future.", + "description": "Response message for the EnableProcessor method. Intentionally empty proto for adding fields in future.", "id": "GoogleCloudDocumentaiUiv1beta3EnableProcessorResponse", "properties": {}, "type": "object" @@ -1295,13 +1680,13 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3EvaluateProcessorVersionResponse": { - "description": "Metadata of the EvaluateProcessorVersion method.", + "description": "Response of the EvaluateProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3EvaluateProcessorVersionResponse", "properties": { "evaluation": { @@ -1317,7 +1702,7 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "individualExportStatuses": { "description": "The list of response details of each document.", @@ -1368,7 +1753,7 @@ "DATASET_SPLIT_UNASSIGNED" ], "enumDescriptions": [ - "Default value if the enum is not set. go/protodosdonts#do-include-an-unspecified-value-in-an-enum", + "Default value if the enum is not set.", "Identifies the train documents.", "Identifies the test documents.", "Identifies the unassigned documents." @@ -1417,7 +1802,7 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "importConfigValidationResults": { "description": "Validation statuses of the batch documents import config.", @@ -1442,7 +1827,7 @@ "type": "object" }, "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataImportConfigValidationResult": { - "description": "The validation status of each import config. Status is set to errors if there is no documents to import in the import_config, or OK if the operation will try to proceed at least one document.", + "description": "The validation status of each import config. Status is set to an error if there are no documents to import in the `import_config`, or `OK` if the operation will try to proceed with at least one document.", "id": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataImportConfigValidationResult", "properties": { "inputGcsSource": { @@ -1464,6 +1849,10 @@ "description": "The source Cloud Storage URI of the document.", "type": "string" }, + "outputDocumentId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", + "description": "The document id of imported document if it was successful, otherwise empty." + }, "outputGcsDestination": { "description": "The output_gcs_destination of the processed document if it was successful, otherwise empty.", "type": "string" @@ -1481,16 +1870,38 @@ "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionMetadata": { + "description": "The long-running operation metadata for the ImportProcessorVersion method.", + "id": "GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", + "description": "The basic metadata for the long-running operation." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionResponse": { + "description": "The response message for the ImportProcessorVersion method.", + "id": "GoogleCloudDocumentaiUiv1beta3ImportProcessorVersionResponse", + "properties": { + "processorVersion": { + "description": "The destination processor version name.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadata": { - "description": "The metadata proto of ResyncDataset method.", + "description": "The metadata proto of `ResyncDataset` method.", "id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "datasetResyncStatuses": { - "description": "The list of dataset resync statuses. Not checked when `dataset_documents` is specified in ResyncRequest.", + "description": "The list of dataset resync statuses. Not checked when ResyncDatasetRequest.dataset_documents is specified.", "items": { "$ref": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataDatasetResyncStatus" }, @@ -1524,7 +1935,7 @@ }, "status": { "$ref": "GoogleRpcStatus", - "description": "The status of resyncing the dataset with regards to the detected inconsistency. Empty if `validate_only` is true in the request." + "description": "The status of resyncing the dataset with regards to the detected inconsistency. Empty if ResyncDatasetRequest.validate_only is `true`." } }, "type": "object" @@ -1555,7 +1966,7 @@ }, "status": { "$ref": "GoogleRpcStatus", - "description": "The status of resyncing the document with regards to the detected inconsistency. Empty if `validate_only` is true in the request." + "description": "The status of resyncing the document with regards to the detected inconsistency. Empty if ResyncDatasetRequest.validate_only is `true`." } }, "type": "object" @@ -1583,7 +1994,7 @@ "BASE_OCR_REVISION" ], "enumDescriptions": [ - "Unspecified case, fallback to read the first (OCR) revision.", + "Unspecified case, fall back to read the `LATEST_HUMAN_REVIEW`.", "The latest revision made by a human.", "The latest revision based on timestamp.", "The first (OCR) revision." @@ -1597,48 +2008,62 @@ }, "type": "object" }, - "GoogleCloudDocumentaiUiv1beta3RevisionReference": { - "description": "The revision reference specifies which revision on the document to read.", - "id": "GoogleCloudDocumentaiUiv1beta3RevisionReference", + "GoogleCloudDocumentaiUiv1beta3SampleDocumentsMetadata": { + "description": "Metadata of the sample documents operation.", + "id": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsMetadata", "properties": { - "latestProcessorVersion": { - "description": "Reads the revision generated by the processor version.", - "type": "string" + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponse": { + "description": "Response of the sample documents operation.", + "id": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponse", + "properties": { + "sampleTestStatus": { + "$ref": "GoogleRpcStatus", + "description": "The status of sampling documents in test split." }, - "revisionCase": { - "description": "Reads the revision by the predefined case.", - "enum": [ - "REVISION_CASE_UNSPECIFIED", - "LATEST_HUMAN_REVIEW", - "LATEST_TIMESTAMP" - ], - "enumDescriptions": [ - "Unspecified case, fallback to read the first (OCR) revision.", - "The latest revision made by a human.", - "The latest revision based on timestamp." - ], - "type": "string" + "sampleTrainingStatus": { + "$ref": "GoogleRpcStatus", + "description": "The status of sampling documents in training split." }, - "revisionId": { - "description": "Reads the revision given by the id.", + "selectedDocuments": { + "description": "The result of the sampling process.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponseSelectedDocument" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponseSelectedDocument": { + "id": "GoogleCloudDocumentaiUiv1beta3SampleDocumentsResponseSelectedDocument", + "properties": { + "documentId": { + "description": "An internal identifier for document.", "type": "string" } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionMetadata": { - "description": "The long running operation metadata for set default processor version method.", + "description": "The long-running operation metadata for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionResponse": { - "description": "Response message for set default processor version method.", + "description": "Response message for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3SetDefaultProcessorVersionResponse", "properties": {}, "type": "object" @@ -1649,7 +2074,7 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "testDatasetValidation": { "$ref": "GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadataDatasetValidation", @@ -1694,7 +2119,7 @@ "type": "object" }, "GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionResponse": { - "description": "The response for the TrainProcessorVersion method.", + "description": "The response for TrainProcessorVersion.", "id": "GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionResponse", "properties": { "processorVersion": { @@ -1705,18 +2130,18 @@ "type": "object" }, "GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionMetadata": { - "description": "The long running operation metadata for the undeploy processor version method.", + "description": "The long-running operation metadata for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionResponse": { - "description": "Response message for the undeploy processor version method.", + "description": "Response message for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionResponse", "properties": {}, "type": "object" @@ -1726,35 +2151,35 @@ "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3UpdateHumanReviewConfigMetadata": { - "description": "The long running operation metadata for updating the human review configuration.", + "description": "The long-running operation metadata for updating the human review configuration.", "id": "GoogleCloudDocumentaiUiv1beta3UpdateHumanReviewConfigMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiUiv1beta3UpdateLabelerPoolOperationMetadata": { - "description": "The long running operation metadata for UpdateLabelerPool.", + "description": "The long-running operation metadata for UpdateLabelerPool.", "id": "GoogleCloudDocumentaiUiv1beta3UpdateLabelerPoolOperationMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1BatchProcessMetadata": { - "description": "The long running operation metadata for batch process method.", + "description": "The long-running operation metadata for BatchProcessDocuments.", "id": "GoogleCloudDocumentaiV1BatchProcessMetadata", "properties": { "createTime": { @@ -1812,11 +2237,11 @@ "description": "The status of human review on the processed document." }, "inputGcsSource": { - "description": "The source of the document, same as the [input_gcs_source] field in the request when the batch process started. The batch process is started by take snapshot of that document, since a user can move or change that document during the process.", + "description": "The source of the document, same as the input_gcs_source field in the request when the batch process started.", "type": "string" }, "outputGcsDestination": { - "description": "The output_gcs_destination (in the request as `output_gcs_destination`) of the processed document if it was successful, otherwise empty.", + "description": "The Cloud Storage output destination (in the request as DocumentOutputConfig.GcsOutputConfig.gcs_uri) of the processed document if it was successful, otherwise empty.", "type": "string" }, "status": { @@ -1827,7 +2252,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1BatchProcessResponse": { - "description": "Response message for batch process document method.", + "description": "Response message for BatchProcessDocuments.", "id": "GoogleCloudDocumentaiV1BatchProcessResponse", "properties": {}, "type": "object" @@ -1878,84 +2303,106 @@ "type": "object" }, "GoogleCloudDocumentaiV1DeleteProcessorMetadata": { - "description": "The long running operation metadata for delete processor method.", + "description": "The long-running operation metadata for the DeleteProcessor method.", "id": "GoogleCloudDocumentaiV1DeleteProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1DeleteProcessorVersionMetadata": { - "description": "The long running operation metadata for delete processor version method.", + "description": "The long-running operation metadata for the DeleteProcessorVersion method.", "id": "GoogleCloudDocumentaiV1DeleteProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1DeployProcessorVersionMetadata": { - "description": "The long running operation metadata for deploy processor version method.", + "description": "The long-running operation metadata for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1DeployProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1DeployProcessorVersionResponse": { - "description": "Response message for the deploy processor version method.", + "description": "Response message for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1DeployProcessorVersionResponse", "properties": {}, "type": "object" }, "GoogleCloudDocumentaiV1DisableProcessorMetadata": { - "description": "The long running operation metadata for disable processor method.", + "description": "The long-running operation metadata for the DisableProcessor method.", "id": "GoogleCloudDocumentaiV1DisableProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1DisableProcessorResponse": { - "description": "Response message for the disable processor method. Intentionally empty proto for adding fields in future.", + "description": "Response message for the DisableProcessor method. Intentionally empty proto for adding fields in future.", "id": "GoogleCloudDocumentaiV1DisableProcessorResponse", "properties": {}, "type": "object" }, "GoogleCloudDocumentaiV1EnableProcessorMetadata": { - "description": "The long running operation metadata for enable processor method.", + "description": "The long-running operation metadata for the EnableProcessor method.", "id": "GoogleCloudDocumentaiV1EnableProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1EnableProcessorResponse": { - "description": "Response message for the enable processor method. Intentionally empty proto for adding fields in future.", + "description": "Response message for the EnableProcessor method. Intentionally empty proto for adding fields in future.", "id": "GoogleCloudDocumentaiV1EnableProcessorResponse", "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiV1EvaluateProcessorVersionMetadata": { + "description": "Metadata of the EvaluateProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1EvaluateProcessorVersionMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1EvaluateProcessorVersionResponse": { + "description": "Response of the EvaluateProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1EvaluateProcessorVersionResponse", + "properties": { + "evaluation": { + "description": "The resource name of the created evaluation.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1HumanReviewStatus": { "description": "The status of human review on a processed document.", "id": "GoogleCloudDocumentaiV1HumanReviewStatus", "properties": { "humanReviewOperation": { - "description": "The name of the operation triggered by the processed document. This field is populated only when the [state] is [HUMAN_REVIEW_IN_PROGRESS]. It has the same response type and metadata as the long running operation returned by [ReviewDocument] method.", + "description": "The name of the operation triggered by the processed document. This field is populated only when the state is `HUMAN_REVIEW_IN_PROGRESS`. It has the same response type and metadata as the long-running operation returned by ReviewDocument.", "type": "string" }, "state": { @@ -1969,10 +2416,10 @@ ], "enumDescriptions": [ "Human review state is unspecified. Most likely due to an internal error.", - "Human review is skipped for the document. This can happen because human review is not enabled on the processor or the processing request has been set to skip this document.", + "Human review is skipped for the document. This can happen because human review isn't enabled on the processor or the processing request has been set to skip this document.", "Human review validation is triggered and passed, so no review is needed.", "Human review validation is triggered and the document is under review.", - "Some error happened during triggering human review, see the [state_message] for details." + "Some error happened during triggering human review, see the state_message for details." ], "type": "string" }, @@ -1984,12 +2431,12 @@ "type": "object" }, "GoogleCloudDocumentaiV1ReviewDocumentOperationMetadata": { - "description": "The long running operation metadata for review document method.", + "description": "The long-running operation metadata for the ReviewDocument method.", "id": "GoogleCloudDocumentaiV1ReviewDocumentOperationMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "questionId": { "description": "The Crowd Compute question ID.", @@ -1999,7 +2446,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1ReviewDocumentResponse": { - "description": "Response message for review document method.", + "description": "Response message for the ReviewDocument method.", "id": "GoogleCloudDocumentaiV1ReviewDocumentResponse", "properties": { "gcsDestination": { @@ -2028,35 +2475,96 @@ "type": "object" }, "GoogleCloudDocumentaiV1SetDefaultProcessorVersionMetadata": { - "description": "The long running operation metadata for set default processor version method.", + "description": "The long-running operation metadata for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiV1SetDefaultProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1SetDefaultProcessorVersionResponse": { - "description": "Response message for set default processor version method.", + "description": "Response message for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiV1SetDefaultProcessorVersionResponse", "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiV1TrainProcessorVersionMetadata": { + "description": "The metadata that represents a processor version being created.", + "id": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + }, + "testDatasetValidation": { + "$ref": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation", + "description": "The test dataset validation information." + }, + "trainingDatasetValidation": { + "$ref": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation", + "description": "The training dataset validation information." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation": { + "description": "The dataset validation information. This includes any and all errors with documents and the dataset.", + "id": "GoogleCloudDocumentaiV1TrainProcessorVersionMetadataDatasetValidation", + "properties": { + "datasetErrorCount": { + "description": "The total number of dataset errors.", + "format": "int32", + "type": "integer" + }, + "datasetErrors": { + "description": "Error information for the dataset as a whole. A maximum of 10 dataset errors will be returned. A single dataset error is terminal for training.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + }, + "documentErrorCount": { + "description": "The total number of document errors.", + "format": "int32", + "type": "integer" + }, + "documentErrors": { + "description": "Error information pertaining to specific documents. A maximum of 10 document errors will be returned. Any document with errors will not be used throughout training.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1TrainProcessorVersionResponse": { + "description": "The response for TrainProcessorVersion.", + "id": "GoogleCloudDocumentaiV1TrainProcessorVersionResponse", + "properties": { + "processorVersion": { + "description": "The resource name of the processor version produced by training.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1UndeployProcessorVersionMetadata": { - "description": "The long running operation metadata for the undeploy processor version method.", + "description": "The long-running operation metadata for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1UndeployProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1UndeployProcessorVersionResponse": { - "description": "Response message for the undeploy processor version method.", + "description": "Response message for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1UndeployProcessorVersionResponse", "properties": {}, "type": "object" @@ -2143,7 +2651,7 @@ "description": "Any error that occurred while processing this document." }, "mimeType": { - "description": "An IANA published MIME type (also referred to as media type). For more information, see https://www.iana.org/assignments/media-types/media-types.xhtml.", + "description": "An IANA published [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml).", "type": "string" }, "pages": { @@ -2176,6 +2684,7 @@ "type": "array" }, "textStyles": { + "deprecated": true, "description": "Styles for the Document.text.", "items": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentStyle" @@ -2183,7 +2692,7 @@ "type": "array" }, "uri": { - "description": "Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. See [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris) for more info.", + "description": "Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. For more information, refer to [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris).", "type": "string" } }, @@ -2346,7 +2855,7 @@ }, "imageQualityScores": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScores", - "description": "Image Quality Scores." + "description": "Image quality scores." }, "layout": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageLayout", @@ -2373,6 +2882,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "deprecated": true, "description": "The history of this page." }, "symbols": { @@ -2433,7 +2943,7 @@ "properties": { "boundingPoly": { "$ref": "GoogleCloudDocumentaiV1beta1BoundingPoly", - "description": "Optional. Identifies the bounding polygon of a layout element on the page." + "description": "Optional. Identifies the bounding polygon of a layout element on the page. If `layout_type` is set, the bounding polygon must be exactly the same to the layout element it's referring to." }, "confidence": { "description": "Optional. Confidence of detected page element, if applicable. Range `[0, 1]`.", @@ -2441,6 +2951,7 @@ "type": "number" }, "layoutId": { + "deprecated": true, "description": "Optional. Deprecated. Use PageRef.bounding_poly instead.", "type": "string" }, @@ -2493,6 +3004,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -2523,7 +3035,7 @@ "type": "number" }, "languageCode": { - "description": "The BCP-47 language code, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", + "description": "The [BCP-47 language code](https://www.unicode.org/reports/tr35/#Unicode_locale_identifier), such as `en-US` or `sr-Latn`.", "type": "string" } }, @@ -2610,7 +3122,7 @@ "type": "integer" }, "mimeType": { - "description": "Encoding mime type for the image.", + "description": "Encoding [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml) for the image.", "type": "string" }, "width": { @@ -2622,7 +3134,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScores": { - "description": "Image Quality Scores for the page image", + "description": "Image quality scores for the page image.", "id": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScores", "properties": { "detectedDefects": { @@ -2633,7 +3145,7 @@ "type": "array" }, "qualityScore": { - "description": "The overall quality score. Range `[0, 1]` where 1 is perfect quality.", + "description": "The overall quality score. Range `[0, 1]` where `1` is perfect quality.", "format": "float", "type": "number" } @@ -2645,7 +3157,7 @@ "id": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScoresDetectedDefect", "properties": { "confidence": { - "description": "Confidence of detected defect. Range `[0, 1]` where 1 indicates strong confidence of that the defect exists.", + "description": "Confidence of detected defect. Range `[0, 1]` where `1` indicates strong confidence that the defect exists.", "format": "float", "type": "number" }, @@ -2711,6 +3223,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -2760,6 +3273,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -2814,6 +3328,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "deprecated": true, "description": "The history of this table." } }, @@ -2882,7 +3397,12 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." + }, + "styleInfo": { + "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageTokenStyleInfo", + "description": "Text style attributes." } }, "type": "object" @@ -2910,6 +3430,77 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta1DocumentPageTokenStyleInfo": { + "description": "Font and other text style attributes.", + "id": "GoogleCloudDocumentaiV1beta1DocumentPageTokenStyleInfo", + "properties": { + "backgroundColor": { + "$ref": "GoogleTypeColor", + "description": "Color of the background." + }, + "bold": { + "description": "Whether the text is bold (equivalent to font_weight is at least `700`).", + "type": "boolean" + }, + "fontSize": { + "description": "Font size in points (`1` point is `\u00b9\u2044\u2087\u2082` inches).", + "format": "int32", + "type": "integer" + }, + "fontType": { + "description": "Name or style of the font.", + "type": "string" + }, + "fontWeight": { + "description": "TrueType weight on a scale `100` (thin) to `1000` (ultra-heavy). Normal is `400`, bold is `700`.", + "format": "int32", + "type": "integer" + }, + "handwritten": { + "description": "Whether the text is handwritten.", + "type": "boolean" + }, + "italic": { + "description": "Whether the text is italic.", + "type": "boolean" + }, + "letterSpacing": { + "description": "Letter spacing in points.", + "format": "double", + "type": "number" + }, + "pixelFontSize": { + "description": "Font size in pixels, equal to _unrounded font_size_ * _resolution_ \u00f7 `72.0`.", + "format": "double", + "type": "number" + }, + "smallcaps": { + "description": "Whether the text is in small caps.", + "type": "boolean" + }, + "strikeout": { + "description": "Whether the text is strikethrough.", + "type": "boolean" + }, + "subscript": { + "description": "Whether the text is a subscript.", + "type": "boolean" + }, + "superscript": { + "description": "Whether the text is a superscript.", + "type": "boolean" + }, + "textColor": { + "$ref": "GoogleTypeColor", + "description": "Color of the text." + }, + "underlined": { + "description": "Whether the text is underlined.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta1DocumentPageVisualElement": { "description": "Detected non-text visual elements e.g. checkbox, signature etc. on the page.", "id": "GoogleCloudDocumentaiV1beta1DocumentPageVisualElement", @@ -2937,6 +3528,7 @@ "id": "GoogleCloudDocumentaiV1beta1DocumentProvenance", "properties": { "id": { + "deprecated": true, "description": "The Id of this operation. Needs to be unique within the scope of the revision.", "format": "int32", "type": "integer" @@ -2949,6 +3541,7 @@ "type": "array" }, "revision": { + "deprecated": true, "description": "The index of the revision that produced this element.", "format": "int32", "type": "integer" @@ -2959,19 +3552,31 @@ "OPERATION_TYPE_UNSPECIFIED", "ADD", "REMOVE", + "UPDATE", "REPLACE", "EVAL_REQUESTED", "EVAL_APPROVED", "EVAL_SKIPPED" ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + true, + true, + true + ], "enumDescriptions": [ "Operation type unspecified. If no operation is specified a provenance entry is simply used to match against a `parent`.", "Add an element.", "Remove an element identified by `parent`.", - "Replace an element identified by `parent`.", - "Request human review for the element identified by `parent`.", - "Element is reviewed and approved at human review, confidence will be set to 1.0.", - "Element is skipped in the validation process." + "Updates any fields within the given provenance scope of the message. It overwrites the fields rather than replacing them. Use this when you want to update a field value of an entity without also updating all the child properties.", + "Currently unused. Replace an element identified by `parent`.", + "Deprecated. Request human review for the element identified by `parent`.", + "Deprecated. Element is reviewed and approved at human review, confidence will be set to 1.0.", + "Deprecated. Element is skipped in the validation process." ], "type": "string" } @@ -2983,6 +3588,7 @@ "id": "GoogleCloudDocumentaiV1beta1DocumentProvenanceParent", "properties": { "id": { + "deprecated": true, "description": "The id of the parent provenance.", "format": "int32", "type": "integer" @@ -3009,7 +3615,7 @@ "type": "string" }, "createTime": { - "description": "The time that the revision was created.", + "description": "The time that the revision was created, internally generated by doc proto storage at the time of create.", "format": "google-datetime", "type": "string" }, @@ -3018,10 +3624,11 @@ "description": "Human Review information of this revision." }, "id": { - "description": "Id of the revision. Unique within the context of the document.", + "description": "Id of the revision, internally generated by doc proto storage. Unique within the context of the document.", "type": "string" }, "parent": { + "deprecated": true, "description": "The revisions that this revision is based on. This can include one or more parent (when documents are merged.) This field represents the index into the `revisions` field.", "items": { "format": "int32", @@ -3101,7 +3708,7 @@ "description": "Font size." }, "fontWeight": { - "description": "Font weight. Possible values are normal, bold, bolder, and lighter. https://www.w3schools.com/cssref/pr_font_weight.asp", + "description": "[Font weight](https://www.w3schools.com/cssref/pr_font_weight.asp). Possible values are `normal`, `bold`, `bolder`, and `lighter`.", "type": "string" }, "textAnchor": { @@ -3109,11 +3716,11 @@ "description": "Text anchor indexing into the Document.text." }, "textDecoration": { - "description": "Text decoration. Follows CSS standard. https://www.w3schools.com/cssref/pr_text_text-decoration.asp", + "description": "[Text decoration](https://www.w3schools.com/cssref/pr_text_text-decoration.asp). Follows CSS standard. ", "type": "string" }, "textStyle": { - "description": "Text style. Possible values are normal, italic, and oblique. https://www.w3schools.com/cssref/pr_font_font-style.asp", + "description": "[Text style](https://www.w3schools.com/cssref/pr_font_font-style.asp). Possible values are `normal`, `italic`, and `oblique`.", "type": "string" } }, @@ -3129,7 +3736,7 @@ "type": "number" }, "unit": { - "description": "Unit for the font size. Follows CSS naming (in, px, pt, etc.).", + "description": "Unit for the font size. Follows CSS naming (such as `in`, `px`, and `pt`).", "type": "string" } }, @@ -3179,6 +3786,7 @@ "type": "string" }, "provenance": { + "deprecated": true, "description": "The history of this annotation.", "items": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance" @@ -3424,7 +4032,7 @@ "type": "array" }, "mimeType": { - "description": "An IANA published MIME type (also referred to as media type). For more information, see https://www.iana.org/assignments/media-types/media-types.xhtml.", + "description": "An IANA published [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml).", "type": "string" }, "pages": { @@ -3457,6 +4065,7 @@ "type": "array" }, "textStyles": { + "deprecated": true, "description": "Styles for the Document.text.", "items": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentStyle" @@ -3464,7 +4073,7 @@ "type": "array" }, "uri": { - "description": "Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. See [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris) for more info.", + "description": "Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. For more information, refer to [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris).", "type": "string" } }, @@ -3647,7 +4256,7 @@ }, "imageQualityScores": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScores", - "description": "Image Quality Scores." + "description": "Image quality scores." }, "layout": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageLayout", @@ -3674,6 +4283,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "deprecated": true, "description": "The history of this page." }, "symbols": { @@ -3734,7 +4344,7 @@ "properties": { "boundingPoly": { "$ref": "GoogleCloudDocumentaiV1beta2BoundingPoly", - "description": "Optional. Identifies the bounding polygon of a layout element on the page." + "description": "Optional. Identifies the bounding polygon of a layout element on the page. If `layout_type` is set, the bounding polygon must be exactly the same to the layout element it's referring to." }, "confidence": { "description": "Optional. Confidence of detected page element, if applicable. Range `[0, 1]`.", @@ -3742,6 +4352,7 @@ "type": "number" }, "layoutId": { + "deprecated": true, "description": "Optional. Deprecated. Use PageRef.bounding_poly instead.", "type": "string" }, @@ -3794,6 +4405,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -3824,7 +4436,7 @@ "type": "number" }, "languageCode": { - "description": "The BCP-47 language code, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", + "description": "The [BCP-47 language code](https://www.unicode.org/reports/tr35/#Unicode_locale_identifier), such as `en-US` or `sr-Latn`.", "type": "string" } }, @@ -3911,7 +4523,7 @@ "type": "integer" }, "mimeType": { - "description": "Encoding mime type for the image.", + "description": "Encoding [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml) for the image.", "type": "string" }, "width": { @@ -3923,7 +4535,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScores": { - "description": "Image Quality Scores for the page image", + "description": "Image quality scores for the page image.", "id": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScores", "properties": { "detectedDefects": { @@ -3934,7 +4546,7 @@ "type": "array" }, "qualityScore": { - "description": "The overall quality score. Range `[0, 1]` where 1 is perfect quality.", + "description": "The overall quality score. Range `[0, 1]` where `1` is perfect quality.", "format": "float", "type": "number" } @@ -3946,7 +4558,7 @@ "id": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScoresDetectedDefect", "properties": { "confidence": { - "description": "Confidence of detected defect. Range `[0, 1]` where 1 indicates strong confidence of that the defect exists.", + "description": "Confidence of detected defect. Range `[0, 1]` where `1` indicates strong confidence that the defect exists.", "format": "float", "type": "number" }, @@ -4012,6 +4624,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -4061,6 +4674,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -4115,6 +4729,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "deprecated": true, "description": "The history of this table." } }, @@ -4183,7 +4798,12 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." + }, + "styleInfo": { + "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageTokenStyleInfo", + "description": "Text style attributes." } }, "type": "object" @@ -4211,6 +4831,77 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta2DocumentPageTokenStyleInfo": { + "description": "Font and other text style attributes.", + "id": "GoogleCloudDocumentaiV1beta2DocumentPageTokenStyleInfo", + "properties": { + "backgroundColor": { + "$ref": "GoogleTypeColor", + "description": "Color of the background." + }, + "bold": { + "description": "Whether the text is bold (equivalent to font_weight is at least `700`).", + "type": "boolean" + }, + "fontSize": { + "description": "Font size in points (`1` point is `\u00b9\u2044\u2087\u2082` inches).", + "format": "int32", + "type": "integer" + }, + "fontType": { + "description": "Name or style of the font.", + "type": "string" + }, + "fontWeight": { + "description": "TrueType weight on a scale `100` (thin) to `1000` (ultra-heavy). Normal is `400`, bold is `700`.", + "format": "int32", + "type": "integer" + }, + "handwritten": { + "description": "Whether the text is handwritten.", + "type": "boolean" + }, + "italic": { + "description": "Whether the text is italic.", + "type": "boolean" + }, + "letterSpacing": { + "description": "Letter spacing in points.", + "format": "double", + "type": "number" + }, + "pixelFontSize": { + "description": "Font size in pixels, equal to _unrounded font_size_ * _resolution_ \u00f7 `72.0`.", + "format": "double", + "type": "number" + }, + "smallcaps": { + "description": "Whether the text is in small caps.", + "type": "boolean" + }, + "strikeout": { + "description": "Whether the text is strikethrough.", + "type": "boolean" + }, + "subscript": { + "description": "Whether the text is a subscript.", + "type": "boolean" + }, + "superscript": { + "description": "Whether the text is a superscript.", + "type": "boolean" + }, + "textColor": { + "$ref": "GoogleTypeColor", + "description": "Color of the text." + }, + "underlined": { + "description": "Whether the text is underlined.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta2DocumentPageVisualElement": { "description": "Detected non-text visual elements e.g. checkbox, signature etc. on the page.", "id": "GoogleCloudDocumentaiV1beta2DocumentPageVisualElement", @@ -4238,6 +4929,7 @@ "id": "GoogleCloudDocumentaiV1beta2DocumentProvenance", "properties": { "id": { + "deprecated": true, "description": "The Id of this operation. Needs to be unique within the scope of the revision.", "format": "int32", "type": "integer" @@ -4250,6 +4942,7 @@ "type": "array" }, "revision": { + "deprecated": true, "description": "The index of the revision that produced this element.", "format": "int32", "type": "integer" @@ -4260,19 +4953,31 @@ "OPERATION_TYPE_UNSPECIFIED", "ADD", "REMOVE", + "UPDATE", "REPLACE", "EVAL_REQUESTED", "EVAL_APPROVED", "EVAL_SKIPPED" ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + true, + true, + true + ], "enumDescriptions": [ "Operation type unspecified. If no operation is specified a provenance entry is simply used to match against a `parent`.", "Add an element.", "Remove an element identified by `parent`.", - "Replace an element identified by `parent`.", - "Request human review for the element identified by `parent`.", - "Element is reviewed and approved at human review, confidence will be set to 1.0.", - "Element is skipped in the validation process." + "Updates any fields within the given provenance scope of the message. It overwrites the fields rather than replacing them. Use this when you want to update a field value of an entity without also updating all the child properties.", + "Currently unused. Replace an element identified by `parent`.", + "Deprecated. Request human review for the element identified by `parent`.", + "Deprecated. Element is reviewed and approved at human review, confidence will be set to 1.0.", + "Deprecated. Element is skipped in the validation process." ], "type": "string" } @@ -4284,6 +4989,7 @@ "id": "GoogleCloudDocumentaiV1beta2DocumentProvenanceParent", "properties": { "id": { + "deprecated": true, "description": "The id of the parent provenance.", "format": "int32", "type": "integer" @@ -4310,7 +5016,7 @@ "type": "string" }, "createTime": { - "description": "The time that the revision was created.", + "description": "The time that the revision was created, internally generated by doc proto storage at the time of create.", "format": "google-datetime", "type": "string" }, @@ -4319,10 +5025,11 @@ "description": "Human Review information of this revision." }, "id": { - "description": "Id of the revision. Unique within the context of the document.", + "description": "Id of the revision, internally generated by doc proto storage. Unique within the context of the document.", "type": "string" }, "parent": { + "deprecated": true, "description": "The revisions that this revision is based on. This can include one or more parent (when documents are merged.) This field represents the index into the `revisions` field.", "items": { "format": "int32", @@ -4402,7 +5109,7 @@ "description": "Font size." }, "fontWeight": { - "description": "Font weight. Possible values are normal, bold, bolder, and lighter. https://www.w3schools.com/cssref/pr_font_weight.asp", + "description": "[Font weight](https://www.w3schools.com/cssref/pr_font_weight.asp). Possible values are `normal`, `bold`, `bolder`, and `lighter`.", "type": "string" }, "textAnchor": { @@ -4410,11 +5117,11 @@ "description": "Text anchor indexing into the Document.text." }, "textDecoration": { - "description": "Text decoration. Follows CSS standard. https://www.w3schools.com/cssref/pr_text_text-decoration.asp", + "description": "[Text decoration](https://www.w3schools.com/cssref/pr_text_text-decoration.asp). Follows CSS standard. ", "type": "string" }, "textStyle": { - "description": "Text style. Possible values are normal, italic, and oblique. https://www.w3schools.com/cssref/pr_font_font-style.asp", + "description": "[Text style](https://www.w3schools.com/cssref/pr_font_font-style.asp). Possible values are `normal`, `italic`, and `oblique`.", "type": "string" } }, @@ -4430,7 +5137,7 @@ "type": "number" }, "unit": { - "description": "Unit for the font size. Follows CSS naming (in, px, pt, etc.).", + "description": "Unit for the font size. Follows CSS naming (such as `in`, `px`, and `pt`).", "type": "string" } }, @@ -4480,6 +5187,7 @@ "type": "string" }, "provenance": { + "deprecated": true, "description": "The history of this annotation.", "items": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance" @@ -4660,6 +5368,93 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3BatchDatasetDocuments": { + "description": "Dataset documents that the batch operation will be applied to.", + "id": "GoogleCloudDocumentaiV1beta3BatchDatasetDocuments", + "properties": { + "filter": { + "description": "A filter matching the documents. Follows the same format and restriction as [google.cloud.documentai.master.ListDocumentsRequest.filter].", + "type": "string" + }, + "individualDocumentIds": { + "$ref": "GoogleCloudDocumentaiV1beta3BatchDatasetDocumentsIndividualDocumentIds", + "description": "Document identifiers." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3BatchDatasetDocumentsIndividualDocumentIds": { + "description": "List of individual DocumentIds.", + "id": "GoogleCloudDocumentaiV1beta3BatchDatasetDocumentsIndividualDocumentIds", + "properties": { + "documentIds": { + "description": "Required. List of Document IDs indicating where the actual documents are stored.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentId" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadata": { + "id": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + }, + "errorDocumentCount": { + "description": "Total number of documents that failed to be deleted in storage.", + "format": "int32", + "type": "integer" + }, + "individualBatchDeleteStatuses": { + "description": "The list of response details of each document.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus" + }, + "type": "array" + }, + "totalDocumentCount": { + "description": "Total number of documents deleting from dataset.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus": { + "description": "The status of each individual document in the batch delete process.", + "id": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus", + "properties": { + "documentId": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentId", + "description": "The document id of the document." + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The status of deleting the document in storage." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsRequest": { + "id": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsRequest", + "properties": { + "datasetDocuments": { + "$ref": "GoogleCloudDocumentaiV1beta3BatchDatasetDocuments", + "description": "Required. Dataset documents input. If given `filter`, all documents satisfying the filter will be deleted. If given documentIds, a maximum of 50 documents can be deleted in a batch. The request will be rejected if more than 50 document_ids are provided." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsResponse": { + "description": "Response of the delete documents operation.", + "id": "GoogleCloudDocumentaiV1beta3BatchDeleteDocumentsResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig": { "description": "The common config to specify a set of documents used as input.", "id": "GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig", @@ -4676,7 +5471,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3BatchProcessMetadata": { - "description": "The long running operation metadata for batch process method.", + "description": "The long-running operation metadata for BatchProcessDocuments.", "id": "GoogleCloudDocumentaiV1beta3BatchProcessMetadata", "properties": { "createTime": { @@ -4730,7 +5525,8 @@ "id": "GoogleCloudDocumentaiV1beta3BatchProcessMetadataIndividualProcessStatus", "properties": { "humanReviewOperation": { - "description": "The name of the operation triggered by the processed document. If the human review process is not triggered, this field will be empty. It has the same response type and metadata as the long running operation returned by ReviewDocument method.", + "deprecated": true, + "description": "The name of the operation triggered by the processed document. If the human review process isn't triggered, this field will be empty. It has the same response type and metadata as the long-running operation returned by the ReviewDocument method.", "type": "string" }, "humanReviewStatus": { @@ -4738,11 +5534,11 @@ "description": "The status of human review on the processed document." }, "inputGcsSource": { - "description": "The source of the document, same as the [input_gcs_source] field in the request when the batch process started. The batch process is started by take snapshot of that document, since a user can move or change that document during the process.", + "description": "The source of the document, same as the input_gcs_source field in the request when the batch process started.", "type": "string" }, "outputGcsDestination": { - "description": "The output_gcs_destination (in the request as `output_gcs_destination`) of the processed document if it was successful, otherwise empty.", + "description": "The Cloud Storage output destination (in the request as DocumentOutputConfig.GcsOutputConfig.gcs_uri) of the processed document if it was successful, otherwise empty.", "type": "string" }, "status": { @@ -4753,14 +5549,15 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3BatchProcessRequest": { - "description": "Request message for batch process document method.", + "description": "Request message for BatchProcessDocuments.", "id": "GoogleCloudDocumentaiV1beta3BatchProcessRequest", "properties": { "documentOutputConfig": { "$ref": "GoogleCloudDocumentaiV1beta3DocumentOutputConfig", - "description": "The overall output config for batch process." + "description": "The output configuration for the BatchProcessDocuments method." }, "inputConfigs": { + "deprecated": true, "description": "The input config for each single document in the batch process.", "items": { "$ref": "GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchInputConfig" @@ -4769,10 +5566,18 @@ }, "inputDocuments": { "$ref": "GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig", - "description": "The input documents for batch process." + "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" }, "outputConfig": { "$ref": "GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchOutputConfig", + "deprecated": true, "description": "The overall output config for batch process." }, "processOptions": { @@ -4780,13 +5585,14 @@ "description": "Inference-time options for the process API" }, "skipHumanReview": { - "description": "Whether Human Review feature should be skipped for this request. Default to false.", + "description": "Whether human review should be skipped for this request. Default to `false`.", "type": "boolean" } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchInputConfig": { + "deprecated": true, "description": "The message for input config in batch process.", "id": "GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchInputConfig", "properties": { @@ -4795,14 +5601,15 @@ "type": "string" }, "mimeType": { - "description": "Mimetype of the input. If the input is a raw document, the supported mimetypes are application/pdf, image/tiff, and image/gif. If the input is a [Document] proto, the type should be application/json.", + "description": "An IANA published [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml) of the input. If the input is a raw document, refer to [supported file types](https://cloud.google.com/document-ai/docs/file-types) for the list of media types. If the input is a Document, the type should be `application/json`.", "type": "string" } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchOutputConfig": { - "description": "The message for output config in batch process.", + "deprecated": true, + "description": "The output configuration in the BatchProcessDocuments method.", "id": "GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchOutputConfig", "properties": { "gcsDestination": { @@ -4813,7 +5620,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3BatchProcessResponse": { - "description": "Response message for batch process document method.", + "description": "Response message for BatchProcessDocuments.", "id": "GoogleCloudDocumentaiV1beta3BatchProcessResponse", "properties": {}, "type": "object" @@ -4884,70 +5691,169 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3Dataset": { + "description": "A singleton resource under a Processor which configures a collection of documents.", + "id": "GoogleCloudDocumentaiV1beta3Dataset", + "properties": { + "documentWarehouseConfig": { + "$ref": "GoogleCloudDocumentaiV1beta3DatasetDocumentWarehouseConfig", + "deprecated": true, + "description": "Optional. Deprecated. Warehouse-based dataset configuration is not supported." + }, + "gcsManagedConfig": { + "$ref": "GoogleCloudDocumentaiV1beta3DatasetGCSManagedConfig", + "description": "Optional. User-managed Cloud Storage dataset configuration. Use this configuration if the dataset documents are stored under a user-managed Cloud Storage location." + }, + "name": { + "description": "Dataset resource name. Format: `projects/{project}/locations/{location}/processors/{processor}/dataset`", + "type": "string" + }, + "spannerIndexingConfig": { + "$ref": "GoogleCloudDocumentaiV1beta3DatasetSpannerIndexingConfig", + "description": "Optional. A lightweight indexing source with low latency and high reliability, but lacking advanced features like CMEK and content-based search." + }, + "state": { + "description": "Required. State of the dataset. Ignored when updating dataset.", + "enum": [ + "STATE_UNSPECIFIED", + "UNINITIALIZED", + "INITIALIZING", + "INITIALIZED" + ], + "enumDescriptions": [ + "Default unspecified enum, should not be used.", + "Dataset has not been initialized.", + "Dataset is being initialized.", + "Dataset has been initialized." + ], + "type": "string" + }, + "unmanagedDatasetConfig": { + "$ref": "GoogleCloudDocumentaiV1beta3DatasetUnmanagedDatasetConfig", + "description": "Optional. Unmanaged dataset configuration. Use this configuration if the dataset documents are managed by the document service internally (not user-managed)." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DatasetDocumentWarehouseConfig": { + "description": "Configuration specific to the Document AI Warehouse-based implementation.", + "id": "GoogleCloudDocumentaiV1beta3DatasetDocumentWarehouseConfig", + "properties": { + "collection": { + "description": "Output only. The collection in Document AI Warehouse associated with the dataset.", + "readOnly": true, + "type": "string" + }, + "schema": { + "description": "Output only. The schema in Document AI Warehouse associated with the dataset.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DatasetGCSManagedConfig": { + "description": "Configuration specific to the Cloud Storage-based implementation.", + "id": "GoogleCloudDocumentaiV1beta3DatasetGCSManagedConfig", + "properties": { + "gcsPrefix": { + "$ref": "GoogleCloudDocumentaiV1beta3GcsPrefix", + "description": "Required. The Cloud Storage URI (a directory) where the documents belonging to the dataset must be stored." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DatasetSchema": { + "description": "Dataset Schema.", + "id": "GoogleCloudDocumentaiV1beta3DatasetSchema", + "properties": { + "documentSchema": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentSchema", + "description": "Optional. Schema of the dataset." + }, + "name": { + "description": "Dataset schema resource name. Format: `projects/{project}/locations/{location}/processors/{processor}/dataset/datasetSchema`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DatasetSpannerIndexingConfig": { + "description": "Configuration specific to spanner-based indexing.", + "id": "GoogleCloudDocumentaiV1beta3DatasetSpannerIndexingConfig", + "properties": {}, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DatasetUnmanagedDatasetConfig": { + "description": "Configuration specific to an unmanaged dataset.", + "id": "GoogleCloudDocumentaiV1beta3DatasetUnmanagedDatasetConfig", + "properties": {}, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3DeleteProcessorMetadata": { - "description": "The long running operation metadata for delete processor method.", + "description": "The long-running operation metadata for the DeleteProcessor method.", "id": "GoogleCloudDocumentaiV1beta3DeleteProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3DeleteProcessorVersionMetadata": { - "description": "The long running operation metadata for delete processor version method.", + "description": "The long-running operation metadata for the DeleteProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3DeleteProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3DeployProcessorVersionMetadata": { - "description": "The long running operation metadata for deploy processor version method.", + "description": "The long-running operation metadata for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3DeployProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3DeployProcessorVersionRequest": { - "description": "Request message for the deploy processor version method.", + "description": "Request message for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3DeployProcessorVersionRequest", "properties": {}, "type": "object" }, "GoogleCloudDocumentaiV1beta3DeployProcessorVersionResponse": { - "description": "Response message for the deploy processor version method.", + "description": "Response message for the DeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3DeployProcessorVersionResponse", "properties": {}, "type": "object" }, "GoogleCloudDocumentaiV1beta3DisableProcessorMetadata": { - "description": "The long running operation metadata for disable processor method.", + "description": "The long-running operation metadata for the DisableProcessor method.", "id": "GoogleCloudDocumentaiV1beta3DisableProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3DisableProcessorRequest": { - "description": "Request message for the disable processor method.", + "description": "Request message for the DisableProcessor method.", "id": "GoogleCloudDocumentaiV1beta3DisableProcessorRequest", "properties": {}, "type": "object" }, "GoogleCloudDocumentaiV1beta3DisableProcessorResponse": { - "description": "Response message for the disable processor method. Intentionally empty proto for adding fields in future.", + "description": "Response message for the DisableProcessor method. Intentionally empty proto for adding fields in future.", "id": "GoogleCloudDocumentaiV1beta3DisableProcessorResponse", "properties": {}, "type": "object" @@ -4980,7 +5886,7 @@ "description": "Any error that occurred while processing this document." }, "mimeType": { - "description": "An IANA published MIME type (also referred to as media type). For more information, see https://www.iana.org/assignments/media-types/media-types.xhtml.", + "description": "An IANA published [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml).", "type": "string" }, "pages": { @@ -5013,6 +5919,7 @@ "type": "array" }, "textStyles": { + "deprecated": true, "description": "Styles for the Document.text.", "items": { "$ref": "GoogleCloudDocumentaiV1beta3DocumentStyle" @@ -5020,7 +5927,7 @@ "type": "array" }, "uri": { - "description": "Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. See [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris) for more info.", + "description": "Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. For more information, refer to [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris).", "type": "string" } }, @@ -5141,6 +6048,104 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3DocumentId": { + "description": "Document Identifier.", + "id": "GoogleCloudDocumentaiV1beta3DocumentId", + "properties": { + "gcsManagedDocId": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentIdGCSManagedDocumentId", + "description": "A document id within user-managed Cloud Storage." + }, + "revisionRef": { + "$ref": "GoogleCloudDocumentaiV1beta3RevisionRef", + "description": "Points to a specific revision of the document if set." + }, + "unmanagedDocId": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentIdUnmanagedDocumentId", + "description": "A document id within unmanaged dataset." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentIdGCSManagedDocumentId": { + "description": "Identifies a document uniquely within the scope of a dataset in the user-managed Cloud Storage option.", + "id": "GoogleCloudDocumentaiV1beta3DocumentIdGCSManagedDocumentId", + "properties": { + "cwDocId": { + "deprecated": true, + "description": "Id of the document (indexed) managed by Content Warehouse.", + "type": "string" + }, + "gcsUri": { + "description": "Required. The Cloud Storage URI where the actual document is stored.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentIdUnmanagedDocumentId": { + "description": "Identifies a document uniquely within the scope of a dataset in unmanaged option.", + "id": "GoogleCloudDocumentaiV1beta3DocumentIdUnmanagedDocumentId", + "properties": { + "docId": { + "description": "Required. The id of the document.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentMetadata": { + "description": "Metadata about a document.", + "id": "GoogleCloudDocumentaiV1beta3DocumentMetadata", + "properties": { + "datasetType": { + "description": "Type of the dataset split to which the document belongs.", + "enum": [ + "DATASET_SPLIT_TYPE_UNSPECIFIED", + "DATASET_SPLIT_TRAIN", + "DATASET_SPLIT_TEST", + "DATASET_SPLIT_UNASSIGNED" + ], + "enumDescriptions": [ + "Default value if the enum is not set.", + "Identifies the train documents.", + "Identifies the test documents.", + "Identifies the unassigned documents." + ], + "type": "string" + }, + "displayName": { + "description": "The display name of the document.", + "type": "string" + }, + "documentId": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentId", + "description": "Document identifier." + }, + "labelingState": { + "description": "Labeling state of the document.", + "enum": [ + "DOCUMENT_LABELING_STATE_UNSPECIFIED", + "DOCUMENT_LABELED", + "DOCUMENT_UNLABELED", + "DOCUMENT_AUTO_LABELED" + ], + "enumDescriptions": [ + "Default value if the enum is not set.", + "Document has been labeled.", + "Document has not been labeled.", + "Document has been auto-labeled." + ], + "type": "string" + }, + "pageCount": { + "description": "Number of pages in the document.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3DocumentOutputConfig": { "description": "Config that controls the output of documents. All documents will be written as a JSON file.", "id": "GoogleCloudDocumentaiV1beta3DocumentOutputConfig", @@ -5231,7 +6236,7 @@ }, "imageQualityScores": { "$ref": "GoogleCloudDocumentaiV1beta3DocumentPageImageQualityScores", - "description": "Image Quality Scores." + "description": "Image quality scores." }, "layout": { "$ref": "GoogleCloudDocumentaiV1beta3DocumentPageLayout", @@ -5258,6 +6263,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta3DocumentProvenance", + "deprecated": true, "description": "The history of this page." }, "symbols": { @@ -5318,7 +6324,7 @@ "properties": { "boundingPoly": { "$ref": "GoogleCloudDocumentaiV1beta3BoundingPoly", - "description": "Optional. Identifies the bounding polygon of a layout element on the page." + "description": "Optional. Identifies the bounding polygon of a layout element on the page. If `layout_type` is set, the bounding polygon must be exactly the same to the layout element it's referring to." }, "confidence": { "description": "Optional. Confidence of detected page element, if applicable. Range `[0, 1]`.", @@ -5326,6 +6332,7 @@ "type": "number" }, "layoutId": { + "deprecated": true, "description": "Optional. Deprecated. Use PageRef.bounding_poly instead.", "type": "string" }, @@ -5378,6 +6385,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta3DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -5408,7 +6416,7 @@ "type": "number" }, "languageCode": { - "description": "The BCP-47 language code, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", + "description": "The [BCP-47 language code](https://www.unicode.org/reports/tr35/#Unicode_locale_identifier), such as `en-US` or `sr-Latn`.", "type": "string" } }, @@ -5495,7 +6503,7 @@ "type": "integer" }, "mimeType": { - "description": "Encoding mime type for the image.", + "description": "Encoding [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml) for the image.", "type": "string" }, "width": { @@ -5507,7 +6515,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3DocumentPageImageQualityScores": { - "description": "Image Quality Scores for the page image", + "description": "Image quality scores for the page image.", "id": "GoogleCloudDocumentaiV1beta3DocumentPageImageQualityScores", "properties": { "detectedDefects": { @@ -5518,7 +6526,7 @@ "type": "array" }, "qualityScore": { - "description": "The overall quality score. Range `[0, 1]` where 1 is perfect quality.", + "description": "The overall quality score. Range `[0, 1]` where `1` is perfect quality.", "format": "float", "type": "number" } @@ -5530,7 +6538,7 @@ "id": "GoogleCloudDocumentaiV1beta3DocumentPageImageQualityScoresDetectedDefect", "properties": { "confidence": { - "description": "Confidence of detected defect. Range `[0, 1]` where 1 indicates strong confidence of that the defect exists.", + "description": "Confidence of detected defect. Range `[0, 1]` where `1` indicates strong confidence that the defect exists.", "format": "float", "type": "number" }, @@ -5596,6 +6604,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta3DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -5645,6 +6654,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta3DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." } }, @@ -5699,6 +6709,7 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta3DocumentProvenance", + "deprecated": true, "description": "The history of this table." } }, @@ -5767,7 +6778,12 @@ }, "provenance": { "$ref": "GoogleCloudDocumentaiV1beta3DocumentProvenance", + "deprecated": true, "description": "The history of this annotation." + }, + "styleInfo": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentPageTokenStyleInfo", + "description": "Text style attributes." } }, "type": "object" @@ -5795,6 +6811,77 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3DocumentPageTokenStyleInfo": { + "description": "Font and other text style attributes.", + "id": "GoogleCloudDocumentaiV1beta3DocumentPageTokenStyleInfo", + "properties": { + "backgroundColor": { + "$ref": "GoogleTypeColor", + "description": "Color of the background." + }, + "bold": { + "description": "Whether the text is bold (equivalent to font_weight is at least `700`).", + "type": "boolean" + }, + "fontSize": { + "description": "Font size in points (`1` point is `\u00b9\u2044\u2087\u2082` inches).", + "format": "int32", + "type": "integer" + }, + "fontType": { + "description": "Name or style of the font.", + "type": "string" + }, + "fontWeight": { + "description": "TrueType weight on a scale `100` (thin) to `1000` (ultra-heavy). Normal is `400`, bold is `700`.", + "format": "int32", + "type": "integer" + }, + "handwritten": { + "description": "Whether the text is handwritten.", + "type": "boolean" + }, + "italic": { + "description": "Whether the text is italic.", + "type": "boolean" + }, + "letterSpacing": { + "description": "Letter spacing in points.", + "format": "double", + "type": "number" + }, + "pixelFontSize": { + "description": "Font size in pixels, equal to _unrounded font_size_ * _resolution_ \u00f7 `72.0`.", + "format": "double", + "type": "number" + }, + "smallcaps": { + "description": "Whether the text is in small caps.", + "type": "boolean" + }, + "strikeout": { + "description": "Whether the text is strikethrough.", + "type": "boolean" + }, + "subscript": { + "description": "Whether the text is a subscript.", + "type": "boolean" + }, + "superscript": { + "description": "Whether the text is a superscript.", + "type": "boolean" + }, + "textColor": { + "$ref": "GoogleTypeColor", + "description": "Color of the text." + }, + "underlined": { + "description": "Whether the text is underlined.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3DocumentPageVisualElement": { "description": "Detected non-text visual elements e.g. checkbox, signature etc. on the page.", "id": "GoogleCloudDocumentaiV1beta3DocumentPageVisualElement", @@ -5822,6 +6909,7 @@ "id": "GoogleCloudDocumentaiV1beta3DocumentProvenance", "properties": { "id": { + "deprecated": true, "description": "The Id of this operation. Needs to be unique within the scope of the revision.", "format": "int32", "type": "integer" @@ -5834,6 +6922,7 @@ "type": "array" }, "revision": { + "deprecated": true, "description": "The index of the revision that produced this element.", "format": "int32", "type": "integer" @@ -5844,19 +6933,31 @@ "OPERATION_TYPE_UNSPECIFIED", "ADD", "REMOVE", + "UPDATE", "REPLACE", "EVAL_REQUESTED", "EVAL_APPROVED", "EVAL_SKIPPED" ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + true, + true, + true + ], "enumDescriptions": [ "Operation type unspecified. If no operation is specified a provenance entry is simply used to match against a `parent`.", "Add an element.", "Remove an element identified by `parent`.", - "Replace an element identified by `parent`.", - "Request human review for the element identified by `parent`.", - "Element is reviewed and approved at human review, confidence will be set to 1.0.", - "Element is skipped in the validation process." + "Updates any fields within the given provenance scope of the message. It overwrites the fields rather than replacing them. Use this when you want to update a field value of an entity without also updating all the child properties.", + "Currently unused. Replace an element identified by `parent`.", + "Deprecated. Request human review for the element identified by `parent`.", + "Deprecated. Element is reviewed and approved at human review, confidence will be set to 1.0.", + "Deprecated. Element is skipped in the validation process." ], "type": "string" } @@ -5868,6 +6969,7 @@ "id": "GoogleCloudDocumentaiV1beta3DocumentProvenanceParent", "properties": { "id": { + "deprecated": true, "description": "The id of the parent provenance.", "format": "int32", "type": "integer" @@ -5894,7 +6996,7 @@ "type": "string" }, "createTime": { - "description": "The time that the revision was created.", + "description": "The time that the revision was created, internally generated by doc proto storage at the time of create.", "format": "google-datetime", "type": "string" }, @@ -5903,10 +7005,11 @@ "description": "Human Review information of this revision." }, "id": { - "description": "Id of the revision. Unique within the context of the document.", + "description": "Id of the revision, internally generated by doc proto storage. Unique within the context of the document.", "type": "string" }, "parent": { + "deprecated": true, "description": "The revisions that this revision is based on. This can include one or more parent (when documents are merged.) This field represents the index into the `revisions` field.", "items": { "format": "int32", @@ -5984,16 +7087,20 @@ "description": "User defined name for the type.", "type": "string" }, + "entityTypeMetadata": { + "$ref": "GoogleCloudDocumentaiV1beta3EntityTypeMetadata", + "description": "Metadata for the entity type." + }, "enumValues": { "$ref": "GoogleCloudDocumentaiV1beta3DocumentSchemaEntityTypeEnumValues", "description": "If specified, lists all the possible values for this entity. This should not be more than a handful of values. If the number of values is >10 or could change frequently use the `EntityType.value_ontology` field and specify a list of all possible values in a value ontology file." }, "name": { - "description": "Name of the type. It must be unique within the schema file and cannot be a 'Common Type'. Besides that we use the following naming conventions: - *use `snake_casing`* - name matching is case-sensitive - Maximum 64 characters. - Must start with a letter. - Allowed characters: ASCII letters `[a-z0-9_-]`. (For backward compatibility internal infrastructure and tooling can handle any ascii character) - The `/` is sometimes used to denote a property of a type. For example `line_item/amount`. This convention is deprecated, but will still be honored for backward compatibility.", + "description": "Name of the type. It must be unique within the schema file and cannot be a \"Common Type\". The following naming conventions are used: - Use `snake_casing`. - Name matching is case-sensitive. - Maximum 64 characters. - Must start with a letter. - Allowed characters: ASCII letters `[a-z0-9_-]`. (For backward compatibility internal infrastructure and tooling can handle any ascii character.) - The `/` is sometimes used to denote a property of a type. For example `line_item/amount`. This convention is deprecated, but will still be honored for backward compatibility.", "type": "string" }, "properties": { - "description": "Describing the nested structure, or composition of an entity.", + "description": "Description the nested structure, or composition of an entity.", "items": { "$ref": "GoogleCloudDocumentaiV1beta3DocumentSchemaEntityTypeProperty" }, @@ -6020,6 +7127,10 @@ "description": "Defines properties that can be part of the entity type.", "id": "GoogleCloudDocumentaiV1beta3DocumentSchemaEntityTypeProperty", "properties": { + "displayName": { + "description": "User defined name for the property.", + "type": "string" + }, "name": { "description": "The name of the property. Follows the same guidelines as the EntityType name.", "type": "string" @@ -6035,13 +7146,17 @@ ], "enumDescriptions": [ "Unspecified occurrence type.", - "There will be zero or one instance of this entity type.", + "There will be zero or one instance of this entity type. The same entity instance may be mentioned multiple times.", "The entity type will appear zero or multiple times.", - "The entity type will only appear exactly once.", + "The entity type will only appear exactly once. The same entity instance may be mentioned multiple times.", "The entity type will appear once or more times." ], "type": "string" }, + "propertyMetadata": { + "$ref": "GoogleCloudDocumentaiV1beta3PropertyMetadata", + "description": "Any additional metadata about the property can be added here." + }, "valueType": { "description": "A reference to the value type of the property. This type is subject to the same conventions as the `Entity.base_types` field.", "type": "string" @@ -6058,7 +7173,7 @@ "type": "boolean" }, "documentSplitter": { - "description": "If true, a `document` entity type can be applied to subdocument ( splitting). Otherwise, it can only be applied to the entire document (classification).", + "description": "If true, a `document` entity type can be applied to subdocument (splitting). Otherwise, it can only be applied to the entire document (classification).", "type": "boolean" }, "prefixedNamingOnProperties": { @@ -6115,7 +7230,7 @@ "description": "Font size." }, "fontWeight": { - "description": "Font weight. Possible values are normal, bold, bolder, and lighter. https://www.w3schools.com/cssref/pr_font_weight.asp", + "description": "[Font weight](https://www.w3schools.com/cssref/pr_font_weight.asp). Possible values are `normal`, `bold`, `bolder`, and `lighter`.", "type": "string" }, "textAnchor": { @@ -6123,11 +7238,11 @@ "description": "Text anchor indexing into the Document.text." }, "textDecoration": { - "description": "Text decoration. Follows CSS standard. https://www.w3schools.com/cssref/pr_text_text-decoration.asp", + "description": "[Text decoration](https://www.w3schools.com/cssref/pr_text_text-decoration.asp). Follows CSS standard. ", "type": "string" }, "textStyle": { - "description": "Text style. Possible values are normal, italic, and oblique. https://www.w3schools.com/cssref/pr_font_font-style.asp", + "description": "[Text style](https://www.w3schools.com/cssref/pr_font_font-style.asp). Possible values are `normal`, `italic`, and `oblique`.", "type": "string" } }, @@ -6143,7 +7258,7 @@ "type": "number" }, "unit": { - "description": "Unit for the font size. Follows CSS naming (in, px, pt, etc.).", + "description": "Unit for the font size. Follows CSS naming (such as `in`, `px`, and `pt`).", "type": "string" } }, @@ -6193,6 +7308,7 @@ "type": "string" }, "provenance": { + "deprecated": true, "description": "The history of this annotation.", "items": { "$ref": "GoogleCloudDocumentaiV1beta3DocumentProvenance" @@ -6207,35 +7323,46 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3EnableProcessorMetadata": { - "description": "The long running operation metadata for enable processor method.", + "description": "The long-running operation metadata for the EnableProcessor method.", "id": "GoogleCloudDocumentaiV1beta3EnableProcessorMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3EnableProcessorRequest": { - "description": "Request message for the enable processor method.", + "description": "Request message for the EnableProcessor method.", "id": "GoogleCloudDocumentaiV1beta3EnableProcessorRequest", "properties": {}, "type": "object" }, "GoogleCloudDocumentaiV1beta3EnableProcessorResponse": { - "description": "Response message for the enable processor method. Intentionally empty proto for adding fields in future.", + "description": "Response message for the EnableProcessor method. Intentionally empty proto for adding fields in future.", "id": "GoogleCloudDocumentaiV1beta3EnableProcessorResponse", "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiV1beta3EntityTypeMetadata": { + "description": "Metadata about an entity type.", + "id": "GoogleCloudDocumentaiV1beta3EntityTypeMetadata", + "properties": { + "inactive": { + "description": "Whether the entity type should be considered inactive.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionMetadata": { "description": "Metadata of the EvaluateProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" @@ -6252,7 +7379,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionResponse": { - "description": "Metadata of the EvaluateProcessorVersion method.", + "description": "Response of the EvaluateProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionResponse", "properties": { "evaluation": { @@ -6483,7 +7610,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3FetchProcessorTypesResponse": { - "description": "Response message for fetch processor types.", + "description": "Response message for the FetchProcessorTypes method.", "id": "GoogleCloudDocumentaiV1beta3FetchProcessorTypesResponse", "properties": { "processorTypes": { @@ -6496,6 +7623,17 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3FieldExtractionMetadata": { + "description": "Metadata for how this field value is extracted.", + "id": "GoogleCloudDocumentaiV1beta3FieldExtractionMetadata", + "properties": { + "summaryOptions": { + "$ref": "GoogleCloudDocumentaiV1beta3SummaryOptions", + "description": "Summary options config." + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3GcsDocument": { "description": "Specifies a document stored on Cloud Storage.", "id": "GoogleCloudDocumentaiV1beta3GcsDocument", @@ -6536,12 +7674,21 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3GetDocumentResponse": { + "id": "GoogleCloudDocumentaiV1beta3GetDocumentResponse", + "properties": { + "document": { + "$ref": "GoogleCloudDocumentaiV1beta3Document" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3HumanReviewStatus": { "description": "The status of human review on a processed document.", "id": "GoogleCloudDocumentaiV1beta3HumanReviewStatus", "properties": { "humanReviewOperation": { - "description": "The name of the operation triggered by the processed document. This field is populated only when the [state] is [HUMAN_REVIEW_IN_PROGRESS]. It has the same response type and metadata as the long running operation returned by [ReviewDocument] method.", + "description": "The name of the operation triggered by the processed document. This field is populated only when the state is `HUMAN_REVIEW_IN_PROGRESS`. It has the same response type and metadata as the long-running operation returned by ReviewDocument.", "type": "string" }, "state": { @@ -6555,10 +7702,10 @@ ], "enumDescriptions": [ "Human review state is unspecified. Most likely due to an internal error.", - "Human review is skipped for the document. This can happen because human review is not enabled on the processor or the processing request has been set to skip this document.", + "Human review is skipped for the document. This can happen because human review isn't enabled on the processor or the processing request has been set to skip this document.", "Human review validation is triggered and passed, so no review is needed.", "Human review validation is triggered and the document is under review.", - "Some error happened during triggering human review, see the [state_message] for details." + "Some error happened during triggering human review, see the state_message for details." ], "type": "string" }, @@ -6569,8 +7716,236 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadata": { + "description": "Metadata of the import document operation.", + "id": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + }, + "importConfigValidationResults": { + "description": "Validation statuses of the batch documents import config.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataImportConfigValidationResult" + }, + "type": "array" + }, + "individualImportStatuses": { + "description": "The list of response details of each document.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataIndividualImportStatus" + }, + "type": "array" + }, + "totalDocumentCount": { + "description": "Total number of the documents that are qualified for importing.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataImportConfigValidationResult": { + "description": "The validation status of each import config. Status is set to an error if there are no documents to import in the `import_config`, or `OK` if the operation will try to proceed with at least one document.", + "id": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataImportConfigValidationResult", + "properties": { + "inputGcsSource": { + "description": "The source Cloud Storage URI specified in the import config.", + "type": "string" + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The validation status of import config." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataIndividualImportStatus": { + "description": "The status of each individual document in the import process.", + "id": "GoogleCloudDocumentaiV1beta3ImportDocumentsMetadataIndividualImportStatus", + "properties": { + "inputGcsSource": { + "description": "The source Cloud Storage URI of the document.", + "type": "string" + }, + "outputDocumentId": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentId", + "description": "The document id of imported document if it was successful, otherwise empty." + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The status of the importing of the document." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportDocumentsRequest": { + "id": "GoogleCloudDocumentaiV1beta3ImportDocumentsRequest", + "properties": { + "batchDocumentsImportConfigs": { + "description": "Required. The Cloud Storage uri containing raw documents that must be imported.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3ImportDocumentsRequestBatchDocumentsImportConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportDocumentsRequestBatchDocumentsImportConfig": { + "description": "Config for importing documents. Each batch can have its own dataset split type.", + "id": "GoogleCloudDocumentaiV1beta3ImportDocumentsRequestBatchDocumentsImportConfig", + "properties": { + "autoSplitConfig": { + "$ref": "GoogleCloudDocumentaiV1beta3ImportDocumentsRequestBatchDocumentsImportConfigAutoSplitConfig", + "description": "If set, documents will be automatically split into training and test split category with the specified ratio." + }, + "batchInputConfig": { + "$ref": "GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig", + "description": "The common config to specify a set of documents used as input." + }, + "datasetSplit": { + "description": "Target dataset split where the documents must be stored.", + "enum": [ + "DATASET_SPLIT_TYPE_UNSPECIFIED", + "DATASET_SPLIT_TRAIN", + "DATASET_SPLIT_TEST", + "DATASET_SPLIT_UNASSIGNED" + ], + "enumDescriptions": [ + "Default value if the enum is not set.", + "Identifies the train documents.", + "Identifies the test documents.", + "Identifies the unassigned documents." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportDocumentsRequestBatchDocumentsImportConfigAutoSplitConfig": { + "description": "The config for auto-split.", + "id": "GoogleCloudDocumentaiV1beta3ImportDocumentsRequestBatchDocumentsImportConfigAutoSplitConfig", + "properties": { + "trainingSplitRatio": { + "description": "Ratio of training dataset split.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportDocumentsResponse": { + "description": "Response of the import document operation.", + "id": "GoogleCloudDocumentaiV1beta3ImportDocumentsResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportProcessorVersionMetadata": { + "description": "The long-running operation metadata for the ImportProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1beta3ImportProcessorVersionMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", + "description": "The basic metadata for the long-running operation." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportProcessorVersionRequest": { + "description": "The request message for the ImportProcessorVersion method. The Document AI [Service Agent](https://cloud.google.com/iam/docs/service-agents) of the destination project must have [Document AI Editor role](https://cloud.google.com/document-ai/docs/access-control/iam-roles) on the source project. The destination project is specified as part of the parent field. The source project is specified as part of the source or external_processor_version_source field.", + "id": "GoogleCloudDocumentaiV1beta3ImportProcessorVersionRequest", + "properties": { + "externalProcessorVersionSource": { + "$ref": "GoogleCloudDocumentaiV1beta3ImportProcessorVersionRequestExternalProcessorVersionSource", + "description": "The source processor version to import from. It can be from a different environment and region than the destination processor." + }, + "processorVersionSource": { + "description": "The source processor version to import from. The source processor version and destination processor need to be in the same environment and region.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportProcessorVersionRequestExternalProcessorVersionSource": { + "description": "The external source processor version.", + "id": "GoogleCloudDocumentaiV1beta3ImportProcessorVersionRequestExternalProcessorVersionSource", + "properties": { + "processorVersion": { + "description": "Required. The processor version name. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", + "type": "string" + }, + "serviceEndpoint": { + "description": "Optional. The Document AI service endpoint. For example, 'https://us-documentai.googleapis.com'", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ImportProcessorVersionResponse": { + "description": "The response message for the ImportProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1beta3ImportProcessorVersionResponse", + "properties": { + "processorVersion": { + "description": "The destination processor version name.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ListDocumentsRequest": { + "id": "GoogleCloudDocumentaiV1beta3ListDocumentsRequest", + "properties": { + "filter": { + "description": "Optional. Query to filter the documents based on https://google.aip.dev/160. ## Currently support query strings are: `SplitType=DATASET_SPLIT_TEST|DATASET_SPLIT_TRAIN|DATASET_SPLIT_UNASSIGNED` - `LabelingState=DOCUMENT_LABELED|DOCUMENT_UNLABELED|DOCUMENT_AUTO_LABELED` - `DisplayName=\\\"file_name.pdf\\\"` - `EntityType=abc/def` - `TagName=\\\"auto-labeling-running\\\"|\\\"sampled\\\"` Note: - Only `AND`, `=` and `!=` are supported. e.g. `DisplayName=file_name AND EntityType!=abc` IS supported. - Wildcard `*` is supported only in `DisplayName` filter - No duplicate filter keys are allowed, e.g. `EntityType=a AND EntityType=b` is NOT supported. - String match is case sensitive (for filter `DisplayName` & `EntityType`).", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of documents to return. The service may return fewer than this value. If unspecified, at most 20 documents will be returned. The maximum value is 100; values above 100 will be coerced to 100.", + "format": "int32", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListDocuments` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDocuments` must match the call that provided the page token.", + "type": "string" + }, + "returnTotalSize": { + "description": "Optional. Controls if the request requires a total size of matched documents. See ListDocumentsResponse.total_size. Enabling this flag may adversely impact performance. Defaults to false.", + "type": "boolean" + }, + "skip": { + "description": "Optional. Number of results to skip beginning from the `page_token` if provided. https://google.aip.dev/158#skipping-results. It must be a non-negative integer. Negative values will be rejected. Note that this is not the number of pages to skip. If this value causes the cursor to move past the end of results, ListDocumentsResponse.document_metadata and ListDocumentsResponse.next_page_token will be empty.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ListDocumentsResponse": { + "id": "GoogleCloudDocumentaiV1beta3ListDocumentsResponse", + "properties": { + "documentMetadata": { + "description": "Document metadata corresponding to the listed documents.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentMetadata" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token, which can be sent as ListDocumentsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "totalSize": { + "description": "Total count of documents queried.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3ListEvaluationsResponse": { - "description": "The response from ListEvaluations.", + "description": "The response from `ListEvaluations`.", "id": "GoogleCloudDocumentaiV1beta3ListEvaluationsResponse", "properties": { "evaluations": { @@ -6588,7 +7963,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3ListProcessorTypesResponse": { - "description": "Response message for list processor types.", + "description": "Response message for the ListProcessorTypes method.", "id": "GoogleCloudDocumentaiV1beta3ListProcessorTypesResponse", "properties": { "nextPageToken": { @@ -6606,7 +7981,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3ListProcessorVersionsResponse": { - "description": "Response message for list processors.", + "description": "Response message for the ListProcessorVersions method.", "id": "GoogleCloudDocumentaiV1beta3ListProcessorVersionsResponse", "properties": { "nextPageToken": { @@ -6624,7 +7999,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3ListProcessorsResponse": { - "description": "Response message for list processors.", + "description": "Response message for the ListProcessors method.", "id": "GoogleCloudDocumentaiV1beta3ListProcessorsResponse", "properties": { "nextPageToken": { @@ -6662,9 +8037,74 @@ "description": "Config for Document OCR.", "id": "GoogleCloudDocumentaiV1beta3OcrConfig", "properties": { + "advancedOcrOptions": { + "description": "A list of advanced OCR options to further fine-tune OCR behavior. Current valid values are: - `legacy_layout`: a heuristics layout detection algorithm, which serves as an alternative to the current ML-based layout detection algorithm. Customers can choose the best suitable layout algorithm based on their situation.", + "items": { + "type": "string" + }, + "type": "array" + }, + "computeStyleInfo": { + "deprecated": true, + "description": "Turn on font identification model and return font style information. Deprecated, use PremiumFeatures.compute_style_info instead.", + "type": "boolean" + }, + "disableCharacterBoxesDetection": { + "description": "Turn off character box detector in OCR engine. Character box detection is enabled by default in OCR 2.0 (and later) processors.", + "type": "boolean" + }, + "enableImageQualityScores": { + "description": "Enables intelligent document quality scores after OCR. Can help with diagnosing why OCR responses are of poor quality for a given input. Adds additional latency comparable to regular OCR to the process call.", + "type": "boolean" + }, "enableNativePdfParsing": { "description": "Enables special handling for PDFs with existing text information. Results in better text extraction quality in such PDF inputs.", "type": "boolean" + }, + "enableSymbol": { + "description": "Includes symbol level OCR information if set to true.", + "type": "boolean" + }, + "hints": { + "$ref": "GoogleCloudDocumentaiV1beta3OcrConfigHints", + "description": "Hints for the OCR model." + }, + "premiumFeatures": { + "$ref": "GoogleCloudDocumentaiV1beta3OcrConfigPremiumFeatures", + "description": "Configurations for premium OCR features." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3OcrConfigHints": { + "description": "Hints for OCR Engine", + "id": "GoogleCloudDocumentaiV1beta3OcrConfigHints", + "properties": { + "languageHints": { + "description": "List of BCP-47 language codes to use for OCR. In most cases, not specifying it yields the best results since it enables automatic language detection. For languages based on the Latin alphabet, setting hints is not needed. In rare cases, when the language of the text in the image is known, setting a hint will help get better results (although it will be a significant hindrance if the hint is wrong).", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3OcrConfigPremiumFeatures": { + "description": "Configurations for premium OCR features.", + "id": "GoogleCloudDocumentaiV1beta3OcrConfigPremiumFeatures", + "properties": { + "computeStyleInfo": { + "description": "Turn on font identification model and return font style information.", + "type": "boolean" + }, + "enableMathOcr": { + "description": "Turn on the model that can extract LaTeX math formulas.", + "type": "boolean" + }, + "enableSelectionMarkDetection": { + "description": "Turn on selection mark detector in OCR engine. Only available in OCR 2.0 (and later) processors.", + "type": "boolean" } }, "type": "object" @@ -6673,30 +8113,75 @@ "description": "Options for Process API", "id": "GoogleCloudDocumentaiV1beta3ProcessOptions", "properties": { + "fromEnd": { + "description": "Only process certain pages from the end, same as above.", + "format": "int32", + "type": "integer" + }, + "fromStart": { + "description": "Only process certain pages from the start. Process all if the document has fewer pages.", + "format": "int32", + "type": "integer" + }, + "individualPageSelector": { + "$ref": "GoogleCloudDocumentaiV1beta3ProcessOptionsIndividualPageSelector", + "description": "Which pages to process (1-indexed)." + }, "ocrConfig": { "$ref": "GoogleCloudDocumentaiV1beta3OcrConfig", - "description": "Only applicable to \"Document 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." + }, + "schemaOverride": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentSchema", + "description": "Optional. Override the schema of the ProcessorVersion. Will return an Invalid Argument error if this field is set when the underlying ProcessorVersion doesn't support schema override." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ProcessOptionsIndividualPageSelector": { + "description": "A list of individual page numbers.", + "id": "GoogleCloudDocumentaiV1beta3ProcessOptionsIndividualPageSelector", + "properties": { + "pages": { + "description": "Optional. Indices of the pages (starting from 1).", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3ProcessRequest": { - "description": "Request message for the process document method.", + "description": "Request message for the ProcessDocument method.", "id": "GoogleCloudDocumentaiV1beta3ProcessRequest", "properties": { "document": { "$ref": "GoogleCloudDocumentaiV1beta3Document", - "description": "The document payload, the [content] and [mime_type] fields must be set." + "deprecated": true, + "description": "The document payload, the content and mime_type fields must be set." }, "fieldMask": { - "description": "Specifies which fields to include in ProcessResponse's document. Only supports top level document and pages field so it must be in the form of `{document_field_name}` or `pages.{page_field_name}`.", + "description": "Specifies which fields to include in the ProcessResponse.document output. Only supports top-level document and pages field, so it must be in the form of `{document_field_name}` or `pages.{page_field_name}`.", "format": "google-fieldmask", "type": "string" }, + "gcsDocument": { + "$ref": "GoogleCloudDocumentaiV1beta3GcsDocument", + "description": "A raw document on Google Cloud Storage." + }, "inlineDocument": { "$ref": "GoogleCloudDocumentaiV1beta3Document", "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": "GoogleCloudDocumentaiV1beta3ProcessOptions", "description": "Inference-time options for the process API" @@ -6706,14 +8191,14 @@ "description": "A raw document content (bytes)." }, "skipHumanReview": { - "description": "Whether Human Review feature should be skipped for this request. Default to false.", + "description": "Whether human review should be skipped for this request. Default to `false`.", "type": "boolean" } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3ProcessResponse": { - "description": "Response message for the process document method.", + "description": "Response message for the ProcessDocument method.", "id": "GoogleCloudDocumentaiV1beta3ProcessResponse", "properties": { "document": { @@ -6721,7 +8206,8 @@ "description": "The document payload, will populate fields based on the processor's behavior." }, "humanReviewOperation": { - "description": "The name of the operation triggered by the processed document. If the human review process is not triggered, this field will be empty. It has the same response type and metadata as the long running operation returned by ReviewDocument method.", + "deprecated": true, + "description": "The name of the operation triggered by the processed document. If the human review process isn't triggered, this field is empty. It has the same response type and metadata as the long-running operation returned by ReviewDocument.", "type": "string" }, "humanReviewStatus": { @@ -6749,7 +8235,7 @@ "type": "string" }, "kmsKeyName": { - "description": "The KMS key used for encryption/decryption in CMEK scenarios. See https://cloud.google.com/security-key-management.", + "description": "The [KMS key](https://cloud.google.com/security-key-management) used for encryption and decryption in CMEK scenarios.", "type": "string" }, "name": { @@ -6762,6 +8248,14 @@ "readOnly": true, "type": "string" }, + "processorVersionAliases": { + "description": "Output only. The processor version aliases.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3ProcessorVersionAlias" + }, + "readOnly": true, + "type": "array" + }, "state": { "description": "Output only. The state of the processor.", "enum": [ @@ -6788,7 +8282,7 @@ "type": "string" }, "type": { - "description": "The processor type, e.g., `OCR_PROCESSOR`, `INVOICE_PROCESSOR`, etc. To get a list of processors types, see FetchProcessorTypes.", + "description": "The processor type, such as: `OCR_PROCESSOR`, `INVOICE_PROCESSOR`. To get a list of processor types, see FetchProcessorTypes.", "type": "string" } }, @@ -6849,7 +8343,7 @@ "type": "array" }, "type": { - "description": "The processor type, e.g., `OCR_PROCESSOR`, `INVOICE_PROCESSOR`, etc.", + "description": "The processor type, such as: `OCR_PROCESSOR`, `INVOICE_PROCESSOR`.", "type": "string" } }, @@ -6860,14 +8354,14 @@ "id": "GoogleCloudDocumentaiV1beta3ProcessorTypeLocationInfo", "properties": { "locationId": { - "description": "The location id, currently must be one of [us, eu].", + "description": "The location ID. For supported locations, refer to [regional and multi-regional support](/document-ai/docs/regions).", "type": "string" } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3ProcessorVersion": { - "description": "A processor version is an implementation of a processor. Each processor can have multiple versions, pre-trained by Google internally or up-trained by the customer. At a time, a processor can only have one default version version. So the processor's behavior (when processing documents) is defined by a default version", + "description": "A processor version is an implementation of a processor. Each processor can have multiple versions, pretrained by Google internally or uptrained by the customer. A processor can only have one default version at a time. Its document-processing behavior is defined by that version.", "id": "GoogleCloudDocumentaiV1beta3ProcessorVersion", "properties": { "createTime": { @@ -6888,7 +8382,8 @@ "description": "The schema of the processor version. Describes the output." }, "googleManaged": { - "description": "Denotes that this ProcessorVersion is managed by google.", + "description": "Output only. Denotes that this `ProcessorVersion` is managed by Google.", + "readOnly": true, "type": "boolean" }, "kmsKeyName": { @@ -6903,6 +8398,21 @@ "$ref": "GoogleCloudDocumentaiV1beta3EvaluationReference", "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" @@ -6917,7 +8427,8 @@ "UNDEPLOYING", "CREATING", "DELETING", - "FAILED" + "FAILED", + "IMPORTING" ], "enumDescriptions": [ "The processor version is in an unspecified state.", @@ -6927,13 +8438,29 @@ "The processor version is being undeployed.", "The processor version is being created.", "The processor version is being deleted.", - "The processor version failed and is in an indeterminate state." + "The processor version failed and is in an indeterminate state.", + "The processor version is being imported." ], "type": "string" } }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3ProcessorVersionAlias": { + "description": "Contains the alias and the aliased resource name of processor version.", + "id": "GoogleCloudDocumentaiV1beta3ProcessorVersionAlias", + "properties": { + "alias": { + "description": "The alias in the form of `processor_version` resource name.", + "type": "string" + }, + "processorVersion": { + "description": "The resource name of aliased processor version.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3ProcessorVersionDeprecationInfo": { "description": "Information about the upcoming deprecation of this processor version.", "id": "GoogleCloudDocumentaiV1beta3ProcessorVersionDeprecationInfo", @@ -6950,6 +8477,21 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3PropertyMetadata": { + "description": "Metadata about a property.", + "id": "GoogleCloudDocumentaiV1beta3PropertyMetadata", + "properties": { + "fieldExtractionMetadata": { + "$ref": "GoogleCloudDocumentaiV1beta3FieldExtractionMetadata", + "description": "Field extraction metadata on the property." + }, + "inactive": { + "description": "Whether the property should be considered as \"inactive\".", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3RawDocument": { "description": "Payload message of raw document content (bytes).", "id": "GoogleCloudDocumentaiV1beta3RawDocument", @@ -6959,6 +8501,10 @@ "format": "byte", "type": "string" }, + "displayName": { + "description": "The display name of the document, it supports all Unicode characters except the following: `*`, `?`, `[`, `]`, `%`, `{`, `}`,`'`, `\\\"`, `,` `~`, `=` and `:` are reserved. If not specified, a default ID is generated.", + "type": "string" + }, "mimeType": { "description": "An IANA MIME type (RFC6838) indicating the nature and format of the content.", "type": "string" @@ -6967,12 +8513,12 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3ReviewDocumentOperationMetadata": { - "description": "The long running operation metadata for review document method.", + "description": "The long-running operation metadata for the ReviewDocument method.", "id": "GoogleCloudDocumentaiV1beta3ReviewDocumentOperationMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "createTime": { "description": "The creation time of the operation.", @@ -7016,11 +8562,12 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3ReviewDocumentRequest": { - "description": "Request message for review document method.", + "description": "Request message for the ReviewDocument method.", "id": "GoogleCloudDocumentaiV1beta3ReviewDocumentRequest", "properties": { "document": { "$ref": "GoogleCloudDocumentaiV1beta3Document", + "deprecated": true, "description": "The document that needs human review." }, "documentSchema": { @@ -7051,7 +8598,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3ReviewDocumentResponse": { - "description": "Response message for review document method.", + "description": "Response message for the ReviewDocument method.", "id": "GoogleCloudDocumentaiV1beta3ReviewDocumentResponse", "properties": { "gcsDestination": { @@ -7079,19 +8626,50 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3RevisionRef": { + "description": "The revision reference specifies which revision on the document to read.", + "id": "GoogleCloudDocumentaiV1beta3RevisionRef", + "properties": { + "latestProcessorVersion": { + "description": "Reads the revision generated by the processor version. The format takes the full resource name of processor version. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", + "type": "string" + }, + "revisionCase": { + "description": "Reads the revision by the predefined case.", + "enum": [ + "REVISION_CASE_UNSPECIFIED", + "LATEST_HUMAN_REVIEW", + "LATEST_TIMESTAMP", + "BASE_OCR_REVISION" + ], + "enumDescriptions": [ + "Unspecified case, fall back to read the `LATEST_HUMAN_REVIEW`.", + "The latest revision made by a human.", + "The latest revision based on timestamp.", + "The first (OCR) revision." + ], + "type": "string" + }, + "revisionId": { + "description": "Reads the revision given by the id.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionMetadata": { - "description": "The long running operation metadata for set default processor version method.", + "description": "The long-running operation metadata for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionRequest": { - "description": "Request message for the set default processor version method.", + "description": "Request message for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionRequest", "properties": { "defaultProcessorVersion": { @@ -7102,18 +8680,55 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionResponse": { - "description": "Response message for set default processor version method.", + "description": "Response message for the SetDefaultProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionResponse", "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiV1beta3SummaryOptions": { + "description": "Metadata for document summarization.", + "id": "GoogleCloudDocumentaiV1beta3SummaryOptions", + "properties": { + "format": { + "description": "The format the summary should be in.", + "enum": [ + "FORMAT_UNSPECIFIED", + "PARAGRAPH", + "BULLETS" + ], + "enumDescriptions": [ + "Default.", + "Format the output in paragraphs.", + "Format the output in bullets." + ], + "type": "string" + }, + "length": { + "description": "How long the summary should be.", + "enum": [ + "LENGTH_UNSPECIFIED", + "BRIEF", + "MODERATE", + "COMPREHENSIVE" + ], + "enumDescriptions": [ + "Default.", + "A brief summary of one or two sentences.", + "A paragraph-length summary.", + "The longest option available." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadata": { "description": "The metadata that represents a processor version being created.", "id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." }, "testDatasetValidation": { "$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation", @@ -7158,20 +8773,28 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequest": { - "description": "Request message for the create processor version method.", + "description": "Request message for the TrainProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequest", "properties": { "baseProcessorVersion": { "description": "Optional. The processor version to use as a base for training. This processor version must be a child of `parent`. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`.", "type": "string" }, + "customDocumentExtractionOptions": { + "$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestCustomDocumentExtractionOptions", + "description": "Options to control Custom Document Extraction (CDE) Processor." + }, "documentSchema": { "$ref": "GoogleCloudDocumentaiV1beta3DocumentSchema", "description": "Optional. The schema the processor version will be trained with." }, + "foundationModelTuningOptions": { + "$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestFoundationModelTuningOptions", + "description": "Options to control foundation model tuning of a processor." + }, "inputData": { "$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestInputData", - "description": "Optional. The input data used to train the `ProcessorVersion`." + "description": "Optional. The input data used to train the ProcessorVersion." }, "processorVersion": { "$ref": "GoogleCloudDocumentaiV1beta3ProcessorVersion", @@ -7180,8 +8803,46 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestCustomDocumentExtractionOptions": { + "description": "Options to control the training of the Custom Document Extraction (CDE) Processor.", + "id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestCustomDocumentExtractionOptions", + "properties": { + "trainingMethod": { + "description": "Training method to use for CDE training.", + "enum": [ + "TRAINING_METHOD_UNSPECIFIED", + "MODEL_BASED", + "TEMPLATE_BASED" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestFoundationModelTuningOptions": { + "description": "Options to control foundation model tuning of the processor.", + "id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestFoundationModelTuningOptions", + "properties": { + "learningRateMultiplier": { + "description": "Optional. The multiplier to apply to the recommended learning rate. Valid values are between 0.1 and 10. If not provided, recommended learning rate will be used.", + "format": "float", + "type": "number" + }, + "trainSteps": { + "description": "Optional. The number of steps to run for model tuning. Valid values are between 1 and 400. If not provided, recommended steps will be used.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestInputData": { - "description": "The input data used to train a new `ProcessorVersion`.", + "description": "The input data used to train a new ProcessorVersion.", "id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestInputData", "properties": { "testDocuments": { @@ -7196,7 +8857,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3TrainProcessorVersionResponse": { - "description": "The response for the TrainProcessorVersion method.", + "description": "The response for TrainProcessorVersion.", "id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionResponse", "properties": { "processorVersion": { @@ -7207,28 +8868,38 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionMetadata": { - "description": "The long running operation metadata for the undeploy processor version method.", + "description": "The long-running operation metadata for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionMetadata", "properties": { "commonMetadata": { "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", - "description": "The basic metadata of the long running operation." + "description": "The basic metadata of the long-running operation." } }, "type": "object" }, "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionRequest": { - "description": "Request message for the undeploy processor version method.", + "description": "Request message for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionRequest", "properties": {}, "type": "object" }, "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionResponse": { - "description": "Response message for the undeploy processor version method.", + "description": "Response message for the UndeployProcessorVersion method.", "id": "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionResponse", "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiV1beta3UpdateDatasetOperationMetadata": { + "id": "GoogleCloudDocumentaiV1beta3UpdateDatasetOperationMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", + "description": "The basic metadata of the long-running operation." + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3Vertex": { "description": "A vertex represents a 2D point in the image. NOTE: the vertex coordinates are in the same scale as the original image.", "id": "GoogleCloudDocumentaiV1beta3Vertex", @@ -7265,7 +8936,7 @@ "type": "object" }, "GoogleCloudLocationLocation": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "GoogleCloudLocationLocation", "properties": { "displayName": { @@ -7345,7 +9016,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" } }, @@ -7385,7 +9056,7 @@ "type": "object" }, "GoogleTypeColor": { - "description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/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 carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). 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(''); }; // ...", + "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\u2014for 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": { diff --git a/etc/api/domains/v1/domains-api.json b/etc/api/domains/v1/domains-api.json index f98cdcde2d..faa0f47cb4 100644 --- a/etc/api/domains/v1/domains-api.json +++ b/etc/api/domains/v1/domains-api.json @@ -205,7 +205,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "domains.projects.locations.operations.list", @@ -334,7 +334,7 @@ ] }, "delete": { - "description": "Deletes a `Registration` resource. This method works on any `Registration` resource using [Subscription or Commitment billing](/domains/pricing#billing-models), provided that the resource was created at least 1 day in the past. For `Registration` resources using [Monthly billing](/domains/pricing#billing-models), this method works if: * `state` is `EXPORTED` with `expire_time` in the past * `state` is `REGISTRATION_FAILED` * `state` is `TRANSFER_FAILED` When an active registration is successfully deleted, you can continue to use the domain in [Google Domains](https://domains.google/) until it expires. The calling user becomes the domain's sole owner in Google Domains, and permissions for the domain are subsequently managed there. The domain does not renew automatically unless the new owner sets up billing in Google Domains.", + "description": "Deletes a `Registration` resource. This method works on any `Registration` resource using [Subscription or Commitment billing](/domains/pricing#billing-models), provided that the resource was created at least 1 day in the past. When an active registration is successfully deleted, you can continue to use the domain in [Google Domains](https://domains.google/) until it expires. The calling user becomes the domain's sole owner in Google Domains, and permissions for the domain are subsequently managed there. The domain does not renew automatically unless the new owner sets up billing in Google Domains. After January 2024 you will only be able to delete `Registration` resources when `state` is one of: `EXPORTED`, `EXPIRED`,`REGISTRATION_FAILED` or `TRANSFER_FAILED`. See [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) for more details.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}", "httpMethod": "DELETE", "id": "domains.projects.locations.registrations.delete", @@ -359,7 +359,8 @@ ] }, "export": { - "description": "Exports a `Registration` resource, such that it is no longer managed by Cloud Domains. When an active domain is successfully exported, you can continue to use the domain in [Google Domains](https://domains.google/) until it expires. The calling user becomes the domain's sole owner in Google Domains, and permissions for the domain are subsequently managed there. The domain does not renew automatically unless the new owner sets up billing in Google Domains.", + "deprecated": true, + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Exports a `Registration` resource, such that it is no longer managed by Cloud Domains. When an active domain is successfully exported, you can continue to use the domain in [Google Domains](https://domains.google/) until it expires. The calling user becomes the domain's sole owner in Google Domains, and permissions for the domain are subsequently managed there. The domain does not renew automatically unless the new owner sets up billing in Google Domains.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:export", "httpMethod": "POST", "id": "domains.projects.locations.registrations.export", @@ -443,7 +444,8 @@ ] }, "import": { - "description": "Imports a domain name from [Google Domains](https://domains.google/) for use in Cloud Domains. To transfer a domain from another registrar, use the `TransferDomain` method instead. Since individual users can own domains in Google Domains, the calling user must have ownership permission on the domain.", + "deprecated": true, + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Imports a domain name from [Google Domains](https://domains.google/) for use in Cloud Domains. To transfer a domain from another registrar, use the `TransferDomain` method instead. Since individual users can own domains in Google Domains, the calling user must have ownership permission on the domain.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations:import", "httpMethod": "POST", "id": "domains.projects.locations.registrations.import", @@ -627,7 +629,8 @@ ] }, "retrieveImportableDomains": { - "description": "Lists domain names from [Google Domains](https://domains.google/) that can be imported to Cloud Domains using the `ImportDomain` method. Since individual users can own domains in Google Domains, the list of domains returned depends on the individual user making the call. Domains already managed by Cloud Domains are not returned.", + "deprecated": true, + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Lists domain names from [Google Domains](https://domains.google/) that can be imported to Cloud Domains using the `ImportDomain` method. Since individual users can own domains in Google Domains, the list of domains returned depends on the individual user making the call. Domains already managed by Cloud Domains are not returned.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations:retrieveImportableDomains", "httpMethod": "GET", "id": "domains.projects.locations.registrations.retrieveImportableDomains", @@ -693,7 +696,8 @@ ] }, "retrieveTransferParameters": { - "description": "Gets parameters needed to transfer a domain name from another registrar to Cloud Domains. For domains already managed by [Google Domains](https://domains.google/), use `ImportDomain` instead. Use the returned values to call `TransferDomain`.", + "deprecated": true, + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Gets parameters needed to transfer a domain name from another registrar to Cloud Domains. For domains already managed by [Google Domains](https://domains.google/), use `ImportDomain` instead. Use the returned values to call `TransferDomain`.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations:retrieveTransferParameters", "httpMethod": "GET", "id": "domains.projects.locations.registrations.retrieveTransferParameters", @@ -809,7 +813,8 @@ ] }, "transfer": { - "description": "Transfers a domain name from another registrar to Cloud Domains. For domains already managed by [Google Domains](https://domains.google/), use `ImportDomain` instead. Before calling this method, go to the domain's current registrar to unlock the domain for transfer and retrieve the domain's transfer authorization code. Then call `RetrieveTransferParameters` to confirm that the domain is unlocked and to get values needed to build a call to this method. A successful call creates a `Registration` resource in state `TRANSFER_PENDING`. It can take several days to complete the transfer process. The registrant can often speed up this process by approving the transfer through the current registrar, either by clicking a link in an email from the registrar or by visiting the registrar's website. A few minutes after transfer approval, the resource transitions to state `ACTIVE`, indicating that the transfer was successful. If the transfer is rejected or the request expires without being approved, the resource can end up in state `TRANSFER_FAILED`. If transfer fails, you can safely delete the resource and retry the transfer.", + "deprecated": true, + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Transfers a domain name from another registrar to Cloud Domains. For domains already managed by [Google Domains](https://domains.google/), use `ImportDomain` instead. Before calling this method, go to the domain's current registrar to unlock the domain for transfer and retrieve the domain's transfer authorization code. Then call `RetrieveTransferParameters` to confirm that the domain is unlocked and to get values needed to build a call to this method. A successful call creates a `Registration` resource in state `TRANSFER_PENDING`. It can take several days to complete the transfer process. The registrant can often speed up this process by approving the transfer through the current registrar, either by clicking a link in an email from the registrar or by visiting the registrar's website. A few minutes after transfer approval, the resource transitions to state `ACTIVE`, indicating that the transfer was successful. If the transfer is rejected or the request expires without being approved, the resource can end up in state `TRANSFER_FAILED`. If transfer fails, you can safely delete the resource and retry the transfer.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations:transfer", "httpMethod": "POST", "id": "domains.projects.locations.registrations.transfer", @@ -843,7 +848,7 @@ } } }, - "revision": "20230105", + "revision": "20240221", "rootUrl": "https://domains.googleapis.com/", "schemas": { "AuditConfig": { @@ -914,14 +919,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1037,11 +1042,17 @@ "PRIVATE_CONTACT_DATA", "REDACTED_CONTACT_DATA" ], + "enumDeprecated": [ + false, + false, + true, + false + ], "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.", - "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.", - "Some data from `ContactSettings` is publicly available. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." + "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" }, @@ -1094,7 +1105,8 @@ }, "googleDomainsDns": { "$ref": "GoogleDomainsDns", - "description": "The free DNS zone provided by [Google Domains](https://domains.google/)." + "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/)." } }, "type": "object" @@ -1213,7 +1225,8 @@ "type": "object" }, "ExportRegistrationRequest": { - "description": "Request for the `ExportRegistration` method.", + "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.", "id": "ExportRegistrationRequest", "properties": {}, "type": "object" @@ -1267,7 +1280,8 @@ "type": "object" }, "GoogleDomainsDns": { - "description": "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/).", + "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/).", "id": "GoogleDomainsDns", "properties": { "dsRecords": { @@ -1304,7 +1318,8 @@ "type": "object" }, "ImportDomainRequest": { - "description": "Request for the `ImportDomain` method.", + "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.", "id": "ImportDomainRequest", "properties": { "domainName": { @@ -1376,7 +1391,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1413,17 +1428,47 @@ "description": "Defines renewal, billing, and transfer settings for a `Registration`.", "id": "ManagementSettings", "properties": { - "renewalMethod": { - "description": "Output only. The renewal method for this `Registration`.", + "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`, 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", - "MANUAL_RENEWAL" + "MANUAL_RENEWAL", + "RENEWAL_DISABLED" + ], + "enumDeprecated": [ + false, + false, + true, + false ], "enumDescriptions": [ "The renewal method is undefined.", - "The domain is automatically renewed each year . To disable automatic renewals, delete the resource by calling `DeleteRegistration` or export it by calling `ExportRegistration`.", - "The domain must be explicitly renewed each year before its `expire_time`. This option is only available when the `Registration` is in state `EXPORTED`. To manage the domain's current billing and renewal settings, go to [Google Domains](https://domains.google/)." + "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.", + "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`\u2014for 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", + "MANUAL_RENEWAL", + "RENEWAL_DISABLED" + ], + "enumDeprecated": [ + false, + false, + true, + false + ], + "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.", + "The domain won't be renewed and will expire at its expiration time." ], "readOnly": true, "type": "string" @@ -1495,7 +1540,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" } }, @@ -1535,7 +1580,7 @@ "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/).", + "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": { @@ -1722,11 +1767,17 @@ "PRIVATE_CONTACT_DATA", "REDACTED_CONTACT_DATA" ], + "enumDeprecated": [ + false, + false, + true, + false + ], "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.", - "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.", - "Some data from `ContactSettings` is publicly available. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." + "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" }, @@ -1740,7 +1791,7 @@ "type": "object" }, "Registration": { - "description": "The `Registration` resource facilitates managing and configuring domain name registrations. There are several ways to create a new `Registration` resource: To create a new `Registration` resource, find a suitable domain name by calling the `SearchDomains` method with a query to see available domain name options. After choosing a name, call `RetrieveRegisterParameters` to ensure availability and obtain information like pricing, which is needed to build a call to `RegisterDomain`. Another way to create a new `Registration` is to transfer an existing domain from another registrar. First, go to the current registrar to unlock the domain for transfer and retrieve the domain's transfer authorization code. Then call `RetrieveTransferParameters` to confirm that the domain is unlocked and to get values needed to build a call to `TransferDomain`. Finally, you can create a new `Registration` by importing an existing domain managed with [Google Domains](https://domains.google/). First, call `RetrieveImportableDomains` to list domains to which the calling user has sufficient access. Then call `ImportDomain` on any domain names you want to use with Cloud Domains.", + "description": "The `Registration` resource facilitates managing and configuring domain name registrations. There are several ways to create a new `Registration` resource: To create a new `Registration` resource, find a suitable domain name by calling the `SearchDomains` method with a query to see available domain name options. After choosing a name, call `RetrieveRegisterParameters` to ensure availability and obtain information like pricing, which is needed to build a call to `RegisterDomain`. Another way to create a new `Registration` is to transfer an existing domain from another registrar (Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations)). First, go to the current registrar to unlock the domain for transfer and retrieve the domain's transfer authorization code. Then call `RetrieveTransferParameters` to confirm that the domain is unlocked and to get values needed to build a call to `TransferDomain`. Finally, you can create a new `Registration` by importing an existing domain managed with [Google Domains](https://domains.google/) (Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations)). First, call `RetrieveImportableDomains` to list domains to which the calling user has sufficient access. Then call `ImportDomain` on any domain names you want to use with Cloud Domains.", "id": "Registration", "properties": { "contactSettings": { @@ -1773,12 +1824,14 @@ "enum": [ "ISSUE_UNSPECIFIED", "CONTACT_SUPPORT", - "UNVERIFIED_EMAIL" + "UNVERIFIED_EMAIL", + "PROBLEM_WITH_BILLING" ], "enumDescriptions": [ "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`." + "[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`.", + "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" }, @@ -1834,7 +1887,20 @@ "IMPORT_PENDING", "ACTIVE", "SUSPENDED", - "EXPORTED" + "EXPORTED", + "EXPIRED" + ], + "enumDeprecated": [ + false, + false, + false, + true, + true, + true, + false, + false, + false, + false ], "enumDescriptions": [ "The state is undefined.", @@ -1843,9 +1909,10 @@ "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.", + "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 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." ], "readOnly": true, "type": "string" @@ -1859,11 +1926,17 @@ "PRIVATE_CONTACT_DATA", "REDACTED_CONTACT_DATA" ], + "enumDeprecated": [ + false, + false, + true, + false + ], "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.", - "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.", - "Some data from `ContactSettings` is publicly available. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." + "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" }, @@ -1871,7 +1944,8 @@ "type": "array" }, "transferFailureReason": { - "description": "Output only. The reason the domain transfer failed. Only set for domains in TRANSFER_FAILED state.", + "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.", "enum": [ "TRANSFER_FAILURE_REASON_UNSPECIFIED", "TRANSFER_FAILURE_REASON_UNKNOWN", @@ -1911,7 +1985,8 @@ "type": "object" }, "RetrieveImportableDomainsResponse": { - "description": "Response for the `RetrieveImportableDomains` method.", + "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.", "id": "RetrieveImportableDomainsResponse", "properties": { "domains": { @@ -1940,7 +2015,8 @@ "type": "object" }, "RetrieveTransferParametersResponse": { - "description": "Response for the `RetrieveTransferParameters` method.", + "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.", "id": "RetrieveTransferParametersResponse", "properties": { "transferParameters": { @@ -2036,7 +2112,8 @@ "type": "object" }, "TransferDomainRequest": { - "description": "Request for the `TransferDomain` method.", + "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.", "id": "TransferDomainRequest", "properties": { "authorizationCode": { @@ -2074,7 +2151,8 @@ "type": "object" }, "TransferParameters": { - "description": "Parameters required to transfer a domain from another registrar.", + "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.", "id": "TransferParameters", "properties": { "currentRegistrar": { @@ -2105,11 +2183,17 @@ "PRIVATE_CONTACT_DATA", "REDACTED_CONTACT_DATA" ], + "enumDeprecated": [ + false, + false, + true, + false + ], "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.", - "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.", - "Some data from `ContactSettings` is publicly available. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." + "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/etc/api/domains/v1alpha2/domains-api.json b/etc/api/domains/v1alpha2/domains-api.json index a6c4035add..7f07e1f105 100644 --- a/etc/api/domains/v1alpha2/domains-api.json +++ b/etc/api/domains/v1alpha2/domains-api.json @@ -205,7 +205,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "domains.projects.locations.operations.list", @@ -334,7 +334,7 @@ ] }, "delete": { - "description": "Deletes a `Registration` resource. This method works on any `Registration` resource using [Subscription or Commitment billing](/domains/pricing#billing-models), provided that the resource was created at least 1 day in the past. For `Registration` resources using [Monthly billing](/domains/pricing#billing-models), this method works if: * `state` is `EXPORTED` with `expire_time` in the past * `state` is `REGISTRATION_FAILED` * `state` is `TRANSFER_FAILED` When an active registration is successfully deleted, you can continue to use the domain in [Google Domains](https://domains.google/) until it expires. The calling user becomes the domain's sole owner in Google Domains, and permissions for the domain are subsequently managed there. The domain does not renew automatically unless the new owner sets up billing in Google Domains.", + "description": "Deletes a `Registration` resource. This method works on any `Registration` resource using [Subscription or Commitment billing](/domains/pricing#billing-models), provided that the resource was created at least 1 day in the past. When an active registration is successfully deleted, you can continue to use the domain in [Google Domains](https://domains.google/) until it expires. The calling user becomes the domain's sole owner in Google Domains, and permissions for the domain are subsequently managed there. The domain does not renew automatically unless the new owner sets up billing in Google Domains. After January 2024 you will only be able to delete `Registration` resources when `state` is one of: `EXPORTED`, `EXPIRED`,`REGISTRATION_FAILED` or `TRANSFER_FAILED`. See [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) for more details.", "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}", "httpMethod": "DELETE", "id": "domains.projects.locations.registrations.delete", @@ -359,7 +359,8 @@ ] }, "export": { - "description": "Exports a `Registration` resource, such that it is no longer managed by Cloud Domains. When an active domain is successfully exported, you can continue to use the domain in [Google Domains](https://domains.google/) until it expires. The calling user becomes the domain's sole owner in Google Domains, and permissions for the domain are subsequently managed there. The domain does not renew automatically unless the new owner sets up billing in Google Domains.", + "deprecated": true, + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Exports a `Registration` resource, such that it is no longer managed by Cloud Domains. When an active domain is successfully exported, you can continue to use the domain in [Google Domains](https://domains.google/) until it expires. The calling user becomes the domain's sole owner in Google Domains, and permissions for the domain are subsequently managed there. The domain does not renew automatically unless the new owner sets up billing in Google Domains.", "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:export", "httpMethod": "POST", "id": "domains.projects.locations.registrations.export", @@ -443,7 +444,8 @@ ] }, "import": { - "description": "Imports a domain name from [Google Domains](https://domains.google/) for use in Cloud Domains. To transfer a domain from another registrar, use the `TransferDomain` method instead. Since individual users can own domains in Google Domains, the calling user must have ownership permission on the domain.", + "deprecated": true, + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Imports a domain name from [Google Domains](https://domains.google/) for use in Cloud Domains. To transfer a domain from another registrar, use the `TransferDomain` method instead. Since individual users can own domains in Google Domains, the calling user must have ownership permission on the domain.", "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations:import", "httpMethod": "POST", "id": "domains.projects.locations.registrations.import", @@ -627,7 +629,8 @@ ] }, "retrieveImportableDomains": { - "description": "Lists domain names from [Google Domains](https://domains.google/) that can be imported to Cloud Domains using the `ImportDomain` method. Since individual users can own domains in Google Domains, the list of domains returned depends on the individual user making the call. Domains already managed by Cloud Domains are not returned.", + "deprecated": true, + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Lists domain names from [Google Domains](https://domains.google/) that can be imported to Cloud Domains using the `ImportDomain` method. Since individual users can own domains in Google Domains, the list of domains returned depends on the individual user making the call. Domains already managed by Cloud Domains are not returned.", "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations:retrieveImportableDomains", "httpMethod": "GET", "id": "domains.projects.locations.registrations.retrieveImportableDomains", @@ -693,7 +696,8 @@ ] }, "retrieveTransferParameters": { - "description": "Gets parameters needed to transfer a domain name from another registrar to Cloud Domains. For domains already managed by [Google Domains](https://domains.google/), use `ImportDomain` instead. Use the returned values to call `TransferDomain`.", + "deprecated": true, + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Gets parameters needed to transfer a domain name from another registrar to Cloud Domains. For domains already managed by [Google Domains](https://domains.google/), use `ImportDomain` instead. Use the returned values to call `TransferDomain`.", "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations:retrieveTransferParameters", "httpMethod": "GET", "id": "domains.projects.locations.registrations.retrieveTransferParameters", @@ -809,7 +813,8 @@ ] }, "transfer": { - "description": "Transfers a domain name from another registrar to Cloud Domains. For domains already managed by [Google Domains](https://domains.google/), use `ImportDomain` instead. Before calling this method, go to the domain's current registrar to unlock the domain for transfer and retrieve the domain's transfer authorization code. Then call `RetrieveTransferParameters` to confirm that the domain is unlocked and to get values needed to build a call to this method. A successful call creates a `Registration` resource in state `TRANSFER_PENDING`. It can take several days to complete the transfer process. The registrant can often speed up this process by approving the transfer through the current registrar, either by clicking a link in an email from the registrar or by visiting the registrar's website. A few minutes after transfer approval, the resource transitions to state `ACTIVE`, indicating that the transfer was successful. If the transfer is rejected or the request expires without being approved, the resource can end up in state `TRANSFER_FAILED`. If transfer fails, you can safely delete the resource and retry the transfer.", + "deprecated": true, + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Transfers a domain name from another registrar to Cloud Domains. For domains already managed by [Google Domains](https://domains.google/), use `ImportDomain` instead. Before calling this method, go to the domain's current registrar to unlock the domain for transfer and retrieve the domain's transfer authorization code. Then call `RetrieveTransferParameters` to confirm that the domain is unlocked and to get values needed to build a call to this method. A successful call creates a `Registration` resource in state `TRANSFER_PENDING`. It can take several days to complete the transfer process. The registrant can often speed up this process by approving the transfer through the current registrar, either by clicking a link in an email from the registrar or by visiting the registrar's website. A few minutes after transfer approval, the resource transitions to state `ACTIVE`, indicating that the transfer was successful. If the transfer is rejected or the request expires without being approved, the resource can end up in state `TRANSFER_FAILED`. If transfer fails, you can safely delete the resource and retry the transfer.", "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations:transfer", "httpMethod": "POST", "id": "domains.projects.locations.registrations.transfer", @@ -843,7 +848,7 @@ } } }, - "revision": "20230105", + "revision": "20240221", "rootUrl": "https://domains.googleapis.com/", "schemas": { "AuditConfig": { @@ -914,14 +919,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1037,11 +1042,17 @@ "PRIVATE_CONTACT_DATA", "REDACTED_CONTACT_DATA" ], + "enumDeprecated": [ + false, + false, + true, + false + ], "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.", - "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.", - "Some data from `ContactSettings` is publicly available. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." + "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" }, @@ -1094,7 +1105,8 @@ }, "googleDomainsDns": { "$ref": "GoogleDomainsDns", - "description": "The free DNS zone provided by [Google Domains](https://domains.google/)." + "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/)." } }, "type": "object" @@ -1213,7 +1225,8 @@ "type": "object" }, "ExportRegistrationRequest": { - "description": "Request for the `ExportRegistration` method.", + "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.", "id": "ExportRegistrationRequest", "properties": {}, "type": "object" @@ -1267,7 +1280,8 @@ "type": "object" }, "GoogleDomainsDns": { - "description": "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/).", + "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/).", "id": "GoogleDomainsDns", "properties": { "dsRecords": { @@ -1304,7 +1318,8 @@ "type": "object" }, "ImportDomainRequest": { - "description": "Request for the `ImportDomain` method.", + "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.", "id": "ImportDomainRequest", "properties": { "domainName": { @@ -1376,7 +1391,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1413,17 +1428,47 @@ "description": "Defines renewal, billing, and transfer settings for a `Registration`.", "id": "ManagementSettings", "properties": { - "renewalMethod": { - "description": "Output only. The renewal method for this `Registration`.", + "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`, 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", - "MANUAL_RENEWAL" + "MANUAL_RENEWAL", + "RENEWAL_DISABLED" + ], + "enumDeprecated": [ + false, + false, + true, + false ], "enumDescriptions": [ "The renewal method is undefined.", - "The domain is automatically renewed each year . To disable automatic renewals, delete the resource by calling `DeleteRegistration` or export it by calling `ExportRegistration`.", - "The domain must be explicitly renewed each year before its `expire_time`. This option is only available when the `Registration` is in state `EXPORTED`. To manage the domain's current billing and renewal settings, go to [Google Domains](https://domains.google/)." + "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.", + "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`\u2014for 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", + "MANUAL_RENEWAL", + "RENEWAL_DISABLED" + ], + "enumDeprecated": [ + false, + false, + true, + false + ], + "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.", + "The domain won't be renewed and will expire at its expiration time." ], "readOnly": true, "type": "string" @@ -1495,7 +1540,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" } }, @@ -1535,7 +1580,7 @@ "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/).", + "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": { @@ -1722,11 +1767,17 @@ "PRIVATE_CONTACT_DATA", "REDACTED_CONTACT_DATA" ], + "enumDeprecated": [ + false, + false, + true, + false + ], "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.", - "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.", - "Some data from `ContactSettings` is publicly available. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." + "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" }, @@ -1740,7 +1791,7 @@ "type": "object" }, "Registration": { - "description": "The `Registration` resource facilitates managing and configuring domain name registrations. There are several ways to create a new `Registration` resource: To create a new `Registration` resource, find a suitable domain name by calling the `SearchDomains` method with a query to see available domain name options. After choosing a name, call `RetrieveRegisterParameters` to ensure availability and obtain information like pricing, which is needed to build a call to `RegisterDomain`. Another way to create a new `Registration` is to transfer an existing domain from another registrar. First, go to the current registrar to unlock the domain for transfer and retrieve the domain's transfer authorization code. Then call `RetrieveTransferParameters` to confirm that the domain is unlocked and to get values needed to build a call to `TransferDomain`. Finally, you can create a new `Registration` by importing an existing domain managed with [Google Domains](https://domains.google/). First, call `RetrieveImportableDomains` to list domains to which the calling user has sufficient access. Then call `ImportDomain` on any domain names you want to use with Cloud Domains.", + "description": "The `Registration` resource facilitates managing and configuring domain name registrations. There are several ways to create a new `Registration` resource: To create a new `Registration` resource, find a suitable domain name by calling the `SearchDomains` method with a query to see available domain name options. After choosing a name, call `RetrieveRegisterParameters` to ensure availability and obtain information like pricing, which is needed to build a call to `RegisterDomain`. Another way to create a new `Registration` is to transfer an existing domain from another registrar (Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations)). First, go to the current registrar to unlock the domain for transfer and retrieve the domain's transfer authorization code. Then call `RetrieveTransferParameters` to confirm that the domain is unlocked and to get values needed to build a call to `TransferDomain`. Finally, you can create a new `Registration` by importing an existing domain managed with [Google Domains](https://domains.google/) (Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations)). First, call `RetrieveImportableDomains` to list domains to which the calling user has sufficient access. Then call `ImportDomain` on any domain names you want to use with Cloud Domains.", "id": "Registration", "properties": { "contactSettings": { @@ -1773,12 +1824,14 @@ "enum": [ "ISSUE_UNSPECIFIED", "CONTACT_SUPPORT", - "UNVERIFIED_EMAIL" + "UNVERIFIED_EMAIL", + "PROBLEM_WITH_BILLING" ], "enumDescriptions": [ "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`." + "[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`.", + "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" }, @@ -1834,7 +1887,20 @@ "IMPORT_PENDING", "ACTIVE", "SUSPENDED", - "EXPORTED" + "EXPORTED", + "EXPIRED" + ], + "enumDeprecated": [ + false, + false, + false, + true, + true, + true, + false, + false, + false, + false ], "enumDescriptions": [ "The state is undefined.", @@ -1843,9 +1909,10 @@ "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.", + "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 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." ], "readOnly": true, "type": "string" @@ -1859,11 +1926,17 @@ "PRIVATE_CONTACT_DATA", "REDACTED_CONTACT_DATA" ], + "enumDeprecated": [ + false, + false, + true, + false + ], "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.", - "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.", - "Some data from `ContactSettings` is publicly available. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." + "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" }, @@ -1871,7 +1944,8 @@ "type": "array" }, "transferFailureReason": { - "description": "Output only. The reason the domain transfer failed. Only set for domains in TRANSFER_FAILED state.", + "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.", "enum": [ "TRANSFER_FAILURE_REASON_UNSPECIFIED", "TRANSFER_FAILURE_REASON_UNKNOWN", @@ -1911,7 +1985,8 @@ "type": "object" }, "RetrieveImportableDomainsResponse": { - "description": "Response for the `RetrieveImportableDomains` method.", + "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.", "id": "RetrieveImportableDomainsResponse", "properties": { "domains": { @@ -1940,7 +2015,8 @@ "type": "object" }, "RetrieveTransferParametersResponse": { - "description": "Response for the `RetrieveTransferParameters` method.", + "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.", "id": "RetrieveTransferParametersResponse", "properties": { "transferParameters": { @@ -2036,7 +2112,8 @@ "type": "object" }, "TransferDomainRequest": { - "description": "Request for the `TransferDomain` method.", + "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.", "id": "TransferDomainRequest", "properties": { "authorizationCode": { @@ -2074,7 +2151,8 @@ "type": "object" }, "TransferParameters": { - "description": "Parameters required to transfer a domain from another registrar.", + "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.", "id": "TransferParameters", "properties": { "currentRegistrar": { @@ -2105,11 +2183,17 @@ "PRIVATE_CONTACT_DATA", "REDACTED_CONTACT_DATA" ], + "enumDeprecated": [ + false, + false, + true, + false + ], "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.", - "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.", - "Some data from `ContactSettings` is publicly available. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." + "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/etc/api/domains/v1beta1/domains-api.json b/etc/api/domains/v1beta1/domains-api.json index 795ddf227c..f8c50ec0d5 100644 --- a/etc/api/domains/v1beta1/domains-api.json +++ b/etc/api/domains/v1beta1/domains-api.json @@ -205,7 +205,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "domains.projects.locations.operations.list", @@ -334,7 +334,7 @@ ] }, "delete": { - "description": "Deletes a `Registration` resource. This method works on any `Registration` resource using [Subscription or Commitment billing](/domains/pricing#billing-models), provided that the resource was created at least 1 day in the past. For `Registration` resources using [Monthly billing](/domains/pricing#billing-models), this method works if: * `state` is `EXPORTED` with `expire_time` in the past * `state` is `REGISTRATION_FAILED` * `state` is `TRANSFER_FAILED` When an active registration is successfully deleted, you can continue to use the domain in [Google Domains](https://domains.google/) until it expires. The calling user becomes the domain's sole owner in Google Domains, and permissions for the domain are subsequently managed there. The domain does not renew automatically unless the new owner sets up billing in Google Domains.", + "description": "Deletes a `Registration` resource. This method works on any `Registration` resource using [Subscription or Commitment billing](/domains/pricing#billing-models), provided that the resource was created at least 1 day in the past. When an active registration is successfully deleted, you can continue to use the domain in [Google Domains](https://domains.google/) until it expires. The calling user becomes the domain's sole owner in Google Domains, and permissions for the domain are subsequently managed there. The domain does not renew automatically unless the new owner sets up billing in Google Domains. After January 2024 you will only be able to delete `Registration` resources when `state` is one of: `EXPORTED`, `EXPIRED`,`REGISTRATION_FAILED` or `TRANSFER_FAILED`. See [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) for more details.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}", "httpMethod": "DELETE", "id": "domains.projects.locations.registrations.delete", @@ -359,7 +359,8 @@ ] }, "export": { - "description": "Exports a `Registration` resource, such that it is no longer managed by Cloud Domains. When an active domain is successfully exported, you can continue to use the domain in [Google Domains](https://domains.google/) until it expires. The calling user becomes the domain's sole owner in Google Domains, and permissions for the domain are subsequently managed there. The domain does not renew automatically unless the new owner sets up billing in Google Domains.", + "deprecated": true, + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Exports a `Registration` resource, such that it is no longer managed by Cloud Domains. When an active domain is successfully exported, you can continue to use the domain in [Google Domains](https://domains.google/) until it expires. The calling user becomes the domain's sole owner in Google Domains, and permissions for the domain are subsequently managed there. The domain does not renew automatically unless the new owner sets up billing in Google Domains.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:export", "httpMethod": "POST", "id": "domains.projects.locations.registrations.export", @@ -443,7 +444,8 @@ ] }, "import": { - "description": "Imports a domain name from [Google Domains](https://domains.google/) for use in Cloud Domains. To transfer a domain from another registrar, use the `TransferDomain` method instead. Since individual users can own domains in Google Domains, the calling user must have ownership permission on the domain.", + "deprecated": true, + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Imports a domain name from [Google Domains](https://domains.google/) for use in Cloud Domains. To transfer a domain from another registrar, use the `TransferDomain` method instead. Since individual users can own domains in Google Domains, the calling user must have ownership permission on the domain.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registrations:import", "httpMethod": "POST", "id": "domains.projects.locations.registrations.import", @@ -627,7 +629,8 @@ ] }, "retrieveImportableDomains": { - "description": "Lists domain names from [Google Domains](https://domains.google/) that can be imported to Cloud Domains using the `ImportDomain` method. Since individual users can own domains in Google Domains, the list of domains returned depends on the individual user making the call. Domains already managed by Cloud Domains are not returned.", + "deprecated": true, + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Lists domain names from [Google Domains](https://domains.google/) that can be imported to Cloud Domains using the `ImportDomain` method. Since individual users can own domains in Google Domains, the list of domains returned depends on the individual user making the call. Domains already managed by Cloud Domains are not returned.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registrations:retrieveImportableDomains", "httpMethod": "GET", "id": "domains.projects.locations.registrations.retrieveImportableDomains", @@ -693,7 +696,8 @@ ] }, "retrieveTransferParameters": { - "description": "Gets parameters needed to transfer a domain name from another registrar to Cloud Domains. For domains already managed by [Google Domains](https://domains.google/), use `ImportDomain` instead. Use the returned values to call `TransferDomain`.", + "deprecated": true, + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Gets parameters needed to transfer a domain name from another registrar to Cloud Domains. For domains already managed by [Google Domains](https://domains.google/), use `ImportDomain` instead. Use the returned values to call `TransferDomain`.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registrations:retrieveTransferParameters", "httpMethod": "GET", "id": "domains.projects.locations.registrations.retrieveTransferParameters", @@ -809,7 +813,8 @@ ] }, "transfer": { - "description": "Transfers a domain name from another registrar to Cloud Domains. For domains already managed by [Google Domains](https://domains.google/), use `ImportDomain` instead. Before calling this method, go to the domain's current registrar to unlock the domain for transfer and retrieve the domain's transfer authorization code. Then call `RetrieveTransferParameters` to confirm that the domain is unlocked and to get values needed to build a call to this method. A successful call creates a `Registration` resource in state `TRANSFER_PENDING`. It can take several days to complete the transfer process. The registrant can often speed up this process by approving the transfer through the current registrar, either by clicking a link in an email from the registrar or by visiting the registrar's website. A few minutes after transfer approval, the resource transitions to state `ACTIVE`, indicating that the transfer was successful. If the transfer is rejected or the request expires without being approved, the resource can end up in state `TRANSFER_FAILED`. If transfer fails, you can safely delete the resource and retry the transfer.", + "deprecated": true, + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Transfers a domain name from another registrar to Cloud Domains. For domains already managed by [Google Domains](https://domains.google/), use `ImportDomain` instead. Before calling this method, go to the domain's current registrar to unlock the domain for transfer and retrieve the domain's transfer authorization code. Then call `RetrieveTransferParameters` to confirm that the domain is unlocked and to get values needed to build a call to this method. A successful call creates a `Registration` resource in state `TRANSFER_PENDING`. It can take several days to complete the transfer process. The registrant can often speed up this process by approving the transfer through the current registrar, either by clicking a link in an email from the registrar or by visiting the registrar's website. A few minutes after transfer approval, the resource transitions to state `ACTIVE`, indicating that the transfer was successful. If the transfer is rejected or the request expires without being approved, the resource can end up in state `TRANSFER_FAILED`. If transfer fails, you can safely delete the resource and retry the transfer.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registrations:transfer", "httpMethod": "POST", "id": "domains.projects.locations.registrations.transfer", @@ -843,7 +848,7 @@ } } }, - "revision": "20230105", + "revision": "20240221", "rootUrl": "https://domains.googleapis.com/", "schemas": { "AuditConfig": { @@ -914,14 +919,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1037,11 +1042,17 @@ "PRIVATE_CONTACT_DATA", "REDACTED_CONTACT_DATA" ], + "enumDeprecated": [ + false, + false, + true, + false + ], "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.", - "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.", - "Some data from `ContactSettings` is publicly available. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." + "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" }, @@ -1094,7 +1105,8 @@ }, "googleDomainsDns": { "$ref": "GoogleDomainsDns", - "description": "The free DNS zone provided by [Google Domains](https://domains.google/)." + "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/)." } }, "type": "object" @@ -1213,7 +1225,8 @@ "type": "object" }, "ExportRegistrationRequest": { - "description": "Request for the `ExportRegistration` method.", + "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.", "id": "ExportRegistrationRequest", "properties": {}, "type": "object" @@ -1267,7 +1280,8 @@ "type": "object" }, "GoogleDomainsDns": { - "description": "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/).", + "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/).", "id": "GoogleDomainsDns", "properties": { "dsRecords": { @@ -1304,7 +1318,8 @@ "type": "object" }, "ImportDomainRequest": { - "description": "Request for the `ImportDomain` method.", + "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.", "id": "ImportDomainRequest", "properties": { "domainName": { @@ -1376,7 +1391,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1413,17 +1428,47 @@ "description": "Defines renewal, billing, and transfer settings for a `Registration`.", "id": "ManagementSettings", "properties": { - "renewalMethod": { - "description": "Output only. The renewal method for this `Registration`.", + "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`, 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", - "MANUAL_RENEWAL" + "MANUAL_RENEWAL", + "RENEWAL_DISABLED" + ], + "enumDeprecated": [ + false, + false, + true, + false ], "enumDescriptions": [ "The renewal method is undefined.", - "The domain is automatically renewed each year . To disable automatic renewals, delete the resource by calling `DeleteRegistration` or export it by calling `ExportRegistration`.", - "The domain must be explicitly renewed each year before its `expire_time`. This option is only available when the `Registration` is in state `EXPORTED`. To manage the domain's current billing and renewal settings, go to [Google Domains](https://domains.google/)." + "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.", + "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`\u2014for 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", + "MANUAL_RENEWAL", + "RENEWAL_DISABLED" + ], + "enumDeprecated": [ + false, + false, + true, + false + ], + "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.", + "The domain won't be renewed and will expire at its expiration time." ], "readOnly": true, "type": "string" @@ -1495,7 +1540,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" } }, @@ -1535,7 +1580,7 @@ "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/).", + "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": { @@ -1722,11 +1767,17 @@ "PRIVATE_CONTACT_DATA", "REDACTED_CONTACT_DATA" ], + "enumDeprecated": [ + false, + false, + true, + false + ], "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.", - "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.", - "Some data from `ContactSettings` is publicly available. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." + "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" }, @@ -1740,7 +1791,7 @@ "type": "object" }, "Registration": { - "description": "The `Registration` resource facilitates managing and configuring domain name registrations. There are several ways to create a new `Registration` resource: To create a new `Registration` resource, find a suitable domain name by calling the `SearchDomains` method with a query to see available domain name options. After choosing a name, call `RetrieveRegisterParameters` to ensure availability and obtain information like pricing, which is needed to build a call to `RegisterDomain`. Another way to create a new `Registration` is to transfer an existing domain from another registrar. First, go to the current registrar to unlock the domain for transfer and retrieve the domain's transfer authorization code. Then call `RetrieveTransferParameters` to confirm that the domain is unlocked and to get values needed to build a call to `TransferDomain`. Finally, you can create a new `Registration` by importing an existing domain managed with [Google Domains](https://domains.google/). First, call `RetrieveImportableDomains` to list domains to which the calling user has sufficient access. Then call `ImportDomain` on any domain names you want to use with Cloud Domains.", + "description": "The `Registration` resource facilitates managing and configuring domain name registrations. There are several ways to create a new `Registration` resource: To create a new `Registration` resource, find a suitable domain name by calling the `SearchDomains` method with a query to see available domain name options. After choosing a name, call `RetrieveRegisterParameters` to ensure availability and obtain information like pricing, which is needed to build a call to `RegisterDomain`. Another way to create a new `Registration` is to transfer an existing domain from another registrar (Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations)). First, go to the current registrar to unlock the domain for transfer and retrieve the domain's transfer authorization code. Then call `RetrieveTransferParameters` to confirm that the domain is unlocked and to get values needed to build a call to `TransferDomain`. Finally, you can create a new `Registration` by importing an existing domain managed with [Google Domains](https://domains.google/) (Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations)). First, call `RetrieveImportableDomains` to list domains to which the calling user has sufficient access. Then call `ImportDomain` on any domain names you want to use with Cloud Domains.", "id": "Registration", "properties": { "contactSettings": { @@ -1773,12 +1824,14 @@ "enum": [ "ISSUE_UNSPECIFIED", "CONTACT_SUPPORT", - "UNVERIFIED_EMAIL" + "UNVERIFIED_EMAIL", + "PROBLEM_WITH_BILLING" ], "enumDescriptions": [ "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`." + "[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`.", + "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" }, @@ -1834,7 +1887,20 @@ "IMPORT_PENDING", "ACTIVE", "SUSPENDED", - "EXPORTED" + "EXPORTED", + "EXPIRED" + ], + "enumDeprecated": [ + false, + false, + false, + true, + true, + true, + false, + false, + false, + false ], "enumDescriptions": [ "The state is undefined.", @@ -1843,9 +1909,10 @@ "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.", + "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 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." ], "readOnly": true, "type": "string" @@ -1859,11 +1926,17 @@ "PRIVATE_CONTACT_DATA", "REDACTED_CONTACT_DATA" ], + "enumDeprecated": [ + false, + false, + true, + false + ], "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.", - "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.", - "Some data from `ContactSettings` is publicly available. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." + "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" }, @@ -1871,7 +1944,8 @@ "type": "array" }, "transferFailureReason": { - "description": "Output only. The reason the domain transfer failed. Only set for domains in TRANSFER_FAILED state.", + "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.", "enum": [ "TRANSFER_FAILURE_REASON_UNSPECIFIED", "TRANSFER_FAILURE_REASON_UNKNOWN", @@ -1911,7 +1985,8 @@ "type": "object" }, "RetrieveImportableDomainsResponse": { - "description": "Response for the `RetrieveImportableDomains` method.", + "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.", "id": "RetrieveImportableDomainsResponse", "properties": { "domains": { @@ -1940,7 +2015,8 @@ "type": "object" }, "RetrieveTransferParametersResponse": { - "description": "Response for the `RetrieveTransferParameters` method.", + "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.", "id": "RetrieveTransferParametersResponse", "properties": { "transferParameters": { @@ -2036,7 +2112,8 @@ "type": "object" }, "TransferDomainRequest": { - "description": "Request for the `TransferDomain` method.", + "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.", "id": "TransferDomainRequest", "properties": { "authorizationCode": { @@ -2074,7 +2151,8 @@ "type": "object" }, "TransferParameters": { - "description": "Parameters required to transfer a domain from another registrar.", + "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.", "id": "TransferParameters", "properties": { "currentRegistrar": { @@ -2105,11 +2183,17 @@ "PRIVATE_CONTACT_DATA", "REDACTED_CONTACT_DATA" ], + "enumDeprecated": [ + false, + false, + true, + false + ], "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.", - "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.", - "Some data from `ContactSettings` is publicly available. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." + "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/etc/api/domainsrdap/v1/domainsrdap-api.json b/etc/api/domainsrdap/v1/domainsrdap-api.json index e2c0e67cae..e3db48ba04 100644 --- a/etc/api/domainsrdap/v1/domainsrdap-api.json +++ b/etc/api/domainsrdap/v1/domainsrdap-api.json @@ -289,7 +289,7 @@ } } }, - "revision": "20230124", + "revision": "20240304", "rootUrl": "https://domainsrdap.googleapis.com/", "schemas": { "HttpBody": { diff --git a/etc/api/doubleclicksearch/v2/doubleclicksearch-api.json b/etc/api/doubleclicksearch/v2/doubleclicksearch-api.json index 9545dfd4d3..55fccf3631 100644 --- a/etc/api/doubleclicksearch/v2/doubleclicksearch-api.json +++ b/etc/api/doubleclicksearch/v2/doubleclicksearch-api.json @@ -543,7 +543,7 @@ } } }, - "revision": "20230118", + "revision": "20240227", "rootUrl": "https://doubleclicksearch.googleapis.com/", "schemas": { "Availability": { @@ -619,6 +619,20 @@ "format": "int64", "type": "string" }, + "adUserDataConsent": { + "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", + "DENIED" + ], + "enumDescriptions": [ + "Not specified.", + "Granted.", + "Denied." + ], + "type": "string" + }, "advertiserId": { "description": "DS advertiser ID.", "format": "int64", diff --git a/etc/api/drive/v2/drive-api.json b/etc/api/drive/v2/drive-api.json index a8aed05f73..f5a73edfeb 100644 --- a/etc/api/drive/v2/drive-api.json +++ b/etc/api/drive/v2/drive-api.json @@ -35,32 +35,59 @@ "basePath": "/drive/v2/", "baseUrl": "https://www.googleapis.com/drive/v2/", "batchPath": "batch/drive/v2", - "description": "Manages files in Drive including uploading, downloading, searching, detecting changes, and updating sharing permissions.", + "description": "The Google Drive API allows clients to access resources from Google Drive.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/drive/", - "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/byG3pWBUi-1LOkF3mhOR7Bw-WBQ\"", "icons": { - "x16": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_16.png", - "x32": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_32.png" + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" }, "id": "drive:v2", "kind": "discovery#restDescription", + "mtlsRootUrl": "https://www.mtls.googleapis.com/", "name": "drive", "ownerDomain": "google.com", "ownerName": "Google", "parameters": { - "alt": { - "default": "json", - "description": "Data format for the response.", + "$.xgafv": { + "description": "V1 error format.", "enum": [ - "json" + "1", + "2" ], "enumDescriptions": [ - "Responses with Content-Type of application/json" + "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", @@ -83,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" }, - "userIp": { - "description": "Deprecated. Please use quotaUser instead.", + "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" } @@ -99,12 +131,14 @@ "methods": { "get": { "description": "Gets the information about the current user along with Drive API settings", + "flatPath": "about", "httpMethod": "GET", "id": "drive.about.get", + "parameterOrder": [], "parameters": { "includeSubscribed": { "default": "true", - "description": "Whether to count changes outside the My Drive hierarchy. When set to false, changes to files such as those in the Application Data folder or shared files which have not been added to My Drive will be omitted from the maxChangeIdCount.", + "description": "Whether to count changes outside the My Drive hierarchy. When set to false, changes to files such as those in the Application Data folder or shared files which have not been added to My Drive will be omitted from the `maxChangeIdCount`.", "location": "query", "type": "boolean" }, @@ -142,6 +176,7 @@ "methods": { "get": { "description": "Gets a specific app.", + "flatPath": "apps/{appId}", "httpMethod": "GET", "id": "drive.apps.get", "parameterOrder": [ @@ -171,18 +206,20 @@ }, "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 for open with filtering. All apps within the given app query scope which can open any of the given file extensions will be included in the response. If appFilterMimeTypes are provided as well, the result is a union of the two resulting app lists.", + "description": "A comma-separated list of file extensions for open with filtering. All apps within the given app query scope which can open any of the given file extensions will be 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 MIME types for open with filtering. All apps 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.", + "description": "A comma-separated list of MIME types for open with filtering. All apps 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" }, @@ -205,7 +242,8 @@ "changes": { "methods": { "get": { - "description": "Deprecated - Use changes.getStartPageToken and changes.list to retrieve recent changes.", + "description": "Deprecated: Use `changes.getStartPageToken` and `changes.list` to retrieve recent changes.", + "flatPath": "changes/{changeId}", "httpMethod": "GET", "id": "drive.changes.get", "parameterOrder": [ @@ -219,7 +257,7 @@ "type": "string" }, "driveId": { - "description": "The shared drive from which the change is returned.", + "description": "The shared drive from which the change will be returned.", "location": "query", "type": "string" }, @@ -231,12 +269,14 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, "teamDriveId": { - "description": "Deprecated use driveId instead.", + "deprecated": true, + "description": "Deprecated: Use `driveId` instead.", "location": "query", "type": "string" } @@ -258,11 +298,13 @@ }, "getStartPageToken": { "description": "Gets the starting pageToken for listing future changes.", + "flatPath": "changes/startPageToken", "httpMethod": "GET", "id": "drive.changes.getStartPageToken", + "parameterOrder": [], "parameters": { "driveId": { - "description": "The ID of the shared drive for which the starting pageToken for listing future changes from that shared drive is returned.", + "description": "The ID of the shared drive for which the starting pageToken for listing future changes from that shared drive will be returned.", "location": "query", "type": "string" }, @@ -274,12 +316,14 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, "teamDriveId": { - "description": "Deprecated use driveId instead.", + "deprecated": true, + "description": "Deprecated: Use `driveId` instead.", "location": "query", "type": "string" } @@ -301,11 +345,13 @@ }, "list": { "description": "Lists the changes for a user or shared drive.", + "flatPath": "changes", "httpMethod": "GET", "id": "drive.changes.list", + "parameterOrder": [], "parameters": { "driveId": { - "description": "The shared drive from which changes are returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.", + "description": "The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.", "location": "query", "type": "string" }, @@ -328,24 +374,25 @@ "type": "boolean" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, "includePermissionsForView": { - "description": "Specifies which additional view's permissions to include in the response. Only 'published' is supported.", + "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.", "location": "query", "type": "string" }, "includeSubscribed": { "default": "true", - "description": "Whether to include changes outside the My Drive hierarchy in the result. When set to false, changes to files such as those in the Application Data folder or shared files which have not been added to My Drive are omitted from the result.", + "description": "Whether to include changes outside the My Drive hierarchy in the result. When set to false, changes to files such as those in the Application Data folder or shared files which have not been added to My Drive will be omitted from the result.", "location": "query", "type": "boolean" }, "includeTeamDriveItems": { "default": "false", - "description": "Deprecated use includeItemsFromAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `includeItemsFromAllDrives` instead.", "location": "query", "type": "boolean" }, @@ -358,17 +405,18 @@ "type": "integer" }, "pageToken": { - "description": "The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response or to the response from the getStartPageToken method.", + "description": "The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response or to the response from the getStartPageToken method.", "location": "query", "type": "string" }, "spaces": { - "description": "A comma-separated list of spaces to query. Supported values are 'drive', 'appDataFolder' and 'photos'.", + "description": "A comma-separated list of spaces to query. Supported values are `drive`, `appDataFolder` and `photos`.", "location": "query", "type": "string" }, "startChangeId": { - "description": "Deprecated - use pageToken instead.", + "deprecated": true, + "description": "Deprecated: Use `pageToken` instead.", "format": "int64", "location": "query", "type": "string" @@ -381,12 +429,14 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, "teamDriveId": { - "description": "Deprecated use driveId instead.", + "deprecated": true, + "description": "Deprecated: Use `driveId` instead.", "location": "query", "type": "string" } @@ -409,11 +459,13 @@ }, "watch": { "description": "Subscribe to changes for a user.", + "flatPath": "changes/watch", "httpMethod": "POST", "id": "drive.changes.watch", + "parameterOrder": [], "parameters": { "driveId": { - "description": "The shared drive from which changes are returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.", + "description": "The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.", "location": "query", "type": "string" }, @@ -436,24 +488,25 @@ "type": "boolean" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, "includePermissionsForView": { - "description": "Specifies which additional view's permissions to include in the response. Only 'published' is supported.", + "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.", "location": "query", "type": "string" }, "includeSubscribed": { "default": "true", - "description": "Whether to include changes outside the My Drive hierarchy in the result. When set to false, changes to files such as those in the Application Data folder or shared files which have not been added to My Drive are omitted from the result.", + "description": "Whether to include changes outside the My Drive hierarchy in the result. When set to false, changes to files such as those in the Application Data folder or shared files which have not been added to My Drive will be omitted from the result.", "location": "query", "type": "boolean" }, "includeTeamDriveItems": { "default": "false", - "description": "Deprecated use includeItemsFromAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `includeItemsFromAllDrives` instead.", "location": "query", "type": "boolean" }, @@ -466,17 +519,18 @@ "type": "integer" }, "pageToken": { - "description": "The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response or to the response from the getStartPageToken method.", + "description": "The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response or to the response from the getStartPageToken method.", "location": "query", "type": "string" }, "spaces": { - "description": "A comma-separated list of spaces to query. Supported values are 'drive', 'appDataFolder' and 'photos'.", + "description": "A comma-separated list of spaces to query. Supported values are `drive`, `appDataFolder` and `photos`.", "location": "query", "type": "string" }, "startChangeId": { - "description": "Deprecated - use pageToken instead.", + "deprecated": true, + "description": "Deprecated: Use `pageToken` instead.", "format": "int64", "location": "query", "type": "string" @@ -489,12 +543,14 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, "teamDriveId": { - "description": "Deprecated use driveId instead.", + "deprecated": true, + "description": "Deprecated: Use `driveId` instead.", "location": "query", "type": "string" } @@ -524,9 +580,12 @@ "channels": { "methods": { "stop": { - "description": "Stop watching resources through this channel", + "description": "Stops watching resources through this channel.", + "flatPath": "channels/stop", "httpMethod": "POST", "id": "drive.channels.stop", + "parameterOrder": [], + "parameters": {}, "path": "channels/stop", "request": { "$ref": "Channel", @@ -549,6 +608,7 @@ "methods": { "delete": { "description": "Removes a child from a folder.", + "flatPath": "files/{folderId}/children/{childId}", "httpMethod": "DELETE", "id": "drive.children.delete", "parameterOrder": [ @@ -564,7 +624,8 @@ }, "enforceSingleParent": { "default": "false", - "description": "Deprecated. If an item is not in a shared drive and its last parent is deleted but the item itself is not, the item will be placed under its owner's root.", + "deprecated": true, + "description": "Deprecated: If an item is not in a shared drive and its last parent is removed, the item is placed under its owner's root.", "location": "query", "type": "boolean" }, @@ -583,6 +644,7 @@ }, "get": { "description": "Gets a specific child reference.", + "flatPath": "files/{folderId}/children/{childId}", "httpMethod": "GET", "id": "drive.children.get", "parameterOrder": [ @@ -619,6 +681,7 @@ }, "insert": { "description": "Inserts a file into a folder.", + "flatPath": "files/{folderId}/children", "httpMethod": "POST", "id": "drive.children.insert", "parameterOrder": [ @@ -627,7 +690,8 @@ "parameters": { "enforceSingleParent": { "default": "false", - "description": "Deprecated. Adding files to multiple folders is no longer supported. Use shortcuts instead.", + "deprecated": true, + "description": "Deprecated: Adding files to multiple folders is no longer supported. Use `shortcuts` instead.", "location": "query", "type": "boolean" }, @@ -645,7 +709,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" } @@ -665,6 +730,7 @@ }, "list": { "description": "Lists a folder's children.", + "flatPath": "files/{folderId}/children", "httpMethod": "GET", "id": "drive.children.list", "parameterOrder": [ @@ -686,7 +752,7 @@ "type": "integer" }, "orderBy": { - "description": "A comma-separated list of sort keys. Valid keys are 'createdDate', 'folder', 'lastViewedByMeDate', 'modifiedByMeDate', 'modifiedDate', 'quotaBytesUsed', 'recency', 'sharedWithMeDate', 'starred', and 'title'. Each key sorts ascending by default, but may be reversed with the 'desc' modifier. Example usage: ?orderBy=folder,modifiedDate desc,title. Please note that there is a current limitation for users with approximately one million files in which the requested sort order is ignored.", + "description": "A comma-separated list of sort keys. Valid keys are `createdDate`, `folder`, `lastViewedByMeDate`, `modifiedByMeDate`, `modifiedDate`, `quotaBytesUsed`, `recency`, `sharedWithMeDate`, `starred`, and `title`. Each key sorts ascending by default, but may be reversed with the `desc` modifier. Example usage: ?orderBy=folder,modifiedDate desc,title. Please note that there is a current limitation for users with approximately one million files in which the requested sort order is ignored.", "location": "query", "type": "string" }, @@ -721,6 +787,7 @@ "methods": { "delete": { "description": "Deletes a comment.", + "flatPath": "files/{fileId}/comments/{commentId}", "httpMethod": "DELETE", "id": "drive.comments.delete", "parameterOrder": [ @@ -749,6 +816,7 @@ }, "get": { "description": "Gets a comment by ID.", + "flatPath": "files/{fileId}/comments/{commentId}", "httpMethod": "GET", "id": "drive.comments.get", "parameterOrder": [ @@ -787,6 +855,7 @@ }, "insert": { "description": "Creates a new comment on the given file.", + "flatPath": "files/{fileId}/comments", "httpMethod": "POST", "id": "drive.comments.insert", "parameterOrder": [ @@ -814,6 +883,7 @@ }, "list": { "description": "Lists a file's comments.", + "flatPath": "files/{fileId}/comments", "httpMethod": "GET", "id": "drive.comments.list", "parameterOrder": [ @@ -864,6 +934,7 @@ }, "patch": { "description": "Updates an existing comment.", + "flatPath": "files/{fileId}/comments/{commentId}", "httpMethod": "PATCH", "id": "drive.comments.patch", "parameterOrder": [ @@ -898,6 +969,7 @@ }, "update": { "description": "Updates an existing comment.", + "flatPath": "files/{fileId}/comments/{commentId}", "httpMethod": "PUT", "id": "drive.comments.update", "parameterOrder": [ @@ -935,7 +1007,8 @@ "drives": { "methods": { "delete": { - "description": "Permanently deletes a shared drive for which the user is an organizer. The shared drive cannot contain any untrashed items.", + "description": "Permanently deletes a shared drive for which the user is an `organizer`. The shared drive cannot contain any untrashed items.", + "flatPath": "drives/{driveId}", "httpMethod": "DELETE", "id": "drive.drives.delete", "parameterOrder": [ @@ -944,7 +1017,7 @@ "parameters": { "allowItemDeletion": { "default": "false", - "description": "Whether any items inside the shared drive should also be deleted. This option is only supported when useDomainAdminAccess is also set to true.", + "description": "Whether any items inside the shared drive should also be deleted. This option is only supported when `useDomainAdminAccess` is also set to `true`.", "location": "query", "type": "boolean" }, @@ -968,6 +1041,7 @@ }, "get": { "description": "Gets a shared drive's metadata by ID.", + "flatPath": "drives/{driveId}", "httpMethod": "GET", "id": "drive.drives.get", "parameterOrder": [ @@ -998,6 +1072,7 @@ }, "hide": { "description": "Hides a shared drive from the default view.", + "flatPath": "drives/{driveId}/hide", "httpMethod": "POST", "id": "drive.drives.hide", "parameterOrder": [ @@ -1021,6 +1096,7 @@ }, "insert": { "description": "Creates a new shared drive.", + "flatPath": "drives", "httpMethod": "POST", "id": "drive.drives.insert", "parameterOrder": [ @@ -1028,7 +1104,7 @@ ], "parameters": { "requestId": { - "description": "An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a shared drive. A repeated request by the same user and with the same request ID will avoid creating duplicates by attempting to create the same shared drive. If the shared drive already exists a 409 error will be returned.", + "description": "Required. An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a shared drive. A repeated request by the same user and with the same request ID will avoid creating duplicates by attempting to create the same shared drive. If the shared drive already exists a 409 error will be returned.", "location": "query", "required": true, "type": "string" @@ -1046,9 +1122,11 @@ ] }, "list": { - "description": "Lists the user's shared drives.", + "description": " Lists the user's shared drives. This method accepts the `q` parameter, which is a search query combining one or more search terms. For more information, see the [Search for shared drives](/drive/api/guides/search-shareddrives) guide.", + "flatPath": "drives", "httpMethod": "GET", "id": "drive.drives.list", + "parameterOrder": [], "parameters": { "maxResults": { "default": "10", @@ -1087,6 +1165,7 @@ }, "unhide": { "description": "Restores a shared drive to the default view.", + "flatPath": "drives/{driveId}/unhide", "httpMethod": "POST", "id": "drive.drives.unhide", "parameterOrder": [ @@ -1110,6 +1189,7 @@ }, "update": { "description": "Updates the metadata for a shared drive.", + "flatPath": "drives/{driveId}", "httpMethod": "PUT", "id": "drive.drives.update", "parameterOrder": [ @@ -1145,7 +1225,8 @@ "files": { "methods": { "copy": { - "description": "Creates a copy of the specified file. Folders cannot be copied.", + "description": "Creates a copy of the specified file.", + "flatPath": "files/{fileId}/copy", "httpMethod": "POST", "id": "drive.files.copy", "parameterOrder": [ @@ -1160,7 +1241,8 @@ }, "enforceSingleParent": { "default": "false", - "description": "Deprecated. Copying files into multiple folders is no longer supported. Use shortcuts instead.", + "deprecated": true, + "description": "Deprecated: Copying files into multiple folders is no longer supported. Use shortcuts instead.", "location": "query", "type": "boolean" }, @@ -1171,12 +1253,12 @@ "type": "string" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, "includePermissionsForView": { - "description": "Specifies which additional view's permissions to include in the response. Only 'published' is supported.", + "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.", "location": "query", "type": "string" }, @@ -1187,7 +1269,7 @@ "type": "boolean" }, "ocrLanguage": { - "description": "If ocr is true, hints at the language to use. Valid values are BCP 47 codes.", + "description": "If `ocr` is true, hints at the language to use. Valid values are BCP 47 codes.", "location": "query", "type": "string" }, @@ -1205,7 +1287,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, @@ -1250,7 +1333,8 @@ ] }, "delete": { - "description": "Permanently deletes a file by ID. Skips the trash. The currently authenticated user must own the file or be an organizer on the parent for shared drive files.", + "description": "Permanently deletes a file owned by the user without moving it to the trash. If the file belongs to a shared drive, the user must be an `organizer` on the parent folder. If the target is a folder, all descendants owned by the user are also deleted.", + "flatPath": "files/{fileId}", "httpMethod": "DELETE", "id": "drive.files.delete", "parameterOrder": [ @@ -1259,7 +1343,8 @@ "parameters": { "enforceSingleParent": { "default": "false", - "description": "Deprecated. If an item is not in a shared drive and its last parent is deleted but the item itself is not, the item will be placed under its owner's root.", + "deprecated": true, + "description": "Deprecated: If an item is not in a shared drive and its last parent is deleted but the item itself is not, the item is placed under its owner's root.", "location": "query", "type": "boolean" }, @@ -1277,7 +1362,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" } @@ -1291,12 +1377,20 @@ }, "emptyTrash": { "description": "Permanently deletes all of the user's trashed files.", + "flatPath": "files/trash", "httpMethod": "DELETE", "id": "drive.files.emptyTrash", + "parameterOrder": [], "parameters": { + "driveId": { + "description": "If set, empties the trash of the provided shared drive.", + "location": "query", + "type": "string" + }, "enforceSingleParent": { "default": "false", - "description": "Deprecated. If an item is not in a shared drive and its last parent is deleted but the item itself is not, the item will be placed under its owner's root.", + "deprecated": true, + "description": "Deprecated: If an item is not in a shared drive and its last parent is deleted but the item itself is not, the item is placed under its owner's root.", "location": "query", "type": "boolean" } @@ -1308,6 +1402,7 @@ }, "export": { "description": "Exports a Google Workspace document to the requested MIME type and returns exported byte content. Note that the exported content is limited to 10MB.", + "flatPath": "files/{fileId}/export", "httpMethod": "GET", "id": "drive.files.export", "parameterOrder": [ @@ -1322,7 +1417,7 @@ "type": "string" }, "mimeType": { - "description": "The MIME type of the format requested for this export.", + "description": "Required. The MIME type of the format requested for this export.", "location": "query", "required": true, "type": "string" @@ -1334,12 +1429,15 @@ "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.readonly" ], - "supportsMediaDownload": true + "supportsMediaDownload": true, + "useMediaDownloadService": true }, "generateIds": { "description": "Generates a set of file IDs which can be provided in insert or copy requests.", + "flatPath": "files/generateIds", "httpMethod": "GET", "id": "drive.files.generateIds", + "parameterOrder": [], "parameters": { "maxResults": { "default": "10", @@ -1352,13 +1450,13 @@ }, "space": { "default": "drive", - "description": "The space in which the IDs can be used to create new files. Supported values are 'drive' and 'appDataFolder'. (Default: 'drive')", + "description": "The space in which the IDs can be used to create new files. Supported values are `drive` and `appDataFolder`. (Default: `drive`)", "location": "query", "type": "string" }, "type": { "default": "files", - "description": "The type of items which the IDs can be used for. Supported values are 'files' and 'shortcuts'. Note that 'shortcuts' are only supported in the drive 'space'. (Default: 'files')", + "description": "The type of items which the IDs can be used for. Supported values are `files` and `shortcuts`. Note that `shortcuts` are only supported in the `drive` `space`. (Default: `files`)", "location": "query", "type": "string" } @@ -1374,7 +1472,8 @@ ] }, "get": { - "description": "Gets a file's metadata or content by ID.", + "description": " Gets a file's metadata or content by ID. If you provide the URL parameter `alt=media`, then the response includes the file contents in the response body. Downloading content with `alt=media` only works if the file is stored in Drive. To download Google Docs, Sheets, and Slides use [`files.export`](/drive/api/reference/rest/v2/files/export) instead. For more information, see [Download & export files](/drive/api/guides/manage-downloads).", + "flatPath": "files/{fileId}", "httpMethod": "GET", "id": "drive.files.get", "parameterOrder": [ @@ -1394,24 +1493,25 @@ "type": "string" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, "includePermissionsForView": { - "description": "Specifies which additional view's permissions to include in the response. Only 'published' is supported.", + "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.", "location": "query", "type": "string" }, "projection": { - "description": "This parameter is deprecated and has no function.", + "deprecated": true, + "description": "Deprecated: This parameter has no function.", "enum": [ "BASIC", "FULL" ], "enumDescriptions": [ - "Deprecated", - "Deprecated" + "Deprecated.", + "Deprecated." ], "location": "query", "type": "string" @@ -1429,13 +1529,15 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, "updateViewedDate": { "default": "false", - "description": "Deprecated: Use files.update with modifiedDateBehavior=noChange, updateViewedDate=true and an empty request body.", + "deprecated": true, + "description": "Deprecated: Use `files.update` with `modifiedDateBehavior=noChange, updateViewedDate=true` and an empty request body.", "location": "query", "type": "boolean" } @@ -1458,14 +1560,15 @@ "useMediaDownloadService": true }, "insert": { - "description": "Insert a new file.", + "description": " Inserts a new file. This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:*`*/*` Note: Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information on uploading files, see [Upload file data](/drive/api/guides/manage-uploads). Apps creating shortcuts with `files.insert` must specify the MIME type `application/vnd.google-apps.shortcut`. Apps should specify a file extension in the `title` property when inserting files with the API. For example, an operation to insert a JPEG file should specify something like `\"title\": \"cat.jpg\"` in the metadata. Subsequent `GET` requests include the read-only `fileExtension` property populated with the extension originally specified in the `title` property. When a Google Drive user requests to download a file, or when the file is downloaded through the sync client, Drive builds a full filename (with extension) based on the title. In cases where the extension is missing, Drive attempts to determine the extension based on the file's MIME type.", + "flatPath": "files", "httpMethod": "POST", "id": "drive.files.insert", "mediaUpload": { "accept": [ "*/*" ], - "maxSize": "5120GB", + "maxSize": "5497558138880", "protocols": { "resumable": { "multipart": true, @@ -1477,6 +1580,7 @@ } } }, + "parameterOrder": [], "parameters": { "convert": { "default": "false", @@ -1486,17 +1590,18 @@ }, "enforceSingleParent": { "default": "false", - "description": "Deprecated. Creating files in multiple folders is no longer supported.", + "deprecated": true, + "description": "Deprecated: Creating files in multiple folders is no longer supported.", "location": "query", "type": "boolean" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, "includePermissionsForView": { - "description": "Specifies which additional view's permissions to include in the response. Only 'published' is supported.", + "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.", "location": "query", "type": "string" }, @@ -1525,7 +1630,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, @@ -1573,21 +1679,23 @@ "https://www.googleapis.com/auth/drive.apps.readonly", "https://www.googleapis.com/auth/drive.file" ], - "supportsMediaUpload": true, - "supportsSubscription": true + "supportsMediaUpload": true }, "list": { - "description": "Lists the user's files.", + "description": " Lists the user's files. This method accepts the `q` parameter, which is a search query combining one or more search terms. For more information, see the [Search for files & folders](/drive/api/guides/search-files) guide. *Note:* This method returns *all* files by default, including trashed files. If you don't want trashed files to appear in the list, use the `trashed=false` query parameter to remove trashed files from the results.", + "flatPath": "files", "httpMethod": "GET", "id": "drive.files.list", + "parameterOrder": [], "parameters": { "corpora": { - "description": "Groupings of files to which the query applies. Supported groupings are: 'user' (files created by, opened by, or shared directly with the user), 'drive' (files in the specified shared drive as indicated by the 'driveId'), 'domain' (files shared to the user's domain), and 'allDrives' (A combination of 'user' and 'drive' for all drives where the user is a member). When able, use 'user' or 'drive', instead of 'allDrives', for efficiency.", + "description": "Bodies of items (files/documents) to which the query applies. Supported bodies are `default`, `domain`, `drive` and `allDrives`. Prefer `default` or `drive` to `allDrives` for efficiency.", "location": "query", "type": "string" }, "corpus": { - "description": "The body of items (files/documents) to which the query applies. Deprecated: use 'corpora' instead.", + "deprecated": true, + "description": "Deprecated: The body of items (files/documents) to which the query applies. Use `corpora` instead.", "enum": [ "DEFAULT", "DOMAIN" @@ -1611,18 +1719,19 @@ "type": "boolean" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, "includePermissionsForView": { - "description": "Specifies which additional view's permissions to include in the response. Only 'published' is supported.", + "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.", "location": "query", "type": "string" }, "includeTeamDriveItems": { "default": "false", - "description": "Deprecated use includeItemsFromAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `includeItemsFromAllDrives` instead.", "location": "query", "type": "boolean" }, @@ -1635,7 +1744,7 @@ "type": "integer" }, "orderBy": { - "description": "A comma-separated list of sort keys. Valid keys are 'createdDate', 'folder', 'lastViewedByMeDate', 'modifiedByMeDate', 'modifiedDate', 'quotaBytesUsed', 'recency', 'sharedWithMeDate', 'starred', 'title', and 'title_natural'. Each key sorts ascending by default, but may be reversed with the 'desc' modifier. Example usage: ?orderBy=folder,modifiedDate desc,title. Please note that there is a current limitation for users with approximately one million files in which the requested sort order is ignored.", + "description": "A comma-separated list of sort keys. Valid keys are `createdDate`, `folder`, `lastViewedByMeDate`, `modifiedByMeDate`, `modifiedDate`, `quotaBytesUsed`, `recency`, `sharedWithMeDate`, `starred`, `title`, and `title_natural`. Each key sorts ascending by default, but may be reversed with the `desc` modifier. Example usage: ?orderBy=folder,modifiedDate desc,title. Please note that there is a current limitation for users with approximately one million files in which the requested sort order is ignored.", "location": "query", "type": "string" }, @@ -1645,14 +1754,15 @@ "type": "string" }, "projection": { - "description": "This parameter is deprecated and has no function.", + "deprecated": true, + "description": "Deprecated: This parameter has no function.", "enum": [ "BASIC", "FULL" ], "enumDescriptions": [ - "Deprecated", - "Deprecated" + "Deprecated.", + "Deprecated." ], "location": "query", "type": "string" @@ -1663,7 +1773,7 @@ "type": "string" }, "spaces": { - "description": "A comma-separated list of spaces to query. Supported values are 'drive' and 'appDataFolder'.", + "description": "A comma-separated list of spaces to query. Supported values are `drive`, and `appDataFolder`.", "location": "query", "type": "string" }, @@ -1675,12 +1785,14 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, "teamDriveId": { - "description": "Deprecated use driveId instead.", + "deprecated": true, + "description": "Deprecated: Use `driveId` instead.", "location": "query", "type": "string" } @@ -1702,6 +1814,7 @@ }, "listLabels": { "description": "Lists the labels on a file.", + "flatPath": "files/{fileId}/listLabels", "httpMethod": "GET", "id": "drive.files.listLabels", "parameterOrder": [ @@ -1709,14 +1822,14 @@ ], "parameters": { "fileId": { - "description": "The ID of the file.", + "description": "The ID for the file.", "location": "path", "required": true, "type": "string" }, "maxResults": { "default": "100", - "description": "The maximum number of labels to return per page. When not set, this defaults to 100.", + "description": "The maximum number of labels to return per page. When not set, defaults to 100.", "format": "int32", "location": "query", "maximum": "100", @@ -1724,7 +1837,7 @@ "type": "integer" }, "pageToken": { - "description": "The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response.", + "description": "The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response.", "location": "query", "type": "string" } @@ -1742,7 +1855,8 @@ ] }, "modifyLabels": { - "description": "Modifies the set of labels on a file.", + "description": "Modifies the set of labels applied to a file. Returns a list of the labels that were added or modified.", + "flatPath": "files/{fileId}/modifyLabels", "httpMethod": "POST", "id": "drive.files.modifyLabels", "parameterOrder": [ @@ -1750,7 +1864,7 @@ ], "parameters": { "fileId": { - "description": "The ID of the file for which the labels are modified.", + "description": "The ID of the file to which the labels belong.", "location": "path", "required": true, "type": "string" @@ -1771,6 +1885,7 @@ }, "patch": { "description": "Updates a file's metadata and/or content. When calling this method, only populate fields in the request that you want to modify. When updating fields, some fields might change automatically, such as modifiedDate. This method supports patch semantics.", + "flatPath": "files/{fileId}", "httpMethod": "PATCH", "id": "drive.files.patch", "parameterOrder": [ @@ -1784,13 +1899,15 @@ }, "convert": { "default": "false", - "description": "This parameter is deprecated and has no function.", + "deprecated": true, + "description": "Deprecated: This parameter has no function.", "location": "query", "type": "boolean" }, "enforceSingleParent": { "default": "false", - "description": "Deprecated. Adding files to multiple folders is no longer supported. Use shortcuts instead.", + "deprecated": true, + "description": "Deprecated: Adding files to multiple folders is no longer supported. Use `shortcuts` instead.", "location": "query", "type": "boolean" }, @@ -1801,17 +1918,17 @@ "type": "string" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, "includePermissionsForView": { - "description": "Specifies which additional view's permissions to include in the response. Only 'published' is supported.", + "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.", "location": "query", "type": "string" }, "modifiedDateBehavior": { - "description": "Determines the behavior in which modifiedDate is updated. This overrides setModifiedDate.", + "description": "Determines the behavior in which `modifiedDate` is updated. This overrides `setModifiedDate`.", "enum": [ "fromBody", "fromBodyIfNeeded", @@ -1821,19 +1938,19 @@ "nowIfNeeded" ], "enumDescriptions": [ - "Set modifiedDate to the value provided in the body of the request. No change if no value was provided.", - "Set modifiedDate to the value provided in the body of the request depending on other contents of the update.", + "Set `modifiedDate` to the value provided in the body of the request. No change if no value was provided.", + "Set `modifiedDate` to the value provided in the body of the request depending on other contents of the update.", "Set modifiedDate to the value provided in the body of the request, or to the current time if no value was provided.", - "Maintain the previous value of modifiedDate.", - "Set modifiedDate to the current time.", - "Set modifiedDate to the current time depending on contents of the update." + "Maintain the previous value of `modifiedDate`.", + "Set `modifiedDate` to the current time.", + "Set `modifiedDate` to the current time depending on contents of the update." ], "location": "query", "type": "string" }, "newRevision": { "default": "true", - "description": "Whether a blob upload should create a new revision. If false, the blob data in the current head revision is replaced. If true or not set, a new blob is created as head revision, and previous unpinned revisions are preserved for a short period of time. Pinned revisions are stored indefinitely, using additional storage quota, up to a maximum of 200 revisions. For details on how revisions are retained, see the Drive Help Center. Note that this field is ignored if there is no payload in the request.", + "description": "Whether a blob upload should create a new revision. If false, the blob data in the current head revision is replaced. If true or not set, a new blob is created as head revision, and previous unpinned revisions are preserved for a short period of time. Pinned revisions are stored indefinitely, using additional storage quota, up to a maximum of 200 revisions. For details on how revisions are retained, see the [Drive Help Center](https://support.google.com/drive/answer/2409045). Note that this field is ignored if there is no payload in the request.", "location": "query", "type": "boolean" }, @@ -1861,7 +1978,7 @@ }, "setModifiedDate": { "default": "false", - "description": "Whether to set the modified date using the value supplied in the request body. Setting this field to true is equivalent to modifiedDateBehavior=fromBodyOrNow, and false is equivalent to modifiedDateBehavior=now. To prevent any changes to the modified date set modifiedDateBehavior=noChange.", + "description": "Whether to set the modified date using the value supplied in the request body. Setting this field to `true` is equivalent to `modifiedDateBehavior=fromBodyOrNow`, and `false` is equivalent to `modifiedDateBehavior=now`. To prevent any changes to the modified date set `modifiedDateBehavior=noChange`.", "location": "query", "type": "boolean" }, @@ -1873,7 +1990,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, @@ -1918,6 +2036,7 @@ }, "touch": { "description": "Set the file's updated time to the current server time.", + "flatPath": "files/{fileId}/touch", "httpMethod": "POST", "id": "drive.files.touch", "parameterOrder": [ @@ -1931,12 +2050,12 @@ "type": "string" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, "includePermissionsForView": { - "description": "Specifies which additional view's permissions to include in the response. Only 'published' is supported.", + "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.", "location": "query", "type": "string" }, @@ -1948,7 +2067,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" } @@ -1966,7 +2086,8 @@ ] }, "trash": { - "description": "Moves a file to the trash. The currently authenticated user must own the file or be at least a fileOrganizer on the parent for shared drive files. Only the owner may trash a file. The trashed item is excluded from all files.list responses returned for any user who does not own the file. However, all users with access to the file can see the trashed item metadata in an API response. All users with access can copy, download, export, and share the file.", + "description": "Moves a file to the trash. The currently authenticated user must own the file or be at least a `fileOrganizer` on the parent for shared drive files.", + "flatPath": "files/{fileId}/trash", "httpMethod": "POST", "id": "drive.files.trash", "parameterOrder": [ @@ -1980,12 +2101,12 @@ "type": "string" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, "includePermissionsForView": { - "description": "Specifies which additional view's permissions to include in the response. Only 'published' is supported.", + "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.", "location": "query", "type": "string" }, @@ -1997,7 +2118,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" } @@ -2014,7 +2136,8 @@ ] }, "untrash": { - "description": "Restores a file from the trash. The currently authenticated user must own the file or be at least a fileOrganizer on the parent for shared drive files. Only the owner may untrash a file.", + "description": "Restores a file from the trash. The currently authenticated user must own the file or be at least a `fileOrganizer` on the parent for shared drive files.", + "flatPath": "files/{fileId}/untrash", "httpMethod": "POST", "id": "drive.files.untrash", "parameterOrder": [ @@ -2028,12 +2151,12 @@ "type": "string" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, "includePermissionsForView": { - "description": "Specifies which additional view's permissions to include in the response. Only 'published' is supported.", + "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.", "location": "query", "type": "string" }, @@ -2045,7 +2168,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" } @@ -2062,14 +2186,15 @@ ] }, "update": { - "description": "Updates a file's metadata and/or content. When calling this method, only populate fields in the request that you want to modify. When updating fields, some fields might be changed automatically, such as modifiedDate. This method supports patch semantics.", + "description": " Updates a file's metadata and/or content. When calling this method, only populate fields in the request that you want to modify. When updating fields, some fields might be changed automatically, such as `modifiedDate`. This method supports patch semantics. This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:*`*/*` Note: Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information on uploading files, see [Upload file data](/drive/api/guides/manage-uploads).", + "flatPath": "files/{fileId}", "httpMethod": "PUT", "id": "drive.files.update", "mediaUpload": { "accept": [ "*/*" ], - "maxSize": "5120GB", + "maxSize": "5497558138880", "protocols": { "resumable": { "multipart": true, @@ -2092,13 +2217,15 @@ }, "convert": { "default": "false", - "description": "This parameter is deprecated and has no function.", + "deprecated": true, + "description": "Deprecated: This parameter has no function.", "location": "query", "type": "boolean" }, "enforceSingleParent": { "default": "false", - "description": "Deprecated. Adding files to multiple folders is no longer supported. Use shortcuts instead.", + "deprecated": true, + "description": "Deprecated: Adding files to multiple folders is no longer supported. Use `shortcuts` instead.", "location": "query", "type": "boolean" }, @@ -2109,17 +2236,17 @@ "type": "string" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, "includePermissionsForView": { - "description": "Specifies which additional view's permissions to include in the response. Only 'published' is supported.", + "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.", "location": "query", "type": "string" }, "modifiedDateBehavior": { - "description": "Determines the behavior in which modifiedDate is updated. This overrides setModifiedDate.", + "description": "Determines the behavior in which `modifiedDate` is updated. This overrides `setModifiedDate`.", "enum": [ "fromBody", "fromBodyIfNeeded", @@ -2129,19 +2256,19 @@ "nowIfNeeded" ], "enumDescriptions": [ - "Set modifiedDate to the value provided in the body of the request. No change if no value was provided.", - "Set modifiedDate to the value provided in the body of the request depending on other contents of the update.", + "Set `modifiedDate` to the value provided in the body of the request. No change if no value was provided.", + "Set `modifiedDate` to the value provided in the body of the request depending on other contents of the update.", "Set modifiedDate to the value provided in the body of the request, or to the current time if no value was provided.", - "Maintain the previous value of modifiedDate.", - "Set modifiedDate to the current time.", - "Set modifiedDate to the current time depending on contents of the update." + "Maintain the previous value of `modifiedDate`.", + "Set `modifiedDate` to the current time.", + "Set `modifiedDate` to the current time depending on contents of the update." ], "location": "query", "type": "string" }, "newRevision": { "default": "true", - "description": "Whether a blob upload should create a new revision. If false, the blob data in the current head revision is replaced. If true or not set, a new blob is created as head revision, and previous unpinned revisions are preserved for a short period of time. Pinned revisions are stored indefinitely, using additional storage quota, up to a maximum of 200 revisions. For details on how revisions are retained, see the Drive Help Center. Note that this field is ignored if there is no payload in the request.", + "description": "Whether a blob upload should create a new revision. If false, the blob data in the current head revision is replaced. If true or not set, a new blob is created as head revision, and previous unpinned revisions are preserved for a short period of time. Pinned revisions are stored indefinitely, using additional storage quota, up to a maximum of 200 revisions. For details on how revisions are retained, see the [Drive Help Center](https://support.google.com/drive/answer/2409045).", "location": "query", "type": "boolean" }, @@ -2158,7 +2285,7 @@ }, "pinned": { "default": "false", - "description": "Whether to pin the new revision. A file can have a maximum of 200 pinned revisions. Note that this field is ignored if there is no payload in the request.", + "description": "Whether to pin the new revision. A file can have a maximum of 200 pinned revisions.", "location": "query", "type": "boolean" }, @@ -2169,7 +2296,7 @@ }, "setModifiedDate": { "default": "false", - "description": "Whether to set the modified date using the value supplied in the request body. Setting this field to true is equivalent to modifiedDateBehavior=fromBodyOrNow, and false is equivalent to modifiedDateBehavior=now. To prevent any changes to the modified date set modifiedDateBehavior=noChange.", + "description": "Whether to set the modified date using the value supplied in the request body. Setting this field to `true` is equivalent to `modifiedDateBehavior=fromBodyOrNow`, and `false` is equivalent to `modifiedDateBehavior=now`. To prevent any changes to the modified date set `modifiedDateBehavior=noChange`.", "location": "query", "type": "boolean" }, @@ -2181,7 +2308,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, @@ -2226,7 +2354,8 @@ "supportsMediaUpload": true }, "watch": { - "description": "Subscribes to changes to a file. While you can establish a channel for changes to a file on a shared drive, a change to a shared drive file won't create a notification.", + "description": "Subscribes to changes to a file.", + "flatPath": "files/{fileId}/watch", "httpMethod": "POST", "id": "drive.files.watch", "parameterOrder": [ @@ -2246,24 +2375,25 @@ "type": "string" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, "includePermissionsForView": { - "description": "Specifies which additional view's permissions to include in the response. Only 'published' is supported.", + "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.", "location": "query", "type": "string" }, "projection": { - "description": "This parameter is deprecated and has no function.", + "deprecated": true, + "description": "Deprecated: This parameter has no function.", "enum": [ "BASIC", "FULL" ], "enumDescriptions": [ - "Deprecated", - "Deprecated" + "Deprecated.", + "Deprecated." ], "location": "query", "type": "string" @@ -2281,12 +2411,14 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, "updateViewedDate": { "default": "false", + "deprecated": true, "description": "Deprecated: Use files.update with modifiedDateBehavior=noChange, updateViewedDate=true and an empty request body.", "location": "query", "type": "boolean" @@ -2309,9 +2441,7 @@ "https://www.googleapis.com/auth/drive.photos.readonly", "https://www.googleapis.com/auth/drive.readonly" ], - "supportsMediaDownload": true, - "supportsSubscription": true, - "useMediaDownloadService": true + "supportsSubscription": true } } }, @@ -2319,6 +2449,7 @@ "methods": { "delete": { "description": "Removes a parent from a file.", + "flatPath": "files/{fileId}/parents/{parentId}", "httpMethod": "DELETE", "id": "drive.parents.delete", "parameterOrder": [ @@ -2328,7 +2459,8 @@ "parameters": { "enforceSingleParent": { "default": "false", - "description": "Deprecated. If an item is not in a shared drive and its last parent is deleted but the item itself is not, the item will be placed under its owner's root.", + "deprecated": true, + "description": "Deprecated: If an item is not in a shared drive and its last parent is removed, the item is placed under its owner's root.", "location": "query", "type": "boolean" }, @@ -2353,6 +2485,7 @@ }, "get": { "description": "Gets a specific parent reference.", + "flatPath": "files/{fileId}/parents/{parentId}", "httpMethod": "GET", "id": "drive.parents.get", "parameterOrder": [ @@ -2389,6 +2522,7 @@ }, "insert": { "description": "Adds a parent folder for a file.", + "flatPath": "files/{fileId}/parents", "httpMethod": "POST", "id": "drive.parents.insert", "parameterOrder": [ @@ -2397,7 +2531,8 @@ "parameters": { "enforceSingleParent": { "default": "false", - "description": "Deprecated. Adding files to multiple folders is no longer supported. Use shortcuts instead.", + "deprecated": true, + "description": "Deprecated: Adding files to multiple folders is no longer supported. Use `shortcuts` instead.", "location": "query", "type": "boolean" }, @@ -2415,7 +2550,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" } @@ -2435,6 +2571,7 @@ }, "list": { "description": "Lists a file's parents.", + "flatPath": "files/{fileId}/parents", "httpMethod": "GET", "id": "drive.parents.list", "parameterOrder": [ @@ -2467,7 +2604,8 @@ "permissions": { "methods": { "delete": { - "description": "Deletes a permission from a file or shared drive.", + "description": "Deletes a permission from a file or shared drive. **Warning:** Concurrent permissions operations on the same file are not supported; only the last update is applied.", + "flatPath": "files/{fileId}/permissions/{permissionId}", "httpMethod": "DELETE", "id": "drive.permissions.delete", "parameterOrder": [ @@ -2495,7 +2633,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, @@ -2514,6 +2653,7 @@ }, "get": { "description": "Gets a permission by ID.", + "flatPath": "files/{fileId}/permissions/{permissionId}", "httpMethod": "GET", "id": "drive.permissions.get", "parameterOrder": [ @@ -2541,7 +2681,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, @@ -2567,6 +2708,7 @@ }, "getIdForEmail": { "description": "Returns the permission ID for an email address.", + "flatPath": "permissionIds/{email}", "httpMethod": "GET", "id": "drive.permissions.getIdForEmail", "parameterOrder": [ @@ -2596,7 +2738,8 @@ ] }, "insert": { - "description": "Inserts a permission for a file or shared drive.", + "description": "Inserts a permission for a file or shared drive. **Warning:** Concurrent permissions operations on the same file are not supported; only the last update is applied.", + "flatPath": "files/{fileId}/permissions", "httpMethod": "POST", "id": "drive.permissions.insert", "parameterOrder": [ @@ -2610,7 +2753,8 @@ }, "enforceSingleParent": { "default": "false", - "description": "Deprecated. See moveToNewOwnersRoot for details.", + "deprecated": true, + "description": "Deprecated: See `moveToNewOwnersRoot` for details.", "location": "query", "type": "boolean" }, @@ -2622,13 +2766,13 @@ }, "moveToNewOwnersRoot": { "default": "false", - "description": "This parameter will only take effect if the item is not in a shared drive and the request is attempting to transfer the ownership of the item. If set to true, the item will be moved to the new owner's My Drive root folder and all prior parents removed. If set to false, parents are not changed.", + "description": "This parameter will only take effect if the item is not in a shared drive and the request is attempting to transfer the ownership of the item. If set to `true`, the item will be moved to the new owner's My Drive root folder and all prior parents removed. If set to `false`, parents are not changed.", "location": "query", "type": "boolean" }, "sendNotificationEmails": { "default": "true", - "description": "Whether to send notification emails when sharing to users or groups. This parameter is ignored and an email is sent if the role is owner.", + "description": "Whether to send notification emails when sharing to users or groups. This parameter is ignored and an email is sent if the `role` is `owner`.", "location": "query", "type": "boolean" }, @@ -2640,7 +2784,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, @@ -2665,6 +2810,7 @@ }, "list": { "description": "Lists a file's or shared drive's permissions.", + "flatPath": "files/{fileId}/permissions", "httpMethod": "GET", "id": "drive.permissions.list", "parameterOrder": [ @@ -2678,7 +2824,7 @@ "type": "string" }, "includePermissionsForView": { - "description": "Specifies which additional view's permissions to include in the response. Only 'published' is supported.", + "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.", "location": "query", "type": "string" }, @@ -2691,7 +2837,7 @@ "type": "integer" }, "pageToken": { - "description": "The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response.", + "description": "The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response.", "location": "query", "type": "string" }, @@ -2703,7 +2849,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, @@ -2728,7 +2875,8 @@ ] }, "patch": { - "description": "Updates a permission using patch semantics.", + "description": "Updates a permission using patch semantics. **Warning:** Concurrent permissions operations on the same file are not supported; only the last update is applied.", + "flatPath": "files/{fileId}/permissions/{permissionId}", "httpMethod": "PATCH", "id": "drive.permissions.patch", "parameterOrder": [ @@ -2762,13 +2910,14 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, "transferOwnership": { "default": "false", - "description": "Whether changing a role to 'owner' downgrades the current owners to writers. Does nothing if the specified role is not 'owner'.", + "description": "Whether changing a role to `owner` downgrades the current owners to writers. Does nothing if the specified role is not `owner`.", "location": "query", "type": "boolean" }, @@ -2792,7 +2941,8 @@ ] }, "update": { - "description": "Updates a permission.", + "description": "Updates a permission. **Warning:** Concurrent permissions operations on the same file are not supported; only the last update is applied.", + "flatPath": "files/{fileId}/permissions/{permissionId}", "httpMethod": "PUT", "id": "drive.permissions.update", "parameterOrder": [ @@ -2826,13 +2976,14 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, "transferOwnership": { "default": "false", - "description": "Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side effect. File owners can only transfer ownership of files existing on My Drive. Files existing in a shared drive are owned by the organization that owns that shared drive. Ownership transfers are not supported for files and folders in shared drives. Organizers of a shared drive can move items from that shared drive into their My Drive which transfers the ownership to them.", + "description": "Whether changing a role to `owner` downgrades the current owners to writers. Does nothing if the specified role is not `owner`.", "location": "query", "type": "boolean" }, @@ -2861,6 +3012,7 @@ "methods": { "delete": { "description": "Deletes a property.", + "flatPath": "files/{fileId}/properties/{propertyKey}", "httpMethod": "DELETE", "id": "drive.properties.delete", "parameterOrder": [ @@ -2897,6 +3049,7 @@ }, "get": { "description": "Gets a property by its key.", + "flatPath": "files/{fileId}/properties/{propertyKey}", "httpMethod": "GET", "id": "drive.properties.get", "parameterOrder": [ @@ -2939,6 +3092,7 @@ }, "insert": { "description": "Adds a property to a file, or updates it if it already exists.", + "flatPath": "files/{fileId}/properties", "httpMethod": "POST", "id": "drive.properties.insert", "parameterOrder": [ @@ -2968,6 +3122,7 @@ }, "list": { "description": "Lists a file's properties.", + "flatPath": "files/{fileId}/properties", "httpMethod": "GET", "id": "drive.properties.list", "parameterOrder": [ @@ -2997,6 +3152,7 @@ }, "patch": { "description": "Updates a property.", + "flatPath": "files/{fileId}/properties/{propertyKey}", "httpMethod": "PATCH", "id": "drive.properties.patch", "parameterOrder": [ @@ -3039,6 +3195,7 @@ }, "update": { "description": "Updates a property.", + "flatPath": "files/{fileId}/properties/{propertyKey}", "httpMethod": "PUT", "id": "drive.properties.update", "parameterOrder": [ @@ -3085,6 +3242,7 @@ "methods": { "delete": { "description": "Deletes a reply.", + "flatPath": "files/{fileId}/comments/{commentId}/replies/{replyId}", "httpMethod": "DELETE", "id": "drive.replies.delete", "parameterOrder": [ @@ -3120,6 +3278,7 @@ }, "get": { "description": "Gets a reply.", + "flatPath": "files/{fileId}/comments/{commentId}/replies/{replyId}", "httpMethod": "GET", "id": "drive.replies.get", "parameterOrder": [ @@ -3165,6 +3324,7 @@ }, "insert": { "description": "Creates a new reply to the given comment.", + "flatPath": "files/{fileId}/comments/{commentId}/replies", "httpMethod": "POST", "id": "drive.replies.insert", "parameterOrder": [ @@ -3199,6 +3359,7 @@ }, "list": { "description": "Lists all of the replies to a comment.", + "flatPath": "files/{fileId}/comments/{commentId}/replies", "httpMethod": "GET", "id": "drive.replies.list", "parameterOrder": [ @@ -3251,6 +3412,7 @@ }, "patch": { "description": "Updates an existing reply.", + "flatPath": "files/{fileId}/comments/{commentId}/replies/{replyId}", "httpMethod": "PATCH", "id": "drive.replies.patch", "parameterOrder": [ @@ -3292,6 +3454,7 @@ }, "update": { "description": "Updates an existing reply.", + "flatPath": "files/{fileId}/comments/{commentId}/replies/{replyId}", "httpMethod": "PUT", "id": "drive.replies.update", "parameterOrder": [ @@ -3337,6 +3500,7 @@ "methods": { "delete": { "description": "Permanently deletes a file version. You can only delete revisions for files with binary content, like images or videos. Revisions for other files, like Google Docs or Sheets, and the last remaining file version can't be deleted.", + "flatPath": "files/{fileId}/revisions/{revisionId}", "httpMethod": "DELETE", "id": "drive.revisions.delete", "parameterOrder": [ @@ -3366,6 +3530,7 @@ }, "get": { "description": "Gets a specific revision.", + "flatPath": "files/{fileId}/revisions/{revisionId}", "httpMethod": "GET", "id": "drive.revisions.get", "parameterOrder": [ @@ -3402,6 +3567,7 @@ }, "list": { "description": "Lists a file's revisions.", + "flatPath": "files/{fileId}/revisions", "httpMethod": "GET", "id": "drive.revisions.list", "parameterOrder": [ @@ -3445,6 +3611,7 @@ }, "patch": { "description": "Updates a revision.", + "flatPath": "files/{fileId}/revisions/{revisionId}", "httpMethod": "PATCH", "id": "drive.revisions.patch", "parameterOrder": [ @@ -3480,6 +3647,7 @@ }, "update": { "description": "Updates a revision.", + "flatPath": "files/{fileId}/revisions/{revisionId}", "httpMethod": "PUT", "id": "drive.revisions.update", "parameterOrder": [ @@ -3518,7 +3686,8 @@ "teamdrives": { "methods": { "delete": { - "description": "Deprecated use drives.delete instead.", + "description": "Deprecated: Use `drives.delete` instead.", + "flatPath": "teamdrives/{teamDriveId}", "httpMethod": "DELETE", "id": "drive.teamdrives.delete", "parameterOrder": [ @@ -3538,7 +3707,8 @@ ] }, "get": { - "description": "Deprecated use drives.get instead.", + "description": "Deprecated: Use `drives.get` instead.", + "flatPath": "teamdrives/{teamDriveId}", "httpMethod": "GET", "id": "drive.teamdrives.get", "parameterOrder": [ @@ -3568,7 +3738,8 @@ ] }, "insert": { - "description": "Deprecated use drives.insert instead.", + "description": "Deprecated: Use `drives.insert` instead.", + "flatPath": "teamdrives", "httpMethod": "POST", "id": "drive.teamdrives.insert", "parameterOrder": [ @@ -3576,7 +3747,7 @@ ], "parameters": { "requestId": { - "description": "An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a Team Drive. A repeated request by the same user and with the same request ID will avoid creating duplicates by attempting to create the same Team Drive. If the Team Drive already exists a 409 error will be returned.", + "description": "Required. An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a Team Drive. A repeated request by the same user and with the same request ID will avoid creating duplicates by attempting to create the same Team Drive. If the Team Drive already exists a 409 error will be returned.", "location": "query", "required": true, "type": "string" @@ -3594,9 +3765,11 @@ ] }, "list": { - "description": "Deprecated use drives.list instead.", + "description": "Deprecated: Use `drives.list` instead.", + "flatPath": "teamdrives", "httpMethod": "GET", "id": "drive.teamdrives.list", + "parameterOrder": [], "parameters": { "maxResults": { "default": "10", @@ -3634,7 +3807,8 @@ ] }, "update": { - "description": "Deprecated use drives.update instead.", + "description": "Deprecated: Use `drives.update` instead.", + "flatPath": "teamdrives/{teamDriveId}", "httpMethod": "PUT", "id": "drive.teamdrives.update", "parameterOrder": [ @@ -3668,7 +3842,7 @@ } } }, - "revision": "20230115", + "revision": "20240227", "rootUrl": "https://www.googleapis.com/", "schemas": { "About": { @@ -3713,11 +3887,12 @@ "type": "boolean" }, "canCreateTeamDrives": { - "description": "Deprecated - use canCreateDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `canCreateDrives` instead.", "type": "boolean" }, "domainSharingPolicy": { - "description": "The domain sharing policy for the current user. Possible values are: \n- allowed \n- allowedWithWarning \n- incomingOnly \n- disallowed", + "description": "The domain sharing policy for the current user. Possible values are: * `allowed` * `allowedWithWarning` * `incomingOnly` * `disallowed`", "type": "string" }, "driveThemes": { @@ -3816,7 +3991,7 @@ }, "kind": { "default": "drive#about", - "description": "This is always drive#about.", + "description": "This is always `drive#about`.", "type": "string" }, "languageCode": { @@ -3893,7 +4068,7 @@ "type": "string" }, "quotaType": { - "description": "The type of the user's storage quota. Possible values are: \n- LIMITED \n- UNLIMITED", + "description": "The type of the user's storage quota. Possible values are: * `LIMITED` * `UNLIMITED`", "type": "string" }, "remainingChangeIds": { @@ -3910,19 +4085,23 @@ "type": "string" }, "teamDriveThemes": { - "description": "Deprecated - use driveThemes instead.", + "deprecated": true, + "description": "Deprecated: Use `driveThemes` instead.", "items": { "properties": { "backgroundImageLink": { - "description": "Deprecated - use driveThemes/backgroundImageLink instead.", + "deprecated": true, + "description": "Deprecated: Use `driveThemes/backgroundImageLink` instead.", "type": "string" }, "colorRgb": { - "description": "Deprecated - use driveThemes/colorRgb instead.", + "deprecated": true, + "description": "Deprecated: Use `driveThemes/colorRgb` instead.", "type": "string" }, "id": { - "description": "Deprecated - use driveThemes/id instead.", + "deprecated": true, + "description": "Deprecated: Use `driveThemes/id` instead.", "type": "string" } }, @@ -3938,7 +4117,7 @@ "type": "object" }, "App": { - "description": "The apps resource provides a list of the apps that a user has installed, with information about each app's supported MIME types, file extensions, and other details.", + "description": "The apps resource provides a list of the 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": { @@ -3962,7 +4141,7 @@ "items": { "properties": { "category": { - "description": "Category of the icon. Allowed values are: \n- application - icon for the application \n- document - icon for a file associated with the app \n- documentShared - icon for a shared file associated with the app", + "description": "Category of the icon. Allowed values are: * `application` - icon for the application * `document` - icon for a file associated with the app * `documentShared` - icon for a shared file associated with the app", "type": "string" }, "iconUrl": { @@ -3989,7 +4168,7 @@ }, "kind": { "default": "drive#app", - "description": "This is always drive#app.", + "description": "This is always `drive#app`.", "type": "string" }, "longDescription": { @@ -4005,7 +4184,7 @@ "type": "string" }, "openUrlTemplate": { - "description": "The template url for opening files with this app. The template will contain {ids} and/or {exportIds} to be replaced by the actual file ids. See Open Files for the full documentation.", + "description": "The template url for opening files with this app. The template will contain `{ids}` and/or `{exportIds}` to be replaced by the actual file ids. See Open Files for the full documentation.", "type": "string" }, "primaryFileExtensions": { @@ -4095,7 +4274,7 @@ }, "kind": { "default": "drive#appList", - "description": "This is always drive#appList.", + "description": "This is always `drive#appList`.", "type": "string" }, "selfLink": { @@ -4110,7 +4289,7 @@ "id": "Change", "properties": { "changeType": { - "description": "The type of the change. Possible values are file and drive.", + "description": "The type of the change. Possible values are `file` and `drive`.", "type": "string" }, "deleted": { @@ -4140,7 +4319,7 @@ }, "kind": { "default": "drive#change", - "description": "This is always drive#change.", + "description": "This is always `drive#change`.", "type": "string" }, "modificationDate": { @@ -4154,14 +4333,17 @@ }, "teamDrive": { "$ref": "TeamDrive", - "description": "Deprecated - use drive instead." + "deprecated": true, + "description": "Deprecated: Use `drive` instead." }, "teamDriveId": { - "description": "Deprecated - use driveId instead.", + "deprecated": true, + "description": "Deprecated: Use `driveId` instead.", "type": "string" }, "type": { - "description": "Deprecated - use changeType instead.", + "deprecated": true, + "description": "Deprecated: Use `changeType` instead.", "type": "string" } }, @@ -4184,7 +4366,7 @@ }, "kind": { "default": "drive#changeList", - "description": "This is always drive#changeList.", + "description": "This is always `drive#changeList`.", "type": "string" }, "largestChangeId": { @@ -4212,7 +4394,7 @@ "type": "object" }, "Channel": { - "description": "An notification channel used to watch for resource changes.", + "description": "A notification channel used to watch for resource changes.", "id": "Channel", "properties": { "address": { @@ -4230,12 +4412,11 @@ }, "kind": { "default": "api#channel", - "description": "Identifies this as a notification channel used to watch for changes to a resource, which is \"api#channel\".", + "description": "Identifies this as a notification channel used to watch for changes to a resource, which is `api#channel`.", "type": "string" }, "params": { "additionalProperties": { - "description": "Declares a new parameter by name.", "type": "string" }, "description": "Additional parameters controlling delivery channel behavior. Optional.", @@ -4258,7 +4439,7 @@ "type": "string" }, "type": { - "description": "The type of delivery mechanism used for this channel. Valid values are \"web_hook\" (or \"webhook\"). Both values refer to a channel where Http requests are used to deliver messages.", + "description": "The type of delivery mechanism used for this channel. Valid values are \"web_hook\" or \"webhook\".", "type": "string" } }, @@ -4281,7 +4462,7 @@ }, "kind": { "default": "drive#childList", - "description": "This is always drive#childList.", + "description": "This is always `drive#childList`.", "type": "string" }, "nextLink": { @@ -4300,11 +4481,11 @@ "type": "object" }, "ChildReference": { - "description": "A reference to a folder's child.", + "description": "A reference to a folder's child. Some resource methods (such as `children.get`) require a `childId`. Use the `children.list` method to retrieve the ID of the child.", "id": "ChildReference", "properties": { "childLink": { - "description": "A link to the child.", + "description": "Output only. A link to the child.", "type": "string" }, "id": { @@ -4318,30 +4499,30 @@ }, "kind": { "default": "drive#childReference", - "description": "This is always drive#childReference.", + "description": "Output only. This is always `drive#childReference`.", "type": "string" }, "selfLink": { - "description": "A link back to this reference.", + "description": "Output only. A link back to this reference.", "type": "string" } }, "type": "object" }, "Comment": { - "description": "A comment on a file in Google Drive.", + "description": "A comment on a file in Google Drive. Some resource methods (such as `comments.update`) require a `commentId`. Use the `comments.list` method to retrieve the ID for a comment in a file.", "id": "Comment", "properties": { "anchor": { - "description": "A region of the document represented as a JSON string. For details on defining anchor properties, refer to Add comments and replies.", + "description": "A region of the document represented as a JSON string. For details on defining anchor properties, refer to [Add comments and replies](https://developers.google.com/drive/api/v2/manage-comments).", "type": "string" }, "author": { "$ref": "User", - "description": "The author of the comment. The author's email address and permission ID will not be populated." + "description": "Output only. The author of the comment. The author's email address and permission ID will not be populated." }, "commentId": { - "description": "The ID of the comment.", + "description": "Output only. The ID of the comment.", "type": "string" }, "content": { @@ -4375,24 +4556,24 @@ "type": "string" }, "deleted": { - "description": "Whether this comment has been deleted. If a comment has been deleted the content will be cleared and this will only represent a comment that once existed.", + "description": "Output only. Whether this comment has been deleted. If a comment has been deleted the content will be cleared and this will only represent a comment that once existed.", "type": "boolean" }, "fileId": { - "description": "The file which this comment is addressing.", + "description": "Output only. The file which this comment is addressing.", "type": "string" }, "fileTitle": { - "description": "The title of the file which this comment is addressing.", + "description": "Output only. The title of the file which this comment is addressing.", "type": "string" }, "htmlContent": { - "description": "HTML formatted content for this comment.", + "description": "Output only. HTML formatted content for this comment.", "type": "string" }, "kind": { "default": "drive#comment", - "description": "This is always drive#comment.", + "description": "Output only. This is always `drive#comment`.", "type": "string" }, "modifiedDate": { @@ -4401,18 +4582,18 @@ "type": "string" }, "replies": { - "description": "Replies to this post.", + "description": "Output only. Replies to this post.", "items": { "$ref": "CommentReply" }, "type": "array" }, "selfLink": { - "description": "A link back to this comment.", + "description": "Output only. A link back to this comment.", "type": "string" }, "status": { - "description": "The status of this comment. Status can be changed by posting a reply to a comment with the desired status. \n- \"open\" - The comment is still open. \n- \"resolved\" - The comment has been resolved by one of its replies.", + "description": "Output only. The status of this comment. Status can be changed by posting a reply to a comment with the desired status. * `open` - The comment is still open. * `resolved` - The comment has been resolved by one of its replies.", "type": "string" } }, @@ -4431,7 +4612,7 @@ }, "kind": { "default": "drive#commentList", - "description": "This is always drive#commentList.", + "description": "This is always `drive#commentList`.", "type": "string" }, "nextLink": { @@ -4450,12 +4631,12 @@ "type": "object" }, "CommentReply": { - "description": "A comment on a file in Google Drive.", + "description": "A comment on a file in Google Drive. Some resource methods (such as `replies.update`) require a `replyId`. Use the `replies.list` method to retrieve the ID for a reply.", "id": "CommentReply", "properties": { "author": { "$ref": "User", - "description": "The author of the reply. The author's email address and permission ID will not be populated." + "description": "Output only. The author of the reply. The author's email address and permission ID will not be populated." }, "content": { "annotations": { @@ -4473,16 +4654,16 @@ "type": "string" }, "deleted": { - "description": "Whether this reply has been deleted. If a reply has been deleted the content will be cleared and this will only represent a reply that once existed.", + "description": "Output only. Whether this reply has been deleted. If a reply has been deleted the content will be cleared and this will only represent a reply that once existed.", "type": "boolean" }, "htmlContent": { - "description": "HTML formatted content for this reply.", + "description": "Output only. HTML formatted content for this reply.", "type": "string" }, "kind": { "default": "drive#commentReply", - "description": "This is always drive#commentReply.", + "description": "Output only. This is always `drive#commentReply`.", "type": "string" }, "modifiedDate": { @@ -4491,11 +4672,11 @@ "type": "string" }, "replyId": { - "description": "The ID of the reply.", + "description": "Output only. The ID of the reply.", "type": "string" }, "verb": { - "description": "The action this reply performed to the parent comment. When creating a new reply this is the action to be perform to the parent comment. Possible values are: \n- \"resolve\" - To resolve a comment. \n- \"reopen\" - To reopen (un-resolve) a comment.", + "description": "The action this reply performed to the parent comment. When creating a new reply this is the action to be perform to the parent comment. Possible values are: * `resolve` - To resolve a comment. * `reopen` - To reopen (un-resolve) a comment.", "type": "string" } }, @@ -4514,7 +4695,7 @@ }, "kind": { "default": "drive#commentReplyList", - "description": "This is always drive#commentReplyList.", + "description": "This is always `drive#commentReplyList`.", "type": "string" }, "nextLink": { @@ -4536,36 +4717,44 @@ "description": "A restriction for accessing the content of the file.", "id": "ContentRestriction", "properties": { + "ownerRestricted": { + "description": "Whether the content restriction can only be modified or removed by a user who owns the file. For files in shared drives, any user with `organizer` capabilities can modify or remove this content restriction.", + "type": "boolean" + }, "readOnly": { "description": "Whether the content of the file is read-only. If a file is read-only, a new revision of the file may not be added, comments may not be added or modified, and the title of the file may not be modified.", "type": "boolean" }, "reason": { - "description": "Reason for why the content of the file is restricted. This is only mutable on requests that also set readOnly=true.", + "description": "Reason for why the content of the file is restricted. This is only mutable on requests that also set `readOnly=true`.", "type": "string" }, "restrictingUser": { "$ref": "User", - "description": "The user who set the content restriction. Only populated if readOnly is true." + "description": "Output only. The user who set the content restriction. Only populated if `readOnly` is true." }, "restrictionDate": { "description": "The time at which the content restriction was set (formatted RFC 3339 timestamp). Only populated if readOnly is true.", "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": "The type of the content restriction. Currently the only possible value is globalContentRestriction.", + "description": "Output only. The type of the content restriction. Currently the only possible value is `globalContentRestriction`.", "type": "string" } }, "type": "object" }, "Drive": { - "description": "Representation of a shared drive.", + "description": "Representation of a shared drive. Some resource methods (such as `drives.update`) require a `driveId`. Use the `drives.list` method to retrieve the ID for a shared drive.", "id": "Drive", "properties": { "backgroundImageFile": { - "description": "An image file and cropping parameters from which a background image for this shared drive is set. This is a write only field; it can only be set on drive.drives.update requests that don't set themeId. When specified, all fields of the backgroundImageFile must be set.", + "description": "An image file and cropping parameters from which a background image for this shared drive is set. This is a write only field; it can only be set on `drive.drives.update` requests that don't set `themeId`. When specified, all fields of the `backgroundImageFile` must be set.", "properties": { "id": { "description": "The ID of an image file in Google Drive to use for the background image.", @@ -4590,93 +4779,97 @@ "type": "object" }, "backgroundImageLink": { - "description": "A short-lived link to this shared drive's background image.", + "description": "Output only. A short-lived link to this shared drive's background image.", "type": "string" }, "capabilities": { - "description": "Capabilities the current user has on this shared drive.", + "description": "Output only. Capabilities the current user has on this shared drive.", "properties": { "canAddChildren": { - "description": "Whether the current user can add children to folders in this shared drive.", + "description": "Output only. Whether the current user can add children to folders in this shared drive.", "type": "boolean" }, "canChangeCopyRequiresWriterPermissionRestriction": { - "description": "Whether the current user can change the copyRequiresWriterPermission restriction of this shared drive.", + "description": "Output only. Whether the current user can change the `copyRequiresWriterPermission` restriction of this shared drive.", "type": "boolean" }, "canChangeDomainUsersOnlyRestriction": { - "description": "Whether the current user can change the domainUsersOnly restriction of this shared drive.", + "description": "Output only. Whether the current user can change the `domainUsersOnly` restriction of this shared drive.", "type": "boolean" }, "canChangeDriveBackground": { - "description": "Whether the current user can change the background of this shared drive.", + "description": "Output only. Whether the current user can change the background of this shared drive.", "type": "boolean" }, "canChangeDriveMembersOnlyRestriction": { - "description": "Whether the current user can change the driveMembersOnly restriction of this shared drive.", + "description": "Output only. Whether the current user can change the `driveMembersOnly` restriction of this shared drive.", + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "description": "Output only. Whether the current user can change the `sharingFoldersRequiresOrganizerPermission` restriction of this shared drive.", "type": "boolean" }, "canComment": { - "description": "Whether the current user can comment on files in this shared drive.", + "description": "Output only. Whether the current user can comment on files in this shared drive.", "type": "boolean" }, "canCopy": { - "description": "Whether the current user can copy files in this shared drive.", + "description": "Output only. Whether the current user can copy files in this shared drive.", "type": "boolean" }, "canDeleteChildren": { - "description": "Whether the current user can delete children from folders in this shared drive.", + "description": "Output only. Whether the current user can delete children from folders in this shared drive.", "type": "boolean" }, "canDeleteDrive": { - "description": "Whether the current user can delete this shared drive. Attempting to delete the shared drive may still fail if there are untrashed items inside the shared drive.", + "description": "Output only. Whether the current user can delete this shared drive. Attempting to delete the shared drive may still fail if there are untrashed items inside the shared drive.", "type": "boolean" }, "canDownload": { - "description": "Whether the current user can download files in this shared drive.", + "description": "Output only. Whether the current user can download files in this shared drive.", "type": "boolean" }, "canEdit": { - "description": "Whether the current user can edit files in this shared drive", + "description": "Output only. Whether the current user can edit files in this shared drive", "type": "boolean" }, "canListChildren": { - "description": "Whether the current user can list the children of folders in this shared drive.", + "description": "Output only. Whether the current user can list the children of folders in this shared drive.", "type": "boolean" }, "canManageMembers": { - "description": "Whether the current user can add members to this shared drive or remove them or change their role.", + "description": "Output only. Whether the current user can add members to this shared drive or remove them or change their role.", "type": "boolean" }, "canReadRevisions": { - "description": "Whether the current user can read the revisions resource of files in this shared drive.", + "description": "Output only. Whether the current user can read the revisions resource of files in this shared drive.", "type": "boolean" }, "canRename": { - "description": "Whether the current user can rename files or folders in this shared drive.", + "description": "Output only. Whether the current user can rename files or folders in this shared drive.", "type": "boolean" }, "canRenameDrive": { - "description": "Whether the current user can rename this shared drive.", + "description": "Output only. Whether the current user can rename this shared drive.", "type": "boolean" }, "canResetDriveRestrictions": { - "description": "Whether the current user can reset the shared drive restrictions to defaults.", + "description": "Output only. Whether the current user can reset the shared drive restrictions to defaults.", "type": "boolean" }, "canShare": { - "description": "Whether the current user can share files or folders in this shared drive.", + "description": "Output only. Whether the current user can share files or folders in this shared drive.", "type": "boolean" }, "canTrashChildren": { - "description": "Whether the current user can trash children from folders in this shared drive.", + "description": "Output only. Whether the current user can trash children from folders in this shared drive.", "type": "boolean" } }, "type": "object" }, "colorRgb": { - "description": "The color of this shared drive as an RGB hex string. It can only be set on a drive.drives.update request that does not set themeId.", + "description": "The color of this shared drive as an RGB hex string. It can only be set on a `drive.drives.update` request that does not set `themeId`.", "type": "string" }, "createdDate": { @@ -4689,12 +4882,12 @@ "type": "boolean" }, "id": { - "description": "The ID of this shared drive which is also the ID of the top level folder of this shared drive.", + "description": "Output only. The ID of this shared drive which is also the ID of the top level folder of this shared drive.", "type": "string" }, "kind": { "default": "drive#drive", - "description": "This is always drive#drive", + "description": "Output only. This is always `drive#drive`", "type": "string" }, "name": { @@ -4707,7 +4900,7 @@ "type": "string" }, "orgUnitId": { - "description": "The organizational unit of this shared drive. This field is only populated on drives.list responses when the useDomainAdminAccess parameter is set to true.", + "description": "Output only. The organizational unit of this shared drive. This field is only populated on `drives.list` responses when the `useDomainAdminAccess` parameter is set to `true`.", "type": "string" }, "restrictions": { @@ -4718,7 +4911,7 @@ "type": "boolean" }, "copyRequiresWriterPermission": { - "description": "Whether the options to copy, print, or download files inside this shared drive, should be disabled for readers and commenters. When this restriction is set to true, it will override the similarly named field to true for any file inside this shared drive.", + "description": "Whether the options to copy, print, or download files inside this shared drive, should be disabled for readers and commenters. When this restriction is set to `true`, it will override the similarly named field to `true` for any file inside this shared drive.", "type": "boolean" }, "domainUsersOnly": { @@ -4728,12 +4921,16 @@ "driveMembersOnly": { "description": "Whether access to items inside this shared drive is restricted to its members.", "type": "boolean" + }, + "sharingFoldersRequiresOrganizerPermission": { + "description": "If true, only users with the organizer role can share folders. If false, users with either the organizer role or the file organizer role can share folders.", + "type": "boolean" } }, "type": "object" }, "themeId": { - "description": "The ID of the theme from which the background image and color will be set. The set of possible driveThemes can be retrieved from a drive.about.get response. When not specified on a drive.drives.insert request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set colorRgb or backgroundImageFile.", + "description": "The ID of the theme from which the background image and color will be set. The set of possible `driveThemes` can be retrieved from a `drive.about.get` response. When not specified on a `drive.drives.insert` request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set `colorRgb` or `backgroundImageFile`.", "type": "string" } }, @@ -4752,7 +4949,7 @@ }, "kind": { "default": "drive#driveList", - "description": "This is always drive#driveList", + "description": "This is always `drive#driveList`", "type": "string" }, "nextPageToken": { @@ -4763,178 +4960,201 @@ "type": "object" }, "File": { - "description": "The metadata for a file.", + "description": "The metadata for a file. Some resource methods (such as `files.update`) require a `fileId`. Use the `files.list` method to retrieve the ID for a file.", "id": "File", "properties": { "alternateLink": { - "description": "A link for opening the file in a relevant Google editor or viewer.", + "description": "Output only. A link for opening the file in a relevant Google editor or viewer.", "type": "string" }, "appDataContents": { - "description": "Whether this file is in the Application Data folder.", + "description": "Output only. Whether this file is in the Application Data folder.", "type": "boolean" }, "canComment": { - "description": "Deprecated: use capabilities/canComment.", + "deprecated": true, + "description": "Output only. Deprecated: Use `capabilities/canComment` instead.", "type": "boolean" }, "canReadRevisions": { - "description": "Deprecated: use capabilities/canReadRevisions.", + "deprecated": true, + "description": "Output only. Deprecated: Use `capabilities/canReadRevisions` instead.", "type": "boolean" }, "capabilities": { - "description": "Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.", + "description": "Output only. Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.", "properties": { "canAcceptOwnership": { - "description": "Whether the current user is the pending owner of the file. Not populated for shared drive files.", + "description": "Output only. Whether the current user is the pending owner of the file. Not populated for shared drive files.", "type": "boolean" }, "canAddChildren": { - "description": "Whether the current user can add children to this folder. This is always false when the item is not a folder.", + "description": "Output only. Whether the current user can add children to this folder. This is always false when the item is not a folder.", "type": "boolean" }, "canAddFolderFromAnotherDrive": { - "description": "Whether the current user can add a folder from another drive (different shared drive or My Drive) to this folder. This is false when the item is not a folder. Only populated for items in shared drives.", + "description": "Output only. Whether the current user can add a folder from another drive (different shared drive or My Drive) to this folder. This is false when the item is not a folder. Only populated for items in shared drives.", "type": "boolean" }, "canAddMyDriveParent": { - "description": "Whether the current user can add a parent for the item without removing an existing parent in the same request. Not populated for shared drive files.", + "description": "Output only. Whether the current user can add a parent for the item without removing an existing parent in the same request. Not populated for shared drive files.", "type": "boolean" }, "canChangeCopyRequiresWriterPermission": { - "description": "Whether the current user can change the copyRequiresWriterPermission restriction of this file.", + "description": "Output only. Whether the current user can change the `copyRequiresWriterPermission` restriction of this file.", "type": "boolean" }, "canChangeRestrictedDownload": { - "description": "Deprecated", + "deprecated": true, + "description": "Output only. Deprecated.", "type": "boolean" }, "canChangeSecurityUpdateEnabled": { - "description": "Whether the current user can change the securityUpdateEnabled field on link share metadata.", + "description": "Output only. Whether the current user can change the securityUpdateEnabled field on link share metadata.", "type": "boolean" }, "canComment": { - "description": "Whether the current user can comment on this file.", + "description": "Output only. Whether the current user can comment on this file.", "type": "boolean" }, "canCopy": { - "description": "Whether the current user can copy this file. For an item in a shared drive, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.", + "description": "Output only. Whether the current user can copy this file. For an item in a shared drive, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.", "type": "boolean" }, "canDelete": { - "description": "Whether the current user can delete this file.", + "description": "Output only. Whether the current user can delete this file.", "type": "boolean" }, "canDeleteChildren": { - "description": "Whether the current user can delete children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.", + "description": "Output only. Whether the current user can delete children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.", "type": "boolean" }, "canDownload": { - "description": "Whether the current user can download this file.", + "description": "Output only. Whether the current user can download this file.", "type": "boolean" }, "canEdit": { - "description": "Whether the current user can edit this file. Other factors may limit the type of changes a user can make to a file. For example, see canChangeCopyRequiresWriterPermission or canModifyContent.", + "description": "Output only. Whether the current user can edit this file. Other factors may limit the type of changes a user can make to a file. For example, see `canChangeCopyRequiresWriterPermission` or `canModifyContent`.", "type": "boolean" }, "canListChildren": { - "description": "Whether the current user can list the children of this folder. This is always false when the item is not a folder.", + "description": "Output only. Whether the current user can list the children of this folder. This is always false when the item is not a folder.", "type": "boolean" }, "canModifyContent": { - "description": "Whether the current user can modify the content of this file.", + "description": "Output only. Whether the current user can modify the content of this file.", "type": "boolean" }, "canModifyContentRestriction": { - "description": "Whether the current user can modify restrictions on content of this file.", + "deprecated": true, + "description": "Deprecated: Output only. Use one of `canModifyEditorContentRestriction`, `canModifyOwnerContentRestriction` or `canRemoveContentRestriction`.", + "type": "boolean" + }, + "canModifyEditorContentRestriction": { + "description": "Output only. Whether the current user can add or modify content restrictions on the file which are editor restricted.", "type": "boolean" }, "canModifyLabels": { - "description": "Whether the current user can modify the labels on this file.", + "description": "Output only. Whether the current user can modify the labels on the file.", + "type": "boolean" + }, + "canModifyOwnerContentRestriction": { + "description": "Output only. Whether the current user can add or modify content restrictions which are owner restricted.", "type": "boolean" }, "canMoveChildrenOutOfDrive": { - "description": "Whether the current user can move children of this folder outside of the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.", + "description": "Output only. Whether the current user can move children of this folder outside of the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.", "type": "boolean" }, "canMoveChildrenOutOfTeamDrive": { - "description": "Deprecated - use canMoveChildrenOutOfDrive instead.", + "deprecated": true, + "description": "Output only. Deprecated: Use `canMoveChildrenOutOfDrive` instead.", "type": "boolean" }, "canMoveChildrenWithinDrive": { - "description": "Whether the current user can move children of this folder within this drive. This is false when the item is not a folder. Note that a request to move the child may still fail depending on the current user's access to the child and to the destination folder.", + "description": "Output only. Whether the current user can move children of this folder within this drive. This is false when the item is not a folder. Note that a request to move the child may still fail depending on the current user's access to the child and to the destination folder.", "type": "boolean" }, "canMoveChildrenWithinTeamDrive": { - "description": "Deprecated - use canMoveChildrenWithinDrive instead.", + "deprecated": true, + "description": "Output only. Deprecated: Use `canMoveChildrenWithinDrive` instead.", "type": "boolean" }, "canMoveItemIntoTeamDrive": { - "description": "Deprecated - use canMoveItemOutOfDrive instead.", + "deprecated": true, + "description": "Output only. Deprecated: Use `canMoveItemOutOfDrive` instead.", "type": "boolean" }, "canMoveItemOutOfDrive": { - "description": "Whether the current user can move this item outside of this drive by changing its parent. Note that a request to change the parent of the item may still fail depending on the new parent that is being added.", + "description": "Output only. Whether the current user can move this item outside of this drive by changing its parent. Note that a request to change the parent of the item may still fail depending on the new parent that is being added.", "type": "boolean" }, "canMoveItemOutOfTeamDrive": { - "description": "Deprecated - use canMoveItemOutOfDrive instead.", + "deprecated": true, + "description": "Output only. Deprecated: Use `canMoveItemOutOfDrive` instead.", "type": "boolean" }, "canMoveItemWithinDrive": { - "description": "Whether the current user can move this item within this drive. Note that a request to change the parent of the item may still fail depending on the new parent that is being added and the parent that is being removed.", + "description": "Output only. Whether the current user can move this item within this drive. Note that a request to change the parent of the item may still fail depending on the new parent that is being added and the parent that is being removed.", "type": "boolean" }, "canMoveItemWithinTeamDrive": { - "description": "Deprecated - use canMoveItemWithinDrive instead.", + "deprecated": true, + "description": "Output only. Deprecated: Use `canMoveItemWithinDrive` instead.", "type": "boolean" }, "canMoveTeamDriveItem": { - "description": "Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.", + "deprecated": true, + "description": "Output only. Deprecated: Use `canMoveItemWithinDrive` or `canMoveItemOutOfDrive` instead.", "type": "boolean" }, "canReadDrive": { - "description": "Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.", + "description": "Output only. Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.", "type": "boolean" }, "canReadLabels": { - "description": "Whether the current user can read the labels on this file.", + "description": "Output only. Whether the current user can read the labels on the file.", "type": "boolean" }, "canReadRevisions": { - "description": "Whether the current user can read the revisions resource of this file. For a shared drive item, whether revisions of non-folder descendants of this item, or this item itself if it isn't a folder, can be read.", + "description": "Output only. Whether the current user can read the revisions resource of this file. For a shared drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.", "type": "boolean" }, "canReadTeamDrive": { - "description": "Deprecated - use canReadDrive instead.", + "deprecated": true, + "description": "Output only. Deprecated: Use `canReadDrive` instead.", "type": "boolean" }, "canRemoveChildren": { - "description": "Whether the current user can remove children from this folder. This is always false when the item is not a folder. For a folder in a shared drive, use canDeleteChildren or canTrashChildren instead.", + "description": "Output only. Whether the current user can remove children from this folder. This is always false when the item is not a folder. For a folder in a shared drive, use `canDeleteChildren` or `canTrashChildren` instead.", + "type": "boolean" + }, + "canRemoveContentRestriction": { + "description": "Output only. Whether there is a content restriction on the file that can be removed by the current user.", "type": "boolean" }, "canRemoveMyDriveParent": { - "description": "Whether the current user can remove a parent from the item without adding another parent in the same request. Not populated for shared drive files.", + "description": "Output only. Whether the current user can remove a parent from the item without adding another parent in the same request. Not populated for shared drive files.", "type": "boolean" }, "canRename": { - "description": "Whether the current user can rename this file.", + "description": "Output only. Whether the current user can rename this file.", "type": "boolean" }, "canShare": { - "description": "Whether the current user can modify the sharing settings for this file.", + "description": "Output only. Whether the current user can modify the sharing settings for this file.", "type": "boolean" }, "canTrash": { - "description": "Whether the current user can move this file to trash.", + "description": "Output only. Whether the current user can move this file to trash.", "type": "boolean" }, "canTrashChildren": { - "description": "Whether the current user can trash children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.", + "description": "Output only. Whether the current user can trash children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.", "type": "boolean" }, "canUntrash": { - "description": "Whether the current user can restore this file from trash.", + "description": "Output only. Whether the current user can restore this file from trash.", "type": "boolean" } }, @@ -4952,7 +5172,8 @@ "type": "boolean" }, "copyable": { - "description": "Deprecated: use capabilities/canCopy.", + "deprecated": true, + "description": "Output only. Deprecated: Use `capabilities/canCopy` instead.", "type": "boolean" }, "createdDate": { @@ -4961,7 +5182,7 @@ "type": "string" }, "defaultOpenWithLink": { - "description": "A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.", + "description": "Output only. A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.", "type": "string" }, "description": { @@ -4969,44 +5190,44 @@ "type": "string" }, "downloadUrl": { - "description": "Short lived download URL for the file. This field is only populated for files with content stored in Google Drive; it isn't populated for Docs Editors or shortcut files.", + "description": "Output only. Short lived download URL for the file. This field is only populated for files with content stored in Google Drive; it is not populated for Google Docs or shortcut files.", "type": "string" }, "driveId": { - "description": "ID of the shared drive the file resides in. Only populated for items in shared drives.", + "description": "Output only. ID of the shared drive the file resides in. Only populated for items in shared drives.", "type": "string" }, "editable": { - "description": "Deprecated: use capabilities/canEdit.", + "deprecated": true, + "description": "Output only. Deprecated: Use `capabilities/canEdit` instead.", "type": "boolean" }, "embedLink": { - "description": "A link for embedding the file.", + "description": "Output only. A link for embedding the file.", "type": "string" }, "etag": { - "description": "ETag of the file.", + "description": "Output only. ETag of the file.", "type": "string" }, "explicitlyTrashed": { - "description": "Whether this file has been explicitly trashed, as opposed to recursively trashed.", + "description": "Output only. Whether this file has been explicitly trashed, as opposed to recursively trashed.", "type": "boolean" }, "exportLinks": { "additionalProperties": { - "description": "A mapping from export format to URL", "type": "string" }, - "description": "Links for exporting Docs Editors files to specific formats.", + "description": "Output only. Links for exporting Docs Editors files to specific formats.", "readOnly": true, "type": "object" }, "fileExtension": { - "description": "The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Google Drive; it isn't populated for Docs Editors or shortcut files.", + "description": "Output only. The final component of `fullFileExtension` with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.", "type": "string" }, "fileSize": { - "description": "The size of the file in bytes. This field is populated for files with content stored in Google Drive and for files in Docs Editors; it isn't populated for shortcut files.", + "description": "Output only. Size in bytes of blobs and first party editor files. Won't be populated for files that have no size, like shortcuts and folders.", "format": "int64", "type": "string" }, @@ -5015,23 +5236,23 @@ "type": "string" }, "fullFileExtension": { - "description": "The full file extension; extracted from the title. May contain multiple concatenated extensions, such as \"tar.gz\". Removing an extension from the title does not clear this field; however, changing the extension on the title does update this field. This field is only populated for files with content stored in Google Drive; it isn't populated for Docs Editors or shortcut files.", + "description": "Output only. The full file extension; extracted from the title. May contain multiple concatenated extensions, such as \"tar.gz\". Removing an extension from the title does not clear this field; however, changing the extension on the title does update this field. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.", "type": "string" }, "hasAugmentedPermissions": { - "description": "Whether there are permissions directly on this file. This field is only populated for items in shared drives.", + "description": "Output only. Whether there are permissions directly on this file. This field is only populated for items in shared drives.", "type": "boolean" }, "hasThumbnail": { - "description": "Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.", + "description": "Output only. Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.", "type": "boolean" }, "headRevisionId": { - "description": "The ID of the file's head revision. This field is only populated for files with content stored in Google Drive; it isn't populated for Docs Editors or shortcut files.", + "description": "Output only. The ID of the file's head revision. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.", "type": "string" }, "iconLink": { - "description": "A link to the file's icon.", + "description": "Output only. A link to the file's icon.", "type": "string" }, "id": { @@ -5039,81 +5260,81 @@ "type": "string" }, "imageMediaMetadata": { - "description": "Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.", + "description": "Output only. Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.", "properties": { "aperture": { - "description": "The aperture used to create the photo (f-number).", + "description": "Output only. The aperture used to create the photo (f-number).", "format": "float", "type": "number" }, "cameraMake": { - "description": "The make of the camera used to create the photo.", + "description": "Output only. The make of the camera used to create the photo.", "type": "string" }, "cameraModel": { - "description": "The model of the camera used to create the photo.", + "description": "Output only. The model of the camera used to create the photo.", "type": "string" }, "colorSpace": { - "description": "The color space of the photo.", + "description": "Output only. The color space of the photo.", "type": "string" }, "date": { - "description": "The date and time the photo was taken (EXIF format timestamp).", + "description": "Output only. The date and time the photo was taken (EXIF format timestamp).", "type": "string" }, "exposureBias": { - "description": "The exposure bias of the photo (APEX value).", + "description": "Output only. The exposure bias of the photo (APEX value).", "format": "float", "type": "number" }, "exposureMode": { - "description": "The exposure mode used to create the photo.", + "description": "Output only. The exposure mode used to create the photo.", "type": "string" }, "exposureTime": { - "description": "The length of the exposure, in seconds.", + "description": "Output only. The length of the exposure, in seconds.", "format": "float", "type": "number" }, "flashUsed": { - "description": "Whether a flash was used to create the photo.", + "description": "Output only. Whether a flash was used to create the photo.", "type": "boolean" }, "focalLength": { - "description": "The focal length used to create the photo, in millimeters.", + "description": "Output only. The focal length used to create the photo, in millimeters.", "format": "float", "type": "number" }, "height": { - "description": "The height of the image in pixels.", + "description": "Output only. The height of the image in pixels.", "format": "int32", "type": "integer" }, "isoSpeed": { - "description": "The ISO speed used to create the photo.", + "description": "Output only. The ISO speed used to create the photo.", "format": "int32", "type": "integer" }, "lens": { - "description": "The lens used to create the photo.", + "description": "Output only. The lens used to create the photo.", "type": "string" }, "location": { - "description": "Geographic location information stored in the image.", + "description": "Output only. Geographic location information stored in the image.", "properties": { "altitude": { - "description": "The altitude stored in the image.", + "description": "Output only. The altitude stored in the image.", "format": "double", "type": "number" }, "latitude": { - "description": "The latitude stored in the image.", + "description": "Output only. The latitude stored in the image.", "format": "double", "type": "number" }, "longitude": { - "description": "The longitude stored in the image.", + "description": "Output only. The longitude stored in the image.", "format": "double", "type": "number" } @@ -5121,34 +5342,34 @@ "type": "object" }, "maxApertureValue": { - "description": "The smallest f-number of the lens at the focal length used to create the photo (APEX value).", + "description": "Output only. The smallest f-number of the lens at the focal length used to create the photo (APEX value).", "format": "float", "type": "number" }, "meteringMode": { - "description": "The metering mode used to create the photo.", + "description": "Output only. The metering mode used to create the photo.", "type": "string" }, "rotation": { - "description": "The number of clockwise 90 degree rotations applied from the image's original orientation.", + "description": "Output only. The number of clockwise 90 degree rotations applied from the image's original orientation.", "format": "int32", "type": "integer" }, "sensor": { - "description": "The type of sensor used to create the photo.", + "description": "Output only. The type of sensor used to create the photo.", "type": "string" }, "subjectDistance": { - "description": "The distance to the subject of the photo, in meters.", + "description": "Output only. The distance to the subject of the photo, in meters.", "format": "int32", "type": "integer" }, "whiteBalance": { - "description": "The white balance mode used to create the photo.", + "description": "Output only. The white balance mode used to create the photo.", "type": "string" }, "width": { - "description": "The width of the image in pixels.", + "description": "Output only. The width of the image in pixels.", "format": "int32", "type": "integer" } @@ -5156,7 +5377,7 @@ "type": "object" }, "indexableText": { - "description": "Indexable text attributes for the file (can only be written). For more information, see Manage file metadata.", + "description": "Indexable text attributes for the file (can only be written)", "properties": { "text": { "description": "The text to be indexed for this file.", @@ -5166,19 +5387,19 @@ "type": "object" }, "isAppAuthorized": { - "description": "Whether the file was created or opened by the requesting app.", + "description": "Output only. Whether the file was created or opened by the requesting app.", "type": "boolean" }, "kind": { "default": "drive#file", - "description": "The type of file. This is always drive#file.", + "description": "Output only. The type of file. This is always `drive#file`.", "type": "string" }, "labelInfo": { - "description": "An overview of the labels on the file.", + "description": "Output only. An overview of the labels on the file.", "properties": { "labels": { - "description": "The set of labels on the file as requested by the label IDs in the includeLabels parameter. By default, no labels are returned.", + "description": "Output only. The set of labels on the file as requested by the label IDs in the `includeLabels` parameter. By default, no labels are returned.", "items": { "$ref": "Label" }, @@ -5191,15 +5412,17 @@ "description": "A group of labels for the file.", "properties": { "hidden": { - "description": "Deprecated.", + "deprecated": true, + "description": "Output only. Deprecated.", "type": "boolean" }, "modified": { - "description": "Whether the file has been modified by this user.", + "description": "Output only. Whether the file has been modified by this user.", "type": "boolean" }, "restricted": { - "description": "Deprecated - use copyRequiresWriterPermission instead.", + "deprecated": true, + "description": "Output only. Deprecated: Use `copyRequiresWriterPermission` instead.", "type": "boolean" }, "starred": { @@ -5207,7 +5430,7 @@ "type": "boolean" }, "trashed": { - "description": "Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file. The trashed item is excluded from all files.list responses returned for any user who does not own the file. However, all users with access to the file can see the trashed item metadata in an API response. All users with access can copy, download, export, and share the file.", + "description": "Whether this file has been trashed. This label applies to all users accessing the file; however, only owners are allowed to see and untrash files.", "type": "boolean" }, "viewed": { @@ -5219,10 +5442,10 @@ }, "lastModifyingUser": { "$ref": "User", - "description": "The last user to modify this file." + "description": "Output only. The last user to modify this file." }, "lastModifyingUserName": { - "description": "Name of the last user to modify this file.", + "description": "Output only. Name of the last user to modify this file.", "type": "string" }, "lastViewedByMeDate": { @@ -5234,11 +5457,11 @@ "description": "Contains details about the link URLs that clients are using to refer to this item.", "properties": { "securityUpdateEligible": { - "description": "Whether the file is eligible for security update.", + "description": "Output only. Whether the file is eligible for security update.", "type": "boolean" }, "securityUpdateEnabled": { - "description": "Whether the security update is enabled for this file.", + "description": "Output only. Whether the security update is enabled for this file.", "type": "boolean" } }, @@ -5250,7 +5473,7 @@ "type": "string" }, "md5Checksum": { - "description": "An MD5 checksum for the content of this file. This field is only populated for files with content stored in Google Drive; it isn't populated for Docs Editors or shortcut files.", + "description": "Output only. An MD5 checksum for the content of this file. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.", "type": "string" }, "mimeType": { @@ -5271,47 +5494,47 @@ "additionalProperties": { "type": "string" }, - "description": "A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.", + "description": "Output only. A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.", "type": "object" }, "originalFilename": { - "description": "The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Google Drive.", + "description": "The original filename of the uploaded content if available, or else the original value of the `title` field. This is only available for files with binary content in Google Drive.", "type": "string" }, "ownedByMe": { - "description": "Whether the file is owned by the current user. Not populated for items in shared drives.", + "description": "Output only. Whether the file is owned by the current user. Not populated for items in shared drives.", "type": "boolean" }, "ownerNames": { - "description": "Name(s) of the owner(s) of this file. Not populated for items in shared drives.", + "description": "Output only. Name(s) of the owner(s) of this file. Not populated for items in shared drives.", "items": { "type": "string" }, "type": "array" }, "owners": { - "description": "The owner of this file. Only certain legacy files may have more than one owner. This field isn't populated for items in shared drives.", + "description": "Output only. The owner of this file. Only certain legacy files may have more than one owner. This field isn't populated for items in shared drives.", "items": { "$ref": "User" }, "type": "array" }, "parents": { - "description": "Collection of parent folders which contain this file.\nIf not specified as part of an insert request, the file will be placed directly in the user's My Drive folder. If not specified as part of a copy request, the file will inherit any discoverable parents of the source file. Update requests can also use the addParents and removeParents parameters to modify the parents list.", + "description": "Collection of parent folders which contain this file. If not specified as part of an insert request, the file will be placed directly in the user's My Drive folder. If not specified as part of a copy request, the file will inherit any discoverable parents of the source file. Update requests can also use the `addParents` and `removeParents` parameters to modify the parents list.", "items": { "$ref": "ParentReference" }, "type": "array" }, "permissionIds": { - "description": "List of permission IDs for users with access to this file.", + "description": "Output only. List of permission IDs for users with access to this file.", "items": { "type": "string" }, "type": "array" }, "permissions": { - "description": "The list of permissions for users with access to this file. Not populated for items in shared drives.", + "description": "Output only. The list of permissions for users with access to this file. Not populated for items in shared drives.", "items": { "$ref": "Permission" }, @@ -5325,32 +5548,33 @@ "type": "array" }, "quotaBytesUsed": { - "description": "The number of quota bytes used by this file.", + "description": "Output only. The number of quota bytes used by this file.", "format": "int64", "type": "string" }, "resourceKey": { - "description": "A key needed to access the item via a shared link.", + "description": "Output only. A key needed to access the item via a shared link.", "type": "string" }, "selfLink": { - "description": "A link back to this file.", + "description": "Output only. A link back to this file.", "type": "string" }, "sha1Checksum": { - "description": "The SHA1 checksum associated with this file, if available. This field is only populated for files with content stored in Google Drive; it isn't populated for Docs Editors or shortcut files.", + "description": "Output only. The SHA1 checksum associated with this file, if available. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.", "type": "string" }, "sha256Checksum": { - "description": "The SHA256 checksum associated with this file, if available. This field is only populated for files with content stored in Google Drive; it isn't populated for Docs Editors or shortcut files.", + "description": "Output only. The SHA256 checksum associated with this file, if available. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.", "type": "string" }, "shareable": { - "description": "Deprecated: use capabilities/canShare.", + "deprecated": true, + "description": "Output only. Deprecated: Use `capabilities/canShare` instead.", "type": "boolean" }, "shared": { - "description": "Whether the file has been shared. Not populated for items in shared drives.", + "description": "Output only. Whether the file has been shared. Not populated for items in shared drives.", "type": "boolean" }, "sharedWithMeDate": { @@ -5360,35 +5584,36 @@ }, "sharingUser": { "$ref": "User", - "description": "User that shared the item with the current user, if available." + "description": "Output only. User that shared the item with the current user, if available." }, "shortcutDetails": { - "description": "Shortcut file details. Only populated for shortcut files, which have the mimeType field set to application/vnd.google-apps.shortcut.", + "description": "Shortcut file details. Only populated for shortcut files, which have the mimeType field set to `application/vnd.google-apps.shortcut`.", "properties": { "targetId": { "description": "The ID of the file that this shortcut points to.", "type": "string" }, "targetMimeType": { - "description": "The MIME type of the file that this shortcut points to. The value of this field is a snapshot of the target's MIME type, captured when the shortcut is created.", + "description": "Output only. The MIME type of the file that this shortcut points to. The value of this field is a snapshot of the target's MIME type, captured when the shortcut is created.", "type": "string" }, "targetResourceKey": { - "description": "The ResourceKey for the target file.", + "description": "Output only. The ResourceKey for the target file.", "type": "string" } }, "type": "object" }, "spaces": { - "description": "The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.", + "description": "Output only. The list of spaces which contain the file. Supported values are `drive`, `appDataFolder` and `photos`.", "items": { "type": "string" }, "type": "array" }, "teamDriveId": { - "description": "Deprecated - use driveId instead.", + "deprecated": true, + "description": "Output only. Deprecated: Use `driveId` instead.", "type": "string" }, "thumbnail": { @@ -5407,11 +5632,11 @@ "type": "object" }, "thumbnailLink": { - "description": "A short-lived link to the file's thumbnail. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content. If the file isn't shared publicly, the URL returned in Files.thumbnailLink must be fetched using a credentialed request.", + "description": "Output only. A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content. If the file isn't shared publicly, the URL returned in `Files.thumbnailLink` must be fetched using a credentialed request.", "type": "string" }, "thumbnailVersion": { - "description": "The thumbnail version for use in thumbnail cache invalidation.", + "description": "Output only. The thumbnail version for use in thumbnail cache invalidation.", "format": "int64", "type": "string" }, @@ -5426,32 +5651,32 @@ }, "trashingUser": { "$ref": "User", - "description": "If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives." + "description": "Output only. If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives." }, "userPermission": { "$ref": "Permission", - "description": "The permissions for the authenticated user on this file." + "description": "Output only. The permissions for the authenticated user on this file." }, "version": { - "description": "A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.", + "description": "Output only. A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.", "format": "int64", "type": "string" }, "videoMediaMetadata": { - "description": "Metadata about video media. This will only be present for video types.", + "description": "Output only. Metadata about video media. This will only be present for video types.", "properties": { "durationMillis": { - "description": "The duration of the video in milliseconds.", + "description": "Output only. The duration of the video in milliseconds.", "format": "int64", "type": "string" }, "height": { - "description": "The height of the video in pixels.", + "description": "Output only. The height of the video in pixels.", "format": "int32", "type": "integer" }, "width": { - "description": "The width of the video in pixels.", + "description": "Output only. The width of the video in pixels.", "format": "int32", "type": "integer" } @@ -5459,11 +5684,11 @@ "type": "object" }, "webContentLink": { - "description": "A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.", + "description": "Output only. A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.", "type": "string" }, "webViewLink": { - "description": "A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.", + "description": "Output only. A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.", "type": "string" }, "writersCanShare": { @@ -5494,7 +5719,7 @@ }, "kind": { "default": "drive#fileList", - "description": "This is always drive#fileList.", + "description": "This is always `drive#fileList`.", "type": "string" }, "nextLink": { @@ -5525,7 +5750,7 @@ }, "kind": { "default": "drive#generatedIds", - "description": "This is always drive#generatedIds", + "description": "This is always `drive#generatedIds`", "type": "string" }, "space": { @@ -5536,14 +5761,14 @@ "type": "object" }, "Label": { - "description": "Representation of a label and its fields.", + "description": "Representation of a label and label fields.", "id": "Label", "properties": { "fields": { "additionalProperties": { "$ref": "LabelField" }, - "description": "A map of the label's fields keyed by the field ID.", + "description": "A map of the fields on the label, keyed by the field's ID.", "type": "object" }, "id": { @@ -5552,7 +5777,7 @@ }, "kind": { "default": "drive#label", - "description": "This is always drive#label", + "description": "This is always `drive#label`", "type": "string" }, "revisionId": { @@ -5563,7 +5788,7 @@ "type": "object" }, "LabelField": { - "description": "Representation of a label field.", + "description": "Representation of field, which is a typed key-value pair.", "id": "LabelField", "properties": { "dateString": { @@ -5575,11 +5800,11 @@ "type": "array" }, "id": { - "description": "The identifier of this field.", + "description": "The identifier of this label field.", "type": "string" }, "integer": { - "description": "Only present if valueType is integer.", + "description": "Only present if `valueType` is `integer`.", "items": { "format": "int64", "type": "string" @@ -5588,32 +5813,32 @@ }, "kind": { "default": "drive#labelField", - "description": "This is always drive#labelField.", + "description": "This is always `drive#labelField`.", "type": "string" }, "selection": { - "description": "Only present if valueType is selection.", + "description": "Only present if `valueType` is `selection`", "items": { "type": "string" }, "type": "array" }, "text": { - "description": "Only present if valueType is text.", + "description": "Only present if `valueType` is `text`.", "items": { "type": "string" }, "type": "array" }, "user": { - "description": "Only present if valueType is user.", + "description": "Only present if `valueType` is `user`.", "items": { "$ref": "User" }, "type": "array" }, "valueType": { - "description": "The field type. While new values may be supported in the future, the following are currently allowed: \n- dateString \n- integer \n- selection \n- text \n- user", + "description": "The field type. While new values may be supported in the future, the following are currently allowed: * `dateString` * `integer` * `selection` * `text` * `user`", "type": "string" } }, @@ -5629,11 +5854,11 @@ }, "kind": { "default": "drive#labelFieldModification", - "description": "This is always drive#labelFieldModification.", + "description": "This is always `drive#labelFieldModification`.", "type": "string" }, "setDateValues": { - "description": "Replaces a dateString field with these new values. The values must be strings in the RFC 3339 full-date format: YYYY-MM-DD.", + "description": "Replaces the value of a dateString Field with these new values. The string must be in the RFC 3339 full-date format: YYYY-MM-DD.", "items": { "format": "date", "type": "string" @@ -5641,7 +5866,7 @@ "type": "array" }, "setIntegerValues": { - "description": "Replaces an integer field with these new values.", + "description": "Replaces the value of an `integer` field with these new values.", "items": { "format": "int64", "type": "string" @@ -5649,21 +5874,21 @@ "type": "array" }, "setSelectionValues": { - "description": "Replaces a selection field with these new values.", + "description": "Replaces a `selection` field with these new values.", "items": { "type": "string" }, "type": "array" }, "setTextValues": { - "description": "Replaces a text field with these new values.", + "description": "Sets the value of a `text` field.", "items": { "type": "string" }, "type": "array" }, "setUserValues": { - "description": "Replaces a user field with these new values. The values must be valid email addresses.", + "description": "Replaces a `user` field with these new values. The values must be valid email addresses.", "items": { "type": "string" }, @@ -5677,7 +5902,7 @@ "type": "object" }, "LabelList": { - "description": "A list of labels.", + "description": "A list of labels applied to a file.", "id": "LabelList", "properties": { "items": { @@ -5689,7 +5914,7 @@ }, "kind": { "default": "drive#labelList", - "description": "This is always drive#labelList", + "description": "This is always `drive#labelList`", "type": "string" }, "nextPageToken": { @@ -5712,7 +5937,7 @@ }, "kind": { "default": "drive#labelModification", - "description": "This is always drive#labelModification.", + "description": "This is always `drive#labelModification`.", "type": "string" }, "labelId": { @@ -5732,12 +5957,12 @@ "type": "object" }, "ModifyLabelsRequest": { - "description": "A request to modify the set of labels on a file. This request may contain many modifications that will either all succeed or all fail transactionally.", + "description": "A request to modify the set of labels on a file. This request may contain many modifications that will either all succeed or all fail atomically.", "id": "ModifyLabelsRequest", "properties": { "kind": { "default": "drive#modifyLabelsRequest", - "description": "This is always drive#modifyLabelsRequest", + "description": "This is always `drive#modifyLabelsRequest`.", "type": "string" }, "labelModifications": { @@ -5756,7 +5981,7 @@ "properties": { "kind": { "default": "drive#modifyLabelsResponse", - "description": "This is always drive#modifyLabelsResponse", + "description": "This is always `drive#modifyLabelsResponse`", "type": "string" }, "modifiedLabels": { @@ -5786,7 +6011,7 @@ }, "kind": { "default": "drive#parentList", - "description": "This is always drive#parentList.", + "description": "This is always `drive#parentList`.", "type": "string" }, "selfLink": { @@ -5797,7 +6022,7 @@ "type": "object" }, "ParentReference": { - "description": "A reference to a file's parent.", + "description": "A reference to a file's parent. Some resource methods (such as `parents.get`) require a `parentId`. Use the `parents.list` method to retrieve the ID for a parent.", "id": "ParentReference", "properties": { "id": { @@ -5810,103 +6035,104 @@ "type": "string" }, "isRoot": { - "description": "Whether or not the parent is the root folder.", + "description": "Output only. Whether or not the parent is the root folder.", "type": "boolean" }, "kind": { "default": "drive#parentReference", - "description": "This is always drive#parentReference.", + "description": "Output only. This is always `drive#parentReference`.", "type": "string" }, "parentLink": { - "description": "A link to the parent.", + "description": "Output only. A link to the parent.", "type": "string" }, "selfLink": { - "description": "A link back to this reference.", + "description": "Output only. A link back to this reference.", "type": "string" } }, "type": "object" }, "Permission": { - "description": "A permission for a file.", + "description": "A permission for a file. A permission grants a user, group, domain, or the world access to a file or a folder hierarchy. Some resource methods (such as `permissions.update`) require a `permissionId`. Use the `permissions.list` method to retrieve the ID for a file, folder, or shared drive.", "id": "Permission", "properties": { "additionalRoles": { - "description": "Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.", + "description": "Additional roles for this user. Only `commenter` is currently allowed, though more may be supported in the future.", "items": { "type": "string" }, "type": "array" }, "authKey": { - "description": "Deprecated.", + "deprecated": true, + "description": "Output only. Deprecated.", "type": "string" }, "deleted": { - "description": "Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.", + "description": "Output only. Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.", "type": "boolean" }, "domain": { - "description": "The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.", + "description": "Output only. The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is `user`, `group` or `domain`.", "type": "string" }, "emailAddress": { - "description": "The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.", + "description": "Output only. The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is `user` or `group`.", "type": "string" }, "etag": { - "description": "The ETag of the permission.", + "description": "Output only. The ETag of the permission.", "type": "string" }, "expirationDate": { - "description": "The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions: \n- They cannot be set on shared drive items \n- They can only be set on user and group permissions \n- The date must be in the future \n- The date cannot be more than a year in the future", + "description": "The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions: - They can only be set on user and group permissions - The date must be in the future - The date cannot be more than a year in the future - The date can only be set on drive.permissions.update or drive.permissions.patch requests", "format": "date-time", "type": "string" }, "id": { - "description": "The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.", + "description": "The ID of the user this permission refers to, and identical to the `permissionId` in the About and Files resources. When making a `drive.permissions.insert` request, exactly one of the `id` or `value` fields must be specified unless the permission type is `anyone`, in which case both `id` and `value` are ignored.", "type": "string" }, "kind": { "default": "drive#permission", - "description": "This is always drive#permission.", + "description": "Output only. This is always `drive#permission`.", "type": "string" }, "name": { - "description": "The name for this permission.", + "description": "Output only. The name for this permission.", "type": "string" }, "pendingOwner": { - "description": "Whether the account associated with this permission is a pending owner. Only populated for user type permissions for files that are not in a shared drive.", + "description": "Whether the account associated with this permission is a pending owner. Only populated for `user` type permissions for files that are not in a shared drive.", "type": "boolean" }, "permissionDetails": { - "description": "Details of whether the permissions on this shared drive item are inherited or directly on this item. This is an output-only field which is present only for shared drive items.", + "description": "Output only. Details of whether the permissions on this shared drive item are inherited or directly on this item. This is an output-only field which is present only for shared drive items.", "items": { "properties": { "additionalRoles": { - "description": "Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.", + "description": "Output only. Additional roles for this user. Only `commenter` is currently possible, though more may be supported in the future.", "items": { "type": "string" }, "type": "array" }, "inherited": { - "description": "Whether this permission is inherited. This field is always populated. This is an output-only field.", + "description": "Output only. Whether this permission is inherited. This field is always populated. This is an output-only field.", "type": "boolean" }, "inheritedFrom": { - "description": "The ID of the item from which this permission is inherited. This is an output-only field.", + "description": "Output only. The ID of the item from which this permission is inherited. This is an output-only field.", "type": "string" }, "permissionType": { - "description": "The permission type for this user. While new values may be added in future, the following are currently possible: \n- file \n- member", + "description": "Output only. The permission type for this user. While new values may be added in future, the following are currently possible: * `file` * `member`", "type": "string" }, "role": { - "description": "The primary role for this user. While new values may be added in the future, the following are currently possible: \n- organizer \n- fileOrganizer \n- writer \n- reader", + "description": "Output only. The primary role for this user. While new values may be added in the future, the following are currently possible: * `organizer` * `fileOrganizer` * `writer` * `reader`", "type": "string" } }, @@ -5916,7 +6142,7 @@ "type": "array" }, "photoLink": { - "description": "A link to the profile photo, if available.", + "description": "Output only. A link to the profile photo, if available.", "type": "string" }, "role": { @@ -5925,38 +6151,44 @@ "drive.permissions.insert" ] }, - "description": "The primary role for this user. While new values may be supported in the future, the following are currently allowed: \n- owner \n- organizer \n- fileOrganizer \n- writer \n- reader", + "description": "The primary role for this user. While new values may be supported in the future, the following are currently allowed: * `owner` * `organizer` * `fileOrganizer` * `writer` * `reader`", "type": "string" }, "selfLink": { - "description": "A link back to this permission.", + "description": "Output only. A link back to this permission.", "type": "string" }, "teamDrivePermissionDetails": { - "description": "Deprecated - use permissionDetails instead.", + "deprecated": true, + "description": "Output only. Deprecated: Use `permissionDetails` instead.", "items": { "properties": { "additionalRoles": { - "description": "Deprecated - use permissionDetails/additionalRoles instead.", + "deprecated": true, + "description": "Output only. Deprecated: Use `permissionDetails/additionalRoles` instead.", "items": { "type": "string" }, "type": "array" }, "inherited": { - "description": "Deprecated - use permissionDetails/inherited instead.", + "deprecated": true, + "description": "Output only. Deprecated: Use `permissionDetails/inherited` instead.", "type": "boolean" }, "inheritedFrom": { - "description": "Deprecated - use permissionDetails/inheritedFrom instead.", + "deprecated": true, + "description": "Output only. Deprecated: Use `permissionDetails/inheritedFrom` instead.", "type": "string" }, "role": { - "description": "Deprecated - use permissionDetails/role instead.", + "deprecated": true, + "description": "Output only. Deprecated: Use `permissionDetails/role` instead.", "type": "string" }, "teamDrivePermissionType": { - "description": "Deprecated - use permissionDetails/permissionType instead.", + "deprecated": true, + "description": "Output only. Deprecated: Use `permissionDetails/permissionType` instead.", "type": "string" } }, @@ -5971,15 +6203,15 @@ "drive.permissions.insert" ] }, - "description": "The account type. Allowed values are: \n- user \n- group \n- domain \n- anyone", + "description": "The account type. Allowed values are: * `user` * `group` * `domain` * `anyone`", "type": "string" }, "value": { - "description": "The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.", + "description": "The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a `drive.permissions.insert` request, exactly one of the `id` or `value` fields must be specified unless the permission type is `anyone`, in which case both `id` and `value` are ignored.", "type": "string" }, "view": { - "description": "Indicates the view for this permission. Only populated for permissions that belong to a view. published is the only supported value.", + "description": "Indicates the view for this permission. Only populated for permissions that belong to a view. `published` is the only supported value.", "type": "string" }, "withLink": { @@ -5999,7 +6231,7 @@ }, "kind": { "default": "drive#permissionId", - "description": "This is always drive#permissionId.", + "description": "This is always `drive#permissionId`.", "type": "string" } }, @@ -6022,7 +6254,7 @@ }, "kind": { "default": "drive#permissionList", - "description": "This is always drive#permissionList.", + "description": "This is always `drive#permissionList`.", "type": "string" }, "nextPageToken": { @@ -6037,11 +6269,11 @@ "type": "object" }, "Property": { - "description": "A key-value pair attached to a file that is either public or private to an application.\nThe following limits apply to file properties: \n- Maximum of 100 properties total per file\n- Maximum of 30 private properties per app\n- Maximum of 30 public properties\n- Maximum of 124 bytes size limit on (key + value) string in UTF-8 encoding for a single property.", + "description": "A key-value pair attached to a file that is either public or private to an application. The following limits apply to file properties: * Maximum of 100 properties total per file * Maximum of 30 private properties per app * Maximum of 30 public properties * Maximum of 124 bytes size limit on (key + value) string in UTF-8 encoding for a single property Some resource methods (such as `properties.update`) require a `propertyKey`. Use the `properties.list` method to retrieve the key for a property.", "id": "Property", "properties": { "etag": { - "description": "ETag of the property.", + "description": "Output only. ETag of the property.", "type": "string" }, "key": { @@ -6055,11 +6287,11 @@ }, "kind": { "default": "drive#property", - "description": "This is always drive#property.", + "description": "Output only. This is always `drive#property`.", "type": "string" }, "selfLink": { - "description": "The link back to this property.", + "description": "Output only. The link back to this property.", "type": "string" }, "value": { @@ -6067,7 +6299,7 @@ "type": "string" }, "visibility": { - "description": "The visibility of this property. Allowed values are PRIVATE and PUBLIC. (Default: PRIVATE). Private properties can only be retrieved using an authenticated request. An authenticated request uses an access token obtained with a OAuth 2 client ID. You cannot use an API key to retrieve private properties.", + "description": "The visibility of this property. Allowed values are PRIVATE (default) and PUBLIC. Private properties can only be retrieved using an authenticated request. An authenticated request uses an access token obtained with a OAuth 2 client ID. You cannot use an API key to retrieve private properties.", "type": "string" } }, @@ -6090,7 +6322,7 @@ }, "kind": { "default": "drive#propertyList", - "description": "This is always drive#propertyList.", + "description": "This is always `drive#propertyList`.", "type": "string" }, "selfLink": { @@ -6101,52 +6333,52 @@ "type": "object" }, "Revision": { - "description": "A revision of a file.", + "description": "A revision of a file. Some resource methods (such as `revisions.update`) require a `revisionId`. Use the `revisions.list` method to retrieve the ID for a revision.", "id": "Revision", "properties": { "downloadUrl": { + "description": "Output only. Short term download URL for the file. This will only be populated on files with content stored in Drive.", "type": "string" }, "etag": { - "description": "The ETag of the revision.", + "description": "Output only. The ETag of the revision.", "type": "string" }, "exportLinks": { "additionalProperties": { - "description": "A mapping from export format to URL", "type": "string" }, - "description": "Links for exporting Docs Editors files to specific formats.", + "description": "Output only. Links for exporting Docs Editors files to specific formats.", "type": "object" }, "fileSize": { - "description": "The size of the revision in bytes. This will only be populated on files with content stored in Drive.", + "description": "Output only. The size of the revision in bytes. This will only be populated on files with content stored in Drive.", "format": "int64", "type": "string" }, "id": { - "description": "The ID of the revision.", + "description": "Output only. The ID of the revision.", "type": "string" }, "kind": { "default": "drive#revision", - "description": "This is always drive#revision.", + "description": "Output only. This is always `drive#revision`.", "type": "string" }, "lastModifyingUser": { "$ref": "User", - "description": "The last user to modify this revision." + "description": "Output only. The last user to modify this revision." }, "lastModifyingUserName": { - "description": "Name of the last user to modify this revision.", + "description": "Output only. Name of the last user to modify this revision.", "type": "string" }, "md5Checksum": { - "description": "An MD5 checksum for the content of this revision. This will only be populated on files with content stored in Drive.", + "description": "Output only. An MD5 checksum for the content of this revision. This will only be populated on files with content stored in Drive.", "type": "string" }, "mimeType": { - "description": "The MIME type of the revision.", + "description": "Output only. The MIME type of the revision.", "type": "string" }, "modifiedDate": { @@ -6155,7 +6387,7 @@ "type": "string" }, "originalFilename": { - "description": "The original filename when this revision was created. This will only be populated on files with content stored in Drive.", + "description": "Output only. The original filename when this revision was created. This will only be populated on files with content stored in Drive.", "type": "string" }, "pinned": { @@ -6171,7 +6403,7 @@ "type": "boolean" }, "publishedLink": { - "description": "A link to the published revision. This is only populated for Google Sites files.", + "description": "Output only. A link to the published revision. This is only populated for Google Sites files.", "type": "string" }, "publishedOutsideDomain": { @@ -6179,7 +6411,7 @@ "type": "boolean" }, "selfLink": { - "description": "A link back to this revision.", + "description": "Output only. A link back to this revision.", "type": "string" } }, @@ -6202,7 +6434,7 @@ }, "kind": { "default": "drive#revisionList", - "description": "This is always drive#revisionList.", + "description": "This is always `drive#revisionList`.", "type": "string" }, "nextPageToken": { @@ -6221,7 +6453,7 @@ "properties": { "kind": { "default": "drive#startPageToken", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#startPageToken\".", + "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#startPageToken\"`.", "type": "string" }, "startPageToken": { @@ -6232,11 +6464,11 @@ "type": "object" }, "TeamDrive": { - "description": "Deprecated: use the drive collection instead.", + "description": "Deprecated: Use the `drive` collection instead.", "id": "TeamDrive", "properties": { "backgroundImageFile": { - "description": "An image file and cropping parameters from which a background image for this Team Drive is set. This is a write only field; it can only be set on drive.teamdrives.update requests that don't set themeId. When specified, all fields of the backgroundImageFile must be set.", + "description": "An image file and cropping parameters from which a background image for this Team Drive is set. This is a write only field; it can only be set on `drive.teamdrives.update` requests that don't set `themeId`. When specified, all fields of the `backgroundImageFile` must be set.", "properties": { "id": { "description": "The ID of an image file in Drive to use for the background image.", @@ -6272,11 +6504,15 @@ "type": "boolean" }, "canChangeCopyRequiresWriterPermissionRestriction": { - "description": "Whether the current user can change the copyRequiresWriterPermission restriction of this Team Drive.", + "description": "Whether the current user can change the `copyRequiresWriterPermission` restriction of this Team Drive.", "type": "boolean" }, "canChangeDomainUsersOnlyRestriction": { - "description": "Whether the current user can change the domainUsersOnly restriction of this Team Drive.", + "description": "Whether the current user can change the `domainUsersOnly` restriction of this Team Drive.", + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "description": "Whether the current user can change the `sharingFoldersRequiresOrganizerPermission` restriction of this Team Drive.", "type": "boolean" }, "canChangeTeamDriveBackground": { @@ -6284,7 +6520,7 @@ "type": "boolean" }, "canChangeTeamMembersOnlyRestriction": { - "description": "Whether the current user can change the teamMembersOnly restriction of this Team Drive.", + "description": "Whether the current user can change the `teamMembersOnly` restriction of this Team Drive.", "type": "boolean" }, "canComment": { @@ -6324,7 +6560,8 @@ "type": "boolean" }, "canRemoveChildren": { - "description": "Deprecated - use canDeleteChildren or canTrashChildren instead.", + "deprecated": true, + "description": "Deprecated: Use `canDeleteChildren` or `canTrashChildren` instead.", "type": "boolean" }, "canRename": { @@ -6351,7 +6588,7 @@ "type": "object" }, "colorRgb": { - "description": "The color of this Team Drive as an RGB hex string. It can only be set on a drive.teamdrives.update request that does not set themeId.", + "description": "The color of this Team Drive as an RGB hex string. It can only be set on a `drive.teamdrives.update` request that does not set `themeId`.", "type": "string" }, "createdDate": { @@ -6365,7 +6602,7 @@ }, "kind": { "default": "drive#teamDrive", - "description": "This is always drive#teamDrive", + "description": "This is always `drive#teamDrive`", "type": "string" }, "name": { @@ -6378,7 +6615,7 @@ "type": "string" }, "orgUnitId": { - "description": "The organizational unit of this shared drive. This field is only populated on drives.list responses when the useDomainAdminAccess parameter is set to true.", + "description": "The organizational unit of this shared drive. This field is only populated on `drives.list` responses when the `useDomainAdminAccess` parameter is set to `true`.", "type": "string" }, "restrictions": { @@ -6389,13 +6626,17 @@ "type": "boolean" }, "copyRequiresWriterPermission": { - "description": "Whether the options to copy, print, or download files inside this Team Drive, should be disabled for readers and commenters. When this restriction is set to true, it will override the similarly named field to true for any file inside this Team Drive.", + "description": "Whether the options to copy, print, or download files inside this Team Drive, should be disabled for readers and commenters. When this restriction is set to `true`, it will override the similarly named field to `true` for any file inside this Team Drive.", "type": "boolean" }, "domainUsersOnly": { "description": "Whether access to this Team Drive and items inside this Team Drive is restricted to users of the domain to which this Team Drive belongs. This restriction may be overridden by other sharing policies controlled outside of this Team Drive.", "type": "boolean" }, + "sharingFoldersRequiresOrganizerPermission": { + "description": "If true, only users with the organizer role can share folders. If false, users with either the organizer role or the file organizer role can share folders.", + "type": "boolean" + }, "teamMembersOnly": { "description": "Whether access to items inside this Team Drive is restricted to members of this Team Drive.", "type": "boolean" @@ -6404,7 +6645,7 @@ "type": "object" }, "themeId": { - "description": "The ID of the theme from which the background image and color will be set. The set of possible teamDriveThemes can be retrieved from a drive.about.get response. When not specified on a drive.teamdrives.insert request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set colorRgb or backgroundImageFile.", + "description": "The ID of the theme from which the background image and color will be set. The set of possible `teamDriveThemes` can be retrieved from a `drive.about.get` response. When not specified on a `drive.teamdrives.insert` request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set `colorRgb` or `backgroundImageFile`.", "type": "string" } }, @@ -6423,7 +6664,7 @@ }, "kind": { "default": "drive#teamDriveList", - "description": "This is always drive#teamDriveList", + "description": "This is always `drive#teamDriveList`", "type": "string" }, "nextPageToken": { @@ -6438,31 +6679,31 @@ "id": "User", "properties": { "displayName": { - "description": "A plain text displayable name for this user.", + "description": "Output only. A plain text displayable name for this user.", "type": "string" }, "emailAddress": { - "description": "The email address of the user.", + "description": "Output only. The email address of the user.", "type": "string" }, "isAuthenticatedUser": { - "description": "Whether this user is the same as the authenticated user for whom the request was made.", + "description": "Output only. Whether this user is the same as the authenticated user for whom the request was made.", "type": "boolean" }, "kind": { "default": "drive#user", - "description": "This is always drive#user.", + "description": "Output only. This is always `drive#user`.", "type": "string" }, "permissionId": { - "description": "The user's ID as visible in the permissions collection.", + "description": "Output only. The user's ID as visible in the permissions collection.", "type": "string" }, "picture": { - "description": "The user's profile picture.", + "description": "Output only. The user's profile picture.", "properties": { "url": { - "description": "A URL that points to a profile picture of this user.", + "description": "Output Only. A URL that points to a profile picture of this user.", "type": "string" } }, @@ -6473,6 +6714,6 @@ } }, "servicePath": "drive/v2/", - "title": "Drive API", + "title": "Google Drive API", "version": "v2" } \ No newline at end of file diff --git a/etc/api/drive/v3/drive-api.json b/etc/api/drive/v3/drive-api.json index 2751772418..b12975b933 100644 --- a/etc/api/drive/v3/drive-api.json +++ b/etc/api/drive/v3/drive-api.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" }, @@ -32,32 +35,59 @@ "basePath": "/drive/v3/", "baseUrl": "https://www.googleapis.com/drive/v3/", "batchPath": "batch/drive/v3", - "description": "Manages files in Drive including uploading, downloading, searching, detecting changes, and updating sharing permissions.", + "description": "The Google Drive API allows clients to access resources from Google Drive.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/drive/", - "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/cRy97HSlct08bhPEtNmZSGHSR6o\"", "icons": { - "x16": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_16.png", - "x32": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_32.png" + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" }, "id": "drive:v3", "kind": "discovery#restDescription", + "mtlsRootUrl": "https://www.mtls.googleapis.com/", "name": "drive", "ownerDomain": "google.com", "ownerName": "Google", "parameters": { - "alt": { - "default": "json", - "description": "Data format for the response.", + "$.xgafv": { + "description": "V1 error format.", "enum": [ - "json" + "1", + "2" ], "enumDescriptions": [ - "Responses with Content-Type of application/json" + "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", @@ -80,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" }, - "userIp": { - "description": "Deprecated. Please use quotaUser instead.", + "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" } @@ -96,8 +131,11 @@ "methods": { "get": { "description": "Gets information about the user, the user's Drive, and system capabilities.", + "flatPath": "about", "httpMethod": "GET", "id": "drive.about.get", + "parameterOrder": [], + "parameters": {}, "path": "about", "response": { "$ref": "About" @@ -114,15 +152,84 @@ } } }, + "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": { "description": "Gets the starting pageToken for listing future changes.", + "flatPath": "changes/startPageToken", "httpMethod": "GET", "id": "drive.changes.getStartPageToken", + "parameterOrder": [], "parameters": { "driveId": { - "description": "The ID of the shared drive for which the starting pageToken for listing future changes from that shared drive is returned.", + "description": "The ID of the shared drive for which the starting pageToken for listing future changes from that shared drive will be returned.", "location": "query", "type": "string" }, @@ -134,12 +241,14 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, "teamDriveId": { - "description": "Deprecated use driveId instead.", + "deprecated": true, + "description": "Deprecated: Use `driveId` instead.", "location": "query", "type": "string" } @@ -160,6 +269,7 @@ }, "list": { "description": "Lists the changes for a user or shared drive.", + "flatPath": "changes", "httpMethod": "GET", "id": "drive.changes.list", "parameterOrder": [ @@ -167,7 +277,7 @@ ], "parameters": { "driveId": { - "description": "The shared drive from which changes are returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.", + "description": "The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.", "location": "query", "type": "string" }, @@ -184,7 +294,7 @@ "type": "boolean" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, @@ -201,7 +311,8 @@ }, "includeTeamDriveItems": { "default": "false", - "description": "Deprecated use includeItemsFromAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `includeItemsFromAllDrives` instead.", "location": "query", "type": "boolean" }, @@ -240,12 +351,14 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, "teamDriveId": { - "description": "Deprecated use driveId instead.", + "deprecated": true, + "description": "Deprecated: Use `driveId` instead.", "location": "query", "type": "string" } @@ -267,6 +380,7 @@ }, "watch": { "description": "Subscribes to changes for a user.", + "flatPath": "changes/watch", "httpMethod": "POST", "id": "drive.changes.watch", "parameterOrder": [ @@ -274,7 +388,7 @@ ], "parameters": { "driveId": { - "description": "The shared drive from which changes are returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.", + "description": "The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.", "location": "query", "type": "string" }, @@ -291,7 +405,7 @@ "type": "boolean" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, @@ -308,7 +422,8 @@ }, "includeTeamDriveItems": { "default": "false", - "description": "Deprecated use includeItemsFromAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `includeItemsFromAllDrives` instead.", "location": "query", "type": "boolean" }, @@ -347,12 +462,14 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, "teamDriveId": { - "description": "Deprecated use driveId instead.", + "deprecated": true, + "description": "Deprecated: Use `driveId` instead.", "location": "query", "type": "string" } @@ -381,9 +498,12 @@ "channels": { "methods": { "stop": { - "description": "Stop watching resources through this channel", + "description": "Stops watching resources through this channel.", + "flatPath": "channels/stop", "httpMethod": "POST", "id": "drive.channels.stop", + "parameterOrder": [], + "parameters": {}, "path": "channels/stop", "request": { "$ref": "Channel", @@ -405,6 +525,7 @@ "methods": { "create": { "description": "Creates a comment on a file.", + "flatPath": "files/{fileId}/comments", "httpMethod": "POST", "id": "drive.comments.create", "parameterOrder": [ @@ -432,6 +553,7 @@ }, "delete": { "description": "Deletes a comment.", + "flatPath": "files/{fileId}/comments/{commentId}", "httpMethod": "DELETE", "id": "drive.comments.delete", "parameterOrder": [ @@ -460,6 +582,7 @@ }, "get": { "description": "Gets a comment by ID.", + "flatPath": "files/{fileId}/comments/{commentId}", "httpMethod": "GET", "id": "drive.comments.get", "parameterOrder": [ @@ -498,6 +621,7 @@ }, "list": { "description": "Lists a file's comments.", + "flatPath": "files/{fileId}/comments", "httpMethod": "GET", "id": "drive.comments.list", "parameterOrder": [ @@ -548,6 +672,7 @@ }, "update": { "description": "Updates a comment with patch semantics.", + "flatPath": "files/{fileId}/comments/{commentId}", "httpMethod": "PATCH", "id": "drive.comments.update", "parameterOrder": [ @@ -586,6 +711,7 @@ "methods": { "create": { "description": "Creates a shared drive.", + "flatPath": "drives", "httpMethod": "POST", "id": "drive.drives.create", "parameterOrder": [ @@ -593,7 +719,7 @@ ], "parameters": { "requestId": { - "description": "An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a shared drive. A repeated request by the same user and with the same request ID will avoid creating duplicates by attempting to create the same shared drive. If the shared drive already exists a 409 error will be returned.", + "description": "Required. An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a shared drive. A repeated request by the same user and with the same request ID will avoid creating duplicates by attempting to create the same shared drive. If the shared drive already exists a 409 error will be returned.", "location": "query", "required": true, "type": "string" @@ -611,7 +737,8 @@ ] }, "delete": { - "description": "Permanently deletes a shared drive for which the user is an organizer. The shared drive cannot contain any untrashed items.", + "description": "Permanently deletes a shared drive for which the user is an `organizer`. The shared drive cannot contain any untrashed items.", + "flatPath": "drives/{driveId}", "httpMethod": "DELETE", "id": "drive.drives.delete", "parameterOrder": [ @@ -620,7 +747,7 @@ "parameters": { "allowItemDeletion": { "default": "false", - "description": "Whether any items inside the shared drive should also be deleted. This option is only supported when useDomainAdminAccess is also set to true.", + "description": "Whether any items inside the shared drive should also be deleted. This option is only supported when `useDomainAdminAccess` is also set to `true`.", "location": "query", "type": "boolean" }, @@ -644,6 +771,7 @@ }, "get": { "description": "Gets a shared drive's metadata by ID.", + "flatPath": "drives/{driveId}", "httpMethod": "GET", "id": "drive.drives.get", "parameterOrder": [ @@ -674,6 +802,7 @@ }, "hide": { "description": "Hides a shared drive from the default view.", + "flatPath": "drives/{driveId}/hide", "httpMethod": "POST", "id": "drive.drives.hide", "parameterOrder": [ @@ -696,9 +825,11 @@ ] }, "list": { - "description": "Lists the user's shared drives.", + "description": " Lists the user's shared drives. This method accepts the `q` parameter, which is a search query combining one or more search terms. For more information, see the [Search for shared drives](/drive/api/guides/search-shareddrives) guide.", + "flatPath": "drives", "httpMethod": "GET", "id": "drive.drives.list", + "parameterOrder": [], "parameters": { "pageSize": { "default": "10", @@ -737,6 +868,7 @@ }, "unhide": { "description": "Restores a shared drive to the default view.", + "flatPath": "drives/{driveId}/unhide", "httpMethod": "POST", "id": "drive.drives.unhide", "parameterOrder": [ @@ -760,6 +892,7 @@ }, "update": { "description": "Updates the metadate for a shared drive.", + "flatPath": "drives/{driveId}", "httpMethod": "PATCH", "id": "drive.drives.update", "parameterOrder": [ @@ -795,7 +928,8 @@ "files": { "methods": { "copy": { - "description": "Creates a copy of a file and applies any requested updates with patch semantics. Folders cannot be copied.", + "description": "Creates a copy of a file and applies any requested updates with patch semantics.", + "flatPath": "files/{fileId}/copy", "httpMethod": "POST", "id": "drive.files.copy", "parameterOrder": [ @@ -821,7 +955,7 @@ "type": "boolean" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, @@ -849,7 +983,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" } @@ -869,14 +1004,15 @@ ] }, "create": { - "description": "Creates a file.", + "description": " Creates a new file. This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:*`*/*` Note: Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information on uploading files, see [Upload file data](/drive/api/guides/manage-uploads). Apps creating shortcuts with `files.create` must specify the MIME type `application/vnd.google-apps.shortcut`. Apps should specify a file extension in the `name` property when inserting files with the API. For example, an operation to insert a JPEG file should specify something like `\"name\": \"cat.jpg\"` in the metadata. Subsequent `GET` requests include the read-only `fileExtension` property populated with the extension originally specified in the `title` property. When a Google Drive user requests to download a file, or when the file is downloaded through the sync client, Drive builds a full filename (with extension) based on the title. In cases where the extension is missing, Drive attempts to determine the extension based on the file's MIME type.", + "flatPath": "files", "httpMethod": "POST", "id": "drive.files.create", "mediaUpload": { "accept": [ "*/*" ], - "maxSize": "5120GB", + "maxSize": "5497558138880", "protocols": { "resumable": { "multipart": true, @@ -888,6 +1024,7 @@ } } }, + "parameterOrder": [], "parameters": { "enforceSingleParent": { "default": "false", @@ -902,7 +1039,7 @@ "type": "boolean" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, @@ -930,7 +1067,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, @@ -953,11 +1091,11 @@ "https://www.googleapis.com/auth/drive.appdata", "https://www.googleapis.com/auth/drive.file" ], - "supportsMediaUpload": true, - "supportsSubscription": true + "supportsMediaUpload": true }, "delete": { - "description": "Permanently deletes a file owned by the user without moving it to the trash. If the file belongs to a shared drive the user must be an organizer on the parent. If the target is a folder, all descendants owned by the user are also deleted.", + "description": "Permanently deletes a file owned by the user without moving it to the trash. If the file belongs to a shared drive, the user must be an `organizer` on the parent folder. If the target is a folder, all descendants owned by the user are also deleted.", + "flatPath": "files/{fileId}", "httpMethod": "DELETE", "id": "drive.files.delete", "parameterOrder": [ @@ -966,7 +1104,8 @@ "parameters": { "enforceSingleParent": { "default": "false", - "description": "Deprecated. If an item is not in a shared drive and its last parent is deleted but the item itself is not, the item will be placed under its owner's root.", + "deprecated": true, + "description": "Deprecated: If an item is not in a shared drive and its last parent is deleted but the item itself is not, the item will be placed under its owner's root.", "location": "query", "type": "boolean" }, @@ -984,7 +1123,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" } @@ -998,12 +1138,20 @@ }, "emptyTrash": { "description": "Permanently deletes all of the user's trashed files.", + "flatPath": "files/trash", "httpMethod": "DELETE", "id": "drive.files.emptyTrash", + "parameterOrder": [], "parameters": { + "driveId": { + "description": "If set, empties the trash of the provided shared drive.", + "location": "query", + "type": "string" + }, "enforceSingleParent": { "default": "false", - "description": "Deprecated. If an item is not in a shared drive and its last parent is deleted but the item itself is not, the item will be placed under its owner's root.", + "deprecated": true, + "description": "Deprecated: If an item is not in a shared drive and its last parent is deleted but the item itself is not, the item will be placed under its owner's root.", "location": "query", "type": "boolean" } @@ -1015,6 +1163,7 @@ }, "export": { "description": "Exports a Google Workspace document to the requested MIME type and returns exported byte content. Note that the exported content is limited to 10MB.", + "flatPath": "files/{fileId}/export", "httpMethod": "GET", "id": "drive.files.export", "parameterOrder": [ @@ -1029,7 +1178,7 @@ "type": "string" }, "mimeType": { - "description": "The MIME type of the format requested for this export.", + "description": "Required. The MIME type of the format requested for this export.", "location": "query", "required": true, "type": "string" @@ -1041,12 +1190,15 @@ "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.readonly" ], - "supportsMediaDownload": true + "supportsMediaDownload": true, + "useMediaDownloadService": true }, "generateIds": { "description": "Generates a set of file IDs which can be provided in create or copy requests.", + "flatPath": "files/generateIds", "httpMethod": "GET", "id": "drive.files.generateIds", + "parameterOrder": [], "parameters": { "count": { "default": "10", @@ -1065,7 +1217,7 @@ }, "type": { "default": "files", - "description": "The type of items which the IDs can be used for. Supported values are 'files' and 'shortcuts'. Note that 'shortcuts' are only supported in the drive 'space'. (Default: 'files')", + "description": "The type of items which the IDs can be used for. Supported values are 'files' and 'shortcuts'. Note that 'shortcuts' are only supported in the `drive` 'space'. (Default: 'files')", "location": "query", "type": "string" } @@ -1081,7 +1233,8 @@ ] }, "get": { - "description": "Gets a file's metadata or content by ID.", + "description": " Gets a file's metadata or content by ID. If you provide the URL parameter `alt=media`, then the response includes the file contents in the response body. Downloading content with `alt=media` only works if the file is stored in Drive. To download Google Docs, Sheets, and Slides use [`files.export`](/drive/api/reference/rest/v3/files/export) instead. For more information, see [Download & export files](/drive/api/guides/manage-downloads).", + "flatPath": "files/{fileId}", "httpMethod": "GET", "id": "drive.files.get", "parameterOrder": [ @@ -1101,7 +1254,7 @@ "type": "string" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, @@ -1118,7 +1271,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" } @@ -1141,24 +1295,27 @@ "useMediaDownloadService": true }, "list": { - "description": "Lists or searches files.", + "description": " Lists the user's files. This method accepts the `q` parameter, which is a search query combining one or more search terms. For more information, see the [Search for files & folders](/drive/api/guides/search-files) guide. *Note:* This method returns *all* files by default, including trashed files. If you don't want trashed files to appear in the list, use the `trashed=false` query parameter to remove trashed files from the results.", + "flatPath": "files", "httpMethod": "GET", "id": "drive.files.list", + "parameterOrder": [], "parameters": { "corpora": { - "description": "Groupings of files to which the query applies. Supported groupings are: 'user' (files created by, opened by, or shared directly with the user), 'drive' (files in the specified shared drive as indicated by the 'driveId'), 'domain' (files shared to the user's domain), and 'allDrives' (A combination of 'user' and 'drive' for all drives where the user is a member). When able, use 'user' or 'drive', instead of 'allDrives', for efficiency.", + "description": "Bodies of items (files/documents) to which the query applies. Supported bodies are 'user', 'domain', 'drive', and 'allDrives'. Prefer 'user' or 'drive' to 'allDrives' for efficiency. By default, corpora is set to 'user'. However, this can change depending on the filter set through the 'q' parameter.", "location": "query", "type": "string" }, "corpus": { - "description": "The source of files to list. Deprecated: use 'corpora' instead.", + "deprecated": true, + "description": "Deprecated: The source of files to list. Use 'corpora' instead.", "enum": [ "domain", "user" ], "enumDescriptions": [ "Files shared to the user's domain.", - "Files owned by or shared to the user. If a user has permissions on a Shared Drive, the files inside it won't be retrieved unless the user has created, opened, or shared the file." + "Files owned by or shared to the user." ], "location": "query", "type": "string" @@ -1175,7 +1332,7 @@ "type": "boolean" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, @@ -1186,12 +1343,13 @@ }, "includeTeamDriveItems": { "default": "false", - "description": "Deprecated use includeItemsFromAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `includeItemsFromAllDrives` instead.", "location": "query", "type": "boolean" }, "orderBy": { - "description": "A comma-separated list of sort keys. Valid keys are 'createdTime', 'folder', 'modifiedByMeTime', 'modifiedTime', 'name', 'name_natural', 'quotaBytesUsed', 'recency', 'sharedWithMeTime', 'starred', and 'viewedByMeTime'. Each key sorts ascending by default, but may be reversed with the 'desc' modifier. Example usage: ?orderBy=folder,modifiedTime desc,name. Please note that there is a current limitation for users with approximately one million files in which the requested sort order is ignored.", + "description": "A comma-separated list of sort keys. Valid keys are 'createdTime', 'folder', 'modifiedByMeTime', 'modifiedTime', 'name', 'name_natural', 'quotaBytesUsed', 'recency', 'sharedWithMeTime', 'starred', and 'viewedByMeTime'. Each key sorts ascending by default, but can be reversed with the 'desc' modifier. Example usage: ?orderBy=folder,modifiedTime desc,name.", "location": "query", "type": "string" }, @@ -1210,7 +1368,7 @@ "type": "string" }, "q": { - "description": "A query for filtering the file results. See the \"Search for Files\" guide for supported syntax.", + "description": "A query for filtering the file results. See the \"Search for files & folders\" guide for supported syntax.", "location": "query", "type": "string" }, @@ -1228,12 +1386,14 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, "teamDriveId": { - "description": "Deprecated use driveId instead.", + "deprecated": true, + "description": "Deprecated: Use `driveId` instead.", "location": "query", "type": "string" } @@ -1254,6 +1414,7 @@ }, "listLabels": { "description": "Lists the labels on a file.", + "flatPath": "files/{fileId}/listLabels", "httpMethod": "GET", "id": "drive.files.listLabels", "parameterOrder": [ @@ -1261,14 +1422,14 @@ ], "parameters": { "fileId": { - "description": "The ID of the file.", + "description": "The ID for the file.", "location": "path", "required": true, "type": "string" }, "maxResults": { "default": "100", - "description": "The maximum number of labels to return per page. When not set, this defaults to 100.", + "description": "The maximum number of labels to return per page. When not set, defaults to 100.", "format": "int32", "location": "query", "maximum": "100", @@ -1294,7 +1455,8 @@ ] }, "modifyLabels": { - "description": "Modifies the set of labels on a file.", + "description": "Modifies the set of labels applied to a file. Returns a list of the labels that were added or modified.", + "flatPath": "files/{fileId}/modifyLabels", "httpMethod": "POST", "id": "drive.files.modifyLabels", "parameterOrder": [ @@ -1302,7 +1464,7 @@ ], "parameters": { "fileId": { - "description": "The ID of the file for which the labels are modified.", + "description": "The ID of the file to which the labels belong.", "location": "path", "required": true, "type": "string" @@ -1322,14 +1484,15 @@ ] }, "update": { - "description": "Updates a file's metadata and/or content. When calling this method, only populate fields in the request that you want to modify. When updating fields, some fields might change automatically, such as modifiedDate. This method supports patch semantics.", + "description": " Updates a file's metadata and/or content. When calling this method, only populate fields in the request that you want to modify. When updating fields, some fields might be changed automatically, such as `modifiedDate`. This method supports patch semantics. This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:*`*/*` Note: Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information on uploading files, see [Upload file data](/drive/api/guides/manage-uploads).", + "flatPath": "files/{fileId}", "httpMethod": "PATCH", "id": "drive.files.update", "mediaUpload": { "accept": [ "*/*" ], - "maxSize": "5120GB", + "maxSize": "5497558138880", "protocols": { "resumable": { "multipart": true, @@ -1352,7 +1515,8 @@ }, "enforceSingleParent": { "default": "false", - "description": "Deprecated. Adding files to multiple folders is no longer supported. Use shortcuts instead.", + "deprecated": true, + "description": "Deprecated: Adding files to multiple folders is no longer supported. Use shortcuts instead.", "location": "query", "type": "boolean" }, @@ -1363,7 +1527,7 @@ "type": "string" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, @@ -1396,7 +1560,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, @@ -1424,7 +1589,8 @@ "supportsMediaUpload": true }, "watch": { - "description": "Subscribes to changes to a file. While you can establish a channel for changes to a file on a shared drive, a change to a shared drive file won't create a notification.", + "description": "Subscribes to changes to a file.", + "flatPath": "files/{fileId}/watch", "httpMethod": "POST", "id": "drive.files.watch", "parameterOrder": [ @@ -1444,7 +1610,7 @@ "type": "string" }, "includeLabels": { - "description": "A comma-separated list of IDs of labels to include in the labelInfo part of the response.", + "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.", "location": "query", "type": "string" }, @@ -1461,7 +1627,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" } @@ -1483,16 +1650,15 @@ "https://www.googleapis.com/auth/drive.photos.readonly", "https://www.googleapis.com/auth/drive.readonly" ], - "supportsMediaDownload": true, - "supportsSubscription": true, - "useMediaDownloadService": true + "supportsSubscription": true } } }, "permissions": { "methods": { "create": { - "description": "Creates a permission for a file or shared drive.", + "description": "Creates a permission for a file or shared drive. **Warning:** Concurrent permissions operations on the same file are not supported; only the last update is applied.", + "flatPath": "files/{fileId}/permissions", "httpMethod": "POST", "id": "drive.permissions.create", "parameterOrder": [ @@ -1506,7 +1672,8 @@ }, "enforceSingleParent": { "default": "false", - "description": "Deprecated. See moveToNewOwnersRoot for details.", + "deprecated": true, + "description": "Deprecated: See `moveToNewOwnersRoot` for details.", "location": "query", "type": "boolean" }, @@ -1518,7 +1685,7 @@ }, "moveToNewOwnersRoot": { "default": "false", - "description": "This parameter will only take effect if the item is not in a shared drive and the request is attempting to transfer the ownership of the item. If set to true, the item will be moved to the new owner's My Drive root folder and all prior parents removed. If set to false, parents are not changed.", + "description": "This parameter will only take effect if the item is not in a shared drive and the request is attempting to transfer the ownership of the item. If set to `true`, the item will be moved to the new owner's My Drive root folder and all prior parents removed. If set to `false`, parents are not changed.", "location": "query", "type": "boolean" }, @@ -1535,13 +1702,14 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, "transferOwnership": { "default": "false", - "description": "Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side effect. File owners can only transfer ownership of files existing on My Drive. Files existing in a shared drive are owned by the organization that owns that shared drive. Ownership transfers are not supported for files and folders in shared drives. Organizers of a shared drive can move items from that shared drive into their My Drive which transfers the ownership to them.", + "description": "Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side effect.", "location": "query", "type": "boolean" }, @@ -1565,7 +1733,8 @@ ] }, "delete": { - "description": "Deletes a permission.", + "description": "Deletes a permission. **Warning:** Concurrent permissions operations on the same file are not supported; only the last update is applied.", + "flatPath": "files/{fileId}/permissions/{permissionId}", "httpMethod": "DELETE", "id": "drive.permissions.delete", "parameterOrder": [ @@ -1593,7 +1762,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, @@ -1612,6 +1782,7 @@ }, "get": { "description": "Gets a permission by ID.", + "flatPath": "files/{fileId}/permissions/{permissionId}", "httpMethod": "GET", "id": "drive.permissions.get", "parameterOrder": [ @@ -1639,7 +1810,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, @@ -1665,6 +1837,7 @@ }, "list": { "description": "Lists a file's or shared drive's permissions.", + "flatPath": "files/{fileId}/permissions", "httpMethod": "GET", "id": "drive.permissions.list", "parameterOrder": [ @@ -1703,7 +1876,8 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, @@ -1728,7 +1902,8 @@ ] }, "update": { - "description": "Updates a permission with patch semantics.", + "description": "Updates a permission with patch semantics. **Warning:** Concurrent permissions operations on the same file are not supported; only the last update is applied.", + "flatPath": "files/{fileId}/permissions/{permissionId}", "httpMethod": "PATCH", "id": "drive.permissions.update", "parameterOrder": [ @@ -1762,13 +1937,14 @@ }, "supportsTeamDrives": { "default": "false", - "description": "Deprecated use supportsAllDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `supportsAllDrives` instead.", "location": "query", "type": "boolean" }, "transferOwnership": { "default": "false", - "description": "Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side effect. File owners can only transfer ownership of files existing on My Drive. Files existing in a shared drive are owned by the organization that owns that shared drive. Ownership transfers are not supported for files and folders in shared drives. Organizers of a shared drive can move items from that shared drive into their My Drive which transfers the ownership to them.", + "description": "Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side effect.", "location": "query", "type": "boolean" }, @@ -1797,6 +1973,7 @@ "methods": { "create": { "description": "Creates a reply to a comment.", + "flatPath": "files/{fileId}/comments/{commentId}/replies", "httpMethod": "POST", "id": "drive.replies.create", "parameterOrder": [ @@ -1831,6 +2008,7 @@ }, "delete": { "description": "Deletes a reply.", + "flatPath": "files/{fileId}/comments/{commentId}/replies/{replyId}", "httpMethod": "DELETE", "id": "drive.replies.delete", "parameterOrder": [ @@ -1866,6 +2044,7 @@ }, "get": { "description": "Gets a reply by ID.", + "flatPath": "files/{fileId}/comments/{commentId}/replies/{replyId}", "httpMethod": "GET", "id": "drive.replies.get", "parameterOrder": [ @@ -1911,6 +2090,7 @@ }, "list": { "description": "Lists a comment's replies.", + "flatPath": "files/{fileId}/comments/{commentId}/replies", "httpMethod": "GET", "id": "drive.replies.list", "parameterOrder": [ @@ -1963,6 +2143,7 @@ }, "update": { "description": "Updates a reply with patch semantics.", + "flatPath": "files/{fileId}/comments/{commentId}/replies/{replyId}", "httpMethod": "PATCH", "id": "drive.replies.update", "parameterOrder": [ @@ -2008,6 +2189,7 @@ "methods": { "delete": { "description": "Permanently deletes a file version. You can only delete revisions for files with binary content in Google Drive, like images or videos. Revisions for other files, like Google Docs or Sheets, and the last remaining file version can't be deleted.", + "flatPath": "files/{fileId}/revisions/{revisionId}", "httpMethod": "DELETE", "id": "drive.revisions.delete", "parameterOrder": [ @@ -2037,6 +2219,7 @@ }, "get": { "description": "Gets a revision's metadata or content by ID.", + "flatPath": "files/{fileId}/revisions/{revisionId}", "httpMethod": "GET", "id": "drive.revisions.get", "parameterOrder": [ @@ -2081,6 +2264,7 @@ }, "list": { "description": "Lists a file's revisions.", + "flatPath": "files/{fileId}/revisions", "httpMethod": "GET", "id": "drive.revisions.list", "parameterOrder": [ @@ -2124,6 +2308,7 @@ }, "update": { "description": "Updates a revision with patch semantics.", + "flatPath": "files/{fileId}/revisions/{revisionId}", "httpMethod": "PATCH", "id": "drive.revisions.update", "parameterOrder": [ @@ -2162,7 +2347,8 @@ "teamdrives": { "methods": { "create": { - "description": "Deprecated use drives.create instead.", + "description": "Deprecated: Use `drives.create` instead.", + "flatPath": "teamdrives", "httpMethod": "POST", "id": "drive.teamdrives.create", "parameterOrder": [ @@ -2170,7 +2356,7 @@ ], "parameters": { "requestId": { - "description": "An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a Team Drive. A repeated request by the same user and with the same request ID will avoid creating duplicates by attempting to create the same Team Drive. If the Team Drive already exists a 409 error will be returned.", + "description": "Required. An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a Team Drive. A repeated request by the same user and with the same request ID will avoid creating duplicates by attempting to create the same Team Drive. If the Team Drive already exists a 409 error will be returned.", "location": "query", "required": true, "type": "string" @@ -2188,7 +2374,8 @@ ] }, "delete": { - "description": "Deprecated use drives.delete instead.", + "description": "Deprecated: Use `drives.delete` instead.", + "flatPath": "teamdrives/{teamDriveId}", "httpMethod": "DELETE", "id": "drive.teamdrives.delete", "parameterOrder": [ @@ -2208,7 +2395,8 @@ ] }, "get": { - "description": "Deprecated use drives.get instead.", + "description": "Deprecated: Use `drives.get` instead.", + "flatPath": "teamdrives/{teamDriveId}", "httpMethod": "GET", "id": "drive.teamdrives.get", "parameterOrder": [ @@ -2238,9 +2426,11 @@ ] }, "list": { - "description": "Deprecated use drives.list instead.", + "description": "Deprecated: Use `drives.list` instead.", + "flatPath": "teamdrives", "httpMethod": "GET", "id": "drive.teamdrives.list", + "parameterOrder": [], "parameters": { "pageSize": { "default": "10", @@ -2278,7 +2468,8 @@ ] }, "update": { - "description": "Deprecated use drives.update instead", + "description": "Deprecated: Use `drives.update` instead.", + "flatPath": "teamdrives/{teamDriveId}", "httpMethod": "PATCH", "id": "drive.teamdrives.update", "parameterOrder": [ @@ -2312,7 +2503,7 @@ } } }, - "revision": "20230115", + "revision": "20240227", "rootUrl": "https://www.googleapis.com/", "schemas": { "About": { @@ -2328,7 +2519,8 @@ "type": "boolean" }, "canCreateTeamDrives": { - "description": "Deprecated - use canCreateDrives instead.", + "deprecated": true, + "description": "Deprecated: Use `canCreateDrives` instead.", "type": "boolean" }, "driveThemes": { @@ -2381,7 +2573,7 @@ }, "kind": { "default": "drive#about", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#about\".", + "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#about\"`.", "type": "string" }, "maxImportSizes": { @@ -2424,19 +2616,23 @@ "type": "object" }, "teamDriveThemes": { - "description": "Deprecated - use driveThemes instead.", + "deprecated": true, + "description": "Deprecated: Use `driveThemes` instead.", "items": { "properties": { "backgroundImageLink": { - "description": "Deprecated - use driveThemes/backgroundImageLink instead.", + "deprecated": true, + "description": "Deprecated: Use `driveThemes/backgroundImageLink` instead.", "type": "string" }, "colorRgb": { - "description": "Deprecated - use driveThemes/colorRgb instead.", + "deprecated": true, + "description": "Deprecated: Use `driveThemes/colorRgb` instead.", "type": "string" }, "id": { - "description": "Deprecated - use driveThemes/id instead.", + "deprecated": true, + "description": "Deprecated: Use `driveThemes/id` instead.", "type": "string" } }, @@ -2451,12 +2647,180 @@ }, "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", "properties": { "changeType": { - "description": "The type of the change. Possible values are file and drive.", + "description": "The type of the change. Possible values are `file` and `drive`.", "type": "string" }, "drive": { @@ -2477,7 +2841,7 @@ }, "kind": { "default": "drive#change", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#change\".", + "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#change\"`.", "type": "string" }, "removed": { @@ -2486,10 +2850,12 @@ }, "teamDrive": { "$ref": "TeamDrive", - "description": "Deprecated - use drive instead." + "deprecated": true, + "description": "Deprecated: Use `drive` instead." }, "teamDriveId": { - "description": "Deprecated - use driveId instead.", + "deprecated": true, + "description": "Deprecated: Use `driveId` instead.", "type": "string" }, "time": { @@ -2498,7 +2864,8 @@ "type": "string" }, "type": { - "description": "Deprecated - use changeType instead.", + "deprecated": true, + "description": "Deprecated: Use `changeType` instead.", "type": "string" } }, @@ -2517,22 +2884,22 @@ }, "kind": { "default": "drive#changeList", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#changeList\".", + "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#changeList\"`.", "type": "string" }, "newStartPageToken": { - "description": "The starting page token for future changes. This will be present only if the end of the current changes list has been reached.", + "description": "The starting page token for future changes. This will be present only if the end of the current changes list has been reached. The page token doesn't expire.", "type": "string" }, "nextPageToken": { - "description": "The page token for the next page of changes. This will be absent if the end of the changes list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.", + "description": "The page token for the next page of changes. This will be absent if the end of the changes list has been reached. The page token doesn't expire.", "type": "string" } }, "type": "object" }, "Channel": { - "description": "An notification channel used to watch for resource changes.", + "description": "A notification channel used to watch for resource changes.", "id": "Channel", "properties": { "address": { @@ -2550,12 +2917,11 @@ }, "kind": { "default": "api#channel", - "description": "Identifies this as a notification channel used to watch for changes to a resource, which is \"api#channel\".", + "description": "Identifies this as a notification channel used to watch for changes to a resource, which is `api#channel`.", "type": "string" }, "params": { "additionalProperties": { - "description": "Declares a new parameter by name.", "type": "string" }, "description": "Additional parameters controlling delivery channel behavior. Optional.", @@ -2578,23 +2944,23 @@ "type": "string" }, "type": { - "description": "The type of delivery mechanism used for this channel. Valid values are \"web_hook\" (or \"webhook\"). Both values refer to a channel where Http requests are used to deliver messages.", + "description": "The type of delivery mechanism used for this channel. Valid values are \"web_hook\" or \"webhook\".", "type": "string" } }, "type": "object" }, "Comment": { - "description": "A comment on a file.", + "description": "A comment on a file. Some resource methods (such as `comments.update`) require a `commentId`. Use the `comments.list` method to retrieve the ID for a comment in a file.", "id": "Comment", "properties": { "anchor": { - "description": "A region of the document represented as a JSON string. For details on defining anchor properties, refer to Add comments and replies.", + "description": "A region of the document represented as a JSON string. For details on defining anchor properties, refer to [Manage comments and replies](https://developers.google.com/drive/api/v3/manage-comments).", "type": "string" }, "author": { "$ref": "User", - "description": "The author of the comment. The author's email address and permission ID will not be populated." + "description": "Output only. The author of the comment. The author's email address and permission ID will not be populated." }, "content": { "annotations": { @@ -2603,7 +2969,7 @@ "drive.comments.update" ] }, - "description": "The plain text content of the comment. This field is used for setting the content, while htmlContent should be displayed.", + "description": "The plain text content of the comment. This field is used for setting the content, while `htmlContent` should be displayed.", "type": "string" }, "createdTime": { @@ -2612,20 +2978,20 @@ "type": "string" }, "deleted": { - "description": "Whether the comment has been deleted. A deleted comment has no content.", + "description": "Output only. Whether the comment has been deleted. A deleted comment has no content.", "type": "boolean" }, "htmlContent": { - "description": "The content of the comment with HTML formatting.", + "description": "Output only. The content of the comment with HTML formatting.", "type": "string" }, "id": { - "description": "The ID of the comment.", + "description": "Output only. The ID of the comment.", "type": "string" }, "kind": { "default": "drive#comment", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#comment\".", + "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#comment\"`.", "type": "string" }, "modifiedTime": { @@ -2648,14 +3014,14 @@ "type": "object" }, "replies": { - "description": "The full list of replies to the comment in chronological order.", + "description": "Output only. The full list of replies to the comment in chronological order.", "items": { "$ref": "Reply" }, "type": "array" }, "resolved": { - "description": "Whether the comment has been resolved by one of its replies.", + "description": "Output only. Whether the comment has been resolved by one of its replies.", "type": "boolean" } }, @@ -2674,11 +3040,11 @@ }, "kind": { "default": "drive#commentList", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#commentList\".", + "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#commentList\"`.", "type": "string" }, "nextPageToken": { - "description": "The page token for the next page of comments. This will be absent if the end of the comments list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.", + "description": "The page token for the next page of comments. This will be absent if the end of the comments list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.", "type": "string" } }, @@ -2688,36 +3054,44 @@ "description": "A restriction for accessing the content of the file.", "id": "ContentRestriction", "properties": { + "ownerRestricted": { + "description": "Whether the content restriction can only be modified or removed by a user who owns the file. For files in shared drives, any user with `organizer` capabilities can modify or remove this content restriction.", + "type": "boolean" + }, "readOnly": { "description": "Whether the content of the file is read-only. If a file is read-only, a new revision of the file may not be added, comments may not be added or modified, and the title of the file may not be modified.", "type": "boolean" }, "reason": { - "description": "Reason for why the content of the file is restricted. This is only mutable on requests that also set readOnly=true.", + "description": "Reason for why the content of the file is restricted. This is only mutable on requests that also set `readOnly=true`.", "type": "string" }, "restrictingUser": { "$ref": "User", - "description": "The user who set the content restriction. Only populated if readOnly is true." + "description": "Output only. The user who set the content restriction. Only populated if `readOnly` is true." }, "restrictionTime": { "description": "The time at which the content restriction was set (formatted RFC 3339 timestamp). Only populated if readOnly is true.", "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": "The type of the content restriction. Currently the only possible value is globalContentRestriction.", + "description": "Output only. The type of the content restriction. Currently the only possible value is `globalContentRestriction`.", "type": "string" } }, "type": "object" }, "Drive": { - "description": "Representation of a shared drive.", + "description": "Representation of a shared drive. Some resource methods (such as `drives.update`) require a `driveId`. Use the `drives.list` method to retrieve the ID for a shared drive.", "id": "Drive", "properties": { "backgroundImageFile": { - "description": "An image file and cropping parameters from which a background image for this shared drive is set. This is a write only field; it can only be set on drive.drives.update requests that don't set themeId. When specified, all fields of the backgroundImageFile must be set.", + "description": "An image file and cropping parameters from which a background image for this shared drive is set. This is a write only field; it can only be set on `drive.drives.update` requests that don't set `themeId`. When specified, all fields of the `backgroundImageFile` must be set.", "properties": { "id": { "description": "The ID of an image file in Google Drive to use for the background image.", @@ -2742,93 +3116,97 @@ "type": "object" }, "backgroundImageLink": { - "description": "A short-lived link to this shared drive's background image.", + "description": "Output only. A short-lived link to this shared drive's background image.", "type": "string" }, "capabilities": { - "description": "Capabilities the current user has on this shared drive.", + "description": "Output only. Capabilities the current user has on this shared drive.", "properties": { "canAddChildren": { - "description": "Whether the current user can add children to folders in this shared drive.", + "description": "Output only. Whether the current user can add children to folders in this shared drive.", "type": "boolean" }, "canChangeCopyRequiresWriterPermissionRestriction": { - "description": "Whether the current user can change the copyRequiresWriterPermission restriction of this shared drive.", + "description": "Output only. Whether the current user can change the `copyRequiresWriterPermission` restriction of this shared drive.", "type": "boolean" }, "canChangeDomainUsersOnlyRestriction": { - "description": "Whether the current user can change the domainUsersOnly restriction of this shared drive.", + "description": "Output only. Whether the current user can change the `domainUsersOnly` restriction of this shared drive.", "type": "boolean" }, "canChangeDriveBackground": { - "description": "Whether the current user can change the background of this shared drive.", + "description": "Output only. Whether the current user can change the background of this shared drive.", "type": "boolean" }, "canChangeDriveMembersOnlyRestriction": { - "description": "Whether the current user can change the driveMembersOnly restriction of this shared drive.", + "description": "Output only. Whether the current user can change the `driveMembersOnly` restriction of this shared drive.", + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "description": "Output only. Whether the current user can change the `sharingFoldersRequiresOrganizerPermission` restriction of this shared drive.", "type": "boolean" }, "canComment": { - "description": "Whether the current user can comment on files in this shared drive.", + "description": "Output only. Whether the current user can comment on files in this shared drive.", "type": "boolean" }, "canCopy": { - "description": "Whether the current user can copy files in this shared drive.", + "description": "Output only. Whether the current user can copy files in this shared drive.", "type": "boolean" }, "canDeleteChildren": { - "description": "Whether the current user can delete children from folders in this shared drive.", + "description": "Output only. Whether the current user can delete children from folders in this shared drive.", "type": "boolean" }, "canDeleteDrive": { - "description": "Whether the current user can delete this shared drive. Attempting to delete the shared drive may still fail if there are untrashed items inside the shared drive.", + "description": "Output only. Whether the current user can delete this shared drive. Attempting to delete the shared drive may still fail if there are untrashed items inside the shared drive.", "type": "boolean" }, "canDownload": { - "description": "Whether the current user can download files in this shared drive.", + "description": "Output only. Whether the current user can download files in this shared drive.", "type": "boolean" }, "canEdit": { - "description": "Whether the current user can edit files in this shared drive", + "description": "Output only. Whether the current user can edit files in this shared drive", "type": "boolean" }, "canListChildren": { - "description": "Whether the current user can list the children of folders in this shared drive.", + "description": "Output only. Whether the current user can list the children of folders in this shared drive.", "type": "boolean" }, "canManageMembers": { - "description": "Whether the current user can add members to this shared drive or remove them or change their role.", + "description": "Output only. Whether the current user can add members to this shared drive or remove them or change their role.", "type": "boolean" }, "canReadRevisions": { - "description": "Whether the current user can read the revisions resource of files in this shared drive.", + "description": "Output only. Whether the current user can read the revisions resource of files in this shared drive.", "type": "boolean" }, "canRename": { - "description": "Whether the current user can rename files or folders in this shared drive.", + "description": "Output only. Whether the current user can rename files or folders in this shared drive.", "type": "boolean" }, "canRenameDrive": { - "description": "Whether the current user can rename this shared drive.", + "description": "Output only. Whether the current user can rename this shared drive.", "type": "boolean" }, "canResetDriveRestrictions": { - "description": "Whether the current user can reset the shared drive restrictions to defaults.", + "description": "Output only. Whether the current user can reset the shared drive restrictions to defaults.", "type": "boolean" }, "canShare": { - "description": "Whether the current user can share files or folders in this shared drive.", + "description": "Output only. Whether the current user can share files or folders in this shared drive.", "type": "boolean" }, "canTrashChildren": { - "description": "Whether the current user can trash children from folders in this shared drive.", + "description": "Output only. Whether the current user can trash children from folders in this shared drive.", "type": "boolean" } }, "type": "object" }, "colorRgb": { - "description": "The color of this shared drive as an RGB hex string. It can only be set on a drive.drives.update request that does not set themeId.", + "description": "The color of this shared drive as an RGB hex string. It can only be set on a `drive.drives.update` request that does not set `themeId`.", "type": "string" }, "createdTime": { @@ -2841,36 +3219,31 @@ "type": "boolean" }, "id": { - "description": "The ID of this shared drive which is also the ID of the top level folder of this shared drive.", + "description": "Output only. The ID of this shared drive which is also the ID of the top level folder of this shared drive.", "type": "string" }, "kind": { "default": "drive#drive", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#drive\".", + "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#drive\"`.", "type": "string" }, "name": { - "annotations": { - "required": [ - "drive.drives.create" - ] - }, "description": "The name of this shared drive.", "type": "string" }, "orgUnitId": { - "description": "The organizational unit of this shared drive. This field is only populated on drives.list responses when the useDomainAdminAccess parameter is set to true.", + "description": "Output only. The organizational unit of this shared drive. This field is only populated on `drives.list` responses when the `useDomainAdminAccess` parameter is set to `true`.", "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.", "type": "boolean" }, "copyRequiresWriterPermission": { - "description": "Whether the options to copy, print, or download files inside this shared drive, should be disabled for readers and commenters. When this restriction is set to true, it will override the similarly named field to true for any file inside this shared drive.", + "description": "Whether the options to copy, print, or download files inside this shared drive, should be disabled for readers and commenters. When this restriction is set to `true`, it will override the similarly named field to `true` for any file inside this shared drive.", "type": "boolean" }, "domainUsersOnly": { @@ -2880,12 +3253,16 @@ "driveMembersOnly": { "description": "Whether access to items inside this shared drive is restricted to its members.", "type": "boolean" + }, + "sharingFoldersRequiresOrganizerPermission": { + "description": "If true, only users with the organizer role can share folders. If false, users with either the organizer role or the file organizer role can share folders.", + "type": "boolean" } }, "type": "object" }, "themeId": { - "description": "The ID of the theme from which the background image and color will be set. The set of possible driveThemes can be retrieved from a drive.about.get response. When not specified on a drive.drives.create request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set colorRgb or backgroundImageFile.", + "description": "The ID of the theme from which the background image and color will be set. The set of possible `driveThemes` can be retrieved from a `drive.about.get` response. When not specified on a `drive.drives.create` request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set `colorRgb` or `backgroundImageFile`.", "type": "string" } }, @@ -2904,18 +3281,18 @@ }, "kind": { "default": "drive#driveList", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#driveList\".", + "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#driveList\"`.", "type": "string" }, "nextPageToken": { - "description": "The page token for the next page of shared drives. This will be absent if the end of the list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.", + "description": "The page token for the next page of shared drives. This will be absent if the end of the list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.", "type": "string" } }, "type": "object" }, "File": { - "description": "The metadata for a file.", + "description": "The metadata for a file. Some resource methods (such as `files.update`) require a `fileId`. Use the `files.list` method to retrieve the ID for a file.", "id": "File", "properties": { "appProperties": { @@ -2926,158 +3303,179 @@ "type": "object" }, "capabilities": { - "description": "Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.", + "description": "Output only. Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.", "properties": { "canAcceptOwnership": { - "description": "Whether the current user is the pending owner of the file. Not populated for shared drive files.", + "description": "Output only. Whether the current user is the pending owner of the file. Not populated for shared drive files.", "type": "boolean" }, "canAddChildren": { - "description": "Whether the current user can add children to this folder. This is always false when the item is not a folder.", + "description": "Output only. Whether the current user can add children to this folder. This is always false when the item is not a folder.", "type": "boolean" }, "canAddFolderFromAnotherDrive": { - "description": "Whether the current user can add a folder from another drive (different shared drive or My Drive) to this folder. This is false when the item is not a folder. Only populated for items in shared drives.", + "description": "Output only. Whether the current user can add a folder from another drive (different shared drive or My Drive) to this folder. This is false when the item is not a folder. Only populated for items in shared drives.", "type": "boolean" }, "canAddMyDriveParent": { - "description": "Whether the current user can add a parent for the item without removing an existing parent in the same request. Not populated for shared drive files.", + "description": "Output only. Whether the current user can add a parent for the item without removing an existing parent in the same request. Not populated for shared drive files.", "type": "boolean" }, "canChangeCopyRequiresWriterPermission": { - "description": "Whether the current user can change the copyRequiresWriterPermission restriction of this file.", + "description": "Output only. Whether the current user can change the `copyRequiresWriterPermission` restriction of this file.", "type": "boolean" }, "canChangeSecurityUpdateEnabled": { - "description": "Whether the current user can change the securityUpdateEnabled field on link share metadata.", + "description": "Output only. Whether the current user can change the securityUpdateEnabled field on link share metadata.", "type": "boolean" }, "canChangeViewersCanCopyContent": { - "description": "Deprecated", + "deprecated": true, + "description": "Deprecated: Output only.", "type": "boolean" }, "canComment": { - "description": "Whether the current user can comment on this file.", + "description": "Output only. Whether the current user can comment on this file.", "type": "boolean" }, "canCopy": { - "description": "Whether the current user can copy this file. For an item in a shared drive, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.", + "description": "Output only. Whether the current user can copy this file. For an item in a shared drive, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.", "type": "boolean" }, "canDelete": { - "description": "Whether the current user can delete this file.", + "description": "Output only. Whether the current user can delete this file.", "type": "boolean" }, "canDeleteChildren": { - "description": "Whether the current user can delete children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.", + "description": "Output only. Whether the current user can delete children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.", "type": "boolean" }, "canDownload": { - "description": "Whether the current user can download this file.", + "description": "Output only. Whether the current user can download this file.", "type": "boolean" }, "canEdit": { - "description": "Whether the current user can edit this file. Other factors may limit the type of changes a user can make to a file. For example, see canChangeCopyRequiresWriterPermission or canModifyContent.", + "description": "Output only. Whether the current user can edit this file. Other factors may limit the type of changes a user can make to a file. For example, see `canChangeCopyRequiresWriterPermission` or `canModifyContent`.", "type": "boolean" }, "canListChildren": { - "description": "Whether the current user can list the children of this folder. This is always false when the item is not a folder.", + "description": "Output only. Whether the current user can list the children of this folder. This is always false when the item is not a folder.", "type": "boolean" }, "canModifyContent": { - "description": "Whether the current user can modify the content of this file.", + "description": "Output only. Whether the current user can modify the content of this file.", "type": "boolean" }, "canModifyContentRestriction": { - "description": "Whether the current user can modify restrictions on content of this file.", + "deprecated": true, + "description": "Deprecated: Output only. Use one of `canModifyEditorContentRestriction`, `canModifyOwnerContentRestriction` or `canRemoveContentRestriction`.", + "type": "boolean" + }, + "canModifyEditorContentRestriction": { + "description": "Output only. Whether the current user can add or modify content restrictions on the file which are editor restricted.", "type": "boolean" }, "canModifyLabels": { - "description": "Whether the current user can modify the labels on this file.", + "description": "Output only. Whether the current user can modify the labels on the file.", + "type": "boolean" + }, + "canModifyOwnerContentRestriction": { + "description": "Output only. Whether the current user can add or modify content restrictions which are owner restricted.", "type": "boolean" }, "canMoveChildrenOutOfDrive": { - "description": "Whether the current user can move children of this folder outside of the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.", + "description": "Output only. Whether the current user can move children of this folder outside of the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.", "type": "boolean" }, "canMoveChildrenOutOfTeamDrive": { - "description": "Deprecated - use canMoveChildrenOutOfDrive instead.", + "deprecated": true, + "description": "Deprecated: Output only. Use `canMoveChildrenOutOfDrive` instead.", "type": "boolean" }, "canMoveChildrenWithinDrive": { - "description": "Whether the current user can move children of this folder within this drive. This is false when the item is not a folder. Note that a request to move the child may still fail depending on the current user's access to the child and to the destination folder.", + "description": "Output only. Whether the current user can move children of this folder within this drive. This is false when the item is not a folder. Note that a request to move the child may still fail depending on the current user's access to the child and to the destination folder.", "type": "boolean" }, "canMoveChildrenWithinTeamDrive": { - "description": "Deprecated - use canMoveChildrenWithinDrive instead.", + "deprecated": true, + "description": "Deprecated: Output only. Use `canMoveChildrenWithinDrive` instead.", "type": "boolean" }, "canMoveItemIntoTeamDrive": { - "description": "Deprecated - use canMoveItemOutOfDrive instead.", + "deprecated": true, + "description": "Deprecated: Output only. Use `canMoveItemOutOfDrive` instead.", "type": "boolean" }, "canMoveItemOutOfDrive": { - "description": "Whether the current user can move this item outside of this drive by changing its parent. Note that a request to change the parent of the item may still fail depending on the new parent that is being added.", + "description": "Output only. Whether the current user can move this item outside of this drive by changing its parent. Note that a request to change the parent of the item may still fail depending on the new parent that is being added.", "type": "boolean" }, "canMoveItemOutOfTeamDrive": { - "description": "Deprecated - use canMoveItemOutOfDrive instead.", + "deprecated": true, + "description": "Deprecated: Output only. Use `canMoveItemOutOfDrive` instead.", "type": "boolean" }, "canMoveItemWithinDrive": { - "description": "Whether the current user can move this item within this drive. Note that a request to change the parent of the item may still fail depending on the new parent that is being added and the parent that is being removed.", + "description": "Output only. Whether the current user can move this item within this drive. Note that a request to change the parent of the item may still fail depending on the new parent that is being added and the parent that is being removed.", "type": "boolean" }, "canMoveItemWithinTeamDrive": { - "description": "Deprecated - use canMoveItemWithinDrive instead.", + "deprecated": true, + "description": "Deprecated: Output only. Use `canMoveItemWithinDrive` instead.", "type": "boolean" }, "canMoveTeamDriveItem": { - "description": "Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.", + "deprecated": true, + "description": "Deprecated: Output only. Use `canMoveItemWithinDrive` or `canMoveItemOutOfDrive` instead.", "type": "boolean" }, "canReadDrive": { - "description": "Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.", + "description": "Output only. Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.", "type": "boolean" }, "canReadLabels": { - "description": "Whether the current user can read the labels on this file.", + "description": "Output only. Whether the current user can read the labels on the file.", "type": "boolean" }, "canReadRevisions": { - "description": "Whether the current user can read the revisions resource of this file. For a shared drive item, whether revisions of non-folder descendants of this item, or this item itself if it isn't a folder, can be read.", + "description": "Output only. Whether the current user can read the revisions resource of this file. For a shared drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.", "type": "boolean" }, "canReadTeamDrive": { - "description": "Deprecated - use canReadDrive instead.", + "deprecated": true, + "description": "Deprecated: Output only. Use `canReadDrive` instead.", "type": "boolean" }, "canRemoveChildren": { - "description": "Whether the current user can remove children from this folder. This is always false when the item is not a folder. For a folder in a shared drive, use canDeleteChildren or canTrashChildren instead.", + "description": "Output only. Whether the current user can remove children from this folder. This is always false when the item is not a folder. For a folder in a shared drive, use `canDeleteChildren` or `canTrashChildren` instead.", + "type": "boolean" + }, + "canRemoveContentRestriction": { + "description": "Output only. Whether there is a content restriction on the file that can be removed by the current user.", "type": "boolean" }, "canRemoveMyDriveParent": { - "description": "Whether the current user can remove a parent from the item without adding another parent in the same request. Not populated for shared drive files.", + "description": "Output only. Whether the current user can remove a parent from the item without adding another parent in the same request. Not populated for shared drive files.", "type": "boolean" }, "canRename": { - "description": "Whether the current user can rename this file.", + "description": "Output only. Whether the current user can rename this file.", "type": "boolean" }, "canShare": { - "description": "Whether the current user can modify the sharing settings for this file.", + "description": "Output only. Whether the current user can modify the sharing settings for this file.", "type": "boolean" }, "canTrash": { - "description": "Whether the current user can move this file to trash.", + "description": "Output only. Whether the current user can move this file to trash.", "type": "boolean" }, "canTrashChildren": { - "description": "Whether the current user can trash children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.", + "description": "Output only. Whether the current user can trash children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.", "type": "boolean" }, "canUntrash": { - "description": "Whether the current user can restore this file from trash.", + "description": "Output only. Whether the current user can restore this file from trash.", "type": "boolean" } }, @@ -3087,7 +3485,7 @@ "description": "Additional information about the content of the file. These fields are never populated in responses.", "properties": { "indexableText": { - "description": "Text to be indexed for the file to improve fullText queries. This is limited to 128 KB in length and may contain HTML elements. For more information, see Manage file metadata.", + "description": "Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.", "type": "string" }, "thumbnail": { @@ -3129,48 +3527,47 @@ "type": "string" }, "driveId": { - "description": "ID of the shared drive the file resides in. Only populated for items in shared drives.", + "description": "Output only. ID of the shared drive the file resides in. Only populated for items in shared drives.", "type": "string" }, "explicitlyTrashed": { - "description": "Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.", + "description": "Output only. Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.", "type": "boolean" }, "exportLinks": { "additionalProperties": { - "description": "A mapping from export format to URL", "type": "string" }, - "description": "Links for exporting Docs Editors files to specific formats.", + "description": "Output only. Links for exporting Docs Editors files to specific formats.", "readOnly": true, "type": "object" }, "fileExtension": { - "description": "The final component of fullFileExtension. This is only available for files with binary content in Google Drive.", + "description": "Output only. The final component of `fullFileExtension`. This is only available for files with binary content in Google Drive.", "type": "string" }, "folderColorRgb": { - "description": "The color for a folder or shortcut to a folder as an RGB hex string. The supported colors are published in the folderColorPalette field of the About resource.\nIf an unsupported color is specified, the closest color in the palette will be used instead.", + "description": "The color for a folder or a shortcut to a folder as an RGB hex string. The supported colors are published in the `folderColorPalette` field of the About resource. If an unsupported color is specified, the closest color in the palette is used instead.", "type": "string" }, "fullFileExtension": { - "description": "The full file extension extracted from the name field. May contain multiple concatenated extensions, such as \"tar.gz\". This is only available for files with binary content in Google Drive.\nThis is automatically updated when the name field changes, however it isn't cleared if the new name does not contain a valid extension.", + "description": "Output only. The full file extension extracted from the `name` field. May contain multiple concatenated extensions, such as \"tar.gz\". This is only available for files with binary content in Google Drive. This is automatically updated when the `name` field changes, however it is not cleared if the new name does not contain a valid extension.", "type": "string" }, "hasAugmentedPermissions": { - "description": "Whether there are permissions directly on this file. This field is only populated for items in shared drives.", + "description": "Output only. Whether there are permissions directly on this file. This field is only populated for items in shared drives.", "type": "boolean" }, "hasThumbnail": { - "description": "Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.", + "description": "Output only. Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.", "type": "boolean" }, "headRevisionId": { - "description": "The ID of the file's head revision. This is currently only available for files with binary content in Google Drive.", + "description": "Output only. The ID of the file's head revision. This is currently only available for files with binary content in Google Drive.", "type": "string" }, "iconLink": { - "description": "A static, unauthenticated link to the file's icon.", + "description": "Output only. A static, unauthenticated link to the file's icon.", "type": "string" }, "id": { @@ -3178,77 +3575,77 @@ "type": "string" }, "imageMediaMetadata": { - "description": "Additional metadata about image media, if available.", + "description": "Output only. Additional metadata about image media, if available.", "properties": { "aperture": { - "description": "The aperture used to create the photo (f-number).", + "description": "Output only. The aperture used to create the photo (f-number).", "format": "float", "type": "number" }, "cameraMake": { - "description": "The make of the camera used to create the photo.", + "description": "Output only. The make of the camera used to create the photo.", "type": "string" }, "cameraModel": { - "description": "The model of the camera used to create the photo.", + "description": "Output only. The model of the camera used to create the photo.", "type": "string" }, "colorSpace": { - "description": "The color space of the photo.", + "description": "Output only. The color space of the photo.", "type": "string" }, "exposureBias": { - "description": "The exposure bias of the photo (APEX value).", + "description": "Output only. The exposure bias of the photo (APEX value).", "format": "float", "type": "number" }, "exposureMode": { - "description": "The exposure mode used to create the photo.", + "description": "Output only. The exposure mode used to create the photo.", "type": "string" }, "exposureTime": { - "description": "The length of the exposure, in seconds.", + "description": "Output only. The length of the exposure, in seconds.", "format": "float", "type": "number" }, "flashUsed": { - "description": "Whether a flash was used to create the photo.", + "description": "Output only. Whether a flash was used to create the photo.", "type": "boolean" }, "focalLength": { - "description": "The focal length used to create the photo, in millimeters.", + "description": "Output only. The focal length used to create the photo, in millimeters.", "format": "float", "type": "number" }, "height": { - "description": "The height of the image in pixels.", + "description": "Output only. The height of the image in pixels.", "format": "int32", "type": "integer" }, "isoSpeed": { - "description": "The ISO speed used to create the photo.", + "description": "Output only. The ISO speed used to create the photo.", "format": "int32", "type": "integer" }, "lens": { - "description": "The lens used to create the photo.", + "description": "Output only. The lens used to create the photo.", "type": "string" }, "location": { - "description": "Geographic location information stored in the image.", + "description": "Output only. Geographic location information stored in the image.", "properties": { "altitude": { - "description": "The altitude stored in the image.", + "description": "Output only. The altitude stored in the image.", "format": "double", "type": "number" }, "latitude": { - "description": "The latitude stored in the image.", + "description": "Output only. The latitude stored in the image.", "format": "double", "type": "number" }, "longitude": { - "description": "The longitude stored in the image.", + "description": "Output only. The longitude stored in the image.", "format": "double", "type": "number" } @@ -3256,38 +3653,38 @@ "type": "object" }, "maxApertureValue": { - "description": "The smallest f-number of the lens at the focal length used to create the photo (APEX value).", + "description": "Output only. The smallest f-number of the lens at the focal length used to create the photo (APEX value).", "format": "float", "type": "number" }, "meteringMode": { - "description": "The metering mode used to create the photo.", + "description": "Output only. The metering mode used to create the photo.", "type": "string" }, "rotation": { - "description": "The number of clockwise 90 degree rotations applied from the image's original orientation.", + "description": "Output only. The number of clockwise 90 degree rotations applied from the image's original orientation.", "format": "int32", "type": "integer" }, "sensor": { - "description": "The type of sensor used to create the photo.", + "description": "Output only. The type of sensor used to create the photo.", "type": "string" }, "subjectDistance": { - "description": "The distance to the subject of the photo, in meters.", + "description": "Output only. The distance to the subject of the photo, in meters.", "format": "int32", "type": "integer" }, "time": { - "description": "The date and time the photo was taken (EXIF DateTime).", + "description": "Output only. The date and time the photo was taken (EXIF DateTime).", "type": "string" }, "whiteBalance": { - "description": "The white balance mode used to create the photo.", + "description": "Output only. The white balance mode used to create the photo.", "type": "string" }, "width": { - "description": "The width of the image in pixels.", + "description": "Output only. The width of the image in pixels.", "format": "int32", "type": "integer" } @@ -3295,19 +3692,19 @@ "type": "object" }, "isAppAuthorized": { - "description": "Whether the file was created or opened by the requesting app.", + "description": "Output only. Whether the file was created or opened by the requesting app.", "type": "boolean" }, "kind": { "default": "drive#file", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#file\".", + "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#file\"`.", "type": "string" }, "labelInfo": { - "description": "An overview of the labels on the file.", + "description": "Output only. An overview of the labels on the file.", "properties": { "labels": { - "description": "The set of labels on the file as requested by the label IDs in the includeLabels parameter. By default, no labels are returned.", + "description": "Output only. The set of labels on the file as requested by the label IDs in the `includeLabels` parameter. By default, no labels are returned.", "items": { "$ref": "Label" }, @@ -3318,32 +3715,32 @@ }, "lastModifyingUser": { "$ref": "User", - "description": "The last user to modify the file." + "description": "Output only. The last user to modify the file." }, "linkShareMetadata": { "description": "Contains details about the link URLs that clients are using to refer to this item.", "properties": { "securityUpdateEligible": { - "description": "Whether the file is eligible for security update.", + "description": "Output only. Whether the file is eligible for security update.", "type": "boolean" }, "securityUpdateEnabled": { - "description": "Whether the security update is enabled for this file.", + "description": "Output only. Whether the security update is enabled for this file.", "type": "boolean" } }, "type": "object" }, "md5Checksum": { - "description": "The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.", + "description": "Output only. The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.", "type": "string" }, "mimeType": { - "description": "The MIME type of the file.\nGoogle Drive will attempt to automatically detect an appropriate value from uploaded content if no value is provided. The value cannot be changed unless a new revision is uploaded.\nIf a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.", + "description": "The MIME type of the file. Google Drive attempts to automatically detect an appropriate value from uploaded content, if no value is provided. The value cannot be changed unless a new revision is uploaded. If a file is created with a Google Doc MIME type, the uploaded content is imported, if possible. The supported import formats are published in the About resource.", "type": "string" }, "modifiedByMe": { - "description": "Whether the file has been modified by this user.", + "description": "Output only. Whether the file has been modified by this user.", "type": "boolean" }, "modifiedByMeTime": { @@ -3352,7 +3749,7 @@ "type": "string" }, "modifiedTime": { - "description": "The last time the file was modified by anyone (RFC 3339 date-time).\nNote that setting modifiedTime will also update modifiedByMeTime for the user.", + "description": "he last time the file was modified by anyone (RFC 3339 date-time). Note that setting modifiedTime will also update modifiedByMeTime for the user.", "format": "date-time", "type": "string" }, @@ -3361,36 +3758,36 @@ "type": "string" }, "originalFilename": { - "description": "The original filename of the uploaded content if available, or else the original value of the name field. This is only available for files with binary content in Google Drive.", + "description": "The original filename of the uploaded content if available, or else the original value of the `name` field. This is only available for files with binary content in Google Drive.", "type": "string" }, "ownedByMe": { - "description": "Whether the user owns the file. Not populated for items in shared drives.", + "description": "Output only. Whether the user owns the file. Not populated for items in shared drives.", "type": "boolean" }, "owners": { - "description": "The owner of this file. Only certain legacy files may have more than one owner. This field isn't populated for items in shared drives.", + "description": "Output only. The owner of this file. Only certain legacy files may have more than one owner. This field isn't populated for items in shared drives.", "items": { "$ref": "User" }, "type": "array" }, "parents": { - "description": "The IDs of the parent folders which contain the file.\nIf not specified as part of a create request, the file will be placed directly in the user's My Drive folder. If not specified as part of a copy request, the file will inherit any discoverable parents of the source file. Update requests must use the addParents and removeParents parameters to modify the parents list.", + "description": "The IDs of the parent folders which contain the file. If not specified as part of a create request, the file is placed directly in the user's My Drive folder. If not specified as part of a copy request, the file inherits any discoverable parents of the source file. Update requests must use the `addParents` and `removeParents` parameters to modify the parents list.", "items": { "type": "string" }, "type": "array" }, "permissionIds": { - "description": "List of permission IDs for users with access to this file.", + "description": "Output only. List of permission IDs for users with access to this file.", "items": { "type": "string" }, "type": "array" }, "permissions": { - "description": "The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for items in shared drives.", + "description": "Output only. The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for items in shared drives.", "items": { "$ref": "Permission" }, @@ -3404,24 +3801,24 @@ "type": "object" }, "quotaBytesUsed": { - "description": "The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.", + "description": "Output only. The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with `keepForever` enabled.", "format": "int64", "type": "string" }, "resourceKey": { - "description": "A key needed to access the item via a shared link.", + "description": "Output only. A key needed to access the item via a shared link.", "type": "string" }, "sha1Checksum": { - "description": "The SHA1 checksum associated with this file, if available. This field is only populated for files with content stored in Google Drive; it isn't populated for Docs Editors or shortcut files.", + "description": "Output only. The SHA1 checksum associated with this file, if available. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.", "type": "string" }, "sha256Checksum": { - "description": "The SHA256 checksum associated with this file, if available. This field is only populated for files with content stored in Google Drive; it isn't populated for Docs Editors or shortcut files.", + "description": "Output only. The SHA256 checksum associated with this file, if available. This field is only populated for files with content stored in Google Drive; it is not populated for Docs Editors or shortcut files.", "type": "string" }, "shared": { - "description": "Whether the file has been shared. Not populated for items in shared drives.", + "description": "Output only. Whether the file has been shared. Not populated for items in shared drives.", "type": "boolean" }, "sharedWithMeTime": { @@ -3431,33 +3828,33 @@ }, "sharingUser": { "$ref": "User", - "description": "The user who shared the file with the requesting user, if applicable." + "description": "Output only. The user who shared the file with the requesting user, if applicable." }, "shortcutDetails": { - "description": "Shortcut file details. Only populated for shortcut files, which have the mimeType field set to application/vnd.google-apps.shortcut.", + "description": "Shortcut file details. Only populated for shortcut files, which have the mimeType field set to `application/vnd.google-apps.shortcut`.", "properties": { "targetId": { "description": "The ID of the file that this shortcut points to.", "type": "string" }, "targetMimeType": { - "description": "The MIME type of the file that this shortcut points to. The value of this field is a snapshot of the target's MIME type, captured when the shortcut is created.", + "description": "Output only. The MIME type of the file that this shortcut points to. The value of this field is a snapshot of the target's MIME type, captured when the shortcut is created.", "type": "string" }, "targetResourceKey": { - "description": "The ResourceKey for the target file.", + "description": "Output only. The ResourceKey for the target file.", "type": "string" } }, "type": "object" }, "size": { - "description": "The size of the file's content in bytes. This is applicable to binary files in Google Drive and Google Docs files.", + "description": "Output only. Size in bytes of blobs and first party editor files. Won't be populated for files that have no size, like shortcuts and folders.", "format": "int64", "type": "string" }, "spaces": { - "description": "The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.", + "description": "Output only. The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.", "items": { "type": "string" }, @@ -3468,20 +3865,21 @@ "type": "boolean" }, "teamDriveId": { - "description": "Deprecated - use driveId instead.", + "deprecated": true, + "description": "Deprecated: Output only. Use `driveId` instead.", "type": "string" }, "thumbnailLink": { - "description": "A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content. If the file isn't shared publicly, the URL returned in Files.thumbnailLink must be fetched using a credentialed request.", + "description": "Output only. A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content. If the file isn't shared publicly, the URL returned in `Files.thumbnailLink` must be fetched using a credentialed request.", "type": "string" }, "thumbnailVersion": { - "description": "The thumbnail version for use in thumbnail cache invalidation.", + "description": "Output only. The thumbnail version for use in thumbnail cache invalidation.", "format": "int64", "type": "string" }, "trashed": { - "description": "Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file. The trashed item is excluded from all files.list responses returned for any user who does not own the file. However, all users with access to the file can see the trashed item metadata in an API response. All users with access can copy, download, export, and share the file.", + "description": "Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file, and other users cannot see files in the owner's trash.", "type": "boolean" }, "trashedTime": { @@ -3491,28 +3889,28 @@ }, "trashingUser": { "$ref": "User", - "description": "If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives." + "description": "Output only. If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives." }, "version": { - "description": "A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.", + "description": "Output only. A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.", "format": "int64", "type": "string" }, "videoMediaMetadata": { - "description": "Additional metadata about video media. This may not be available immediately upon upload.", + "description": "Output only. Additional metadata about video media. This may not be available immediately upon upload.", "properties": { "durationMillis": { - "description": "The duration of the video in milliseconds.", + "description": "Output only. The duration of the video in milliseconds.", "format": "int64", "type": "string" }, "height": { - "description": "The height of the video in pixels.", + "description": "Output only. The height of the video in pixels.", "format": "int32", "type": "integer" }, "width": { - "description": "The width of the video in pixels.", + "description": "Output only. The width of the video in pixels.", "format": "int32", "type": "integer" } @@ -3520,7 +3918,7 @@ "type": "object" }, "viewedByMe": { - "description": "Whether the file has been viewed by this user.", + "description": "Output only. Whether the file has been viewed by this user.", "type": "boolean" }, "viewedByMeTime": { @@ -3529,19 +3927,20 @@ "type": "string" }, "viewersCanCopyContent": { - "description": "Deprecated - use copyRequiresWriterPermission instead.", + "deprecated": true, + "description": "Deprecated: Use `copyRequiresWriterPermission` instead.", "type": "boolean" }, "webContentLink": { - "description": "A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.", + "description": "Output only. A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.", "type": "string" }, "webViewLink": { - "description": "A link for opening the file in a relevant Google editor or viewer in a browser.", + "description": "Output only. A link for opening the file in a relevant Google editor or viewer in a browser.", "type": "string" }, "writersCanShare": { - "description": "Whether users with only writer permission can modify the file's permissions. Not populated for items in shared drives.", + "description": "Whether users with only `writer` permission can modify the file's permissions. Not populated for items in shared drives.", "type": "boolean" } }, @@ -3559,16 +3958,16 @@ "type": "array" }, "incompleteSearch": { - "description": "Whether the search process was incomplete. If true, then some search results may be missing, since all documents were not searched. This may occur when searching multiple drives with the \"allDrives\" corpora, but all corpora could not be searched. When this happens, it is suggested that clients narrow their query by choosing a different corpus such as \"user\" or \"drive\".", + "description": "Whether the search process was incomplete. If true, then some search results might be missing, since all documents were not searched. This can occur when searching multiple drives with the 'allDrives' corpora, but all corpora couldn't be searched. When this happens, it's suggested that clients narrow their query by choosing a different corpus such as 'user' or 'drive'.", "type": "boolean" }, "kind": { "default": "drive#fileList", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#fileList\".", + "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#fileList\"`.", "type": "string" }, "nextPageToken": { - "description": "The page token for the next page of files. This will be absent if the end of the files list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.", + "description": "The page token for the next page of files. This will be absent if the end of the files list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.", "type": "string" } }, @@ -3587,7 +3986,7 @@ }, "kind": { "default": "drive#generatedIds", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#generatedIds\".", + "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#generatedIds\"`.", "type": "string" }, "space": { @@ -3598,14 +3997,14 @@ "type": "object" }, "Label": { - "description": "Representation of a label and its fields.", + "description": "Representation of label and label fields.", "id": "Label", "properties": { "fields": { "additionalProperties": { "$ref": "LabelField" }, - "description": "A map of the label's fields keyed by the field ID.", + "description": "A map of the fields on the label, keyed by the field's ID.", "type": "object" }, "id": { @@ -3613,7 +4012,6 @@ "type": "string" }, "kind": { - "default": "drive#label", "description": "This is always drive#label", "type": "string" }, @@ -3625,7 +4023,7 @@ "type": "object" }, "LabelField": { - "description": "Representation of a label field.", + "description": "Representation of field, which is a typed key-value pair.", "id": "LabelField", "properties": { "dateString": { @@ -3637,11 +4035,11 @@ "type": "array" }, "id": { - "description": "The identifier of this field.", + "description": "The identifier of this label field.", "type": "string" }, "integer": { - "description": "Only present if valueType is integer.", + "description": "Only present if `valueType` is `integer`.", "items": { "format": "int64", "type": "string" @@ -3649,33 +4047,32 @@ "type": "array" }, "kind": { - "default": "drive#labelField", "description": "This is always drive#labelField.", "type": "string" }, "selection": { - "description": "Only present if valueType is selection.", + "description": "Only present if `valueType` is `selection`", "items": { "type": "string" }, "type": "array" }, "text": { - "description": "Only present if valueType is text.", + "description": "Only present if `valueType` is `text`.", "items": { "type": "string" }, "type": "array" }, "user": { - "description": "Only present if valueType is user.", + "description": "Only present if `valueType` is `user`.", "items": { "$ref": "User" }, "type": "array" }, "valueType": { - "description": "The field type. While new values may be supported in the future, the following are currently allowed: \n- dateString \n- integer \n- selection \n- text \n- user", + "description": "The field type. While new values may be supported in the future, the following are currently allowed: * `dateString` * `integer` * `selection` * `text` * `user`", "type": "string" } }, @@ -3686,16 +4083,15 @@ "id": "LabelFieldModification", "properties": { "fieldId": { - "description": "The ID of the Field to be modified.", + "description": "The ID of the field to be modified.", "type": "string" }, "kind": { - "default": "drive#labelFieldModification", "description": "This is always drive#labelFieldModification.", "type": "string" }, "setDateValues": { - "description": "Replaces a dateString field with these new values. The values must be strings in the RFC 3339 full-date format: YYYY-MM-DD.", + "description": "Replaces the value of a dateString Field with these new values. The string must be in the RFC 3339 full-date format: YYYY-MM-DD.", "items": { "format": "date", "type": "string" @@ -3703,7 +4099,7 @@ "type": "array" }, "setIntegerValues": { - "description": "Replaces an integer field with these new values.", + "description": "Replaces the value of an `integer` field with these new values.", "items": { "format": "int64", "type": "string" @@ -3711,21 +4107,21 @@ "type": "array" }, "setSelectionValues": { - "description": "Replaces a selection field with these new values.", + "description": "Replaces a `selection` field with these new values.", "items": { "type": "string" }, "type": "array" }, "setTextValues": { - "description": "Replaces a text field with these new values.", + "description": "Sets the value of a `text` field.", "items": { "type": "string" }, "type": "array" }, "setUserValues": { - "description": "Replaces a user field with these new values. The values must be valid email addresses.", + "description": "Replaces a `user` field with these new values. The values must be valid email addresses.", "items": { "type": "string" }, @@ -3739,11 +4135,10 @@ "type": "object" }, "LabelList": { - "description": "A list of labels.", + "description": "A list of labels applied to a file.", "id": "LabelList", "properties": { "kind": { - "default": "drive#labelList", "description": "This is always drive#labelList", "type": "string" }, @@ -3755,7 +4150,7 @@ "type": "array" }, "nextPageToken": { - "description": "The page token for the next page of labels. This field will be absent if the end of the list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.", + "description": "The page token for the next page of labels. This field will be absent if the end of the list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.", "type": "string" } }, @@ -3773,7 +4168,6 @@ "type": "array" }, "kind": { - "default": "drive#labelModification", "description": "This is always drive#labelModification.", "type": "string" }, @@ -3794,12 +4188,11 @@ "type": "object" }, "ModifyLabelsRequest": { - "description": "A request to modify the set of labels on a file. This request may contain many modifications that will either all succeed or all fail transactionally.", + "description": "A request to modify the set of labels on a file. This request may contain many modifications that will either all succeed or all fail atomically.", "id": "ModifyLabelsRequest", "properties": { "kind": { - "default": "drive#modifyLabelsRequest", - "description": "This is always drive#modifyLabelsRequest", + "description": "This is always drive#modifyLabelsRequest.", "type": "string" }, "labelModifications": { @@ -3817,7 +4210,6 @@ "id": "ModifyLabelsResponse", "properties": { "kind": { - "default": "drive#modifyLabelsResponse", "description": "This is always drive#modifyLabelsResponse", "type": "string" }, @@ -3832,19 +4224,19 @@ "type": "object" }, "Permission": { - "description": "A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.", + "description": "A permission for a file. A permission grants a user, group, domain, or the world access to a file or a folder hierarchy. Some resource methods (such as `permissions.update`) require a `permissionId`. Use the `permissions.list` method to retrieve the ID for a file, folder, or shared drive.", "id": "Permission", "properties": { "allowFileDiscovery": { - "description": "Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.", + "description": "Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type `domain` or `anyone`.", "type": "boolean" }, "deleted": { - "description": "Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.", + "description": "Output only. Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.", "type": "boolean" }, "displayName": { - "description": "The \"pretty\" name of the value of the permission. The following is a list of examples for each type of permission: \n- user - User's full name, as defined for their Google account, such as \"Joe Smith.\" \n- group - Name of the Google Group, such as \"The Company Administrators.\" \n- domain - String domain name, such as \"thecompany.com.\" \n- anyone - No displayName is present.", + "description": "Output only. The \"pretty\" name of the value of the permission. The following is a list of examples for each type of permission: * `user` - User's full name, as defined for their Google account, such as \"Joe Smith.\" * `group` - Name of the Google Group, such as \"The Company Administrators.\" * `domain` - String domain name, such as \"thecompany.com.\" * `anyone` - No `displayName` is present.", "type": "string" }, "domain": { @@ -3856,41 +4248,41 @@ "type": "string" }, "expirationTime": { - "description": "The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions: \n- They cannot be set on shared drive items \n- They can only be set on user and group permissions \n- The time must be in the future \n- The time cannot be more than a year in the future", + "description": "The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions: - They can only be set on user and group permissions - The time must be in the future - The time cannot be more than a year in the future", "format": "date-time", "type": "string" }, "id": { - "description": "The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId. IDs should be treated as opaque values.", + "description": "Output only. The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as `permissionId`. IDs should be treated as opaque values.", "type": "string" }, "kind": { "default": "drive#permission", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#permission\".", + "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#permission\"`.", "type": "string" }, "pendingOwner": { - "description": "Whether the account associated with this permission is a pending owner. Only populated for user type permissions for files that are not in a shared drive.", + "description": "Whether the account associated with this permission is a pending owner. Only populated for `user` type permissions for files that are not in a shared drive.", "type": "boolean" }, "permissionDetails": { - "description": "Details of whether the permissions on this shared drive item are inherited or directly on this item. This is an output-only field which is present only for shared drive items.", + "description": "Output only. Details of whether the permissions on this shared drive item are inherited or directly on this item. This is an output-only field which is present only for shared drive items.", "items": { "properties": { "inherited": { - "description": "Whether this permission is inherited. This field is always populated. This is an output-only field.", + "description": "Output only. Whether this permission is inherited. This field is always populated. This is an output-only field.", "type": "boolean" }, "inheritedFrom": { - "description": "The ID of the item from which this permission is inherited. This is an output-only field.", + "description": "Output only. The ID of the item from which this permission is inherited. This is an output-only field.", "type": "string" }, "permissionType": { - "description": "The permission type for this user. While new values may be added in future, the following are currently possible: \n- file \n- member", + "description": "Output only. The permission type for this user. While new values may be added in future, the following are currently possible: * `file` * `member`", "type": "string" }, "role": { - "description": "The primary role for this user. While new values may be added in the future, the following are currently possible: \n- organizer \n- fileOrganizer \n- writer \n- commenter \n- reader", + "description": "Output only. The primary role for this user. While new values may be added in the future, the following are currently possible: * `organizer` * `fileOrganizer` * `writer` * `commenter` * `reader`", "type": "string" } }, @@ -3900,7 +4292,7 @@ "type": "array" }, "photoLink": { - "description": "A link to the user's profile photo, if available.", + "description": "Output only. A link to the user's profile photo, if available.", "type": "string" }, "role": { @@ -3909,27 +4301,32 @@ "drive.permissions.create" ] }, - "description": "The role granted by this permission. While new values may be supported in the future, the following are currently allowed: \n- owner \n- organizer \n- fileOrganizer \n- writer \n- commenter \n- reader", + "description": "The role granted by this permission. While new values may be supported in the future, the following are currently allowed: * `owner` * `organizer` * `fileOrganizer` * `writer` * `commenter` * `reader`", "type": "string" }, "teamDrivePermissionDetails": { - "description": "Deprecated - use permissionDetails instead.", + "deprecated": true, + "description": "Output only. Deprecated: Output only. Use `permissionDetails` instead.", "items": { "properties": { "inherited": { - "description": "Deprecated - use permissionDetails/inherited instead.", + "deprecated": true, + "description": "Deprecated: Output only. Use `permissionDetails/inherited` instead.", "type": "boolean" }, "inheritedFrom": { - "description": "Deprecated - use permissionDetails/inheritedFrom instead.", + "deprecated": true, + "description": "Deprecated: Output only. Use `permissionDetails/inheritedFrom` instead.", "type": "string" }, "role": { - "description": "Deprecated - use permissionDetails/role instead.", + "deprecated": true, + "description": "Deprecated: Output only. Use `permissionDetails/role` instead.", "type": "string" }, "teamDrivePermissionType": { - "description": "Deprecated - use permissionDetails/permissionType instead.", + "deprecated": true, + "description": "Deprecated: Output only. Use `permissionDetails/permissionType` instead.", "type": "string" } }, @@ -3944,11 +4341,11 @@ "drive.permissions.create" ] }, - "description": "The type of the grantee. Valid values are: \n- user \n- group \n- domain \n- anyone When creating a permission, if type is user or group, you must provide an emailAddress for the user or group. When type is domain, you must provide a domain. There isn't extra information required for a anyone type.", + "description": "The type of the grantee. Valid values are: * `user` * `group` * `domain` * `anyone` When creating a permission, if `type` is `user` or `group`, you must provide an `emailAddress` for the user or group. When `type` is `domain`, you must provide a `domain`. There isn't extra information required for an `anyone` type.", "type": "string" }, "view": { - "description": "Indicates the view for this permission. Only populated for permissions that belong to a view. published is the only supported value.", + "description": "Indicates the view for this permission. Only populated for permissions that belong to a view. 'published' is the only supported value.", "type": "string" } }, @@ -3960,11 +4357,11 @@ "properties": { "kind": { "default": "drive#permissionList", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#permissionList\".", + "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#permissionList\"`.", "type": "string" }, "nextPageToken": { - "description": "The page token for the next page of permissions. This field will be absent if the end of the permissions list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.", + "description": "The page token for the next page of permissions. This field will be absent if the end of the permissions list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.", "type": "string" }, "permissions": { @@ -3978,16 +4375,16 @@ "type": "object" }, "Reply": { - "description": "A reply to a comment on a file.", + "description": "A reply to a comment on a file. Some resource methods (such as `replies.update`) require a `replyId`. Use the `replies.list` method to retrieve the ID for a reply.", "id": "Reply", "properties": { "action": { - "description": "The action the reply performed to the parent comment. Valid values are: \n- resolve \n- reopen", + "description": "The action the reply performed to the parent comment. Valid values are: * `resolve` * `reopen`", "type": "string" }, "author": { "$ref": "User", - "description": "The author of the reply. The author's email address and permission ID will not be populated." + "description": "Output only. The author of the reply. The author's email address and permission ID will not be populated." }, "content": { "annotations": { @@ -3995,7 +4392,7 @@ "drive.replies.update" ] }, - "description": "The plain text content of the reply. This field is used for setting the content, while htmlContent should be displayed. This is required on creates if no action is specified.", + "description": "The plain text content of the reply. This field is used for setting the content, while `htmlContent` should be displayed. This is required on creates if no `action` is specified.", "type": "string" }, "createdTime": { @@ -4004,20 +4401,20 @@ "type": "string" }, "deleted": { - "description": "Whether the reply has been deleted. A deleted reply has no content.", + "description": "Output only. Whether the reply has been deleted. A deleted reply has no content.", "type": "boolean" }, "htmlContent": { - "description": "The content of the reply with HTML formatting.", + "description": "Output only. The content of the reply with HTML formatting.", "type": "string" }, "id": { - "description": "The ID of the reply.", + "description": "Output only. The ID of the reply.", "type": "string" }, "kind": { "default": "drive#reply", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#reply\".", + "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#reply\"`.", "type": "string" }, "modifiedTime": { @@ -4034,11 +4431,11 @@ "properties": { "kind": { "default": "drive#replyList", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#replyList\".", + "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#replyList\"`.", "type": "string" }, "nextPageToken": { - "description": "The page token for the next page of replies. This will be absent if the end of the replies list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.", + "description": "The page token for the next page of replies. This will be absent if the end of the replies list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.", "type": "string" }, "replies": { @@ -4052,40 +4449,39 @@ "type": "object" }, "Revision": { - "description": "The metadata for a revision to a file.", + "description": "The metadata for a revision to a file. Some resource methods (such as `revisions.update`) require a `revisionId`. Use the `revisions.list` method to retrieve the ID for a revision.", "id": "Revision", "properties": { "exportLinks": { "additionalProperties": { - "description": "A mapping from export format to URL", "type": "string" }, - "description": "Links for exporting Docs Editors files to specific formats.", + "description": "Output only. Links for exporting Docs Editors files to specific formats.", "type": "object" }, "id": { - "description": "The ID of the revision.", + "description": "Output only. The ID of the revision.", "type": "string" }, "keepForever": { - "description": "Whether to keep this revision forever, even if it is no longer the head revision. If not set, the revision will be automatically purged 30 days after newer content is uploaded. This can be set on a maximum of 200 revisions for a file.\nThis field is only applicable to files with binary content in Drive.", + "description": "Whether to keep this revision forever, even if it is no longer the head revision. If not set, the revision will be automatically purged 30 days after newer content is uploaded. This can be set on a maximum of 200 revisions for a file. This field is only applicable to files with binary content in Drive.", "type": "boolean" }, "kind": { "default": "drive#revision", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#revision\".", + "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#revision\"`.", "type": "string" }, "lastModifyingUser": { "$ref": "User", - "description": "The last user to modify this revision." + "description": "Output only. The last user to modify this revision." }, "md5Checksum": { - "description": "The MD5 checksum of the revision's content. This is only applicable to files with binary content in Drive.", + "description": "Output only. The MD5 checksum of the revision's content. This is only applicable to files with binary content in Drive.", "type": "string" }, "mimeType": { - "description": "The MIME type of the revision.", + "description": "Output only. The MIME type of the revision.", "type": "string" }, "modifiedTime": { @@ -4094,7 +4490,7 @@ "type": "string" }, "originalFilename": { - "description": "The original filename used to create this revision. This is only applicable to files with binary content in Drive.", + "description": "Output only. The original filename used to create this revision. This is only applicable to files with binary content in Drive.", "type": "string" }, "publishAuto": { @@ -4106,7 +4502,7 @@ "type": "boolean" }, "publishedLink": { - "description": "A link to the published revision. This is only populated for Google Sites files.", + "description": "Output only. A link to the published revision. This is only populated for Google Sites files.", "type": "string" }, "publishedOutsideDomain": { @@ -4114,7 +4510,7 @@ "type": "boolean" }, "size": { - "description": "The size of the revision's content in bytes. This is only applicable to files with binary content in Drive.", + "description": "Output only. The size of the revision's content in bytes. This is only applicable to files with binary content in Drive.", "format": "int64", "type": "string" } @@ -4127,11 +4523,11 @@ "properties": { "kind": { "default": "drive#revisionList", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#revisionList\".", + "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#revisionList\"`.", "type": "string" }, "nextPageToken": { - "description": "The page token for the next page of revisions. This will be absent if the end of the revisions list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.", + "description": "The page token for the next page of revisions. This will be absent if the end of the revisions list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.", "type": "string" }, "revisions": { @@ -4149,11 +4545,11 @@ "properties": { "kind": { "default": "drive#startPageToken", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#startPageToken\".", + "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#startPageToken\"`.", "type": "string" }, "startPageToken": { - "description": "The starting page token for listing changes.", + "description": "The starting page token for listing future changes. The page token doesn't expire.", "type": "string" } }, @@ -4164,7 +4560,7 @@ "id": "TeamDrive", "properties": { "backgroundImageFile": { - "description": "An image file and cropping parameters from which a background image for this Team Drive is set. This is a write only field; it can only be set on drive.teamdrives.update requests that don't set themeId. When specified, all fields of the backgroundImageFile must be set.", + "description": "An image file and cropping parameters from which a background image for this Team Drive is set. This is a write only field; it can only be set on `drive.teamdrives.update` requests that don't set `themeId`. When specified, all fields of the `backgroundImageFile` must be set.", "properties": { "id": { "description": "The ID of an image file in Drive to use for the background image.", @@ -4200,11 +4596,15 @@ "type": "boolean" }, "canChangeCopyRequiresWriterPermissionRestriction": { - "description": "Whether the current user can change the copyRequiresWriterPermission restriction of this Team Drive.", + "description": "Whether the current user can change the `copyRequiresWriterPermission` restriction of this Team Drive.", "type": "boolean" }, "canChangeDomainUsersOnlyRestriction": { - "description": "Whether the current user can change the domainUsersOnly restriction of this Team Drive.", + "description": "Whether the current user can change the `domainUsersOnly` restriction of this Team Drive.", + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "description": "Whether the current user can change the `sharingFoldersRequiresOrganizerPermission` restriction of this Team Drive.", "type": "boolean" }, "canChangeTeamDriveBackground": { @@ -4212,7 +4612,7 @@ "type": "boolean" }, "canChangeTeamMembersOnlyRestriction": { - "description": "Whether the current user can change the teamMembersOnly restriction of this Team Drive.", + "description": "Whether the current user can change the `teamMembersOnly` restriction of this Team Drive.", "type": "boolean" }, "canComment": { @@ -4252,7 +4652,8 @@ "type": "boolean" }, "canRemoveChildren": { - "description": "Deprecated - use canDeleteChildren or canTrashChildren instead.", + "deprecated": true, + "description": "Deprecated: Use `canDeleteChildren` or `canTrashChildren` instead.", "type": "boolean" }, "canRename": { @@ -4279,7 +4680,7 @@ "type": "object" }, "colorRgb": { - "description": "The color of this Team Drive as an RGB hex string. It can only be set on a drive.teamdrives.update request that does not set themeId.", + "description": "The color of this Team Drive as an RGB hex string. It can only be set on a `drive.teamdrives.update` request that does not set `themeId`.", "type": "string" }, "createdTime": { @@ -4293,20 +4694,15 @@ }, "kind": { "default": "drive#teamDrive", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#teamDrive\".", + "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#teamDrive\"`.", "type": "string" }, "name": { - "annotations": { - "required": [ - "drive.teamdrives.create" - ] - }, "description": "The name of this Team Drive.", "type": "string" }, "orgUnitId": { - "description": "The organizational unit of this shared drive. This field is only populated on drives.list responses when the useDomainAdminAccess parameter is set to true.", + "description": "The organizational unit of this shared drive. This field is only populated on `drives.list` responses when the `useDomainAdminAccess` parameter is set to `true`.", "type": "string" }, "restrictions": { @@ -4317,13 +4713,17 @@ "type": "boolean" }, "copyRequiresWriterPermission": { - "description": "Whether the options to copy, print, or download files inside this Team Drive, should be disabled for readers and commenters. When this restriction is set to true, it will override the similarly named field to true for any file inside this Team Drive.", + "description": "Whether the options to copy, print, or download files inside this Team Drive, should be disabled for readers and commenters. When this restriction is set to `true`, it will override the similarly named field to `true` for any file inside this Team Drive.", "type": "boolean" }, "domainUsersOnly": { "description": "Whether access to this Team Drive and items inside this Team Drive is restricted to users of the domain to which this Team Drive belongs. This restriction may be overridden by other sharing policies controlled outside of this Team Drive.", "type": "boolean" }, + "sharingFoldersRequiresOrganizerPermission": { + "description": "If true, only users with the organizer role can share folders. If false, users with either the organizer role or the file organizer role can share folders.", + "type": "boolean" + }, "teamMembersOnly": { "description": "Whether access to items inside this Team Drive is restricted to members of this Team Drive.", "type": "boolean" @@ -4332,7 +4732,7 @@ "type": "object" }, "themeId": { - "description": "The ID of the theme from which the background image and color will be set. The set of possible teamDriveThemes can be retrieved from a drive.about.get response. When not specified on a drive.teamdrives.create request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set colorRgb or backgroundImageFile.", + "description": "The ID of the theme from which the background image and color will be set. The set of possible `teamDriveThemes` can be retrieved from a `drive.about.get` response. When not specified on a `drive.teamdrives.create` request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set `colorRgb` or `backgroundImageFile`.", "type": "string" } }, @@ -4344,11 +4744,11 @@ "properties": { "kind": { "default": "drive#teamDriveList", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#teamDriveList\".", + "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#teamDriveList\"`.", "type": "string" }, "nextPageToken": { - "description": "The page token for the next page of Team Drives. This will be absent if the end of the Team Drives list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.", + "description": "The page token for the next page of Team Drives. This will be absent if the end of the Team Drives list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.", "type": "string" }, "teamDrives": { @@ -4366,28 +4766,28 @@ "id": "User", "properties": { "displayName": { - "description": "A plain text displayable name for this user.", + "description": "Output only. A plain text displayable name for this user.", "type": "string" }, "emailAddress": { - "description": "The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.", + "description": "Output only. The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.", "type": "string" }, "kind": { "default": "drive#user", - "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#user\".", + "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#user\"`.", "type": "string" }, "me": { - "description": "Whether this user is the requesting user.", + "description": "Output only. Whether this user is the requesting user.", "type": "boolean" }, "permissionId": { - "description": "The user's ID as visible in Permission resources.", + "description": "Output only. The user's ID as visible in Permission resources.", "type": "string" }, "photoLink": { - "description": "A link to the user's profile photo, if available.", + "description": "Output only. A link to the user's profile photo, if available.", "type": "string" } }, @@ -4395,6 +4795,6 @@ } }, "servicePath": "drive/v3/", - "title": "Drive API", + "title": "Google Drive API", "version": "v3" } \ No newline at end of file diff --git a/etc/api/driveactivity/v2/driveactivity-api.json b/etc/api/driveactivity/v2/driveactivity-api.json index 69339d606e..43d24dbbfc 100644 --- a/etc/api/driveactivity/v2/driveactivity-api.json +++ b/etc/api/driveactivity/v2/driveactivity-api.json @@ -132,7 +132,7 @@ } } }, - "revision": "20230122", + "revision": "20240302", "rootUrl": "https://driveactivity.googleapis.com/", "schemas": { "Action": { @@ -625,10 +625,12 @@ }, "file": { "$ref": "File", + "deprecated": true, "description": "This field is deprecated; please use the `driveFile` field instead." }, "folder": { "$ref": "Folder", + "deprecated": true, "description": "This field is deprecated; please use the `driveFolder` field instead." }, "mimeType": { @@ -664,10 +666,12 @@ }, "file": { "$ref": "File", + "deprecated": true, "description": "This field is deprecated; please use the `driveFile` field instead." }, "folder": { "$ref": "Folder", + "deprecated": true, "description": "This field is deprecated; please use the `driveFolder` field instead." }, "name": { @@ -765,6 +769,7 @@ "type": "object" }, "File": { + "deprecated": true, "description": "This item is deprecated; please see `DriveFile` instead.", "id": "File", "properties": {}, @@ -794,6 +799,7 @@ "type": "object" }, "Folder": { + "deprecated": true, "description": "This item is deprecated; please see `DriveFolder` instead.", "id": "Folder", "properties": { @@ -922,6 +928,7 @@ }, "teamDrive": { "$ref": "TeamDriveReference", + "deprecated": true, "description": "This field is deprecated; please use the `drive` field instead." }, "user": { @@ -1127,14 +1134,16 @@ "SHARING_OUTSIDE_DOMAIN", "DIRECT_SHARING", "ITEM_DUPLICATION", - "DRIVE_FILE_STREAM" + "DRIVE_FILE_STREAM", + "FILE_ORGANIZER_CAN_SHARE_FOLDERS" ], "enumDescriptions": [ "The feature which changed restriction settings was not available.", "When restricted, this prevents items from being shared outside the domain.", "When restricted, this prevents direct sharing of individual items.", "When restricted, this prevents actions like copy, download, and print that might result in uncontrolled duplicates of items.", - "When restricted, this prevents use of Drive File Stream." + "When restricted, this prevents use of Drive File Stream.", + "When restricted, this limits sharing of folders to managers only." ], "type": "string" }, @@ -1281,6 +1290,7 @@ }, "teamDrive": { "$ref": "TeamDrive", + "deprecated": true, "description": "This field is deprecated; please use the `drive` field instead." } }, @@ -1300,12 +1310,14 @@ }, "teamDrive": { "$ref": "TeamDriveReference", + "deprecated": true, "description": "This field is deprecated; please use the `drive` field instead." } }, "type": "object" }, "TeamDrive": { + "deprecated": true, "description": "This item is deprecated; please see `Drive` instead.", "id": "TeamDrive", "properties": { @@ -1325,6 +1337,7 @@ "type": "object" }, "TeamDriveReference": { + "deprecated": true, "description": "This item is deprecated; please see `DriveReference` instead.", "id": "TeamDriveReference", "properties": { diff --git a/etc/api/essentialcontacts/v1/essentialcontacts-api.json b/etc/api/essentialcontacts/v1/essentialcontacts-api.json index 465b4061bf..e73dadc8f3 100644 --- a/etc/api/essentialcontacts/v1/essentialcontacts-api.json +++ b/etc/api/essentialcontacts/v1/essentialcontacts-api.json @@ -850,7 +850,7 @@ } } }, - "revision": "20230123", + "revision": "20240223", "rootUrl": "https://essentialcontacts.googleapis.com/", "schemas": { "GoogleCloudEssentialcontactsV1ComputeContactsResponse": { diff --git a/etc/api/eventarc/v1/eventarc-api.json b/etc/api/eventarc/v1/eventarc-api.json index 433c75770e..7b8b4cc1f3 100644 --- a/etc/api/eventarc/v1/eventarc-api.json +++ b/etc/api/eventarc/v1/eventarc-api.json @@ -470,7 +470,7 @@ "type": "string" }, "validateOnly": { - "description": "Required. If set, validate the request and preview the review, but do not post it.", + "description": "Optional. If set, validate the request and preview the review, but do not post it.", "location": "query", "type": "boolean" } @@ -503,7 +503,7 @@ "type": "string" }, "validateOnly": { - "description": "Required. If set, validate the request and preview the review, but do not post it.", + "description": "Optional. If set, validate the request and preview the review, but do not post it.", "location": "query", "type": "boolean" } @@ -636,7 +636,7 @@ "type": "string" }, "validateOnly": { - "description": "Required. If set, validate the request and preview the review, but do not post it.", + "description": "Optional. If set, validate the request and preview the review, but do not post it.", "location": "query", "type": "boolean" } @@ -791,7 +791,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "eventarc.projects.locations.operations.list", @@ -932,7 +932,7 @@ "type": "string" }, "validateOnly": { - "description": "Required. If set, validate the request and preview the review, but do not post it.", + "description": "Optional. If set, validate the request and preview the review, but do not post it.", "location": "query", "type": "boolean" } @@ -975,7 +975,7 @@ "type": "string" }, "validateOnly": { - "description": "Required. If set, validate the request and preview the review, but do not post it.", + "description": "Optional. If set, validate the request and preview the review, but do not post it.", "location": "query", "type": "boolean" } @@ -1118,7 +1118,7 @@ "type": "string" }, "validateOnly": { - "description": "Required. If set, validate the request and preview the review, but do not post it.", + "description": "Optional. If set, validate the request and preview the review, but do not post it.", "location": "query", "type": "boolean" } @@ -1197,7 +1197,7 @@ } } }, - "revision": "20230113", + "revision": "20240223", "rootUrl": "https://eventarc.googleapis.com/", "schemas": { "AuditConfig": { @@ -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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1286,7 +1286,7 @@ "type": "string" }, "cryptoKeyName": { - "description": "Optional. Resource name of a KMS crypto key (managed by the user) used to encrypt/decrypt their event data. It must match the pattern `projects/*/locations/*/keyRings/*/cryptoKeys/*`.", + "description": "Resource name of a KMS crypto key (managed by the user) used to encrypt/decrypt their event data. It must match the pattern `projects/*/locations/*/keyRings/*/cryptoKeys/*`.", "type": "string" }, "name": { @@ -1393,7 +1393,7 @@ "id": "Destination", "properties": { "cloudFunction": { - "description": "The Cloud Function resource name. Only Cloud Functions V2 is supported. Format: `projects/{project}/locations/{location}/functions/{function}` This is a read-only field. Creating Cloud Functions V2 triggers is only supported via the Cloud Functions product. An error will be returned if the user sets this value.", + "description": "The Cloud Function resource name. Cloud Functions V1 and V2 are supported. Format: `projects/{project}/locations/{location}/functions/{function}` This is a read-only field. Creating Cloud Functions V1/V2 triggers is only supported via the Cloud Functions product. An error will be returned if the user sets this value.", "type": "string" }, "cloudRun": { @@ -1404,6 +1404,14 @@ "$ref": "GKE", "description": "A GKE service capable of receiving events. The service should be running in the same project as the trigger." }, + "httpEndpoint": { + "$ref": "HttpEndpoint", + "description": "An HTTP endpoint destination described by an URI." + }, + "networkConfig": { + "$ref": "NetworkConfig", + "description": "Optional. Network config is used to configure how Eventarc resolves and connect to a destination. This should only be used with HttpEndpoint destination type." + }, "workflow": { "description": "The resource name of the Workflow whose Executions are triggered by the events. The Workflow resource should be deployed in the same project as the trigger. Format: `projects/{project}/locations/{location}/workflows/{workflow}`", "type": "string" @@ -1422,11 +1430,11 @@ "id": "EventFilter", "properties": { "attribute": { - "description": "Required. The name of a CloudEvents attribute. Currently, only a subset of attributes are supported for filtering. All triggers MUST provide a filter for the 'type' attribute.", + "description": "Required. The name of a CloudEvents attribute. Currently, only a subset of attributes are supported for filtering. You can [retrieve a specific provider's supported event types](/eventarc/docs/list-providers#describe-provider). All triggers MUST provide a filter for the 'type' attribute.", "type": "string" }, "operator": { - "description": "Optional. The operator used for matching the events with the value of the filter. If not specified, only events that have an exact key-value pair specified in the filter are matched. The only allowed value is `match-path-pattern`.", + "description": "Optional. The operator used for matching the events with the value of the filter. If not specified, only events that have an exact key-value pair specified in the filter are matched. The allowed values are `path_pattern` and `match-path-pattern`. `path_pattern` is only allowed for GCFv1 triggers.", "type": "string" }, "value": { @@ -1617,7 +1625,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" } }, @@ -1650,6 +1658,17 @@ }, "type": "object" }, + "HttpEndpoint": { + "description": "Represents a HTTP endpoint destination.", + "id": "HttpEndpoint", + "properties": { + "uri": { + "description": "Required. The URI of the HTTP enpdoint. The value must be a RFC2396 URI string. Examples: `http://10.10.10.8:80/route`, `http://svc.us-central1.p.local:8080/`. Only HTTP and HTTPS protocols are supported. The host can be either a static IP addressable from the VPC specified by the network config, or an internal DNS hostname of the service resolvable via Cloud DNS.", + "type": "string" + } + }, + "type": "object" + }, "ListChannelConnectionsResponse": { "description": "The response message for the `ListChannelConnections` method.", "id": "ListChannelConnectionsResponse", @@ -1769,7 +1788,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1802,6 +1821,17 @@ }, "type": "object" }, + "NetworkConfig": { + "description": "Represents a network config to be used for destination resolution and connectivity.", + "id": "NetworkConfig", + "properties": { + "networkAttachment": { + "description": "Required. Name of the NetworkAttachment that allows access to the destination VPC. Format: `projects/{PROJECT_ID}/regions/{REGION}/networkAttachments/{NETWORK_ATTACHMENT_NAME}`", + "type": "string" + } + }, + "type": "object" + }, "OperationMetadata": { "description": "Represents the metadata of the long-running operation.", "id": "OperationMetadata", @@ -1847,7 +1877,7 @@ "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/).", + "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": { @@ -2057,6 +2087,10 @@ "readOnly": true, "type": "string" }, + "eventDataContentType": { + "description": "Optional. EventDataContentType specifies the type of payload in MIME format that is expected from the CloudEvent data field. This is set to `application/json` if the value is not defined.", + "type": "string" + }, "eventFilters": { "description": "Required. Unordered list. The list of filters that applies to event attributes. Only events that match all the provided filters are sent to the destination.", "items": { @@ -2076,7 +2110,7 @@ "type": "string" }, "serviceAccount": { - "description": "Optional. The IAM service account email associated with the trigger. The service account represents the identity of the trigger. The principal who calls this API must have the `iam.serviceAccounts.actAs` permission in the service account. See https://cloud.google.com/iam/docs/understanding-service-accounts?hl=en#sa_common for more information. For Cloud Run destinations, this service account is used to generate identity tokens when invoking the service. See https://cloud.google.com/run/docs/triggering/pubsub-push#create-service-account for information on how to invoke authenticated Cloud Run services. To create Audit Log triggers, the service account should also have the `roles/eventarc.eventReceiver` IAM role.", + "description": "Optional. The IAM service account email associated with the trigger. The service account represents the identity of the trigger. The `iam.serviceAccounts.actAs` permission must be granted on the service account to allow a principal to impersonate the service account. For more information, see the [Roles and permissions](/eventarc/docs/all-roles-permissions) page specific to the trigger destination.", "type": "string" }, "transport": { diff --git a/etc/api/eventarc/v1beta1/eventarc-api.json b/etc/api/eventarc/v1beta1/eventarc-api.json index 44b6970f13..e501d3320b 100644 --- a/etc/api/eventarc/v1beta1/eventarc-api.json +++ b/etc/api/eventarc/v1beta1/eventarc-api.json @@ -258,7 +258,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "eventarc.projects.locations.operations.list", @@ -584,7 +584,7 @@ } } }, - "revision": "20230113", + "revision": "20240223", "rootUrl": "https://eventarc.googleapis.com/", "schemas": { "AuditConfig": { @@ -644,14 +644,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -784,7 +784,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -861,7 +861,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" } }, @@ -912,7 +912,7 @@ "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/).", + "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": { diff --git a/etc/api/factchecktools/v1alpha1/factchecktools-api.json b/etc/api/factchecktools/v1alpha1/factchecktools-api.json index cd4954535a..b0a7a04c10 100644 --- a/etc/api/factchecktools/v1alpha1/factchecktools-api.json +++ b/etc/api/factchecktools/v1alpha1/factchecktools-api.json @@ -304,7 +304,7 @@ } } }, - "revision": "20230121", + "revision": "20240303", "rootUrl": "https://factchecktools.googleapis.com/", "schemas": { "GoogleFactcheckingFactchecktoolsV1alpha1Claim": { diff --git a/etc/api/fcm/v1/fcm-api.json b/etc/api/fcm/v1/fcm-api.json index 1218480a0a..8b59acd9ce 100644 --- a/etc/api/fcm/v1/fcm-api.json +++ b/etc/api/fcm/v1/fcm-api.json @@ -146,7 +146,7 @@ } } }, - "revision": "20230106", + "revision": "20240227", "rootUrl": "https://fcm.googleapis.com/", "schemas": { "AndroidConfig": { @@ -231,6 +231,7 @@ "type": "string" }, "bypassProxyNotification": { + "deprecated": true, "description": "If set, display notifications delivered to the device will be handled by the app instead of the proxy.", "type": "boolean" }, @@ -304,6 +305,22 @@ ], "type": "string" }, + "proxy": { + "description": "Setting to control when a notification may be proxied.", + "enum": [ + "PROXY_UNSPECIFIED", + "ALLOW", + "DENY", + "IF_PRIORITY_LOWERED" + ], + "enumDescriptions": [ + "If unspecified, default to `Proxy.IF_PRIORITY_LOWERED`.", + "Try to proxy this notification.", + "Do not proxy this notification.", + "Only try to proxy this notification if its `AndroidMessagePriority` was lowered from `HIGH` to `NORMAL` on the device." + ], + "type": "string" + }, "sound": { "description": "The sound to play when the device receives the notification. Supports \"default\" or the filename of a sound resource bundled in the app. Sound files must reside in /res/raw/.", "type": "string" @@ -404,7 +421,7 @@ "type": "object" }, "Color": { - "description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/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 carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). 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(''); }; // ...", + "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\u2014for 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": { diff --git a/etc/api/fcmdata/v1beta1/fcmdata-api.json b/etc/api/fcmdata/v1beta1/fcmdata-api.json index 6cf9c2f5bb..3b72b72d43 100644 --- a/etc/api/fcmdata/v1beta1/fcmdata-api.json +++ b/etc/api/fcmdata/v1beta1/fcmdata-api.json @@ -154,7 +154,7 @@ } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://fcmdata.googleapis.com/", "schemas": { "GoogleFirebaseFcmDataV1beta1AndroidDeliveryData": { diff --git a/etc/api/file/v1/file-api.json b/etc/api/file/v1/file-api.json index 74b42b518b..6304c7afe9 100644 --- a/etc/api/file/v1/file-api.json +++ b/etc/api/file/v1/file-api.json @@ -546,6 +546,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "revert": { + "description": "Revert an existing instance's file system to a specified snapshot.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:revert", + "httpMethod": "POST", + "id": "file.projects.locations.instances.revert", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "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, + "type": "string" + } + }, + "path": "v1/{+name}:revert", + "request": { + "$ref": "RevertInstanceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { @@ -799,7 +827,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "file.projects.locations.operations.list", @@ -846,7 +874,7 @@ } } }, - "revision": "20230103", + "revision": "20240126", "rootUrl": "https://file.googleapis.com/", "schemas": { "Backup": { @@ -875,6 +903,10 @@ "readOnly": true, "type": "string" }, + "kmsKey": { + "description": "Immutable. KMS key name used for data encryption.", + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -887,6 +919,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, @@ -909,7 +946,9 @@ "BASIC_HDD", "BASIC_SSD", "HIGH_SCALE_SSD", - "ENTERPRISE" + "ENTERPRISE", + "ZONAL", + "REGIONAL" ], "enumDescriptions": [ "Not set.", @@ -918,7 +957,9 @@ "BASIC instances offer a maximum capacity of 63.9 TB. BASIC_HDD is an alias for STANDARD Tier, offering economical performance backed by HDD.", "BASIC instances offer a maximum capacity of 63.9 TB. BASIC_SSD is an alias for PREMIUM Tier, and offers improved performance backed by SSD.", "HIGH_SCALE instances offer expanded capacity and performance scaling capabilities.", - "ENTERPRISE instances offer the features and availability needed for mission-critical workloads." + "ENTERPRISE instances offer the features and availability needed for mission-critical workloads.", + "ZONAL instances offer expanded capacity and performance scaling capabilities.", + "REGIONAL instances offer the features and availability needed for mission-critical workloads." ], "readOnly": true, "type": "string" @@ -930,14 +971,16 @@ "CREATING", "FINALIZING", "READY", - "DELETING" + "DELETING", + "INVALID" ], "enumDescriptions": [ "State not set.", "Backup is being created.", "Backup has been taken and the operation is being finalized. At this point, changes to the file share will not be reflected in the backup.", "Backup is available for use.", - "Backup is being deleted." + "Backup is being deleted.", + "Backup is not valid and cannot be used for creating new instances or restoring existing instances." ], "readOnly": true, "type": "string" @@ -1030,7 +1073,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": { @@ -1048,10 +1091,11 @@ "type": "object" }, "GoogleCloudSaasacceleratorManagementProvidersV1Instance": { + "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": "GoogleCloudSaasacceleratorManagementProvidersV1Instance", "properties": { "consumerDefinedName": { - "description": "consumer_defined_name is the name that is set by the consumer. On the other hand Name field represents system-assigned id of an instance so consumers are not necessarily aware of it. consumer_defined_name is used for notification/UI purposes for consumer to recognize their instances.", + "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": { @@ -1075,7 +1119,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Deprecated. 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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug.", + "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": { @@ -1174,6 +1218,7 @@ "id": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule", "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" }, @@ -1215,7 +1260,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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug. 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" } }, @@ -1368,6 +1413,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, @@ -1385,7 +1435,8 @@ "RESTORING", "SUSPENDED", "SUSPENDING", - "RESUMING" + "RESUMING", + "REVERTING" ], "enumDescriptions": [ "State not set.", @@ -1397,7 +1448,8 @@ "The instance is restoring a backup to an existing file share and may be unusable during this time.", "The instance is suspended. You can get further details from the `suspension_reasons` field of the `Instance` resource.", "The instance is in the process of becoming suspended.", - "The instance is in the process of becoming active." + "The instance is in the process of becoming active.", + "The instance is reverting to a snapshot." ], "readOnly": true, "type": "string" @@ -1432,7 +1484,9 @@ "BASIC_HDD", "BASIC_SSD", "HIGH_SCALE_SSD", - "ENTERPRISE" + "ENTERPRISE", + "ZONAL", + "REGIONAL" ], "enumDescriptions": [ "Not set.", @@ -1441,7 +1495,9 @@ "BASIC instances offer a maximum capacity of 63.9 TB. BASIC_HDD is an alias for STANDARD Tier, offering economical performance backed by HDD.", "BASIC instances offer a maximum capacity of 63.9 TB. BASIC_SSD is an alias for PREMIUM Tier, and offers improved performance backed by SSD.", "HIGH_SCALE instances offer expanded capacity and performance scaling capabilities.", - "ENTERPRISE instances offer the features and availability needed for mission-critical workloads." + "ENTERPRISE instances offer the features and availability needed for mission-critical workloads.", + "ZONAL instances offer expanded capacity and performance scaling capabilities.", + "REGIONAL instances offer the features and availability needed for mission-critical workloads." ], "type": "string" } @@ -1553,7 +1609,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1784,7 +1840,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" } }, @@ -1849,6 +1905,17 @@ }, "type": "object" }, + "RevertInstanceRequest": { + "description": "RevertInstanceRequest reverts the given instance's file share to the specified snapshot.", + "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}`", + "type": "string" + } + }, + "type": "object" + }, "Schedule": { "description": "Configure the schedule.", "id": "Schedule", @@ -2020,7 +2087,7 @@ "type": "string" }, "denyMaintenancePeriods": { - "description": "Deny Maintenance Period that is applied to resource to indicate when maintenance is forbidden. User can specify zero or more non-overlapping deny periods. Maximum number of deny_maintenance_periods expected is one.", + "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" }, diff --git a/etc/api/file/v1beta1/file-api.json b/etc/api/file/v1beta1/file-api.json index d4e5e19ea2..517218a7e5 100644 --- a/etc/api/file/v1beta1/file-api.json +++ b/etc/api/file/v1beta1/file-api.json @@ -557,7 +557,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, @@ -994,7 +994,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "file.projects.locations.operations.list", @@ -1041,7 +1041,7 @@ } } }, - "revision": "20230103", + "revision": "20240126", "rootUrl": "https://file.googleapis.com/", "schemas": { "Backup": { @@ -1086,6 +1086,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, @@ -1108,7 +1113,9 @@ "BASIC_HDD", "BASIC_SSD", "HIGH_SCALE_SSD", - "ENTERPRISE" + "ENTERPRISE", + "ZONAL", + "REGIONAL" ], "enumDescriptions": [ "Not set.", @@ -1117,7 +1124,9 @@ "BASIC instances offer a maximum capacity of 63.9 TB. BASIC_HDD is an alias for STANDARD Tier, offering economical performance backed by HDD.", "BASIC instances offer a maximum capacity of 63.9 TB. BASIC_SSD is an alias for PREMIUM Tier, and offers improved performance backed by SSD.", "HIGH_SCALE instances offer expanded capacity and performance scaling capabilities.", - "ENTERPRISE instances offer the features and availability needed for mission-critical workloads." + "ENTERPRISE instances offer the features and availability needed for mission-critical workloads.", + "ZONAL instances offer expanded capacity and performance scaling capabilities.", + "REGIONAL instances offer the features and availability needed for mission-critical workloads." ], "readOnly": true, "type": "string" @@ -1129,14 +1138,16 @@ "CREATING", "FINALIZING", "READY", - "DELETING" + "DELETING", + "INVALID" ], "enumDescriptions": [ "State not set.", "Backup is being created.", "Backup has been taken and the operation is being finalized. At this point, changes to the file share will not be reflected in the backup.", "Backup is available for use.", - "Backup is being deleted." + "Backup is being deleted.", + "Backup is not valid and cannot be used for creating new instances or restoring existing instances." ], "readOnly": true, "type": "string" @@ -1213,6 +1224,17 @@ }, "type": "object" }, + "DirectoryServicesConfig": { + "description": "Directory Services configuration for Kerberos-based authentication.", + "id": "DirectoryServicesConfig", + "properties": { + "managedActiveDirectory": { + "$ref": "ManagedActiveDirectoryConfig", + "description": "Configuration for Managed Service for Microsoft Active Directory." + } + }, + "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", @@ -1229,7 +1251,7 @@ "type": "string" }, "name": { - "description": "The name of the file share (must be 32 characters or less for Enterprise and High Scale SSD tiers and 16 characters or less for all other tiers).", + "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": { @@ -1247,10 +1269,11 @@ "type": "object" }, "GoogleCloudSaasacceleratorManagementProvidersV1Instance": { + "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": "GoogleCloudSaasacceleratorManagementProvidersV1Instance", "properties": { "consumerDefinedName": { - "description": "consumer_defined_name is the name that is set by the consumer. On the other hand Name field represents system-assigned id of an instance so consumers are not necessarily aware of it. consumer_defined_name is used for notification/UI purposes for consumer to recognize their instances.", + "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": { @@ -1274,7 +1297,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Deprecated. 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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug.", + "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": { @@ -1373,6 +1396,7 @@ "id": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule", "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" }, @@ -1414,7 +1438,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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug. 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" } }, @@ -1544,6 +1568,10 @@ "description": "The description of the instance (2048 characters or less).", "type": "string" }, + "directoryServices": { + "$ref": "DirectoryServicesConfig", + "description": "Directory Services configuration for Kerberos-based authentication. Should only be set if protocol is \"NFS_V4_1\"." + }, "etag": { "description": "Server-specified ETag for the instance resource to prevent simultaneous updates from overwriting each other.", "type": "string" @@ -1573,9 +1601,8 @@ "type": "string" }, "maxShareCount": { - "description": "Output only. The max number of shares allowed.", + "description": "The max number of shares allowed.", "format": "int64", - "readOnly": true, "type": "string" }, "multiShareEnabled": { @@ -1608,6 +1635,11 @@ ], "type": "string" }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "satisfiesPzs": { "description": "Output only. Reserved for future use.", "readOnly": true, @@ -1674,7 +1706,9 @@ "BASIC_HDD", "BASIC_SSD", "HIGH_SCALE_SSD", - "ENTERPRISE" + "ENTERPRISE", + "ZONAL", + "REGIONAL" ], "enumDescriptions": [ "Not set.", @@ -1683,7 +1717,9 @@ "BASIC instances offer a maximum capacity of 63.9 TB. BASIC_HDD is an alias for STANDARD Tier, offering economical performance backed by HDD.", "BASIC instances offer a maximum capacity of 63.9 TB. BASIC_SSD is an alias for PREMIUM Tier, and offers improved performance backed by SSD.", "HIGH_SCALE instances offer expanded capacity and performance scaling capabilities.", - "ENTERPRISE instances offer the features and availability needed for mission-critical workloads." + "ENTERPRISE instances offer the features and availability needed for mission-critical workloads.", + "ZONAL instances offer expanded capacity and performance scaling capabilities.", + "REGIONAL instances offer the features and availability needed for mission-critical workloads." ], "type": "string" } @@ -1820,7 +1856,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1918,6 +1954,21 @@ }, "type": "object" }, + "ManagedActiveDirectoryConfig": { + "description": "ManagedActiveDirectoryConfig contains all the parameters for connecting to Managed Active Directory.", + "id": "ManagedActiveDirectoryConfig", + "properties": { + "computer": { + "description": "The computer name is used as a prefix to the mount remote target. Example: if the computer_name is `my-computer`, the mount command will look like: `$mount -o vers=4,sec=krb5 my-computer.filestore.:`.", + "type": "string" + }, + "domain": { + "description": "Fully qualified domain name.", + "type": "string" + } + }, + "type": "object" + }, "NetworkConfig": { "description": "Network configuration for the instance.", "id": "NetworkConfig", @@ -2005,6 +2056,27 @@ }, "type": "array" }, + "securityFlavors": { + "description": "The security flavors allowed for mount operations. The default is AUTH_SYS.", + "items": { + "enum": [ + "SECURITY_FLAVOR_UNSPECIFIED", + "AUTH_SYS", + "KRB5", + "KRB5I", + "KRB5P" + ], + "enumDescriptions": [ + "SecurityFlavor not set.", + "The user's UNIX user-id and group-ids are transferred \"in the clear\" (not encrypted) on the network, unauthenticated by the NFS server (default).", + "End-user authentication through Kerberos V5.", + "krb5 plus integrity protection (data packets are tamper proof).", + "krb5i plus privacy protection (data packets are tamper proof and encrypted)." + ], + "type": "string" + }, + "type": "array" + }, "squashMode": { "description": "Either NO_ROOT_SQUASH, for allowing root access on the exported directory, or ROOT_SQUASH, for not allowing root access. The default is NO_ROOT_SQUASH.", "enum": [ @@ -2051,7 +2123,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" } }, @@ -2114,6 +2186,7 @@ "type": "string" }, "sourceSnapshot": { + "deprecated": true, "description": "The resource name of the snapshot, in the format `projects/{project_id}/locations/{location_id}/snapshots/{snapshot_id}`.", "type": "string" } @@ -2125,7 +2198,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" } }, @@ -2175,6 +2248,10 @@ "description": "A Filestore share.", "id": "Share", "properties": { + "backup": { + "description": "Immutable. Full name of the Cloud Filestore Backup resource that this Share is restored from, in the format of projects/{project_id}/locations/{location_id}/backups/{backup_id}. Empty, if the Share is created from scratch and not restored from a backup.", + "type": "string" + }, "capacityGb": { "description": "File share capacity in gigabytes (GB). Filestore defines 1 GB as 1024^3 bytes. Must be greater than 0.", "format": "int64", @@ -2364,7 +2441,7 @@ "type": "string" }, "denyMaintenancePeriods": { - "description": "Deny Maintenance Period that is applied to resource to indicate when maintenance is forbidden. User can specify zero or more non-overlapping deny periods. Maximum number of deny_maintenance_periods expected is one.", + "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" }, diff --git a/etc/api/firebase/v1beta1/firebase-api.json b/etc/api/firebase/v1beta1/firebase-api.json index dbd6bf9e7a..d2b5d29225 100644 --- a/etc/api/firebase/v1beta1/firebase-api.json +++ b/etc/api/firebase/v1beta1/firebase-api.json @@ -790,9 +790,11 @@ } }, "availableLocations": { + "deprecated": true, "methods": { "list": { - "description": "Lists the valid Google Cloud Platform (GCP) resource locations for the specified Project (including a FirebaseProject). One of these locations can be selected as the Project's [_default_ GCP resource location](https://firebase.google.com/docs/projects/locations), which is the geographical location where the Project's resources, such as Cloud Firestore, will be provisioned by default. However, if the default GCP resource location has already been set for the Project, then this setting cannot be changed. This call checks for any possible [location restrictions](https://cloud.google.com/resource-manager/docs/organization-policy/defining-locations) for the specified Project and, thus, might return a subset of all possible GCP resource locations. To list all GCP resource locations (regardless of any restrictions), call the endpoint without specifying a unique project identifier (that is, `/v1beta1/{parent=projects/-}/listAvailableLocations`). To call `ListAvailableLocations` with a specified project, a member must be at minimum a Viewer of the Project. Calls without a specified project do not require any specific project permissions.", + "deprecated": true, + "description": "**DEPRECATED.** _Instead, use the applicable resource-specific REST API (or associated documentation, as needed) to determine valid locations for each resource used in your Project._ Lists the valid Google Cloud Platform (GCP) resource locations for the specified Project (including a FirebaseProject). One of these locations can be selected as the Project's [_default_ GCP resource location](https://firebase.google.com/docs/projects/locations), which is the geographical location where the Project's resources, such as Cloud Firestore, will be provisioned by default. However, if the default GCP resource location has already been set for the Project, then this setting cannot be changed. This call checks for any possible [location restrictions](https://cloud.google.com/resource-manager/docs/organization-policy/defining-locations) for the specified Project and, thus, might return a subset of all possible GCP resource locations. To list all GCP resource locations (regardless of any restrictions), call the endpoint without specifying a unique project identifier (that is, `/v1beta1/{parent=projects/-}/listAvailableLocations`). To call `ListAvailableLocations` with a specified project, a member must be at minimum a Viewer of the Project. Calls without a specified project do not require any specific project permissions.", "flatPath": "v1beta1/projects/{projectsId}/availableLocations", "httpMethod": "GET", "id": "firebase.projects.availableLocations.list", @@ -833,9 +835,11 @@ } }, "defaultLocation": { + "deprecated": true, "methods": { "finalize": { - "description": "Sets the default Google Cloud Platform (GCP) resource location for the specified FirebaseProject. This method creates an App Engine application with a [default Cloud Storage bucket](https://cloud.google.com/appengine/docs/standard/python/googlecloudstorageclient/setting-up-cloud-storage#activating_a_cloud_storage_bucket), located in the specified [`locationId`](#body.request_body.FIELDS.location_id). This location must be one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). After the default GCP resource location is finalized, or if it was already set, it cannot be changed. The default GCP resource location for the specified `FirebaseProject` might already be set because either the underlying GCP `Project` already has an App Engine application or `FinalizeDefaultLocation` was previously called with a specified `locationId`. Any new calls to `FinalizeDefaultLocation` with a *different* specified `locationId` will return a 409 error. The result of this call is an [`Operation`](../../v1beta1/operations), which can be used to track the provisioning process. The [`response`](../../v1beta1/operations#Operation.FIELDS.response) type of the `Operation` is google.protobuf.Empty. The `Operation` can be polled by its `name` using GetOperation until `done` is true. When `done` is true, the `Operation` has either succeeded or failed. If the `Operation` has succeeded, its [`response`](../../v1beta1/operations#Operation.FIELDS.response) will be set to a google.protobuf.Empty; if the `Operation` has failed, its `error` will be set to a google.rpc.Status. The `Operation` is automatically deleted after completion, so there is no need to call DeleteOperation. All fields listed in the [request body](#request-body) are required. To call `FinalizeDefaultLocation`, a member must be an Owner of the Project.", + "deprecated": true, + "description": "**DEPRECATED.** _Instead, use the applicable resource-specific REST API to set the location for each resource used in your Project._ Sets the default Google Cloud Platform (GCP) resource location for the specified FirebaseProject. This method creates an App Engine application with a [default Cloud Storage bucket](https://cloud.google.com/appengine/docs/standard/python/googlecloudstorageclient/setting-up-cloud-storage#activating_a_cloud_storage_bucket), located in the specified [`locationId`](#body.request_body.FIELDS.location_id). This location must be one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). After the default GCP resource location is finalized, or if it was already set, it cannot be changed. The default GCP resource location for the specified `FirebaseProject` might already be set because either the underlying GCP `Project` already has an App Engine application or `FinalizeDefaultLocation` was previously called with a specified `locationId`. Any new calls to `FinalizeDefaultLocation` with a *different* specified `locationId` will return a 409 error. The result of this call is an [`Operation`](../../v1beta1/operations), which can be used to track the provisioning process. The [`response`](../../v1beta1/operations#Operation.FIELDS.response) type of the `Operation` is google.protobuf.Empty. The `Operation` can be polled by its `name` using GetOperation until `done` is true. When `done` is true, the `Operation` has either succeeded or failed. If the `Operation` has succeeded, its [`response`](../../v1beta1/operations#Operation.FIELDS.response) will be set to a google.protobuf.Empty; if the `Operation` has failed, its `error` will be set to a google.rpc.Status. The `Operation` is automatically deleted after completion, so there is no need to call DeleteOperation. All fields listed in the [request body](#request-body) are required. To call `FinalizeDefaultLocation`, a member must be an Owner of the Project.", "flatPath": "v1beta1/projects/{projectsId}/defaultLocation:finalize", "httpMethod": "POST", "id": "firebase.projects.defaultLocation.finalize", @@ -1320,7 +1324,7 @@ } } }, - "revision": "20230123", + "revision": "20240304", "rootUrl": "https://firebase.googleapis.com/", "schemas": { "AddFirebaseRequest": { @@ -1352,11 +1356,13 @@ "id": "AdminSdkConfig", "properties": { "databaseURL": { - "description": "The default Firebase Realtime Database URL.", + "deprecated": true, + "description": "**DEPRECATED.** _Instead, find the default Firebase Realtime Database instance name using the [list endpoint](https://firebase.google.com/docs/reference/rest/database/database-management/rest/v1beta/projects.locations.instances/list) within the Firebase Realtime Database REST API. Note that the default instance for the Project might not yet be provisioned, so the return might not contain a default instance._ The default Firebase Realtime Database URL.", "type": "string" }, "locationId": { - "description": "The ID of the Project's default GCP resource location. The location is one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). This field is omitted if the default GCP resource location has not been finalized yet. To set a Project's default GCP resource location, call [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize) after you add Firebase resources to the Project.", + "deprecated": true, + "description": "**DEPRECATED.** _Instead, use product-specific REST APIs to find the location of resources._ The ID of the Project's default GCP resource location. The location is one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). This field is omitted if the default GCP resource location has not been finalized yet. To set a Project's default GCP resource location, call [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize) after you add Firebase resources to the Project.", "type": "string" }, "projectId": { @@ -1364,7 +1370,8 @@ "type": "string" }, "storageBucket": { - "description": "The default Cloud Storage for Firebase storage bucket name.", + "deprecated": true, + "description": "**DEPRECATED.** _Instead, find the default Cloud Storage for Firebase bucket using the [list endpoint](https://firebase.google.com/docs/reference/rest/storage/rest/v1beta/projects.buckets/list) within the Cloud Storage for Firebase REST API. Note that the default bucket for the Project might not yet be provisioned, so the return might not contain a default bucket._ The default Cloud Storage for Firebase storage bucket name.", "type": "string" } }, @@ -1428,6 +1435,12 @@ "description": "This checksum is computed by the server based on the value of other fields, and it may be sent with update requests to ensure the client has an up-to-date value before proceeding. Learn more about `etag` in Google's [AIP-154 standard](https://google.aip.dev/154#declarative-friendly-resources). This etag is strongly validated.", "type": "string" }, + "expireTime": { + "description": "Output only. Timestamp of when the App will be considered expired and cannot be undeleted. This value is only provided if the App is in the `DELETED` state.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "name": { "description": "The resource name of the AndroidApp, in the format: projects/ PROJECT_IDENTIFIER/androidApps/APP_ID * PROJECT_IDENTIFIER: the parent Project's [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). Note that the value for PROJECT_IDENTIFIER in any response body will be the `ProjectId`. * APP_ID: the globally unique, Firebase-assigned identifier for the App (see [`appId`](../projects.androidApps#AndroidApp.FIELDS.app_id)).", "type": "string" @@ -1490,26 +1503,31 @@ "type": "object" }, "DefaultResources": { - "description": "The default resources associated with the Project.", + "deprecated": true, + "description": "**DEPRECATED.** _Auto-provisioning of these resources is changing, so this object no longer reliably provides information about the resources within the Project. Instead, retrieve information about each resource directly from its resource-specific API._ The default auto-provisioned resources associated with the Project.", "id": "DefaultResources", "properties": { "hostingSite": { - "description": "Output only. The default Firebase Hosting site name, in the format: PROJECT_ID Though rare, your `projectId` might already be used as the name for an existing Hosting site in another project (learn more about creating non-default, [additional sites](https://firebase.google.com/docs/hosting/multisites)). In these cases, your `projectId` is appended with a hyphen then five alphanumeric characters to create your default Hosting site name. For example, if your `projectId` is `myproject123`, your default Hosting site name might be: `myproject123-a5c16`", + "deprecated": true, + "description": "Output only. **DEPRECATED.** _Instead, find the default Firebase Hosting site name using the [ListSites](https://firebase.google.com/docs/reference/hosting/rest/v1beta1/projects.sites/list) within the Firebase Hosting REST API. Note that the default site for the Project might not yet be provisioned, so the return might not contain a default site._ The default Firebase Hosting site name, in the format: PROJECT_ID Though rare, your `projectId` might already be used as the name for an existing Hosting site in another project (learn more about creating non-default, [additional sites](https://firebase.google.com/docs/hosting/multisites)). In these cases, your `projectId` is appended with a hyphen then five alphanumeric characters to create your default Hosting site name. For example, if your `projectId` is `myproject123`, your default Hosting site name might be: `myproject123-a5c16`", "readOnly": true, "type": "string" }, "locationId": { - "description": "Output only. The ID of the Project's default GCP resource location. The location is one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). This field is omitted if the default GCP resource location has not been finalized yet. To set a Project's default GCP resource location, call [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize) after you add Firebase resources to the Project.", + "deprecated": true, + "description": "Output only. **DEPRECATED.** _Instead, use product-specific REST APIs to find the location of resources._ The ID of the Project's default GCP resource location. The location is one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). This field is omitted if the default GCP resource location has not been finalized yet. To set a Project's default GCP resource location, call [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize) after you add Firebase resources to the Project.", "readOnly": true, "type": "string" }, "realtimeDatabaseInstance": { - "description": "Output only. The default Firebase Realtime Database instance name, in the format: PROJECT_ID Though rare, your `projectId` might already be used as the name for an existing Realtime Database instance in another project (learn more about [database sharding](https://firebase.google.com/docs/database/usage/sharding)). In these cases, your `projectId` is appended with a hyphen then five alphanumeric characters to create your default Realtime Database instance name. For example, if your `projectId` is `myproject123`, your default database instance name might be: `myproject123-a5c16`", + "deprecated": true, + "description": "Output only. **DEPRECATED.** _Instead, find the default Firebase Realtime Database instance name using the [list endpoint](https://firebase.google.com/docs/reference/rest/database/database-management/rest/v1beta/projects.locations.instances/list) within the Firebase Realtime Database REST API. Note that the default instance for the Project might not yet be provisioned, so the return might not contain a default instance._ The default Firebase Realtime Database instance name, in the format: PROJECT_ID Though rare, your `projectId` might already be used as the name for an existing Realtime Database instance in another project (learn more about [database sharding](https://firebase.google.com/docs/database/usage/sharding)). In these cases, your `projectId` is appended with a hyphen then five alphanumeric characters to create your default Realtime Database instance name. For example, if your `projectId` is `myproject123`, your default database instance name might be: `myproject123-a5c16`", "readOnly": true, "type": "string" }, "storageBucket": { - "description": "Output only. The default Cloud Storage for Firebase storage bucket, in the format: PROJECT_ID.appspot.com", + "deprecated": true, + "description": "Output only. **DEPRECATED.** _Instead, find the default Cloud Storage for Firebase bucket using the [list endpoint](https://firebase.google.com/docs/reference/rest/storage/rest/v1beta/projects.buckets/list) within the Cloud Storage for Firebase REST API. Note that the default bucket for the Project might not yet be provisioned, so the return might not contain a default bucket._ The default Cloud Storage for Firebase storage bucket, in the format: PROJECT_ID.appspot.com", "readOnly": true, "type": "string" } @@ -1523,6 +1541,7 @@ "type": "object" }, "FinalizeDefaultLocationRequest": { + "deprecated": true, "id": "FinalizeDefaultLocationRequest", "properties": { "locationId": { @@ -1549,6 +1568,12 @@ "description": "The user-assigned display name of the Firebase App.", "type": "string" }, + "expireTime": { + "description": "Output only. Timestamp of when the App will be considered expired and cannot be undeleted. This value is only provided if the App is in the `DELETED` state.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "name": { "description": "The resource name of the Firebase App, in the format: projects/PROJECT_ID /iosApps/APP_ID or projects/PROJECT_ID/androidApps/APP_ID or projects/ PROJECT_ID/webApps/APP_ID", "type": "string" @@ -1628,7 +1653,8 @@ }, "resources": { "$ref": "DefaultResources", - "description": "Output only. The default Firebase resources associated with the Project.", + "deprecated": true, + "description": "Output only. **DEPRECATED.** _Auto-provisioning of these resources is changing, so this object no longer reliably provides information about the Project. Instead, retrieve information about each resource directly from its resource-specific API._ The default Firebase resources associated with the Project.", "readOnly": true }, "state": { @@ -1678,6 +1704,12 @@ "description": "This checksum is computed by the server based on the value of other fields, and it may be sent with update requests to ensure the client has an up-to-date value before proceeding. Learn more about `etag` in Google's [AIP-154 standard](https://google.aip.dev/154#declarative-friendly-resources). This etag is strongly validated.", "type": "string" }, + "expireTime": { + "description": "Output only. Timestamp of when the App will be considered expired and cannot be undeleted. This value is only provided if the App is in the `DELETED` state.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "name": { "description": "The resource name of the IosApp, in the format: projects/PROJECT_IDENTIFIER /iosApps/APP_ID * PROJECT_IDENTIFIER: the parent Project's [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). Note that the value for PROJECT_IDENTIFIER in any response body will be the `ProjectId`. * APP_ID: the globally unique, Firebase-assigned identifier for the App (see [`appId`](../projects.iosApps#IosApp.FIELDS.app_id)).", "type": "string" @@ -1743,6 +1775,7 @@ "type": "object" }, "ListAvailableLocationsResponse": { + "deprecated": true, "id": "ListAvailableLocationsResponse", "properties": { "locations": { @@ -1841,7 +1874,8 @@ "type": "object" }, "Location": { - "description": "A GCP resource location that can be selected for a FirebaseProject.", + "deprecated": true, + "description": "**DEPRECATED.** _This Location is no longer used to determine Firebase resource locations. Instead, consult product documentation to determine valid locations for each resource used in your Project._ A GCP resource location that can be selected for a FirebaseProject.", "id": "Location", "properties": { "features": { @@ -1919,12 +1953,18 @@ "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" } }, "type": "object" }, + "OperationMetadata": { + "description": "Describes the progress of an LRO. It is included in the `metadata` field of the `Operation`.", + "id": "OperationMetadata", + "properties": {}, + "type": "object" + }, "ProductMetadata": { "description": "Metadata about a long-running Product operation.", "id": "ProductMetadata", @@ -2112,7 +2152,7 @@ "id": "StatusProto", "properties": { "canonicalCode": { - "description": "The canonical error code (see codes.proto) that most closely corresponds to this status. May be missing.", + "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" }, @@ -2226,6 +2266,12 @@ "description": "This checksum is computed by the server based on the value of other fields, and it may be sent with update requests to ensure the client has an up-to-date value before proceeding. Learn more about `etag` in Google's [AIP-154 standard](https://google.aip.dev/154#declarative-friendly-resources). This etag is strongly validated.", "type": "string" }, + "expireTime": { + "description": "Output only. Timestamp of when the App will be considered expired and cannot be undeleted. This value is only provided if the App is in the `DELETED` state.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "name": { "description": "The resource name of the WebApp, in the format: projects/PROJECT_IDENTIFIER /webApps/APP_ID * PROJECT_IDENTIFIER: the parent Project's [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). Note that the value for PROJECT_IDENTIFIER in any response body will be the `ProjectId`. * APP_ID: the globally unique, Firebase-assigned identifier for the App (see [`appId`](../projects.webApps#WebApp.FIELDS.app_id)).", "type": "string" @@ -2251,6 +2297,7 @@ "type": "string" }, "webId": { + "deprecated": true, "description": "Output only. Immutable. A unique, Firebase-assigned identifier for the `WebApp`. This identifier is only used to populate the `namespace` value for the `WebApp`. For most use cases, use `appId` to identify or reference the App. The `webId` value is only unique within a `FirebaseProject` and its associated Apps.", "readOnly": true, "type": "string" @@ -2275,11 +2322,13 @@ "type": "string" }, "databaseURL": { - "description": "The default Firebase Realtime Database URL.", + "deprecated": true, + "description": "**DEPRECATED.** _Instead, find the default Firebase Realtime Database instance name using the [list endpoint](https://firebase.google.com/docs/reference/rest/database/database-management/rest/v1beta/projects.locations.instances/list) within the Firebase Realtime Database REST API. Note that the default instance for the Project might not yet be provisioned, so the return might not contain a default instance._ The default Firebase Realtime Database URL.", "type": "string" }, "locationId": { - "description": "The ID of the Project's default GCP resource location. The location is one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). This field is omitted if the default GCP resource location has not been finalized yet. To set a Project's default GCP resource location, call [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize) after you add Firebase resources to the Project.", + "deprecated": true, + "description": "**DEPRECATED.** _Instead, use product-specific REST APIs to find the location of resources._ The ID of the Project's default GCP resource location. The location is one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). This field is omitted if the default GCP resource location has not been finalized yet. To set a Project's default GCP resource location, call [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize) after you add Firebase resources to the Project.", "type": "string" }, "measurementId": { @@ -2295,7 +2344,8 @@ "type": "string" }, "storageBucket": { - "description": "The default Cloud Storage for Firebase storage bucket name.", + "deprecated": true, + "description": "**DEPRECATED.** _Instead, find the default Cloud Storage for Firebase bucket using the [list endpoint](https://firebase.google.com/docs/reference/rest/storage/rest/v1beta/projects.buckets/list) within the Cloud Storage for Firebase REST API. Note that the default bucket for the Project might not yet be provisioned, so the return might not contain a default bucket._ The default Cloud Storage for Firebase storage bucket name.", "type": "string" } }, diff --git a/etc/api/firebaseappcheck/v1beta/firebaseappcheck-api.json b/etc/api/firebaseappcheck/v1beta/firebaseappcheck-api.json index 7d11f0d219..94c00b75ad 100644 --- a/etc/api/firebaseappcheck/v1beta/firebaseappcheck-api.json +++ b/etc/api/firebaseappcheck/v1beta/firebaseappcheck-api.json @@ -138,7 +138,158 @@ } } }, + "oauthClients": { + "methods": { + "exchangeAppAttestAssertion": { + "description": "Accepts an App Attest assertion and an artifact previously obtained from ExchangeAppAttestAttestation and verifies those with Apple. If valid, returns an AppCheckToken.", + "flatPath": "v1beta/oauthClients/{oauthClientsId}:exchangeAppAttestAssertion", + "httpMethod": "POST", + "id": "firebaseappcheck.oauthClients.exchangeAppAttestAssertion", + "parameterOrder": [ + "app" + ], + "parameters": { + "app": { + "description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.", + "location": "path", + "pattern": "^oauthClients/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+app}:exchangeAppAttestAssertion", + "request": { + "$ref": "GoogleFirebaseAppcheckV1betaExchangeAppAttestAssertionRequest" + }, + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "exchangeAppAttestAttestation": { + "description": "Accepts an App Attest CBOR attestation and verifies it with Apple using your preconfigured team and bundle IDs. If valid, returns an attestation artifact that can later be exchanged for an AppCheckToken using ExchangeAppAttestAssertion. For convenience and performance, this method's response object will also contain an AppCheckToken (if the verification is successful).", + "flatPath": "v1beta/oauthClients/{oauthClientsId}:exchangeAppAttestAttestation", + "httpMethod": "POST", + "id": "firebaseappcheck.oauthClients.exchangeAppAttestAttestation", + "parameterOrder": [ + "app" + ], + "parameters": { + "app": { + "description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.", + "location": "path", + "pattern": "^oauthClients/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+app}:exchangeAppAttestAttestation", + "request": { + "$ref": "GoogleFirebaseAppcheckV1betaExchangeAppAttestAttestationRequest" + }, + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaExchangeAppAttestAttestationResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "exchangeDebugToken": { + "description": "Validates a debug token secret that you have previously created using CreateDebugToken. If valid, returns an AppCheckToken. Note that a restrictive quota is enforced on this method to prevent accidental exposure of the app to abuse.", + "flatPath": "v1beta/oauthClients/{oauthClientsId}:exchangeDebugToken", + "httpMethod": "POST", + "id": "firebaseappcheck.oauthClients.exchangeDebugToken", + "parameterOrder": [ + "app" + ], + "parameters": { + "app": { + "description": "Required. The relative resource name of the app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.", + "location": "path", + "pattern": "^oauthClients/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+app}:exchangeDebugToken", + "request": { + "$ref": "GoogleFirebaseAppcheckV1betaExchangeDebugTokenRequest" + }, + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "generateAppAttestChallenge": { + "description": "Generates a challenge that protects the integrity of an immediately following call to ExchangeAppAttestAttestation or ExchangeAppAttestAssertion. A challenge should not be reused for multiple calls.", + "flatPath": "v1beta/oauthClients/{oauthClientsId}:generateAppAttestChallenge", + "httpMethod": "POST", + "id": "firebaseappcheck.oauthClients.generateAppAttestChallenge", + "parameterOrder": [ + "app" + ], + "parameters": { + "app": { + "description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.", + "location": "path", + "pattern": "^oauthClients/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+app}:generateAppAttestChallenge", + "request": { + "$ref": "GoogleFirebaseAppcheckV1betaGenerateAppAttestChallengeRequest" + }, + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaGenerateAppAttestChallengeResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + } + } + }, "projects": { + "methods": { + "verifyAppCheckToken": { + "description": "Verifies the given App Check token and returns token usage signals that callers may act upon. This method currently only supports App Check tokens exchanged from the following attestation providers: * Play Integrity API * App Attest * DeviceCheck (`DCDevice` tokens) * reCAPTCHA Enterprise * reCAPTCHA v3 * Custom providers App Check tokens exchanged from debug secrets are also supported. Calling this method on an otherwise valid App Check token with an unsupported provider will cause an HTTP 400 error to be returned. Returns whether this token was already consumed before this call. If this is the first time this method has seen the given App Check token, the field `already_consumed` in the response will be absent. The given token will then be marked as `already_consumed` (set to `true`) for all future invocations of this method for that token. Note that if the given App Check token is invalid, an HTTP 403 error is returned instead of a response object, regardless whether the token was already consumed. Currently, when evaluating whether an App Check token was already consumed, only calls to this exact method are counted. Use of the App Check token elsewhere will not mark the token as being already consumed. The caller must have the [`firebaseappcheck.appCheckTokens.verify`](https://firebase.google.com/docs/projects/iam/permissions#app-check) permission to call this method. This permission is part of the [Firebase App Check Token Verifier role](https://firebase.google.com/docs/projects/iam/roles-predefined-product#app-check).", + "flatPath": "v1beta/projects/{projectsId}:verifyAppCheckToken", + "httpMethod": "POST", + "id": "firebaseappcheck.projects.verifyAppCheckToken", + "parameterOrder": [ + "project" + ], + "parameters": { + "project": { + "description": "Required. The relative resource name of the project for which the token was minted, in the format: ``` projects/{project_number} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+project}:verifyAppCheckToken", + "request": { + "$ref": "GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenRequest" + }, + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + } + }, "resources": { "apps": { "methods": { @@ -346,6 +497,7 @@ ] }, "exchangeRecaptchaToken": { + "deprecated": true, "description": "Validates a [reCAPTCHA v3 response token](https://developers.google.com/recaptcha/docs/v3). If valid, returns an AppCheckToken.", "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangeRecaptchaToken", "httpMethod": "POST", @@ -404,6 +556,7 @@ ] }, "exchangeSafetyNetToken": { + "deprecated": true, "description": "Validates a [SafetyNet token](https://developer.android.com/training/safetynet/attestation#request-attestation-step). If valid, returns an AppCheckToken.", "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangeSafetyNetToken", "httpMethod": "POST", @@ -941,8 +1094,10 @@ } }, "recaptchaConfig": { + "deprecated": true, "methods": { "batchGet": { + "deprecated": true, "description": "Atomically gets the RecaptchaConfigs for the specified list of apps. For security reasons, the `site_secret` field is never populated in the response.", "flatPath": "v1beta/projects/{projectsId}/apps/-/recaptchaConfig:batchGet", "httpMethod": "GET", @@ -975,6 +1130,7 @@ ] }, "get": { + "deprecated": true, "description": "Gets the RecaptchaConfig for the specified app. For security reasons, the `site_secret` field is never populated in the response.", "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/recaptchaConfig", "httpMethod": "GET", @@ -1001,6 +1157,7 @@ ] }, "patch": { + "deprecated": true, "description": "Updates the RecaptchaConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange reCAPTCHA tokens for App Check tokens. For security reasons, the `site_secret` field is never populated in the response.", "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/recaptchaConfig", "httpMethod": "PATCH", @@ -1232,8 +1389,10 @@ } }, "safetyNetConfig": { + "deprecated": true, "methods": { "batchGet": { + "deprecated": true, "description": "Atomically gets the SafetyNetConfigs for the specified list of apps.", "flatPath": "v1beta/projects/{projectsId}/apps/-/safetyNetConfig:batchGet", "httpMethod": "GET", @@ -1266,6 +1425,7 @@ ] }, "get": { + "deprecated": true, "description": "Gets the SafetyNetConfig for the specified app.", "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/safetyNetConfig", "httpMethod": "GET", @@ -1292,6 +1452,7 @@ ] }, "patch": { + "deprecated": true, "description": "Updates the SafetyNetConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange SafetyNet tokens for App Check tokens.", "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/safetyNetConfig", "httpMethod": "PATCH", @@ -1371,7 +1532,7 @@ ], "parameters": { "name": { - "description": "Required. The relative resource name of the Service to retrieve, 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: * `firebasestorage.googleapis.com` (Cloud Storage for Firebase) * `firebasedatabase.googleapis.com` (Firebase Realtime Database) * `firestore.googleapis.com` (Cloud Firestore)", + "description": "Required. The relative resource name of the Service to retrieve, 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: * `firebasestorage.googleapis.com` (Cloud Storage for Firebase) * `firebasedatabase.googleapis.com` (Firebase Realtime Database) * `firestore.googleapis.com` (Cloud Firestore) * `identitytoolkit.googleapis.com` (Firebase Authentication with Identity Platform)", "location": "path", "pattern": "^projects/[^/]+/services/[^/]+$", "required": true, @@ -1397,7 +1558,7 @@ ], "parameters": { "pageSize": { - "description": "The maximum number of Services to return in the response. Only explicitly configured services 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.", + "description": "The maximum number of Services to return in the response. Only explicitly configured services are returned. The server may return fewer than this at its own discretion. If no value is specified or set to zero (or too large a value is specified), the server will impose its own limit.", "format": "int32", "location": "query", "type": "integer" @@ -1434,7 +1595,7 @@ ], "parameters": { "name": { - "description": "Required. The relative resource name of the service configuration object, 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: * `firebasestorage.googleapis.com` (Cloud Storage for Firebase) * `firebasedatabase.googleapis.com` (Firebase Realtime Database) * `firestore.googleapis.com` (Cloud Firestore)", + "description": "Required. The relative resource name of the service configuration object, 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: * `firebasestorage.googleapis.com` (Cloud Storage for Firebase) * `firebasedatabase.googleapis.com` (Firebase Realtime Database) * `firestore.googleapis.com` (Cloud Firestore) * `identitytoolkit.googleapis.com` (Firebase Authentication with Identity Platform)", "location": "path", "pattern": "^projects/[^/]+/services/[^/]+$", "required": true, @@ -1459,12 +1620,210 @@ "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" + ] + } + } + } } } } } }, - "revision": "20230116", + "revision": "20240226", "rootUrl": "https://firebaseappcheck.googleapis.com/", "schemas": { "GoogleFirebaseAppcheckV1betaAppAttestConfig": { @@ -1488,6 +1847,7 @@ "id": "GoogleFirebaseAppcheckV1betaAppCheckToken", "properties": { "attestationToken": { + "deprecated": true, "description": "An App Check token. App Check tokens are signed [JWTs](https://tools.ietf.org/html/rfc7519) containing claims that identify the attested app and Firebase project. This token is used to access Firebase services protected by App Check.", "type": "string" }, @@ -1504,6 +1864,7 @@ "type": "object" }, "GoogleFirebaseAppcheckV1betaAttestationTokenResponse": { + "deprecated": true, "description": "Encapsulates an *App Check token*, which are used to access Firebase services protected by App Check.", "id": "GoogleFirebaseAppcheckV1betaAttestationTokenResponse", "properties": { @@ -1562,6 +1923,7 @@ "type": "object" }, "GoogleFirebaseAppcheckV1betaBatchGetRecaptchaConfigsResponse": { + "deprecated": true, "description": "Response message for the BatchGetRecaptchaConfigs method.", "id": "GoogleFirebaseAppcheckV1betaBatchGetRecaptchaConfigsResponse", "properties": { @@ -1604,6 +1966,7 @@ "type": "object" }, "GoogleFirebaseAppcheckV1betaBatchGetSafetyNetConfigsResponse": { + "deprecated": true, "description": "Response message for the BatchGetSafetyNetConfigs method.", "id": "GoogleFirebaseAppcheckV1betaBatchGetSafetyNetConfigsResponse", "properties": { @@ -1617,6 +1980,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", @@ -1716,6 +2112,10 @@ "description": "Required. A one-time challenge returned by an immediately prior call to GenerateAppAttestChallenge.", "format": "byte", "type": "string" + }, + "limitedUse": { + "description": "Specifies whether this attestation is for use in a *limited use* (`true`) or *session based* (`false`) context. To enable this attestation to be used with the *replay protection* feature, set this to `true`. The default value is `false`.", + "type": "boolean" } }, "type": "object" @@ -1738,6 +2138,10 @@ "description": "Required. The key ID generated by App Attest for the client app.", "format": "byte", "type": "string" + }, + "limitedUse": { + "description": "Specifies whether this attestation is for use in a *limited use* (`true`) or *session based* (`false`) context. To enable this attestation to be used with the *replay protection* feature, set this to `true`. The default value is `false`.", + "type": "boolean" } }, "type": "object" @@ -1757,6 +2161,7 @@ }, "attestationToken": { "$ref": "GoogleFirebaseAppcheckV1betaAttestationTokenResponse", + "deprecated": true, "description": "Encapsulates an App Check token." } }, @@ -1769,6 +2174,10 @@ "customToken": { "description": "Required. A custom token signed using your project's Admin SDK service account credentials.", "type": "string" + }, + "limitedUse": { + "description": "Specifies whether this attestation is for use in a *limited use* (`true`) or *session based* (`false`) context. To enable this attestation to be used with the *replay protection* feature, set this to `true`. The default value is `false`.", + "type": "boolean" } }, "type": "object" @@ -1780,6 +2189,10 @@ "debugToken": { "description": "Required. A debug token secret. This string must match a debug token secret previously created using CreateDebugToken.", "type": "string" + }, + "limitedUse": { + "description": "Specifies whether this attestation is for use in a *limited use* (`true`) or *session based* (`false`) context. To enable this attestation to be used with the *replay protection* feature, set this to `true`. The default value is `false`.", + "type": "boolean" } }, "type": "object" @@ -1791,6 +2204,10 @@ "deviceToken": { "description": "Required. The `device_token` as returned by Apple's client-side [DeviceCheck API](https://developer.apple.com/documentation/devicecheck/dcdevice). This is the base64 encoded `Data` (Swift) or `NSData` (ObjC) object.", "type": "string" + }, + "limitedUse": { + "description": "Specifies whether this attestation is for use in a *limited use* (`true`) or *session based* (`false`) context. To enable this attestation to be used with the *replay protection* feature, set this to `true`. The default value is `false`.", + "type": "boolean" } }, "type": "object" @@ -1799,6 +2216,10 @@ "description": "Request message for the ExchangePlayIntegrityToken method.", "id": "GoogleFirebaseAppcheckV1betaExchangePlayIntegrityTokenRequest", "properties": { + "limitedUse": { + "description": "Specifies whether this attestation is for use in a *limited use* (`true`) or *session based* (`false`) context. To enable this attestation to be used with the *replay protection* feature, set this to `true`. The default value is `false`.", + "type": "boolean" + }, "playIntegrityToken": { "description": "Required. The [integrity verdict response token from Play Integrity](https://developer.android.com/google/play/integrity/verdict#decrypt-verify) issued to your app.", "type": "string" @@ -1810,6 +2231,10 @@ "description": "Request message for the ExchangeRecaptchaEnterpriseToken method.", "id": "GoogleFirebaseAppcheckV1betaExchangeRecaptchaEnterpriseTokenRequest", "properties": { + "limitedUse": { + "description": "Specifies whether this attestation is for use in a *limited use* (`true`) or *session based* (`false`) context. To enable this attestation to be used with the *replay protection* feature, set this to `true`. The default value is `false`.", + "type": "boolean" + }, "recaptchaEnterpriseToken": { "description": "Required. The reCAPTCHA token as returned by the [reCAPTCHA Enterprise JavaScript API](https://cloud.google.com/recaptcha-enterprise/docs/instrument-web-pages).", "type": "string" @@ -1818,6 +2243,7 @@ "type": "object" }, "GoogleFirebaseAppcheckV1betaExchangeRecaptchaTokenRequest": { + "deprecated": true, "description": "Request message for the ExchangeRecaptchaToken method.", "id": "GoogleFirebaseAppcheckV1betaExchangeRecaptchaTokenRequest", "properties": { @@ -1832,6 +2258,10 @@ "description": "Request message for the ExchangeRecaptchaV3Token method.", "id": "GoogleFirebaseAppcheckV1betaExchangeRecaptchaV3TokenRequest", "properties": { + "limitedUse": { + "description": "Specifies whether this attestation is for use in a *limited use* (`true`) or *session based* (`false`) context. To enable this attestation to be used with the *replay protection* feature, set this to `true`. The default value is `false`.", + "type": "boolean" + }, "recaptchaV3Token": { "description": "Required. The reCAPTCHA token as returned by the [reCAPTCHA v3 JavaScript API](https://developers.google.com/recaptcha/docs/v3).", "type": "string" @@ -1840,6 +2270,7 @@ "type": "object" }, "GoogleFirebaseAppcheckV1betaExchangeSafetyNetTokenRequest": { + "deprecated": true, "description": "Request message for the ExchangeSafetyNetToken method.", "id": "GoogleFirebaseAppcheckV1betaExchangeSafetyNetTokenRequest", "properties": { @@ -1913,6 +2344,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", @@ -1993,6 +2442,7 @@ "type": "object" }, "GoogleFirebaseAppcheckV1betaRecaptchaConfig": { + "deprecated": true, "description": "An app's reCAPTCHA v3 configuration object. This configuration is used by ExchangeRecaptchaToken to validate reCAPTCHA tokens issued to apps by reCAPTCHA v3. It also controls certain properties of the returned `AppCheckToken`, such as its ttl.", "id": "GoogleFirebaseAppcheckV1betaRecaptchaConfig", "properties": { @@ -2062,7 +2512,47 @@ }, "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).", "id": "GoogleFirebaseAppcheckV1betaSafetyNetConfig", "properties": { @@ -2090,14 +2580,40 @@ "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.", - "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.", - "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." + "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 as defined by RFC 7232.", + "type": "string" + }, "name": { - "description": "Required. The relative resource name of the service configuration object, 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: * `firebasestorage.googleapis.com` (Cloud Storage for Firebase) * `firebasedatabase.googleapis.com` (Firebase Realtime Database) * `firestore.googleapis.com` (Cloud Firestore)", + "description": "Required. The relative resource name of the service configuration object, 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: * `firebasestorage.googleapis.com` (Cloud Storage for Firebase) * `firebasedatabase.googleapis.com` (Firebase Realtime Database) * `firestore.googleapis.com` (Cloud Firestore) * `identitytoolkit.googleapis.com` (Firebase Authentication with Identity Platform)", + "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" + }, + "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" } }, @@ -2109,7 +2625,7 @@ "properties": { "service": { "$ref": "GoogleFirebaseAppcheckV1betaService", - "description": "Required. The Service to update. The Service's `name` field is used to identify the Service to be updated, 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: * `firebasestorage.googleapis.com` (Cloud Storage for Firebase) * `firebasedatabase.googleapis.com` (Firebase Realtime Database) * `firestore.googleapis.com` (Cloud Firestore)" + "description": "Required. The Service to update. The Service's `name` field is used to identify the Service to be updated, 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: * `firebasestorage.googleapis.com` (Cloud Storage for Firebase) * `firebasedatabase.googleapis.com` (Firebase Realtime Database) * `firestore.googleapis.com` (Cloud Firestore) * `identitytoolkit.googleapis.com` (Firebase Authentication with Identity Platform) For Firebase Authentication to work with App Check, you must first upgrade to [Firebase Authentication with Identity Platform](https://firebase.google.com/docs/auth#identity-platform)." }, "updateMask": { "description": "Required. A comma-separated list of names of fields in the Service to update. Example: `enforcement_mode`.", @@ -2119,6 +2635,28 @@ }, "type": "object" }, + "GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenRequest": { + "description": "Request message for the VerifyAppCheckToken method.", + "id": "GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenRequest", + "properties": { + "appCheckToken": { + "description": "Required. The App Check token to verify. App Check tokens exchanged from the SafetyNet provider are not supported; an HTTP 400 error will be returned.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenResponse": { + "description": "Response message for the VerifyAppCheckToken method.", + "id": "GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenResponse", + "properties": { + "alreadyConsumed": { + "description": "Whether this token was already consumed. If this is the first time this method has seen the given App Check token, this field will be omitted from the response. The given token will then be marked as `already_consumed` (set to `true`) for all future invocations of this method for that token. Note that if the given App Check token is invalid, an HTTP 403 error is returned instead of a response containing this field, regardless whether the token was already consumed.", + "type": "boolean" + } + }, + "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/etc/api/firebasedatabase/v1beta/firebasedatabase-api.json b/etc/api/firebasedatabase/v1beta/firebasedatabase-api.json index 97b499af8a..be2bdf8f56 100644 --- a/etc/api/firebasedatabase/v1beta/firebasedatabase-api.json +++ b/etc/api/firebasedatabase/v1beta/firebasedatabase-api.json @@ -351,7 +351,7 @@ } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://firebasedatabase.googleapis.com/", "schemas": { "DatabaseInstance": { diff --git a/etc/api/firebasedynamiclinks/v1/firebasedynamiclinks-api.json b/etc/api/firebasedynamiclinks/v1/firebasedynamiclinks-api.json index 924729f642..6c5dd689db 100644 --- a/etc/api/firebasedynamiclinks/v1/firebasedynamiclinks-api.json +++ b/etc/api/firebasedynamiclinks/v1/firebasedynamiclinks-api.json @@ -224,7 +224,7 @@ } } }, - "revision": "20230123", + "revision": "20240226", "rootUrl": "https://firebasedynamiclinks.googleapis.com/", "schemas": { "AnalyticsInfo": { @@ -379,6 +379,7 @@ "type": "string" }, "languageCode": { + "deprecated": true, "description": "Device language code setting.", "type": "string" }, @@ -387,6 +388,7 @@ "type": "string" }, "languageCodeRaw": { + "deprecated": true, "description": "Device language code raw setting. iOS does returns language code in different format than iOS WebView. For example WebView returns en_US, but iOS returns en-US. Field below will return raw value returned by iOS.", "type": "string" }, @@ -445,6 +447,13 @@ "DESKTOP", "OTHER" ], + "enumDeprecated": [ + false, + false, + false, + true, + false + ], "enumDescriptions": [ "Unspecified platform.", "Represents Android platform. All apps and browsers on Android are classfied in this category.", @@ -478,6 +487,7 @@ "type": "string" }, "dynamicLinkDomain": { + "deprecated": true, "description": "Dynamic Links domain that the project owns, e.g. abcd.app.goo.gl [Learn more](https://firebase.google.com/docs/dynamic-links/android/receive) on how to set up Dynamic Link domain associated with your Firebase project. Required if missing domain_uri_prefix.", "type": "string" }, @@ -626,8 +636,8 @@ ], "enumDescriptions": [ "Unknown method.", - "iSDK performs a server lookup by device fingerprint in the background when app is first-opened; no API called by developer.", - "iSDK performs a server lookup by device fingerprint upon a dev API call.", + "iSDK performs a server lookup by device heuristics in the background when app is first-opened; no API called by developer.", + "iSDK performs a server lookup by device heuristics upon a dev API call.", "iSDK performs a strong match only if weak match is found upon a dev API call." ], "type": "string" @@ -637,7 +647,7 @@ "type": "string" }, "uniqueMatchLinkToCheck": { - "description": "Possible unique matched link that server need to check before performing fingerprint match. If passed link is short server need to expand the link. If link is long server need to vslidate the link.", + "description": "Possible unique matched link that server need to check before performing device heuristics match. If passed link is short server need to expand the link. If link is long server need to vslidate the link.", "type": "string" }, "visualStyle": { @@ -658,7 +668,7 @@ "type": "object" }, "GetIosPostInstallAttributionResponse": { - "description": "Response for iSDK to execute strong match flow for post-install attribution.", + "description": "Response for iSDK to execute strong match flow for post-install attribution. Information of the resolved FDL link.", "id": "GetIosPostInstallAttributionResponse", "properties": { "appMinimumVersion": { @@ -675,14 +685,14 @@ ], "enumDescriptions": [ "Unset.", - "Weak confidence, more than one matching link found or link suspected to be false positive", - "Default confidence, match based on fingerprint", - "Unique confidence, match based on \"unique match link to check\" or other means" + "Weak confidence, more than one matching link found or link suspected to be false positive.", + "Default confidence, match based on device heuristics.", + "Unique confidence, match based on \"unique match link to check\" or other means." ], "type": "string" }, "deepLink": { - "description": "The deep-link attributed post-install via one of several techniques (fingerprint, copy unique).", + "description": "The deep-link attributed post-install via one of several techniques (device heuristics, copy unique).", "type": "string" }, "externalBrowserDestinationLink": { @@ -694,7 +704,7 @@ "type": "string" }, "invitationId": { - "description": "Invitation ID attributed post-install via one of several techniques (fingerprint, copy unique).", + "description": "Invitation ID attributed post-install via one of several techniques (device heuristics, copy unique).", "type": "string" }, "isStrongMatchExecutable": { @@ -720,7 +730,7 @@ "type": "string" }, "requestedLink": { - "description": "Entire FDL (short or long) attributed post-install via one of several techniques (fingerprint, copy unique).", + "description": "Entire FDL (short or long) attributed post-install via one of several techniques (device heuristics, copy unique).", "type": "string" }, "resolvedLink": { @@ -817,6 +827,7 @@ "id": "GooglePlayAnalytics", "properties": { "gclid": { + "deprecated": true, "description": "Deprecated; FDL SDK does not process nor log it.", "type": "string" }, diff --git a/etc/api/firebasehosting/v1/firebasehosting-api.json b/etc/api/firebasehosting/v1/firebasehosting-api.json index f65fa73758..52f5fd7685 100644 --- a/etc/api/firebasehosting/v1/firebasehosting-api.json +++ b/etc/api/firebasehosting/v1/firebasehosting-api.json @@ -1,4 +1,16 @@ { + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." + }, + "https://www.googleapis.com/auth/firebase": { + "description": "View and administer all your Firebase data and settings" + } + } + } + }, "basePath": "", "baseUrl": "https://firebasehosting.googleapis.com/", "batchPath": "batch", @@ -146,7 +158,7 @@ } }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/operations", "httpMethod": "GET", "id": "firebasehosting.operations.list", @@ -184,9 +196,80 @@ } } } + }, + "projects": { + "resources": { + "sites": { + "resources": { + "customDomains": { + "resources": { + "operations": { + "methods": { + "cancel": { + "description": "CancelOperation is a part of the google.longrunning.Operations interface, but is not implemented for CustomDomain resources.", + "flatPath": "v1/projects/{projectsId}/sites/{sitesId}/customDomains/{customDomainsId}/operations/{operationsId}:cancel", + "httpMethod": "POST", + "id": "firebasehosting.projects.sites.customDomains.operations.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be cancelled.", + "location": "path", + "pattern": "^projects/[^/]+/sites/[^/]+/customDomains/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:cancel", + "request": { + "$ref": "CancelOperationRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "delete": { + "description": "DeleteOperation is a part of the google.longrunning.Operations interface, but is not implemented for CustomDomain resources.", + "flatPath": "v1/projects/{projectsId}/sites/{sitesId}/customDomains/{customDomainsId}/operations/{operationsId}", + "httpMethod": "DELETE", + "id": "firebasehosting.projects.sites.customDomains.operations.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be deleted.", + "location": "path", + "pattern": "^projects/[^/]+/sites/[^/]+/customDomains/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + } + } + } + } + } + } + } + } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://firebasehosting.googleapis.com/", "schemas": { "CancelOperationRequest": { @@ -195,12 +278,255 @@ "properties": {}, "type": "object" }, + "CertVerification": { + "description": "A set of ACME challenges you can use to allow Hosting to create an SSL certificate for your domain name before directing traffic to Hosting servers. Use either the DNS or HTTP challenge; it's not necessary to provide both.", + "id": "CertVerification", + "properties": { + "dns": { + "$ref": "DnsUpdates", + "description": "Output only. A `TXT` record to add to your DNS records that confirms your intent to let Hosting create an SSL cert for your domain name.", + "readOnly": true + }, + "http": { + "$ref": "HttpUpdate", + "description": "Output only. A file to add to your existing, non-Hosting hosting service that confirms your intent to let Hosting create an SSL cert for your domain name.", + "readOnly": true + } + }, + "type": "object" + }, + "CustomDomainMetadata": { + "description": "Metadata associated with a`CustomDomain` operation.", + "id": "CustomDomainMetadata", + "properties": { + "certState": { + "description": "The `CertState` of the domain name's SSL certificate.", + "enum": [ + "CERT_STATE_UNSPECIFIED", + "CERT_PREPARING", + "CERT_VALIDATING", + "CERT_PROPAGATING", + "CERT_ACTIVE", + "CERT_EXPIRING_SOON", + "CERT_EXPIRED" + ], + "enumDescriptions": [ + "The certificate's state is unspecified. The message is invalid if this is unspecified.", + "The initial state of every certificate, represents Hosting's intent to create a certificate, before requests to a Certificate Authority are made.", + "Hosting is validating whether a domain name's DNS records are in a state that allow certificate creation on its behalf.", + "The certificate was recently created, and needs time to propagate in Hosting's CDN.", + "The certificate is active, providing secure connections for the domain names it represents.", + "The certificate is expiring, all domain names on it will be given new certificates.", + "The certificate has expired. Hosting can no longer serve secure content on your domain name." + ], + "type": "string" + }, + "hostState": { + "description": "The `HostState` of the domain name this `CustomDomain` refers to.", + "enum": [ + "HOST_STATE_UNSPECIFIED", + "HOST_UNHOSTED", + "HOST_UNREACHABLE", + "HOST_MISMATCH", + "HOST_CONFLICT", + "HOST_ACTIVE" + ], + "enumDescriptions": [ + "Your custom domain's host state is unspecified. The message is invalid if this is unspecified.", + "Your custom domain's domain name isn't associated with any IP addresses.", + "Your custom domain's domain name can't be reached. Hosting services' DNS queries to find your domain name's IP addresses resulted in errors. See your `CustomDomain` object's `issues` field for more details.", + "Your custom domain's domain name has IP addresses that don't ultimately resolve to Hosting.", + "Your custom domain's domain name has IP addresses that resolve to both Hosting and other services. To ensure consistent results, remove `A` and `AAAA` records related to non-Hosting services.", + "All requests against your custom domain's domain name are served by Hosting. If the custom domain's `OwnershipState` is also `ACTIVE`, Hosting serves your Hosting site's content on the domain name." + ], + "type": "string" + }, + "issues": { + "description": "A list of issues that are currently preventing Hosting from completing the operation. These are generally DNS-related issues that Hosting encounters when querying a domain name's records or attempting to mint an SSL certificate.", + "items": { + "$ref": "Status" + }, + "type": "array" + }, + "liveMigrationSteps": { + "description": "A set of DNS record updates and ACME challenges that allow you to transition domain names to Firebase Hosting with zero downtime. These updates allow Hosting to create an SSL certificate and establish ownership for your custom domain before Hosting begins serving traffic on it. If your domain name is already in active use with another provider, add one of the challenges and make the recommended DNS updates. After adding challenges and adjusting DNS records as necessary, wait for the `ownershipState` to be `OWNERSHIP_ACTIVE` and the `certState` to be `CERT_ACTIVE` before sending traffic to Hosting.", + "items": { + "$ref": "LiveMigrationStep" + }, + "type": "array" + }, + "ownershipState": { + "description": "The `OwnershipState` of the domain name this `CustomDomain` refers to.", + "enum": [ + "OWNERSHIP_STATE_UNSPECIFIED", + "OWNERSHIP_MISSING", + "OWNERSHIP_UNREACHABLE", + "OWNERSHIP_MISMATCH", + "OWNERSHIP_CONFLICT", + "OWNERSHIP_PENDING", + "OWNERSHIP_ACTIVE" + ], + "enumDescriptions": [ + "Your custom domain's ownership state is unspecified. This should never happen.", + "Your custom domain's domain name has no Hosting-related ownership records; no Firebase project has permission to act on the domain name's behalf.", + "Your custom domain's domain name can't be reached. Hosting services' DNS queries to find your domain name's ownership records resulted in errors. See your `CustomDomain` object's `issues` field for more details.", + "Your custom domain's domain name is owned by another Firebase project. Remove the conflicting `TXT` records and replace them with project-specific records for your current Firebase project.", + "Your custom domain's domain name has conflicting `TXT` records that indicate ownership by both your current Firebase project and another project. Remove the other project's ownership records to grant the current project ownership.", + "Your custom domain's DNS records are configured correctly. Hosting will transfer ownership of your domain to this `CustomDomain` within 24 hours.", + "Your custom domain's domain name has `TXT` records that grant its project permission to act on its behalf." + ], + "type": "string" + }, + "quickSetupUpdates": { + "$ref": "DnsUpdates", + "description": "A set of DNS record updates that allow Hosting to serve secure content on your domain name. The record type determines the update's purpose: - `A` and `AAAA`: Updates your domain name's IP addresses so that they direct traffic to Hosting servers. - `TXT`: Updates ownership permissions on your domain name, letting Hosting know that your custom domain's project has permission to perfrom actions for that domain name. - `CAA`: Updates your domain name's list of authorized Certificate Authorities (CAs). Only present if you have existing `CAA` records that prohibit Hosting's CA from minting certs for your domain name. These updates include all DNS changes you'll need to get started with Hosting, but, if made all at once, can result in a brief period of downtime for your domain name--while Hosting creates and uploads an SSL cert, for example. If you'd like to add your domain name to Hosting without downtime, complete the `liveMigrationSteps` first, before making the remaining updates in this field." + } + }, + "type": "object" + }, + "DnsRecord": { + "description": "DNS records are resource records that define how systems and services should behave when handling requests for a domain name. For example, when you add `A` records to your domain name's DNS records, you're informing other systems (such as your users' web browsers) to contact those IPv4 addresses to retrieve resources relevant to your domain name (such as your Hosting site files).", + "id": "DnsRecord", + "properties": { + "domainName": { + "description": "Output only. The domain name the record pertains to, e.g. `foo.bar.com.`.", + "readOnly": true, + "type": "string" + }, + "rdata": { + "description": "Output only. The data of the record. The meaning of the value depends on record type: - A and AAAA: IP addresses for the domain name. - CNAME: Another domain to check for records. - TXT: Arbitrary text strings associated with the domain name. Hosting uses TXT records to determine which Firebase projects have permission to act on the domain name's behalf. - CAA: The record's flags, tag, and value, e.g. `0 issue \"pki.goog\"`.", + "readOnly": true, + "type": "string" + }, + "requiredAction": { + "description": "Output only. An enum that indicates the a required action for this record.", + "enum": [ + "NONE", + "ADD", + "REMOVE" + ], + "enumDescriptions": [ + "No action necessary.", + "Add this record to your DNS records.", + "Remove this record from your DNS records." + ], + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Output only. The record's type, which determines what data the record contains.", + "enum": [ + "TYPE_UNSPECIFIED", + "A", + "CNAME", + "TXT", + "AAAA", + "CAA" + ], + "enumDescriptions": [ + "The record's type is unspecified. The message is invalid if this is unspecified.", + "An `A` record, as defined in [RFC 1035](https://tools.ietf.org/html/rfc1035). A records determine which IPv4 addresses a domain name directs traffic towards.", + "A `CNAME` record, as defined in [RFC 1035](https://tools.ietf.org/html/rfc1035). `CNAME` or Canonical Name records map a domain name to a different, canonical domain name. If a `CNAME` record is present, it should be the only record on the domain name.", + "A `TXT` record, as defined in [RFC 1035](https://tools.ietf.org/html/rfc1035). `TXT` records hold arbitrary text data on a domain name. Hosting uses `TXT` records to establish which Firebase Project has permission to act on a domain name.", + "An AAAA record, as defined in [RFC 3596](https://tools.ietf.org/html/rfc3596) AAAA records determine which IPv6 addresses a domain name directs traffic towards.", + "A CAA record, as defined in [RFC 6844](https://tools.ietf.org/html/rfc6844). CAA, or Certificate Authority Authorization, records determine which Certificate Authorities (SSL certificate minting organizations) are authorized to mint a certificate for the domain name. Firebase Hosting uses `pki.goog` as its primary CA. CAA records cascade. A CAA record on `foo.com` also applies to `bar.foo.com` unless `bar.foo.com` has its own set of CAA records. CAA records are optional. If a domain name and its parents have no CAA records, all CAs are authorized to mint certificates on its behalf. In general, Hosting only asks you to modify CAA records when doing so is required to unblock SSL cert creation." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "DnsRecordSet": { + "description": "A set of DNS records relevant to the setup and maintenance of a custom domain in Firebase Hosting.", + "id": "DnsRecordSet", + "properties": { + "checkError": { + "$ref": "Status", + "description": "Output only. An error Hosting services encountered when querying your domain name's DNS records. Note: Hosting ignores `NXDOMAIN` errors, as those generally just mean that a domain name hasn't been set up yet.", + "readOnly": true + }, + "domainName": { + "description": "Output only. The domain name the record set pertains to.", + "readOnly": true, + "type": "string" + }, + "records": { + "description": "Output only. Records on the domain.", + "items": { + "$ref": "DnsRecord" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "DnsUpdates": { + "description": "A set of DNS record updates that you should make to allow Hosting to serve secure content in response to requests against your domain name. These updates present the current state of your domain name's DNS records when Hosting last queried them, and the desired set of records that Hosting needs to see before your custom domain can be fully active.", + "id": "DnsUpdates", + "properties": { + "checkTime": { + "description": "The last time Hosting checked your custom domain's DNS records.", + "format": "google-datetime", + "type": "string" + }, + "desired": { + "description": "The set of DNS records Hosting needs to serve secure content on the domain.", + "items": { + "$ref": "DnsRecordSet" + }, + "type": "array" + }, + "discovered": { + "description": "The set of DNS records Hosting discovered when inspecting a domain.", + "items": { + "$ref": "DnsRecordSet" + }, + "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" }, + "HttpUpdate": { + "description": "A file you can add to your existing, non-Hosting hosting service that confirms your intent to allow Hosting's Certificate Authorities to create an SSL certificate for your domain.", + "id": "HttpUpdate", + "properties": { + "checkError": { + "$ref": "Status", + "description": "Output only. An error encountered during the last contents check. If null, the check completed successfully.", + "readOnly": true + }, + "desired": { + "description": "Output only. A text string to serve at the path.", + "readOnly": true, + "type": "string" + }, + "discovered": { + "description": "Output only. Whether Hosting was able to find the required file contents on the specified path during its last check.", + "readOnly": true, + "type": "string" + }, + "lastCheckTime": { + "description": "Output only. The last time Hosting systems checked for the file contents.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "path": { + "description": "Output only. The path to the file.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "ListOperationsResponse": { "description": "The response message for Operations.ListOperations.", "id": "ListOperationsResponse", @@ -219,6 +545,52 @@ }, "type": "object" }, + "LiveMigrationStep": { + "description": "A set of updates including ACME challenges and DNS records that allow Hosting to create an SSL certificate and establish project ownership for your domain name before you direct traffic to Hosting servers. Use these updates to facilitate zero downtime migrations to Hosting from other services. After you've made the recommended updates, check your custom domain's `ownershipState` and `certState`. To avoid downtime, they should be `OWNERSHIP_ACTIVE` and `CERT_ACTIVE`, respectively, before you update your `A` and `AAAA` records.", + "id": "LiveMigrationStep", + "properties": { + "certVerification": { + "$ref": "CertVerification", + "description": "Output only. A pair of ACME challenges that Hosting's Certificate Authority (CA) can use to create an SSL cert for your domain name. Use either the DNS or HTTP challenge; it's not necessary to provide both.", + "readOnly": true + }, + "dnsUpdates": { + "$ref": "DnsUpdates", + "description": "Output only. DNS updates to facilitate your domain's zero-downtime migration to Hosting.", + "readOnly": true + }, + "issues": { + "description": "Output only. Issues that prevent the current step from completing.", + "items": { + "$ref": "Status" + }, + "readOnly": true, + "type": "array" + }, + "state": { + "description": "Output only. The state of the live migration step, indicates whether you should work to complete the step now, in the future, or have already completed it.", + "enum": [ + "STATE_UNSPECIFIED", + "PREPARING", + "PENDING", + "INCOMPLETE", + "PROCESSING", + "COMPLETE" + ], + "enumDescriptions": [ + "The step's state is unspecified. The message is invalid if this is unspecified.", + "Hosting doesn't have enough information to construct the step yet. Complete any prior steps and/or resolve this step's issue to proceed.", + "The step's state is pending. Complete prior steps before working on a `PENDING` step.", + "The step is incomplete. You should complete any `certVerification` or `dnsUpdates` changes to complete it.", + "You've done your part to update records and present challenges as necessary. Hosting is now completing background processes to complete the step, e.g. minting an SSL cert for your domain name.", + "The step is complete. You've already made the necessary changes to your domain and/or prior hosting service to advance to the next step. Once all steps are complete, Hosting is ready to serve secure content on your domain." + ], + "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", @@ -248,7 +620,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/etc/api/firebasehosting/v1beta1/firebasehosting-api.json b/etc/api/firebasehosting/v1beta1/firebasehosting-api.json index 1286f77009..8cb9083491 100644 --- a/etc/api/firebasehosting/v1beta1/firebasehosting-api.json +++ b/etc/api/firebasehosting/v1beta1/firebasehosting-api.json @@ -170,6 +170,11 @@ "description": "Required. Immutable. A globally unique identifier for the Hosting site. This identifier is used to construct the Firebase-provisioned subdomains for the site, so it must also be a valid domain name label.", "location": "query", "type": "string" + }, + "validateOnly": { + "description": "Optional. If set, validates that the site_id is available and that the request would succeed, returning the expected resulting site or error.", + "location": "query", + "type": "boolean" } }, "path": "v1beta1/{+parent}/sites", @@ -579,6 +584,34 @@ "https://www.googleapis.com/auth/firebase" ] }, + "get": { + "description": "Gets the specified release for a site or channel. When used to get a release for a site, this can get releases for both the default `live` channel and any active preview channels for the specified site.", + "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/channels/{channelsId}/releases/{releasesId}", + "httpMethod": "GET", + "id": "firebasehosting.projects.sites.channels.releases.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The fully-qualified resource name for the Hosting release, in either of the following formats: - sites/SITE_ID/channels/CHANNEL_ID/releases/RELEASE_ID - sites/SITE_ID/releases/RELEASE_ID ", + "location": "path", + "pattern": "^projects/[^/]+/sites/[^/]+/channels/[^/]+/releases/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Release" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/firebase", + "https://www.googleapis.com/auth/firebase.readonly" + ] + }, "list": { "description": "Lists the releases that have been created for the specified site or channel. When used to list releases for a site, this list includes releases for both the default `live` channel and any active preview channels for the specified site.", "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/channels/{channelsId}/releases", @@ -622,6 +655,314 @@ } } }, + "customDomains": { + "methods": { + "create": { + "description": "Creates a `CustomDomain`.", + "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/customDomains", + "httpMethod": "POST", + "id": "firebasehosting.projects.sites.customDomains.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "customDomainId": { + "description": "Required. The ID of the `CustomDomain`, which is the domain name you'd like to use with Firebase Hosting.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The custom domain's parent, specifically a Firebase Hosting `Site`.", + "location": "path", + "pattern": "^projects/[^/]+/sites/[^/]+$", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "If true, Hosting validates that it's possible to complete your request but doesn't actually create a new `CustomDomain`.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1beta1/{+parent}/customDomains", + "request": { + "$ref": "CustomDomain" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "delete": { + "description": "Deletes the specified `CustomDomain`.", + "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/customDomains/{customDomainsId}", + "httpMethod": "DELETE", + "id": "firebasehosting.projects.sites.customDomains.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "allowMissing": { + "description": "If true, the request succeeds even if the `CustomDomain` doesn't exist.", + "location": "query", + "type": "boolean" + }, + "etag": { + "description": "A tag that represents the state of the `CustomDomain` as you know it. If present, the supplied tag must match the current value on your `CustomDomain`, or the request fails.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The name of the `CustomDomain` to delete.", + "location": "path", + "pattern": "^projects/[^/]+/sites/[^/]+/customDomains/[^/]+$", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "If true, Hosting validates that it's possible to complete your request but doesn't actually delete the `CustomDomain`.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "get": { + "description": "Gets the specified `CustomDomain`.", + "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/customDomains/{customDomainsId}", + "httpMethod": "GET", + "id": "firebasehosting.projects.sites.customDomains.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the `CustomDomain` to get.", + "location": "path", + "pattern": "^projects/[^/]+/sites/[^/]+/customDomains/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "CustomDomain" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/firebase", + "https://www.googleapis.com/auth/firebase.readonly" + ] + }, + "list": { + "description": "Lists each `CustomDomain` associated with the specified parent Hosting site. Returns `CustomDomain`s in a consistent, but undefined, order to facilitate pagination.", + "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/customDomains", + "httpMethod": "GET", + "id": "firebasehosting.projects.sites.customDomains.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The max number of `CustomDomain` entities to return in a request. Defaults to 10.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A token from a previous call to `ListCustomDomains` that tells the server where to resume listing.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The Firebase Hosting `Site` with `CustomDomain` entities you'd like to list.", + "location": "path", + "pattern": "^projects/[^/]+/sites/[^/]+$", + "required": true, + "type": "string" + }, + "showDeleted": { + "description": "If true, the request returns soft-deleted `CustomDomain`s that haven't been fully-deleted yet. To restore deleted `CustomDomain`s, make an `UndeleteCustomDomain` request.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1beta1/{+parent}/customDomains", + "response": { + "$ref": "ListCustomDomainsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/firebase", + "https://www.googleapis.com/auth/firebase.readonly" + ] + }, + "patch": { + "description": "Updates the specified `CustomDomain`.", + "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/customDomains/{customDomainsId}", + "httpMethod": "PATCH", + "id": "firebasehosting.projects.sites.customDomains.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "allowMissing": { + "description": "If true, Hosting creates the `CustomDomain` if it doesn't already exist.", + "location": "query", + "type": "boolean" + }, + "name": { + "description": "Output only. The fully-qualified name of the `CustomDomain`.", + "location": "path", + "pattern": "^projects/[^/]+/sites/[^/]+/customDomains/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The set of field names from your `CustomDomain` that you want to update. A field will be overwritten if, and only if, it's in the mask. If you don't provide a mask, Hosting updates the entire `CustomDomain`.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "If true, Hosting validates that it's possible to complete your request but doesn't actually create or update the `CustomDomain`.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1beta1/{+name}", + "request": { + "$ref": "CustomDomain" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "undelete": { + "description": "Undeletes the specified `CustomDomain` if it has been soft-deleted. Hosting retains soft-deleted custom domains for around 30 days before permanently deleting them.", + "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/customDomains/{customDomainsId}:undelete", + "httpMethod": "POST", + "id": "firebasehosting.projects.sites.customDomains.undelete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the `CustomDomain` to delete.", + "location": "path", + "pattern": "^projects/[^/]+/sites/[^/]+/customDomains/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:undelete", + "request": { + "$ref": "UndeleteCustomDomainRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + } + }, + "resources": { + "operations": { + "methods": { + "get": { + "description": "Gets the latest state of a long-running operation. Use this method to poll the operation result at intervals as recommended by the API service.", + "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/customDomains/{customDomainsId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "firebasehosting.projects.sites.customDomains.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/sites/[^/]+/customDomains/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/firebase", + "https://www.googleapis.com/auth/firebase.readonly" + ] + }, + "list": { + "description": "Lists operations that match the specified filter in the request.", + "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/customDomains/{customDomainsId}/operations", + "httpMethod": "GET", + "id": "firebasehosting.projects.sites.customDomains.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/[^/]+/sites/[^/]+/customDomains/[^/]+$", + "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": "v1beta1/{+name}/operations", + "response": { + "$ref": "ListOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/firebase", + "https://www.googleapis.com/auth/firebase.readonly" + ] + } + } + } + } + }, "domains": { "methods": { "create": { @@ -813,6 +1154,34 @@ "https://www.googleapis.com/auth/firebase" ] }, + "get": { + "description": "Gets the specified release for a site or channel. When used to get a release for a site, this can get releases for both the default `live` channel and any active preview channels for the specified site.", + "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/releases/{releasesId}", + "httpMethod": "GET", + "id": "firebasehosting.projects.sites.releases.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The fully-qualified resource name for the Hosting release, in either of the following formats: - sites/SITE_ID/channels/CHANNEL_ID/releases/RELEASE_ID - sites/SITE_ID/releases/RELEASE_ID ", + "location": "path", + "pattern": "^projects/[^/]+/sites/[^/]+/releases/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Release" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/firebase", + "https://www.googleapis.com/auth/firebase.readonly" + ] + }, "list": { "description": "Lists the releases that have been created for the specified site or channel. When used to list releases for a site, this list includes releases for both the default `live` channel and any active preview channels for the specified site.", "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/releases", @@ -908,6 +1277,7 @@ "type": "string" }, "versionId": { + "deprecated": true, "description": "A unique id for the new version. This is was only specified for legacy version creations, and should be blank.", "location": "query", "type": "string" @@ -951,6 +1321,34 @@ "https://www.googleapis.com/auth/firebase" ] }, + "get": { + "description": "Get the specified version that has been created for the specified site. This can include versions that were created for the default `live` channel or for any active preview channels for the specified site.", + "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/versions/{versionsId}", + "httpMethod": "GET", + "id": "firebasehosting.projects.sites.versions.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The fully-qualified resource name for the version, in the format: sites/SITE_ID/versions/VERSION_ID", + "location": "path", + "pattern": "^projects/[^/]+/sites/[^/]+/versions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Version" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/firebase", + "https://www.googleapis.com/auth/firebase.readonly" + ] + }, "list": { "description": "Lists the versions that have been created for the specified site. This list includes versions for both the default `live` channel and any active preview channels for the specified site.", "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/versions", @@ -1394,6 +1792,34 @@ "https://www.googleapis.com/auth/firebase" ] }, + "get": { + "description": "Gets the specified release for a site or channel. When used to get a release for a site, this can get releases for both the default `live` channel and any active preview channels for the specified site.", + "flatPath": "v1beta1/sites/{sitesId}/channels/{channelsId}/releases/{releasesId}", + "httpMethod": "GET", + "id": "firebasehosting.sites.channels.releases.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The fully-qualified resource name for the Hosting release, in either of the following formats: - sites/SITE_ID/channels/CHANNEL_ID/releases/RELEASE_ID - sites/SITE_ID/releases/RELEASE_ID ", + "location": "path", + "pattern": "^sites/[^/]+/channels/[^/]+/releases/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Release" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/firebase", + "https://www.googleapis.com/auth/firebase.readonly" + ] + }, "list": { "description": "Lists the releases that have been created for the specified site or channel. When used to list releases for a site, this list includes releases for both the default `live` channel and any active preview channels for the specified site.", "flatPath": "v1beta1/sites/{sitesId}/channels/{channelsId}/releases", @@ -1628,6 +2054,34 @@ "https://www.googleapis.com/auth/firebase" ] }, + "get": { + "description": "Gets the specified release for a site or channel. When used to get a release for a site, this can get releases for both the default `live` channel and any active preview channels for the specified site.", + "flatPath": "v1beta1/sites/{sitesId}/releases/{releasesId}", + "httpMethod": "GET", + "id": "firebasehosting.sites.releases.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The fully-qualified resource name for the Hosting release, in either of the following formats: - sites/SITE_ID/channels/CHANNEL_ID/releases/RELEASE_ID - sites/SITE_ID/releases/RELEASE_ID ", + "location": "path", + "pattern": "^sites/[^/]+/releases/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Release" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/firebase", + "https://www.googleapis.com/auth/firebase.readonly" + ] + }, "list": { "description": "Lists the releases that have been created for the specified site or channel. When used to list releases for a site, this list includes releases for both the default `live` channel and any active preview channels for the specified site.", "flatPath": "v1beta1/sites/{sitesId}/releases", @@ -1723,6 +2177,7 @@ "type": "string" }, "versionId": { + "deprecated": true, "description": "A unique id for the new version. This is was only specified for legacy version creations, and should be blank.", "location": "query", "type": "string" @@ -1766,6 +2221,34 @@ "https://www.googleapis.com/auth/firebase" ] }, + "get": { + "description": "Get the specified version that has been created for the specified site. This can include versions that were created for the default `live` channel or for any active preview channels for the specified site.", + "flatPath": "v1beta1/sites/{sitesId}/versions/{versionsId}", + "httpMethod": "GET", + "id": "firebasehosting.sites.versions.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The fully-qualified resource name for the version, in the format: sites/SITE_ID/versions/VERSION_ID", + "location": "path", + "pattern": "^sites/[^/]+/versions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Version" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/firebase", + "https://www.googleapis.com/auth/firebase.readonly" + ] + }, "list": { "description": "Lists the versions that have been created for the specified site. This list includes versions for both the default `live` channel and any active preview channels for the specified site.", "flatPath": "v1beta1/sites/{sitesId}/versions", @@ -1939,7 +2422,7 @@ } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://firebasehosting.googleapis.com/", "schemas": { "ActingUser": { @@ -1987,6 +2470,97 @@ }, "type": "object" }, + "CertVerification": { + "description": "A set of ACME challenges you can use to allow Hosting to create an SSL certificate for your domain name before directing traffic to Hosting servers. Use either the DNS or HTTP challenge; it's not necessary to provide both.", + "id": "CertVerification", + "properties": { + "dns": { + "$ref": "DnsUpdates", + "description": "Output only. A `TXT` record to add to your DNS records that confirms your intent to let Hosting create an SSL cert for your domain name.", + "readOnly": true + }, + "http": { + "$ref": "HttpUpdate", + "description": "Output only. A file to add to your existing, non-Hosting hosting service that confirms your intent to let Hosting create an SSL cert for your domain name.", + "readOnly": true + } + }, + "type": "object" + }, + "Certificate": { + "description": "An SSL certificate used to provide end-to-end encryption for requests against your domain name. A `Certificate` can be an actual SSL certificate or, for newly-created custom domains, Hosting's intent to create one.", + "id": "Certificate", + "properties": { + "createTime": { + "description": "Output only. The certificate's creation time. For `TEMPORARY` certs this is the time Hosting first generated challenges for your domain name. For all other cert types, it's the time the actual cert was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "expireTime": { + "description": "Output only. The certificate's expiration time. After this time, the cert can no longer be used to provide secure communication between Hosting and your site's visitors.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "issues": { + "description": "Output only. A set of errors Hosting encountered when attempting to create a cert for your domain name. Resolve these issues to ensure Hosting is able to provide secure communication with your site's visitors.", + "items": { + "$ref": "Status" + }, + "readOnly": true, + "type": "array" + }, + "state": { + "description": "Output only. The state of the certificate. Only the `CERT_ACTIVE` and `CERT_EXPIRING_SOON` states provide SSL coverage for a domain name. If the state is `PROPAGATING` and Hosting had an active cert for the domain name before, that formerly-active cert provides SSL coverage for the domain name until the current cert propagates.", + "enum": [ + "CERT_STATE_UNSPECIFIED", + "CERT_PREPARING", + "CERT_VALIDATING", + "CERT_PROPAGATING", + "CERT_ACTIVE", + "CERT_EXPIRING_SOON", + "CERT_EXPIRED" + ], + "enumDescriptions": [ + "The certificate's state is unspecified. The message is invalid if this is unspecified.", + "The initial state of every certificate, represents Hosting's intent to create a certificate, before requests to a Certificate Authority are made.", + "Hosting is validating whether a domain name's DNS records are in a state that allow certificate creation on its behalf.", + "The certificate was recently created, and needs time to propagate in Hosting's CDN.", + "The certificate is active, providing secure connections for the domain names it represents.", + "The certificate is expiring, all domain names on it will be given new certificates.", + "The certificate has expired. Hosting can no longer serve secure content on your domain name." + ], + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Output only. The certificate's type.", + "enum": [ + "TYPE_UNSPECIFIED", + "TEMPORARY", + "GROUPED", + "PROJECT_GROUPED", + "DEDICATED" + ], + "enumDescriptions": [ + "The certificate's type is unspecified. The message is invalid if this is unspecified.", + "A short-lived certificate type that covers a domain name temporarily, while Hosting creates a more permanent certificate.", + "The standard certificate for Spark plan custom domains.", + "Blaze plan only. A certificate that covers from 1 to 100 domain names with custom domains on the same Firebase project.", + "Blaze plan only. A certificate that covers a single domain name." + ], + "readOnly": true, + "type": "string" + }, + "verification": { + "$ref": "CertVerification", + "description": "Output only. A set of ACME challenges you can add to your DNS records or existing, non-Hosting hosting provider to allow Hosting to create an SSL certificate for your domain name before you point traffic toward hosting. You can use thse challenges as part of a zero downtime transition from your old provider to Hosting.", + "readOnly": true + } + }, + "type": "object" + }, "Channel": { "description": "A `Channel` represents a stream of releases for a site. All sites have a default `live` channel that serves content to the Firebase-provided subdomains and any connected custom domains.", "id": "Channel", @@ -2075,6 +2649,347 @@ "serviceId": { "description": "Required. User-defined ID of the Cloud Run service.", "type": "string" + }, + "tag": { + "description": "Optional. User-provided TrafficConfig tag to send traffic to. When omitted, traffic is sent to the service-wide URI", + "type": "string" + } + }, + "type": "object" + }, + "CustomDomain": { + "description": "A `CustomDomain` is an entity that links a domain name to a Firebase Hosting site. Add a `CustomDomain` to your site to allow Hosting to serve the site's content in response to requests against your domain name.", + "id": "CustomDomain", + "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "Annotations you can add to leave both human- and machine-readable metadata about your `CustomDomain`.", + "type": "object" + }, + "cert": { + "$ref": "Certificate", + "description": "Output only. The SSL certificate Hosting has for this custom domain's domain name. For new custom domains, this often represents Hosting's intent to create a certificate, rather than an actual cert. Check the `state` field for more.", + "readOnly": true + }, + "certPreference": { + "description": "A field that lets you specify which SSL certificate type Hosting creates for your domain name. Spark plan custom domains only have access to the `GROUPED` cert type, while Blaze plan domains can select any option.", + "enum": [ + "TYPE_UNSPECIFIED", + "TEMPORARY", + "GROUPED", + "PROJECT_GROUPED", + "DEDICATED" + ], + "enumDescriptions": [ + "The certificate's type is unspecified. The message is invalid if this is unspecified.", + "A short-lived certificate type that covers a domain name temporarily, while Hosting creates a more permanent certificate.", + "The standard certificate for Spark plan custom domains.", + "Blaze plan only. A certificate that covers from 1 to 100 domain names with custom domains on the same Firebase project.", + "Blaze plan only. A certificate that covers a single domain name." + ], + "type": "string" + }, + "createTime": { + "description": "Output only. The custom domain's create time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deleteTime": { + "description": "Output only. The time the `CustomDomain` was deleted; null for custom domains that haven't been deleted. Deleted custom domains persist for approximately 30 days, after which time Hosting removes them completely. To restore a deleted custom domain, make an `UndeleteCustomDomain` request.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "etag": { + "description": "Output only. A string that represents the current state of the `CustomDomain` and allows you to confirm its initial state in requests that would modify it. Use the tag to ensure consistency when making `UpdateCustomDomain`, `DeleteCustomDomain`, and `UndeleteCustomDomain` requests.", + "readOnly": true, + "type": "string" + }, + "expireTime": { + "description": "Output only. The minimum time before a soft-deleted `CustomDomain` is completely removed from Hosting; null for custom domains that haven't been deleted.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "hostState": { + "description": "Output only. The `HostState` of the domain name this `CustomDomain` refers to.", + "enum": [ + "HOST_STATE_UNSPECIFIED", + "HOST_UNHOSTED", + "HOST_UNREACHABLE", + "HOST_MISMATCH", + "HOST_CONFLICT", + "HOST_ACTIVE" + ], + "enumDescriptions": [ + "Your custom domain's host state is unspecified. The message is invalid if this is unspecified.", + "Your custom domain's domain name isn't associated with any IP addresses.", + "Your custom domain's domain name can't be reached. Hosting services' DNS queries to find your domain name's IP addresses resulted in errors. See your `CustomDomain` object's `issues` field for more details.", + "Your custom domain's domain name has IP addresses that don't ultimately resolve to Hosting.", + "Your custom domain's domain name has IP addresses that resolve to both Hosting and other services. To ensure consistent results, remove `A` and `AAAA` records related to non-Hosting services.", + "All requests against your custom domain's domain name are served by Hosting. If the custom domain's `OwnershipState` is also `ACTIVE`, Hosting serves your Hosting site's content on the domain name." + ], + "readOnly": true, + "type": "string" + }, + "issues": { + "description": "Output only. A set of errors Hosting systems encountered when trying to establish Hosting's ability to serve secure content for your domain name. Resolve these issues to ensure your `CustomDomain` behaves properly.", + "items": { + "$ref": "Status" + }, + "readOnly": true, + "type": "array" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels used for extra metadata and/or filtering.", + "type": "object" + }, + "name": { + "description": "Output only. The fully-qualified name of the `CustomDomain`.", + "readOnly": true, + "type": "string" + }, + "ownershipState": { + "description": "Output only. The `OwnershipState` of the domain name this `CustomDomain` refers to.", + "enum": [ + "OWNERSHIP_STATE_UNSPECIFIED", + "OWNERSHIP_MISSING", + "OWNERSHIP_UNREACHABLE", + "OWNERSHIP_MISMATCH", + "OWNERSHIP_CONFLICT", + "OWNERSHIP_PENDING", + "OWNERSHIP_ACTIVE" + ], + "enumDescriptions": [ + "Your custom domain's ownership state is unspecified. This should never happen.", + "Your custom domain's domain name has no Hosting-related ownership records; no Firebase project has permission to act on the domain name's behalf.", + "Your custom domain's domain name can't be reached. Hosting services' DNS queries to find your domain name's ownership records resulted in errors. See your `CustomDomain` object's `issues` field for more details.", + "Your custom domain's domain name is owned by another Firebase project. Remove the conflicting `TXT` records and replace them with project-specific records for your current Firebase project.", + "Your custom domain's domain name has conflicting `TXT` records that indicate ownership by both your current Firebase project and another project. Remove the other project's ownership records to grant the current project ownership.", + "Your custom domain's DNS records are configured correctly. Hosting will transfer ownership of your domain to this `CustomDomain` within 24 hours.", + "Your custom domain's domain name has `TXT` records that grant its project permission to act on its behalf." + ], + "readOnly": true, + "type": "string" + }, + "reconciling": { + "description": "Output only. A field that, if true, indicates that Hosting's systems are attmepting to make the custom domain's state match your preferred state. This is most frequently `true` when initially provisioning a `CustomDomain` after a `CreateCustomDomain` request or when creating a new SSL certificate to match an updated `cert_preference` after an `UpdateCustomDomain` request.", + "readOnly": true, + "type": "boolean" + }, + "redirectTarget": { + "description": "A domain name that this `CustomDomain` should direct traffic towards. If specified, Hosting will respond to requests against this custom domain with an HTTP 301 code, and route traffic to the specified `redirect_target` instead.", + "type": "string" + }, + "requiredDnsUpdates": { + "$ref": "DnsUpdates", + "description": "Output only. A set of updates you should make to the domain name's DNS records to let Hosting serve secure content on its behalf.", + "readOnly": true + }, + "updateTime": { + "description": "Output only. The last time the `CustomDomain` was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "CustomDomainMetadata": { + "description": "Metadata associated with a`CustomDomain` operation.", + "id": "CustomDomainMetadata", + "properties": { + "certState": { + "description": "The `CertState` of the domain name's SSL certificate.", + "enum": [ + "CERT_STATE_UNSPECIFIED", + "CERT_PREPARING", + "CERT_VALIDATING", + "CERT_PROPAGATING", + "CERT_ACTIVE", + "CERT_EXPIRING_SOON", + "CERT_EXPIRED" + ], + "enumDescriptions": [ + "The certificate's state is unspecified. The message is invalid if this is unspecified.", + "The initial state of every certificate, represents Hosting's intent to create a certificate, before requests to a Certificate Authority are made.", + "Hosting is validating whether a domain name's DNS records are in a state that allow certificate creation on its behalf.", + "The certificate was recently created, and needs time to propagate in Hosting's CDN.", + "The certificate is active, providing secure connections for the domain names it represents.", + "The certificate is expiring, all domain names on it will be given new certificates.", + "The certificate has expired. Hosting can no longer serve secure content on your domain name." + ], + "type": "string" + }, + "hostState": { + "description": "The `HostState` of the domain name this `CustomDomain` refers to.", + "enum": [ + "HOST_STATE_UNSPECIFIED", + "HOST_UNHOSTED", + "HOST_UNREACHABLE", + "HOST_MISMATCH", + "HOST_CONFLICT", + "HOST_ACTIVE" + ], + "enumDescriptions": [ + "Your custom domain's host state is unspecified. The message is invalid if this is unspecified.", + "Your custom domain's domain name isn't associated with any IP addresses.", + "Your custom domain's domain name can't be reached. Hosting services' DNS queries to find your domain name's IP addresses resulted in errors. See your `CustomDomain` object's `issues` field for more details.", + "Your custom domain's domain name has IP addresses that don't ultimately resolve to Hosting.", + "Your custom domain's domain name has IP addresses that resolve to both Hosting and other services. To ensure consistent results, remove `A` and `AAAA` records related to non-Hosting services.", + "All requests against your custom domain's domain name are served by Hosting. If the custom domain's `OwnershipState` is also `ACTIVE`, Hosting serves your Hosting site's content on the domain name." + ], + "type": "string" + }, + "issues": { + "description": "A list of issues that are currently preventing Hosting from completing the operation. These are generally DNS-related issues that Hosting encounters when querying a domain name's records or attempting to mint an SSL certificate.", + "items": { + "$ref": "Status" + }, + "type": "array" + }, + "liveMigrationSteps": { + "description": "A set of DNS record updates and ACME challenges that allow you to transition domain names to Firebase Hosting with zero downtime. These updates allow Hosting to create an SSL certificate and establish ownership for your custom domain before Hosting begins serving traffic on it. If your domain name is already in active use with another provider, add one of the challenges and make the recommended DNS updates. After adding challenges and adjusting DNS records as necessary, wait for the `ownershipState` to be `OWNERSHIP_ACTIVE` and the `certState` to be `CERT_ACTIVE` before sending traffic to Hosting.", + "items": { + "$ref": "LiveMigrationStep" + }, + "type": "array" + }, + "ownershipState": { + "description": "The `OwnershipState` of the domain name this `CustomDomain` refers to.", + "enum": [ + "OWNERSHIP_STATE_UNSPECIFIED", + "OWNERSHIP_MISSING", + "OWNERSHIP_UNREACHABLE", + "OWNERSHIP_MISMATCH", + "OWNERSHIP_CONFLICT", + "OWNERSHIP_PENDING", + "OWNERSHIP_ACTIVE" + ], + "enumDescriptions": [ + "Your custom domain's ownership state is unspecified. This should never happen.", + "Your custom domain's domain name has no Hosting-related ownership records; no Firebase project has permission to act on the domain name's behalf.", + "Your custom domain's domain name can't be reached. Hosting services' DNS queries to find your domain name's ownership records resulted in errors. See your `CustomDomain` object's `issues` field for more details.", + "Your custom domain's domain name is owned by another Firebase project. Remove the conflicting `TXT` records and replace them with project-specific records for your current Firebase project.", + "Your custom domain's domain name has conflicting `TXT` records that indicate ownership by both your current Firebase project and another project. Remove the other project's ownership records to grant the current project ownership.", + "Your custom domain's DNS records are configured correctly. Hosting will transfer ownership of your domain to this `CustomDomain` within 24 hours.", + "Your custom domain's domain name has `TXT` records that grant its project permission to act on its behalf." + ], + "type": "string" + }, + "quickSetupUpdates": { + "$ref": "DnsUpdates", + "description": "A set of DNS record updates that allow Hosting to serve secure content on your domain name. The record type determines the update's purpose: - `A` and `AAAA`: Updates your domain name's IP addresses so that they direct traffic to Hosting servers. - `TXT`: Updates ownership permissions on your domain name, letting Hosting know that your custom domain's project has permission to perfrom actions for that domain name. - `CAA`: Updates your domain name's list of authorized Certificate Authorities (CAs). Only present if you have existing `CAA` records that prohibit Hosting's CA from minting certs for your domain name. These updates include all DNS changes you'll need to get started with Hosting, but, if made all at once, can result in a brief period of downtime for your domain name--while Hosting creates and uploads an SSL cert, for example. If you'd like to add your domain name to Hosting without downtime, complete the `liveMigrationSteps` first, before making the remaining updates in this field." + } + }, + "type": "object" + }, + "DnsRecord": { + "description": "DNS records are resource records that define how systems and services should behave when handling requests for a domain name. For example, when you add `A` records to your domain name's DNS records, you're informing other systems (such as your users' web browsers) to contact those IPv4 addresses to retrieve resources relevant to your domain name (such as your Hosting site files).", + "id": "DnsRecord", + "properties": { + "domainName": { + "description": "Output only. The domain name the record pertains to, e.g. `foo.bar.com.`.", + "readOnly": true, + "type": "string" + }, + "rdata": { + "description": "Output only. The data of the record. The meaning of the value depends on record type: - A and AAAA: IP addresses for the domain name. - CNAME: Another domain to check for records. - TXT: Arbitrary text strings associated with the domain name. Hosting uses TXT records to determine which Firebase projects have permission to act on the domain name's behalf. - CAA: The record's flags, tag, and value, e.g. `0 issue \"pki.goog\"`.", + "readOnly": true, + "type": "string" + }, + "requiredAction": { + "description": "Output only. An enum that indicates the a required action for this record.", + "enum": [ + "NONE", + "ADD", + "REMOVE" + ], + "enumDescriptions": [ + "No action necessary.", + "Add this record to your DNS records.", + "Remove this record from your DNS records." + ], + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Output only. The record's type, which determines what data the record contains.", + "enum": [ + "TYPE_UNSPECIFIED", + "A", + "CNAME", + "TXT", + "AAAA", + "CAA" + ], + "enumDescriptions": [ + "The record's type is unspecified. The message is invalid if this is unspecified.", + "An `A` record, as defined in [RFC 1035](https://tools.ietf.org/html/rfc1035). A records determine which IPv4 addresses a domain name directs traffic towards.", + "A `CNAME` record, as defined in [RFC 1035](https://tools.ietf.org/html/rfc1035). `CNAME` or Canonical Name records map a domain name to a different, canonical domain name. If a `CNAME` record is present, it should be the only record on the domain name.", + "A `TXT` record, as defined in [RFC 1035](https://tools.ietf.org/html/rfc1035). `TXT` records hold arbitrary text data on a domain name. Hosting uses `TXT` records to establish which Firebase Project has permission to act on a domain name.", + "An AAAA record, as defined in [RFC 3596](https://tools.ietf.org/html/rfc3596) AAAA records determine which IPv6 addresses a domain name directs traffic towards.", + "A CAA record, as defined in [RFC 6844](https://tools.ietf.org/html/rfc6844). CAA, or Certificate Authority Authorization, records determine which Certificate Authorities (SSL certificate minting organizations) are authorized to mint a certificate for the domain name. Firebase Hosting uses `pki.goog` as its primary CA. CAA records cascade. A CAA record on `foo.com` also applies to `bar.foo.com` unless `bar.foo.com` has its own set of CAA records. CAA records are optional. If a domain name and its parents have no CAA records, all CAs are authorized to mint certificates on its behalf. In general, Hosting only asks you to modify CAA records when doing so is required to unblock SSL cert creation." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "DnsRecordSet": { + "description": "A set of DNS records relevant to the setup and maintenance of a custom domain in Firebase Hosting.", + "id": "DnsRecordSet", + "properties": { + "checkError": { + "$ref": "Status", + "description": "Output only. An error Hosting services encountered when querying your domain name's DNS records. Note: Hosting ignores `NXDOMAIN` errors, as those generally just mean that a domain name hasn't been set up yet.", + "readOnly": true + }, + "domainName": { + "description": "Output only. The domain name the record set pertains to.", + "readOnly": true, + "type": "string" + }, + "records": { + "description": "Output only. Records on the domain.", + "items": { + "$ref": "DnsRecord" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "DnsUpdates": { + "description": "A set of DNS record updates that you should make to allow Hosting to serve secure content in response to requests against your domain name. These updates present the current state of your domain name's DNS records when Hosting last queried them, and the desired set of records that Hosting needs to see before your custom domain can be fully active.", + "id": "DnsUpdates", + "properties": { + "checkTime": { + "description": "The last time Hosting checked your custom domain's DNS records.", + "format": "google-datetime", + "type": "string" + }, + "desired": { + "description": "The set of DNS records Hosting needs to serve secure content on the domain.", + "items": { + "$ref": "DnsRecordSet" + }, + "type": "array" + }, + "discovered": { + "description": "The set of DNS records Hosting discovered when inspecting a domain.", + "items": { + "$ref": "DnsRecordSet" + }, + "type": "array" } }, "type": "object" @@ -2108,6 +3023,13 @@ "DOMAIN_VERIFICATION_REQUIRED", "DOMAIN_VERIFICATION_LOST" ], + "enumDeprecated": [ + false, + true, + false, + false, + false + ], "enumDescriptions": [ "Unspecified domain association status.", "An external operation is in progress on the domain association and no further operations can be performed until it is complete. Formerly used for metabase updates. Not currently used", @@ -2259,6 +3181,39 @@ }, "type": "object" }, + "HttpUpdate": { + "description": "A file you can add to your existing, non-Hosting hosting service that confirms your intent to allow Hosting's Certificate Authorities to create an SSL certificate for your domain.", + "id": "HttpUpdate", + "properties": { + "checkError": { + "$ref": "Status", + "description": "Output only. An error encountered during the last contents check. If null, the check completed successfully.", + "readOnly": true + }, + "desired": { + "description": "Output only. A text string to serve at the path.", + "readOnly": true, + "type": "string" + }, + "discovered": { + "description": "Output only. Whether Hosting was able to find the required file contents on the specified path during its last check.", + "readOnly": true, + "type": "string" + }, + "lastCheckTime": { + "description": "Output only. The last time Hosting systems checked for the file contents.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "path": { + "description": "Output only. The path to the file.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "I18nConfig": { "description": "If provided, i18n rewrites are enabled.", "id": "I18nConfig", @@ -2287,6 +3242,24 @@ }, "type": "object" }, + "ListCustomDomainsResponse": { + "description": "The response from `ListCustomDomains`.", + "id": "ListCustomDomainsResponse", + "properties": { + "customDomains": { + "description": "A list of `CustomDomain` entities associated with the specified Firebase `Site`.", + "items": { + "$ref": "CustomDomain" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The pagination token, if more results exist beyond the ones in this response. Include this token in your next call to `ListCustomDomains`. Page tokens are short-lived and should not be stored.", + "type": "string" + } + }, + "type": "object" + }, "ListDomainsResponse": { "description": "The response to listing Domains.", "id": "ListDomainsResponse", @@ -2305,6 +3278,24 @@ }, "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" + }, "ListReleasesResponse": { "id": "ListReleasesResponse", "properties": { @@ -2373,6 +3364,52 @@ }, "type": "object" }, + "LiveMigrationStep": { + "description": "A set of updates including ACME challenges and DNS records that allow Hosting to create an SSL certificate and establish project ownership for your domain name before you direct traffic to Hosting servers. Use these updates to facilitate zero downtime migrations to Hosting from other services. After you've made the recommended updates, check your custom domain's `ownershipState` and `certState`. To avoid downtime, they should be `OWNERSHIP_ACTIVE` and `CERT_ACTIVE`, respectively, before you update your `A` and `AAAA` records.", + "id": "LiveMigrationStep", + "properties": { + "certVerification": { + "$ref": "CertVerification", + "description": "Output only. A pair of ACME challenges that Hosting's Certificate Authority (CA) can use to create an SSL cert for your domain name. Use either the DNS or HTTP challenge; it's not necessary to provide both.", + "readOnly": true + }, + "dnsUpdates": { + "$ref": "DnsUpdates", + "description": "Output only. DNS updates to facilitate your domain's zero-downtime migration to Hosting.", + "readOnly": true + }, + "issues": { + "description": "Output only. Issues that prevent the current step from completing.", + "items": { + "$ref": "Status" + }, + "readOnly": true, + "type": "array" + }, + "state": { + "description": "Output only. The state of the live migration step, indicates whether you should work to complete the step now, in the future, or have already completed it.", + "enum": [ + "STATE_UNSPECIFIED", + "PREPARING", + "PENDING", + "INCOMPLETE", + "PROCESSING", + "COMPLETE" + ], + "enumDescriptions": [ + "The step's state is unspecified. The message is invalid if this is unspecified.", + "Hosting doesn't have enough information to construct the step yet. Complete any prior steps and/or resolve this step's issue to proceed.", + "The step's state is pending. Complete prior steps before working on a `PENDING` step.", + "The step is incomplete. You should complete any `certVerification` or `dnsUpdates` changes to complete it.", + "You've done your part to update records and present challenges as necessary. Hosting is now completing background processes to complete the step, e.g. minting an SSL cert for your domain name.", + "The step is complete. You've already made the necessary changes to your domain and/or prior hosting service to advance to the next step. Once all steps are complete, Hosting is ready to serve secure content on your domain." + ], + "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", @@ -2402,7 +3439,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" } }, @@ -2703,6 +3740,21 @@ }, "type": "object" }, + "UndeleteCustomDomainRequest": { + "description": "The request sent to `UndeleteCustomDomain`.", + "id": "UndeleteCustomDomainRequest", + "properties": { + "etag": { + "description": "A tag that represents the state of the `CustomDomain` as you know it. If present, the supplied tag must match the current value on your `CustomDomain`, or the request fails.", + "type": "string" + }, + "validateOnly": { + "description": "If true, Hosting validates that it's possible to complete your request but doesn't actually delete the `CustomDomain`.", + "type": "boolean" + } + }, + "type": "object" + }, "Version": { "description": "A `Version` is a configuration and a collection of static files which determine how a site is displayed.", "id": "Version", diff --git a/etc/api/firebaseml/v1/firebaseml-api.json b/etc/api/firebaseml/v1/firebaseml-api.json index d6624707b7..8d7cb767f1 100644 --- a/etc/api/firebaseml/v1/firebaseml-api.json +++ b/etc/api/firebaseml/v1/firebaseml-api.json @@ -161,7 +161,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/operations", "httpMethod": "GET", "id": "firebaseml.operations.list", @@ -204,7 +204,7 @@ } } }, - "revision": "20230123", + "revision": "20240221", "rootUrl": "https://firebaseml.googleapis.com/", "schemas": { "CancelOperationRequest": { @@ -290,7 +290,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/etc/api/firebaseml/v1beta2/firebaseml-api.json b/etc/api/firebaseml/v1beta2/firebaseml-api.json index 2c109aa3ea..690f740ac5 100644 --- a/etc/api/firebaseml/v1beta2/firebaseml-api.json +++ b/etc/api/firebaseml/v1beta2/firebaseml-api.json @@ -318,7 +318,7 @@ } } }, - "revision": "20230123", + "revision": "20240221", "rootUrl": "https://firebaseml.googleapis.com/", "schemas": { "DownloadModelResponse": { @@ -511,7 +511,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/etc/api/firebaserules/v1/firebaserules-api.json b/etc/api/firebaserules/v1/firebaserules-api.json index 1af0429494..af7483ee36 100644 --- a/etc/api/firebaserules/v1/firebaserules-api.json +++ b/etc/api/firebaserules/v1/firebaserules-api.json @@ -477,7 +477,7 @@ } } }, - "revision": "20221228", + "revision": "20240214", "rootUrl": "https://firebaserules.googleapis.com/", "schemas": { "Arg": { @@ -767,6 +767,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/etc/api/firebasestorage/v1beta/firebasestorage-api.json b/etc/api/firebasestorage/v1beta/firebasestorage-api.json index 18f771361d..40311bddc1 100644 --- a/etc/api/firebasestorage/v1beta/firebasestorage-api.json +++ b/etc/api/firebasestorage/v1beta/firebasestorage-api.json @@ -122,7 +122,7 @@ ], "parameters": { "bucket": { - "description": "Required. Resource name of the bucket, mirrors the ID of the underlying Google Cloud Storage bucket, `projects/{project_number}/buckets/{bucket_id}`.", + "description": "Required. Resource name of the bucket, mirrors the ID of the underlying Google Cloud Storage bucket, `projects/{project_id_or_number}/buckets/{bucket_id}`.", "location": "path", "pattern": "^projects/[^/]+/buckets/[^/]+$", "required": true, @@ -151,7 +151,7 @@ ], "parameters": { "name": { - "description": "Required. Resource name of the bucket, mirrors the ID of the underlying Google Cloud Storage bucket, `projects/{project_number}/buckets/{bucket_id}`.", + "description": "Required. Resource name of the bucket, mirrors the ID of the underlying Google Cloud Storage bucket, `projects/{project_id_or_number}/buckets/{bucket_id}`.", "location": "path", "pattern": "^projects/[^/]+/buckets/[^/]+$", "required": true, @@ -188,7 +188,7 @@ "type": "string" }, "parent": { - "description": "Required. Resource name of the parent Firebase project, `projects/{project_number}`.", + "description": "Required. Resource name of the parent Firebase project, `projects/{project_id_or_number}`.", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -214,7 +214,7 @@ ], "parameters": { "bucket": { - "description": "Required. Resource name of the bucket, mirrors the ID of the underlying Google Cloud Storage bucket, `projects/{project_number}/buckets/{bucket_id}`.", + "description": "Required. Resource name of the bucket, mirrors the ID of the underlying Google Cloud Storage bucket, `projects/{project_id_or_number}/buckets/{bucket_id}`.", "location": "path", "pattern": "^projects/[^/]+/buckets/[^/]+$", "required": true, @@ -238,7 +238,7 @@ } } }, - "revision": "20230106", + "revision": "20240301", "rootUrl": "https://firebasestorage.googleapis.com/", "schemas": { "AddFirebaseRequest": { @@ -252,7 +252,8 @@ "id": "Bucket", "properties": { "name": { - "description": "Resource name of the bucket.", + "description": "Output only. Resource name of the bucket.", + "readOnly": true, "type": "string" } }, diff --git a/etc/api/firestore/v1/firestore-api.json b/etc/api/firestore/v1/firestore-api.json index 9e17e21dd8..e4e64c71cb 100644 --- a/etc/api/firestore/v1/firestore-api.json +++ b/etc/api/firestore/v1/firestore-api.json @@ -155,32 +155,17 @@ "name" ], "parameters": { - "allowMissing": { - "description": "If set to true and the Database is not found, the request will succeed but no action will be taken.", - "location": "query", - "type": "boolean" - }, "etag": { "description": "The current etag of the Database. If an etag is provided and does not match the current etag of the database, deletion will be blocked and a FAILED_PRECONDITION error will be returned.", "location": "query", "type": "string" }, - "freeId": { - "description": "If set, will free the database_id associated with this database. uid will be used as the resource id to identify this deleted database.", - "location": "query", - "type": "boolean" - }, "name": { "description": "Required. A name of the form `projects/{project_id}/databases/{database_id}`", "location": "path", "pattern": "^projects/[^/]+/databases/[^/]+$", "required": true, "type": "string" - }, - "validateOnly": { - "description": "If set, validate the request and preview the response, but do not actually delete the database.", - "location": "query", - "type": "boolean" } }, "path": "v1/{+name}", @@ -336,9 +321,184 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/datastore" ] + }, + "restore": { + "description": "Creates a new database by restoring from an existing backup. The new database must be in the same cloud region or multi-region location as the existing backup. This behaves similar to FirestoreAdmin.CreateDatabase except instead of creating a new empty database, a new database is created with the database type, index configuration, and documents from an existing backup. The long-running operation can be used to track the progress of the restore, with the Operation's metadata field type being the RestoreDatabaseMetadata. The response type is the Database if the restore was successful. The new database is not readable or writeable until the LRO has completed.", + "flatPath": "v1/projects/{projectsId}/databases:restore", + "httpMethod": "POST", + "id": "firestore.projects.databases.restore", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The project to restore the database in. Format is `projects/{project_id}`.", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/databases:restore", + "request": { + "$ref": "GoogleFirestoreAdminV1RestoreDatabaseRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ] } }, "resources": { + "backupSchedules": { + "methods": { + "create": { + "description": "Creates a backup schedule on a database. At most two backup schedules can be configured on a database, one daily backup schedule with retention up to 7 days and one weekly backup schedule with retention up to 14 weeks.", + "flatPath": "v1/projects/{projectsId}/databases/{databasesId}/backupSchedules", + "httpMethod": "POST", + "id": "firestore.projects.databases.backupSchedules.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent database. Format `projects/{project}/databases/{database}`", + "location": "path", + "pattern": "^projects/[^/]+/databases/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/backupSchedules", + "request": { + "$ref": "GoogleFirestoreAdminV1BackupSchedule" + }, + "response": { + "$ref": "GoogleFirestoreAdminV1BackupSchedule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ] + }, + "delete": { + "description": "Deletes a backup schedule.", + "flatPath": "v1/projects/{projectsId}/databases/{databasesId}/backupSchedules/{backupSchedulesId}", + "httpMethod": "DELETE", + "id": "firestore.projects.databases.backupSchedules.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of backup schedule. Format `projects/{project}/databases/{database}/backupSchedules/{backup_schedule}`", + "location": "path", + "pattern": "^projects/[^/]+/databases/[^/]+/backupSchedules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ] + }, + "get": { + "description": "Gets information about a backup schedule.", + "flatPath": "v1/projects/{projectsId}/databases/{databasesId}/backupSchedules/{backupSchedulesId}", + "httpMethod": "GET", + "id": "firestore.projects.databases.backupSchedules.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the backup schedule. Format `projects/{project}/databases/{database}/backupSchedules/{backup_schedule}`", + "location": "path", + "pattern": "^projects/[^/]+/databases/[^/]+/backupSchedules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleFirestoreAdminV1BackupSchedule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ] + }, + "list": { + "description": "List backup schedules.", + "flatPath": "v1/projects/{projectsId}/databases/{databasesId}/backupSchedules", + "httpMethod": "GET", + "id": "firestore.projects.databases.backupSchedules.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent database. Format is `projects/{project}/databases/{database}`.", + "location": "path", + "pattern": "^projects/[^/]+/databases/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/backupSchedules", + "response": { + "$ref": "GoogleFirestoreAdminV1ListBackupSchedulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ] + }, + "patch": { + "description": "Updates a backup schedule.", + "flatPath": "v1/projects/{projectsId}/databases/{databasesId}/backupSchedules/{backupSchedulesId}", + "httpMethod": "PATCH", + "id": "firestore.projects.databases.backupSchedules.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The unique backup schedule identifier across all locations and databases for the given project. This will be auto-assigned. Format is `projects/{project}/databases/{database}/backupSchedules/{backup_schedule}`", + "location": "path", + "pattern": "^projects/[^/]+/databases/[^/]+/backupSchedules/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleFirestoreAdminV1BackupSchedule" + }, + "response": { + "$ref": "GoogleFirestoreAdminV1BackupSchedule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ] + } + } + }, "collectionGroups": { "resources": { "fields": { @@ -370,7 +530,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` .", + "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", @@ -802,7 +962,7 @@ "type": "string" }, "readTime": { - "description": "Reads the version of the document at the given time. This may not be older than 270 seconds.", + "description": "Reads the version of the document at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "location": "query", "type": "string" @@ -869,7 +1029,7 @@ "type": "string" }, "readTime": { - "description": "Perform the read at the provided time. This may not be older than 270 seconds.", + "description": "Perform the read at the provided time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "location": "query", "type": "string" @@ -970,7 +1130,7 @@ "type": "string" }, "readTime": { - "description": "Perform the read at the provided time. This may not be older than 270 seconds.", + "description": "Perform the read at the provided time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "location": "query", "type": "string" @@ -997,7 +1157,7 @@ ] }, "listen": { - "description": "Listens to changes.", + "description": "Listens to changes. This method is only available via gRPC or WebChannel (not REST).", "flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents:listen", "httpMethod": "POST", "id": "firestore.projects.databases.documents.listen", @@ -1194,7 +1354,7 @@ ] }, "write": { - "description": "Streams batches of document updates and deletes, in order.", + "description": "Streams batches of document updates and deletes, in order. This method is only available via gRPC or WebChannel (not REST).", "flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents:write", "httpMethod": "POST", "id": "firestore.projects.databases.documents.write", @@ -1308,7 +1468,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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}/databases/{databasesId}/operations", "httpMethod": "GET", "id": "firestore.projects.databases.operations.list", @@ -1423,25 +1583,117 @@ "https://www.googleapis.com/auth/datastore" ] } + }, + "resources": { + "backups": { + "methods": { + "delete": { + "description": "Deletes a backup.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backups/{backupsId}", + "httpMethod": "DELETE", + "id": "firestore.projects.locations.backups.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the backup to delete. format is `projects/{project}/locations/{location}/backups/{backup}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/backups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ] + }, + "get": { + "description": "Gets information about a backup.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backups/{backupsId}", + "httpMethod": "GET", + "id": "firestore.projects.locations.backups.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the backup to fetch. Format is `projects/{project}/locations/{location}/backups/{backup}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/backups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleFirestoreAdminV1Backup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ] + }, + "list": { + "description": "Lists all the backups.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backups", + "httpMethod": "GET", + "id": "firestore.projects.locations.backups.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The location to list backups from. Format is `projects/{project}/locations/{location}`. Use `{location} = '-'` to list backups from all locations for the given project. This allows listing backups from a single location or from all locations.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/backups", + "response": { + "$ref": "GoogleFirestoreAdminV1ListBackupsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ] + } + } + } } } } } }, - "revision": "20230118", + "revision": "20240226", "rootUrl": "https://firestore.googleapis.com/", "schemas": { "Aggregation": { - "description": "Defines a aggregation that produces a single result.", + "description": "Defines an aggregation that produces a single result.", "id": "Aggregation", "properties": { "alias": { - "description": "Optional. Optional name of the field to store the result of the aggregation into. If not provided, Firestore will pick a default name following the format `field_`. For example: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2), COUNT_UP_TO(3) AS count_up_to_3, COUNT_UP_TO(4) OVER ( ... ); ``` becomes: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2) AS field_1, COUNT_UP_TO(3) AS count_up_to_3, COUNT_UP_TO(4) AS field_2 OVER ( ... ); ``` Requires: * Must be unique across all aggregation aliases. * Conform to document field name limitations.", + "description": "Optional. Optional name of the field to store the result of the aggregation into. If not provided, Firestore will pick a default name following the format `field_`. For example: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2), COUNT_UP_TO(3) AS count_up_to_3, COUNT(*) OVER ( ... ); ``` becomes: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2) AS field_1, COUNT_UP_TO(3) AS count_up_to_3, COUNT(*) AS field_2 OVER ( ... ); ``` Requires: * Must be unique across all aggregation aliases. * Conform to document field name limitations.", "type": "string" }, + "avg": { + "$ref": "Avg", + "description": "Average aggregator." + }, "count": { "$ref": "Count", "description": "Count aggregator." + }, + "sum": { + "$ref": "Sum", + "description": "Sum aggregator." } }, "type": "object" @@ -1474,6 +1726,17 @@ }, "type": "object" }, + "Avg": { + "description": "Average of the values of the requested field. * Only numeric values will be aggregated. All non-numeric values including `NULL` are skipped. * If the aggregated values contain `NaN`, returns `NaN`. Infinity math follows IEEE-754 standards. * If the aggregated value set is empty, returns `NULL`. * Always returns the result as a double.", + "id": "Avg", + "properties": { + "field": { + "$ref": "FieldReference", + "description": "The field to aggregate on." + } + }, + "type": "object" + }, "BatchGetDocumentsRequest": { "description": "The request for Firestore.BatchGetDocuments.", "id": "BatchGetDocumentsRequest", @@ -1494,7 +1757,7 @@ "description": "Starts a new transaction and reads the documents. Defaults to a read-only transaction. The new transaction ID will be returned as the first response in the stream." }, "readTime": { - "description": "Reads documents as they were at the given time. This may not be older than 270 seconds.", + "description": "Reads documents as they were at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "type": "string" }, @@ -1596,6 +1859,39 @@ }, "type": "object" }, + "BitSequence": { + "description": "A sequence of bits, encoded in a byte array. Each byte in the `bitmap` byte array stores 8 bits of the sequence. The only exception is the last byte, which may store 8 _or fewer_ bits. The `padding` defines the number of bits of the last byte to be ignored as \"padding\". The values of these \"padding\" bits are unspecified and must be ignored. To retrieve the first bit, bit 0, calculate: `(bitmap[0] & 0x01) != 0`. To retrieve the second bit, bit 1, calculate: `(bitmap[0] & 0x02) != 0`. To retrieve the third bit, bit 2, calculate: `(bitmap[0] & 0x04) != 0`. To retrieve the fourth bit, bit 3, calculate: `(bitmap[0] & 0x08) != 0`. To retrieve bit n, calculate: `(bitmap[n / 8] & (0x01 << (n % 8))) != 0`. The \"size\" of a `BitSequence` (the number of bits it contains) is calculated by this formula: `(bitmap.length * 8) - padding`.", + "id": "BitSequence", + "properties": { + "bitmap": { + "description": "The bytes that encode the bit sequence. May have a length of zero.", + "format": "byte", + "type": "string" + }, + "padding": { + "description": "The number of bits of the last byte in `bitmap` to ignore as \"padding\". If the length of `bitmap` is zero, then this value must be `0`. Otherwise, this value must be between 0 and 7, inclusive.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "BloomFilter": { + "description": "A bloom filter (https://en.wikipedia.org/wiki/Bloom_filter). The bloom filter hashes the entries with MD5 and treats the resulting 128-bit hash as 2 distinct 64-bit hash values, interpreted as unsigned integers using 2's complement encoding. These two hash values, named `h1` and `h2`, are then used to compute the `hash_count` hash values using the formula, starting at `i=0`: h(i) = h1 + (i * h2) These resulting values are then taken modulo the number of bits in the bloom filter to get the bits of the bloom filter to test for the given entry.", + "id": "BloomFilter", + "properties": { + "bits": { + "$ref": "BitSequence", + "description": "The bloom filter data." + }, + "hashCount": { + "description": "The number of hashes used by the algorithm.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "CollectionSelector": { "description": "A selection of a collection, such as `messages as m1`.", "id": "CollectionSelector", @@ -1664,11 +1960,13 @@ "description": "The operator for combining multiple filters.", "enum": [ "OPERATOR_UNSPECIFIED", - "AND" + "AND", + "OR" ], "enumDescriptions": [ "Unspecified. This value must not be used.", - "Documents are required to satisfy all of the combined filters." + "Documents are required to satisfy all of the combined filters.", + "Documents are required to satisfy at least one of the combined filters." ], "type": "string" } @@ -1680,7 +1978,7 @@ "id": "Count", "properties": { "upTo": { - "description": "Optional. Optional constraint on the maximum number of documents to count. This provides a way to set an upper bound on the number of documents to scan, limiting latency and cost. Unspecified is interpreted as no bound. High-Level Example: ``` AGGREGATE COUNT_UP_TO(1000) OVER ( SELECT * FROM k ); ``` Requires: * Must be greater than zero when present.", + "description": "Optional. Optional constraint on the maximum number of documents to count. This provides a way to set an upper bound on the number of documents to scan, limiting latency, and cost. Unspecified is interpreted as no bound. High-Level Example: ``` AGGREGATE COUNT_UP_TO(1000) OVER ( SELECT * FROM k ); ``` Requires: * Must be greater than zero when present.", "format": "int64", "type": "string" } @@ -1718,7 +2016,7 @@ "additionalProperties": { "$ref": "Value" }, - "description": "The document's fields. The map keys represent field names. 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`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, 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 the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `\"foo\" : { map_value: { \"x&y\" : { string_value: \"hello\" }}}` would be represented by the field path `foo.x&y`. Within a field path, 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 ``.", + "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": { @@ -1865,7 +2163,7 @@ "id": "ExistenceFilter", "properties": { "count": { - "description": "The total count of documents that match target_id. If different from the count of documents in the client that match, the client must manually determine which documents no longer match the target.", + "description": "The total count of documents that match target_id. If different from the count of documents in the client that match, the client must manually determine which documents no longer match the target. The client can use the `unchanged_names` bloom filter to assist with this determination by testing ALL the document names against the filter; if the document name is NOT in the filter, it means the document no longer matches the target.", "format": "int32", "type": "integer" }, @@ -1873,6 +2171,10 @@ "description": "The target ID to which this filter applies.", "format": "int32", "type": "integer" + }, + "unchangedNames": { + "$ref": "BloomFilter", + "description": "A bloom filter that, despite its name, contains the UTF-8 byte encodings of the resource names of ALL the documents that match target_id, in the form `projects/{project_id}/databases/{database_id}/documents/{document_path}`. This bloom filter may be omitted at the server's discretion, such as if it is deemed that the client will not make use of it or if it is too computationally expensive to calculate or transmit. Clients must gracefully handle this field being absent by falling back to the logic used before this field existed; that is, re-add the target without a resume token to figure out which documents in the client's cache are out of sync." } }, "type": "object" @@ -1909,9 +2211,9 @@ "The given `field` is equal to the given `value`.", "The given `field` is not equal to the given `value`. Requires: * No other `NOT_EQUAL`, `NOT_IN`, `IS_NOT_NULL`, or `IS_NOT_NAN`. * That `field` comes first in the `order_by`.", "The given `field` is an array that contains the given `value`.", - "The given `field` is equal to at least one value in the given array. Requires: * That `value` is a non-empty `ArrayValue` with at most 10 values. * No other `IN` or `ARRAY_CONTAINS_ANY` or `NOT_IN`.", - "The given `field` is an array that contains any of the values in the given array. Requires: * That `value` is a non-empty `ArrayValue` with at most 10 values. * No other `IN` or `ARRAY_CONTAINS_ANY` or `NOT_IN`.", - "The value of the `field` is not in the given array. Requires: * That `value` is a non-empty `ArrayValue` with at most 10 values. * No other `IN`, `ARRAY_CONTAINS_ANY`, `NOT_IN`, `NOT_EQUAL`, `IS_NOT_NULL`, or `IS_NOT_NAN`. * That `field` comes first in the `order_by`." + "The given `field` is equal to at least one value in the given array. Requires: * That `value` is a non-empty `ArrayValue`, subject to disjunction limits. * No `NOT_IN` filters in the same query.", + "The given `field` is an array that contains any of the values in the given array. Requires: * That `value` is a non-empty `ArrayValue`, subject to disjunction limits. * No other `ARRAY_CONTAINS_ANY` filters within the same disjunction. * No `NOT_IN` filters in the same query.", + "The value of the `field` is not in the given array. Requires: * That `value` is a non-empty `ArrayValue` with at most 10 values. * No other `OR`, `IN`, `ARRAY_CONTAINS_ANY`, `NOT_IN`, `NOT_EQUAL`, `IS_NOT_NULL`, or `IS_NOT_NAN`. * That `field` comes first in the `order_by`." ], "type": "string" }, @@ -1927,7 +2229,7 @@ "id": "FieldReference", "properties": { "fieldPath": { - "description": "The relative path of the document being referenced. Requires: * Conform to document field name limitations.", + "description": "A reference to a field in a document. Requires: * MUST be a dot-delimited (`.`) string of segments, where each segment conforms to document field name limitations.", "type": "string" } }, @@ -1995,8 +2297,113 @@ }, "type": "object" }, + "GoogleFirestoreAdminV1Backup": { + "description": "A Backup of a Cloud Firestore Database. The backup contains all documents and index configurations for the given database at a specific point in time.", + "id": "GoogleFirestoreAdminV1Backup", + "properties": { + "database": { + "description": "Output only. Name of the Firestore database that the backup is from. Format is `projects/{project}/databases/{database}`.", + "readOnly": true, + "type": "string" + }, + "databaseUid": { + "description": "Output only. The system-generated UUID4 for the Firestore database that the backup is from.", + "readOnly": true, + "type": "string" + }, + "expireTime": { + "description": "Output only. The timestamp at which this backup expires.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. The unique resource name of the Backup. Format is `projects/{project}/locations/{location}/backups/{backup}`.", + "readOnly": true, + "type": "string" + }, + "snapshotTime": { + "description": "Output only. The backup contains an externally consistent copy of the database at this time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The current state of the backup.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "READY", + "NOT_AVAILABLE" + ], + "enumDescriptions": [ + "The state is unspecified.", + "The pending backup is still being created. Operations on the backup will be rejected in this state.", + "The backup is complete and ready to use.", + "The backup is not available at this moment." + ], + "readOnly": true, + "type": "string" + }, + "stats": { + "$ref": "GoogleFirestoreAdminV1Stats", + "description": "Output only. Statistics about the backup. This data only becomes available after the backup is fully materialized to secondary storage. This field will be empty till then.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleFirestoreAdminV1BackupSchedule": { + "description": "A backup schedule for a Cloud Firestore Database. This resource is owned by the database it is backing up, and is deleted along with the database. The actual backups are not though.", + "id": "GoogleFirestoreAdminV1BackupSchedule", + "properties": { + "createTime": { + "description": "Output only. The timestamp at which this backup schedule was created and effective since. No backups will be created for this schedule before this time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "dailyRecurrence": { + "$ref": "GoogleFirestoreAdminV1DailyRecurrence", + "description": "For a schedule that runs daily at a specified time." + }, + "name": { + "description": "Output only. The unique backup schedule identifier across all locations and databases for the given project. This will be auto-assigned. Format is `projects/{project}/databases/{database}/backupSchedules/{backup_schedule}`", + "readOnly": true, + "type": "string" + }, + "retention": { + "description": "At what relative time in the future, compared to its creation time, the backup should be deleted, e.g. keep backups for 7 days.", + "format": "google-duration", + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp at which this backup schedule was most recently updated. When a backup schedule is first created, this is the same as create_time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "weeklyRecurrence": { + "$ref": "GoogleFirestoreAdminV1WeeklyRecurrence", + "description": "For a schedule that runs weekly on a specific day and time." + } + }, + "type": "object" + }, + "GoogleFirestoreAdminV1CreateDatabaseMetadata": { + "description": "Metadata related to the create database operation.", + "id": "GoogleFirestoreAdminV1CreateDatabaseMetadata", + "properties": {}, + "type": "object" + }, + "GoogleFirestoreAdminV1DailyRecurrence": { + "description": "Represent a recurring schedule that runs at a specific time every day. The time zone is UTC.", + "id": "GoogleFirestoreAdminV1DailyRecurrence", + "properties": {}, + "type": "object" + }, "GoogleFirestoreAdminV1Database": { - "description": "A Cloud Firestore Database. Currently only one database is allowed per cloud project; this database must have a `database_id` of '(default)'.", + "description": "A Cloud Firestore Database.", "id": "GoogleFirestoreAdminV1Database", "properties": { "appEngineIntegrationMode": { @@ -2009,7 +2416,7 @@ "enumDescriptions": [ "Not used.", "If an App Engine application exists in the same region as this database, App Engine configuration will impact this database. This includes disabling of the application & database, as well as disabling writes to the database.", - "Appengine has no affect on the ability of this database to serve requests." + "App Engine has no effect on the ability of this database to serve requests. This is the default setting for databases created with the Firestore API." ], "type": "string" }, @@ -2029,6 +2436,32 @@ ], "type": "string" }, + "createTime": { + "description": "Output only. The timestamp at which this database was created. Databases created before 2016 do not populate create_time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deleteProtectionState": { + "description": "State of delete protection for the database.", + "enum": [ + "DELETE_PROTECTION_STATE_UNSPECIFIED", + "DELETE_PROTECTION_DISABLED", + "DELETE_PROTECTION_ENABLED" + ], + "enumDescriptions": [ + "The default value. Delete protection type is not specified", + "Delete protection is disabled", + "Delete protection is enabled" + ], + "type": "string" + }, + "earliestVersionTime": { + "description": "Output only. The earliest timestamp at which older versions of the data can be read from the database. See [version_retention_period] above; this field is populated with `now - version_retention_period`. This value is continuously updated, and becomes stale the moment it is queried. If you are using this value to recover data, make sure to account for the time from the moment when the value is queried to the moment when you initiate the recovery.", + "format": "google-datetime", + "readOnly": true, + "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.", "type": "string" @@ -2039,13 +2472,27 @@ "type": "string" }, "locationId": { - "description": "The location of the database. Available databases are listed at https://cloud.google.com/firestore/docs/locations.", + "description": "The location of the database. Available locations are listed at https://cloud.google.com/firestore/docs/locations.", "type": "string" }, "name": { "description": "The resource name of the Database. Format: `projects/{project}/databases/{database}`", "type": "string" }, + "pointInTimeRecoveryEnablement": { + "description": "Whether to enable the PITR feature on this database.", + "enum": [ + "POINT_IN_TIME_RECOVERY_ENABLEMENT_UNSPECIFIED", + "POINT_IN_TIME_RECOVERY_ENABLED", + "POINT_IN_TIME_RECOVERY_DISABLED" + ], + "enumDescriptions": [ + "Not used.", + "Reads are supported on selected versions of the data from within the past 7 days: * Reads against any timestamp within the past hour * Reads against 1-minute snapshots beyond 1 hour and within 7 days `version_retention_period` and `earliest_version_time` can be used to determine the supported versions.", + "Reads are supported on any version of the data from within the past 1 hour." + ], + "type": "string" + }, "type": { "description": "The type of the database. See https://cloud.google.com/datastore/docs/firestore-or-datastore for information about how to choose.", "enum": [ @@ -2059,10 +2506,49 @@ "Firestore in Datastore Mode." ], "type": "string" + }, + "uid": { + "description": "Output only. The system-generated UUID4 for this Database.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp at which this database was most recently updated. Note this only includes updates to the database resource and not data contained by the database.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "versionRetentionPeriod": { + "description": "Output only. The period during which past versions of data are retained in the database. Any read or query can specify a `read_time` within this window, and will read the state of the database at that time. If the PITR feature is enabled, the retention period is 7 days. Otherwise, the retention period is 1 hour.", + "format": "google-duration", + "readOnly": true, + "type": "string" } }, "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", + "properties": {}, + "type": "object" + }, "GoogleFirestoreAdminV1ExportDocumentsMetadata": { "description": "Metadata for google.longrunning.Operation results from FirestoreAdmin.ExportDocuments.", "id": "GoogleFirestoreAdminV1ExportDocumentsMetadata", @@ -2122,6 +2608,11 @@ "$ref": "GoogleFirestoreAdminV1Progress", "description": "The progress, in documents, of this operation." }, + "snapshotTime": { + "description": "The timestamp that corresponds to the version of the database that is being exported. If unspecified, there are no guarantees about the consistency of the documents being exported.", + "format": "google-datetime", + "type": "string" + }, "startTime": { "description": "The time this operation started.", "format": "google-datetime", @@ -2151,6 +2642,11 @@ "outputUriPrefix": { "description": "The output URI. Currently only supports Google Cloud Storage URIs of the form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the name of the Google Cloud Storage bucket and `NAMESPACE_PATH` is an optional Google Cloud Storage namespace path. When choosing a name, be sure to consider Google Cloud Storage naming guidelines: https://cloud.google.com/storage/docs/naming. If the URI is a bucket (without a namespace path), a prefix will be generated based on the start time.", "type": "string" + }, + "snapshotTime": { + "description": "The timestamp that corresponds to the version of the database to be exported. The timestamp must be in the past, rounded to the minute and not older than earliestVersionTime. If specified, then the exported documents will represent a consistent view of the database at the provided time. Otherwise, there are no guarantees about the consistency of the exported documents.", + "format": "google-datetime", + "type": "string" } }, "type": "object" @@ -2249,6 +2745,12 @@ }, "type": "object" }, + "GoogleFirestoreAdminV1FlatIndex": { + "description": "An index that stores vectors in a flat data structure, and supports exhaustive search.", + "id": "GoogleFirestoreAdminV1FlatIndex", + "properties": {}, + "type": "object" + }, "GoogleFirestoreAdminV1ImportDocumentsMetadata": { "description": "Metadata for google.longrunning.Operation results from FirestoreAdmin.ImportDocuments.", "id": "GoogleFirestoreAdminV1ImportDocumentsMetadata", @@ -2352,7 +2854,7 @@ "DATASTORE_MODE_API" ], "enumDescriptions": [ - "The index can be used by both Firestore Native and Firestore in Datastore Mode query API. This is the default.", + "The index can only be used by the Firestore Native query API. This is the default.", "The index can only be used by the Firestore in Datastore Mode query API." ], "type": "string" @@ -2487,6 +2989,10 @@ "The field is ordered by descending field value." ], "type": "string" + }, + "vectorConfig": { + "$ref": "GoogleFirestoreAdminV1VectorConfig", + "description": "Indicates that this field supports nearest neighbors and distance operations on vector." } }, "type": "object" @@ -2544,6 +3050,41 @@ }, "type": "object" }, + "GoogleFirestoreAdminV1ListBackupSchedulesResponse": { + "description": "The response for FirestoreAdmin.ListBackupSchedules.", + "id": "GoogleFirestoreAdminV1ListBackupSchedulesResponse", + "properties": { + "backupSchedules": { + "description": "List of all backup schedules.", + "items": { + "$ref": "GoogleFirestoreAdminV1BackupSchedule" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleFirestoreAdminV1ListBackupsResponse": { + "description": "The response for FirestoreAdmin.ListBackups.", + "id": "GoogleFirestoreAdminV1ListBackupsResponse", + "properties": { + "backups": { + "description": "List of all backups for the project. Ordered by `location ASC, create_time DESC, name ASC`.", + "items": { + "$ref": "GoogleFirestoreAdminV1Backup" + }, + "type": "array" + }, + "unreachable": { + "description": "List of locations that existing backups were not able to be fetched from. Instead of failing the entire requests when a single location is unreachable, this response returns a partial result set and list of locations unable to be reached here. The request can be retried against a single location to get a concrete error.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleFirestoreAdminV1ListDatabasesResponse": { "description": "The list of databases for a project.", "id": "GoogleFirestoreAdminV1ListDatabasesResponse", @@ -2554,6 +3095,13 @@ "$ref": "GoogleFirestoreAdminV1Database" }, "type": "array" + }, + "unreachable": { + "description": "In the event that data about individual databases cannot be listed they will be recorded here. An example entry might be: projects/some_project/locations/some_location This can happen if the Cloud Region that the Database resides in is currently unavailable. In this case we can't fetch all the details about the database. You may be able to get a more detailed error message (or possibly fetch the resource) by sending a 'Get' request for the resource or a 'List' request for the specific location.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -2617,6 +3165,103 @@ }, "type": "object" }, + "GoogleFirestoreAdminV1RestoreDatabaseMetadata": { + "description": "Metadata for the long-running operation from the RestoreDatabase request.", + "id": "GoogleFirestoreAdminV1RestoreDatabaseMetadata", + "properties": { + "backup": { + "description": "The name of the backup restoring from.", + "type": "string" + }, + "database": { + "description": "The name of the database being restored to.", + "type": "string" + }, + "endTime": { + "description": "The time the restore finished, unset for ongoing restores.", + "format": "google-datetime", + "type": "string" + }, + "operationState": { + "description": "The operation state of the restore.", + "enum": [ + "OPERATION_STATE_UNSPECIFIED", + "INITIALIZING", + "PROCESSING", + "CANCELLING", + "FINALIZING", + "SUCCESSFUL", + "FAILED", + "CANCELLED" + ], + "enumDescriptions": [ + "Unspecified.", + "Request is being prepared for processing.", + "Request is actively being processed.", + "Request is in the process of being cancelled after user called google.longrunning.Operations.CancelOperation on the operation.", + "Request has been processed and is in its finalization stage.", + "Request has completed successfully.", + "Request has finished being processed, but encountered an error.", + "Request has finished being cancelled after user called google.longrunning.Operations.CancelOperation." + ], + "type": "string" + }, + "progressPercentage": { + "$ref": "GoogleFirestoreAdminV1Progress", + "description": "How far along the restore is as an estimated percentage of remaining time." + }, + "startTime": { + "description": "The time the restore was started.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleFirestoreAdminV1RestoreDatabaseRequest": { + "description": "The request message for FirestoreAdmin.RestoreDatabase.", + "id": "GoogleFirestoreAdminV1RestoreDatabaseRequest", + "properties": { + "backup": { + "description": "Backup to restore from. Must be from the same project as the parent. Format is: `projects/{project_id}/locations/{location}/backups/{backup}`", + "type": "string" + }, + "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" + }, + "GoogleFirestoreAdminV1Stats": { + "description": "Backup specific statistics.", + "id": "GoogleFirestoreAdminV1Stats", + "properties": { + "documentCount": { + "description": "Output only. The total number of documents contained in the backup.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "indexCount": { + "description": "Output only. The total number of index entries contained in the backup.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "sizeBytes": { + "description": "Output only. Summation of the size of all documents and index entries in the backup, measured in bytes.", + "format": "int64", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleFirestoreAdminV1TtlConfig": { "description": "The TTL (time-to-live) configuration for documents that have this `Field` set. Storing a timestamp value into a TTL-enabled field will be treated as the document's absolute expiration time. Timestamp values in the past indicate that the document is eligible for immediate expiration. Using any other data type or leaving the field absent will disable expiration for the individual document.", "id": "GoogleFirestoreAdminV1TtlConfig", @@ -2642,7 +3287,7 @@ "type": "object" }, "GoogleFirestoreAdminV1TtlConfigDelta": { - "description": "Information about an TTL configuration change.", + "description": "Information about a TTL configuration change.", "id": "GoogleFirestoreAdminV1TtlConfigDelta", "properties": { "changeType": { @@ -2668,6 +3313,53 @@ "properties": {}, "type": "object" }, + "GoogleFirestoreAdminV1VectorConfig": { + "description": "The index configuration to support vector search operations", + "id": "GoogleFirestoreAdminV1VectorConfig", + "properties": { + "dimension": { + "description": "Required. The vector dimension this configuration applies to. The resulting index will only include vectors of this dimension, and can be used for vector search with the same dimension.", + "format": "int32", + "type": "integer" + }, + "flat": { + "$ref": "GoogleFirestoreAdminV1FlatIndex", + "description": "Indicates the vector index is a flat index." + } + }, + "type": "object" + }, + "GoogleFirestoreAdminV1WeeklyRecurrence": { + "description": "Represents a recurring schedule that runs on a specified day of the week. The time zone is UTC.", + "id": "GoogleFirestoreAdminV1WeeklyRecurrence", + "properties": { + "day": { + "description": "The day of week to run. DAY_OF_WEEK_UNSPECIFIED is not allowed.", + "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" + } + }, + "type": "object" + }, "GoogleLongrunningCancelOperationRequest": { "description": "The request message for Operations.CancelOperation.", "id": "GoogleLongrunningCancelOperationRequest", @@ -2721,7 +3413,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" } }, @@ -2758,7 +3450,7 @@ "type": "string" }, "readTime": { - "description": "Reads documents as they were at the given time. This may not be older than 270 seconds.", + "description": "Reads documents as they were at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "type": "string" } @@ -2870,7 +3562,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -2961,7 +3653,7 @@ "type": "string" }, "readTime": { - "description": "Reads documents as they were at the given time. This may not be older than 270 seconds.", + "description": "Reads documents as they were at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "type": "string" }, @@ -2981,7 +3673,7 @@ "type": "string" }, "partitions": { - "description": "Partition results. Each partition is a split point that can be used by RunQuery as a starting or end point for the query results. The RunQuery requests must be made with the same query supplied to this PartitionQuery request. The partition cursors will be ordered according to same ordering as the results of the query supplied to PartitionQuery. For example, if a PartitionQuery request returns partition cursors A and B, running the following three queries will return the entire result set of the original query: * query, end_at A * query, start_at A, end_at B * query, start_at B An empty result may indicate that the query has too few results to be partitioned.", + "description": "Partition results. Each partition is a split point that can be used by RunQuery as a starting or end point for the query results. The RunQuery requests must be made with the same query supplied to this PartitionQuery request. The partition cursors will be ordered according to same ordering as the results of the query supplied to PartitionQuery. For example, if a PartitionQuery request returns partition cursors A and B, running the following three queries will return the entire result set of the original query: * query, end_at A * query, start_at A, end_at B * query, start_at B An empty result may indicate that the query has too few results to be partitioned, or that the query is not yet supported for partitioning.", "items": { "$ref": "Cursor" }, @@ -3040,7 +3732,7 @@ "id": "ReadOnly", "properties": { "readTime": { - "description": "Reads documents at the given time. This may not be older than 60 seconds.", + "description": "Reads documents at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "type": "string" } @@ -3048,7 +3740,7 @@ "type": "object" }, "ReadWrite": { - "description": "Options for a transaction that can be used to read and write documents.", + "description": "Options for a transaction that can be used to read and write documents. Firestore does not allow 3rd party auth requests to create read-write. transactions.", "id": "ReadWrite", "properties": { "retryTransaction": { @@ -3080,7 +3772,7 @@ "description": "Starts a new transaction as part of the query, defaulting to read-only. The new transaction ID will be returned as the first response in the stream." }, "readTime": { - "description": "Executes the query at the given timestamp. Requires: * Cannot be more than 270 seconds in the past.", + "description": "Executes the query at the given timestamp. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "type": "string" }, @@ -3101,7 +3793,7 @@ "id": "RunAggregationQueryResponse", "properties": { "readTime": { - "description": "The time at which the aggregate value is valid for.", + "description": "The time at which the aggregate result was computed. This is always monotonically increasing; in this case, the previous AggregationResult in the result stream are guaranteed not to have changed between their `read_time` and this one. If the query returns no results, a response with `read_time` and no `result` will be sent, and this represents the time at which the query was run.", "format": "google-datetime", "type": "string" }, @@ -3126,7 +3818,7 @@ "description": "Starts a new transaction and reads the documents. Defaults to a read-only transaction. The new transaction ID will be returned as the first response in the stream." }, "readTime": { - "description": "Reads documents as they were at the given time. This may not be older than 270 seconds.", + "description": "Reads documents as they were at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "type": "string" }, @@ -3218,7 +3910,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": { @@ -3251,7 +3943,7 @@ }, "select": { "$ref": "Projection", - "description": "The projection to return." + "description": "Optional sub-set of the fields to return. This acts as a DocumentMask over the documents returned from a query. When not set, assumes that the caller wants all fields returned." }, "startAt": { "$ref": "Cursor", @@ -3264,6 +3956,17 @@ }, "type": "object" }, + "Sum": { + "description": "Sum of the values of the requested field. * Only numeric values will be aggregated. All non-numeric values including `NULL` are skipped. * If the aggregated values contain `NaN`, returns `NaN`. Infinity math follows IEEE-754 standards. * If the aggregated value set is empty, returns 0. * Returns a 64-bit integer if all aggregated numbers are integers and the sum result does not overflow. Otherwise, the result is returned as a double. Note that even if all the aggregated values are integers, the result is returned as a double if it cannot fit within a 64-bit signed integer. When this occurs, the returned value will lose precision. * When underflow occurs, floating-point aggregation is non-deterministic. This means that running the same query repeatedly without any changes to the underlying values could produce slightly different results each time. In those cases, values should be stored as integers over floating-point numbers.", + "id": "Sum", + "properties": { + "field": { + "$ref": "FieldReference", + "description": "The field to aggregate on." + } + }, + "type": "object" + }, "Target": { "description": "A specification of a set of documents to listen to.", "id": "Target", @@ -3272,6 +3975,11 @@ "$ref": "DocumentsTarget", "description": "A target specified by a set of document names." }, + "expectedCount": { + "description": "The number of documents that last matched the query at the resume token or read time. This value is only relevant when a `resume_type` is provided. This value being present and greater than zero signals that the client wants `ExistenceFilter.unchanged_names` to be included in the response.", + "format": "int32", + "type": "integer" + }, "once": { "description": "If the target should be removed once it is current and consistent.", "type": "boolean" @@ -3291,7 +3999,7 @@ "type": "string" }, "targetId": { - "description": "The target ID that identifies the target on the stream. Must be a positive number and non-zero.", + "description": "The target ID that identifies the target on the stream. Must be a positive number and non-zero. If `target_id` is 0 (or unspecified), the server will assign an ID for this target and return that in a `TargetChange::ADD` event. Once a target with `target_id=0` is added, all subsequent targets must also have `target_id=0`. If an `AddTarget` request with `target_id != 0` is sent to the server after a target with `target_id=0` is added, the server will immediately send a response with a `TargetChange::Remove` event. Note that if the client sends multiple `AddTarget` requests without an ID, the order of IDs returned in `TargetChage.target_ids` are undefined. Therefore, clients should provide a target ID instead of relying on the server to assign one. If `target_id` is non-zero, there must not be an existing active target on this stream with the same ID.", "format": "int32", "type": "integer" } diff --git a/etc/api/firestore/v1beta1/firestore-api.json b/etc/api/firestore/v1beta1/firestore-api.json index 12a3393f69..4d1248f0ee 100644 --- a/etc/api/firestore/v1beta1/firestore-api.json +++ b/etc/api/firestore/v1beta1/firestore-api.json @@ -397,7 +397,7 @@ "type": "string" }, "readTime": { - "description": "Reads the version of the document at the given time. This may not be older than 270 seconds.", + "description": "Reads the version of the document at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "location": "query", "type": "string" @@ -464,7 +464,7 @@ "type": "string" }, "readTime": { - "description": "Perform the read at the provided time. This may not be older than 270 seconds.", + "description": "Perform the read at the provided time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "location": "query", "type": "string" @@ -565,7 +565,7 @@ "type": "string" }, "readTime": { - "description": "Perform the read at the provided time. This may not be older than 270 seconds.", + "description": "Perform the read at the provided time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "location": "query", "type": "string" @@ -592,7 +592,7 @@ ] }, "listen": { - "description": "Listens to changes.", + "description": "Listens to changes. This method is only available via gRPC or WebChannel (not REST).", "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:listen", "httpMethod": "POST", "id": "firestore.projects.databases.documents.listen", @@ -789,7 +789,7 @@ ] }, "write": { - "description": "Streams batches of document updates and deletes, in order.", + "description": "Streams batches of document updates and deletes, in order. This method is only available via gRPC or WebChannel (not REST).", "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:write", "httpMethod": "POST", "id": "firestore.projects.databases.documents.write", @@ -950,20 +950,28 @@ } } }, - "revision": "20230118", + "revision": "20240226", "rootUrl": "https://firestore.googleapis.com/", "schemas": { "Aggregation": { - "description": "Defines a aggregation that produces a single result.", + "description": "Defines an aggregation that produces a single result.", "id": "Aggregation", "properties": { "alias": { - "description": "Optional. Optional name of the field to store the result of the aggregation into. If not provided, Firestore will pick a default name following the format `field_`. For example: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2), COUNT_UP_TO(3) AS count_up_to_3, COUNT_UP_TO(4) OVER ( ... ); ``` becomes: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2) AS field_1, COUNT_UP_TO(3) AS count_up_to_3, COUNT_UP_TO(4) AS field_2 OVER ( ... ); ``` Requires: * Must be unique across all aggregation aliases. * Conform to document field name limitations.", + "description": "Optional. Optional name of the field to store the result of the aggregation into. If not provided, Firestore will pick a default name following the format `field_`. For example: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2), COUNT_UP_TO(3) AS count_up_to_3, COUNT(*) OVER ( ... ); ``` becomes: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2) AS field_1, COUNT_UP_TO(3) AS count_up_to_3, COUNT(*) AS field_2 OVER ( ... ); ``` Requires: * Must be unique across all aggregation aliases. * Conform to document field name limitations.", "type": "string" }, + "avg": { + "$ref": "Avg", + "description": "Average aggregator." + }, "count": { "$ref": "Count", "description": "Count aggregator." + }, + "sum": { + "$ref": "Sum", + "description": "Sum aggregator." } }, "type": "object" @@ -996,6 +1004,17 @@ }, "type": "object" }, + "Avg": { + "description": "Average of the values of the requested field. * Only numeric values will be aggregated. All non-numeric values including `NULL` are skipped. * If the aggregated values contain `NaN`, returns `NaN`. Infinity math follows IEEE-754 standards. * If the aggregated value set is empty, returns `NULL`. * Always returns the result as a double.", + "id": "Avg", + "properties": { + "field": { + "$ref": "FieldReference", + "description": "The field to aggregate on." + } + }, + "type": "object" + }, "BatchGetDocumentsRequest": { "description": "The request for Firestore.BatchGetDocuments.", "id": "BatchGetDocumentsRequest", @@ -1016,7 +1035,7 @@ "description": "Starts a new transaction and reads the documents. Defaults to a read-only transaction. The new transaction ID will be returned as the first response in the stream." }, "readTime": { - "description": "Reads documents as they were at the given time. This may not be older than 270 seconds.", + "description": "Reads documents as they were at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "type": "string" }, @@ -1118,6 +1137,39 @@ }, "type": "object" }, + "BitSequence": { + "description": "A sequence of bits, encoded in a byte array. Each byte in the `bitmap` byte array stores 8 bits of the sequence. The only exception is the last byte, which may store 8 _or fewer_ bits. The `padding` defines the number of bits of the last byte to be ignored as \"padding\". The values of these \"padding\" bits are unspecified and must be ignored. To retrieve the first bit, bit 0, calculate: `(bitmap[0] & 0x01) != 0`. To retrieve the second bit, bit 1, calculate: `(bitmap[0] & 0x02) != 0`. To retrieve the third bit, bit 2, calculate: `(bitmap[0] & 0x04) != 0`. To retrieve the fourth bit, bit 3, calculate: `(bitmap[0] & 0x08) != 0`. To retrieve bit n, calculate: `(bitmap[n / 8] & (0x01 << (n % 8))) != 0`. The \"size\" of a `BitSequence` (the number of bits it contains) is calculated by this formula: `(bitmap.length * 8) - padding`.", + "id": "BitSequence", + "properties": { + "bitmap": { + "description": "The bytes that encode the bit sequence. May have a length of zero.", + "format": "byte", + "type": "string" + }, + "padding": { + "description": "The number of bits of the last byte in `bitmap` to ignore as \"padding\". If the length of `bitmap` is zero, then this value must be `0`. Otherwise, this value must be between 0 and 7, inclusive.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "BloomFilter": { + "description": "A bloom filter (https://en.wikipedia.org/wiki/Bloom_filter). The bloom filter hashes the entries with MD5 and treats the resulting 128-bit hash as 2 distinct 64-bit hash values, interpreted as unsigned integers using 2's complement encoding. These two hash values, named `h1` and `h2`, are then used to compute the `hash_count` hash values using the formula, starting at `i=0`: h(i) = h1 + (i * h2) These resulting values are then taken modulo the number of bits in the bloom filter to get the bits of the bloom filter to test for the given entry.", + "id": "BloomFilter", + "properties": { + "bits": { + "$ref": "BitSequence", + "description": "The bloom filter data." + }, + "hashCount": { + "description": "The number of hashes used by the algorithm.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "CollectionSelector": { "description": "A selection of a collection, such as `messages as m1`.", "id": "CollectionSelector", @@ -1186,11 +1238,13 @@ "description": "The operator for combining multiple filters.", "enum": [ "OPERATOR_UNSPECIFIED", - "AND" + "AND", + "OR" ], "enumDescriptions": [ "Unspecified. This value must not be used.", - "Documents are required to satisfy all of the combined filters." + "Documents are required to satisfy all of the combined filters.", + "Documents are required to satisfy at least one of the combined filters." ], "type": "string" } @@ -1202,7 +1256,7 @@ "id": "Count", "properties": { "upTo": { - "description": "Optional. Optional constraint on the maximum number of documents to count. This provides a way to set an upper bound on the number of documents to scan, limiting latency and cost. Unspecified is interpreted as no bound. High-Level Example: ``` AGGREGATE COUNT_UP_TO(1000) OVER ( SELECT * FROM k ); ``` Requires: * Must be greater than zero when present.", + "description": "Optional. Optional constraint on the maximum number of documents to count. This provides a way to set an upper bound on the number of documents to scan, limiting latency, and cost. Unspecified is interpreted as no bound. High-Level Example: ``` AGGREGATE COUNT_UP_TO(1000) OVER ( SELECT * FROM k ); ``` Requires: * Must be greater than zero when present.", "format": "int64", "type": "string" } @@ -1240,7 +1294,7 @@ "additionalProperties": { "$ref": "Value" }, - "description": "The document's fields. The map keys represent field names. 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`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, 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 the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `\"foo\" : { map_value: { \"x&y\" : { string_value: \"hello\" }}}` would be represented by the field path `foo.x&y`. Within a field path, 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 ``.", + "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": { @@ -1387,7 +1441,7 @@ "id": "ExistenceFilter", "properties": { "count": { - "description": "The total count of documents that match target_id. If different from the count of documents in the client that match, the client must manually determine which documents no longer match the target.", + "description": "The total count of documents that match target_id. If different from the count of documents in the client that match, the client must manually determine which documents no longer match the target. The client can use the `unchanged_names` bloom filter to assist with this determination by testing ALL the document names against the filter; if the document name is NOT in the filter, it means the document no longer matches the target.", "format": "int32", "type": "integer" }, @@ -1395,6 +1449,10 @@ "description": "The target ID to which this filter applies.", "format": "int32", "type": "integer" + }, + "unchangedNames": { + "$ref": "BloomFilter", + "description": "A bloom filter that, despite its name, contains the UTF-8 byte encodings of the resource names of ALL the documents that match target_id, in the form `projects/{project_id}/databases/{database_id}/documents/{document_path}`. This bloom filter may be omitted at the server's discretion, such as if it is deemed that the client will not make use of it or if it is too computationally expensive to calculate or transmit. Clients must gracefully handle this field being absent by falling back to the logic used before this field existed; that is, re-add the target without a resume token to figure out which documents in the client's cache are out of sync." } }, "type": "object" @@ -1431,9 +1489,9 @@ "The given `field` is equal to the given `value`.", "The given `field` is not equal to the given `value`. Requires: * No other `NOT_EQUAL`, `NOT_IN`, `IS_NOT_NULL`, or `IS_NOT_NAN`. * That `field` comes first in the `order_by`.", "The given `field` is an array that contains the given `value`.", - "The given `field` is equal to at least one value in the given array. Requires: * That `value` is a non-empty `ArrayValue` with at most 10 values. * No other `IN` or `ARRAY_CONTAINS_ANY` or `NOT_IN`.", - "The given `field` is an array that contains any of the values in the given array. Requires: * That `value` is a non-empty `ArrayValue` with at most 10 values. * No other `IN` or `ARRAY_CONTAINS_ANY` or `NOT_IN`.", - "The value of the `field` is not in the given array. Requires: * That `value` is a non-empty `ArrayValue` with at most 10 values. * No other `IN`, `ARRAY_CONTAINS_ANY`, `NOT_IN`, `NOT_EQUAL`, `IS_NOT_NULL`, or `IS_NOT_NAN`. * That `field` comes first in the `order_by`." + "The given `field` is equal to at least one value in the given array. Requires: * That `value` is a non-empty `ArrayValue`, subject to disjunction limits. * No `NOT_IN` filters in the same query.", + "The given `field` is an array that contains any of the values in the given array. Requires: * That `value` is a non-empty `ArrayValue`, subject to disjunction limits. * No other `ARRAY_CONTAINS_ANY` filters within the same disjunction. * No `NOT_IN` filters in the same query.", + "The value of the `field` is not in the given array. Requires: * That `value` is a non-empty `ArrayValue` with at most 10 values. * No other `OR`, `IN`, `ARRAY_CONTAINS_ANY`, `NOT_IN`, `NOT_EQUAL`, `IS_NOT_NULL`, or `IS_NOT_NAN`. * That `field` comes first in the `order_by`." ], "type": "string" }, @@ -1449,7 +1507,7 @@ "id": "FieldReference", "properties": { "fieldPath": { - "description": "The relative path of the document being referenced. Requires: * Conform to document field name limitations.", + "description": "A reference to a field in a document. Requires: * MUST be a dot-delimited (`.`) string of segments, where each segment conforms to document field name limitations.", "type": "string" } }, @@ -1517,6 +1575,88 @@ }, "type": "object" }, + "GoogleFirestoreAdminV1CreateDatabaseMetadata": { + "description": "Metadata related to the create database operation.", + "id": "GoogleFirestoreAdminV1CreateDatabaseMetadata", + "properties": {}, + "type": "object" + }, + "GoogleFirestoreAdminV1DeleteDatabaseMetadata": { + "description": "Metadata related to the delete database operation.", + "id": "GoogleFirestoreAdminV1DeleteDatabaseMetadata", + "properties": {}, + "type": "object" + }, + "GoogleFirestoreAdminV1Progress": { + "description": "Describes the progress of the operation. Unit of work is generic and must be interpreted based on where Progress is used.", + "id": "GoogleFirestoreAdminV1Progress", + "properties": { + "completedWork": { + "description": "The amount of work completed.", + "format": "int64", + "type": "string" + }, + "estimatedWork": { + "description": "The amount of work estimated.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleFirestoreAdminV1RestoreDatabaseMetadata": { + "description": "Metadata for the long-running operation from the RestoreDatabase request.", + "id": "GoogleFirestoreAdminV1RestoreDatabaseMetadata", + "properties": { + "backup": { + "description": "The name of the backup restoring from.", + "type": "string" + }, + "database": { + "description": "The name of the database being restored to.", + "type": "string" + }, + "endTime": { + "description": "The time the restore finished, unset for ongoing restores.", + "format": "google-datetime", + "type": "string" + }, + "operationState": { + "description": "The operation state of the restore.", + "enum": [ + "OPERATION_STATE_UNSPECIFIED", + "INITIALIZING", + "PROCESSING", + "CANCELLING", + "FINALIZING", + "SUCCESSFUL", + "FAILED", + "CANCELLED" + ], + "enumDescriptions": [ + "Unspecified.", + "Request is being prepared for processing.", + "Request is actively being processed.", + "Request is in the process of being cancelled after user called google.longrunning.Operations.CancelOperation on the operation.", + "Request has been processed and is in its finalization stage.", + "Request has completed successfully.", + "Request has finished being processed, but encountered an error.", + "Request has finished being cancelled after user called google.longrunning.Operations.CancelOperation." + ], + "type": "string" + }, + "progressPercentage": { + "$ref": "GoogleFirestoreAdminV1Progress", + "description": "How far along the restore is as an estimated percentage of remaining time." + }, + "startTime": { + "description": "The time the restore was started.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "GoogleFirestoreAdminV1UpdateDatabaseMetadata": { "description": "Metadata related to the update database operation.", "id": "GoogleFirestoreAdminV1UpdateDatabaseMetadata", @@ -1866,7 +2006,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" } }, @@ -1903,7 +2043,7 @@ "type": "string" }, "readTime": { - "description": "Reads documents as they were at the given time. This may not be older than 270 seconds.", + "description": "Reads documents as they were at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "type": "string" } @@ -2054,7 +2194,7 @@ "type": "string" }, "readTime": { - "description": "Reads documents as they were at the given time. This may not be older than 270 seconds.", + "description": "Reads documents as they were at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "type": "string" }, @@ -2074,7 +2214,7 @@ "type": "string" }, "partitions": { - "description": "Partition results. Each partition is a split point that can be used by RunQuery as a starting or end point for the query results. The RunQuery requests must be made with the same query supplied to this PartitionQuery request. The partition cursors will be ordered according to same ordering as the results of the query supplied to PartitionQuery. For example, if a PartitionQuery request returns partition cursors A and B, running the following three queries will return the entire result set of the original query: * query, end_at A * query, start_at A, end_at B * query, start_at B An empty result may indicate that the query has too few results to be partitioned.", + "description": "Partition results. Each partition is a split point that can be used by RunQuery as a starting or end point for the query results. The RunQuery requests must be made with the same query supplied to this PartitionQuery request. The partition cursors will be ordered according to same ordering as the results of the query supplied to PartitionQuery. For example, if a PartitionQuery request returns partition cursors A and B, running the following three queries will return the entire result set of the original query: * query, end_at A * query, start_at A, end_at B * query, start_at B An empty result may indicate that the query has too few results to be partitioned, or that the query is not yet supported for partitioning.", "items": { "$ref": "Cursor" }, @@ -2133,7 +2273,7 @@ "id": "ReadOnly", "properties": { "readTime": { - "description": "Reads documents at the given time. This may not be older than 60 seconds.", + "description": "Reads documents at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "type": "string" } @@ -2141,7 +2281,7 @@ "type": "object" }, "ReadWrite": { - "description": "Options for a transaction that can be used to read and write documents.", + "description": "Options for a transaction that can be used to read and write documents. Firestore does not allow 3rd party auth requests to create read-write. transactions.", "id": "ReadWrite", "properties": { "retryTransaction": { @@ -2173,7 +2313,7 @@ "description": "Starts a new transaction as part of the query, defaulting to read-only. The new transaction ID will be returned as the first response in the stream." }, "readTime": { - "description": "Executes the query at the given timestamp. Requires: * Cannot be more than 270 seconds in the past.", + "description": "Executes the query at the given timestamp. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "type": "string" }, @@ -2194,7 +2334,7 @@ "id": "RunAggregationQueryResponse", "properties": { "readTime": { - "description": "The time at which the aggregate value is valid for.", + "description": "The time at which the aggregate result was computed. This is always monotonically increasing; in this case, the previous AggregationResult in the result stream are guaranteed not to have changed between their `read_time` and this one. If the query returns no results, a response with `read_time` and no `result` will be sent, and this represents the time at which the query was run.", "format": "google-datetime", "type": "string" }, @@ -2219,7 +2359,7 @@ "description": "Starts a new transaction and reads the documents. Defaults to a read-only transaction. The new transaction ID will be returned as the first response in the stream." }, "readTime": { - "description": "Reads documents as they were at the given time. This may not be older than 270 seconds.", + "description": "Reads documents as they were at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", "format": "google-datetime", "type": "string" }, @@ -2311,7 +2451,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": { @@ -2344,7 +2484,7 @@ }, "select": { "$ref": "Projection", - "description": "The projection to return." + "description": "Optional sub-set of the fields to return. This acts as a DocumentMask over the documents returned from a query. When not set, assumes that the caller wants all fields returned." }, "startAt": { "$ref": "Cursor", @@ -2357,6 +2497,17 @@ }, "type": "object" }, + "Sum": { + "description": "Sum of the values of the requested field. * Only numeric values will be aggregated. All non-numeric values including `NULL` are skipped. * If the aggregated values contain `NaN`, returns `NaN`. Infinity math follows IEEE-754 standards. * If the aggregated value set is empty, returns 0. * Returns a 64-bit integer if all aggregated numbers are integers and the sum result does not overflow. Otherwise, the result is returned as a double. Note that even if all the aggregated values are integers, the result is returned as a double if it cannot fit within a 64-bit signed integer. When this occurs, the returned value will lose precision. * When underflow occurs, floating-point aggregation is non-deterministic. This means that running the same query repeatedly without any changes to the underlying values could produce slightly different results each time. In those cases, values should be stored as integers over floating-point numbers.", + "id": "Sum", + "properties": { + "field": { + "$ref": "FieldReference", + "description": "The field to aggregate on." + } + }, + "type": "object" + }, "Target": { "description": "A specification of a set of documents to listen to.", "id": "Target", @@ -2365,6 +2516,11 @@ "$ref": "DocumentsTarget", "description": "A target specified by a set of document names." }, + "expectedCount": { + "description": "The number of documents that last matched the query at the resume token or read time. This value is only relevant when a `resume_type` is provided. This value being present and greater than zero signals that the client wants `ExistenceFilter.unchanged_names` to be included in the response.", + "format": "int32", + "type": "integer" + }, "once": { "description": "If the target should be removed once it is current and consistent.", "type": "boolean" @@ -2384,7 +2540,7 @@ "type": "string" }, "targetId": { - "description": "The target ID that identifies the target on the stream. Must be a positive number and non-zero.", + "description": "The target ID that identifies the target on the stream. Must be a positive number and non-zero. If `target_id` is 0 (or unspecified), the server will assign an ID for this target and return that in a `TargetChange::ADD` event. Once a target with `target_id=0` is added, all subsequent targets must also have `target_id=0`. If an `AddTarget` request with `target_id != 0` is sent to the server after a target with `target_id=0` is added, the server will immediately send a response with a `TargetChange::Remove` event. Note that if the client sends multiple `AddTarget` requests without an ID, the order of IDs returned in `TargetChage.target_ids` are undefined. Therefore, clients should provide a target ID instead of relying on the server to assign one. If `target_id` is non-zero, there must not be an existing active target on this stream with the same ID.", "format": "int32", "type": "integer" } diff --git a/etc/api/firestore/v1beta2/firestore-api.json b/etc/api/firestore/v1beta2/firestore-api.json index 36cbe816ee..53a8bb28bd 100644 --- a/etc/api/firestore/v1beta2/firestore-api.json +++ b/etc/api/firestore/v1beta2/firestore-api.json @@ -415,7 +415,7 @@ } } }, - "revision": "20230118", + "revision": "20240226", "rootUrl": "https://firestore.googleapis.com/", "schemas": { "Empty": { @@ -424,6 +424,88 @@ "properties": {}, "type": "object" }, + "GoogleFirestoreAdminV1CreateDatabaseMetadata": { + "description": "Metadata related to the create database operation.", + "id": "GoogleFirestoreAdminV1CreateDatabaseMetadata", + "properties": {}, + "type": "object" + }, + "GoogleFirestoreAdminV1DeleteDatabaseMetadata": { + "description": "Metadata related to the delete database operation.", + "id": "GoogleFirestoreAdminV1DeleteDatabaseMetadata", + "properties": {}, + "type": "object" + }, + "GoogleFirestoreAdminV1Progress": { + "description": "Describes the progress of the operation. Unit of work is generic and must be interpreted based on where Progress is used.", + "id": "GoogleFirestoreAdminV1Progress", + "properties": { + "completedWork": { + "description": "The amount of work completed.", + "format": "int64", + "type": "string" + }, + "estimatedWork": { + "description": "The amount of work estimated.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleFirestoreAdminV1RestoreDatabaseMetadata": { + "description": "Metadata for the long-running operation from the RestoreDatabase request.", + "id": "GoogleFirestoreAdminV1RestoreDatabaseMetadata", + "properties": { + "backup": { + "description": "The name of the backup restoring from.", + "type": "string" + }, + "database": { + "description": "The name of the database being restored to.", + "type": "string" + }, + "endTime": { + "description": "The time the restore finished, unset for ongoing restores.", + "format": "google-datetime", + "type": "string" + }, + "operationState": { + "description": "The operation state of the restore.", + "enum": [ + "OPERATION_STATE_UNSPECIFIED", + "INITIALIZING", + "PROCESSING", + "CANCELLING", + "FINALIZING", + "SUCCESSFUL", + "FAILED", + "CANCELLED" + ], + "enumDescriptions": [ + "Unspecified.", + "Request is being prepared for processing.", + "Request is actively being processed.", + "Request is in the process of being cancelled after user called google.longrunning.Operations.CancelOperation on the operation.", + "Request has been processed and is in its finalization stage.", + "Request has completed successfully.", + "Request has finished being processed, but encountered an error.", + "Request has finished being cancelled after user called google.longrunning.Operations.CancelOperation." + ], + "type": "string" + }, + "progressPercentage": { + "$ref": "GoogleFirestoreAdminV1Progress", + "description": "How far along the restore is as an estimated percentage of remaining time." + }, + "startTime": { + "description": "The time the restore was started.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "GoogleFirestoreAdminV1UpdateDatabaseMetadata": { "description": "Metadata related to the update database operation.", "id": "GoogleFirestoreAdminV1UpdateDatabaseMetadata", @@ -943,7 +1025,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/etc/api/fitness/v1/fitness-api.json b/etc/api/fitness/v1/fitness-api.json index 3b960227c0..9deb54b5d6 100644 --- a/etc/api/fitness/v1/fitness-api.json +++ b/etc/api/fitness/v1/fitness-api.json @@ -77,6 +77,7 @@ "description": "The Fitness API for managing users' fitness tracking data.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/fit/rest/v1/get-started", + "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" @@ -831,7 +832,7 @@ } } }, - "revision": "20230120", + "revision": "20240304", "rootUrl": "https://fitness.googleapis.com/", "schemas": { "AggregateBucket": { @@ -942,6 +943,7 @@ "type": "string" }, "filteredDataQualityStandard": { + "deprecated": true, "description": "DO NOT POPULATE THIS FIELD. It is ignored.", "items": { "enum": [ @@ -1099,6 +1101,7 @@ "id": "DataPoint", "properties": { "computationTimeMillis": { + "deprecated": true, "description": "DO NOT USE THIS FIELD. It is ignored, and not stored.", "format": "int64", "type": "string" @@ -1176,6 +1179,7 @@ "description": "Information about an application which feeds sensor data into the platform." }, "dataQualityStandard": { + "deprecated": true, "description": "DO NOT POPULATE THIS FIELD. It is never populated in responses from the platform, and is ignored in queries. It will be removed in a future version entirely.", "items": { "enum": [ @@ -1240,6 +1244,7 @@ "description": "Representation of an integrated device (such as a phone or a wearable) that can hold sensors." }, "name": { + "deprecated": true, "description": "An end-user visible name for this data source.", "type": "string" }, @@ -1522,6 +1527,7 @@ "type": "array" }, "hasMoreData": { + "deprecated": true, "description": "Flag to indicate server has more data to transfer. DO NOT USE THIS FIELD. It is never populated in responses from the server.", "type": "boolean" }, diff --git a/etc/api/games/v1/games-api.json b/etc/api/games/v1/games-api.json index 995a8068a4..ee9bea5a7f 100644 --- a/etc/api/games/v1/games-api.json +++ b/etc/api/games/v1/games-api.json @@ -2,6 +2,9 @@ "auth": { "oauth2": { "scopes": { + "https://www.googleapis.com/auth/androidpublisher": { + "description": "View and manage your Google Play Developer account" + }, "https://www.googleapis.com/auth/drive.appdata": { "description": "See, create, and delete its own configuration data in your Google Drive" }, @@ -168,7 +171,7 @@ "type": "string" }, "stepsToIncrement": { - "description": "The number of steps to increment.", + "description": "Required. The number of steps to increment.", "format": "int32", "location": "query", "required": true, @@ -281,7 +284,7 @@ "type": "string" }, "steps": { - "description": "The minimum value to set the steps to.", + "description": "Required. The minimum value to set the steps to.", "format": "int32", "location": "query", "required": true, @@ -365,13 +368,11 @@ "platformType": { "description": "Restrict application details returned to the specific platform.", "enum": [ - "PLATFORM_TYPE_UNSPECIFIED", "ANDROID", "IOS", "WEB_APP" ], "enumDescriptions": [ - "Default value, don't use.", "Retrieve applications that can be played on Android.", "Retrieve applications that can be played on iOS.", "Retrieve applications that can be played on desktop web." @@ -403,12 +404,10 @@ "endPointType": { "description": "Type of endpoint being requested.", "enum": [ - "END_POINT_TYPE_UNSPECIFIED", "PROFILE_CREATION", "PROFILE_SETTINGS" ], "enumDescriptions": [ - "Default value. This value is unused.", "Request a URL to create a new profile.", "Request a URL for the Settings view." ], @@ -649,11 +648,9 @@ "collection": { "description": "The collection of categories for which data will be returned.", "enum": [ - "COLLECTION_UNSPECIFIED", "ALL" ], "enumDescriptions": [ - "Default value. This value is unused.", "Retrieve data for all categories. This is the default." ], "location": "path", @@ -729,6 +726,28 @@ "https://www.googleapis.com/auth/games" ] }, + "getMultipleApplicationPlayerIds": { + "description": "Get the application player ids for the currently authenticated player across all requested games by the same developer as the calling application. This will only return ids for players that actually have an id (scoped or otherwise) with that game.", + "flatPath": "games/v1/players/me/multipleApplicationPlayerIds", + "httpMethod": "GET", + "id": "games.players.getMultipleApplicationPlayerIds", + "parameterOrder": [], + "parameters": { + "applicationIds": { + "description": "Required. The application IDs from the Google Play developer console for the games to return scoped ids for.", + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "games/v1/players/me/multipleApplicationPlayerIds", + "response": { + "$ref": "GetMultipleApplicationPlayerIdsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games" + ] + }, "getScopedPlayerIds": { "description": "Retrieves scoped player identifiers for currently authenticated user.", "flatPath": "games/v1/players/me/scopedIds", @@ -760,6 +779,11 @@ "VISIBLE", "FRIENDS_ALL" ], + "enumDeprecated": [ + true, + true, + false + ], "enumDescriptions": [ "Retrieve a list of players that are also playing this game in reverse chronological order.", "Retrieve a list of players in the user's social graph that are visible to this game.", @@ -796,6 +820,88 @@ } } }, + "recall": { + "methods": { + "linkPersona": { + "description": "Associate the PGS Player principal encoded in the provided recall session id with an in-game account", + "flatPath": "games/v1/recall:linkPersona", + "httpMethod": "POST", + "id": "games.recall.linkPersona", + "parameterOrder": [], + "parameters": {}, + "path": "games/v1/recall:linkPersona", + "request": { + "$ref": "LinkPersonaRequest" + }, + "response": { + "$ref": "LinkPersonaResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "resetPersona": { + "description": "Delete all Recall tokens linking the given persona to any player (with or without a profile).", + "flatPath": "games/v1/recall:resetPersona", + "httpMethod": "POST", + "id": "games.recall.resetPersona", + "parameterOrder": [], + "parameters": {}, + "path": "games/v1/recall:resetPersona", + "request": { + "$ref": "ResetPersonaRequest" + }, + "response": { + "$ref": "ResetPersonaResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "retrieveTokens": { + "description": "Retrieve all Recall tokens associated with the PGS Player principal encoded in the provided recall session id. The API is only available for users that have active PGS Player profile.", + "flatPath": "games/v1/recall/tokens/{sessionId}", + "httpMethod": "GET", + "id": "games.recall.retrieveTokens", + "parameterOrder": [ + "sessionId" + ], + "parameters": { + "sessionId": { + "description": "Required. Opaque server-generated string that encodes all the necessary information to identify the PGS player / Google user and application.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "games/v1/recall/tokens/{sessionId}", + "response": { + "$ref": "RetrievePlayerTokensResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "unlinkPersona": { + "description": "Delete a Recall token linking the PGS Player principal identified by the Recall session and an in-game account identified either by the 'persona' or by the token value.", + "flatPath": "games/v1/recall:unlinkPersona", + "httpMethod": "POST", + "id": "games.recall.unlinkPersona", + "parameterOrder": [], + "parameters": {}, + "path": "games/v1/recall:unlinkPersona", + "request": { + "$ref": "UnlinkPersonaRequest" + }, + "response": { + "$ref": "UnlinkPersonaResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + } + }, "revisions": { "methods": { "check": { @@ -808,7 +914,7 @@ ], "parameters": { "clientRevision": { - "description": "The revision of the client SDK used by your application. Format: `[PLATFORM_TYPE]:[VERSION_NUMBER]`. Possible values of `PLATFORM_TYPE` are: * `ANDROID` - Client is running the Android SDK. * `IOS` - Client is running the iOS SDK. * `WEB_APP` - Client is running as a Web App.", + "description": "Required. The revision of the client SDK used by your application. Format: `[PLATFORM_TYPE]:[VERSION_NUMBER]`. Possible values of `PLATFORM_TYPE` are: * `ANDROID` - Client is running the Android SDK. * `IOS` - Client is running the iOS SDK. * `WEB_APP` - Client is running as a Web App.", "location": "query", "required": true, "type": "string" @@ -840,14 +946,18 @@ "includeRankType": { "description": "The types of ranks to return. If the parameter is omitted, no ranks will be returned.", "enum": [ - "INCLUDE_RANK_TYPE_UNSPECIFIED", "ALL", "PUBLIC", "SOCIAL", "FRIENDS" ], + "enumDeprecated": [ + false, + false, + true, + false + ], "enumDescriptions": [ - "Default value. Should be unused.", "Retrieve all supported ranks. In HTTP, this parameter value can also be specified as `ALL`.", "Retrieve public ranks, if the player is sharing their gameplay activity publicly.", "(Obsolete) Retrieve the social rank.", @@ -887,14 +997,12 @@ "timeSpan": { "description": "The time span for the scores and ranks you're requesting.", "enum": [ - "SCORE_TIME_SPAN_UNSPECIFIED", "ALL", "ALL_TIME", "WEEKLY", "DAILY" ], "enumDescriptions": [ - "Default value. This value is unused.", "Get the high scores for all time spans. If this is used, maxResults values will be ignored.", "Get the all time high score.", "List the top scores for the current day.", @@ -927,13 +1035,16 @@ "collection": { "description": "The collection of scores you're requesting.", "enum": [ - "SCORE_COLLECTION_UNSPECIFIED", "PUBLIC", "SOCIAL", "FRIENDS" ], + "enumDeprecated": [ + false, + true, + false + ], "enumDescriptions": [ - "Default value. This value is unused.", "List all scores in the public leaderboard.", "(Obsolete) Legacy G+ social scores.", "List only scores of friends." @@ -965,15 +1076,13 @@ "type": "string" }, "timeSpan": { - "description": "The time span for the scores and ranks you're requesting.", + "description": "Required. The time span for the scores and ranks you're requesting.", "enum": [ - "SCORE_TIME_SPAN_UNSPECIFIED", "ALL_TIME", "WEEKLY", "DAILY" ], "enumDescriptions": [ - "Default value. This value is unused.", "The score is an all-time score.", "The score is a weekly score.", "The score is a daily score." @@ -1005,13 +1114,16 @@ "collection": { "description": "The collection of scores you're requesting.", "enum": [ - "SCORE_COLLECTION_UNSPECIFIED", "PUBLIC", "SOCIAL", "FRIENDS" ], + "enumDeprecated": [ + false, + true, + false + ], "enumDescriptions": [ - "Default value. This value is unused.", "List all scores in the public leaderboard.", "(Obsolete) Legacy G+ social scores.", "List only scores of friends." @@ -1054,15 +1166,13 @@ "type": "boolean" }, "timeSpan": { - "description": "The time span for the scores and ranks you're requesting.", + "description": "Required. The time span for the scores and ranks you're requesting.", "enum": [ - "SCORE_TIME_SPAN_UNSPECIFIED", "ALL_TIME", "WEEKLY", "DAILY" ], "enumDescriptions": [ - "Default value. This value is unused.", "The score is an all-time score.", "The score is a weekly score.", "The score is a daily score." @@ -1102,7 +1212,7 @@ "type": "string" }, "score": { - "description": "The score you're submitting. The submitted score is ignored if it is worse than a previously submitted score, where worse depends on the leaderboard sort order. The meaning of the score value depends on the leaderboard format type. For fixed-point, the score represents the raw value. For time, the score represents elapsed time in milliseconds. For currency, the score represents a value in micro units.", + "description": "Required. The score you're submitting. The submitted score is ignored if it is worse than a previously submitted score, where worse depends on the leaderboard sort order. The meaning of the score value depends on the leaderboard format type. For fixed-point, the score represents the raw value. For time, the score represents elapsed time in milliseconds. For currency, the score represents a value in micro units.", "format": "int64", "location": "query", "required": true, @@ -1244,7 +1354,7 @@ } } }, - "revision": "20230112", + "revision": "20240228", "rootUrl": "https://games.googleapis.com/", "schemas": { "AchievementDefinition": { @@ -1254,12 +1364,10 @@ "achievementType": { "description": "The type of the achievement.", "enum": [ - "ACHIEVEMENT_TYPE_UNSPECIFIED", "STANDARD", "INCREMENTAL" ], "enumDescriptions": [ - "Safe default, don't use.", "Achievement is either locked or unlocked.", "Achievement is incremental." ], @@ -1285,13 +1393,11 @@ "initialState": { "description": "The initial state of the achievement.", "enum": [ - "INITIAL_ACHIEVEMENT_STATE_UNSPECIFIED", "HIDDEN", "REVEALED", "UNLOCKED" ], "enumDescriptions": [ - "Safe default, don't use.", "Achievement is hidden.", "Achievement is revealed.", "Achievement is unlocked." @@ -1379,12 +1485,10 @@ "currentState": { "description": "The current state of the achievement for which a reveal was attempted. This might be `UNLOCKED` if the achievement was already unlocked.", "enum": [ - "REVEAL_ACHIEVEMENT_STATE_UNSPECIFIED", "REVEALED", "UNLOCKED" ], "enumDescriptions": [ - "Safe default, don't use.", "Achievement is revealed.", "Achievement is unlocked." ], @@ -1491,14 +1595,12 @@ "updateType": { "description": "The type of update being applied.", "enum": [ - "ACHIEVEMENT_UPDATE_TYPE_UNSPECIFIED", "REVEAL", "UNLOCK", "INCREMENT", "SET_STEPS_AT_LEAST" ], "enumDescriptions": [ - "Safe default, don't use.", "Achievement is revealed.", "Achievement is unlocked.", "Achievement is incremented.", @@ -1520,13 +1622,11 @@ "currentState": { "description": "The current state of the achievement.", "enum": [ - "UPDATED_ACHIEVEMENT_STATE_UNSPECIFIED", "HIDDEN", "REVEALED", "UNLOCKED" ], "enumDescriptions": [ - "Safe default, don't use.", "Achievement is hidden.", "Achievement is revealed.", "Achievement is unlocked." @@ -1585,11 +1685,9 @@ "description": "A list of features that have been enabled for the application.", "items": { "enum": [ - "APPLICATION_FEATURE_UNSPECIFIED", "SNAPSHOTS" ], "enumDescriptions": [ - "Safe default, don't use.", "Saved Games (snapshots)." ], "type": "string" @@ -1651,6 +1749,21 @@ }, "type": "object" }, + "ApplicationPlayerId": { + "description": "Primary scoped player identifier for an application.", + "id": "ApplicationPlayerId", + "properties": { + "applicationId": { + "description": "The application that this player identifier is for.", + "type": "string" + }, + "playerId": { + "description": "The player identifier for the application.", + "type": "string" + } + }, + "type": "object" + }, "ApplicationVerifyResponse": { "description": "A third party application verification response resource.", "id": "ApplicationVerifyResponse", @@ -1730,7 +1843,6 @@ "failureCause": { "description": "The cause for the update failure.", "enum": [ - "EVENT_FAILURE_CAUSE_UNSPECIFIED", "TOO_LARGE", "TIME_PERIOD_EXPIRED", "TIME_PERIOD_SHORT", @@ -1739,7 +1851,6 @@ "RECORD_RATE_HIGH" ], "enumDescriptions": [ - "Default value. Should not be used.", "A batch request was issued with more events than are allowed in a single batch.", "A batch was sent with data too far in the past to record.", "A batch was sent with a time range that was too short.", @@ -1813,12 +1924,10 @@ "visibility": { "description": "The visibility of event being tracked in this definition.", "enum": [ - "EVENT_VISIBILITY_UNSPECIFIED", "REVEALED", "HIDDEN" ], "enumDescriptions": [ - "Default value. Should not be used.", "This event should be visible to all users.", "This event should only be shown to users that have recorded this event at least once." ], @@ -1903,12 +2012,10 @@ "failureCause": { "description": "The cause for the update failure.", "enum": [ - "EVENT_UPDATE_FAILURE_CAUSE_UNSPECIFIED", "NOT_FOUND", "INVALID_UPDATE_VALUE" ], "enumDescriptions": [ - "Default value. Should not use.", "An attempt was made to set an event that was not defined.", "An attempt was made to increment an event by a non-positive value." ], @@ -2038,6 +2145,21 @@ }, "type": "object" }, + "GetMultipleApplicationPlayerIdsResponse": { + "description": "Response message for GetMultipleApplicationPlayerIds rpc.", + "id": "GetMultipleApplicationPlayerIdsResponse", + "properties": { + "playerIds": { + "description": "Output only. The requested applications along with the scoped ids for tha player, if that player has an id for the application. If not, the application is not included in the response.", + "items": { + "$ref": "ApplicationPlayerId" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "ImageAsset": { "description": "An image asset object.", "id": "ImageAsset", @@ -2094,13 +2216,11 @@ "platformType": { "description": "The platform type.", "enum": [ - "PLATFORM_TYPE_UNSPECIFIED", "ANDROID", "IOS", "WEB_APP" ], "enumDescriptions": [ - "Default value. Should be unused.", "Instance is for Android.", "Instance is for iOS.", "Instance is for Web App." @@ -2226,12 +2346,10 @@ "order": { "description": "How scores are ordered.", "enum": [ - "SCORE_ORDER_UNSPECIFIED", "LARGER_IS_BETTER", "SMALLER_IS_BETTER" ], "enumDescriptions": [ - "Default value. This value is unused.", "Larger values are better; scores are sorted in descending order", "Smaller values are better; scores are sorted in ascending order" ], @@ -2277,13 +2395,11 @@ "timeSpan": { "description": "The time span of this high score.", "enum": [ - "SCORE_TIME_SPAN_UNSPECIFIED", "ALL_TIME", "WEEKLY", "DAILY" ], "enumDescriptions": [ - "Default value. This value is unused.", "The score is an all-time score.", "The score is a weekly score.", "The score is a daily score." @@ -2384,6 +2500,77 @@ }, "type": "object" }, + "LinkPersonaRequest": { + "description": "Request to link an in-game account with a PGS principal (encoded in the session id).", + "id": "LinkPersonaRequest", + "properties": { + "cardinalityConstraint": { + "description": "Required. Cardinality constraint to observe when linking a persona to a player in the scope of a game.", + "enum": [ + "ONE_PERSONA_TO_ONE_PLAYER" + ], + "enumDescriptions": [ + "1:1 cardinality between in-game personas and Play Games Services players. By the end of the linking operation only one entry for the player and the persona should remain in the scope of the application. Whether a new link is created or not when this constraint is specified is determined by the chosen `ConflictingLinksResolutionPolicy`: * If `KEEP_EXISTING_LINKS` is specified and the provided persona is already linked to a different player, or the player is already linked to a different persona, no new link will be created and the already existing link(s) will remain as is(are). * If `CREATE_NEW_LINK` is specified and the provided persona is already linked to a different player, or the player is already linked to another persona, the older link(s) will be removed in favour of the new link being created." + ], + "type": "string" + }, + "conflictingLinksResolutionPolicy": { + "description": "Required. Resolution policy to apply when the linking of a persona to a player would result in violating the specified cardinality constraint.", + "enum": [ + "KEEP_EXISTING_LINKS", + "CREATE_NEW_LINK" + ], + "enumDescriptions": [ + "If link(s) between a player and persona already exists which would result in violating the specified `RecallTokensCardinalityConstraint` if the new link was created, keep the already existing link(s). For example, if Persona1-Player1 is already linked in the scope of application1 and a new link Persona1-Player2 is attempted to be created in the scope of application1, then the old link will remain and no new link will be added. Note that if the already existing links do violate the specified policy (which could occur if not all `LinkPersona` calls use the same `RecallTokensCardinalityConstraint`) this policy will leave these violations unresolved; in order to resolve conflicts, the {@link `CREATE_NEW_LINK` policy needs to be used to rewrite links resolving conflicts.", + "If an existing link between a player and persona already exists which would result in violating the specified `RecallTokensCardinalityConstraint` if the new link was created, replace the already existing link(s) with the new link. For example, if Persona1-Player1 is already linked in the scope of application1 and a new link Persona1-Player2 is attempted to be created in the scope of application1, then the old link will be removed and the new link will be added to replace it." + ], + "type": "string" + }, + "expireTime": { + "description": "Input only. Optional expiration time.", + "format": "google-datetime", + "type": "string" + }, + "persona": { + "description": "Required. Stable identifier of the in-game account. Please refrain from re-using the same persona for different games.", + "type": "string" + }, + "sessionId": { + "description": "Required. Opaque server-generated string that encodes all the necessary information to identify the PGS player / Google user and application.", + "type": "string" + }, + "token": { + "description": "Required. Value of the token to create. Opaque to Play Games and assumed to be non-stable (encrypted with key rotation).", + "type": "string" + }, + "ttl": { + "description": "Input only. Optional time-to-live.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "LinkPersonaResponse": { + "description": "Outcome of a persona linking attempt.", + "id": "LinkPersonaResponse", + "properties": { + "state": { + "description": "Output only. State of a persona linking attempt.", + "enum": [ + "LINK_CREATED", + "PERSONA_OR_PLAYER_ALREADY_LINKED" + ], + "enumDescriptions": [ + "The link specified in the request was created.", + "The link specified in the request was not created because already existing links would result in the new link violating the specified `RecallTokensCardinalityConstraint` if created." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "MetagameConfig": { "description": "The metagame config resource", "id": "MetagameConfig", @@ -2434,12 +2621,10 @@ "friendStatus": { "description": "The friend status of the given player, relative to the requester. This is unset if the player is not sharing their friends list with the game.", "enum": [ - "FRIEND_STATUS_UNSPECIFIED", "NO_RELATIONSHIP", "FRIEND" ], "enumDescriptions": [ - "Default value. This value is unused.", "There is no relationship between the players.", "The player and requester are friends." ], @@ -2493,13 +2678,11 @@ "achievementState": { "description": "The state of the achievement.", "enum": [ - "STATE_UNSPECIFIED", "HIDDEN", "REVEALED", "UNLOCKED" ], "enumDescriptions": [ - "Default value. This value is unused.", "Achievement is hidden.", "Achievement is revealed.", "Achievement is unlocked." @@ -2677,13 +2860,11 @@ "timeSpan": { "description": "The time span of this score.", "enum": [ - "SCORE_TIME_SPAN_UNSPECIFIED", "ALL_TIME", "WEEKLY", "DAILY" ], "enumDescriptions": [ - "Default value. This value is unused.", "The score is an all-time score.", "The score is a weekly score.", "The score is a daily score." @@ -2796,13 +2977,11 @@ "timeSpan": { "description": "The time span for this player score.", "enum": [ - "SCORE_TIME_SPAN_UNSPECIFIED", "ALL_TIME", "WEEKLY", "DAILY" ], "enumDescriptions": [ - "Default value. This value is unused.", "The score is an all-time score.", "The score is a weekly score.", "The score is a daily score." @@ -2838,13 +3017,11 @@ "description": "The time spans where the submitted score is better than the existing score for that time span.", "items": { "enum": [ - "SCORE_TIME_SPAN_UNSPECIFIED", "ALL_TIME", "WEEKLY", "DAILY" ], "enumDescriptions": [ - "Default value. This value is unused.", "The score is an all-time score.", "The score is a weekly score.", "The score is a daily score." @@ -2903,13 +3080,11 @@ "properties": { "friendsListVisibility": { "enum": [ - "FRIENDS_LIST_VISIBILITY_UNSPECIFIED", "VISIBLE", "REQUEST_REQUIRED", "UNAVAILABLE" ], "enumDescriptions": [ - "Unused.", "The friends list is currently visible to the game.", "The developer does not have access to the friends list, but can call the Android API to show a consent dialog.", "The friends list is currently unavailable for this user, and it is not possible to request access at this time, either because the user has permanently declined or the friends feature is not available to them. In this state, any attempts to request access to the friends list will be unsuccessful." @@ -2927,6 +3102,62 @@ }, "type": "object" }, + "RecallToken": { + "description": "Recall token data returned from RetrievePlayerTokens RPC", + "id": "RecallToken", + "properties": { + "expireTime": { + "description": "Optional. Optional expiration time of the token", + "format": "google-datetime", + "type": "string" + }, + "multiPlayerPersona": { + "description": "Required. Whether the persona identified by the token is linked to multiple PGS Players", + "type": "boolean" + }, + "token": { + "description": "Required. Value of the Recall token as it is provided by the client via LinkPersona RPC", + "type": "string" + } + }, + "type": "object" + }, + "ResetPersonaRequest": { + "description": "Request to remove all Recall tokens associated with a persona for an app.", + "id": "ResetPersonaRequest", + "properties": { + "persona": { + "description": "Value of the 'persona' field as it was provided by the client in LinkPersona RPC", + "type": "string" + } + }, + "type": "object" + }, + "ResetPersonaResponse": { + "description": "Response for the ResetPersona RPC", + "id": "ResetPersonaResponse", + "properties": { + "unlinked": { + "description": "Required. Whether any tokens were unlinked as a result of this request.", + "type": "boolean" + } + }, + "type": "object" + }, + "RetrievePlayerTokensResponse": { + "description": "Response for the RetrievePlayerTokens RPC", + "id": "RetrievePlayerTokensResponse", + "properties": { + "tokens": { + "description": "Required. Recall tokens associated with the requested PGS Player principal", + "items": { + "$ref": "RecallToken" + }, + "type": "array" + } + }, + "type": "object" + }, "RevisionCheckResponse": { "description": "A third party checking a revision response.", "id": "RevisionCheckResponse", @@ -2942,13 +3173,11 @@ "revisionStatus": { "description": "The result of the revision check.", "enum": [ - "REVISION_STATUS_UNSPECIFIED", "OK", "DEPRECATED", "INVALID" ], "enumDescriptions": [ - "Default value. This value is unused.", "The revision being used is current.", "There is currently a newer version available, but the revision being used still works.", "The revision being used is not supported in any released version." @@ -3047,11 +3276,9 @@ "type": { "description": "The type of this snapshot.", "enum": [ - "SNAPSHOT_TYPE_UNSPECIFIED", "SAVE_GAME" ], "enumDescriptions": [ - "Default value. This value is unused.", "A snapshot representing a save game." ], "type": "string" @@ -3174,6 +3401,36 @@ } }, "type": "object" + }, + "UnlinkPersonaRequest": { + "description": "Request to remove a Recall token linking PGS principal and an in-game account", + "id": "UnlinkPersonaRequest", + "properties": { + "persona": { + "description": "Value of the 'persona' field as it was provided by the client in LinkPersona RPC", + "type": "string" + }, + "sessionId": { + "description": "Required. Opaque server-generated string that encodes all the necessary information to identify the PGS player / Google user and application.", + "type": "string" + }, + "token": { + "description": "Value of the Recall token as it was provided by the client in LinkPersona RPC", + "type": "string" + } + }, + "type": "object" + }, + "UnlinkPersonaResponse": { + "description": "Response for the UnlinkPersona RPC", + "id": "UnlinkPersonaResponse", + "properties": { + "unlinked": { + "description": "Required. Whether a Recall token specified by the request was deleted. Can be 'false' when there were no Recall tokens satisfied the criteria from the request.", + "type": "boolean" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/gamesconfiguration/v1configuration/gamesconfiguration-api.json b/etc/api/gamesconfiguration/v1configuration/gamesconfiguration-api.json index 4ae629cb98..2937154f80 100644 --- a/etc/api/gamesconfiguration/v1configuration/gamesconfiguration-api.json +++ b/etc/api/gamesconfiguration/v1configuration/gamesconfiguration-api.json @@ -381,7 +381,7 @@ } } }, - "revision": "20230112", + "revision": "20240228", "rootUrl": "https://gamesconfiguration.googleapis.com/", "schemas": { "AchievementConfiguration": { diff --git a/etc/api/gamesmanagement/v1management/gamesmanagement-api.json b/etc/api/gamesmanagement/v1management/gamesmanagement-api.json index 4733563e33..fa53760b02 100644 --- a/etc/api/gamesmanagement/v1management/gamesmanagement-api.json +++ b/etc/api/gamesmanagement/v1management/gamesmanagement-api.json @@ -471,7 +471,7 @@ } } }, - "revision": "20230112", + "revision": "20240228", "rootUrl": "https://gamesmanagement.googleapis.com/", "schemas": { "AchievementResetAllResponse": { diff --git a/etc/api/genomics/v2alpha1/genomics-api.json b/etc/api/genomics/v2alpha1/genomics-api.json index 4c86437bc2..d4e0db91db 100644 --- a/etc/api/genomics/v2alpha1/genomics-api.json +++ b/etc/api/genomics/v2alpha1/genomics-api.json @@ -301,7 +301,7 @@ } } }, - "revision": "20230122", + "revision": "20240227", "rootUrl": "https://genomics.googleapis.com/", "schemas": { "Accelerator": { @@ -1134,6 +1134,7 @@ "description": "The VM network configuration." }, "nvidiaDriverVersion": { + "deprecated": true, "description": "The NVIDIA driver version to use when attaching an NVIDIA GPU accelerator. The version specified here must be compatible with the GPU libraries contained in the container being executed, and must be one of the drivers hosted in the `nvidia-drivers-us-public` bucket on Google Cloud Storage.", "type": "string" }, diff --git a/etc/api/gkehub/v1/gkehub-api.json b/etc/api/gkehub/v1/gkehub-api.json index f0d241c19d..99a296873f 100644 --- a/etc/api/gkehub/v1/gkehub-api.json +++ b/etc/api/gkehub/v1/gkehub-api.json @@ -105,6 +105,54 @@ }, "protocol": "rest", "resources": { + "organizations": { + "resources": { + "locations": { + "resources": { + "fleets": { + "methods": { + "list": { + "description": "Returns all fleets within an organization or a project that the caller has access to.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/fleets", + "httpMethod": "GET", + "id": "gkehub.organizations.locations.fleets.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of fleets to return. The service may return fewer than this value. If unspecified, at most 200 fleets 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 `ListFleets` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListFleets` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The organization or project to list for Fleets under, in the format `organizations/*/locations/*` or `projects/*/locations/*`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/fleets", + "response": { + "$ref": "ListFleetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + } + }, "projects": { "resources": { "locations": { @@ -451,6 +499,158 @@ } } }, + "fleets": { + "methods": { + "create": { + "description": "Creates a fleet.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/fleets", + "httpMethod": "POST", + "id": "gkehub.projects.locations.fleets.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent (project and location) where the Fleet will be created. Specified in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/fleets", + "request": { + "$ref": "Fleet" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Removes a Fleet. There must be no memberships remaining in the Fleet.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/fleets/{fleetsId}", + "httpMethod": "DELETE", + "id": "gkehub.projects.locations.fleets.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Fleet resource name in the format `projects/*/locations/*/fleets/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/fleets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns the details of a fleet.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/fleets/{fleetsId}", + "httpMethod": "GET", + "id": "gkehub.projects.locations.fleets.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Fleet resource name in the format `projects/*/locations/*/fleets/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/fleets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Fleet" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Returns all fleets within an organization or a project that the caller has access to.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/fleets", + "httpMethod": "GET", + "id": "gkehub.projects.locations.fleets.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of fleets to return. The service may return fewer than this value. If unspecified, at most 200 fleets 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 `ListFleets` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListFleets` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The organization or project to list for Fleets under, in the format `organizations/*/locations/*` or `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/fleets", + "response": { + "$ref": "ListFleetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a fleet.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/fleets/{fleetsId}", + "httpMethod": "PATCH", + "id": "gkehub.projects.locations.fleets.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The full, unique resource name of this fleet in the format of `projects/{project}/locations/{location}/fleets/{fleet}`. Each Google Cloud project can have at most one fleet resource, named \"default\".", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/fleets/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The fields to be updated;", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Fleet" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "memberships": { "methods": { "create": { @@ -500,6 +700,11 @@ "name" ], "parameters": { + "force": { + "description": "Optional. If set to true, any subresource from this Membership will also be deleted. Otherwise, the request will only work if the Membership has no subresource.", + "location": "query", + "type": "boolean" + }, "name": { "description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.", "location": "path", @@ -665,7 +870,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent (project and location) where the Memberships will be listed. Specified in the format `projects/*/locations/*`.", + "description": "Required. The parent (project and location) where the Memberships will be listed. Specified in the format `projects/*/locations/*`. `projects/*/locations/-` list memberships in all the regions.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -775,6 +980,170 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "bindings": { + "methods": { + "create": { + "description": "Creates a MembershipBinding.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings", + "httpMethod": "POST", + "id": "gkehub.projects.locations.memberships.bindings.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "membershipBindingId": { + "description": "Required. The ID to use for the MembershipBinding.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent (project and location) where the MembershipBinding will be created. Specified in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/bindings", + "request": { + "$ref": "MembershipBinding" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a MembershipBinding.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings/{bindingsId}", + "httpMethod": "DELETE", + "id": "gkehub.projects.locations.memberships.bindings.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The MembershipBinding resource name in the format `projects/*/locations/*/memberships/*/bindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/bindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns the details of a MembershipBinding.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings/{bindingsId}", + "httpMethod": "GET", + "id": "gkehub.projects.locations.memberships.bindings.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The MembershipBinding resource name in the format `projects/*/locations/*/memberships/*/bindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/bindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "MembershipBinding" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists MembershipBindings.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings", + "httpMethod": "GET", + "id": "gkehub.projects.locations.memberships.bindings.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Lists MembershipBindings that match the filter expression, following the syntax outlined in https://google.aip.dev/160.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token returned by previous call to `ListMembershipBindings` which specifies the position in the list from where to continue listing the resources.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent Membership for which the MembershipBindings will be listed. Specified in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/bindings", + "response": { + "$ref": "ListMembershipBindingsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a MembershipBinding.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings/{bindingsId}", + "httpMethod": "PATCH", + "id": "gkehub.projects.locations.memberships.bindings.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name for the membershipbinding itself `projects/{project}/locations/{location}/memberships/{membership}/bindings/{membershipbinding}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/bindings/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "MembershipBinding" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } }, "operations": { @@ -858,7 +1227,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "gkehub.projects.locations.operations.list", @@ -899,13 +1268,573 @@ ] } } + }, + "scopes": { + "methods": { + "create": { + "description": "Creates a Scope.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/scopes", + "httpMethod": "POST", + "id": "gkehub.projects.locations.scopes.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent (project and location) where the Scope will be created. Specified in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "scopeId": { + "description": "Required. Client chosen ID for the Scope. `scope_id` must be a ????", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/scopes", + "request": { + "$ref": "Scope" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a Scope.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}", + "httpMethod": "DELETE", + "id": "gkehub.projects.locations.scopes.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Scope resource name in the format `projects/*/locations/*/scopes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns the details of a Scope.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Scope resource name in the format `projects/*/locations/*/scopes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Scope" + }, + "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}/scopes/{scopesId}:getIamPolicy", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.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/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Scopes.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/scopes", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token returned by previous call to `ListScopes` which specifies the position in the list from where to continue listing the resources.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent (project and location) where the Scope will be listed. Specified in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/scopes", + "response": { + "$ref": "ListScopesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a scopes.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}", + "httpMethod": "PATCH", + "id": "gkehub.projects.locations.scopes.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name for the scope `projects/{project}/locations/{location}/scopes/{scope}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Scope" + }, + "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}/scopes/{scopesId}:setIamPolicy", + "httpMethod": "POST", + "id": "gkehub.projects.locations.scopes.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/[^/]+/scopes/[^/]+$", + "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}/scopes/{scopesId}:testIamPermissions", + "httpMethod": "POST", + "id": "gkehub.projects.locations.scopes.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/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "namespaces": { + "methods": { + "create": { + "description": "Creates a fleet namespace.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces", + "httpMethod": "POST", + "id": "gkehub.projects.locations.scopes.namespaces.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent (project and location) where the Namespace will be created. Specified in the format `projects/*/locations/*/scopes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + }, + "scopeNamespaceId": { + "description": "Required. Client chosen ID for the Namespace. `namespace_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/namespaces", + "request": { + "$ref": "Namespace" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a fleet namespace.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces/{namespacesId}", + "httpMethod": "DELETE", + "id": "gkehub.projects.locations.scopes.namespaces.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Namespace resource name in the format `projects/*/locations/*/scopes/*/namespaces/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/namespaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns the details of a fleet namespace.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces/{namespacesId}", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.namespaces.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Namespace resource name in the format `projects/*/locations/*/scopes/*/namespaces/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/namespaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Namespace" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists fleet namespaces.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.namespaces.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token returned by previous call to `ListFeatures` which specifies the position in the list from where to continue listing the resources.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent (project and location) where the Features will be listed. Specified in the format `projects/*/locations/*/scopes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/namespaces", + "response": { + "$ref": "ListScopeNamespacesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a fleet namespace.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces/{namespacesId}", + "httpMethod": "PATCH", + "id": "gkehub.projects.locations.scopes.namespaces.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name for the namespace `projects/{project}/locations/{location}/namespaces/{namespace}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/namespaces/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Namespace" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "rbacrolebindings": { + "methods": { + "create": { + "description": "Creates a Scope RBACRoleBinding.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings", + "httpMethod": "POST", + "id": "gkehub.projects.locations.scopes.rbacrolebindings.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent (project and location) where the RBACRoleBinding will be created. Specified in the format `projects/*/locations/*/scopes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + }, + "rbacrolebindingId": { + "description": "Required. Client chosen ID for the RBACRoleBinding. `rbacrolebinding_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/rbacrolebindings", + "request": { + "$ref": "RBACRoleBinding" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a Scope RBACRoleBinding.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings/{rbacrolebindingsId}", + "httpMethod": "DELETE", + "id": "gkehub.projects.locations.scopes.rbacrolebindings.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The RBACRoleBinding resource name in the format `projects/*/locations/*/scopes/*/rbacrolebindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/rbacrolebindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns the details of a Scope RBACRoleBinding.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings/{rbacrolebindingsId}", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.rbacrolebindings.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The RBACRoleBinding resource name in the format `projects/*/locations/*/scopes/*/rbacrolebindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/rbacrolebindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "RBACRoleBinding" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all Scope RBACRoleBindings.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.rbacrolebindings.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token returned by previous call to `ListScopeRBACRoleBindings` which specifies the position in the list from where to continue listing the resources.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent (project and location) where the Features will be listed. Specified in the format `projects/*/locations/*/scopes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/rbacrolebindings", + "response": { + "$ref": "ListScopeRBACRoleBindingsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a Scope RBACRoleBinding.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings/{rbacrolebindingsId}", + "httpMethod": "PATCH", + "id": "gkehub.projects.locations.scopes.rbacrolebindings.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name for the rbacrolebinding `projects/{project}/locations/{location}/scopes/{scope}/rbacrolebindings/{rbacrolebinding}` or `projects/{project}/locations/{location}/memberships/{membership}/rbacrolebindings/{rbacrolebinding}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/rbacrolebindings/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "RBACRoleBinding" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } } } } } } }, - "revision": "20230106", + "revision": "20240225", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "AppDevExperienceFeatureSpec": { @@ -930,7 +1859,7 @@ "id": "ApplianceCluster", "properties": { "resourceLink": { - "description": "Immutable. Self-link of the GCP resource for the Appliance Cluster. For example: //transferappliance.googleapis.com/projects/my-project/locations/us-west1-a/appliances/my-appliance", + "description": "Immutable. Self-link of the Google Cloud resource for the Appliance Cluster. For example: //transferappliance.googleapis.com/projects/my-project/locations/us-west1-a/appliances/my-appliance", "type": "string" } }, @@ -994,7 +1923,7 @@ "type": "string" }, "issuer": { - "description": "Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length <2000 characters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).", + "description": "Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length <2000 characters, it must use `location` rather than `zone` for GKE clusters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).", "type": "string" }, "oidcJwks": { @@ -1010,6 +1939,34 @@ }, "type": "object" }, + "BinaryAuthorizationConfig": { + "description": "BinaryAuthorizationConfig defines the fleet level configuration of binary authorization feature.", + "id": "BinaryAuthorizationConfig", + "properties": { + "evaluationMode": { + "description": "Optional. Mode of operation for binauthz policy evaluation.", + "enum": [ + "EVALUATION_MODE_UNSPECIFIED", + "DISABLED", + "POLICY_BINDINGS" + ], + "enumDescriptions": [ + "Default value", + "Disable BinaryAuthorization", + "Use Binary Authorization with the policies specified in policy_bindings." + ], + "type": "string" + }, + "policyBindings": { + "description": "Optional. Binauthz policies that apply to this cluster.", + "items": { + "$ref": "PolicyBinding" + }, + "type": "array" + } + }, + "type": "object" + }, "Binding": { "description": "Associates `members`, or principals, with a `role`.", "id": "Binding", @@ -1019,14 +1976,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1038,6 +1995,253 @@ "properties": {}, "type": "object" }, + "ClusterUpgradeFleetSpec": { + "description": "**ClusterUpgrade**: The configuration for the fleet-level ClusterUpgrade feature.", + "id": "ClusterUpgradeFleetSpec", + "properties": { + "gkeUpgradeOverrides": { + "description": "Allow users to override some properties of each GKE upgrade.", + "items": { + "$ref": "ClusterUpgradeGKEUpgradeOverride" + }, + "type": "array" + }, + "postConditions": { + "$ref": "ClusterUpgradePostConditions", + "description": "Required. Post conditions to evaluate to mark an upgrade COMPLETE. Required." + }, + "upstreamFleets": { + "description": "This fleet consumes upgrades that have COMPLETE status code in the upstream fleets. See UpgradeStatus.Code for code definitions. The fleet name should be either fleet project number or id. This is defined as repeated for future proof reasons. Initial implementation will enforce at most one upstream fleet.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClusterUpgradeFleetState": { + "description": "**ClusterUpgrade**: The state for the fleet-level ClusterUpgrade feature.", + "id": "ClusterUpgradeFleetState", + "properties": { + "downstreamFleets": { + "description": "This fleets whose upstream_fleets contain the current fleet. The fleet name should be either fleet project number or id.", + "items": { + "type": "string" + }, + "type": "array" + }, + "gkeState": { + "$ref": "ClusterUpgradeGKEUpgradeFeatureState", + "description": "Feature state for GKE clusters." + }, + "ignored": { + "additionalProperties": { + "$ref": "ClusterUpgradeIgnoredMembership" + }, + "description": "A list of memberships ignored by the feature. For example, manually upgraded clusters can be ignored if they are newer than the default versions of its release channel. The membership resource is in the format: `projects/{p}/locations/{l}/membership/{m}`.", + "type": "object" + } + }, + "type": "object" + }, + "ClusterUpgradeGKEUpgrade": { + "description": "GKEUpgrade represents a GKE provided upgrade, e.g., control plane upgrade.", + "id": "ClusterUpgradeGKEUpgrade", + "properties": { + "name": { + "description": "Name of the upgrade, e.g., \"k8s_control_plane\". It should be a valid upgrade name. It must not exceet 99 characters.", + "type": "string" + }, + "version": { + "description": "Version of the upgrade, e.g., \"1.22.1-gke.100\". It should be a valid version. It must not exceet 99 characters.", + "type": "string" + } + }, + "type": "object" + }, + "ClusterUpgradeGKEUpgradeFeatureCondition": { + "description": "GKEUpgradeFeatureCondition describes the condition of the feature for GKE clusters at a certain point of time.", + "id": "ClusterUpgradeGKEUpgradeFeatureCondition", + "properties": { + "reason": { + "description": "Reason why the feature is in this status.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of the condition, for example, \"ready\".", + "type": "string" + }, + "updateTime": { + "description": "Last timestamp the condition was updated.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "ClusterUpgradeGKEUpgradeFeatureState": { + "description": "GKEUpgradeFeatureState contains feature states for GKE clusters in the scope.", + "id": "ClusterUpgradeGKEUpgradeFeatureState", + "properties": { + "conditions": { + "description": "Current conditions of the feature.", + "items": { + "$ref": "ClusterUpgradeGKEUpgradeFeatureCondition" + }, + "type": "array" + }, + "upgradeState": { + "description": "Upgrade state. It will eventually replace `state`.", + "items": { + "$ref": "ClusterUpgradeGKEUpgradeState" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClusterUpgradeGKEUpgradeOverride": { + "description": "Properties of a GKE upgrade that can be overridden by the user. For example, a user can skip soaking by overriding the soaking to 0.", + "id": "ClusterUpgradeGKEUpgradeOverride", + "properties": { + "postConditions": { + "$ref": "ClusterUpgradePostConditions", + "description": "Required. Post conditions to override for the specified upgrade (name + version). Required." + }, + "upgrade": { + "$ref": "ClusterUpgradeGKEUpgrade", + "description": "Required. Which upgrade to override. Required." + } + }, + "type": "object" + }, + "ClusterUpgradeGKEUpgradeState": { + "description": "GKEUpgradeState is a GKEUpgrade and its state at the scope and fleet level.", + "id": "ClusterUpgradeGKEUpgradeState", + "properties": { + "stats": { + "additionalProperties": { + "format": "int64", + "type": "string" + }, + "description": "Number of GKE clusters in each status code.", + "type": "object" + }, + "status": { + "$ref": "ClusterUpgradeUpgradeStatus", + "description": "Status of the upgrade." + }, + "upgrade": { + "$ref": "ClusterUpgradeGKEUpgrade", + "description": "Which upgrade to track the state." + } + }, + "type": "object" + }, + "ClusterUpgradeIgnoredMembership": { + "description": "IgnoredMembership represents a membership ignored by the feature. A membership can be ignored because it was manually upgraded to a newer version than RC default.", + "id": "ClusterUpgradeIgnoredMembership", + "properties": { + "ignoredTime": { + "description": "Time when the membership was first set to ignored.", + "format": "google-datetime", + "type": "string" + }, + "reason": { + "description": "Reason why the membership is ignored.", + "type": "string" + } + }, + "type": "object" + }, + "ClusterUpgradeMembershipGKEUpgradeState": { + "description": "ScopeGKEUpgradeState is a GKEUpgrade and its state per-membership.", + "id": "ClusterUpgradeMembershipGKEUpgradeState", + "properties": { + "status": { + "$ref": "ClusterUpgradeUpgradeStatus", + "description": "Status of the upgrade." + }, + "upgrade": { + "$ref": "ClusterUpgradeGKEUpgrade", + "description": "Which upgrade to track the state." + } + }, + "type": "object" + }, + "ClusterUpgradeMembershipState": { + "description": "Per-membership state for this feature.", + "id": "ClusterUpgradeMembershipState", + "properties": { + "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." + }, + "upgrades": { + "description": "Actual upgrade state against desired.", + "items": { + "$ref": "ClusterUpgradeMembershipGKEUpgradeState" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClusterUpgradePostConditions": { + "description": "Post conditional checks after an upgrade has been applied on all eligible clusters.", + "id": "ClusterUpgradePostConditions", + "properties": { + "soaking": { + "description": "Required. Amount of time to \"soak\" after a rollout has been finished before marking it COMPLETE. Cannot exceed 30 days. Required.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "ClusterUpgradeUpgradeStatus": { + "description": "UpgradeStatus provides status information for each upgrade.", + "id": "ClusterUpgradeUpgradeStatus", + "properties": { + "code": { + "description": "Status code of the upgrade.", + "enum": [ + "CODE_UNSPECIFIED", + "INELIGIBLE", + "PENDING", + "IN_PROGRESS", + "SOAKING", + "FORCED_SOAKING", + "COMPLETE" + ], + "enumDescriptions": [ + "Required by https://linter.aip.dev/126/unspecified.", + "The upgrade is ineligible. At the scope level, this means the upgrade is ineligible for all the clusters in the scope.", + "The upgrade is pending. At the scope level, this means the upgrade is pending for all the clusters in the scope.", + "The upgrade is in progress. At the scope level, this means the upgrade is in progress for at least one cluster in the scope.", + "The upgrade has finished and is soaking until the soaking time is up. At the scope level, this means at least one cluster is in soaking while the rest are either soaking or complete.", + "A cluster will be forced to enter soaking if an upgrade doesn't finish within a certain limit, despite it's actual status.", + "The upgrade has passed all post conditions (soaking). At the scope level, this means all eligible clusters are in COMPLETE status." + ], + "type": "string" + }, + "reason": { + "description": "Reason for this status.", + "type": "string" + }, + "updateTime": { + "description": "Last timestamp the status was updated.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "CommonFeatureSpec": { "description": "CommonFeatureSpec contains Hub-wide configuration information", "id": "CommonFeatureSpec", @@ -1046,6 +2250,14 @@ "$ref": "AppDevExperienceFeatureSpec", "description": "Appdevexperience specific spec." }, + "clusterupgrade": { + "$ref": "ClusterUpgradeFleetSpec", + "description": "ClusterUpgrade (fleet-based) feature spec." + }, + "dataplanev2": { + "$ref": "DataplaneV2FeatureSpec", + "description": "DataplaneV2 feature spec." + }, "fleetobservability": { "$ref": "FleetObservabilityFeatureSpec", "description": "FleetObservability feature spec." @@ -1065,6 +2277,10 @@ "$ref": "AppDevExperienceFeatureState", "description": "Appdevexperience specific state." }, + "clusterupgrade": { + "$ref": "ClusterUpgradeFleetState", + "description": "ClusterUpgrade fleet-level state." + }, "fleetobservability": { "$ref": "FleetObservabilityFeatureState", "description": "FleetObservability feature state." @@ -1077,22 +2293,50 @@ }, "type": "object" }, + "CommonFleetDefaultMemberConfigSpec": { + "description": "CommonFleetDefaultMemberConfigSpec contains default configuration information for memberships of a fleet", + "id": "CommonFleetDefaultMemberConfigSpec", + "properties": { + "configmanagement": { + "$ref": "ConfigManagementMembershipSpec", + "description": "Config Management-specific spec." + }, + "identityservice": { + "$ref": "IdentityServiceMembershipSpec", + "description": "Identity Service-specific spec." + }, + "mesh": { + "$ref": "ServiceMeshMembershipSpec", + "description": "Anthos Service Mesh-specific spec" + }, + "policycontroller": { + "$ref": "PolicyControllerMembershipSpec", + "description": "Policy Controller spec." + } + }, + "type": "object" + }, "ConfigManagementConfigSync": { "description": "Configuration for Config Sync", "id": "ConfigManagementConfigSync", "properties": { "allowVerticalScale": { + "deprecated": true, "description": "Set to true to allow the vertical scaling. Defaults to false which disallows vertical scaling. This field is deprecated.", "type": "boolean" }, "enabled": { - "description": "Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of git field.", + "description": "Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.", "type": "boolean" }, "git": { "$ref": "ConfigManagementGitConfig", "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.", + "type": "string" + }, "oci": { "$ref": "ConfigManagementOciConfig", "description": "OCI repo configuration for the cluster" @@ -1118,13 +2362,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1134,13 +2380,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1150,13 +2398,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1166,13 +2416,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1182,13 +2434,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1198,13 +2452,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1214,19 +2470,32 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" } }, "type": "object" }, + "ConfigManagementConfigSyncError": { + "description": "Errors pertaining to the installation of Config Sync", + "id": "ConfigManagementConfigSyncError", + "properties": { + "errorMessage": { + "description": "A string representing the user facing error message", + "type": "string" + } + }, + "type": "object" + }, "ConfigManagementConfigSyncState": { "description": "State information for ConfigSync", "id": "ConfigManagementConfigSyncState", @@ -1235,6 +2504,67 @@ "$ref": "ConfigManagementConfigSyncDeploymentState", "description": "Information about the deployment of ConfigSync, including the version of the various Pods deployed" }, + "errors": { + "description": "Errors pertaining to the installation of Config Sync.", + "items": { + "$ref": "ConfigManagementConfigSyncError" + }, + "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" @@ -1314,13 +2644,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1330,13 +2662,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1346,13 +2680,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" } @@ -1364,7 +2700,7 @@ "id": "ConfigManagementGitConfig", "properties": { "gcpServiceAccountEmail": { - "description": "The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.", + "description": "The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.", "type": "string" }, "httpsProxy": { @@ -1447,13 +2783,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1463,13 +2801,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" } @@ -1521,6 +2861,10 @@ "description": "**Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR.", "id": "ConfigManagementMembershipSpec", "properties": { + "cluster": { + "description": "The user-specified cluster name used by Config Sync cluster-name-selector annotation or ClusterSelector, for applying configs to only a subset of clusters. Omit this field if the cluster's fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector. Set this field if a name different from the cluster's fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector.", + "type": "string" + }, "configSync": { "$ref": "ConfigManagementConfigSync", "description": "Config Sync configuration for the cluster." @@ -1529,6 +2873,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." @@ -1545,7 +2903,7 @@ "id": "ConfigManagementMembershipState", "properties": { "clusterName": { - "description": "The user-defined name for the cluster used by ClusterSelectors to group clusters together. This should match Membership's membership_name, unless the user installed ACM on the cluster manually prior to enabling the ACM hub feature. Unique within a Anthos Config Management installation.", + "description": "This field is set to the `cluster_name` field of the Membership Spec if it is not empty. Otherwise, it is set to the cluster's fleet membership name.", "type": "string" }, "configSyncState": { @@ -1576,7 +2934,7 @@ "id": "ConfigManagementOciConfig", "properties": { "gcpServiceAccountEmail": { - "description": "The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.", + "description": "The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.", "type": "string" }, "policyDir": { @@ -1609,13 +2967,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1672,6 +3032,38 @@ "templateLibraryInstalled": { "description": "Installs the default template library along with Policy Controller.", "type": "boolean" + }, + "updateTime": { + "description": "Output only. Last time this membership spec was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ConfigManagementPolicyControllerMigration": { + "description": "State for the migration of PolicyController from ACM -> PoCo Hub.", + "id": "ConfigManagementPolicyControllerMigration", + "properties": { + "copyTime": { + "description": "Last time this membership spec was copied to PoCo feature.", + "format": "google-datetime", + "type": "string" + }, + "stage": { + "description": "Stage of the migration.", + "enum": [ + "STAGE_UNSPECIFIED", + "ACM_MANAGED", + "POCO_MANAGED" + ], + "enumDescriptions": [ + "Unknown state of migration.", + "ACM Hub/Operator manages policycontroller. No migration yet completed.", + "All migrations steps complete; Poco Hub now manages policycontroller." + ], + "type": "string" } }, "type": "object" @@ -1708,6 +3100,10 @@ "$ref": "ConfigManagementGatekeeperDeploymentState", "description": "The state about the policy controller installation." }, + "migration": { + "$ref": "ConfigManagementPolicyControllerMigration", + "description": "Record state of ACM -> PoCo Hub migration for this feature." + }, "version": { "$ref": "ConfigManagementPolicyControllerVersion", "description": "The version of Gatekeeper Policy Controller deployed." @@ -1765,12 +3161,12 @@ "UNREACHABLE" ], "enumDescriptions": [ - "ACM cannot determine a sync code", - "ACM successfully synced the git Repo with the cluster", - "ACM is in the progress of syncing a new change", - "Indicates an error configuring ACM, and user action is required", - "ACM has been installed (operator manifest deployed), but not configured.", - "ACM has not been installed (no operator pod found)", + "Config Sync cannot determine a sync code", + "Config Sync successfully synced the git Repo with the cluster", + "Config Sync is in the progress of syncing a new change", + "Indicates an error configuring Config Sync, and user action is required", + "Config Sync has been installed but not configured", + "Config Sync has not been installed", "Error authorizing with the cluster", "Cluster could not be reached" ], @@ -1788,6 +3184,7 @@ "type": "string" }, "lastSync": { + "deprecated": true, "description": "Deprecated: use last_sync_time instead. Timestamp of when ACM last successfully synced the repo The time format is specified in https://golang.org/pkg/time/#Time.String", "type": "string" }, @@ -1822,12 +3219,38 @@ }, "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", + "properties": { + "binaryAuthorizationConfig": { + "$ref": "BinaryAuthorizationConfig", + "description": "Optional. Enable/Disable binary authorization features for the cluster." + }, + "securityPostureConfig": { + "$ref": "SecurityPostureConfig", + "description": "Enable/Disable Security Posture features for the cluster." + } + }, + "type": "object" + }, "EdgeCluster": { "description": "EdgeCluster contains information specific to Google Edge Clusters.", "id": "EdgeCluster", "properties": { "resourceLink": { - "description": "Immutable. Self-link of the GCP resource for the Edge Cluster. For example: //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster", + "description": "Immutable. Self-link of the Google Cloud resource for the Edge Cluster. For example: //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster", "type": "string" } }, @@ -1878,11 +3301,15 @@ "readOnly": true, "type": "string" }, + "fleetDefaultMemberConfig": { + "$ref": "CommonFleetDefaultMemberConfigSpec", + "description": "Optional. Feature configuration applicable to all memberships of the fleet." + }, "labels": { "additionalProperties": { "type": "string" }, - "description": "GCP labels for this Feature.", + "description": "Labels for this Feature.", "type": "object" }, "membershipSpecs": { @@ -2002,16 +3429,195 @@ }, "type": "object" }, + "Fleet": { + "description": "Fleet contains the Fleet-wide metadata and configuration.", + "id": "Fleet", + "properties": { + "createTime": { + "description": "Output only. When the Fleet was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "defaultClusterConfig": { + "$ref": "DefaultClusterConfig", + "description": "Optional. The default cluster configurations to apply across the fleet." + }, + "deleteTime": { + "description": "Output only. When the Fleet was deleted.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Optional. A user-assigned display name of the Fleet. When present, it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `Production Fleet`", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels for this Fleet.", + "type": "object" + }, + "name": { + "description": "Output only. The full, unique resource name of this fleet in the format of `projects/{project}/locations/{location}/fleets/{fleet}`. Each Google Cloud project can have at most one fleet resource, named \"default\".", + "readOnly": true, + "type": "string" + }, + "state": { + "$ref": "FleetLifecycleState", + "description": "Output only. State of the namespace resource.", + "readOnly": true + }, + "uid": { + "description": "Output only. Google-generated UUID for this resource. This is unique across all Fleet resources. If a Fleet resource is deleted and another resource with the same name is created, it gets a different uid.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. When the Fleet was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "FleetLifecycleState": { + "description": "FleetLifecycleState describes the state of a Fleet resource.", + "id": "FleetLifecycleState", + "properties": { + "code": { + "description": "Output only. The current state of the Fleet resource.", + "enum": [ + "CODE_UNSPECIFIED", + "CREATING", + "READY", + "DELETING", + "UPDATING" + ], + "enumDescriptions": [ + "The code is not set.", + "The fleet is being created.", + "The fleet active.", + "The fleet is being deleted.", + "The fleet is being updated." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "FleetObservabilityFeatureError": { + "description": "All error details of the fleet observability feature.", + "id": "FleetObservabilityFeatureError", + "properties": { + "code": { + "description": "The code of the error.", + "type": "string" + }, + "description": { + "description": "A human-readable description of the current status.", + "type": "string" + } + }, + "type": "object" + }, "FleetObservabilityFeatureSpec": { "description": "**Fleet Observability**: The Hub-wide input for the FleetObservability feature.", "id": "FleetObservabilityFeatureSpec", - "properties": {}, + "properties": { + "loggingConfig": { + "$ref": "FleetObservabilityLoggingConfig", + "description": "Specified if fleet logging feature is enabled for the entire fleet. If UNSPECIFIED, fleet logging feature is disabled for the entire fleet." + } + }, "type": "object" }, "FleetObservabilityFeatureState": { - "description": "**FleetObservability**: An empty state left as an example Hub-wide Feature state.", + "description": "**FleetObservability**: Hub-wide Feature for FleetObservability feature. state.", "id": "FleetObservabilityFeatureState", - "properties": {}, + "properties": { + "logging": { + "$ref": "FleetObservabilityFleetObservabilityLoggingState", + "description": "The feature state of default logging." + }, + "monitoring": { + "$ref": "FleetObservabilityFleetObservabilityMonitoringState", + "description": "The feature state of fleet monitoring." + } + }, + "type": "object" + }, + "FleetObservabilityFleetObservabilityBaseFeatureState": { + "description": "Base state for fleet observability feature.", + "id": "FleetObservabilityFleetObservabilityBaseFeatureState", + "properties": { + "code": { + "description": "The high-level, machine-readable status of this Feature.", + "enum": [ + "CODE_UNSPECIFIED", + "OK", + "ERROR" + ], + "enumDescriptions": [ + "Unknown or not set.", + "The Feature is operating normally.", + "The Feature is encountering errors in the reconciliation. The Feature may need intervention to return to normal operation. See the description and any associated Feature-specific details for more information." + ], + "type": "string" + }, + "errors": { + "description": "Errors after reconciling the monitoring and logging feature if the code is not OK.", + "items": { + "$ref": "FleetObservabilityFeatureError" + }, + "type": "array" + } + }, + "type": "object" + }, + "FleetObservabilityFleetObservabilityLoggingState": { + "description": "Feature state for logging feature.", + "id": "FleetObservabilityFleetObservabilityLoggingState", + "properties": { + "defaultLog": { + "$ref": "FleetObservabilityFleetObservabilityBaseFeatureState", + "description": "The base feature state of fleet default log." + }, + "scopeLog": { + "$ref": "FleetObservabilityFleetObservabilityBaseFeatureState", + "description": "The base feature state of fleet scope log." + } + }, + "type": "object" + }, + "FleetObservabilityFleetObservabilityMonitoringState": { + "description": "Feature state for monitoring feature.", + "id": "FleetObservabilityFleetObservabilityMonitoringState", + "properties": { + "state": { + "$ref": "FleetObservabilityFleetObservabilityBaseFeatureState", + "description": "The base feature state of fleet monitoring feature." + } + }, + "type": "object" + }, + "FleetObservabilityLoggingConfig": { + "description": "LoggingConfig defines the configuration for different types of logs.", + "id": "FleetObservabilityLoggingConfig", + "properties": { + "defaultConfig": { + "$ref": "FleetObservabilityRoutingConfig", + "description": "Specified if applying the default routing config to logs not specified in other configs." + }, + "fleetScopeLogsConfig": { + "$ref": "FleetObservabilityRoutingConfig", + "description": "Specified if applying the routing config to all logs for all fleet scopes." + } + }, "type": "object" }, "FleetObservabilityMembershipSpec": { @@ -2021,11 +3627,32 @@ "type": "object" }, "FleetObservabilityMembershipState": { - "description": "**FleetObservability**: An empty state left as an example membership-specific Feature state.", + "description": "**FleetObservability**: Membership-specific Feature state for fleetobservability.", "id": "FleetObservabilityMembershipState", "properties": {}, "type": "object" }, + "FleetObservabilityRoutingConfig": { + "description": "RoutingConfig configures the behaviour of fleet logging feature.", + "id": "FleetObservabilityRoutingConfig", + "properties": { + "mode": { + "description": "mode configures the logs routing mode.", + "enum": [ + "MODE_UNSPECIFIED", + "COPY", + "MOVE" + ], + "enumDescriptions": [ + "If UNSPECIFIED, fleet logging feature is disabled.", + "logs will be copied to the destination project.", + "logs will be moved to the destination project." + ], + "type": "string" + } + }, + "type": "object" + }, "GenerateConnectManifestResponse": { "description": "GenerateConnectManifestResponse contains manifest information for installing/upgrading a Connect agent.", "id": "GenerateConnectManifestResponse", @@ -2050,7 +3677,7 @@ "type": "boolean" }, "resourceLink": { - "description": "Immutable. Self-link of the GCP resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.", + "description": "Immutable. Self-link of the Google Cloud resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.", "type": "string" } }, @@ -2093,7 +3720,7 @@ }, "googleConfig": { "$ref": "IdentityServiceGoogleConfig", - "description": "GoogleConfig specific configuration" + "description": "GoogleConfig specific configuration." }, "name": { "description": "Identifier for auth config.", @@ -2352,6 +3979,24 @@ }, "type": "object" }, + "ListFleetsResponse": { + "description": "Response message for the `GkeHub.ListFleetsResponse` method.", + "id": "ListFleetsResponse", + "properties": { + "fleets": { + "description": "The list of matching fleets.", + "items": { + "$ref": "Fleet" + }, + "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. The token is only valid for 1h.", + "type": "string" + } + }, + "type": "object" + }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -2370,6 +4015,24 @@ }, "type": "object" }, + "ListMembershipBindingsResponse": { + "description": "List of MembershipBindings.", + "id": "ListMembershipBindingsResponse", + "properties": { + "membershipBindings": { + "description": "The list of membership_bindings", + "items": { + "$ref": "MembershipBinding" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to request the next page of resources from the `ListMembershipBindings` method. The value of an empty string means that there are no more resources to return.", + "type": "string" + } + }, + "type": "object" + }, "ListMembershipsResponse": { "description": "Response message for the `GkeHub.ListMemberships` method.", "id": "ListMembershipsResponse", @@ -2413,8 +4076,62 @@ }, "type": "object" }, + "ListScopeNamespacesResponse": { + "description": "List of fleet namespaces.", + "id": "ListScopeNamespacesResponse", + "properties": { + "nextPageToken": { + "description": "A token to request the next page of resources from the `ListNamespaces` method. The value of an empty string means that there are no more resources to return.", + "type": "string" + }, + "scopeNamespaces": { + "description": "The list of fleet namespaces", + "items": { + "$ref": "Namespace" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListScopeRBACRoleBindingsResponse": { + "description": "List of Scope RBACRoleBindings.", + "id": "ListScopeRBACRoleBindingsResponse", + "properties": { + "nextPageToken": { + "description": "A token to request the next page of resources from the `ListScopeRBACRoleBindings` method. The value of an empty string means that there are no more resources to return.", + "type": "string" + }, + "rbacrolebindings": { + "description": "The list of Scope RBACRoleBindings.", + "items": { + "$ref": "RBACRoleBinding" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListScopesResponse": { + "description": "List of Scopes.", + "id": "ListScopesResponse", + "properties": { + "nextPageToken": { + "description": "A token to request the next page of resources from the `ListScopes` method. The value of an empty string means that there are no more resources to return.", + "type": "string" + }, + "scopes": { + "description": "The list of Scopes", + "items": { + "$ref": "Scope" + }, + "type": "array" + } + }, + "type": "object" + }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -2484,7 +4201,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. GCP labels for this membership.", + "description": "Optional. Labels for this membership.", "type": "object" }, "lastConnectionTime": { @@ -2493,6 +4210,10 @@ "readOnly": true, "type": "string" }, + "monitoringConfig": { + "$ref": "MonitoringConfig", + "description": "Optional. The monitoring config information for this membership." + }, "name": { "description": "Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", "readOnly": true, @@ -2517,6 +4238,82 @@ }, "type": "object" }, + "MembershipBinding": { + "description": "MembershipBinding is a subresource of a Membership, representing what Fleet Scopes (or other, future Fleet resources) a Membership is bound to.", + "id": "MembershipBinding", + "properties": { + "createTime": { + "description": "Output only. When the membership binding was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deleteTime": { + "description": "Output only. When the membership binding was deleted.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels for this MembershipBinding.", + "type": "object" + }, + "name": { + "description": "The resource name for the membershipbinding itself `projects/{project}/locations/{location}/memberships/{membership}/bindings/{membershipbinding}`", + "type": "string" + }, + "scope": { + "description": "A Scope resource name in the format `projects/*/locations/*/scopes/*`.", + "type": "string" + }, + "state": { + "$ref": "MembershipBindingLifecycleState", + "description": "Output only. State of the membership binding resource.", + "readOnly": true + }, + "uid": { + "description": "Output only. Google-generated UUID for this resource. This is unique across all membershipbinding resources. If a membershipbinding resource is deleted and another resource with the same name is created, it gets a different uid.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. When the membership binding was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "MembershipBindingLifecycleState": { + "description": "MembershipBindingLifecycleState describes the state of a Binding resource.", + "id": "MembershipBindingLifecycleState", + "properties": { + "code": { + "description": "Output only. The current state of the MembershipBinding resource.", + "enum": [ + "CODE_UNSPECIFIED", + "CREATING", + "READY", + "DELETING", + "UPDATING" + ], + "enumDescriptions": [ + "The code is not set.", + "The membershipbinding is being created.", + "The membershipbinding active.", + "The membershipbinding is being deleted.", + "The membershipbinding is being updated." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "MembershipEndpoint": { "description": "MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata.", "id": "MembershipEndpoint", @@ -2533,6 +4330,11 @@ "$ref": "GkeCluster", "description": "Optional. Specific information for a GKE-on-GCP cluster." }, + "googleManaged": { + "description": "Output only. Whether the lifecycle of this membership is managed by a google cluster platform service.", + "readOnly": true, + "type": "boolean" + }, "kubernetesMetadata": { "$ref": "KubernetesMetadata", "description": "Output only. Useful Kubernetes-specific metadata.", @@ -2554,17 +4356,13 @@ "type": "object" }, "MembershipFeatureSpec": { - "description": "MembershipFeatureSpec contains configuration information for a single Membership.", + "description": "MembershipFeatureSpec contains configuration information for a single Membership. NOTE: Please use snake case in your feature name.", "id": "MembershipFeatureSpec", "properties": { "configmanagement": { "$ref": "ConfigManagementMembershipSpec", "description": "Config Management-specific spec." }, - "fleetInherited": { - "description": "True if value of `feature_spec` was inherited from a fleet-level default.", - "type": "boolean" - }, "fleetobservability": { "$ref": "FleetObservabilityMembershipSpec", "description": "Fleet observability membership spec" @@ -2576,6 +4374,14 @@ "mesh": { "$ref": "ServiceMeshMembershipSpec", "description": "Anthos Service Mesh-specific spec" + }, + "origin": { + "$ref": "Origin", + "description": "Whether this per-Membership spec was inherited from a fleet-level default. This field can be updated by users by either overriding a Membership config (updated to USER implicitly) or setting to FLEET explicitly." + }, + "policycontroller": { + "$ref": "PolicyControllerMembershipSpec", + "description": "Policy Controller spec." } }, "type": "object" @@ -2588,6 +4394,10 @@ "$ref": "AppDevExperienceFeatureState", "description": "Appdevexperience specific state." }, + "clusterupgrade": { + "$ref": "ClusterUpgradeMembershipState", + "description": "ClusterUpgrade state." + }, "configmanagement": { "$ref": "ConfigManagementMembershipState", "description": "Config Management-specific state." @@ -2600,6 +4410,10 @@ "$ref": "IdentityServiceMembershipState", "description": "Identity Service-specific state." }, + "policycontroller": { + "$ref": "PolicyControllerMembershipState", + "description": "Policycontroller-specific state." + }, "servicemesh": { "$ref": "ServiceMeshMembershipState", "description": "Service Mesh-specific state." @@ -2639,6 +4453,33 @@ }, "type": "object" }, + "MonitoringConfig": { + "description": "MonitoringConfig informs Fleet-based applications/services/UIs how the metrics for the underlying cluster is reported to cloud monitoring services. It can be set from empty to non-empty, but can't be mutated directly to prevent accidentally breaking the constinousty of metrics.", + "id": "MonitoringConfig", + "properties": { + "cluster": { + "description": "Optional. Cluster name used to report metrics. For Anthos on VMWare/Baremetal/MultiCloud clusters, it would be in format {cluster_type}/{cluster_name}, e.g., \"awsClusters/cluster_1\".", + "type": "string" + }, + "clusterHash": { + "description": "Optional. For GKE and Multicloud clusters, this is the UUID of the cluster resource. For VMWare and Baremetal clusters, this is the kube-system UID.", + "type": "string" + }, + "kubernetesMetricsPrefix": { + "description": "Optional. Kubernetes system metrics, if available, are written to this prefix. This defaults to kubernetes.io for GKE, and kubernetes.io/anthos for Anthos eventually. Noted: Anthos MultiCloud will have kubernetes.io prefix today but will migration to be under kubernetes.io/anthos.", + "type": "string" + }, + "location": { + "description": "Optional. Location used to report Metrics", + "type": "string" + }, + "projectId": { + "description": "Optional. Project used to report Metrics", + "type": "string" + } + }, + "type": "object" + }, "MultiCloudCluster": { "description": "MultiCloudCluster contains information specific to GKE Multi-Cloud clusters.", "id": "MultiCloudCluster", @@ -2649,7 +4490,7 @@ "type": "boolean" }, "resourceLink": { - "description": "Immutable. Self-link of the GCP resource for the GKE Multi-Cloud cluster. For example: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/azureClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/attachedClusters/my-cluster", + "description": "Immutable. Self-link of the Google Cloud resource for the GKE Multi-Cloud cluster. For example: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/azureClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/attachedClusters/my-cluster", "type": "string" } }, @@ -2666,6 +4507,89 @@ }, "type": "object" }, + "Namespace": { + "description": "Namespace represents a namespace across the Fleet", + "id": "Namespace", + "properties": { + "createTime": { + "description": "Output only. When the namespace was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deleteTime": { + "description": "Output only. When the namespace was deleted.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels for this Namespace.", + "type": "object" + }, + "name": { + "description": "The resource name for the namespace `projects/{project}/locations/{location}/namespaces/{namespace}`", + "type": "string" + }, + "namespaceLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Namespace-level cluster namespace labels. These labels are applied to the related namespace of the member clusters bound to the parent Scope. Scope-level labels (`namespace_labels` in the Fleet Scope resource) take precedence over Namespace-level labels if they share a key. Keys and values must be Kubernetes-conformant.", + "type": "object" + }, + "scope": { + "description": "Required. Scope associated with the namespace", + "type": "string" + }, + "state": { + "$ref": "NamespaceLifecycleState", + "description": "Output only. State of the namespace resource.", + "readOnly": true + }, + "uid": { + "description": "Output only. Google-generated UUID for this resource. This is unique across all namespace resources. If a namespace resource is deleted and another resource with the same name is created, it gets a different uid.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. When the namespace was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "NamespaceLifecycleState": { + "description": "NamespaceLifecycleState describes the state of a Namespace resource.", + "id": "NamespaceLifecycleState", + "properties": { + "code": { + "description": "Output only. The current state of the Namespace resource.", + "enum": [ + "CODE_UNSPECIFIED", + "CREATING", + "READY", + "DELETING", + "UPDATING" + ], + "enumDescriptions": [ + "The code is not set.", + "The namespace is being created.", + "The namespace active.", + "The namespace is being deleted.", + "The namespace is being updated." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "OnPremCluster": { "description": "OnPremCluster contains information specific to GKE On-Prem clusters.", "id": "OnPremCluster", @@ -2698,7 +4622,7 @@ "type": "string" }, "resourceLink": { - "description": "Immutable. Self-link of the GCP resource for the GKE On-Prem cluster. For example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/bareMetalClusters/my-cluster", + "description": "Immutable. Self-link of the Google Cloud resource for the GKE On-Prem cluster. For example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/bareMetalClusters/my-cluster", "type": "string" } }, @@ -2733,7 +4657,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" } }, @@ -2783,8 +4707,31 @@ }, "type": "object" }, + "Origin": { + "description": "Origin defines where this MembershipFeatureSpec originated from.", + "id": "Origin", + "properties": { + "type": { + "description": "Type specifies which type of origin is set.", + "enum": [ + "TYPE_UNSPECIFIED", + "FLEET", + "FLEET_OUT_OF_SYNC", + "USER" + ], + "enumDescriptions": [ + "Type is unknown or not set.", + "Per-Membership spec was inherited from the fleet-level default.", + "Per-Membership spec was inherited from the fleet-level default but is now out of sync with the current default.", + "Per-Membership spec was inherited from a user specification." + ], + "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/).", + "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": { @@ -2814,6 +4761,464 @@ }, "type": "object" }, + "PolicyBinding": { + "description": "Binauthz policy that applies to this cluster.", + "id": "PolicyBinding", + "properties": { + "name": { + "description": "The relative resource name of the binauthz platform policy to audit. GKE platform policies have the following format: `projects/{project_number}/platforms/gke/policies/{policy_id}`.", + "type": "string" + } + }, + "type": "object" + }, + "PolicyControllerBundleInstallSpec": { + "description": "BundleInstallSpec is the specification configuration for a single managed bundle.", + "id": "PolicyControllerBundleInstallSpec", + "properties": { + "exemptedNamespaces": { + "description": "The set of namespaces to be exempted from the bundle.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "PolicyControllerHubConfig": { + "description": "Configuration for Policy Controller", + "id": "PolicyControllerHubConfig", + "properties": { + "auditIntervalSeconds": { + "description": "Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.", + "format": "int64", + "type": "string" + }, + "constraintViolationLimit": { + "description": "The maximum number of audit violations to be stored in a constraint. If not set, the internal default (currently 20) will be used.", + "format": "int64", + "type": "string" + }, + "deploymentConfigs": { + "additionalProperties": { + "$ref": "PolicyControllerPolicyControllerDeploymentConfig" + }, + "description": "Map of deployment configs to deployments (\"admission\", \"audit\", \"mutation').", + "type": "object" + }, + "exemptableNamespaces": { + "description": "The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.", + "items": { + "type": "string" + }, + "type": "array" + }, + "installSpec": { + "description": "The install_spec represents the intended state specified by the latest request that mutated install_spec in the feature spec, not the lifecycle state of the feature observed by the Hub feature controller that is reported in the feature state.", + "enum": [ + "INSTALL_SPEC_UNSPECIFIED", + "INSTALL_SPEC_NOT_INSTALLED", + "INSTALL_SPEC_ENABLED", + "INSTALL_SPEC_SUSPENDED", + "INSTALL_SPEC_DETACHED" + ], + "enumDescriptions": [ + "Spec is unknown.", + "Request to uninstall Policy Controller.", + "Request to install and enable Policy Controller.", + "Request to suspend Policy Controller i.e. its webhooks. If Policy Controller is not installed, it will be installed but suspended.", + "Request to stop all reconciliation actions by PoCo Hub controller. This is a breakglass mechanism to stop PoCo Hub from affecting cluster resources." + ], + "type": "string" + }, + "logDeniesEnabled": { + "description": "Logs all denies and dry run failures.", + "type": "boolean" + }, + "monitoring": { + "$ref": "PolicyControllerMonitoringConfig", + "description": "Monitoring specifies the configuration of monitoring." + }, + "mutationEnabled": { + "description": "Enables the ability to mutate resources using Policy Controller.", + "type": "boolean" + }, + "policyContent": { + "$ref": "PolicyControllerPolicyContentSpec", + "description": "Specifies the desired policy content on the cluster" + }, + "referentialRulesEnabled": { + "description": "Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.", + "type": "boolean" + } + }, + "type": "object" + }, + "PolicyControllerMembershipSpec": { + "description": "**Policy Controller**: Configuration for a single cluster. Intended to parallel the PolicyController CR.", + "id": "PolicyControllerMembershipSpec", + "properties": { + "policyControllerHubConfig": { + "$ref": "PolicyControllerHubConfig", + "description": "Policy Controller configuration for the cluster." + }, + "version": { + "description": "Version of Policy Controller installed.", + "type": "string" + } + }, + "type": "object" + }, + "PolicyControllerMembershipState": { + "description": "**Policy Controller**: State for a single cluster.", + "id": "PolicyControllerMembershipState", + "properties": { + "componentStates": { + "additionalProperties": { + "$ref": "PolicyControllerOnClusterState" + }, + "description": "Currently these include (also serving as map keys): 1. \"admission\" 2. \"audit\" 3. \"mutation\"", + "type": "object" + }, + "policyContentState": { + "$ref": "PolicyControllerPolicyContentState", + "description": "The overall content state observed by the Hub Feature controller." + }, + "state": { + "description": "The overall Policy Controller lifecycle state observed by the Hub Feature controller.", + "enum": [ + "LIFECYCLE_STATE_UNSPECIFIED", + "NOT_INSTALLED", + "INSTALLING", + "ACTIVE", + "UPDATING", + "DECOMMISSIONING", + "CLUSTER_ERROR", + "HUB_ERROR", + "SUSPENDED", + "DETACHED" + ], + "enumDescriptions": [ + "The lifecycle state is unspecified.", + "The PC does not exist on the given cluster, and no k8s resources of any type that are associated with the PC should exist there. The cluster does not possess a membership with the PCH.", + "The PCH possesses a Membership, however the PC is not fully installed on the cluster. In this state the hub can be expected to be taking actions to install the PC on the cluster.", + "The PC is fully installed on the cluster and in an operational mode. In this state PCH will be reconciling state with the PC, and the PC will be performing it's operational tasks per that software. Entering a READY state requires that the hub has confirmed the PC is installed and its pods are operational with the version of the PC the PCH expects.", + "The PC is fully installed, but in the process of changing the configuration (including changing the version of PC either up and down, or modifying the manifests of PC) of the resources running on the cluster. The PCH has a Membership, is aware of the version the cluster should be running in, but has not confirmed for itself that the PC is running with that version.", + "The PC may have resources on the cluster, but the PCH wishes to remove the Membership. The Membership still exists.", + "The PC is not operational, and the PCH is unable to act to make it operational. Entering a CLUSTER_ERROR state happens automatically when the PCH determines that a PC installed on the cluster is non-operative or that the cluster does not meet requirements set for the PCH to administer the cluster but has nevertheless been given an instruction to do so (such as 'install').", + "In this state, the PC may still be operational, and only the PCH is unable to act. The hub should not issue instructions to change the PC state, or otherwise interfere with the on-cluster resources. Entering a HUB_ERROR state happens automatically when the PCH determines the hub is in an unhealthy state and it wishes to 'take hands off' to avoid corrupting the PC or other data.", + "Policy Controller (PC) is installed but suspended. This means that the policies are not enforced, but violations are still recorded (through audit).", + "PoCo Hub is not taking any action to reconcile cluster objects. Changes to those objects will not be overwritten by PoCo Hub." + ], + "type": "string" + } + }, + "type": "object" + }, + "PolicyControllerMonitoringConfig": { + "description": "MonitoringConfig specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: [\"cloudmonitoring\", \"prometheus\"]", + "id": "PolicyControllerMonitoringConfig", + "properties": { + "backends": { + "description": "Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export.", + "items": { + "enum": [ + "MONITORING_BACKEND_UNSPECIFIED", + "PROMETHEUS", + "CLOUD_MONITORING" + ], + "enumDescriptions": [ + "Backend cannot be determined", + "Prometheus backend for monitoring", + "Stackdriver/Cloud Monitoring backend for monitoring" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "PolicyControllerOnClusterState": { + "description": "OnClusterState represents the state of a sub-component of Policy Controller.", + "id": "PolicyControllerOnClusterState", + "properties": { + "details": { + "description": "Surface potential errors or information logs.", + "type": "string" + }, + "state": { + "description": "The lifecycle state of this component.", + "enum": [ + "LIFECYCLE_STATE_UNSPECIFIED", + "NOT_INSTALLED", + "INSTALLING", + "ACTIVE", + "UPDATING", + "DECOMMISSIONING", + "CLUSTER_ERROR", + "HUB_ERROR", + "SUSPENDED", + "DETACHED" + ], + "enumDescriptions": [ + "The lifecycle state is unspecified.", + "The PC does not exist on the given cluster, and no k8s resources of any type that are associated with the PC should exist there. The cluster does not possess a membership with the PCH.", + "The PCH possesses a Membership, however the PC is not fully installed on the cluster. In this state the hub can be expected to be taking actions to install the PC on the cluster.", + "The PC is fully installed on the cluster and in an operational mode. In this state PCH will be reconciling state with the PC, and the PC will be performing it's operational tasks per that software. Entering a READY state requires that the hub has confirmed the PC is installed and its pods are operational with the version of the PC the PCH expects.", + "The PC is fully installed, but in the process of changing the configuration (including changing the version of PC either up and down, or modifying the manifests of PC) of the resources running on the cluster. The PCH has a Membership, is aware of the version the cluster should be running in, but has not confirmed for itself that the PC is running with that version.", + "The PC may have resources on the cluster, but the PCH wishes to remove the Membership. The Membership still exists.", + "The PC is not operational, and the PCH is unable to act to make it operational. Entering a CLUSTER_ERROR state happens automatically when the PCH determines that a PC installed on the cluster is non-operative or that the cluster does not meet requirements set for the PCH to administer the cluster but has nevertheless been given an instruction to do so (such as 'install').", + "In this state, the PC may still be operational, and only the PCH is unable to act. The hub should not issue instructions to change the PC state, or otherwise interfere with the on-cluster resources. Entering a HUB_ERROR state happens automatically when the PCH determines the hub is in an unhealthy state and it wishes to 'take hands off' to avoid corrupting the PC or other data.", + "Policy Controller (PC) is installed but suspended. This means that the policies are not enforced, but violations are still recorded (through audit).", + "PoCo Hub is not taking any action to reconcile cluster objects. Changes to those objects will not be overwritten by PoCo Hub." + ], + "type": "string" + } + }, + "type": "object" + }, + "PolicyControllerPolicyContentSpec": { + "description": "PolicyContentSpec defines the user's desired content configuration on the cluster.", + "id": "PolicyControllerPolicyContentSpec", + "properties": { + "bundles": { + "additionalProperties": { + "$ref": "PolicyControllerBundleInstallSpec" + }, + "description": "map of bundle name to BundleInstallSpec. The bundle name maps to the `bundleName` key in the `policycontroller.gke.io/constraintData` annotation on a constraint.", + "type": "object" + }, + "templateLibrary": { + "$ref": "PolicyControllerTemplateLibraryConfig", + "description": "Configures the installation of the Template Library." + } + }, + "type": "object" + }, + "PolicyControllerPolicyContentState": { + "description": "The state of the policy controller policy content", + "id": "PolicyControllerPolicyContentState", + "properties": { + "bundleStates": { + "additionalProperties": { + "$ref": "PolicyControllerOnClusterState" + }, + "description": "The state of the any bundles included in the chosen version of the manifest", + "type": "object" + }, + "referentialSyncConfigState": { + "$ref": "PolicyControllerOnClusterState", + "description": "The state of the referential data sync configuration. This could represent the state of either the syncSet object(s) or the config object, depending on the version of PoCo configured by the user." + }, + "templateLibraryState": { + "$ref": "PolicyControllerOnClusterState", + "description": "The state of the template library" + } + }, + "type": "object" + }, + "PolicyControllerPolicyControllerDeploymentConfig": { + "description": "Deployment-specific configuration.", + "id": "PolicyControllerPolicyControllerDeploymentConfig", + "properties": { + "containerResources": { + "$ref": "PolicyControllerResourceRequirements", + "description": "Container resource requirements." + }, + "podAffinity": { + "description": "Pod affinity configuration.", + "enum": [ + "AFFINITY_UNSPECIFIED", + "NO_AFFINITY", + "ANTI_AFFINITY" + ], + "enumDescriptions": [ + "No affinity configuration has been specified.", + "Affinity configurations will be removed from the deployment.", + "Anti-affinity configuration will be applied to this deployment. Default for admissions deployment." + ], + "type": "string" + }, + "podAntiAffinity": { + "deprecated": true, + "description": "Pod anti-affinity enablement. Deprecated: use `pod_affinity` instead.", + "type": "boolean" + }, + "podTolerations": { + "description": "Pod tolerations of node taints.", + "items": { + "$ref": "PolicyControllerToleration" + }, + "type": "array" + }, + "replicaCount": { + "description": "Pod replica count.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "PolicyControllerResourceList": { + "description": "ResourceList contains container resource requirements.", + "id": "PolicyControllerResourceList", + "properties": { + "cpu": { + "description": "CPU requirement expressed in Kubernetes resource units.", + "type": "string" + }, + "memory": { + "description": "Memory requirement expressed in Kubernetes resource units.", + "type": "string" + } + }, + "type": "object" + }, + "PolicyControllerResourceRequirements": { + "description": "ResourceRequirements describes the compute resource requirements.", + "id": "PolicyControllerResourceRequirements", + "properties": { + "limits": { + "$ref": "PolicyControllerResourceList", + "description": "Limits describes the maximum amount of compute resources allowed for use by the running container." + }, + "requests": { + "$ref": "PolicyControllerResourceList", + "description": "Requests describes the amount of compute resources reserved for the container by the kube-scheduler." + } + }, + "type": "object" + }, + "PolicyControllerTemplateLibraryConfig": { + "description": "The config specifying which default library templates to install.", + "id": "PolicyControllerTemplateLibraryConfig", + "properties": { + "installation": { + "description": "Configures the manner in which the template library is installed on the cluster.", + "enum": [ + "INSTALLATION_UNSPECIFIED", + "NOT_INSTALLED", + "ALL" + ], + "enumDescriptions": [ + "No installation strategy has been specified.", + "Do not install the template library.", + "Install the entire template library." + ], + "type": "string" + } + }, + "type": "object" + }, + "PolicyControllerToleration": { + "description": "Toleration of a node taint.", + "id": "PolicyControllerToleration", + "properties": { + "effect": { + "description": "Matches a taint effect.", + "type": "string" + }, + "key": { + "description": "Matches a taint key (not necessarily unique).", + "type": "string" + }, + "operator": { + "description": "Matches a taint operator.", + "type": "string" + }, + "value": { + "description": "Matches a taint value.", + "type": "string" + } + }, + "type": "object" + }, + "RBACRoleBinding": { + "description": "RBACRoleBinding represents a rbacrolebinding across the Fleet", + "id": "RBACRoleBinding", + "properties": { + "createTime": { + "description": "Output only. When the rbacrolebinding was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deleteTime": { + "description": "Output only. When the rbacrolebinding was deleted.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "group": { + "description": "group is the group, as seen by the kubernetes cluster.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels for this RBACRolebinding.", + "type": "object" + }, + "name": { + "description": "The resource name for the rbacrolebinding `projects/{project}/locations/{location}/scopes/{scope}/rbacrolebindings/{rbacrolebinding}` or `projects/{project}/locations/{location}/memberships/{membership}/rbacrolebindings/{rbacrolebinding}`", + "type": "string" + }, + "role": { + "$ref": "Role", + "description": "Required. Role to bind to the principal" + }, + "state": { + "$ref": "RBACRoleBindingLifecycleState", + "description": "Output only. State of the rbacrolebinding resource.", + "readOnly": true + }, + "uid": { + "description": "Output only. Google-generated UUID for this resource. This is unique across all rbacrolebinding resources. If a rbacrolebinding resource is deleted and another resource with the same name is created, it gets a different uid.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. When the rbacrolebinding was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "user": { + "description": "user is the name of the user as seen by the kubernetes cluster, example \"alice\" or \"alice@domain.tld\"", + "type": "string" + } + }, + "type": "object" + }, + "RBACRoleBindingLifecycleState": { + "description": "RBACRoleBindingLifecycleState describes the state of a RbacRoleBinding resource.", + "id": "RBACRoleBindingLifecycleState", + "properties": { + "code": { + "description": "Output only. The current state of the rbacrolebinding resource.", + "enum": [ + "CODE_UNSPECIFIED", + "CREATING", + "READY", + "DELETING", + "UPDATING" + ], + "enumDescriptions": [ + "The code is not set.", + "The rbacrolebinding is being created.", + "The rbacrolebinding active.", + "The rbacrolebinding is being deleted.", + "The rbacrolebinding is being updated." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "ResourceManifest": { "description": "ResourceManifest represents a single Kubernetes resource to be applied to the cluster.", "id": "ResourceManifest", @@ -2848,6 +5253,84 @@ }, "type": "object" }, + "Role": { + "description": "Role is the type for Kubernetes roles", + "id": "Role", + "properties": { + "predefinedRole": { + "description": "predefined_role is the Kubernetes default role to use", + "enum": [ + "UNKNOWN", + "ADMIN", + "EDIT", + "VIEW", + "ANTHOS_SUPPORT" + ], + "enumDescriptions": [ + "UNKNOWN", + "ADMIN has EDIT and RBAC permissions", + "EDIT can edit all resources except RBAC", + "VIEW can only read resources", + "ANTHOS_SUPPORT gives Google Support read-only access to a number of cluster resources." + ], + "type": "string" + } + }, + "type": "object" + }, + "Scope": { + "description": "Scope represents a Scope in a Fleet.", + "id": "Scope", + "properties": { + "createTime": { + "description": "Output only. When the scope was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deleteTime": { + "description": "Output only. When the scope was deleted.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels for this Scope.", + "type": "object" + }, + "name": { + "description": "The resource name for the scope `projects/{project}/locations/{location}/scopes/{scope}`", + "type": "string" + }, + "namespaceLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Scope-level cluster namespace labels. For the member clusters bound to the Scope, these labels are applied to each namespace under the Scope. Scope-level labels take precedence over Namespace-level labels (`namespace_labels` in the Fleet Namespace resource) if they share a key. Keys and values must be Kubernetes-conformant.", + "type": "object" + }, + "state": { + "$ref": "ScopeLifecycleState", + "description": "Output only. State of the scope resource.", + "readOnly": true + }, + "uid": { + "description": "Output only. Google-generated UUID for this resource. This is unique across all scope resources. If a scope resource is deleted and another resource with the same name is created, it gets a different uid.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. When the scope was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "ScopeFeatureSpec": { "description": "ScopeFeatureSpec contains feature specs for a fleet scope.", "id": "ScopeFeatureSpec", @@ -2866,6 +5349,69 @@ }, "type": "object" }, + "ScopeLifecycleState": { + "description": "ScopeLifecycleState describes the state of a Scope resource.", + "id": "ScopeLifecycleState", + "properties": { + "code": { + "description": "Output only. The current state of the scope resource.", + "enum": [ + "CODE_UNSPECIFIED", + "CREATING", + "READY", + "DELETING", + "UPDATING" + ], + "enumDescriptions": [ + "The code is not set.", + "The scope is being created.", + "The scope active.", + "The scope is being deleted.", + "The scope is being updated." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "SecurityPostureConfig": { + "description": "SecurityPostureConfig defines the flags needed to enable/disable features for the Security Posture API.", + "id": "SecurityPostureConfig", + "properties": { + "mode": { + "description": "Sets which mode to use for Security Posture features.", + "enum": [ + "MODE_UNSPECIFIED", + "DISABLED", + "BASIC" + ], + "enumDescriptions": [ + "Default value not specified.", + "Disables Security Posture features on the cluster.", + "Applies Security Posture features on the cluster." + ], + "type": "string" + }, + "vulnerabilityMode": { + "description": "Sets which mode to use for vulnerability scanning.", + "enum": [ + "VULNERABILITY_MODE_UNSPECIFIED", + "VULNERABILITY_DISABLED", + "VULNERABILITY_BASIC", + "VULNERABILITY_ENTERPRISE" + ], + "enumDescriptions": [ + "Default value not specified.", + "Disables 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" + } + }, + "type": "object" + }, "ServiceMeshControlPlaneManagement": { "description": "Status of control plane management.", "id": "ServiceMeshControlPlaneManagement", @@ -2947,7 +5493,8 @@ "id": "ServiceMeshMembershipSpec", "properties": { "controlPlane": { - "description": "Enables automatic control plane management.", + "deprecated": true, + "description": "Deprecated: use `management` instead Enables automatic control plane management.", "enum": [ "CONTROL_PLANE_MANAGEMENT_UNSPECIFIED", "AUTOMATIC", diff --git a/etc/api/gkehub/v1alpha/gkehub-api.json b/etc/api/gkehub/v1alpha/gkehub-api.json index 6e0dacea9a..27e12e35a8 100644 --- a/etc/api/gkehub/v1alpha/gkehub-api.json +++ b/etc/api/gkehub/v1alpha/gkehub-api.json @@ -625,7 +625,7 @@ ], "parameters": { "name": { - "description": "Output only. The full, unique resource name of this fleet in the format of `projects/{project}/locations/{location}/fleets/{fleet}`. Each GCP project can have at most one fleet resource, named \"default\".", + "description": "Output only. The full, unique resource name of this fleet in the format of `projects/{project}/locations/{location}/fleets/{fleet}`. Each Google Cloud project can have at most one fleet resource, named \"default\".", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/fleets/[^/]+$", "required": true, @@ -700,6 +700,11 @@ "name" ], "parameters": { + "force": { + "description": "Optional. If set to true, any subresource from this Membership will also be deleted. Otherwise, the request will only work if the Membership has no subresource.", + "location": "query", + "type": "boolean" + }, "name": { "description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.", "location": "path", @@ -865,7 +870,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent (project and location) where the Memberships will be listed. Specified in the format `projects/*/locations/*`.", + "description": "Required. The parent (project and location) where the Memberships will be listed. Specified in the format `projects/*/locations/*`. `projects/*/locations/-` list memberships in all the regions.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -1049,6 +1054,360 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "bindings": { + "methods": { + "create": { + "description": "Creates a MembershipBinding.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings", + "httpMethod": "POST", + "id": "gkehub.projects.locations.memberships.bindings.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "membershipBindingId": { + "description": "Required. The ID to use for the MembershipBinding.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent (project and location) where the MembershipBinding will be created. Specified in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/bindings", + "request": { + "$ref": "MembershipBinding" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a MembershipBinding.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings/{bindingsId}", + "httpMethod": "DELETE", + "id": "gkehub.projects.locations.memberships.bindings.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The MembershipBinding resource name in the format `projects/*/locations/*/memberships/*/bindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/bindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns the details of a MembershipBinding.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings/{bindingsId}", + "httpMethod": "GET", + "id": "gkehub.projects.locations.memberships.bindings.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The MembershipBinding resource name in the format `projects/*/locations/*/memberships/*/bindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/bindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "MembershipBinding" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists MembershipBindings.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings", + "httpMethod": "GET", + "id": "gkehub.projects.locations.memberships.bindings.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Lists MembershipBindings that match the filter expression, following the syntax outlined in https://google.aip.dev/160.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token returned by previous call to `ListMembershipBindings` which specifies the position in the list from where to continue listing the resources.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent Membership for which the MembershipBindings will be listed. Specified in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/bindings", + "response": { + "$ref": "ListMembershipBindingsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a MembershipBinding.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings/{bindingsId}", + "httpMethod": "PATCH", + "id": "gkehub.projects.locations.memberships.bindings.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name for the membershipbinding itself `projects/{project}/locations/{location}/memberships/{membership}/bindings/{membershipbinding}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/bindings/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "request": { + "$ref": "MembershipBinding" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "rbacrolebindings": { + "methods": { + "create": { + "description": "Creates a Membership RBACRoleBinding.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/rbacrolebindings", + "httpMethod": "POST", + "id": "gkehub.projects.locations.memberships.rbacrolebindings.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent (project and location) where the RBACRoleBinding will be created. Specified in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "required": true, + "type": "string" + }, + "rbacrolebindingId": { + "description": "Required. Client chosen ID for the RBACRoleBinding. `rbacrolebinding_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+parent}/rbacrolebindings", + "request": { + "$ref": "RBACRoleBinding" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a Membership RBACRoleBinding.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/rbacrolebindings/{rbacrolebindingsId}", + "httpMethod": "DELETE", + "id": "gkehub.projects.locations.memberships.rbacrolebindings.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The RBACRoleBinding resource name in the format `projects/*/locations/*/memberships/*/rbacrolebindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/rbacrolebindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "generateMembershipRBACRoleBindingYAML": { + "description": "Generates a YAML of the RBAC policies for the specified RoleBinding and its associated impersonation resources.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/rbacrolebindings:generateMembershipRBACRoleBindingYAML", + "httpMethod": "POST", + "id": "gkehub.projects.locations.memberships.rbacrolebindings.generateMembershipRBACRoleBindingYAML", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent (project and location) where the RBACRoleBinding will be created. Specified in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "required": true, + "type": "string" + }, + "rbacrolebindingId": { + "description": "Required. Client chosen ID for the RBACRoleBinding. `rbacrolebinding_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+parent}/rbacrolebindings:generateMembershipRBACRoleBindingYAML", + "request": { + "$ref": "RBACRoleBinding" + }, + "response": { + "$ref": "GenerateMembershipRBACRoleBindingYAMLResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns the details of a Membership RBACRoleBinding.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/rbacrolebindings/{rbacrolebindingsId}", + "httpMethod": "GET", + "id": "gkehub.projects.locations.memberships.rbacrolebindings.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The RBACRoleBinding resource name in the format `projects/*/locations/*/memberships/*/rbacrolebindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/rbacrolebindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "RBACRoleBinding" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all Membership RBACRoleBindings.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/rbacrolebindings", + "httpMethod": "GET", + "id": "gkehub.projects.locations.memberships.rbacrolebindings.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token returned by previous call to `ListMembershipRBACRoleBindings` which specifies the position in the list from where to continue listing the resources.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent (project and location) where the Features will be listed. Specified in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/rbacrolebindings", + "response": { + "$ref": "ListMembershipRBACRoleBindingsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a Membership RBACRoleBinding.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/rbacrolebindings/{rbacrolebindingsId}", + "httpMethod": "PATCH", + "id": "gkehub.projects.locations.memberships.rbacrolebindings.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name for the rbacrolebinding `projects/{project}/locations/{location}/scopes/{scope}/rbacrolebindings/{rbacrolebinding}` or `projects/{project}/locations/{location}/memberships/{membership}/rbacrolebindings/{rbacrolebinding}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/rbacrolebindings/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "request": { + "$ref": "RBACRoleBinding" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } }, "operations": { @@ -1132,7 +1491,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "gkehub.projects.locations.operations.list", @@ -1173,13 +1532,650 @@ ] } } + }, + "scopes": { + "methods": { + "create": { + "description": "Creates a Scope.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes", + "httpMethod": "POST", + "id": "gkehub.projects.locations.scopes.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent (project and location) where the Scope will be created. Specified in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "scopeId": { + "description": "Required. Client chosen ID for the Scope. `scope_id` must be a ????", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+parent}/scopes", + "request": { + "$ref": "Scope" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a Scope.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}", + "httpMethod": "DELETE", + "id": "gkehub.projects.locations.scopes.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Scope resource name in the format `projects/*/locations/*/scopes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns the details of a Scope.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Scope resource name in the format `projects/*/locations/*/scopes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "Scope" + }, + "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": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}:getIamPolicy", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.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/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Scopes.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token returned by previous call to `ListScopes` which specifies the position in the list from where to continue listing the resources.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent (project and location) where the Scope will be listed. Specified in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/scopes", + "response": { + "$ref": "ListScopesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "listMemberships": { + "description": "Lists Memberships bound to a Scope. The response includes relevant Memberships from all regions.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}:listMemberships", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.listMemberships", + "parameterOrder": [ + "scopeName" + ], + "parameters": { + "filter": { + "description": "Optional. Lists Memberships that match the filter expression, following the syntax outlined in https://google.aip.dev/160. Currently, filtering can be done only based on Memberships's `name`, `labels`, `create_time`, `update_time`, and `unique_id`.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned. Pagination is currently not supported; therefore, setting this field does not have any impact for now.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token returned by previous call to `ListBoundMemberships` which specifies the position in the list from where to continue listing the resources.", + "location": "query", + "type": "string" + }, + "scopeName": { + "description": "Required. Name of the Scope, in the format `projects/*/locations/global/scopes/*`, to which the Memberships are bound.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+scopeName}:listMemberships", + "response": { + "$ref": "ListBoundMembershipsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "listPermitted": { + "description": "Lists permitted Scopes.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes:listPermitted", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.listPermitted", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token returned by previous call to `ListPermittedScopes` which specifies the position in the list from where to continue listing the resources.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent (project and location) where the Scope will be listed. Specified in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/scopes:listPermitted", + "response": { + "$ref": "ListPermittedScopesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a scopes.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}", + "httpMethod": "PATCH", + "id": "gkehub.projects.locations.scopes.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name for the scope `projects/{project}/locations/{location}/scopes/{scope}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "request": { + "$ref": "Scope" + }, + "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": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}:setIamPolicy", + "httpMethod": "POST", + "id": "gkehub.projects.locations.scopes.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/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+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": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}:testIamPermissions", + "httpMethod": "POST", + "id": "gkehub.projects.locations.scopes.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/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "namespaces": { + "methods": { + "create": { + "description": "Creates a fleet namespace.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces", + "httpMethod": "POST", + "id": "gkehub.projects.locations.scopes.namespaces.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent (project and location) where the Namespace will be created. Specified in the format `projects/*/locations/*/scopes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + }, + "scopeNamespaceId": { + "description": "Required. Client chosen ID for the Namespace. `namespace_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+parent}/namespaces", + "request": { + "$ref": "Namespace" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a fleet namespace.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces/{namespacesId}", + "httpMethod": "DELETE", + "id": "gkehub.projects.locations.scopes.namespaces.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Namespace resource name in the format `projects/*/locations/*/scopes/*/namespaces/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/namespaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns the details of a fleet namespace.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces/{namespacesId}", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.namespaces.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Namespace resource name in the format `projects/*/locations/*/scopes/*/namespaces/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/namespaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "Namespace" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists fleet namespaces.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.namespaces.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token returned by previous call to `ListFeatures` which specifies the position in the list from where to continue listing the resources.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent (project and location) where the Features will be listed. Specified in the format `projects/*/locations/*/scopes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/namespaces", + "response": { + "$ref": "ListScopeNamespacesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a fleet namespace.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces/{namespacesId}", + "httpMethod": "PATCH", + "id": "gkehub.projects.locations.scopes.namespaces.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name for the namespace `projects/{project}/locations/{location}/namespaces/{namespace}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/namespaces/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "request": { + "$ref": "Namespace" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "rbacrolebindings": { + "methods": { + "create": { + "description": "Creates a Scope RBACRoleBinding.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings", + "httpMethod": "POST", + "id": "gkehub.projects.locations.scopes.rbacrolebindings.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent (project and location) where the RBACRoleBinding will be created. Specified in the format `projects/*/locations/*/scopes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + }, + "rbacrolebindingId": { + "description": "Required. Client chosen ID for the RBACRoleBinding. `rbacrolebinding_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+parent}/rbacrolebindings", + "request": { + "$ref": "RBACRoleBinding" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a Scope RBACRoleBinding.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings/{rbacrolebindingsId}", + "httpMethod": "DELETE", + "id": "gkehub.projects.locations.scopes.rbacrolebindings.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The RBACRoleBinding resource name in the format `projects/*/locations/*/scopes/*/rbacrolebindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/rbacrolebindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns the details of a Scope RBACRoleBinding.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings/{rbacrolebindingsId}", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.rbacrolebindings.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The RBACRoleBinding resource name in the format `projects/*/locations/*/scopes/*/rbacrolebindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/rbacrolebindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "RBACRoleBinding" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all Scope RBACRoleBindings.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.rbacrolebindings.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token returned by previous call to `ListScopeRBACRoleBindings` which specifies the position in the list from where to continue listing the resources.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent (project and location) where the Features will be listed. Specified in the format `projects/*/locations/*/scopes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/rbacrolebindings", + "response": { + "$ref": "ListScopeRBACRoleBindingsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a Scope RBACRoleBinding.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings/{rbacrolebindingsId}", + "httpMethod": "PATCH", + "id": "gkehub.projects.locations.scopes.rbacrolebindings.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name for the rbacrolebinding `projects/{project}/locations/{location}/scopes/{scope}/rbacrolebindings/{rbacrolebinding}` or `projects/{project}/locations/{location}/memberships/{membership}/rbacrolebindings/{rbacrolebinding}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/rbacrolebindings/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "request": { + "$ref": "RBACRoleBinding" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } } } } } } }, - "revision": "20230106", + "revision": "20240225", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "AnthosObservabilityFeatureSpec": { @@ -1234,7 +2230,7 @@ "id": "ApplianceCluster", "properties": { "resourceLink": { - "description": "Immutable. Self-link of the GCP resource for the Appliance Cluster. For example: //transferappliance.googleapis.com/projects/my-project/locations/us-west1-a/appliances/my-appliance", + "description": "Immutable. Self-link of the Google Cloud resource for the Appliance Cluster. For example: //transferappliance.googleapis.com/projects/my-project/locations/us-west1-a/appliances/my-appliance", "type": "string" } }, @@ -1298,7 +2294,7 @@ "type": "string" }, "issuer": { - "description": "Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length <2000 characters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).", + "description": "Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length <2000 characters, it must use `location` rather than `zone` for GKE clusters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).", "type": "string" }, "oidcJwks": { @@ -1314,6 +2310,34 @@ }, "type": "object" }, + "BinaryAuthorizationConfig": { + "description": "BinaryAuthorizationConfig defines the fleet level configuration of binary authorization feature.", + "id": "BinaryAuthorizationConfig", + "properties": { + "evaluationMode": { + "description": "Optional. Mode of operation for binauthz policy evaluation.", + "enum": [ + "EVALUATION_MODE_UNSPECIFIED", + "DISABLED", + "POLICY_BINDINGS" + ], + "enumDescriptions": [ + "Default value", + "Disable BinaryAuthorization", + "Use Binary Authorization with the policies specified in policy_bindings." + ], + "type": "string" + }, + "policyBindings": { + "description": "Optional. Binauthz policies that apply to this cluster.", + "items": { + "$ref": "PolicyBinding" + }, + "type": "array" + } + }, + "type": "object" + }, "Binding": { "description": "Associates `members`, or principals, with a `role`.", "id": "Binding", @@ -1323,14 +2347,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1381,6 +2405,310 @@ }, "type": "object" }, + "ClusterUpgradeFleetSpec": { + "description": "**ClusterUpgrade**: The configuration for the fleet-level ClusterUpgrade feature.", + "id": "ClusterUpgradeFleetSpec", + "properties": { + "gkeUpgradeOverrides": { + "description": "Allow users to override some properties of each GKE upgrade.", + "items": { + "$ref": "ClusterUpgradeGKEUpgradeOverride" + }, + "type": "array" + }, + "postConditions": { + "$ref": "ClusterUpgradePostConditions", + "description": "Required. Post conditions to evaluate to mark an upgrade COMPLETE. Required." + }, + "upstreamFleets": { + "description": "This fleet consumes upgrades that have COMPLETE status code in the upstream fleets. See UpgradeStatus.Code for code definitions. The fleet name should be either fleet project number or id. This is defined as repeated for future proof reasons. Initial implementation will enforce at most one upstream fleet.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClusterUpgradeFleetState": { + "description": "**ClusterUpgrade**: The state for the fleet-level ClusterUpgrade feature.", + "id": "ClusterUpgradeFleetState", + "properties": { + "downstreamFleets": { + "description": "This fleets whose upstream_fleets contain the current fleet. The fleet name should be either fleet project number or id.", + "items": { + "type": "string" + }, + "type": "array" + }, + "gkeState": { + "$ref": "ClusterUpgradeGKEUpgradeFeatureState", + "description": "Feature state for GKE clusters." + }, + "ignored": { + "additionalProperties": { + "$ref": "ClusterUpgradeIgnoredMembership" + }, + "description": "A list of memberships ignored by the feature. For example, manually upgraded clusters can be ignored if they are newer than the default versions of its release channel. The membership resource is in the format: `projects/{p}/locations/{l}/membership/{m}`.", + "type": "object" + } + }, + "type": "object" + }, + "ClusterUpgradeGKEUpgrade": { + "description": "GKEUpgrade represents a GKE provided upgrade, e.g., control plane upgrade.", + "id": "ClusterUpgradeGKEUpgrade", + "properties": { + "name": { + "description": "Name of the upgrade, e.g., \"k8s_control_plane\". It should be a valid upgrade name. It must not exceet 99 characters.", + "type": "string" + }, + "version": { + "description": "Version of the upgrade, e.g., \"1.22.1-gke.100\". It should be a valid version. It must not exceet 99 characters.", + "type": "string" + } + }, + "type": "object" + }, + "ClusterUpgradeGKEUpgradeFeatureCondition": { + "description": "GKEUpgradeFeatureCondition describes the condition of the feature for GKE clusters at a certain point of time.", + "id": "ClusterUpgradeGKEUpgradeFeatureCondition", + "properties": { + "reason": { + "description": "Reason why the feature is in this status.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of the condition, for example, \"ready\".", + "type": "string" + }, + "updateTime": { + "description": "Last timestamp the condition was updated.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "ClusterUpgradeGKEUpgradeFeatureState": { + "description": "GKEUpgradeFeatureState contains feature states for GKE clusters in the scope.", + "id": "ClusterUpgradeGKEUpgradeFeatureState", + "properties": { + "conditions": { + "description": "Current conditions of the feature.", + "items": { + "$ref": "ClusterUpgradeGKEUpgradeFeatureCondition" + }, + "type": "array" + }, + "upgradeState": { + "description": "Upgrade state. It will eventually replace `state`.", + "items": { + "$ref": "ClusterUpgradeGKEUpgradeState" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClusterUpgradeGKEUpgradeOverride": { + "description": "Properties of a GKE upgrade that can be overridden by the user. For example, a user can skip soaking by overriding the soaking to 0.", + "id": "ClusterUpgradeGKEUpgradeOverride", + "properties": { + "postConditions": { + "$ref": "ClusterUpgradePostConditions", + "description": "Required. Post conditions to override for the specified upgrade (name + version). Required." + }, + "upgrade": { + "$ref": "ClusterUpgradeGKEUpgrade", + "description": "Required. Which upgrade to override. Required." + } + }, + "type": "object" + }, + "ClusterUpgradeGKEUpgradeState": { + "description": "GKEUpgradeState is a GKEUpgrade and its state at the scope and fleet level.", + "id": "ClusterUpgradeGKEUpgradeState", + "properties": { + "stats": { + "additionalProperties": { + "format": "int64", + "type": "string" + }, + "description": "Number of GKE clusters in each status code.", + "type": "object" + }, + "status": { + "$ref": "ClusterUpgradeUpgradeStatus", + "description": "Status of the upgrade." + }, + "upgrade": { + "$ref": "ClusterUpgradeGKEUpgrade", + "description": "Which upgrade to track the state." + } + }, + "type": "object" + }, + "ClusterUpgradeIgnoredMembership": { + "description": "IgnoredMembership represents a membership ignored by the feature. A membership can be ignored because it was manually upgraded to a newer version than RC default.", + "id": "ClusterUpgradeIgnoredMembership", + "properties": { + "ignoredTime": { + "description": "Time when the membership was first set to ignored.", + "format": "google-datetime", + "type": "string" + }, + "reason": { + "description": "Reason why the membership is ignored.", + "type": "string" + } + }, + "type": "object" + }, + "ClusterUpgradeMembershipGKEUpgradeState": { + "description": "ScopeGKEUpgradeState is a GKEUpgrade and its state per-membership.", + "id": "ClusterUpgradeMembershipGKEUpgradeState", + "properties": { + "status": { + "$ref": "ClusterUpgradeUpgradeStatus", + "description": "Status of the upgrade." + }, + "upgrade": { + "$ref": "ClusterUpgradeGKEUpgrade", + "description": "Which upgrade to track the state." + } + }, + "type": "object" + }, + "ClusterUpgradeMembershipState": { + "description": "Per-membership state for this feature.", + "id": "ClusterUpgradeMembershipState", + "properties": { + "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": { + "$ref": "ClusterUpgradeMembershipGKEUpgradeState" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClusterUpgradePostConditions": { + "description": "Post conditional checks after an upgrade has been applied on all eligible clusters.", + "id": "ClusterUpgradePostConditions", + "properties": { + "soaking": { + "description": "Required. Amount of time to \"soak\" after a rollout has been finished before marking it COMPLETE. Cannot exceed 30 days. Required.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "ClusterUpgradeScopeSpec": { + "description": "**ClusterUpgrade**: The configuration for the scope-level ClusterUpgrade feature.", + "id": "ClusterUpgradeScopeSpec", + "properties": { + "gkeUpgradeOverrides": { + "description": "Allow users to override some properties of each GKE upgrade.", + "items": { + "$ref": "ClusterUpgradeGKEUpgradeOverride" + }, + "type": "array" + }, + "postConditions": { + "$ref": "ClusterUpgradePostConditions", + "description": "Required. Post conditions to evaluate to mark an upgrade COMPLETE. Required." + }, + "upstreamScopes": { + "description": "This scope consumes upgrades that have COMPLETE status code in the upstream scopes. See UpgradeStatus.Code for code definitions. The scope name should be in the form: `projects/{p}/locations/global/scopes/{s}` Where {p} is the project, {s} is a valid Scope in this project. {p} WILL match the Feature's project. This is defined as repeated for future proof reasons. Initial implementation will enforce at most one upstream scope.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClusterUpgradeScopeState": { + "description": "**ClusterUpgrade**: The state for the scope-level ClusterUpgrade feature.", + "id": "ClusterUpgradeScopeState", + "properties": { + "downstreamScopes": { + "description": "This scopes whose upstream_scopes contain the current scope. The scope name should be in the form: `projects/{p}/locations/gloobal/scopes/{s}` Where {p} is the project, {s} is a valid Scope in this project. {p} WILL match the Feature's project.", + "items": { + "type": "string" + }, + "type": "array" + }, + "gkeState": { + "$ref": "ClusterUpgradeGKEUpgradeFeatureState", + "description": "Feature state for GKE clusters." + }, + "ignored": { + "additionalProperties": { + "$ref": "ClusterUpgradeIgnoredMembership" + }, + "description": "A list of memberships ignored by the feature. For example, manually upgraded clusters can be ignored if they are newer than the default versions of its release channel. The membership resource is in the format: `projects/{p}/locations/{l}/membership/{m}`.", + "type": "object" + } + }, + "type": "object" + }, + "ClusterUpgradeUpgradeStatus": { + "description": "UpgradeStatus provides status information for each upgrade.", + "id": "ClusterUpgradeUpgradeStatus", + "properties": { + "code": { + "description": "Status code of the upgrade.", + "enum": [ + "CODE_UNSPECIFIED", + "INELIGIBLE", + "PENDING", + "IN_PROGRESS", + "SOAKING", + "FORCED_SOAKING", + "COMPLETE" + ], + "enumDescriptions": [ + "Required by https://linter.aip.dev/126/unspecified.", + "The upgrade is ineligible. At the scope level, this means the upgrade is ineligible for all the clusters in the scope.", + "The upgrade is pending. At the scope level, this means the upgrade is pending for all the clusters in the scope.", + "The upgrade is in progress. At the scope level, this means the upgrade is in progress for at least one cluster in the scope.", + "The upgrade has finished and is soaking until the soaking time is up. At the scope level, this means at least one cluster is in soaking while the rest are either soaking or complete.", + "A cluster will be forced to enter soaking if an upgrade doesn't finish within a certain limit, despite it's actual status.", + "The upgrade has passed all post conditions (soaking). At the scope level, this means all eligible clusters are in COMPLETE status." + ], + "type": "string" + }, + "reason": { + "description": "Reason for this status.", + "type": "string" + }, + "updateTime": { + "description": "Last timestamp the status was updated.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "CommonFeatureSpec": { "description": "CommonFeatureSpec contains Hub-wide configuration information", "id": "CommonFeatureSpec", @@ -1397,6 +2725,14 @@ "$ref": "CloudAuditLoggingFeatureSpec", "description": "Cloud Audit Logging-specific spec." }, + "clusterupgrade": { + "$ref": "ClusterUpgradeFleetSpec", + "description": "ClusterUpgrade (fleet-based) feature spec." + }, + "dataplanev2": { + "$ref": "DataplaneV2FeatureSpec", + "description": "DataplaneV2 feature spec." + }, "fleetobservability": { "$ref": "FleetObservabilityFeatureSpec", "description": "FleetObservability feature spec." @@ -1405,6 +2741,10 @@ "$ref": "MultiClusterIngressFeatureSpec", "description": "Multicluster Ingress-specific spec." }, + "namespaceactuation": { + "$ref": "NamespaceActuationFeatureSpec", + "description": "Namespace Actuation feature spec" + }, "workloadcertificate": { "$ref": "FeatureSpec", "description": "Workload Certificate spec." @@ -1420,10 +2760,18 @@ "$ref": "AppDevExperienceFeatureState", "description": "Appdevexperience specific state." }, + "clusterupgrade": { + "$ref": "ClusterUpgradeFleetState", + "description": "ClusterUpgrade fleet-level state." + }, "fleetobservability": { "$ref": "FleetObservabilityFeatureState", "description": "FleetObservability feature state." }, + "namespaceactuation": { + "$ref": "NamespaceActuationFeatureState", + "description": "Namespace Actuation feature state." + }, "servicemesh": { "$ref": "ServiceMeshFeatureState", "description": "Service Mesh-specific state." @@ -1436,6 +2784,29 @@ }, "type": "object" }, + "CommonFleetDefaultMemberConfigSpec": { + "description": "CommonFleetDefaultMemberConfigSpec contains default configuration information for memberships of a fleet", + "id": "CommonFleetDefaultMemberConfigSpec", + "properties": { + "configmanagement": { + "$ref": "ConfigManagementMembershipSpec", + "description": "Config Management-specific spec." + }, + "identityservice": { + "$ref": "IdentityServiceMembershipSpec", + "description": "Identity Service-specific spec." + }, + "mesh": { + "$ref": "ServiceMeshMembershipSpec", + "description": "Anthos Service Mesh-specific spec" + }, + "policycontroller": { + "$ref": "PolicyControllerMembershipSpec", + "description": "Policy Controller spec." + } + }, + "type": "object" + }, "ConfigManagementBinauthzConfig": { "description": "Configuration for Binauthz", "id": "ConfigManagementBinauthzConfig", @@ -1461,13 +2832,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" } @@ -1490,17 +2863,22 @@ "id": "ConfigManagementConfigSync", "properties": { "allowVerticalScale": { + "deprecated": true, "description": "Set to true to allow the vertical scaling. Defaults to false which disallows vertical scaling. This field is deprecated.", "type": "boolean" }, "enabled": { - "description": "Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of git field.", + "description": "Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.", "type": "boolean" }, "git": { "$ref": "ConfigManagementGitConfig", "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.", + "type": "string" + }, "oci": { "$ref": "ConfigManagementOciConfig", "description": "OCI repo configuration for the cluster" @@ -1526,13 +2904,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1542,13 +2922,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1558,13 +2940,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1574,13 +2958,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1590,13 +2976,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1606,13 +2994,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1622,19 +3012,32 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" } }, "type": "object" }, + "ConfigManagementConfigSyncError": { + "description": "Errors pertaining to the installation of Config Sync", + "id": "ConfigManagementConfigSyncError", + "properties": { + "errorMessage": { + "description": "A string representing the user facing error message", + "type": "string" + } + }, + "type": "object" + }, "ConfigManagementConfigSyncState": { "description": "State information for ConfigSync", "id": "ConfigManagementConfigSyncState", @@ -1643,6 +3046,67 @@ "$ref": "ConfigManagementConfigSyncDeploymentState", "description": "Information about the deployment of ConfigSync, including the version of the various Pods deployed" }, + "errors": { + "description": "Errors pertaining to the installation of Config Sync.", + "items": { + "$ref": "ConfigManagementConfigSyncError" + }, + "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" @@ -1722,13 +3186,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1738,13 +3204,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1754,13 +3222,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" } @@ -1772,7 +3242,7 @@ "id": "ConfigManagementGitConfig", "properties": { "gcpServiceAccountEmail": { - "description": "The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.", + "description": "The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.", "type": "string" }, "httpsProxy": { @@ -1855,13 +3325,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1871,13 +3343,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" } @@ -1931,7 +3405,12 @@ "properties": { "binauthz": { "$ref": "ConfigManagementBinauthzConfig", - "description": "Binauthz conifguration for the cluster." + "deprecated": true, + "description": "Binauthz conifguration for the cluster. Deprecated: This field will be ignored and should not be set." + }, + "cluster": { + "description": "The user-specified cluster name used by Config Sync cluster-name-selector annotation or ClusterSelector, for applying configs to only a subset of clusters. Omit this field if the cluster's fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector. Set this field if a name different from the cluster's fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector.", + "type": "string" }, "configSync": { "$ref": "ConfigManagementConfigSync", @@ -1941,6 +3420,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." @@ -1961,7 +3454,7 @@ "description": "Binauthz status" }, "clusterName": { - "description": "The user-defined name for the cluster used by ClusterSelectors to group clusters together. This should match Membership's membership_name, unless the user installed ACM on the cluster manually prior to enabling the ACM hub feature. Unique within a Anthos Config Management installation.", + "description": "This field is set to the `cluster_name` field of the Membership Spec if it is not empty. Otherwise, it is set to the cluster's fleet membership name.", "type": "string" }, "configSyncState": { @@ -1992,7 +3485,7 @@ "id": "ConfigManagementOciConfig", "properties": { "gcpServiceAccountEmail": { - "description": "The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.", + "description": "The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.", "type": "string" }, "policyDir": { @@ -2025,13 +3518,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -2088,6 +3583,38 @@ "templateLibraryInstalled": { "description": "Installs the default template library along with Policy Controller.", "type": "boolean" + }, + "updateTime": { + "description": "Output only. Last time this membership spec was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ConfigManagementPolicyControllerMigration": { + "description": "State for the migration of PolicyController from ACM -> PoCo Hub.", + "id": "ConfigManagementPolicyControllerMigration", + "properties": { + "copyTime": { + "description": "Last time this membership spec was copied to PoCo feature.", + "format": "google-datetime", + "type": "string" + }, + "stage": { + "description": "Stage of the migration.", + "enum": [ + "STAGE_UNSPECIFIED", + "ACM_MANAGED", + "POCO_MANAGED" + ], + "enumDescriptions": [ + "Unknown state of migration.", + "ACM Hub/Operator manages policycontroller. No migration yet completed.", + "All migrations steps complete; Poco Hub now manages policycontroller." + ], + "type": "string" } }, "type": "object" @@ -2124,6 +3651,10 @@ "$ref": "ConfigManagementGatekeeperDeploymentState", "description": "The state about the policy controller installation." }, + "migration": { + "$ref": "ConfigManagementPolicyControllerMigration", + "description": "Record state of ACM -> PoCo Hub migration for this feature." + }, "version": { "$ref": "ConfigManagementPolicyControllerVersion", "description": "The version of Gatekeeper Policy Controller deployed." @@ -2181,12 +3712,12 @@ "UNREACHABLE" ], "enumDescriptions": [ - "ACM cannot determine a sync code", - "ACM successfully synced the git Repo with the cluster", - "ACM is in the progress of syncing a new change", - "Indicates an error configuring ACM, and user action is required", - "ACM has been installed (operator manifest deployed), but not configured.", - "ACM has not been installed (no operator pod found)", + "Config Sync cannot determine a sync code", + "Config Sync successfully synced the git Repo with the cluster", + "Config Sync is in the progress of syncing a new change", + "Indicates an error configuring Config Sync, and user action is required", + "Config Sync has been installed but not configured", + "Config Sync has not been installed", "Error authorizing with the cluster", "Cluster could not be reached" ], @@ -2204,6 +3735,7 @@ "type": "string" }, "lastSync": { + "deprecated": true, "description": "Deprecated: use last_sync_time instead. Timestamp of when ACM last successfully synced the repo The time format is specified in https://golang.org/pkg/time/#Time.String", "type": "string" }, @@ -2238,12 +3770,38 @@ }, "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", + "properties": { + "binaryAuthorizationConfig": { + "$ref": "BinaryAuthorizationConfig", + "description": "Optional. Enable/Disable binary authorization features for the cluster." + }, + "securityPostureConfig": { + "$ref": "SecurityPostureConfig", + "description": "Enable/Disable Security Posture features for the cluster." + } + }, + "type": "object" + }, "EdgeCluster": { "description": "EdgeCluster contains information specific to Google Edge Clusters.", "id": "EdgeCluster", "properties": { "resourceLink": { - "description": "Immutable. Self-link of the GCP resource for the Edge Cluster. For example: //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster", + "description": "Immutable. Self-link of the Google Cloud resource for the Edge Cluster. For example: //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster", "type": "string" } }, @@ -2294,11 +3852,15 @@ "readOnly": true, "type": "string" }, + "fleetDefaultMemberConfig": { + "$ref": "CommonFleetDefaultMemberConfigSpec", + "description": "Optional. Feature configuration applicable to all memberships of the fleet." + }, "labels": { "additionalProperties": { "type": "string" }, - "description": "GCP labels for this Feature.", + "description": "Labels for this Feature.", "type": "object" }, "membershipSpecs": { @@ -2399,12 +3961,16 @@ "enum": [ "GOOGLE_CA_PROVISIONING_UNSPECIFIED", "DISABLED", - "ENABLED" + "ENABLED", + "ENABLED_WITH_MANAGED_CA", + "ENABLED_WITH_DEFAULT_CA" ], "enumDescriptions": [ "Disable default Google managed CA.", "Disable default Google managed CA.", - "Use default Google managed CA." + "Use default Google managed CA.", + "Workload certificate feature is enabled, and the entire certificate provisioning process is managed by Google with managed CAS which is more secure than the default CA.", + "Workload certificate feature is enabled, and the entire certificate provisioning process is using the default CA which is free." ], "type": "string" } @@ -2453,6 +4019,10 @@ "readOnly": true, "type": "string" }, + "defaultClusterConfig": { + "$ref": "DefaultClusterConfig", + "description": "Optional. The default cluster configurations to apply across the fleet." + }, "deleteTime": { "description": "Output only. When the Fleet was deleted.", "format": "google-datetime", @@ -2463,8 +4033,15 @@ "description": "Optional. A user-assigned display name of the Fleet. When present, it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `Production Fleet`", "type": "string" }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels for this Fleet.", + "type": "object" + }, "name": { - "description": "Output only. The full, unique resource name of this fleet in the format of `projects/{project}/locations/{location}/fleets/{fleet}`. Each GCP project can have at most one fleet resource, named \"default\".", + "description": "Output only. The full, unique resource name of this fleet in the format of `projects/{project}/locations/{location}/fleets/{fleet}`. Each Google Cloud project can have at most one fleet resource, named \"default\".", "readOnly": true, "type": "string" }, @@ -2513,16 +4090,114 @@ }, "type": "object" }, + "FleetObservabilityFeatureError": { + "description": "All error details of the fleet observability feature.", + "id": "FleetObservabilityFeatureError", + "properties": { + "code": { + "description": "The code of the error.", + "type": "string" + }, + "description": { + "description": "A human-readable description of the current status.", + "type": "string" + } + }, + "type": "object" + }, "FleetObservabilityFeatureSpec": { "description": "**Fleet Observability**: The Hub-wide input for the FleetObservability feature.", "id": "FleetObservabilityFeatureSpec", - "properties": {}, + "properties": { + "loggingConfig": { + "$ref": "FleetObservabilityLoggingConfig", + "description": "Specified if fleet logging feature is enabled for the entire fleet. If UNSPECIFIED, fleet logging feature is disabled for the entire fleet." + } + }, "type": "object" }, "FleetObservabilityFeatureState": { - "description": "**FleetObservability**: An empty state left as an example Hub-wide Feature state.", + "description": "**FleetObservability**: Hub-wide Feature for FleetObservability feature. state.", "id": "FleetObservabilityFeatureState", - "properties": {}, + "properties": { + "logging": { + "$ref": "FleetObservabilityFleetObservabilityLoggingState", + "description": "The feature state of default logging." + }, + "monitoring": { + "$ref": "FleetObservabilityFleetObservabilityMonitoringState", + "description": "The feature state of fleet monitoring." + } + }, + "type": "object" + }, + "FleetObservabilityFleetObservabilityBaseFeatureState": { + "description": "Base state for fleet observability feature.", + "id": "FleetObservabilityFleetObservabilityBaseFeatureState", + "properties": { + "code": { + "description": "The high-level, machine-readable status of this Feature.", + "enum": [ + "CODE_UNSPECIFIED", + "OK", + "ERROR" + ], + "enumDescriptions": [ + "Unknown or not set.", + "The Feature is operating normally.", + "The Feature is encountering errors in the reconciliation. The Feature may need intervention to return to normal operation. See the description and any associated Feature-specific details for more information." + ], + "type": "string" + }, + "errors": { + "description": "Errors after reconciling the monitoring and logging feature if the code is not OK.", + "items": { + "$ref": "FleetObservabilityFeatureError" + }, + "type": "array" + } + }, + "type": "object" + }, + "FleetObservabilityFleetObservabilityLoggingState": { + "description": "Feature state for logging feature.", + "id": "FleetObservabilityFleetObservabilityLoggingState", + "properties": { + "defaultLog": { + "$ref": "FleetObservabilityFleetObservabilityBaseFeatureState", + "description": "The base feature state of fleet default log." + }, + "scopeLog": { + "$ref": "FleetObservabilityFleetObservabilityBaseFeatureState", + "description": "The base feature state of fleet scope log." + } + }, + "type": "object" + }, + "FleetObservabilityFleetObservabilityMonitoringState": { + "description": "Feature state for monitoring feature.", + "id": "FleetObservabilityFleetObservabilityMonitoringState", + "properties": { + "state": { + "$ref": "FleetObservabilityFleetObservabilityBaseFeatureState", + "description": "The base feature state of fleet monitoring feature." + } + }, + "type": "object" + }, + "FleetObservabilityLoggingConfig": { + "description": "LoggingConfig defines the configuration for different types of logs.", + "id": "FleetObservabilityLoggingConfig", + "properties": { + "defaultConfig": { + "$ref": "FleetObservabilityRoutingConfig", + "description": "Specified if applying the default routing config to logs not specified in other configs." + }, + "fleetScopeLogsConfig": { + "$ref": "FleetObservabilityRoutingConfig", + "description": "Specified if applying the routing config to all logs for all fleet scopes." + } + }, "type": "object" }, "FleetObservabilityMembershipSpec": { @@ -2532,11 +4207,32 @@ "type": "object" }, "FleetObservabilityMembershipState": { - "description": "**FleetObservability**: An empty state left as an example membership-specific Feature state.", + "description": "**FleetObservability**: Membership-specific Feature state for fleetobservability.", "id": "FleetObservabilityMembershipState", "properties": {}, "type": "object" }, + "FleetObservabilityRoutingConfig": { + "description": "RoutingConfig configures the behaviour of fleet logging feature.", + "id": "FleetObservabilityRoutingConfig", + "properties": { + "mode": { + "description": "mode configures the logs routing mode.", + "enum": [ + "MODE_UNSPECIFIED", + "COPY", + "MOVE" + ], + "enumDescriptions": [ + "If UNSPECIFIED, fleet logging feature is disabled.", + "logs will be copied to the destination project.", + "logs will be moved to the destination project." + ], + "type": "string" + } + }, + "type": "object" + }, "GenerateConnectManifestResponse": { "description": "GenerateConnectManifestResponse contains manifest information for installing/upgrading a Connect agent.", "id": "GenerateConnectManifestResponse", @@ -2551,6 +4247,17 @@ }, "type": "object" }, + "GenerateMembershipRBACRoleBindingYAMLResponse": { + "description": "Response for GenerateRBACRoleBindingYAML.", + "id": "GenerateMembershipRBACRoleBindingYAMLResponse", + "properties": { + "roleBindingsYaml": { + "description": "a yaml text blob including the RBAC policies.", + "type": "string" + } + }, + "type": "object" + }, "GkeCluster": { "description": "GkeCluster contains information specific to GKE clusters.", "id": "GkeCluster", @@ -2561,7 +4268,7 @@ "type": "boolean" }, "resourceLink": { - "description": "Immutable. Self-link of the GCP resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.", + "description": "Immutable. Self-link of the Google Cloud resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.", "type": "string" } }, @@ -2604,7 +4311,7 @@ }, "googleConfig": { "$ref": "IdentityServiceGoogleConfig", - "description": "GoogleConfig specific configuration" + "description": "GoogleConfig specific configuration." }, "name": { "description": "Identifier for auth config.", @@ -2870,6 +4577,31 @@ }, "type": "object" }, + "ListBoundMembershipsResponse": { + "description": "List of Memberships bound to a Scope.", + "id": "ListBoundMembershipsResponse", + "properties": { + "memberships": { + "description": "The list of Memberships bound to the given Scope.", + "items": { + "$ref": "Membership" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to request the next page of resources from the `ListBoundMemberships` method. The value of an empty string means that there are no more resources to return.", + "type": "string" + }, + "unreachable": { + "description": "List of locations that could not be reached while fetching this list.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListFeaturesResponse": { "description": "Response message for the `GkeHub.ListFeatures` method.", "id": "ListFeaturesResponse", @@ -2924,6 +4656,42 @@ }, "type": "object" }, + "ListMembershipBindingsResponse": { + "description": "List of MembershipBindings.", + "id": "ListMembershipBindingsResponse", + "properties": { + "membershipBindings": { + "description": "The list of membership_bindings", + "items": { + "$ref": "MembershipBinding" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to request the next page of resources from the `ListMembershipBindings` method. The value of an empty string means that there are no more resources to return.", + "type": "string" + } + }, + "type": "object" + }, + "ListMembershipRBACRoleBindingsResponse": { + "description": "List of Membership RBACRoleBindings.", + "id": "ListMembershipRBACRoleBindingsResponse", + "properties": { + "nextPageToken": { + "description": "A token to request the next page of resources from the `ListMembershipRBACRoleBindings` method. The value of an empty string means that there are no more resources to return.", + "type": "string" + }, + "rbacrolebindings": { + "description": "The list of Membership RBACRoleBindings.", + "items": { + "$ref": "RBACRoleBinding" + }, + "type": "array" + } + }, + "type": "object" + }, "ListMembershipsResponse": { "description": "Response message for the `GkeHub.ListMemberships` method.", "id": "ListMembershipsResponse", @@ -2967,8 +4735,80 @@ }, "type": "object" }, + "ListPermittedScopesResponse": { + "description": "List of permitted Scopes.", + "id": "ListPermittedScopesResponse", + "properties": { + "nextPageToken": { + "description": "A token to request the next page of resources from the `ListPermittedScopes` method. The value of an empty string means that there are no more resources to return.", + "type": "string" + }, + "scopes": { + "description": "The list of permitted Scopes", + "items": { + "$ref": "Scope" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListScopeNamespacesResponse": { + "description": "List of fleet namespaces.", + "id": "ListScopeNamespacesResponse", + "properties": { + "nextPageToken": { + "description": "A token to request the next page of resources from the `ListNamespaces` method. The value of an empty string means that there are no more resources to return.", + "type": "string" + }, + "scopeNamespaces": { + "description": "The list of fleet namespaces", + "items": { + "$ref": "Namespace" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListScopeRBACRoleBindingsResponse": { + "description": "List of Scope RBACRoleBindings.", + "id": "ListScopeRBACRoleBindingsResponse", + "properties": { + "nextPageToken": { + "description": "A token to request the next page of resources from the `ListScopeRBACRoleBindings` method. The value of an empty string means that there are no more resources to return.", + "type": "string" + }, + "rbacrolebindings": { + "description": "The list of Scope RBACRoleBindings.", + "items": { + "$ref": "RBACRoleBinding" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListScopesResponse": { + "description": "List of Scopes.", + "id": "ListScopesResponse", + "properties": { + "nextPageToken": { + "description": "A token to request the next page of resources from the `ListScopes` method. The value of an empty string means that there are no more resources to return.", + "type": "string" + }, + "scopes": { + "description": "The list of Scopes", + "items": { + "$ref": "Scope" + }, + "type": "array" + } + }, + "type": "object" + }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -3038,7 +4878,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. GCP labels for this membership.", + "description": "Optional. Labels for this membership.", "type": "object" }, "lastConnectionTime": { @@ -3047,6 +4887,10 @@ "readOnly": true, "type": "string" }, + "monitoringConfig": { + "$ref": "MonitoringConfig", + "description": "Optional. The monitoring config information for this membership." + }, "name": { "description": "Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", "readOnly": true, @@ -3071,6 +4915,82 @@ }, "type": "object" }, + "MembershipBinding": { + "description": "MembershipBinding is a subresource of a Membership, representing what Fleet Scopes (or other, future Fleet resources) a Membership is bound to.", + "id": "MembershipBinding", + "properties": { + "createTime": { + "description": "Output only. When the membership binding was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deleteTime": { + "description": "Output only. When the membership binding was deleted.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels for this MembershipBinding.", + "type": "object" + }, + "name": { + "description": "The resource name for the membershipbinding itself `projects/{project}/locations/{location}/memberships/{membership}/bindings/{membershipbinding}`", + "type": "string" + }, + "scope": { + "description": "A Scope resource name in the format `projects/*/locations/*/scopes/*`.", + "type": "string" + }, + "state": { + "$ref": "MembershipBindingLifecycleState", + "description": "Output only. State of the membership binding resource.", + "readOnly": true + }, + "uid": { + "description": "Output only. Google-generated UUID for this resource. This is unique across all membershipbinding resources. If a membershipbinding resource is deleted and another resource with the same name is created, it gets a different uid.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. When the membership binding was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "MembershipBindingLifecycleState": { + "description": "MembershipBindingLifecycleState describes the state of a Binding resource.", + "id": "MembershipBindingLifecycleState", + "properties": { + "code": { + "description": "Output only. The current state of the MembershipBinding resource.", + "enum": [ + "CODE_UNSPECIFIED", + "CREATING", + "READY", + "DELETING", + "UPDATING" + ], + "enumDescriptions": [ + "The code is not set.", + "The membershipbinding is being created.", + "The membershipbinding active.", + "The membershipbinding is being deleted.", + "The membershipbinding is being updated." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "MembershipEndpoint": { "description": "MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata.", "id": "MembershipEndpoint", @@ -3087,6 +5007,11 @@ "$ref": "GkeCluster", "description": "Optional. Specific information for a GKE-on-GCP cluster." }, + "googleManaged": { + "description": "Output only. Whether the lifecycle of this membership is managed by a google cluster platform service.", + "readOnly": true, + "type": "boolean" + }, "kubernetesMetadata": { "$ref": "KubernetesMetadata", "description": "Output only. Useful Kubernetes-specific metadata.", @@ -3108,7 +5033,7 @@ "type": "object" }, "MembershipFeatureSpec": { - "description": "MembershipFeatureSpec contains configuration information for a single Membership.", + "description": "MembershipFeatureSpec contains configuration information for a single Membership. NOTE: Please use snake case in your feature name.", "id": "MembershipFeatureSpec", "properties": { "anthosobservability": { @@ -3123,10 +5048,6 @@ "$ref": "ConfigManagementMembershipSpec", "description": "Config Management-specific spec." }, - "fleetInherited": { - "description": "True if value of `feature_spec` was inherited from a fleet-level default.", - "type": "boolean" - }, "fleetobservability": { "$ref": "FleetObservabilityMembershipSpec", "description": "Fleet observability membership spec" @@ -3139,6 +5060,14 @@ "$ref": "ServiceMeshMembershipSpec", "description": "Anthos Service Mesh-specific spec" }, + "namespaceactuation": { + "$ref": "NamespaceActuationMembershipSpec", + "description": "FNS Actuation membership spec" + }, + "origin": { + "$ref": "Origin", + "description": "Whether this per-Membership spec was inherited from a fleet-level default. This field can be updated by users by either overriding a Membership config (updated to USER implicitly) or setting to FLEET explicitly." + }, "policycontroller": { "$ref": "PolicyControllerMembershipSpec", "description": "Policy Controller spec." @@ -3158,6 +5087,10 @@ "$ref": "AppDevExperienceFeatureState", "description": "Appdevexperience specific state." }, + "clusterupgrade": { + "$ref": "ClusterUpgradeMembershipState", + "description": "ClusterUpgrade state." + }, "configmanagement": { "$ref": "ConfigManagementMembershipState", "description": "Config Management-specific state." @@ -3174,6 +5107,10 @@ "$ref": "MeteringMembershipState", "description": "Metering-specific state." }, + "namespaceactuation": { + "$ref": "NamespaceActuationMembershipState", + "description": "FNS Actuation membership state" + }, "policycontroller": { "$ref": "PolicyControllerMembershipState", "description": "Policycontroller-specific state." @@ -3255,6 +5192,33 @@ }, "type": "object" }, + "MonitoringConfig": { + "description": "MonitoringConfig informs Fleet-based applications/services/UIs how the metrics for the underlying cluster is reported to cloud monitoring services. It can be set from empty to non-empty, but can't be mutated directly to prevent accidentally breaking the constinousty of metrics.", + "id": "MonitoringConfig", + "properties": { + "cluster": { + "description": "Optional. Cluster name used to report metrics. For Anthos on VMWare/Baremetal/MultiCloud clusters, it would be in format {cluster_type}/{cluster_name}, e.g., \"awsClusters/cluster_1\".", + "type": "string" + }, + "clusterHash": { + "description": "Optional. For GKE and Multicloud clusters, this is the UUID of the cluster resource. For VMWare and Baremetal clusters, this is the kube-system UID.", + "type": "string" + }, + "kubernetesMetricsPrefix": { + "description": "Optional. Kubernetes system metrics, if available, are written to this prefix. This defaults to kubernetes.io for GKE, and kubernetes.io/anthos for Anthos eventually. Noted: Anthos MultiCloud will have kubernetes.io prefix today but will migration to be under kubernetes.io/anthos.", + "type": "string" + }, + "location": { + "description": "Optional. Location used to report Metrics", + "type": "string" + }, + "projectId": { + "description": "Optional. Project used to report Metrics", + "type": "string" + } + }, + "type": "object" + }, "MultiCloudCluster": { "description": "MultiCloudCluster contains information specific to GKE Multi-Cloud clusters.", "id": "MultiCloudCluster", @@ -3265,7 +5229,7 @@ "type": "boolean" }, "resourceLink": { - "description": "Immutable. Self-link of the GCP resource for the GKE Multi-Cloud cluster. For example: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/azureClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/attachedClusters/my-cluster", + "description": "Immutable. Self-link of the Google Cloud resource for the GKE Multi-Cloud cluster. For example: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/azureClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/attachedClusters/my-cluster", "type": "string" } }, @@ -3276,6 +5240,7 @@ "id": "MultiClusterIngressFeatureSpec", "properties": { "billing": { + "deprecated": true, "description": "Deprecated: This field will be ignored and should not be set. Customer's billing structure.", "enum": [ "BILLING_UNSPECIFIED", @@ -3296,6 +5261,128 @@ }, "type": "object" }, + "Namespace": { + "description": "Namespace represents a namespace across the Fleet", + "id": "Namespace", + "properties": { + "createTime": { + "description": "Output only. When the namespace was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deleteTime": { + "description": "Output only. When the namespace was deleted.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels for this Namespace.", + "type": "object" + }, + "name": { + "description": "The resource name for the namespace `projects/{project}/locations/{location}/namespaces/{namespace}`", + "type": "string" + }, + "namespaceLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Namespace-level cluster namespace labels. These labels are applied to the related namespace of the member clusters bound to the parent Scope. Scope-level labels (`namespace_labels` in the Fleet Scope resource) take precedence over Namespace-level labels if they share a key. Keys and values must be Kubernetes-conformant.", + "type": "object" + }, + "scope": { + "description": "Required. Scope associated with the namespace", + "type": "string" + }, + "state": { + "$ref": "NamespaceLifecycleState", + "description": "Output only. State of the namespace resource.", + "readOnly": true + }, + "uid": { + "description": "Output only. Google-generated UUID for this resource. This is unique across all namespace resources. If a namespace resource is deleted and another resource with the same name is created, it gets a different uid.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. When the namespace was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "NamespaceActuationFeatureSpec": { + "description": "An empty spec for actuation feature. This is required since Feature proto requires a spec.", + "id": "NamespaceActuationFeatureSpec", + "properties": { + "actuationMode": { + "description": "actuation_mode controls the behavior of the controller", + "enum": [ + "ACTUATION_MODE_UNSPECIFIED", + "ACTUATION_MODE_CREATE_AND_DELETE_IF_CREATED", + "ACTUATION_MODE_ADD_AND_REMOVE_FLEET_LABELS" + ], + "enumDescriptions": [ + "ACTUATION_MODE_UNSPECIFIED is similar to CREATE_AND_DELETE_IF_CREATED in the default controller behavior.", + "ACTUATION_MODE_CREATE_AND_DELETE_IF_CREATED has the controller create cluster namespaces for each fleet namespace and it deletes only the ones it created, which are identified by a label.", + "ACTUATION_MODE_ADD_AND_REMOVE_FLEET_LABELS has the controller only apply labels to cluster namespaces to signal fleet namespace enablement. It doesn't create or delete cluster namespaces." + ], + "type": "string" + } + }, + "type": "object" + }, + "NamespaceActuationFeatureState": { + "description": "NamespaceActuation Feature State.", + "id": "NamespaceActuationFeatureState", + "properties": {}, + "type": "object" + }, + "NamespaceActuationMembershipSpec": { + "description": "**Namespace Actuation**: The membership-specific input for NamespaceActuation feature.", + "id": "NamespaceActuationMembershipSpec", + "properties": {}, + "type": "object" + }, + "NamespaceActuationMembershipState": { + "description": "**Namespace Actuation**: An empty state left as an example membership-specific Feature state.", + "id": "NamespaceActuationMembershipState", + "properties": {}, + "type": "object" + }, + "NamespaceLifecycleState": { + "description": "NamespaceLifecycleState describes the state of a Namespace resource.", + "id": "NamespaceLifecycleState", + "properties": { + "code": { + "description": "Output only. The current state of the Namespace resource.", + "enum": [ + "CODE_UNSPECIFIED", + "CREATING", + "READY", + "DELETING", + "UPDATING" + ], + "enumDescriptions": [ + "The code is not set.", + "The namespace is being created.", + "The namespace active.", + "The namespace is being deleted.", + "The namespace is being updated." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "OnPremCluster": { "description": "OnPremCluster contains information specific to GKE On-Prem clusters.", "id": "OnPremCluster", @@ -3328,7 +5415,7 @@ "type": "string" }, "resourceLink": { - "description": "Immutable. Self-link of the GCP resource for the GKE On-Prem cluster. For example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/bareMetalClusters/my-cluster", + "description": "Immutable. Self-link of the Google Cloud resource for the GKE On-Prem cluster. For example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/bareMetalClusters/my-cluster", "type": "string" } }, @@ -3363,7 +5450,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" } }, @@ -3413,8 +5500,31 @@ }, "type": "object" }, + "Origin": { + "description": "Origin defines where this MembershipFeatureSpec originated from.", + "id": "Origin", + "properties": { + "type": { + "description": "Type specifies which type of origin is set.", + "enum": [ + "TYPE_UNSPECIFIED", + "FLEET", + "FLEET_OUT_OF_SYNC", + "USER" + ], + "enumDescriptions": [ + "Type is unknown or not set.", + "Per-Membership spec was inherited from the fleet-level default.", + "Per-Membership spec was inherited from the fleet-level default but is now out of sync with the current default.", + "Per-Membership spec was inherited from a user specification." + ], + "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/).", + "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": { @@ -3444,28 +5554,27 @@ }, "type": "object" }, + "PolicyBinding": { + "description": "Binauthz policy that applies to this cluster.", + "id": "PolicyBinding", + "properties": { + "name": { + "description": "The relative resource name of the binauthz platform policy to audit. GKE platform policies have the following format: `projects/{project_number}/platforms/gke/policies/{policy_id}`.", + "type": "string" + } + }, + "type": "object" + }, "PolicyControllerBundleInstallSpec": { "description": "BundleInstallSpec is the specification configuration for a single managed bundle.", "id": "PolicyControllerBundleInstallSpec", "properties": { "exemptedNamespaces": { - "description": "the set of namespaces to be exempted from the bundle", + "description": "The set of namespaces to be exempted from the bundle.", "items": { "type": "string" }, "type": "array" - }, - "management": { - "description": "Management specifies how the bundle will be managed by the controller.", - "enum": [ - "MANAGEMENT_UNSPECIFIED", - "INSTALLED" - ], - "enumDescriptions": [ - "No Management strategy has been specified.", - "The entity should be insistently reconciled by the Hub controller" - ], - "type": "string" } }, "type": "object" @@ -3479,6 +5588,18 @@ "format": "int64", "type": "string" }, + "constraintViolationLimit": { + "description": "The maximum number of audit violations to be stored in a constraint. If not set, the internal default (currently 20) will be used.", + "format": "int64", + "type": "string" + }, + "deploymentConfigs": { + "additionalProperties": { + "$ref": "PolicyControllerPolicyControllerDeploymentConfig" + }, + "description": "Map of deployment configs to deployments (\"admission\", \"audit\", \"mutation').", + "type": "object" + }, "exemptableNamespaces": { "description": "The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.", "items": { @@ -3492,13 +5613,15 @@ "INSTALL_SPEC_UNSPECIFIED", "INSTALL_SPEC_NOT_INSTALLED", "INSTALL_SPEC_ENABLED", - "INSTALL_SPEC_SUSPENDED" + "INSTALL_SPEC_SUSPENDED", + "INSTALL_SPEC_DETACHED" ], "enumDescriptions": [ "Spec is unknown.", "Request to uninstall Policy Controller.", "Request to install and enable Policy Controller.", - "Request to suspend Policy Controller i.e. its webhooks. If Policy Controller is not installed, it will be installed but suspended." + "Request to suspend Policy Controller i.e. its webhooks. If Policy Controller is not installed, it will be installed but suspended.", + "Request to stop all reconciliation actions by PoCo Hub controller. This is a breakglass mechanism to stop PoCo Hub from affecting cluster resources." ], "type": "string" }, @@ -3521,10 +5644,6 @@ "referentialRulesEnabled": { "description": "Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.", "type": "boolean" - }, - "templateLibraryConfig": { - "$ref": "PolicyControllerTemplateLibraryConfig", - "description": "Configures the library templates to install along with Policy Controller." } }, "type": "object" @@ -3555,12 +5674,9 @@ "description": "Currently these include (also serving as map keys): 1. \"admission\" 2. \"audit\" 3. \"mutation\"", "type": "object" }, - "contentStates": { - "additionalProperties": { - "$ref": "PolicyControllerOnClusterState" - }, - "description": "The state of the template library and any bundles included in the chosen version of the manifest", - "type": "object" + "policyContentState": { + "$ref": "PolicyControllerPolicyContentState", + "description": "The overall content state observed by the Hub Feature controller." }, "state": { "description": "The overall Policy Controller lifecycle state observed by the Hub Feature controller.", @@ -3570,10 +5686,11 @@ "INSTALLING", "ACTIVE", "UPDATING", - "DECOMISSIONING", + "DECOMMISSIONING", "CLUSTER_ERROR", "HUB_ERROR", - "SUSPENDED" + "SUSPENDED", + "DETACHED" ], "enumDescriptions": [ "The lifecycle state is unspecified.", @@ -3584,7 +5701,8 @@ "The PC may have resources on the cluster, but the PCH wishes to remove the Membership. The Membership still exists.", "The PC is not operational, and the PCH is unable to act to make it operational. Entering a CLUSTER_ERROR state happens automatically when the PCH determines that a PC installed on the cluster is non-operative or that the cluster does not meet requirements set for the PCH to administer the cluster but has nevertheless been given an instruction to do so (such as 'install').", "In this state, the PC may still be operational, and only the PCH is unable to act. The hub should not issue instructions to change the PC state, or otherwise interfere with the on-cluster resources. Entering a HUB_ERROR state happens automatically when the PCH determines the hub is in an unhealthy state and it wishes to 'take hands off' to avoid corrupting the PC or other data.", - "Policy Controller (PC) is installed but suspended. This means that the policies are not enforced, but violations are still recorded (through audit)." + "Policy Controller (PC) is installed but suspended. This means that the policies are not enforced, but violations are still recorded (through audit).", + "PoCo Hub is not taking any action to reconcile cluster objects. Changes to those objects will not be overwritten by PoCo Hub." ], "type": "string" } @@ -3631,10 +5749,11 @@ "INSTALLING", "ACTIVE", "UPDATING", - "DECOMISSIONING", + "DECOMMISSIONING", "CLUSTER_ERROR", "HUB_ERROR", - "SUSPENDED" + "SUSPENDED", + "DETACHED" ], "enumDescriptions": [ "The lifecycle state is unspecified.", @@ -3645,7 +5764,8 @@ "The PC may have resources on the cluster, but the PCH wishes to remove the Membership. The Membership still exists.", "The PC is not operational, and the PCH is unable to act to make it operational. Entering a CLUSTER_ERROR state happens automatically when the PCH determines that a PC installed on the cluster is non-operative or that the cluster does not meet requirements set for the PCH to administer the cluster but has nevertheless been given an instruction to do so (such as 'install').", "In this state, the PC may still be operational, and only the PCH is unable to act. The hub should not issue instructions to change the PC state, or otherwise interfere with the on-cluster resources. Entering a HUB_ERROR state happens automatically when the PCH determines the hub is in an unhealthy state and it wishes to 'take hands off' to avoid corrupting the PC or other data.", - "Policy Controller (PC) is installed but suspended. This means that the policies are not enforced, but violations are still recorded (through audit)." + "Policy Controller (PC) is installed but suspended. This means that the policies are not enforced, but violations are still recorded (through audit).", + "PoCo Hub is not taking any action to reconcile cluster objects. Changes to those objects will not be overwritten by PoCo Hub." ], "type": "string" } @@ -3662,6 +5782,104 @@ }, "description": "map of bundle name to BundleInstallSpec. The bundle name maps to the `bundleName` key in the `policycontroller.gke.io/constraintData` annotation on a constraint.", "type": "object" + }, + "templateLibrary": { + "$ref": "PolicyControllerTemplateLibraryConfig", + "description": "Configures the installation of the Template Library." + } + }, + "type": "object" + }, + "PolicyControllerPolicyContentState": { + "description": "The state of the policy controller policy content", + "id": "PolicyControllerPolicyContentState", + "properties": { + "bundleStates": { + "additionalProperties": { + "$ref": "PolicyControllerOnClusterState" + }, + "description": "The state of the any bundles included in the chosen version of the manifest", + "type": "object" + }, + "referentialSyncConfigState": { + "$ref": "PolicyControllerOnClusterState", + "description": "The state of the referential data sync configuration. This could represent the state of either the syncSet object(s) or the config object, depending on the version of PoCo configured by the user." + }, + "templateLibraryState": { + "$ref": "PolicyControllerOnClusterState", + "description": "The state of the template library" + } + }, + "type": "object" + }, + "PolicyControllerPolicyControllerDeploymentConfig": { + "description": "Deployment-specific configuration.", + "id": "PolicyControllerPolicyControllerDeploymentConfig", + "properties": { + "containerResources": { + "$ref": "PolicyControllerResourceRequirements", + "description": "Container resource requirements." + }, + "podAffinity": { + "description": "Pod affinity configuration.", + "enum": [ + "AFFINITY_UNSPECIFIED", + "NO_AFFINITY", + "ANTI_AFFINITY" + ], + "enumDescriptions": [ + "No affinity configuration has been specified.", + "Affinity configurations will be removed from the deployment.", + "Anti-affinity configuration will be applied to this deployment. Default for admissions deployment." + ], + "type": "string" + }, + "podAntiAffinity": { + "deprecated": true, + "description": "Pod anti-affinity enablement. Deprecated: use `pod_affinity` instead.", + "type": "boolean" + }, + "podTolerations": { + "description": "Pod tolerations of node taints.", + "items": { + "$ref": "PolicyControllerToleration" + }, + "type": "array" + }, + "replicaCount": { + "description": "Pod replica count.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "PolicyControllerResourceList": { + "description": "ResourceList contains container resource requirements.", + "id": "PolicyControllerResourceList", + "properties": { + "cpu": { + "description": "CPU requirement expressed in Kubernetes resource units.", + "type": "string" + }, + "memory": { + "description": "Memory requirement expressed in Kubernetes resource units.", + "type": "string" + } + }, + "type": "object" + }, + "PolicyControllerResourceRequirements": { + "description": "ResourceRequirements describes the compute resource requirements.", + "id": "PolicyControllerResourceRequirements", + "properties": { + "limits": { + "$ref": "PolicyControllerResourceList", + "description": "Limits describes the maximum amount of compute resources allowed for use by the running container." + }, + "requests": { + "$ref": "PolicyControllerResourceList", + "description": "Requests describes the amount of compute resources reserved for the container by the kube-scheduler." } }, "type": "object" @@ -3670,9 +5888,126 @@ "description": "The config specifying which default library templates to install.", "id": "PolicyControllerTemplateLibraryConfig", "properties": { - "included": { - "description": "Whether the standard template library should be installed or not.", - "type": "boolean" + "installation": { + "description": "Configures the manner in which the template library is installed on the cluster.", + "enum": [ + "INSTALLATION_UNSPECIFIED", + "NOT_INSTALLED", + "ALL" + ], + "enumDescriptions": [ + "No installation strategy has been specified.", + "Do not install the template library.", + "Install the entire template library." + ], + "type": "string" + } + }, + "type": "object" + }, + "PolicyControllerToleration": { + "description": "Toleration of a node taint.", + "id": "PolicyControllerToleration", + "properties": { + "effect": { + "description": "Matches a taint effect.", + "type": "string" + }, + "key": { + "description": "Matches a taint key (not necessarily unique).", + "type": "string" + }, + "operator": { + "description": "Matches a taint operator.", + "type": "string" + }, + "value": { + "description": "Matches a taint value.", + "type": "string" + } + }, + "type": "object" + }, + "RBACRoleBinding": { + "description": "RBACRoleBinding represents a rbacrolebinding across the Fleet", + "id": "RBACRoleBinding", + "properties": { + "createTime": { + "description": "Output only. When the rbacrolebinding was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deleteTime": { + "description": "Output only. When the rbacrolebinding was deleted.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "group": { + "description": "group is the group, as seen by the kubernetes cluster.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels for this RBACRolebinding.", + "type": "object" + }, + "name": { + "description": "The resource name for the rbacrolebinding `projects/{project}/locations/{location}/scopes/{scope}/rbacrolebindings/{rbacrolebinding}` or `projects/{project}/locations/{location}/memberships/{membership}/rbacrolebindings/{rbacrolebinding}`", + "type": "string" + }, + "role": { + "$ref": "Role", + "description": "Required. Role to bind to the principal" + }, + "state": { + "$ref": "RBACRoleBindingLifecycleState", + "description": "Output only. State of the rbacrolebinding resource.", + "readOnly": true + }, + "uid": { + "description": "Output only. Google-generated UUID for this resource. This is unique across all rbacrolebinding resources. If a rbacrolebinding resource is deleted and another resource with the same name is created, it gets a different uid.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. When the rbacrolebinding was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "user": { + "description": "user is the name of the user as seen by the kubernetes cluster, example \"alice\" or \"alice@domain.tld\"", + "type": "string" + } + }, + "type": "object" + }, + "RBACRoleBindingLifecycleState": { + "description": "RBACRoleBindingLifecycleState describes the state of a RbacRoleBinding resource.", + "id": "RBACRoleBindingLifecycleState", + "properties": { + "code": { + "description": "Output only. The current state of the rbacrolebinding resource.", + "enum": [ + "CODE_UNSPECIFIED", + "CREATING", + "READY", + "DELETING", + "UPDATING" + ], + "enumDescriptions": [ + "The code is not set.", + "The rbacrolebinding is being created.", + "The rbacrolebinding active.", + "The rbacrolebinding is being deleted.", + "The rbacrolebinding is being updated." + ], + "readOnly": true, + "type": "string" } }, "type": "object" @@ -3711,16 +6046,103 @@ }, "type": "object" }, + "Role": { + "description": "Role is the type for Kubernetes roles", + "id": "Role", + "properties": { + "predefinedRole": { + "description": "predefined_role is the Kubernetes default role to use", + "enum": [ + "UNKNOWN", + "ADMIN", + "EDIT", + "VIEW", + "ANTHOS_SUPPORT" + ], + "enumDescriptions": [ + "UNKNOWN", + "ADMIN has EDIT and RBAC permissions", + "EDIT can edit all resources except RBAC", + "VIEW can only read resources", + "ANTHOS_SUPPORT gives Google Support read-only access to a number of cluster resources." + ], + "type": "string" + } + }, + "type": "object" + }, + "Scope": { + "description": "Scope represents a Scope in a Fleet.", + "id": "Scope", + "properties": { + "createTime": { + "description": "Output only. When the scope was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deleteTime": { + "description": "Output only. When the scope was deleted.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels for this Scope.", + "type": "object" + }, + "name": { + "description": "The resource name for the scope `projects/{project}/locations/{location}/scopes/{scope}`", + "type": "string" + }, + "namespaceLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Scope-level cluster namespace labels. For the member clusters bound to the Scope, these labels are applied to each namespace under the Scope. Scope-level labels take precedence over Namespace-level labels (`namespace_labels` in the Fleet Namespace resource) if they share a key. Keys and values must be Kubernetes-conformant.", + "type": "object" + }, + "state": { + "$ref": "ScopeLifecycleState", + "description": "Output only. State of the scope resource.", + "readOnly": true + }, + "uid": { + "description": "Output only. Google-generated UUID for this resource. This is unique across all scope resources. If a scope resource is deleted and another resource with the same name is created, it gets a different uid.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. When the scope was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "ScopeFeatureSpec": { "description": "ScopeFeatureSpec contains feature specs for a fleet scope.", "id": "ScopeFeatureSpec", - "properties": {}, + "properties": { + "clusterupgrade": { + "$ref": "ClusterUpgradeScopeSpec", + "description": "Spec for the ClusterUpgrade feature at the scope level" + } + }, "type": "object" }, "ScopeFeatureState": { "description": "ScopeFeatureState contains Scope-wide Feature status information.", "id": "ScopeFeatureState", "properties": { + "clusterupgrade": { + "$ref": "ClusterUpgradeScopeState", + "description": "State for the ClusterUpgrade feature at the scope level" + }, "state": { "$ref": "FeatureState", "description": "Output only. The \"running state\" of the Feature in this Scope.", @@ -3729,6 +6151,69 @@ }, "type": "object" }, + "ScopeLifecycleState": { + "description": "ScopeLifecycleState describes the state of a Scope resource.", + "id": "ScopeLifecycleState", + "properties": { + "code": { + "description": "Output only. The current state of the scope resource.", + "enum": [ + "CODE_UNSPECIFIED", + "CREATING", + "READY", + "DELETING", + "UPDATING" + ], + "enumDescriptions": [ + "The code is not set.", + "The scope is being created.", + "The scope active.", + "The scope is being deleted.", + "The scope is being updated." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "SecurityPostureConfig": { + "description": "SecurityPostureConfig defines the flags needed to enable/disable features for the Security Posture API.", + "id": "SecurityPostureConfig", + "properties": { + "mode": { + "description": "Sets which mode to use for Security Posture features.", + "enum": [ + "MODE_UNSPECIFIED", + "DISABLED", + "BASIC" + ], + "enumDescriptions": [ + "Default value not specified.", + "Disables Security Posture features on the cluster.", + "Applies Security Posture features on the cluster." + ], + "type": "string" + }, + "vulnerabilityMode": { + "description": "Sets which mode to use for vulnerability scanning.", + "enum": [ + "VULNERABILITY_MODE_UNSPECIFIED", + "VULNERABILITY_DISABLED", + "VULNERABILITY_BASIC", + "VULNERABILITY_ENTERPRISE" + ], + "enumDescriptions": [ + "Default value not specified.", + "Disables 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" + } + }, + "type": "object" + }, "ServiceMeshAnalysisMessage": { "description": "AnalysisMessage is a single message produced by an analyzer, and it used to communicate to the end user about the state of their Service Mesh configuration.", "id": "ServiceMeshAnalysisMessage", @@ -3886,7 +6371,8 @@ "id": "ServiceMeshMembershipSpec", "properties": { "controlPlane": { - "description": "Enables automatic control plane management.", + "deprecated": true, + "description": "Deprecated: use `management` instead Enables automatic control plane management.", "enum": [ "CONTROL_PLANE_MANAGEMENT_UNSPECIFIED", "AUTOMATIC", @@ -4127,8 +6613,8 @@ ], "enumDescriptions": [ "UNSPECIFIED validator.", - "MEMBERSHIP_ID validator validates the membership_id is still available.", - "CROSS_PROJECT_PERMISSION validator validates the cross-project P4SA binding is in place." + "MEMBERSHIP_ID validator validates that the membership_id is still available.", + "CROSS_PROJECT_PERMISSION validator validates that the cross-project role binding for the service agent is in place." ], "type": "string" } diff --git a/etc/api/gkehub/v1alpha2/gkehub-api.json b/etc/api/gkehub/v1alpha2/gkehub-api.json index 6eb6eb9066..a4a543bcbe 100644 --- a/etc/api/gkehub/v1alpha2/gkehub-api.json +++ b/etc/api/gkehub/v1alpha2/gkehub-api.json @@ -257,6 +257,11 @@ "name" ], "parameters": { + "force": { + "description": "Optional. If set to true, any subresource from this Membership will also be deleted. Otherwise, the request will only work if the Membership has no subresource.", + "location": "query", + "type": "boolean" + }, "name": { "description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.", "location": "path", @@ -417,7 +422,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent (project and location) where the Memberships will be listed. Specified in the format `projects/*/locations/*`.", + "description": "Required. The parent (project and location) where the Memberships will be listed. Specified in the format `projects/*/locations/*`. `projects/*/locations/-` list memberships in all the regions.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -605,7 +610,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "gkehub.projects.locations.operations.list", @@ -652,7 +657,7 @@ } } }, - "revision": "20230106", + "revision": "20240225", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "ApplianceCluster": { @@ -660,7 +665,7 @@ "id": "ApplianceCluster", "properties": { "resourceLink": { - "description": "Immutable. Self-link of the GCP resource for the Appliance Cluster. For example: //transferappliance.googleapis.com/projects/my-project/locations/us-west1-a/appliances/my-appliance", + "description": "Immutable. Self-link of the Google Cloud resource for the Appliance Cluster. For example: //transferappliance.googleapis.com/projects/my-project/locations/us-west1-a/appliances/my-appliance", "type": "string" } }, @@ -749,14 +754,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -788,7 +793,7 @@ "id": "EdgeCluster", "properties": { "resourceLink": { - "description": "Immutable. Self-link of the GCP resource for the Edge Cluster. For example: //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster", + "description": "Immutable. Self-link of the Google Cloud resource for the Edge Cluster. For example: //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster", "type": "string" } }, @@ -847,7 +852,7 @@ "type": "boolean" }, "resourceLink": { - "description": "Immutable. Self-link of the GCP resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.", + "description": "Immutable. Self-link of the Google Cloud resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.", "type": "string" } }, @@ -1035,7 +1040,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1119,7 +1124,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. GCP labels for this membership.", + "description": "Optional. Labels for this membership.", "type": "object" }, "lastConnectionTime": { @@ -1128,6 +1133,10 @@ "readOnly": true, "type": "string" }, + "monitoringConfig": { + "$ref": "MonitoringConfig", + "description": "Optional. The monitoring config information for this membership." + }, "name": { "description": "Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", "readOnly": true, @@ -1216,6 +1225,33 @@ }, "type": "object" }, + "MonitoringConfig": { + "description": "MonitoringConfig informs Fleet-based applications/services/UIs how the metrics for the underlying cluster is reported to cloud monitoring services. It can be set from empty to non-empty, but can't be mutated directly to prevent accidentally breaking the constinousty of metrics.", + "id": "MonitoringConfig", + "properties": { + "cluster": { + "description": "Optional. Cluster name used to report metrics. For Anthos on VMWare/Baremetal/MultiCloud clusters, it would be in format {cluster_type}/{cluster_name}, e.g., \"awsClusters/cluster_1\".", + "type": "string" + }, + "clusterHash": { + "description": "Optional. For GKE and Multicloud clusters, this is the UUID of the cluster resource. For VMWare and Baremetal clusters, this is the kube-system UID.", + "type": "string" + }, + "kubernetesMetricsPrefix": { + "description": "Optional. Kubernetes system metrics, if available, are written to this prefix. This defaults to kubernetes.io for GKE, and kubernetes.io/anthos for Anthos eventually. Noted: Anthos MultiCloud will have kubernetes.io prefix today but will migration to be under kubernetes.io/anthos.", + "type": "string" + }, + "location": { + "description": "Optional. Location used to report Metrics", + "type": "string" + }, + "projectId": { + "description": "Optional. Project used to report Metrics", + "type": "string" + } + }, + "type": "object" + }, "MultiCloudCluster": { "description": "MultiCloudCluster contains information specific to GKE Multi-Cloud clusters.", "id": "MultiCloudCluster", @@ -1226,7 +1262,7 @@ "type": "boolean" }, "resourceLink": { - "description": "Immutable. Self-link of the GCP resource for the GKE Multi-Cloud cluster. For example: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/azureClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/attachedClusters/my-cluster", + "description": "Immutable. Self-link of the Google Cloud resource for the GKE Multi-Cloud cluster. For example: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/azureClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/attachedClusters/my-cluster", "type": "string" } }, @@ -1264,7 +1300,7 @@ "type": "string" }, "resourceLink": { - "description": "Immutable. Self-link of the GCP resource for the GKE On-Prem cluster. For example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/bareMetalClusters/my-cluster", + "description": "Immutable. Self-link of the Google Cloud resource for the GKE On-Prem cluster. For example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/bareMetalClusters/my-cluster", "type": "string" } }, @@ -1299,7 +1335,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" } }, @@ -1350,7 +1386,7 @@ "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/).", + "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": { diff --git a/etc/api/gkehub/v1beta/gkehub-api.json b/etc/api/gkehub/v1beta/gkehub-api.json index 288adf85b7..1ac9b818d8 100644 --- a/etc/api/gkehub/v1beta/gkehub-api.json +++ b/etc/api/gkehub/v1beta/gkehub-api.json @@ -105,6 +105,54 @@ }, "protocol": "rest", "resources": { + "organizations": { + "resources": { + "locations": { + "resources": { + "fleets": { + "methods": { + "list": { + "description": "Returns all fleets within an organization or a project that the caller has access to.", + "flatPath": "v1beta/organizations/{organizationsId}/locations/{locationsId}/fleets", + "httpMethod": "GET", + "id": "gkehub.organizations.locations.fleets.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of fleets to return. The service may return fewer than this value. If unspecified, at most 200 fleets 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 `ListFleets` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListFleets` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The organization or project to list for Fleets under, in the format `organizations/*/locations/*` or `projects/*/locations/*`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/fleets", + "response": { + "$ref": "ListFleetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + } + }, "projects": { "resources": { "locations": { @@ -451,8 +499,315 @@ } } }, + "fleets": { + "methods": { + "create": { + "description": "Creates a fleet.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/fleets", + "httpMethod": "POST", + "id": "gkehub.projects.locations.fleets.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent (project and location) where the Fleet will be created. Specified in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/fleets", + "request": { + "$ref": "Fleet" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Removes a Fleet. There must be no memberships remaining in the Fleet.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/fleets/{fleetsId}", + "httpMethod": "DELETE", + "id": "gkehub.projects.locations.fleets.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Fleet resource name in the format `projects/*/locations/*/fleets/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/fleets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns the details of a fleet.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/fleets/{fleetsId}", + "httpMethod": "GET", + "id": "gkehub.projects.locations.fleets.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Fleet resource name in the format `projects/*/locations/*/fleets/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/fleets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "Fleet" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Returns all fleets within an organization or a project that the caller has access to.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/fleets", + "httpMethod": "GET", + "id": "gkehub.projects.locations.fleets.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of fleets to return. The service may return fewer than this value. If unspecified, at most 200 fleets 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 `ListFleets` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListFleets` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The organization or project to list for Fleets under, in the format `organizations/*/locations/*` or `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/fleets", + "response": { + "$ref": "ListFleetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a fleet.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/fleets/{fleetsId}", + "httpMethod": "PATCH", + "id": "gkehub.projects.locations.fleets.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The full, unique resource name of this fleet in the format of `projects/{project}/locations/{location}/fleets/{fleet}`. Each Google Cloud project can have at most one fleet resource, named \"default\".", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/fleets/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The fields to be updated;", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+name}", + "request": { + "$ref": "Fleet" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "memberships": { "methods": { + "create": { + "description": "Creates a new Membership. **This is currently only supported for GKE clusters on Google Cloud**. To register other clusters, follow the instructions at https://cloud.google.com/anthos/multicluster-management/connect/registering-a-cluster.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships", + "httpMethod": "POST", + "id": "gkehub.projects.locations.memberships.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "membershipId": { + "description": "Required. Client chosen ID for the membership. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent (project and location) where the Memberships will be created. Specified in the format `projects/*/locations/*`.", + "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 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": "v1beta/{+parent}/memberships", + "request": { + "$ref": "Membership" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Removes a Membership. **This is currently only supported for GKE clusters on Google Cloud**. To unregister other clusters, follow the instructions at https://cloud.google.com/anthos/multicluster-management/connect/unregistering-a-cluster.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}", + "httpMethod": "DELETE", + "id": "gkehub.projects.locations.memberships.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "force": { + "description": "Optional. If set to true, any subresource from this Membership will also be deleted. Otherwise, the request will only work if the Membership has no subresource.", + "location": "query", + "type": "boolean" + }, + "name": { + "description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "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).", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "generateConnectManifest": { + "description": "Generates the manifest for deployment of the GKE connect agent. **This method is used internally by Google-provided libraries.** Most clients should not need to call this method directly.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}:generateConnectManifest", + "httpMethod": "GET", + "id": "gkehub.projects.locations.memberships.generateConnectManifest", + "parameterOrder": [ + "name" + ], + "parameters": { + "imagePullSecretContent": { + "description": "Optional. The image pull secret content for the registry, if not public.", + "format": "byte", + "location": "query", + "type": "string" + }, + "isUpgrade": { + "description": "Optional. If true, generate the resources for upgrade only. Some resources generated only for installation (e.g. secrets) will be excluded.", + "location": "query", + "type": "boolean" + }, + "name": { + "description": "Required. The Membership resource name the Agent will associate with, in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "required": true, + "type": "string" + }, + "namespace": { + "description": "Optional. Namespace for GKE Connect agent resources. Defaults to `gke-connect`. The Connect Agent is authorized automatically when run in the default namespace. Otherwise, explicit authorization must be granted with an additional IAM binding.", + "location": "query", + "type": "string" + }, + "proxy": { + "description": "Optional. URI of a proxy if connectivity from the agent to gkeconnect.googleapis.com requires the use of a proxy. Format must be in the form `http(s)://{proxy_address}`, depending on the HTTP/HTTPS protocol supported by the proxy. This will direct the connect agent's outbound traffic through a HTTP(S) proxy.", + "format": "byte", + "location": "query", + "type": "string" + }, + "registry": { + "description": "Optional. The registry to fetch the connect agent image from. Defaults to gcr.io/gkeconnect.", + "location": "query", + "type": "string" + }, + "version": { + "description": "Optional. The Connect agent version to use. Defaults to the most current version.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+name}:generateConnectManifest", + "response": { + "$ref": "GenerateConnectManifestResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets the details of a Membership.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}", + "httpMethod": "GET", + "id": "gkehub.projects.locations.memberships.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "Membership" + }, + "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": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}:getIamPolicy", @@ -484,6 +839,91 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "Lists Memberships in a given project and location.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships", + "httpMethod": "GET", + "id": "gkehub.projects.locations.memberships.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Lists Memberships that match the filter expression, following the syntax outlined in https://google.aip.dev/160. Examples: - Name is `bar` in project `foo-proj` and location `global`: name = \"projects/foo-proj/locations/global/membership/bar\" - Memberships that have a label called `foo`: labels.foo:* - Memberships that have a label called `foo` whose value is `bar`: labels.foo = bar - Memberships in the CREATING state: state = CREATING", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. One or more fields to compare and use to sort the output. See https://google.aip.dev/132#ordering.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token returned by previous call to `ListMemberships` which specifies the position in the list from where to continue listing the resources.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent (project and location) where the Memberships will be listed. Specified in the format `projects/*/locations/*`. `projects/*/locations/-` list memberships in all the regions.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/memberships", + "response": { + "$ref": "ListMembershipsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates an existing Membership.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}", + "httpMethod": "PATCH", + "id": "gkehub.projects.locations.memberships.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "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).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "Required. Mask of fields to update.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+name}", + "request": { + "$ref": "Membership" + }, + "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": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}:setIamPolicy", @@ -540,6 +980,360 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "bindings": { + "methods": { + "create": { + "description": "Creates a MembershipBinding.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings", + "httpMethod": "POST", + "id": "gkehub.projects.locations.memberships.bindings.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "membershipBindingId": { + "description": "Required. The ID to use for the MembershipBinding.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent (project and location) where the MembershipBinding will be created. Specified in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/bindings", + "request": { + "$ref": "MembershipBinding" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a MembershipBinding.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings/{bindingsId}", + "httpMethod": "DELETE", + "id": "gkehub.projects.locations.memberships.bindings.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The MembershipBinding resource name in the format `projects/*/locations/*/memberships/*/bindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/bindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns the details of a MembershipBinding.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings/{bindingsId}", + "httpMethod": "GET", + "id": "gkehub.projects.locations.memberships.bindings.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The MembershipBinding resource name in the format `projects/*/locations/*/memberships/*/bindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/bindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "MembershipBinding" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists MembershipBindings.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings", + "httpMethod": "GET", + "id": "gkehub.projects.locations.memberships.bindings.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Lists MembershipBindings that match the filter expression, following the syntax outlined in https://google.aip.dev/160.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token returned by previous call to `ListMembershipBindings` which specifies the position in the list from where to continue listing the resources.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent Membership for which the MembershipBindings will be listed. Specified in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/bindings", + "response": { + "$ref": "ListMembershipBindingsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a MembershipBinding.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings/{bindingsId}", + "httpMethod": "PATCH", + "id": "gkehub.projects.locations.memberships.bindings.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name for the membershipbinding itself `projects/{project}/locations/{location}/memberships/{membership}/bindings/{membershipbinding}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/bindings/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+name}", + "request": { + "$ref": "MembershipBinding" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "rbacrolebindings": { + "methods": { + "create": { + "description": "Creates a Membership RBACRoleBinding.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/rbacrolebindings", + "httpMethod": "POST", + "id": "gkehub.projects.locations.memberships.rbacrolebindings.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent (project and location) where the RBACRoleBinding will be created. Specified in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "required": true, + "type": "string" + }, + "rbacrolebindingId": { + "description": "Required. Client chosen ID for the RBACRoleBinding. `rbacrolebinding_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+parent}/rbacrolebindings", + "request": { + "$ref": "RBACRoleBinding" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a Membership RBACRoleBinding.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/rbacrolebindings/{rbacrolebindingsId}", + "httpMethod": "DELETE", + "id": "gkehub.projects.locations.memberships.rbacrolebindings.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The RBACRoleBinding resource name in the format `projects/*/locations/*/memberships/*/rbacrolebindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/rbacrolebindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "generateMembershipRBACRoleBindingYAML": { + "description": "Generates a YAML of the RBAC policies for the specified RoleBinding and its associated impersonation resources.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/rbacrolebindings:generateMembershipRBACRoleBindingYAML", + "httpMethod": "POST", + "id": "gkehub.projects.locations.memberships.rbacrolebindings.generateMembershipRBACRoleBindingYAML", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent (project and location) where the RBACRoleBinding will be created. Specified in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "required": true, + "type": "string" + }, + "rbacrolebindingId": { + "description": "Required. Client chosen ID for the RBACRoleBinding. `rbacrolebinding_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+parent}/rbacrolebindings:generateMembershipRBACRoleBindingYAML", + "request": { + "$ref": "RBACRoleBinding" + }, + "response": { + "$ref": "GenerateMembershipRBACRoleBindingYAMLResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns the details of a Membership RBACRoleBinding.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/rbacrolebindings/{rbacrolebindingsId}", + "httpMethod": "GET", + "id": "gkehub.projects.locations.memberships.rbacrolebindings.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The RBACRoleBinding resource name in the format `projects/*/locations/*/memberships/*/rbacrolebindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/rbacrolebindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "RBACRoleBinding" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all Membership RBACRoleBindings.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/rbacrolebindings", + "httpMethod": "GET", + "id": "gkehub.projects.locations.memberships.rbacrolebindings.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token returned by previous call to `ListMembershipRBACRoleBindings` which specifies the position in the list from where to continue listing the resources.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent (project and location) where the Features will be listed. Specified in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/rbacrolebindings", + "response": { + "$ref": "ListMembershipRBACRoleBindingsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a Membership RBACRoleBinding.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/rbacrolebindings/{rbacrolebindingsId}", + "httpMethod": "PATCH", + "id": "gkehub.projects.locations.memberships.rbacrolebindings.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name for the rbacrolebinding `projects/{project}/locations/{location}/scopes/{scope}/rbacrolebindings/{rbacrolebinding}` or `projects/{project}/locations/{location}/memberships/{membership}/rbacrolebindings/{rbacrolebinding}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/rbacrolebindings/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+name}", + "request": { + "$ref": "RBACRoleBinding" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } }, "operations": { @@ -623,7 +1417,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "gkehub.projects.locations.operations.list", @@ -664,13 +1458,573 @@ ] } } + }, + "scopes": { + "methods": { + "create": { + "description": "Creates a Scope.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes", + "httpMethod": "POST", + "id": "gkehub.projects.locations.scopes.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent (project and location) where the Scope will be created. Specified in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "scopeId": { + "description": "Required. Client chosen ID for the Scope. `scope_id` must be a ????", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+parent}/scopes", + "request": { + "$ref": "Scope" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a Scope.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}", + "httpMethod": "DELETE", + "id": "gkehub.projects.locations.scopes.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Scope resource name in the format `projects/*/locations/*/scopes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns the details of a Scope.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Scope resource name in the format `projects/*/locations/*/scopes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "Scope" + }, + "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": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}:getIamPolicy", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.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/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Scopes.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token returned by previous call to `ListScopes` which specifies the position in the list from where to continue listing the resources.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent (project and location) where the Scope will be listed. Specified in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/scopes", + "response": { + "$ref": "ListScopesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a scopes.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}", + "httpMethod": "PATCH", + "id": "gkehub.projects.locations.scopes.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name for the scope `projects/{project}/locations/{location}/scopes/{scope}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+name}", + "request": { + "$ref": "Scope" + }, + "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": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}:setIamPolicy", + "httpMethod": "POST", + "id": "gkehub.projects.locations.scopes.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/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+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": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}:testIamPermissions", + "httpMethod": "POST", + "id": "gkehub.projects.locations.scopes.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/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "namespaces": { + "methods": { + "create": { + "description": "Creates a fleet namespace.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces", + "httpMethod": "POST", + "id": "gkehub.projects.locations.scopes.namespaces.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent (project and location) where the Namespace will be created. Specified in the format `projects/*/locations/*/scopes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + }, + "scopeNamespaceId": { + "description": "Required. Client chosen ID for the Namespace. `namespace_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+parent}/namespaces", + "request": { + "$ref": "Namespace" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a fleet namespace.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces/{namespacesId}", + "httpMethod": "DELETE", + "id": "gkehub.projects.locations.scopes.namespaces.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Namespace resource name in the format `projects/*/locations/*/scopes/*/namespaces/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/namespaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns the details of a fleet namespace.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces/{namespacesId}", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.namespaces.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Namespace resource name in the format `projects/*/locations/*/scopes/*/namespaces/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/namespaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "Namespace" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists fleet namespaces.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.namespaces.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token returned by previous call to `ListFeatures` which specifies the position in the list from where to continue listing the resources.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent (project and location) where the Features will be listed. Specified in the format `projects/*/locations/*/scopes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/namespaces", + "response": { + "$ref": "ListScopeNamespacesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a fleet namespace.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces/{namespacesId}", + "httpMethod": "PATCH", + "id": "gkehub.projects.locations.scopes.namespaces.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name for the namespace `projects/{project}/locations/{location}/namespaces/{namespace}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/namespaces/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+name}", + "request": { + "$ref": "Namespace" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "rbacrolebindings": { + "methods": { + "create": { + "description": "Creates a Scope RBACRoleBinding.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings", + "httpMethod": "POST", + "id": "gkehub.projects.locations.scopes.rbacrolebindings.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent (project and location) where the RBACRoleBinding will be created. Specified in the format `projects/*/locations/*/scopes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + }, + "rbacrolebindingId": { + "description": "Required. Client chosen ID for the RBACRoleBinding. `rbacrolebinding_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+parent}/rbacrolebindings", + "request": { + "$ref": "RBACRoleBinding" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a Scope RBACRoleBinding.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings/{rbacrolebindingsId}", + "httpMethod": "DELETE", + "id": "gkehub.projects.locations.scopes.rbacrolebindings.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The RBACRoleBinding resource name in the format `projects/*/locations/*/scopes/*/rbacrolebindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/rbacrolebindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns the details of a Scope RBACRoleBinding.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings/{rbacrolebindingsId}", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.rbacrolebindings.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The RBACRoleBinding resource name in the format `projects/*/locations/*/scopes/*/rbacrolebindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/rbacrolebindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "RBACRoleBinding" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all Scope RBACRoleBindings.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings", + "httpMethod": "GET", + "id": "gkehub.projects.locations.scopes.rbacrolebindings.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token returned by previous call to `ListScopeRBACRoleBindings` which specifies the position in the list from where to continue listing the resources.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent (project and location) where the Features will be listed. Specified in the format `projects/*/locations/*/scopes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/rbacrolebindings", + "response": { + "$ref": "ListScopeRBACRoleBindingsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a Scope RBACRoleBinding.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings/{rbacrolebindingsId}", + "httpMethod": "PATCH", + "id": "gkehub.projects.locations.scopes.rbacrolebindings.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name for the rbacrolebinding `projects/{project}/locations/{location}/scopes/{scope}/rbacrolebindings/{rbacrolebinding}` or `projects/{project}/locations/{location}/memberships/{membership}/rbacrolebindings/{rbacrolebinding}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/rbacrolebindings/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+name}", + "request": { + "$ref": "RBACRoleBinding" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } } } } } } }, - "revision": "20230106", + "revision": "20240225", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "AnthosObservabilityFeatureSpec": { @@ -720,6 +2074,17 @@ }, "type": "object" }, + "ApplianceCluster": { + "description": "ApplianceCluster contains information specific to GDC Edge Appliance Clusters.", + "id": "ApplianceCluster", + "properties": { + "resourceLink": { + "description": "Immutable. Self-link of the Google Cloud resource for the Appliance Cluster. For example: //transferappliance.googleapis.com/projects/my-project/locations/us-west1-a/appliances/my-appliance", + "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", @@ -768,6 +2133,60 @@ }, "type": "object" }, + "Authority": { + "description": "Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity", + "id": "Authority", + "properties": { + "identityProvider": { + "description": "Output only. An identity provider that reflects the `issuer` in the workload identity pool.", + "readOnly": true, + "type": "string" + }, + "issuer": { + "description": "Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length <2000 characters, it must use `location` rather than `zone` for GKE clusters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).", + "type": "string" + }, + "oidcJwks": { + "description": "Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517). When this field is set, OIDC discovery will NOT be performed on `issuer`, and instead OIDC tokens will be validated using this field.", + "format": "byte", + "type": "string" + }, + "workloadIdentityPool": { + "description": "Output only. The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "BinaryAuthorizationConfig": { + "description": "BinaryAuthorizationConfig defines the fleet level configuration of binary authorization feature.", + "id": "BinaryAuthorizationConfig", + "properties": { + "evaluationMode": { + "description": "Optional. Mode of operation for binauthz policy evaluation.", + "enum": [ + "EVALUATION_MODE_UNSPECIFIED", + "DISABLED", + "POLICY_BINDINGS" + ], + "enumDescriptions": [ + "Default value", + "Disable BinaryAuthorization", + "Use Binary Authorization with the policies specified in policy_bindings." + ], + "type": "string" + }, + "policyBindings": { + "description": "Optional. Binauthz policies that apply to this cluster.", + "items": { + "$ref": "PolicyBinding" + }, + "type": "array" + } + }, + "type": "object" + }, "Binding": { "description": "Associates `members`, or principals, with a `role`.", "id": "Binding", @@ -777,14 +2196,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -796,6 +2215,253 @@ "properties": {}, "type": "object" }, + "ClusterUpgradeFleetSpec": { + "description": "**ClusterUpgrade**: The configuration for the fleet-level ClusterUpgrade feature.", + "id": "ClusterUpgradeFleetSpec", + "properties": { + "gkeUpgradeOverrides": { + "description": "Allow users to override some properties of each GKE upgrade.", + "items": { + "$ref": "ClusterUpgradeGKEUpgradeOverride" + }, + "type": "array" + }, + "postConditions": { + "$ref": "ClusterUpgradePostConditions", + "description": "Required. Post conditions to evaluate to mark an upgrade COMPLETE. Required." + }, + "upstreamFleets": { + "description": "This fleet consumes upgrades that have COMPLETE status code in the upstream fleets. See UpgradeStatus.Code for code definitions. The fleet name should be either fleet project number or id. This is defined as repeated for future proof reasons. Initial implementation will enforce at most one upstream fleet.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClusterUpgradeFleetState": { + "description": "**ClusterUpgrade**: The state for the fleet-level ClusterUpgrade feature.", + "id": "ClusterUpgradeFleetState", + "properties": { + "downstreamFleets": { + "description": "This fleets whose upstream_fleets contain the current fleet. The fleet name should be either fleet project number or id.", + "items": { + "type": "string" + }, + "type": "array" + }, + "gkeState": { + "$ref": "ClusterUpgradeGKEUpgradeFeatureState", + "description": "Feature state for GKE clusters." + }, + "ignored": { + "additionalProperties": { + "$ref": "ClusterUpgradeIgnoredMembership" + }, + "description": "A list of memberships ignored by the feature. For example, manually upgraded clusters can be ignored if they are newer than the default versions of its release channel. The membership resource is in the format: `projects/{p}/locations/{l}/membership/{m}`.", + "type": "object" + } + }, + "type": "object" + }, + "ClusterUpgradeGKEUpgrade": { + "description": "GKEUpgrade represents a GKE provided upgrade, e.g., control plane upgrade.", + "id": "ClusterUpgradeGKEUpgrade", + "properties": { + "name": { + "description": "Name of the upgrade, e.g., \"k8s_control_plane\". It should be a valid upgrade name. It must not exceet 99 characters.", + "type": "string" + }, + "version": { + "description": "Version of the upgrade, e.g., \"1.22.1-gke.100\". It should be a valid version. It must not exceet 99 characters.", + "type": "string" + } + }, + "type": "object" + }, + "ClusterUpgradeGKEUpgradeFeatureCondition": { + "description": "GKEUpgradeFeatureCondition describes the condition of the feature for GKE clusters at a certain point of time.", + "id": "ClusterUpgradeGKEUpgradeFeatureCondition", + "properties": { + "reason": { + "description": "Reason why the feature is in this status.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of the condition, for example, \"ready\".", + "type": "string" + }, + "updateTime": { + "description": "Last timestamp the condition was updated.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "ClusterUpgradeGKEUpgradeFeatureState": { + "description": "GKEUpgradeFeatureState contains feature states for GKE clusters in the scope.", + "id": "ClusterUpgradeGKEUpgradeFeatureState", + "properties": { + "conditions": { + "description": "Current conditions of the feature.", + "items": { + "$ref": "ClusterUpgradeGKEUpgradeFeatureCondition" + }, + "type": "array" + }, + "upgradeState": { + "description": "Upgrade state. It will eventually replace `state`.", + "items": { + "$ref": "ClusterUpgradeGKEUpgradeState" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClusterUpgradeGKEUpgradeOverride": { + "description": "Properties of a GKE upgrade that can be overridden by the user. For example, a user can skip soaking by overriding the soaking to 0.", + "id": "ClusterUpgradeGKEUpgradeOverride", + "properties": { + "postConditions": { + "$ref": "ClusterUpgradePostConditions", + "description": "Required. Post conditions to override for the specified upgrade (name + version). Required." + }, + "upgrade": { + "$ref": "ClusterUpgradeGKEUpgrade", + "description": "Required. Which upgrade to override. Required." + } + }, + "type": "object" + }, + "ClusterUpgradeGKEUpgradeState": { + "description": "GKEUpgradeState is a GKEUpgrade and its state at the scope and fleet level.", + "id": "ClusterUpgradeGKEUpgradeState", + "properties": { + "stats": { + "additionalProperties": { + "format": "int64", + "type": "string" + }, + "description": "Number of GKE clusters in each status code.", + "type": "object" + }, + "status": { + "$ref": "ClusterUpgradeUpgradeStatus", + "description": "Status of the upgrade." + }, + "upgrade": { + "$ref": "ClusterUpgradeGKEUpgrade", + "description": "Which upgrade to track the state." + } + }, + "type": "object" + }, + "ClusterUpgradeIgnoredMembership": { + "description": "IgnoredMembership represents a membership ignored by the feature. A membership can be ignored because it was manually upgraded to a newer version than RC default.", + "id": "ClusterUpgradeIgnoredMembership", + "properties": { + "ignoredTime": { + "description": "Time when the membership was first set to ignored.", + "format": "google-datetime", + "type": "string" + }, + "reason": { + "description": "Reason why the membership is ignored.", + "type": "string" + } + }, + "type": "object" + }, + "ClusterUpgradeMembershipGKEUpgradeState": { + "description": "ScopeGKEUpgradeState is a GKEUpgrade and its state per-membership.", + "id": "ClusterUpgradeMembershipGKEUpgradeState", + "properties": { + "status": { + "$ref": "ClusterUpgradeUpgradeStatus", + "description": "Status of the upgrade." + }, + "upgrade": { + "$ref": "ClusterUpgradeGKEUpgrade", + "description": "Which upgrade to track the state." + } + }, + "type": "object" + }, + "ClusterUpgradeMembershipState": { + "description": "Per-membership state for this feature.", + "id": "ClusterUpgradeMembershipState", + "properties": { + "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." + }, + "upgrades": { + "description": "Actual upgrade state against desired.", + "items": { + "$ref": "ClusterUpgradeMembershipGKEUpgradeState" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClusterUpgradePostConditions": { + "description": "Post conditional checks after an upgrade has been applied on all eligible clusters.", + "id": "ClusterUpgradePostConditions", + "properties": { + "soaking": { + "description": "Required. Amount of time to \"soak\" after a rollout has been finished before marking it COMPLETE. Cannot exceed 30 days. Required.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "ClusterUpgradeUpgradeStatus": { + "description": "UpgradeStatus provides status information for each upgrade.", + "id": "ClusterUpgradeUpgradeStatus", + "properties": { + "code": { + "description": "Status code of the upgrade.", + "enum": [ + "CODE_UNSPECIFIED", + "INELIGIBLE", + "PENDING", + "IN_PROGRESS", + "SOAKING", + "FORCED_SOAKING", + "COMPLETE" + ], + "enumDescriptions": [ + "Required by https://linter.aip.dev/126/unspecified.", + "The upgrade is ineligible. At the scope level, this means the upgrade is ineligible for all the clusters in the scope.", + "The upgrade is pending. At the scope level, this means the upgrade is pending for all the clusters in the scope.", + "The upgrade is in progress. At the scope level, this means the upgrade is in progress for at least one cluster in the scope.", + "The upgrade has finished and is soaking until the soaking time is up. At the scope level, this means at least one cluster is in soaking while the rest are either soaking or complete.", + "A cluster will be forced to enter soaking if an upgrade doesn't finish within a certain limit, despite it's actual status.", + "The upgrade has passed all post conditions (soaking). At the scope level, this means all eligible clusters are in COMPLETE status." + ], + "type": "string" + }, + "reason": { + "description": "Reason for this status.", + "type": "string" + }, + "updateTime": { + "description": "Last timestamp the status was updated.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "CommonFeatureSpec": { "description": "CommonFeatureSpec contains Hub-wide configuration information", "id": "CommonFeatureSpec", @@ -808,6 +2474,14 @@ "$ref": "AppDevExperienceFeatureSpec", "description": "Appdevexperience specific spec." }, + "clusterupgrade": { + "$ref": "ClusterUpgradeFleetSpec", + "description": "ClusterUpgrade (fleet-based) feature spec." + }, + "dataplanev2": { + "$ref": "DataplaneV2FeatureSpec", + "description": "DataplaneV2 feature spec." + }, "fleetobservability": { "$ref": "FleetObservabilityFeatureSpec", "description": "FleetObservability feature spec." @@ -827,6 +2501,10 @@ "$ref": "AppDevExperienceFeatureState", "description": "Appdevexperience specific state." }, + "clusterupgrade": { + "$ref": "ClusterUpgradeFleetState", + "description": "ClusterUpgrade fleet-level state." + }, "fleetobservability": { "$ref": "FleetObservabilityFeatureState", "description": "FleetObservability feature state." @@ -839,6 +2517,29 @@ }, "type": "object" }, + "CommonFleetDefaultMemberConfigSpec": { + "description": "CommonFleetDefaultMemberConfigSpec contains default configuration information for memberships of a fleet", + "id": "CommonFleetDefaultMemberConfigSpec", + "properties": { + "configmanagement": { + "$ref": "ConfigManagementMembershipSpec", + "description": "Config Management-specific spec." + }, + "identityservice": { + "$ref": "IdentityServiceMembershipSpec", + "description": "Identity Service-specific spec." + }, + "mesh": { + "$ref": "ServiceMeshMembershipSpec", + "description": "Anthos Service Mesh-specific spec" + }, + "policycontroller": { + "$ref": "PolicyControllerMembershipSpec", + "description": "Policy Controller spec." + } + }, + "type": "object" + }, "ConfigManagementBinauthzConfig": { "description": "Configuration for Binauthz", "id": "ConfigManagementBinauthzConfig", @@ -864,13 +2565,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" } @@ -893,17 +2596,22 @@ "id": "ConfigManagementConfigSync", "properties": { "allowVerticalScale": { + "deprecated": true, "description": "Set to true to allow the vertical scaling. Defaults to false which disallows vertical scaling. This field is deprecated.", "type": "boolean" }, "enabled": { - "description": "Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of git field.", + "description": "Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.", "type": "boolean" }, "git": { "$ref": "ConfigManagementGitConfig", "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.", + "type": "string" + }, "oci": { "$ref": "ConfigManagementOciConfig", "description": "OCI repo configuration for the cluster" @@ -929,13 +2637,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -945,13 +2655,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -961,13 +2673,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -977,13 +2691,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -993,13 +2709,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1009,13 +2727,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1025,19 +2745,32 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" } }, "type": "object" }, + "ConfigManagementConfigSyncError": { + "description": "Errors pertaining to the installation of Config Sync", + "id": "ConfigManagementConfigSyncError", + "properties": { + "errorMessage": { + "description": "A string representing the user facing error message", + "type": "string" + } + }, + "type": "object" + }, "ConfigManagementConfigSyncState": { "description": "State information for ConfigSync", "id": "ConfigManagementConfigSyncState", @@ -1046,6 +2779,67 @@ "$ref": "ConfigManagementConfigSyncDeploymentState", "description": "Information about the deployment of ConfigSync, including the version of the various Pods deployed" }, + "errors": { + "description": "Errors pertaining to the installation of Config Sync.", + "items": { + "$ref": "ConfigManagementConfigSyncError" + }, + "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" @@ -1125,13 +2919,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1141,13 +2937,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1157,13 +2955,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" } @@ -1175,7 +2975,7 @@ "id": "ConfigManagementGitConfig", "properties": { "gcpServiceAccountEmail": { - "description": "The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.", + "description": "The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.", "type": "string" }, "httpsProxy": { @@ -1258,13 +3058,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1274,13 +3076,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" } @@ -1334,7 +3138,12 @@ "properties": { "binauthz": { "$ref": "ConfigManagementBinauthzConfig", - "description": "Binauthz conifguration for the cluster." + "deprecated": true, + "description": "Binauthz conifguration for the cluster. Deprecated: This field will be ignored and should not be set." + }, + "cluster": { + "description": "The user-specified cluster name used by Config Sync cluster-name-selector annotation or ClusterSelector, for applying configs to only a subset of clusters. Omit this field if the cluster's fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector. Set this field if a name different from the cluster's fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector.", + "type": "string" }, "configSync": { "$ref": "ConfigManagementConfigSync", @@ -1344,6 +3153,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." @@ -1364,7 +3187,7 @@ "description": "Binauthz status" }, "clusterName": { - "description": "The user-defined name for the cluster used by ClusterSelectors to group clusters together. This should match Membership's membership_name, unless the user installed ACM on the cluster manually prior to enabling the ACM hub feature. Unique within a Anthos Config Management installation.", + "description": "This field is set to the `cluster_name` field of the Membership Spec if it is not empty. Otherwise, it is set to the cluster's fleet membership name.", "type": "string" }, "configSyncState": { @@ -1395,7 +3218,7 @@ "id": "ConfigManagementOciConfig", "properties": { "gcpServiceAccountEmail": { - "description": "The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.", + "description": "The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.", "type": "string" }, "policyDir": { @@ -1428,13 +3251,15 @@ "DEPLOYMENT_STATE_UNSPECIFIED", "NOT_INSTALLED", "INSTALLED", - "ERROR" + "ERROR", + "PENDING" ], "enumDescriptions": [ "Deployment's state cannot be determined", "Deployment is not installed", "Deployment is installed", - "Deployment was attempted to be installed, but has errors" + "Deployment was attempted to be installed, but has errors", + "Deployment is installing or terminating" ], "type": "string" }, @@ -1491,6 +3316,38 @@ "templateLibraryInstalled": { "description": "Installs the default template library along with Policy Controller.", "type": "boolean" + }, + "updateTime": { + "description": "Output only. Last time this membership spec was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ConfigManagementPolicyControllerMigration": { + "description": "State for the migration of PolicyController from ACM -> PoCo Hub.", + "id": "ConfigManagementPolicyControllerMigration", + "properties": { + "copyTime": { + "description": "Last time this membership spec was copied to PoCo feature.", + "format": "google-datetime", + "type": "string" + }, + "stage": { + "description": "Stage of the migration.", + "enum": [ + "STAGE_UNSPECIFIED", + "ACM_MANAGED", + "POCO_MANAGED" + ], + "enumDescriptions": [ + "Unknown state of migration.", + "ACM Hub/Operator manages policycontroller. No migration yet completed.", + "All migrations steps complete; Poco Hub now manages policycontroller." + ], + "type": "string" } }, "type": "object" @@ -1527,6 +3384,10 @@ "$ref": "ConfigManagementGatekeeperDeploymentState", "description": "The state about the policy controller installation." }, + "migration": { + "$ref": "ConfigManagementPolicyControllerMigration", + "description": "Record state of ACM -> PoCo Hub migration for this feature." + }, "version": { "$ref": "ConfigManagementPolicyControllerVersion", "description": "The version of Gatekeeper Policy Controller deployed." @@ -1584,12 +3445,12 @@ "UNREACHABLE" ], "enumDescriptions": [ - "ACM cannot determine a sync code", - "ACM successfully synced the git Repo with the cluster", - "ACM is in the progress of syncing a new change", - "Indicates an error configuring ACM, and user action is required", - "ACM has been installed (operator manifest deployed), but not configured.", - "ACM has not been installed (no operator pod found)", + "Config Sync cannot determine a sync code", + "Config Sync successfully synced the git Repo with the cluster", + "Config Sync is in the progress of syncing a new change", + "Indicates an error configuring Config Sync, and user action is required", + "Config Sync has been installed but not configured", + "Config Sync has not been installed", "Error authorizing with the cluster", "Cluster could not be reached" ], @@ -1607,6 +3468,7 @@ "type": "string" }, "lastSync": { + "deprecated": true, "description": "Deprecated: use last_sync_time instead. Timestamp of when ACM last successfully synced the repo The time format is specified in https://golang.org/pkg/time/#Time.String", "type": "string" }, @@ -1626,6 +3488,58 @@ }, "type": "object" }, + "ConnectAgentResource": { + "description": "ConnectAgentResource represents a Kubernetes resource manifest for Connect Agent deployment.", + "id": "ConnectAgentResource", + "properties": { + "manifest": { + "description": "YAML manifest of the resource.", + "type": "string" + }, + "type": { + "$ref": "TypeMeta", + "description": "Kubernetes type of the resource." + } + }, + "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", + "properties": { + "binaryAuthorizationConfig": { + "$ref": "BinaryAuthorizationConfig", + "description": "Optional. Enable/Disable binary authorization features for the cluster." + }, + "securityPostureConfig": { + "$ref": "SecurityPostureConfig", + "description": "Enable/Disable Security Posture features for the cluster." + } + }, + "type": "object" + }, + "EdgeCluster": { + "description": "EdgeCluster contains information specific to Google Edge Clusters.", + "id": "EdgeCluster", + "properties": { + "resourceLink": { + "description": "Immutable. Self-link of the Google Cloud resource for the Edge Cluster. For example: //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster", + "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", @@ -1671,11 +3585,15 @@ "readOnly": true, "type": "string" }, + "fleetDefaultMemberConfig": { + "$ref": "CommonFleetDefaultMemberConfigSpec", + "description": "Optional. Feature configuration applicable to all memberships of the fleet." + }, "labels": { "additionalProperties": { "type": "string" }, - "description": "GCP labels for this Feature.", + "description": "Labels for this Feature.", "type": "object" }, "membershipSpecs": { @@ -1795,16 +3713,195 @@ }, "type": "object" }, + "Fleet": { + "description": "Fleet contains the Fleet-wide metadata and configuration.", + "id": "Fleet", + "properties": { + "createTime": { + "description": "Output only. When the Fleet was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "defaultClusterConfig": { + "$ref": "DefaultClusterConfig", + "description": "Optional. The default cluster configurations to apply across the fleet." + }, + "deleteTime": { + "description": "Output only. When the Fleet was deleted.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Optional. A user-assigned display name of the Fleet. When present, it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `Production Fleet`", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels for this Fleet.", + "type": "object" + }, + "name": { + "description": "Output only. The full, unique resource name of this fleet in the format of `projects/{project}/locations/{location}/fleets/{fleet}`. Each Google Cloud project can have at most one fleet resource, named \"default\".", + "readOnly": true, + "type": "string" + }, + "state": { + "$ref": "FleetLifecycleState", + "description": "Output only. State of the namespace resource.", + "readOnly": true + }, + "uid": { + "description": "Output only. Google-generated UUID for this resource. This is unique across all Fleet resources. If a Fleet resource is deleted and another resource with the same name is created, it gets a different uid.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. When the Fleet was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "FleetLifecycleState": { + "description": "FleetLifecycleState describes the state of a Fleet resource.", + "id": "FleetLifecycleState", + "properties": { + "code": { + "description": "Output only. The current state of the Fleet resource.", + "enum": [ + "CODE_UNSPECIFIED", + "CREATING", + "READY", + "DELETING", + "UPDATING" + ], + "enumDescriptions": [ + "The code is not set.", + "The fleet is being created.", + "The fleet active.", + "The fleet is being deleted.", + "The fleet is being updated." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "FleetObservabilityFeatureError": { + "description": "All error details of the fleet observability feature.", + "id": "FleetObservabilityFeatureError", + "properties": { + "code": { + "description": "The code of the error.", + "type": "string" + }, + "description": { + "description": "A human-readable description of the current status.", + "type": "string" + } + }, + "type": "object" + }, "FleetObservabilityFeatureSpec": { "description": "**Fleet Observability**: The Hub-wide input for the FleetObservability feature.", "id": "FleetObservabilityFeatureSpec", - "properties": {}, + "properties": { + "loggingConfig": { + "$ref": "FleetObservabilityLoggingConfig", + "description": "Specified if fleet logging feature is enabled for the entire fleet. If UNSPECIFIED, fleet logging feature is disabled for the entire fleet." + } + }, "type": "object" }, "FleetObservabilityFeatureState": { - "description": "**FleetObservability**: An empty state left as an example Hub-wide Feature state.", + "description": "**FleetObservability**: Hub-wide Feature for FleetObservability feature. state.", "id": "FleetObservabilityFeatureState", - "properties": {}, + "properties": { + "logging": { + "$ref": "FleetObservabilityFleetObservabilityLoggingState", + "description": "The feature state of default logging." + }, + "monitoring": { + "$ref": "FleetObservabilityFleetObservabilityMonitoringState", + "description": "The feature state of fleet monitoring." + } + }, + "type": "object" + }, + "FleetObservabilityFleetObservabilityBaseFeatureState": { + "description": "Base state for fleet observability feature.", + "id": "FleetObservabilityFleetObservabilityBaseFeatureState", + "properties": { + "code": { + "description": "The high-level, machine-readable status of this Feature.", + "enum": [ + "CODE_UNSPECIFIED", + "OK", + "ERROR" + ], + "enumDescriptions": [ + "Unknown or not set.", + "The Feature is operating normally.", + "The Feature is encountering errors in the reconciliation. The Feature may need intervention to return to normal operation. See the description and any associated Feature-specific details for more information." + ], + "type": "string" + }, + "errors": { + "description": "Errors after reconciling the monitoring and logging feature if the code is not OK.", + "items": { + "$ref": "FleetObservabilityFeatureError" + }, + "type": "array" + } + }, + "type": "object" + }, + "FleetObservabilityFleetObservabilityLoggingState": { + "description": "Feature state for logging feature.", + "id": "FleetObservabilityFleetObservabilityLoggingState", + "properties": { + "defaultLog": { + "$ref": "FleetObservabilityFleetObservabilityBaseFeatureState", + "description": "The base feature state of fleet default log." + }, + "scopeLog": { + "$ref": "FleetObservabilityFleetObservabilityBaseFeatureState", + "description": "The base feature state of fleet scope log." + } + }, + "type": "object" + }, + "FleetObservabilityFleetObservabilityMonitoringState": { + "description": "Feature state for monitoring feature.", + "id": "FleetObservabilityFleetObservabilityMonitoringState", + "properties": { + "state": { + "$ref": "FleetObservabilityFleetObservabilityBaseFeatureState", + "description": "The base feature state of fleet monitoring feature." + } + }, + "type": "object" + }, + "FleetObservabilityLoggingConfig": { + "description": "LoggingConfig defines the configuration for different types of logs.", + "id": "FleetObservabilityLoggingConfig", + "properties": { + "defaultConfig": { + "$ref": "FleetObservabilityRoutingConfig", + "description": "Specified if applying the default routing config to logs not specified in other configs." + }, + "fleetScopeLogsConfig": { + "$ref": "FleetObservabilityRoutingConfig", + "description": "Specified if applying the routing config to all logs for all fleet scopes." + } + }, "type": "object" }, "FleetObservabilityMembershipSpec": { @@ -1814,11 +3911,73 @@ "type": "object" }, "FleetObservabilityMembershipState": { - "description": "**FleetObservability**: An empty state left as an example membership-specific Feature state.", + "description": "**FleetObservability**: Membership-specific Feature state for fleetobservability.", "id": "FleetObservabilityMembershipState", "properties": {}, "type": "object" }, + "FleetObservabilityRoutingConfig": { + "description": "RoutingConfig configures the behaviour of fleet logging feature.", + "id": "FleetObservabilityRoutingConfig", + "properties": { + "mode": { + "description": "mode configures the logs routing mode.", + "enum": [ + "MODE_UNSPECIFIED", + "COPY", + "MOVE" + ], + "enumDescriptions": [ + "If UNSPECIFIED, fleet logging feature is disabled.", + "logs will be copied to the destination project.", + "logs will be moved to the destination project." + ], + "type": "string" + } + }, + "type": "object" + }, + "GenerateConnectManifestResponse": { + "description": "GenerateConnectManifestResponse contains manifest information for installing/upgrading a Connect agent.", + "id": "GenerateConnectManifestResponse", + "properties": { + "manifest": { + "description": "The ordered list of Kubernetes resources that need to be applied to the cluster for GKE Connect agent installation/upgrade.", + "items": { + "$ref": "ConnectAgentResource" + }, + "type": "array" + } + }, + "type": "object" + }, + "GenerateMembershipRBACRoleBindingYAMLResponse": { + "description": "Response for GenerateRBACRoleBindingYAML.", + "id": "GenerateMembershipRBACRoleBindingYAMLResponse", + "properties": { + "roleBindingsYaml": { + "description": "a yaml text blob including the RBAC policies.", + "type": "string" + } + }, + "type": "object" + }, + "GkeCluster": { + "description": "GkeCluster contains information specific to GKE clusters.", + "id": "GkeCluster", + "properties": { + "clusterMissing": { + "description": "Output only. If cluster_missing is set then it denotes that the GKE cluster no longer exists in the GKE Control Plane.", + "readOnly": true, + "type": "boolean" + }, + "resourceLink": { + "description": "Immutable. Self-link of the Google Cloud resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.", + "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", @@ -1856,7 +4015,7 @@ }, "googleConfig": { "$ref": "IdentityServiceGoogleConfig", - "description": "GoogleConfig specific configuration" + "description": "GoogleConfig specific configuration." }, "name": { "description": "Identifier for auth config.", @@ -2025,6 +4184,78 @@ }, "type": "object" }, + "KubernetesMetadata": { + "description": "KubernetesMetadata provides informational metadata for Memberships representing Kubernetes clusters.", + "id": "KubernetesMetadata", + "properties": { + "kubernetesApiServerVersion": { + "description": "Output only. Kubernetes API server version string as reported by `/version`.", + "readOnly": true, + "type": "string" + }, + "memoryMb": { + "description": "Output only. The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "nodeCount": { + "description": "Output only. Node count as reported by Kubernetes nodes resources.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "nodeProviderId": { + "description": "Output only. Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "vcpuCount": { + "description": "Output only. vCPU count as reported by Kubernetes nodes resources.", + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, + "KubernetesResource": { + "description": "KubernetesResource contains the YAML manifests and configuration for Membership Kubernetes resources in the cluster. After CreateMembership or UpdateMembership, these resources should be re-applied in the cluster.", + "id": "KubernetesResource", + "properties": { + "connectResources": { + "description": "Output only. The Kubernetes resources for installing the GKE Connect agent This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.", + "items": { + "$ref": "ResourceManifest" + }, + "readOnly": true, + "type": "array" + }, + "membershipCrManifest": { + "description": "Input only. The YAML representation of the Membership CR. This field is ignored for GKE clusters where Hub can read the CR directly. Callers should provide the CR that is currently present in the cluster during CreateMembership or UpdateMembership, or leave this field empty if none exists. The CR manifest is used to validate the cluster has not been registered with another Membership.", + "type": "string" + }, + "membershipResources": { + "description": "Output only. Additional Kubernetes resources that need to be applied to the cluster after Membership creation, and after every update. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.", + "items": { + "$ref": "ResourceManifest" + }, + "readOnly": true, + "type": "array" + }, + "resourceOptions": { + "$ref": "ResourceOptions", + "description": "Optional. Options for Kubernetes resource generation." + } + }, + "type": "object" + }, "ListFeaturesResponse": { "description": "Response message for the `GkeHub.ListFeatures` method.", "id": "ListFeaturesResponse", @@ -2043,6 +4274,24 @@ }, "type": "object" }, + "ListFleetsResponse": { + "description": "Response message for the `GkeHub.ListFleetsResponse` method.", + "id": "ListFleetsResponse", + "properties": { + "fleets": { + "description": "The list of matching fleets.", + "items": { + "$ref": "Fleet" + }, + "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. The token is only valid for 1h.", + "type": "string" + } + }, + "type": "object" + }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -2061,6 +4310,67 @@ }, "type": "object" }, + "ListMembershipBindingsResponse": { + "description": "List of MembershipBindings.", + "id": "ListMembershipBindingsResponse", + "properties": { + "membershipBindings": { + "description": "The list of membership_bindings", + "items": { + "$ref": "MembershipBinding" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to request the next page of resources from the `ListMembershipBindings` method. The value of an empty string means that there are no more resources to return.", + "type": "string" + } + }, + "type": "object" + }, + "ListMembershipRBACRoleBindingsResponse": { + "description": "List of Membership RBACRoleBindings.", + "id": "ListMembershipRBACRoleBindingsResponse", + "properties": { + "nextPageToken": { + "description": "A token to request the next page of resources from the `ListMembershipRBACRoleBindings` method. The value of an empty string means that there are no more resources to return.", + "type": "string" + }, + "rbacrolebindings": { + "description": "The list of Membership RBACRoleBindings.", + "items": { + "$ref": "RBACRoleBinding" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListMembershipsResponse": { + "description": "Response message for the `GkeHub.ListMemberships` method.", + "id": "ListMembershipsResponse", + "properties": { + "nextPageToken": { + "description": "A token to request the next page of resources from the `ListMemberships` method. The value of an empty string means that there are no more resources to return.", + "type": "string" + }, + "resources": { + "description": "The list of matching Memberships.", + "items": { + "$ref": "Membership" + }, + "type": "array" + }, + "unreachable": { + "description": "List of locations that could not be reached while fetching this list.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListOperationsResponse": { "description": "The response message for Operations.ListOperations.", "id": "ListOperationsResponse", @@ -2079,8 +4389,62 @@ }, "type": "object" }, + "ListScopeNamespacesResponse": { + "description": "List of fleet namespaces.", + "id": "ListScopeNamespacesResponse", + "properties": { + "nextPageToken": { + "description": "A token to request the next page of resources from the `ListNamespaces` method. The value of an empty string means that there are no more resources to return.", + "type": "string" + }, + "scopeNamespaces": { + "description": "The list of fleet namespaces", + "items": { + "$ref": "Namespace" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListScopeRBACRoleBindingsResponse": { + "description": "List of Scope RBACRoleBindings.", + "id": "ListScopeRBACRoleBindingsResponse", + "properties": { + "nextPageToken": { + "description": "A token to request the next page of resources from the `ListScopeRBACRoleBindings` method. The value of an empty string means that there are no more resources to return.", + "type": "string" + }, + "rbacrolebindings": { + "description": "The list of Scope RBACRoleBindings.", + "items": { + "$ref": "RBACRoleBinding" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListScopesResponse": { + "description": "List of Scopes.", + "id": "ListScopesResponse", + "properties": { + "nextPageToken": { + "description": "A token to request the next page of resources from the `ListScopes` method. The value of an empty string means that there are no more resources to return.", + "type": "string" + }, + "scopes": { + "description": "The list of Scopes", + "items": { + "$ref": "Scope" + }, + "type": "array" + } + }, + "type": "object" + }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -2113,8 +4477,199 @@ }, "type": "object" }, + "Membership": { + "description": "Membership contains information about a member cluster.", + "id": "Membership", + "properties": { + "authority": { + "$ref": "Authority", + "description": "Optional. How to identify workloads from this Membership. See the documentation on Workload Identity for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity" + }, + "createTime": { + "description": "Output only. When the Membership was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deleteTime": { + "description": "Output only. When the Membership was deleted.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Output only. Description of this membership, limited to 63 characters. Must match the regex: `a-zA-Z0-9*` This field is present for legacy purposes.", + "readOnly": true, + "type": "string" + }, + "endpoint": { + "$ref": "MembershipEndpoint", + "description": "Optional. Endpoint information to reach this member." + }, + "externalId": { + "description": "Optional. An externally-generated and managed ID for this Membership. This ID may be modified after creation, but this is not recommended. The ID must match the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster, this value should be set to the UID of the `kube-system` namespace object.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels for this membership.", + "type": "object" + }, + "lastConnectionTime": { + "description": "Output only. For clusters using Connect, the timestamp of the most recent connection established with Google Cloud. This time is updated every several minutes, not continuously. For clusters that do not use GKE Connect, or that have never connected successfully, this field will be unset.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "monitoringConfig": { + "$ref": "MonitoringConfig", + "description": "Optional. The monitoring config information for this membership." + }, + "name": { + "description": "Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", + "readOnly": true, + "type": "string" + }, + "state": { + "$ref": "MembershipState", + "description": "Output only. State of the Membership resource.", + "readOnly": true + }, + "uniqueId": { + "description": "Output only. Google-generated UUID for this resource. This is unique across all Membership resources. If a Membership resource is deleted and another resource with the same name is created, it gets a different unique_id.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. When the Membership was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "MembershipBinding": { + "description": "MembershipBinding is a subresource of a Membership, representing what Fleet Scopes (or other, future Fleet resources) a Membership is bound to.", + "id": "MembershipBinding", + "properties": { + "createTime": { + "description": "Output only. When the membership binding was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deleteTime": { + "description": "Output only. When the membership binding was deleted.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels for this MembershipBinding.", + "type": "object" + }, + "name": { + "description": "The resource name for the membershipbinding itself `projects/{project}/locations/{location}/memberships/{membership}/bindings/{membershipbinding}`", + "type": "string" + }, + "scope": { + "description": "A Scope resource name in the format `projects/*/locations/*/scopes/*`.", + "type": "string" + }, + "state": { + "$ref": "MembershipBindingLifecycleState", + "description": "Output only. State of the membership binding resource.", + "readOnly": true + }, + "uid": { + "description": "Output only. Google-generated UUID for this resource. This is unique across all membershipbinding resources. If a membershipbinding resource is deleted and another resource with the same name is created, it gets a different uid.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. When the membership binding was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "MembershipBindingLifecycleState": { + "description": "MembershipBindingLifecycleState describes the state of a Binding resource.", + "id": "MembershipBindingLifecycleState", + "properties": { + "code": { + "description": "Output only. The current state of the MembershipBinding resource.", + "enum": [ + "CODE_UNSPECIFIED", + "CREATING", + "READY", + "DELETING", + "UPDATING" + ], + "enumDescriptions": [ + "The code is not set.", + "The membershipbinding is being created.", + "The membershipbinding active.", + "The membershipbinding is being deleted.", + "The membershipbinding is being updated." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "MembershipEndpoint": { + "description": "MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata.", + "id": "MembershipEndpoint", + "properties": { + "applianceCluster": { + "$ref": "ApplianceCluster", + "description": "Optional. Specific information for a GDC Edge Appliance cluster." + }, + "edgeCluster": { + "$ref": "EdgeCluster", + "description": "Optional. Specific information for a Google Edge cluster." + }, + "gkeCluster": { + "$ref": "GkeCluster", + "description": "Optional. Specific information for a GKE-on-GCP cluster." + }, + "googleManaged": { + "description": "Output only. Whether the lifecycle of this membership is managed by a google cluster platform service.", + "readOnly": true, + "type": "boolean" + }, + "kubernetesMetadata": { + "$ref": "KubernetesMetadata", + "description": "Output only. Useful Kubernetes-specific metadata.", + "readOnly": true + }, + "kubernetesResource": { + "$ref": "KubernetesResource", + "description": "Optional. The in-cluster Kubernetes Resources that should be applied for a correctly registered cluster, in the steady state. These resources: * Ensure that the cluster is exclusively registered to one and only one Hub Membership. * Propagate Workload Pool Information available in the Membership Authority field. * Ensure proper initial configuration of default Hub Features." + }, + "multiCloudCluster": { + "$ref": "MultiCloudCluster", + "description": "Optional. Specific information for a GKE Multi-Cloud cluster." + }, + "onPremCluster": { + "$ref": "OnPremCluster", + "description": "Optional. Specific information for a GKE On-Prem cluster. An onprem user-cluster who has no resourceLink is not allowed to use this field, it should have a nil \"type\" instead." + } + }, + "type": "object" + }, "MembershipFeatureSpec": { - "description": "MembershipFeatureSpec contains configuration information for a single Membership.", + "description": "MembershipFeatureSpec contains configuration information for a single Membership. NOTE: Please use snake case in your feature name.", "id": "MembershipFeatureSpec", "properties": { "anthosobservability": { @@ -2129,10 +4684,6 @@ "$ref": "ConfigManagementMembershipSpec", "description": "Config Management-specific spec." }, - "fleetInherited": { - "description": "True if value of `feature_spec` was inherited from a fleet-level default.", - "type": "boolean" - }, "fleetobservability": { "$ref": "FleetObservabilityMembershipSpec", "description": "Fleet observability membership spec" @@ -2145,6 +4696,10 @@ "$ref": "ServiceMeshMembershipSpec", "description": "Anthos Service Mesh-specific spec" }, + "origin": { + "$ref": "Origin", + "description": "Whether this per-Membership spec was inherited from a fleet-level default. This field can be updated by users by either overriding a Membership config (updated to USER implicitly) or setting to FLEET explicitly." + }, "policycontroller": { "$ref": "PolicyControllerMembershipSpec", "description": "Policy Controller spec." @@ -2160,6 +4715,10 @@ "$ref": "AppDevExperienceFeatureState", "description": "Appdevexperience specific state." }, + "clusterupgrade": { + "$ref": "ClusterUpgradeMembershipState", + "description": "ClusterUpgrade state." + }, "configmanagement": { "$ref": "ConfigManagementMembershipState", "description": "Config Management-specific state." @@ -2216,6 +4775,34 @@ }, "type": "object" }, + "MembershipState": { + "description": "MembershipState describes the state of a Membership resource.", + "id": "MembershipState", + "properties": { + "code": { + "description": "Output only. The current state of the Membership resource.", + "enum": [ + "CODE_UNSPECIFIED", + "CREATING", + "READY", + "DELETING", + "UPDATING", + "SERVICE_UPDATING" + ], + "enumDescriptions": [ + "The code is not set.", + "The cluster is being registered.", + "The cluster is registered.", + "The cluster is being unregistered.", + "The Membership is being updated.", + "The Membership is being updated by the Hub Service." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "MeteringMembershipState": { "description": "**Metering**: Per-Membership Feature State.", "id": "MeteringMembershipState", @@ -2233,11 +4820,55 @@ }, "type": "object" }, + "MonitoringConfig": { + "description": "MonitoringConfig informs Fleet-based applications/services/UIs how the metrics for the underlying cluster is reported to cloud monitoring services. It can be set from empty to non-empty, but can't be mutated directly to prevent accidentally breaking the constinousty of metrics.", + "id": "MonitoringConfig", + "properties": { + "cluster": { + "description": "Optional. Cluster name used to report metrics. For Anthos on VMWare/Baremetal/MultiCloud clusters, it would be in format {cluster_type}/{cluster_name}, e.g., \"awsClusters/cluster_1\".", + "type": "string" + }, + "clusterHash": { + "description": "Optional. For GKE and Multicloud clusters, this is the UUID of the cluster resource. For VMWare and Baremetal clusters, this is the kube-system UID.", + "type": "string" + }, + "kubernetesMetricsPrefix": { + "description": "Optional. Kubernetes system metrics, if available, are written to this prefix. This defaults to kubernetes.io for GKE, and kubernetes.io/anthos for Anthos eventually. Noted: Anthos MultiCloud will have kubernetes.io prefix today but will migration to be under kubernetes.io/anthos.", + "type": "string" + }, + "location": { + "description": "Optional. Location used to report Metrics", + "type": "string" + }, + "projectId": { + "description": "Optional. Project used to report Metrics", + "type": "string" + } + }, + "type": "object" + }, + "MultiCloudCluster": { + "description": "MultiCloudCluster contains information specific to GKE Multi-Cloud clusters.", + "id": "MultiCloudCluster", + "properties": { + "clusterMissing": { + "description": "Output only. If cluster_missing is set then it denotes that API(gkemulticloud.googleapis.com) resource for this GKE Multi-Cloud cluster no longer exists.", + "readOnly": true, + "type": "boolean" + }, + "resourceLink": { + "description": "Immutable. Self-link of the Google Cloud resource for the GKE Multi-Cloud cluster. For example: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/azureClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/attachedClusters/my-cluster", + "type": "string" + } + }, + "type": "object" + }, "MultiClusterIngressFeatureSpec": { "description": "**Multi-cluster Ingress**: The configuration for the MultiClusterIngress feature.", "id": "MultiClusterIngressFeatureSpec", "properties": { "billing": { + "deprecated": true, "description": "Deprecated: This field will be ignored and should not be set. Customer's billing structure.", "enum": [ "BILLING_UNSPECIFIED", @@ -2258,6 +4889,127 @@ }, "type": "object" }, + "Namespace": { + "description": "Namespace represents a namespace across the Fleet", + "id": "Namespace", + "properties": { + "createTime": { + "description": "Output only. When the namespace was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deleteTime": { + "description": "Output only. When the namespace was deleted.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels for this Namespace.", + "type": "object" + }, + "name": { + "description": "The resource name for the namespace `projects/{project}/locations/{location}/namespaces/{namespace}`", + "type": "string" + }, + "namespaceLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Namespace-level cluster namespace labels. These labels are applied to the related namespace of the member clusters bound to the parent Scope. Scope-level labels (`namespace_labels` in the Fleet Scope resource) take precedence over Namespace-level labels if they share a key. Keys and values must be Kubernetes-conformant.", + "type": "object" + }, + "scope": { + "description": "Required. Scope associated with the namespace", + "type": "string" + }, + "state": { + "$ref": "NamespaceLifecycleState", + "description": "Output only. State of the namespace resource.", + "readOnly": true + }, + "uid": { + "description": "Output only. Google-generated UUID for this resource. This is unique across all namespace resources. If a namespace resource is deleted and another resource with the same name is created, it gets a different uid.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. When the namespace was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "NamespaceLifecycleState": { + "description": "NamespaceLifecycleState describes the state of a Namespace resource.", + "id": "NamespaceLifecycleState", + "properties": { + "code": { + "description": "Output only. The current state of the Namespace resource.", + "enum": [ + "CODE_UNSPECIFIED", + "CREATING", + "READY", + "DELETING", + "UPDATING" + ], + "enumDescriptions": [ + "The code is not set.", + "The namespace is being created.", + "The namespace active.", + "The namespace is being deleted.", + "The namespace is being updated." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "OnPremCluster": { + "description": "OnPremCluster contains information specific to GKE On-Prem clusters.", + "id": "OnPremCluster", + "properties": { + "adminCluster": { + "description": "Immutable. Whether the cluster is an admin cluster.", + "type": "boolean" + }, + "clusterMissing": { + "description": "Output only. If cluster_missing is set then it denotes that API(gkeonprem.googleapis.com) resource for this GKE On-Prem cluster no longer exists.", + "readOnly": true, + "type": "boolean" + }, + "clusterType": { + "description": "Immutable. The on prem cluster's type.", + "enum": [ + "CLUSTERTYPE_UNSPECIFIED", + "BOOTSTRAP", + "HYBRID", + "STANDALONE", + "USER" + ], + "enumDescriptions": [ + "The ClusterType is not set.", + "The ClusterType is bootstrap cluster.", + "The ClusterType is baremetal hybrid cluster.", + "The ClusterType is baremetal standalone cluster.", + "The ClusterType is user cluster." + ], + "type": "string" + }, + "resourceLink": { + "description": "Immutable. Self-link of the Google Cloud resource for the GKE On-Prem cluster. For example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/bareMetalClusters/my-cluster", + "type": "string" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -2287,7 +5039,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" } }, @@ -2337,8 +5089,31 @@ }, "type": "object" }, + "Origin": { + "description": "Origin defines where this MembershipFeatureSpec originated from.", + "id": "Origin", + "properties": { + "type": { + "description": "Type specifies which type of origin is set.", + "enum": [ + "TYPE_UNSPECIFIED", + "FLEET", + "FLEET_OUT_OF_SYNC", + "USER" + ], + "enumDescriptions": [ + "Type is unknown or not set.", + "Per-Membership spec was inherited from the fleet-level default.", + "Per-Membership spec was inherited from the fleet-level default but is now out of sync with the current default.", + "Per-Membership spec was inherited from a user specification." + ], + "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/).", + "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": { @@ -2368,28 +5143,27 @@ }, "type": "object" }, + "PolicyBinding": { + "description": "Binauthz policy that applies to this cluster.", + "id": "PolicyBinding", + "properties": { + "name": { + "description": "The relative resource name of the binauthz platform policy to audit. GKE platform policies have the following format: `projects/{project_number}/platforms/gke/policies/{policy_id}`.", + "type": "string" + } + }, + "type": "object" + }, "PolicyControllerBundleInstallSpec": { "description": "BundleInstallSpec is the specification configuration for a single managed bundle.", "id": "PolicyControllerBundleInstallSpec", "properties": { "exemptedNamespaces": { - "description": "the set of namespaces to be exempted from the bundle", + "description": "The set of namespaces to be exempted from the bundle.", "items": { "type": "string" }, "type": "array" - }, - "management": { - "description": "Management specifies how the bundle will be managed by the controller.", - "enum": [ - "MANAGEMENT_UNSPECIFIED", - "INSTALLED" - ], - "enumDescriptions": [ - "No Management strategy has been specified.", - "The entity should be insistently reconciled by the Hub controller" - ], - "type": "string" } }, "type": "object" @@ -2403,6 +5177,18 @@ "format": "int64", "type": "string" }, + "constraintViolationLimit": { + "description": "The maximum number of audit violations to be stored in a constraint. If not set, the internal default (currently 20) will be used.", + "format": "int64", + "type": "string" + }, + "deploymentConfigs": { + "additionalProperties": { + "$ref": "PolicyControllerPolicyControllerDeploymentConfig" + }, + "description": "Map of deployment configs to deployments (\"admission\", \"audit\", \"mutation').", + "type": "object" + }, "exemptableNamespaces": { "description": "The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.", "items": { @@ -2416,13 +5202,15 @@ "INSTALL_SPEC_UNSPECIFIED", "INSTALL_SPEC_NOT_INSTALLED", "INSTALL_SPEC_ENABLED", - "INSTALL_SPEC_SUSPENDED" + "INSTALL_SPEC_SUSPENDED", + "INSTALL_SPEC_DETACHED" ], "enumDescriptions": [ "Spec is unknown.", "Request to uninstall Policy Controller.", "Request to install and enable Policy Controller.", - "Request to suspend Policy Controller i.e. its webhooks. If Policy Controller is not installed, it will be installed but suspended." + "Request to suspend Policy Controller i.e. its webhooks. If Policy Controller is not installed, it will be installed but suspended.", + "Request to stop all reconciliation actions by PoCo Hub controller. This is a breakglass mechanism to stop PoCo Hub from affecting cluster resources." ], "type": "string" }, @@ -2445,10 +5233,6 @@ "referentialRulesEnabled": { "description": "Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.", "type": "boolean" - }, - "templateLibraryConfig": { - "$ref": "PolicyControllerTemplateLibraryConfig", - "description": "Configures the library templates to install along with Policy Controller." } }, "type": "object" @@ -2479,12 +5263,9 @@ "description": "Currently these include (also serving as map keys): 1. \"admission\" 2. \"audit\" 3. \"mutation\"", "type": "object" }, - "contentStates": { - "additionalProperties": { - "$ref": "PolicyControllerOnClusterState" - }, - "description": "The state of the template library and any bundles included in the chosen version of the manifest", - "type": "object" + "policyContentState": { + "$ref": "PolicyControllerPolicyContentState", + "description": "The overall content state observed by the Hub Feature controller." }, "state": { "description": "The overall Policy Controller lifecycle state observed by the Hub Feature controller.", @@ -2494,10 +5275,11 @@ "INSTALLING", "ACTIVE", "UPDATING", - "DECOMISSIONING", + "DECOMMISSIONING", "CLUSTER_ERROR", "HUB_ERROR", - "SUSPENDED" + "SUSPENDED", + "DETACHED" ], "enumDescriptions": [ "The lifecycle state is unspecified.", @@ -2508,7 +5290,8 @@ "The PC may have resources on the cluster, but the PCH wishes to remove the Membership. The Membership still exists.", "The PC is not operational, and the PCH is unable to act to make it operational. Entering a CLUSTER_ERROR state happens automatically when the PCH determines that a PC installed on the cluster is non-operative or that the cluster does not meet requirements set for the PCH to administer the cluster but has nevertheless been given an instruction to do so (such as 'install').", "In this state, the PC may still be operational, and only the PCH is unable to act. The hub should not issue instructions to change the PC state, or otherwise interfere with the on-cluster resources. Entering a HUB_ERROR state happens automatically when the PCH determines the hub is in an unhealthy state and it wishes to 'take hands off' to avoid corrupting the PC or other data.", - "Policy Controller (PC) is installed but suspended. This means that the policies are not enforced, but violations are still recorded (through audit)." + "Policy Controller (PC) is installed but suspended. This means that the policies are not enforced, but violations are still recorded (through audit).", + "PoCo Hub is not taking any action to reconcile cluster objects. Changes to those objects will not be overwritten by PoCo Hub." ], "type": "string" } @@ -2555,10 +5338,11 @@ "INSTALLING", "ACTIVE", "UPDATING", - "DECOMISSIONING", + "DECOMMISSIONING", "CLUSTER_ERROR", "HUB_ERROR", - "SUSPENDED" + "SUSPENDED", + "DETACHED" ], "enumDescriptions": [ "The lifecycle state is unspecified.", @@ -2569,7 +5353,8 @@ "The PC may have resources on the cluster, but the PCH wishes to remove the Membership. The Membership still exists.", "The PC is not operational, and the PCH is unable to act to make it operational. Entering a CLUSTER_ERROR state happens automatically when the PCH determines that a PC installed on the cluster is non-operative or that the cluster does not meet requirements set for the PCH to administer the cluster but has nevertheless been given an instruction to do so (such as 'install').", "In this state, the PC may still be operational, and only the PCH is unable to act. The hub should not issue instructions to change the PC state, or otherwise interfere with the on-cluster resources. Entering a HUB_ERROR state happens automatically when the PCH determines the hub is in an unhealthy state and it wishes to 'take hands off' to avoid corrupting the PC or other data.", - "Policy Controller (PC) is installed but suspended. This means that the policies are not enforced, but violations are still recorded (through audit)." + "Policy Controller (PC) is installed but suspended. This means that the policies are not enforced, but violations are still recorded (through audit).", + "PoCo Hub is not taking any action to reconcile cluster objects. Changes to those objects will not be overwritten by PoCo Hub." ], "type": "string" } @@ -2586,6 +5371,104 @@ }, "description": "map of bundle name to BundleInstallSpec. The bundle name maps to the `bundleName` key in the `policycontroller.gke.io/constraintData` annotation on a constraint.", "type": "object" + }, + "templateLibrary": { + "$ref": "PolicyControllerTemplateLibraryConfig", + "description": "Configures the installation of the Template Library." + } + }, + "type": "object" + }, + "PolicyControllerPolicyContentState": { + "description": "The state of the policy controller policy content", + "id": "PolicyControllerPolicyContentState", + "properties": { + "bundleStates": { + "additionalProperties": { + "$ref": "PolicyControllerOnClusterState" + }, + "description": "The state of the any bundles included in the chosen version of the manifest", + "type": "object" + }, + "referentialSyncConfigState": { + "$ref": "PolicyControllerOnClusterState", + "description": "The state of the referential data sync configuration. This could represent the state of either the syncSet object(s) or the config object, depending on the version of PoCo configured by the user." + }, + "templateLibraryState": { + "$ref": "PolicyControllerOnClusterState", + "description": "The state of the template library" + } + }, + "type": "object" + }, + "PolicyControllerPolicyControllerDeploymentConfig": { + "description": "Deployment-specific configuration.", + "id": "PolicyControllerPolicyControllerDeploymentConfig", + "properties": { + "containerResources": { + "$ref": "PolicyControllerResourceRequirements", + "description": "Container resource requirements." + }, + "podAffinity": { + "description": "Pod affinity configuration.", + "enum": [ + "AFFINITY_UNSPECIFIED", + "NO_AFFINITY", + "ANTI_AFFINITY" + ], + "enumDescriptions": [ + "No affinity configuration has been specified.", + "Affinity configurations will be removed from the deployment.", + "Anti-affinity configuration will be applied to this deployment. Default for admissions deployment." + ], + "type": "string" + }, + "podAntiAffinity": { + "deprecated": true, + "description": "Pod anti-affinity enablement. Deprecated: use `pod_affinity` instead.", + "type": "boolean" + }, + "podTolerations": { + "description": "Pod tolerations of node taints.", + "items": { + "$ref": "PolicyControllerToleration" + }, + "type": "array" + }, + "replicaCount": { + "description": "Pod replica count.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "PolicyControllerResourceList": { + "description": "ResourceList contains container resource requirements.", + "id": "PolicyControllerResourceList", + "properties": { + "cpu": { + "description": "CPU requirement expressed in Kubernetes resource units.", + "type": "string" + }, + "memory": { + "description": "Memory requirement expressed in Kubernetes resource units.", + "type": "string" + } + }, + "type": "object" + }, + "PolicyControllerResourceRequirements": { + "description": "ResourceRequirements describes the compute resource requirements.", + "id": "PolicyControllerResourceRequirements", + "properties": { + "limits": { + "$ref": "PolicyControllerResourceList", + "description": "Limits describes the maximum amount of compute resources allowed for use by the running container." + }, + "requests": { + "$ref": "PolicyControllerResourceList", + "description": "Requests describes the amount of compute resources reserved for the container by the kube-scheduler." } }, "type": "object" @@ -2594,9 +5477,238 @@ "description": "The config specifying which default library templates to install.", "id": "PolicyControllerTemplateLibraryConfig", "properties": { - "included": { - "description": "Whether the standard template library should be installed or not.", + "installation": { + "description": "Configures the manner in which the template library is installed on the cluster.", + "enum": [ + "INSTALLATION_UNSPECIFIED", + "NOT_INSTALLED", + "ALL" + ], + "enumDescriptions": [ + "No installation strategy has been specified.", + "Do not install the template library.", + "Install the entire template library." + ], + "type": "string" + } + }, + "type": "object" + }, + "PolicyControllerToleration": { + "description": "Toleration of a node taint.", + "id": "PolicyControllerToleration", + "properties": { + "effect": { + "description": "Matches a taint effect.", + "type": "string" + }, + "key": { + "description": "Matches a taint key (not necessarily unique).", + "type": "string" + }, + "operator": { + "description": "Matches a taint operator.", + "type": "string" + }, + "value": { + "description": "Matches a taint value.", + "type": "string" + } + }, + "type": "object" + }, + "RBACRoleBinding": { + "description": "RBACRoleBinding represents a rbacrolebinding across the Fleet", + "id": "RBACRoleBinding", + "properties": { + "createTime": { + "description": "Output only. When the rbacrolebinding was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deleteTime": { + "description": "Output only. When the rbacrolebinding was deleted.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "group": { + "description": "group is the group, as seen by the kubernetes cluster.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels for this RBACRolebinding.", + "type": "object" + }, + "name": { + "description": "The resource name for the rbacrolebinding `projects/{project}/locations/{location}/scopes/{scope}/rbacrolebindings/{rbacrolebinding}` or `projects/{project}/locations/{location}/memberships/{membership}/rbacrolebindings/{rbacrolebinding}`", + "type": "string" + }, + "role": { + "$ref": "Role", + "description": "Required. Role to bind to the principal" + }, + "state": { + "$ref": "RBACRoleBindingLifecycleState", + "description": "Output only. State of the rbacrolebinding resource.", + "readOnly": true + }, + "uid": { + "description": "Output only. Google-generated UUID for this resource. This is unique across all rbacrolebinding resources. If a rbacrolebinding resource is deleted and another resource with the same name is created, it gets a different uid.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. When the rbacrolebinding was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "user": { + "description": "user is the name of the user as seen by the kubernetes cluster, example \"alice\" or \"alice@domain.tld\"", + "type": "string" + } + }, + "type": "object" + }, + "RBACRoleBindingLifecycleState": { + "description": "RBACRoleBindingLifecycleState describes the state of a RbacRoleBinding resource.", + "id": "RBACRoleBindingLifecycleState", + "properties": { + "code": { + "description": "Output only. The current state of the rbacrolebinding resource.", + "enum": [ + "CODE_UNSPECIFIED", + "CREATING", + "READY", + "DELETING", + "UPDATING" + ], + "enumDescriptions": [ + "The code is not set.", + "The rbacrolebinding is being created.", + "The rbacrolebinding active.", + "The rbacrolebinding is being deleted.", + "The rbacrolebinding is being updated." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ResourceManifest": { + "description": "ResourceManifest represents a single Kubernetes resource to be applied to the cluster.", + "id": "ResourceManifest", + "properties": { + "clusterScoped": { + "description": "Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.", "type": "boolean" + }, + "manifest": { + "description": "YAML manifest of the resource.", + "type": "string" + } + }, + "type": "object" + }, + "ResourceOptions": { + "description": "ResourceOptions represent options for Kubernetes resource generation.", + "id": "ResourceOptions", + "properties": { + "connectVersion": { + "description": "Optional. The Connect agent version to use for connect_resources. Defaults to the latest GKE Connect version. The version must be a currently supported version, obsolete versions will be rejected.", + "type": "string" + }, + "k8sVersion": { + "description": "Optional. Major version of the Kubernetes cluster. This is only used to determine which version to use for the CustomResourceDefinition resources, `apiextensions/v1beta1` or`apiextensions/v1`.", + "type": "string" + }, + "v1beta1Crd": { + "description": "Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for CustomResourceDefinition resources. This option should be set for clusters with Kubernetes apiserver versions <1.16.", + "type": "boolean" + } + }, + "type": "object" + }, + "Role": { + "description": "Role is the type for Kubernetes roles", + "id": "Role", + "properties": { + "predefinedRole": { + "description": "predefined_role is the Kubernetes default role to use", + "enum": [ + "UNKNOWN", + "ADMIN", + "EDIT", + "VIEW", + "ANTHOS_SUPPORT" + ], + "enumDescriptions": [ + "UNKNOWN", + "ADMIN has EDIT and RBAC permissions", + "EDIT can edit all resources except RBAC", + "VIEW can only read resources", + "ANTHOS_SUPPORT gives Google Support read-only access to a number of cluster resources." + ], + "type": "string" + } + }, + "type": "object" + }, + "Scope": { + "description": "Scope represents a Scope in a Fleet.", + "id": "Scope", + "properties": { + "createTime": { + "description": "Output only. When the scope was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deleteTime": { + "description": "Output only. When the scope was deleted.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels for this Scope.", + "type": "object" + }, + "name": { + "description": "The resource name for the scope `projects/{project}/locations/{location}/scopes/{scope}`", + "type": "string" + }, + "namespaceLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Scope-level cluster namespace labels. For the member clusters bound to the Scope, these labels are applied to each namespace under the Scope. Scope-level labels take precedence over Namespace-level labels (`namespace_labels` in the Fleet Namespace resource) if they share a key. Keys and values must be Kubernetes-conformant.", + "type": "object" + }, + "state": { + "$ref": "ScopeLifecycleState", + "description": "Output only. State of the scope resource.", + "readOnly": true + }, + "uid": { + "description": "Output only. Google-generated UUID for this resource. This is unique across all scope resources. If a scope resource is deleted and another resource with the same name is created, it gets a different uid.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. When the scope was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -2619,6 +5731,69 @@ }, "type": "object" }, + "ScopeLifecycleState": { + "description": "ScopeLifecycleState describes the state of a Scope resource.", + "id": "ScopeLifecycleState", + "properties": { + "code": { + "description": "Output only. The current state of the scope resource.", + "enum": [ + "CODE_UNSPECIFIED", + "CREATING", + "READY", + "DELETING", + "UPDATING" + ], + "enumDescriptions": [ + "The code is not set.", + "The scope is being created.", + "The scope active.", + "The scope is being deleted.", + "The scope is being updated." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "SecurityPostureConfig": { + "description": "SecurityPostureConfig defines the flags needed to enable/disable features for the Security Posture API.", + "id": "SecurityPostureConfig", + "properties": { + "mode": { + "description": "Sets which mode to use for Security Posture features.", + "enum": [ + "MODE_UNSPECIFIED", + "DISABLED", + "BASIC" + ], + "enumDescriptions": [ + "Default value not specified.", + "Disables Security Posture features on the cluster.", + "Applies Security Posture features on the cluster." + ], + "type": "string" + }, + "vulnerabilityMode": { + "description": "Sets which mode to use for vulnerability scanning.", + "enum": [ + "VULNERABILITY_MODE_UNSPECIFIED", + "VULNERABILITY_DISABLED", + "VULNERABILITY_BASIC", + "VULNERABILITY_ENTERPRISE" + ], + "enumDescriptions": [ + "Default value not specified.", + "Disables 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" + } + }, + "type": "object" + }, "ServiceMeshControlPlaneManagement": { "description": "Status of control plane management.", "id": "ServiceMeshControlPlaneManagement", @@ -2700,7 +5875,8 @@ "id": "ServiceMeshMembershipSpec", "properties": { "controlPlane": { - "description": "Enables automatic control plane management.", + "deprecated": true, + "description": "Deprecated: use `management` instead Enables automatic control plane management.", "enum": [ "CONTROL_PLANE_MANAGEMENT_UNSPECIFIED", "AUTOMATIC", @@ -2832,6 +6008,21 @@ } }, "type": "object" + }, + "TypeMeta": { + "description": "TypeMeta is the type information needed for content unmarshalling of Kubernetes resources in the manifest.", + "id": "TypeMeta", + "properties": { + "apiVersion": { + "description": "APIVersion of the resource (e.g. v1).", + "type": "string" + }, + "kind": { + "description": "Kind of the resource (e.g. Deployment).", + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/gkehub/v1beta1/gkehub-api.json b/etc/api/gkehub/v1beta1/gkehub-api.json index 7a35b37331..167cd0bc67 100644 --- a/etc/api/gkehub/v1beta1/gkehub-api.json +++ b/etc/api/gkehub/v1beta1/gkehub-api.json @@ -226,6 +226,11 @@ "name" ], "parameters": { + "force": { + "description": "Optional. If set to true, any subresource from this Membership will also be deleted. Otherwise, the request will only work if the Membership has no subresource.", + "location": "query", + "type": "boolean" + }, "name": { "description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.", "location": "path", @@ -257,6 +262,7 @@ ], "parameters": { "connectAgent.name": { + "deprecated": true, "description": "Do not set.", "location": "query", "type": "string" @@ -431,7 +437,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent (project and location) where the Memberships will be listed. Specified in the format `projects/*/locations/*`.", + "description": "Required. The parent (project and location) where the Memberships will be listed. Specified in the format `projects/*/locations/*`. `projects/*/locations/-` list memberships in all the regions.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -659,7 +665,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "gkehub.projects.locations.operations.list", @@ -706,7 +712,7 @@ } } }, - "revision": "20230106", + "revision": "20240225", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "ApplianceCluster": { @@ -803,14 +809,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1083,7 +1089,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1175,6 +1181,10 @@ "readOnly": true, "type": "string" }, + "monitoringConfig": { + "$ref": "MonitoringConfig", + "description": "Optional. The monitoring config information for this membership." + }, "name": { "description": "Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", "readOnly": true, @@ -1261,10 +1271,12 @@ "type": "string" }, "description": { + "deprecated": true, "description": "This field is never set by the Hub Service.", "type": "string" }, "updateTime": { + "deprecated": true, "description": "This field is never set by the Hub Service.", "format": "google-datetime", "type": "string" @@ -1272,6 +1284,33 @@ }, "type": "object" }, + "MonitoringConfig": { + "description": "MonitoringConfig informs Fleet-based applications/services/UIs how the metrics for the underlying cluster is reported to cloud monitoring services. It can be set from empty to non-empty, but can't be mutated directly to prevent accidentally breaking the constinousty of metrics.", + "id": "MonitoringConfig", + "properties": { + "cluster": { + "description": "Optional. Cluster name used to report metrics. For Anthos on VMWare/Baremetal/MultiCloud clusters, it would be in format {cluster_type}/{cluster_name}, e.g., \"awsClusters/cluster_1\".", + "type": "string" + }, + "clusterHash": { + "description": "Optional. For GKE and Multicloud clusters, this is the UUID of the cluster resource. For VMWare and Baremetal clusters, this is the kube-system UID.", + "type": "string" + }, + "kubernetesMetricsPrefix": { + "description": "Optional. Kubernetes system metrics, if available, are written to this prefix. This defaults to kubernetes.io for GKE, and kubernetes.io/anthos for Anthos eventually. Noted: Anthos MultiCloud will have kubernetes.io prefix today but will migration to be under kubernetes.io/anthos.", + "type": "string" + }, + "location": { + "description": "Optional. Location used to report Metrics", + "type": "string" + }, + "projectId": { + "description": "Optional. Project used to report Metrics", + "type": "string" + } + }, + "type": "object" + }, "MultiCloudCluster": { "description": "MultiCloudCluster contains information specific to GKE Multi-Cloud clusters.", "id": "MultiCloudCluster", @@ -1355,7 +1394,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" } }, @@ -1406,7 +1445,7 @@ "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/).", + "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": { diff --git a/etc/api/gkehub/v2alpha/gkehub-api.json b/etc/api/gkehub/v2alpha/gkehub-api.json index 9ee416e226..ccdcf7e97e 100644 --- a/etc/api/gkehub/v2alpha/gkehub-api.json +++ b/etc/api/gkehub/v2alpha/gkehub-api.json @@ -233,7 +233,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "gkehub.projects.locations.operations.list", @@ -280,7 +280,7 @@ } } }, - "revision": "20230106", + "revision": "20240225", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "CancelOperationRequest": { @@ -359,7 +359,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -421,7 +421,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/etc/api/gmail/v1/gmail-api.json b/etc/api/gmail/v1/gmail-api.json index 5e1a90011a..d158a0a805 100644 --- a/etc/api/gmail/v1/gmail-api.json +++ b/etc/api/gmail/v1/gmail-api.json @@ -945,7 +945,7 @@ ] }, "import": { - "description": "Imports a message into only this user's mailbox, with standard email delivery scanning and classification similar to receiving via SMTP. This method doesn't perform SPF checks, so it might not work for some spam messages, such as those attempting to perform domain spoofing. This method does not send a message. Note: This function doesn't trigger forwarding rules or filters set up by the user.", + "description": "Imports a message into only this user's mailbox, with standard email delivery scanning and classification similar to receiving via SMTP. This method doesn't perform SPF checks, so it might not work for some spam messages, such as those attempting to perform domain spoofing. This method does not send a message.", "flatPath": "gmail/v1/users/{userId}/messages/import", "httpMethod": "POST", "id": "gmail.users.messages.import", @@ -971,7 +971,7 @@ "parameters": { "deleted": { "default": "false", - "description": "Mark the email as permanently deleted (not TRASH) and only visible in Google Vault to a Vault administrator. Only used for G Suite accounts.", + "description": "Mark the email as permanently deleted (not TRASH) and only visible in Google Vault to a Vault administrator. Only used for Google Workspace accounts.", "location": "query", "type": "boolean" }, @@ -1050,7 +1050,7 @@ "parameters": { "deleted": { "default": "false", - "description": "Mark the email as permanently deleted (not TRASH) and only visible in Google Vault to a Vault administrator. Only used for G Suite accounts.", + "description": "Mark the email as permanently deleted (not TRASH) and only visible in Google Vault to a Vault administrator. Only used for Google Workspace accounts.", "location": "query", "type": "boolean" }, @@ -1106,7 +1106,7 @@ "type": "boolean" }, "labelIds": { - "description": "Only return messages with labels that match all of the specified label IDs.", + "description": "Only return messages with labels that match all of the specified label IDs. Messages in a thread might have labels that other messages in the same thread don't have. To learn more, see [Manage labels on messages and threads](https://developers.google.com/gmail/api/guides/labels#manage_labels_on_messages_threads).", "location": "query", "repeated": true, "type": "string" @@ -1184,7 +1184,7 @@ ] }, "send": { - "description": "Sends the specified message to the recipients in the `To`, `Cc`, and `Bcc` headers.", + "description": "Sends the specified message to the recipients in the `To`, `Cc`, and `Bcc` headers. For example usage, see [Sending email](https://developers.google.com/gmail/api/guides/sending).", "flatPath": "gmail/v1/users/{userId}/messages/send", "httpMethod": "POST", "id": "gmail.users.messages.send", @@ -2031,7 +2031,7 @@ "delegates": { "methods": { "create": { - "description": "Adds a delegate with its verification status set directly to `accepted`, without sending any verification email. The delegate user must be a member of the same G Suite organization as the delegator user. Gmail imposes limitations on the number of delegates and delegators each user in a G Suite organization can have. These limits depend on your organization, but in general each user can have up to 25 delegates and up to 10 delegators. Note that a delegate user must be referred to by their primary email address, and not an email alias. Also note that when a new delegate is created, there may be up to a one minute delay before the new delegate is available for use. This method is only available to service account clients that have been delegated domain-wide authority.", + "description": "Adds a delegate with its verification status set directly to `accepted`, without sending any verification email. The delegate user must be a member of the same Google Workspace organization as the delegator user. Gmail imposes limitations on the number of delegates and delegators each user in a Google Workspace organization can have. These limits depend on your organization, but in general each user can have up to 25 delegates and up to 10 delegators. Note that a delegate user must be referred to by their primary email address, and not an email alias. Also note that when a new delegate is created, there may be up to a one minute delay before the new delegate is available for use. This method is only available to service account clients that have been delegated domain-wide authority.", "flatPath": "gmail/v1/users/{userId}/settings/delegates", "httpMethod": "POST", "id": "gmail.users.settings.delegates.create", @@ -3077,7 +3077,7 @@ } } }, - "revision": "20230116", + "revision": "20240226", "rootUrl": "https://gmail.googleapis.com/", "schemas": { "AutoForwarding": { @@ -3162,8 +3162,12 @@ "type": "string" }, "primaryKeyPairId": { - "description": "If a key pair is associated, the identifier of the key pair, CseKeyPair.", + "description": "If a key pair is associated, the ID of the key pair, CseKeyPair.", "type": "string" + }, + "signAndEncryptKeyPairs": { + "$ref": "SignAndEncryptKeyPairs", + "description": "The configuration of a CSE identity that uses different key pairs for signing and encryption." } }, "type": "object" @@ -3229,6 +3233,10 @@ "description": "Metadata for a private key instance.", "id": "CsePrivateKeyMetadata", "properties": { + "hardwareKeyMetadata": { + "$ref": "HardwareKeyMetadata", + "description": "Metadata for hardware keys." + }, "kaclsKeyMetadata": { "$ref": "KaclsKeyMetadata", "description": "Metadata for a private key instance managed by an external key access control list service." @@ -3425,6 +3433,17 @@ }, "type": "object" }, + "HardwareKeyMetadata": { + "description": "Metadata for hardware keys.", + "id": "HardwareKeyMetadata", + "properties": { + "description": { + "description": "Description about the hardware key.", + "type": "string" + } + }, + "type": "object" + }, "History": { "description": "A record of a change to the user's mailbox. Each history change may affect multiple messages in multiple ways.", "id": "History", @@ -4198,6 +4217,21 @@ }, "type": "object" }, + "SignAndEncryptKeyPairs": { + "description": "The configuration of a CSE identity that uses different key pairs for signing and encryption.", + "id": "SignAndEncryptKeyPairs", + "properties": { + "encryptionKeyPairId": { + "description": "The ID of the CseKeyPair that encrypts signed outgoing mail.", + "type": "string" + }, + "signingKeyPairId": { + "description": "The ID of the CseKeyPair that signs outgoing mail.", + "type": "string" + } + }, + "type": "object" + }, "SmimeInfo": { "description": "An S/MIME email config.", "id": "SmimeInfo", @@ -4332,7 +4366,7 @@ "type": "boolean" }, "restrictToDomain": { - "description": "Flag that determines whether responses are sent to recipients who are outside of the user's domain. This feature is only available for G Suite users.", + "description": "Flag that determines whether responses are sent to recipients who are outside of the user's domain. This feature is only available for Google Workspace users.", "type": "boolean" }, "startTime": { @@ -4348,7 +4382,20 @@ "id": "WatchRequest", "properties": { "labelFilterAction": { - "description": "Filtering behavior of labelIds list specified.", + "deprecated": true, + "description": "Filtering behavior of `labelIds list` specified. This field is deprecated because it caused incorrect behavior in some cases; use `label_filter_behavior` instead.", + "enum": [ + "include", + "exclude" + ], + "enumDescriptions": [ + "Only get push notifications for message changes relating to labelIds specified.", + "Get push notifications for all message changes except those relating to labelIds specified." + ], + "type": "string" + }, + "labelFilterBehavior": { + "description": "Filtering behavior of `labelIds list` specified. This field replaces `label_filter_action`; if set, `label_filter_action` is ignored.", "enum": [ "include", "exclude" diff --git a/etc/api/gmailpostmastertools/v1/gmailpostmastertools-api.json b/etc/api/gmailpostmastertools/v1/gmailpostmastertools-api.json index 91be8b5f30..649e2f640c 100644 --- a/etc/api/gmailpostmastertools/v1/gmailpostmastertools-api.json +++ b/etc/api/gmailpostmastertools/v1/gmailpostmastertools-api.json @@ -265,7 +265,7 @@ } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://gmailpostmastertools.googleapis.com/", "schemas": { "DeliveryError": { @@ -518,7 +518,17 @@ "type": "number" }, "userReportedSpamRatio": { - "description": "The ratio of user-report spam vs. email that was sent to the inbox. This metric only pertains to emails authenticated by [DKIM](http://www.dkim.org/).", + "description": "The ratio of user-report spam vs. email that was sent to the inbox. This is potentially inexact -- users may want to refer to the description of the interval fields userReportedSpamRatioLowerBound and userReportedSpamRatioUpperBound for more explicit accuracy guarantees. This metric only pertains to emails authenticated by [DKIM](http://www.dkim.org/).", + "format": "double", + "type": "number" + }, + "userReportedSpamRatioLowerBound": { + "description": "The lower bound of the confidence interval for the user reported spam ratio. If this field is set, then the value of userReportedSpamRatio is set to the midpoint of this interval and is thus inexact. However, the true ratio is guaranteed to be in between this lower bound and the corresponding upper bound 95% of the time. This metric only pertains to emails authenticated by [DKIM](http://www.dkim.org/).", + "format": "double", + "type": "number" + }, + "userReportedSpamRatioUpperBound": { + "description": "The upper bound of the confidence interval for the user reported spam ratio. If this field is set, then the value of userReportedSpamRatio is set to the midpoint of this interval and is thus inexact. However, the true ratio is guaranteed to be in between this upper bound and the corresponding lower bound 95% of the time. This metric only pertains to emails authenticated by [DKIM](http://www.dkim.org/).", "format": "double", "type": "number" } diff --git a/etc/api/gmailpostmastertools/v1beta1/gmailpostmastertools-api.json b/etc/api/gmailpostmastertools/v1beta1/gmailpostmastertools-api.json index 6143582d80..03ec7d479e 100644 --- a/etc/api/gmailpostmastertools/v1beta1/gmailpostmastertools-api.json +++ b/etc/api/gmailpostmastertools/v1beta1/gmailpostmastertools-api.json @@ -265,7 +265,7 @@ } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://gmailpostmastertools.googleapis.com/", "schemas": { "DeliveryError": { @@ -382,6 +382,7 @@ "type": "string" }, "numIps": { + "deprecated": true, "description": "Total number of unique IPs in this reputation category. This metric only pertains to traffic that passed [SPF](http://www.openspf.org/) or [DKIM](http://www.dkim.org/). Deprecated to be complied with ApiLinter for Quantities. Use ip_count instead.", "format": "int64", "type": "string" @@ -523,7 +524,17 @@ "type": "number" }, "userReportedSpamRatio": { - "description": "The ratio of user-report spam vs. email that was sent to the inbox. This metric only pertains to emails authenticated by [DKIM](http://www.dkim.org/).", + "description": "The ratio of user-report spam vs. email that was sent to the inbox. This is potentially inexact -- users may want to refer to the description of the interval fields userReportedSpamRatioLowerBound and userReportedSpamRatioUpperBound for more explicit accuracy guarantees. This metric only pertains to emails authenticated by [DKIM](http://www.dkim.org/).", + "format": "double", + "type": "number" + }, + "userReportedSpamRatioLowerBound": { + "description": "The lower bound of the confidence interval for the user reported spam ratio. If this field is set, then the value of userReportedSpamRatio is set to the midpoint of this interval and is thus inexact. However, the true ratio is guaranteed to be in between this lower bound and the corresponding upper bound 95% of the time. This metric only pertains to emails authenticated by [DKIM](http://www.dkim.org/).", + "format": "double", + "type": "number" + }, + "userReportedSpamRatioUpperBound": { + "description": "The upper bound of the confidence interval for the user reported spam ratio. If this field is set, then the value of userReportedSpamRatio is set to the midpoint of this interval and is thus inexact. However, the true ratio is guaranteed to be in between this upper bound and the corresponding lower bound 95% of the time. This metric only pertains to emails authenticated by [DKIM](http://www.dkim.org/).", "format": "double", "type": "number" } diff --git a/etc/api/groupsmigration/v1/groupsmigration-api.json b/etc/api/groupsmigration/v1/groupsmigration-api.json index c270888699..00c4bf56a4 100644 --- a/etc/api/groupsmigration/v1/groupsmigration-api.json +++ b/etc/api/groupsmigration/v1/groupsmigration-api.json @@ -146,7 +146,7 @@ } } }, - "revision": "20230117", + "revision": "20240222", "rootUrl": "https://groupsmigration.googleapis.com/", "schemas": { "Groups": { diff --git a/etc/api/healthcare/v1/healthcare-api.json b/etc/api/healthcare/v1/healthcare-api.json index c374af22ca..8188b5dde9 100644 --- a/etc/api/healthcare/v1/healthcare-api.json +++ b/etc/api/healthcare/v1/healthcare-api.json @@ -2,6 +2,9 @@ "auth": { "oauth2": { "scopes": { + "https://www.googleapis.com/auth/cloud-healthcare": { + "description": "Read, write and manage healthcare data" + }, "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." } @@ -131,6 +134,7 @@ "$ref": "Location" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -172,6 +176,7 @@ "$ref": "ListLocationsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -189,12 +194,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, @@ -209,6 +214,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -222,7 +228,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, @@ -237,6 +243,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -250,7 +257,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, @@ -262,6 +269,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -275,7 +283,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, @@ -287,6 +295,7 @@ "$ref": "Dataset" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -318,6 +327,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -342,7 +352,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, @@ -354,6 +364,7 @@ "$ref": "ListDatasetsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -367,14 +378,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" @@ -388,6 +399,7 @@ "$ref": "Dataset" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -416,6 +428,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -444,6 +457,7 @@ "$ref": "TestIamPermissionsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -476,6 +490,7 @@ "$ref": "CheckDataAccessResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -509,6 +524,7 @@ "$ref": "ConsentStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -534,6 +550,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -562,6 +579,7 @@ "$ref": "EvaluateUserConsentsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -587,6 +605,7 @@ "$ref": "ConsentStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -618,6 +637,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -659,6 +679,7 @@ "$ref": "ListConsentStoresResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -672,7 +693,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, @@ -693,6 +714,7 @@ "$ref": "ConsentStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -721,6 +743,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -749,6 +772,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -777,6 +801,7 @@ "$ref": "TestIamPermissionsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -814,6 +839,7 @@ "$ref": "AttributeDefinition" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -839,6 +865,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -864,6 +891,7 @@ "$ref": "AttributeDefinition" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -905,6 +933,7 @@ "$ref": "ListAttributeDefinitionsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -918,7 +947,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, @@ -939,6 +968,7 @@ "$ref": "AttributeDefinition" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -971,6 +1001,7 @@ "$ref": "ConsentArtifact" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -996,6 +1027,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1021,6 +1053,7 @@ "$ref": "ConsentArtifact" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1062,6 +1095,7 @@ "$ref": "ListConsentArtifactsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -1094,6 +1128,7 @@ "$ref": "Consent" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1122,6 +1157,7 @@ "$ref": "Consent" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1147,6 +1183,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1172,6 +1209,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1197,6 +1235,7 @@ "$ref": "Consent" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1238,6 +1277,7 @@ "$ref": "ListConsentsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1279,6 +1319,7 @@ "$ref": "ListConsentRevisionsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1292,7 +1333,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, @@ -1313,6 +1354,7 @@ "$ref": "Consent" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1341,6 +1383,7 @@ "$ref": "Consent" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1369,6 +1412,7 @@ "$ref": "Consent" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -1401,6 +1445,7 @@ "$ref": "ArchiveUserDataMappingResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1429,6 +1474,7 @@ "$ref": "UserDataMapping" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1454,6 +1500,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1479,6 +1526,7 @@ "$ref": "UserDataMapping" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1520,6 +1568,7 @@ "$ref": "ListUserDataMappingsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1554,6 +1603,7 @@ "$ref": "UserDataMapping" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -1561,6 +1611,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": { @@ -1573,12 +1717,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, @@ -1593,6 +1737,7 @@ "$ref": "DicomStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1606,7 +1751,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, @@ -1621,6 +1766,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1634,7 +1780,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, @@ -1646,6 +1792,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1659,7 +1806,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, @@ -1674,6 +1821,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1687,7 +1835,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, @@ -1699,6 +1847,33 @@ "$ref": "DicomStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getDICOMStoreMetrics": { + "description": "Gets metrics associated with the DICOM store.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:getDICOMStoreMetrics", + "httpMethod": "GET", + "id": "healthcare.projects.locations.datasets.dicomStores.getDICOMStoreMetrics", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the DICOM store to get metrics for.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:getDICOMStoreMetrics", + "response": { + "$ref": "DicomStoreMetrics" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1730,6 +1905,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1743,7 +1919,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, @@ -1758,6 +1934,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1787,7 +1964,7 @@ "type": "string" }, "parent": { - "description": "Name of the dataset.", + "description": "Required. Name of the dataset.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "required": true, @@ -1799,6 +1976,7 @@ "$ref": "ListDicomStoresResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1812,14 +1990,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" @@ -1833,11 +2011,12 @@ "$ref": "DicomStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "searchForInstances": { - "description": "SearchForInstances returns a list of matching instances. See [Search Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.6). For details on the implementation of SearchForInstances, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForInstances, see [Searching for studies, series, instances, and frames](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#searching_for_studies_series_instances_and_frames).", + "description": "SearchForInstances returns a list of matching instances. See [Search Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.6). For details on the implementation of SearchForInstances, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForInstances, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/instances", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.searchForInstances", @@ -1847,14 +2026,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, @@ -1866,11 +2045,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "searchForSeries": { - "description": "SearchForSeries returns a list of matching series. See [Search Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.6). For details on the implementation of SearchForSeries, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForSeries, see [Searching for studies, series, instances, and frames](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#searching_for_studies_series_instances_and_frames).", + "description": "SearchForSeries returns a list of matching series. See [Search Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.6). For details on the implementation of SearchForSeries, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForSeries, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/series", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.searchForSeries", @@ -1880,14 +2060,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, @@ -1899,11 +2079,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "searchForStudies": { - "description": "SearchForStudies returns a list of matching studies. See [Search Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.6). For details on the implementation of SearchForStudies, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForStudies, see [Searching for studies, series, instances, and frames](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#searching_for_studies_series_instances_and_frames).", + "description": "SearchForStudies returns a list of matching studies. See [Search Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.6). For details on the implementation of SearchForStudies, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForStudies, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.searchForStudies", @@ -1913,14 +2094,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, @@ -1932,6 +2113,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1960,11 +2142,12 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "storeInstances": { - "description": "StoreInstances stores DICOM instances associated with study instance unique identifiers (SUID). See [Store Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.5). For details on the implementation of StoreInstances, see [Store transaction](https://cloud.google.com/healthcare/docs/dicom#store_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call StoreInstances, see [Storing DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#storing_dicom_data).", + "description": "StoreInstances stores DICOM instances associated with study instance unique identifiers (SUID). See [Store Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.5). For details on the implementation of StoreInstances, see [Store transaction](https://cloud.google.com/healthcare/docs/dicom#store_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call StoreInstances, see [Store DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#store-dicom).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies", "httpMethod": "POST", "id": "healthcare.projects.locations.datasets.dicomStores.storeInstances", @@ -1974,14 +2157,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, @@ -1996,6 +2179,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2024,15 +2208,82 @@ "$ref": "TestIamPermissionsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } }, "resources": { + "dicomWeb": { + "resources": { + "studies": { + "methods": { + "getStudyMetrics": { + "description": "GetStudyMetrics returns metrics for a study.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}:getStudyMetrics", + "httpMethod": "GET", + "id": "healthcare.projects.locations.datasets.dicomStores.dicomWeb.studies.getStudyMetrics", + "parameterOrder": [ + "study" + ], + "parameters": { + "study": { + "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, + "type": "string" + } + }, + "path": "v1/{+study}:getStudyMetrics", + "response": { + "$ref": "StudyMetrics" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "series": { + "methods": { + "getSeriesMetrics": { + "description": "GetSeriesMetrics returns metrics for a series.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}:getSeriesMetrics", + "httpMethod": "GET", + "id": "healthcare.projects.locations.datasets.dicomStores.dicomWeb.studies.series.getSeriesMetrics", + "parameterOrder": [ + "series" + ], + "parameters": { + "series": { + "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, + "type": "string" + } + }, + "path": "v1/{+series}:getSeriesMetrics", + "response": { + "$ref": "SeriesMetrics" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + } + }, "studies": { "methods": { "delete": { - "description": "DeleteStudy deletes all instances within the given study. Delete requests are equivalent to the GET requests specified in the Retrieve transaction. The method returns an Operation which will be marked successful when the deletion is complete. Warning: Instances cannot be inserted into a study that is being deleted by an operation until the operation completes. For samples that show how to call DeleteStudy, see [Deleting a study, series, or instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#deleting_a_study_series_or_instance).", + "description": "DeleteStudy deletes all instances within the given study. Delete requests are equivalent to the GET requests specified in the Retrieve transaction. The method returns an Operation which will be marked successful when the deletion is complete. Warning: Instances cannot be inserted into a study that is being deleted by an operation until the operation completes. For samples that show how to call DeleteStudy, see [Delete a study, series, or instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#delete-dicom).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}", "httpMethod": "DELETE", "id": "healthcare.projects.locations.datasets.dicomStores.studies.delete", @@ -2042,7 +2293,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, @@ -2060,11 +2311,12 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "retrieveMetadata": { - "description": "RetrieveStudyMetadata returns instance associated with the given study presented as metadata with the bulk data removed. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveStudyMetadata, see [Metadata resources](https://cloud.google.com/healthcare/docs/dicom#metadata_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveStudyMetadata, see [Retrieving metadata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieving_metadata).", + "description": "RetrieveStudyMetadata returns instance associated with the given study presented as metadata with the bulk data removed. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveStudyMetadata, see [Metadata resources](https://cloud.google.com/healthcare/docs/dicom#metadata_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveStudyMetadata, see [Retrieve metadata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-metadata).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/metadata", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.retrieveMetadata", @@ -2074,14 +2326,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, @@ -2093,11 +2345,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "retrieveStudy": { - "description": "RetrieveStudy returns all instances within the given study. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveStudy, see [DICOM study/series/instances](https://cloud.google.com/healthcare/docs/dicom#dicom_studyseriesinstances) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveStudy, see [Retrieving DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieving_dicom_data).", + "description": "RetrieveStudy returns all instances within the given study. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveStudy, see [DICOM study/series/instances](https://cloud.google.com/healthcare/docs/dicom#dicom_studyseriesinstances) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveStudy, see [Retrieve DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-dicom).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.retrieveStudy", @@ -2107,14 +2360,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, @@ -2126,11 +2379,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "searchForInstances": { - "description": "SearchForInstances returns a list of matching instances. See [Search Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.6). For details on the implementation of SearchForInstances, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForInstances, see [Searching for studies, series, instances, and frames](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#searching_for_studies_series_instances_and_frames).", + "description": "SearchForInstances returns a list of matching instances. See [Search Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.6). For details on the implementation of SearchForInstances, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForInstances, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/instances", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.searchForInstances", @@ -2140,14 +2394,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, @@ -2159,11 +2413,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "searchForSeries": { - "description": "SearchForSeries returns a list of matching series. See [Search Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.6). For details on the implementation of SearchForSeries, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForSeries, see [Searching for studies, series, instances, and frames](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#searching_for_studies_series_instances_and_frames).", + "description": "SearchForSeries returns a list of matching series. See [Search Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.6). For details on the implementation of SearchForSeries, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForSeries, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.searchForSeries", @@ -2173,14 +2428,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, @@ -2192,11 +2447,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "storeInstances": { - "description": "StoreInstances stores DICOM instances associated with study instance unique identifiers (SUID). See [Store Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.5). For details on the implementation of StoreInstances, see [Store transaction](https://cloud.google.com/healthcare/docs/dicom#store_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call StoreInstances, see [Storing DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#storing_dicom_data).", + "description": "StoreInstances stores DICOM instances associated with study instance unique identifiers (SUID). See [Store Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.5). For details on the implementation of StoreInstances, see [Store transaction](https://cloud.google.com/healthcare/docs/dicom#store_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call StoreInstances, see [Store DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#store-dicom).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}", "httpMethod": "POST", "id": "healthcare.projects.locations.datasets.dicomStores.studies.storeInstances", @@ -2206,14 +2462,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, @@ -2228,6 +2484,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -2236,7 +2493,7 @@ "series": { "methods": { "delete": { - "description": "DeleteSeries deletes all instances within the given study and series. Delete requests are equivalent to the GET requests specified in the Retrieve transaction. The method returns an Operation which will be marked successful when the deletion is complete. Warning: Instances cannot be inserted into a series that is being deleted by an operation until the operation completes. For samples that show how to call DeleteSeries, see [Deleting a study, series, or instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#deleting_a_study_series_or_instance).", + "description": "DeleteSeries deletes all instances within the given study and series. Delete requests are equivalent to the GET requests specified in the Retrieve transaction. The method returns an Operation which will be marked successful when the deletion is complete. Warning: Instances cannot be inserted into a series that is being deleted by an operation until the operation completes. For samples that show how to call DeleteSeries, see [Delete a study, series, or instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#delete-dicom).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}", "httpMethod": "DELETE", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.delete", @@ -2246,14 +2503,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, @@ -2265,11 +2522,12 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "retrieveMetadata": { - "description": "RetrieveSeriesMetadata returns instance associated with the given study and series, presented as metadata with the bulk data removed. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveSeriesMetadata, see [Metadata resources](https://cloud.google.com/healthcare/docs/dicom#metadata_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveSeriesMetadata, see [Retrieving metadata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieving_metadata).", + "description": "RetrieveSeriesMetadata returns instance associated with the given study and series, presented as metadata with the bulk data removed. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveSeriesMetadata, see [Metadata resources](https://cloud.google.com/healthcare/docs/dicom#metadata_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveSeriesMetadata, see [Retrieve metadata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-metadata).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/metadata", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.retrieveMetadata", @@ -2279,14 +2537,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, @@ -2298,11 +2556,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "retrieveSeries": { - "description": "RetrieveSeries returns all instances within the given study and series. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveSeries, see [DICOM study/series/instances](https://cloud.google.com/healthcare/docs/dicom#dicom_studyseriesinstances) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveSeries, see [Retrieving DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieving_dicom_data).", + "description": "RetrieveSeries returns all instances within the given study and series. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveSeries, see [DICOM study/series/instances](https://cloud.google.com/healthcare/docs/dicom#dicom_studyseriesinstances) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveSeries, see [Retrieve DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-dicom).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.retrieveSeries", @@ -2312,14 +2571,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, @@ -2331,11 +2590,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "searchForInstances": { - "description": "SearchForInstances returns a list of matching instances. See [Search Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.6). For details on the implementation of SearchForInstances, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForInstances, see [Searching for studies, series, instances, and frames](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#searching_for_studies_series_instances_and_frames).", + "description": "SearchForInstances returns a list of matching instances. See [Search Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.6). For details on the implementation of SearchForInstances, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForInstances, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.searchForInstances", @@ -2345,14 +2605,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, @@ -2364,6 +2624,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -2372,7 +2633,7 @@ "instances": { "methods": { "delete": { - "description": "DeleteInstance deletes an instance associated with the given study, series, and SOP Instance UID. Delete requests are equivalent to the GET requests specified in the Retrieve transaction. Study and series search results can take a few seconds to be updated after an instance is deleted using DeleteInstance. For samples that show how to call DeleteInstance, see [Deleting a study, series, or instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#deleting_a_study_series_or_instance).", + "description": "DeleteInstance deletes an instance associated with the given study, series, and SOP Instance UID. Delete requests are equivalent to the GET requests specified in the Retrieve transaction. Study and series search results can take a few seconds to be updated after an instance is deleted using DeleteInstance. For samples that show how to call DeleteInstance, see [Delete a study, series, or instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#delete-dicom).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}", "httpMethod": "DELETE", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.delete", @@ -2382,14 +2643,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, @@ -2401,11 +2662,12 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "retrieveInstance": { - "description": "RetrieveInstance returns instance associated with the given study, series, and SOP Instance UID. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveInstance, see [DICOM study/series/instances](https://cloud.google.com/healthcare/docs/dicom#dicom_studyseriesinstances) and [DICOM instances](https://cloud.google.com/healthcare/docs/dicom#dicom_instances) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveInstance, see [Retrieving an instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieving_an_instance).", + "description": "RetrieveInstance returns instance associated with the given study, series, and SOP Instance UID. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveInstance, see [DICOM study/series/instances](https://cloud.google.com/healthcare/docs/dicom#dicom_studyseriesinstances) and [DICOM instances](https://cloud.google.com/healthcare/docs/dicom#dicom_instances) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveInstance, see [Retrieve an instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-instance).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.retrieveInstance", @@ -2415,14 +2677,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, @@ -2434,11 +2696,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "retrieveMetadata": { - "description": "RetrieveInstanceMetadata returns instance associated with the given study, series, and SOP Instance UID presented as metadata with the bulk data removed. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveInstanceMetadata, see [Metadata resources](https://cloud.google.com/healthcare/docs/dicom#metadata_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveInstanceMetadata, see [Retrieving metadata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieving_metadata).", + "description": "RetrieveInstanceMetadata returns instance associated with the given study, series, and SOP Instance UID presented as metadata with the bulk data removed. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveInstanceMetadata, see [Metadata resources](https://cloud.google.com/healthcare/docs/dicom#metadata_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveInstanceMetadata, see [Retrieve metadata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-metadata).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}/metadata", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.retrieveMetadata", @@ -2448,14 +2711,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, @@ -2467,11 +2730,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "retrieveRendered": { - "description": "RetrieveRenderedInstance returns instance associated with the given study, series, and SOP Instance UID in an acceptable Rendered Media Type. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveRenderedInstance, see [Rendered resources](https://cloud.google.com/healthcare/docs/dicom#rendered_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveRenderedInstance, see [Retrieving consumer image formats](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieving_consumer_image_formats).", + "description": "RetrieveRenderedInstance returns instance associated with the given study, series, and SOP Instance UID in an acceptable Rendered Media Type. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveRenderedInstance, see [Rendered resources](https://cloud.google.com/healthcare/docs/dicom#rendered_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveRenderedInstance, see [Retrieve consumer image formats](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-consumer).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}/rendered", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.retrieveRendered", @@ -2481,14 +2745,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, @@ -2500,6 +2764,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -2508,7 +2773,7 @@ "frames": { "methods": { "retrieveFrames": { - "description": "RetrieveFrames returns instances associated with the given study, series, SOP Instance UID and frame numbers. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4}. For details on the implementation of RetrieveFrames, see [DICOM frames](https://cloud.google.com/healthcare/docs/dicom#dicom_frames) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveFrames, see [Retrieving DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieving_dicom_data).", + "description": "RetrieveFrames returns instances associated with the given study, series, SOP Instance UID and frame numbers. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4}. For details on the implementation of RetrieveFrames, see [DICOM frames](https://cloud.google.com/healthcare/docs/dicom#dicom_frames) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveFrames, see [Retrieve DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-dicom).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}/frames/{framesId}", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.frames.retrieveFrames", @@ -2518,14 +2783,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, @@ -2537,11 +2802,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "retrieveRendered": { - "description": "RetrieveRenderedFrames returns instances associated with the given study, series, SOP Instance UID and frame numbers in an acceptable Rendered Media Type. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveRenderedFrames, see [Rendered resources](https://cloud.google.com/healthcare/docs/dicom#rendered_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveRenderedFrames, see [Retrieving consumer image formats](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieving_consumer_image_formats).", + "description": "RetrieveRenderedFrames returns instances associated with the given study, series, SOP Instance UID and frame numbers in an acceptable Rendered Media Type. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveRenderedFrames, see [Rendered resources](https://cloud.google.com/healthcare/docs/dicom#rendered_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveRenderedFrames, see [Retrieve consumer image formats](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-consumer).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}/frames/{framesId}/rendered", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.frames.retrieveRendered", @@ -2551,14 +2817,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, @@ -2570,6 +2836,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -2595,12 +2862,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, @@ -2615,6 +2882,7 @@ "$ref": "FhirStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2628,7 +2896,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, @@ -2643,6 +2911,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2656,7 +2925,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, @@ -2668,6 +2937,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2681,7 +2951,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, @@ -2696,6 +2966,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2709,7 +2980,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, @@ -2721,6 +2992,33 @@ "$ref": "FhirStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getFHIRStoreMetrics": { + "description": "Gets metrics associated with the FHIR store.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:getFHIRStoreMetrics", + "httpMethod": "GET", + "id": "healthcare.projects.locations.datasets.fhirStores.getFHIRStoreMetrics", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the FHIR store to get metrics for.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:getFHIRStoreMetrics", + "response": { + "$ref": "FhirStoreMetrics" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2752,6 +3050,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2765,7 +3064,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, @@ -2780,6 +3079,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2809,7 +3109,7 @@ "type": "string" }, "parent": { - "description": "Name of the dataset.", + "description": "Required. Name of the dataset.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "required": true, @@ -2821,6 +3121,7 @@ "$ref": "ListFhirStoresResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2834,14 +3135,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" @@ -2855,6 +3156,36 @@ "$ref": "FhirStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "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" ] }, @@ -2883,6 +3214,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2911,6 +3243,7 @@ "$ref": "TestIamPermissionsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -2928,7 +3261,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" @@ -2939,29 +3272,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.", + "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" } @@ -2971,6 +3304,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2984,7 +3318,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, @@ -2996,6 +3330,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3010,19 +3345,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, @@ -3037,6 +3372,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3050,7 +3386,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, @@ -3062,28 +3398,63 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, - "create": { - "description": "Creates a FHIR resource. Implements the FHIR standard create interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#create), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#create), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#create)), which creates a new resource with a server-assigned resource ID. The request body must contain a JSON-encoded FHIR resource, and the request headers must contain `Content-Type: application/fhir+json`. On success, the response body contains a JSON-encoded representation of the resource as it was created on the server, including the server-assigned resource ID and version ID. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. For samples that show how to call `create`, see [Creating a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#creating_a_fhir_resource).", + "conditionalDelete": { + "description": "Deletes a FHIR resource that match an identifier search query. Implements the FHIR standard conditional delete interaction, limited to searching by resource identifier. If multiple resources match, 412 Precondition Failed error will be returned. Search term for identifier should be in the pattern `identifier=system|value` or `identifier=value` - similar to the `search` method on resources with a specific identifier. Note: Unless resource versioning is disabled by setting the disable_resource_versioning flag on the FHIR store, the deleted resource is moved to a history repository that can still be retrieved through vread and related methods, unless they are removed by the purge method. For samples that show how to call `conditionalDelete`, see [Conditionally deleting a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#conditionally_deleting_a_fhir_resource).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}", - "httpMethod": "POST", - "id": "healthcare.projects.locations.datasets.fhirStores.fhir.create", + "httpMethod": "DELETE", + "id": "healthcare.projects.locations.datasets.fhirStores.fhir.conditionalDelete", "parameterOrder": [ "parent", "type" ], "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 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, + "type": "string" + } + }, + "path": "v1/{+parent}/fhir/{+type}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "conditionalPatch": { + "description": "If a resource is found with the identifier specified in the query parameters, updates part of that resource by applying the operations specified in a [JSON Patch](http://jsonpatch.com/) document. Implements the FHIR standard conditional patch interaction, limited to searching by resource identifier. DSTU2 doesn't define a conditional patch method, but the server supports it in the same way it supports STU3. Search term for identifier should be in the pattern `identifier=system|value` or `identifier=value` - similar to the `search` method on resources with a specific identifier. If the search criteria identify more than one match, the request returns a `412 Precondition Failed` error. The request body must contain a JSON Patch document, and the request headers must contain `Content-Type: application/json-patch+json`. On success, the response body contains a JSON-encoded representation of the updated resource, including the server-assigned version ID. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. For samples that show how to call `conditionalPatch`, see [Conditionally patching a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#conditionally_patching_a_fhir_resource).", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}", + "httpMethod": "PATCH", + "id": "healthcare.projects.locations.datasets.fhirStores.fhir.conditionalPatch", + "parameterOrder": [ + "parent", + "type" + ], + "parameters": { + "parent": { + "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": "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, @@ -3098,6 +3469,81 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "conditionalUpdate": { + "description": "If a resource is found with the identifier specified in the query parameters, updates the entire contents of that resource. Implements the FHIR standard conditional update interaction, limited to searching by resource identifier. Search term for identifier should be in the pattern `identifier=system|value` or `identifier=value` - similar to the `search` method on resources with a specific identifier. If the search criteria identify more than one match, the request returns a `412 Precondition Failed` error. If the search criteria identify zero matches, and the supplied resource body contains an `id`, and the FHIR store has enable_update_create set, creates the resource with the client-specified ID. It is strongly advised not to include or encode any sensitive data such as patient identifiers in client-specified resource IDs. Those IDs are part of the FHIR resource path recorded in Cloud Audit Logs and Pub/Sub notifications. Those IDs can also be contained in reference fields within other resources. If the search criteria identify zero matches, and the supplied resource body does not contain an `id`, the resource is created with a server-assigned ID as per the create method. The request body must contain a JSON-encoded FHIR resource, and the request headers must contain `Content-Type: application/fhir+json`. On success, the response body contains a JSON-encoded representation of the updated resource, including the server-assigned version ID. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. For samples that show how to call `conditionalUpdate`, see [Conditionally updating a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#conditionally_updating_a_fhir_resource).", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}", + "httpMethod": "PUT", + "id": "healthcare.projects.locations.datasets.fhirStores.fhir.conditionalUpdate", + "parameterOrder": [ + "parent", + "type" + ], + "parameters": { + "parent": { + "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": "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, + "type": "string" + } + }, + "path": "v1/{+parent}/fhir/{+type}", + "request": { + "$ref": "HttpBody" + }, + "response": { + "$ref": "HttpBody" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "create": { + "description": "Creates a FHIR resource. Implements the FHIR standard create interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#create), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#create), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#create)), which creates a new resource with a server-assigned resource ID. Also supports the FHIR standard conditional create interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#ccreate), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#ccreate), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#ccreate)), specified by supplying an `If-None-Exist` header containing a FHIR search query, limited to searching by resource identifier. If no resources match this search query, the server processes the create operation as normal. When using conditional create, the search term for identifier should be in the pattern `identifier=system|value` or `identifier=value` - similar to the `search` method on resources with a specific identifier. The request body must contain a JSON-encoded FHIR resource, and the request headers must contain `Content-Type: application/fhir+json`. On success, the response body contains a JSON-encoded representation of the resource as it was created on the server, including the server-assigned resource ID and version ID. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. For samples that show how to call `create`, see [Creating a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#creating_a_fhir_resource).", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}", + "httpMethod": "POST", + "id": "healthcare.projects.locations.datasets.fhirStores.fhir.create", + "parameterOrder": [ + "parent", + "type" + ], + "parameters": { + "parent": { + "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": "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, + "type": "string" + } + }, + "path": "v1/{+parent}/fhir/{+type}", + "request": { + "$ref": "HttpBody" + }, + "response": { + "$ref": "HttpBody" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3111,7 +3557,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, @@ -3123,6 +3569,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3136,7 +3583,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, @@ -3151,6 +3598,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3185,7 +3633,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, @@ -3197,6 +3645,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3210,7 +3659,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, @@ -3225,6 +3674,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3238,7 +3688,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, @@ -3250,11 +3700,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "search": { - "description": "Searches for resources in the given FHIR store according to criteria specified as query parameters. Implements the FHIR standard search interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#search), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#search), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#search)) using the search semantics described in the FHIR Search specification ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/search.html), [STU3](http://hl7.org/implement/standards/fhir/STU3/search.html), [R4](http://hl7.org/implement/standards/fhir/R4/search.html)). Supports four methods of search defined by the specification: * `GET [base]?[parameters]` to search across all resources. * `GET [base]/[type]?[parameters]` to search resources of a specified type. * `POST [base]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method across all resources. * `POST [base]/[type]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method for the specified type. The `GET` and `POST` methods do not support compartment searches. The `POST` method does not support `application/x-www-form-urlencoded` search parameters. On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `searchset`, containing the results of the search. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. The server's capability statement, retrieved through capabilities, indicates what search parameters are supported on each FHIR resource. A list of all search parameters defined by the specification can be found in the FHIR Search Parameter Registry ([STU3](http://hl7.org/implement/standards/fhir/STU3/searchparameter-registry.html), [R4](http://hl7.org/implement/standards/fhir/R4/searchparameter-registry.html)). FHIR search parameters for DSTU2 can be found on each resource's definition page. Supported search modifiers: `:missing`, `:exact`, `:contains`, `:text`, `:in`, `:not-in`, `:above`, `:below`, `:[type]`, `:not`, and `recurse` (DSTU2 and STU3) or `:iterate` (R4). Supported search result parameters: `_sort`, `_count`, `_include`, `_revinclude`, `_summary=text`, `_summary=data`, and `_elements`. The maximum number of search results returned defaults to 100, which can be overridden by the `_count` parameter up to a maximum limit of 1000. If there are additional results, the returned `Bundle` contains a link of `relation` \"next\", which has a `_page_token` parameter for an opaque pagination token that can be used to retrieve the next page. Resources with a total size larger than 5MB or a field count larger than 50,000 might not be fully searchable as the server might trim its generated search index in those cases. Note: FHIR resources are indexed asynchronously, so there might be a slight delay between the time a resource is created or changes and when the change is reflected in search results. For samples and detailed information, see [Searching for FHIR resources](https://cloud.google.com/healthcare/docs/how-tos/fhir-search) and [Advanced FHIR search features](https://cloud.google.com/healthcare/docs/how-tos/fhir-advanced-search).", + "description": "Searches for resources in the given FHIR store according to criteria specified as query parameters. Implements the FHIR standard search interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#search), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#search), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#search)) using the search semantics described in the FHIR Search specification ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/search.html), [STU3](http://hl7.org/implement/standards/fhir/STU3/search.html), [R4](http://hl7.org/implement/standards/fhir/R4/search.html)). Supports four methods of search defined by the specification: * `GET [base]?[parameters]` to search across all resources. * `GET [base]/[type]?[parameters]` to search resources of a specified type. * `POST [base]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method across all resources. * `POST [base]/[type]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method for the specified type. The `GET` and `POST` methods do not support compartment searches. The `POST` method does not support `application/x-www-form-urlencoded` search parameters. On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `searchset`, containing the results of the search. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. The server's capability statement, retrieved through capabilities, indicates what search parameters are supported on each FHIR resource. A list of all search parameters defined by the specification can be found in the FHIR Search Parameter Registry ([STU3](http://hl7.org/implement/standards/fhir/STU3/searchparameter-registry.html), [R4](http://hl7.org/implement/standards/fhir/R4/searchparameter-registry.html)). FHIR search parameters for DSTU2 can be found on each resource's definition page. Supported search modifiers: `:missing`, `:exact`, `:contains`, `:text`, `:in`, `:not-in`, `:above`, `:below`, `:[type]`, `:not`, and `recurse` (DSTU2 and STU3) or `:iterate` (R4). Supported search result parameters: `_sort`, `_count`, `_include`, `_revinclude`, `_summary=text`, `_summary=data`, and `_elements`. The maximum number of search results returned defaults to 100, which can be overridden by the `_count` parameter up to a maximum limit of 1000. The server might return fewer resources than requested to prevent excessively large responses. If there are additional results, the returned `Bundle` contains a link of `relation` \"next\", which has a `_page_token` parameter for an opaque pagination token that can be used to retrieve the next page. Resources with a total size larger than 5MB or a field count larger than 50,000 might not be fully searchable as the server might trim its generated search index in those cases. Note: FHIR resources are indexed asynchronously, so there might be a slight delay between the time a resource is created or changed, and the time when the change reflects in search results. The only exception is resource identifier data, which is indexed synchronously as a special index. As a result, searching using resource identifier is not subject to indexing delay. To use the special synchronous index, the search term for identifier should be in the pattern `identifier=[system]|[value]` or `identifier=[value]`, and any of the following search result parameters can be used: * `_count` * `_include` * `_revinclude` * `_summary` * `_elements` If your query contains any other search parameters, the standard asynchronous index will be used instead. Note that searching against the special index is optimized for resolving a small number of matches. The search isn't optimized if your identifier search criteria matches a large number (i.e. more than 2,000) of resources. For a search query that will match a large number of resources, you can avoiding using the special synchronous index by including an additional `_sort` parameter in your query. Use `_sort=-_lastUpdated` if you want to keep the default sorting order. Note: The special synchronous identifier index are currently disabled for DocumentReference and DocumentManifest searches. For samples and detailed information, see [Searching for FHIR resources](https://cloud.google.com/healthcare/docs/how-tos/fhir-search) and [Advanced FHIR search features](https://cloud.google.com/healthcare/docs/how-tos/fhir-advanced-search).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/_search", "httpMethod": "POST", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.search", @@ -3263,7 +3714,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, @@ -3278,11 +3729,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "search-type": { - "description": "Searches for resources in the given FHIR store according to criteria specified as query parameters. Implements the FHIR standard search interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#search), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#search), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#search)) using the search semantics described in the FHIR Search specification ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/search.html), [STU3](http://hl7.org/implement/standards/fhir/STU3/search.html), [R4](http://hl7.org/implement/standards/fhir/R4/search.html)). Supports four methods of search defined by the specification: * `GET [base]?[parameters]` to search across all resources. * `GET [base]/[type]?[parameters]` to search resources of a specified type. * `POST [base]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method across all resources. * `POST [base]/[type]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method for the specified type. The `GET` and `POST` methods do not support compartment searches. The `POST` method does not support `application/x-www-form-urlencoded` search parameters. On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `searchset`, containing the results of the search. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. The server's capability statement, retrieved through capabilities, indicates what search parameters are supported on each FHIR resource. A list of all search parameters defined by the specification can be found in the FHIR Search Parameter Registry ([STU3](http://hl7.org/implement/standards/fhir/STU3/searchparameter-registry.html), [R4](http://hl7.org/implement/standards/fhir/R4/searchparameter-registry.html)). FHIR search parameters for DSTU2 can be found on each resource's definition page. Supported search modifiers: `:missing`, `:exact`, `:contains`, `:text`, `:in`, `:not-in`, `:above`, `:below`, `:[type]`, `:not`, and `recurse` (DSTU2 and STU3) or `:iterate` (R4). Supported search result parameters: `_sort`, `_count`, `_include`, `_revinclude`, `_summary=text`, `_summary=data`, and `_elements`. The maximum number of search results returned defaults to 100, which can be overridden by the `_count` parameter up to a maximum limit of 1000. If there are additional results, the returned `Bundle` contains a link of `relation` \"next\", which has a `_page_token` parameter for an opaque pagination token that can be used to retrieve the next page. Resources with a total size larger than 5MB or a field count larger than 50,000 might not be fully searchable as the server might trim its generated search index in those cases. Note: FHIR resources are indexed asynchronously, so there might be a slight delay between the time a resource is created or changes and when the change is reflected in search results. For samples and detailed information, see [Searching for FHIR resources](https://cloud.google.com/healthcare/docs/how-tos/fhir-search) and [Advanced FHIR search features](https://cloud.google.com/healthcare/docs/how-tos/fhir-advanced-search).", + "description": "Searches for resources in the given FHIR store according to criteria specified as query parameters. Implements the FHIR standard search interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#search), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#search), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#search)) using the search semantics described in the FHIR Search specification ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/search.html), [STU3](http://hl7.org/implement/standards/fhir/STU3/search.html), [R4](http://hl7.org/implement/standards/fhir/R4/search.html)). Supports four methods of search defined by the specification: * `GET [base]?[parameters]` to search across all resources. * `GET [base]/[type]?[parameters]` to search resources of a specified type. * `POST [base]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method across all resources. * `POST [base]/[type]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method for the specified type. The `GET` and `POST` methods do not support compartment searches. The `POST` method does not support `application/x-www-form-urlencoded` search parameters. On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `searchset`, containing the results of the search. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. The server's capability statement, retrieved through capabilities, indicates what search parameters are supported on each FHIR resource. A list of all search parameters defined by the specification can be found in the FHIR Search Parameter Registry ([STU3](http://hl7.org/implement/standards/fhir/STU3/searchparameter-registry.html), [R4](http://hl7.org/implement/standards/fhir/R4/searchparameter-registry.html)). FHIR search parameters for DSTU2 can be found on each resource's definition page. Supported search modifiers: `:missing`, `:exact`, `:contains`, `:text`, `:in`, `:not-in`, `:above`, `:below`, `:[type]`, `:not`, and `recurse` (DSTU2 and STU3) or `:iterate` (R4). Supported search result parameters: `_sort`, `_count`, `_include`, `_revinclude`, `_summary=text`, `_summary=data`, and `_elements`. The maximum number of search results returned defaults to 100, which can be overridden by the `_count` parameter up to a maximum limit of 1000. The server might return fewer resources than requested to prevent excessively large responses. If there are additional results, the returned `Bundle` contains a link of `relation` \"next\", which has a `_page_token` parameter for an opaque pagination token that can be used to retrieve the next page. Resources with a total size larger than 5MB or a field count larger than 50,000 might not be fully searchable as the server might trim its generated search index in those cases. Note: FHIR resources are indexed asynchronously, so there might be a slight delay between the time a resource is created or changed, and the time when the change reflects in search results. The only exception is resource identifier data, which is indexed synchronously as a special index. As a result, searching using resource identifier is not subject to indexing delay. To use the special synchronous index, the search term for identifier should be in the pattern `identifier=[system]|[value]` or `identifier=[value]`, and any of the following search result parameters can be used: * `_count` * `_include` * `_revinclude` * `_summary` * `_elements` If your query contains any other search parameters, the standard asynchronous index will be used instead. Note that searching against the special index is optimized for resolving a small number of matches. The search isn't optimized if your identifier search criteria matches a large number (i.e. more than 2,000) of resources. For a search query that will match a large number of resources, you can avoiding using the special synchronous index by including an additional `_sort` parameter in your query. Use `_sort=-_lastUpdated` if you want to keep the default sorting order. Note: The special synchronous identifier index are currently disabled for DocumentReference and DocumentManifest searches. For samples and detailed information, see [Searching for FHIR resources](https://cloud.google.com/healthcare/docs/how-tos/fhir-search) and [Advanced FHIR search features](https://cloud.google.com/healthcare/docs/how-tos/fhir-advanced-search).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{resourceType}/_search", "httpMethod": "POST", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.search-type", @@ -3292,14 +3744,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" @@ -3313,6 +3765,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3326,7 +3779,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, @@ -3341,6 +3794,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3354,7 +3808,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, @@ -3366,6 +3820,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -3385,12 +3840,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, @@ -3405,6 +3860,7 @@ "$ref": "Hl7V2Store" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3418,7 +3874,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, @@ -3430,6 +3886,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3443,7 +3900,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, @@ -3458,6 +3915,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3471,7 +3929,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, @@ -3483,6 +3941,33 @@ "$ref": "Hl7V2Store" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getHL7v2StoreMetrics": { + "description": "Gets metrics associated with the HL7v2 store.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}:getHL7v2StoreMetrics", + "httpMethod": "GET", + "id": "healthcare.projects.locations.datasets.hl7V2Stores.getHL7v2StoreMetrics", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "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, + "type": "string" + } + }, + "path": "v1/{+name}:getHL7v2StoreMetrics", + "response": { + "$ref": "Hl7V2StoreMetrics" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3514,6 +3999,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3527,7 +4013,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, @@ -3542,6 +4028,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3571,7 +4058,7 @@ "type": "string" }, "parent": { - "description": "Name of the dataset.", + "description": "Required. Name of the dataset.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "required": true, @@ -3583,6 +4070,7 @@ "$ref": "ListHl7V2StoresResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3596,14 +4084,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" @@ -3617,6 +4105,7 @@ "$ref": "Hl7V2Store" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3645,6 +4134,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3673,6 +4163,7 @@ "$ref": "TestIamPermissionsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -3690,7 +4181,7 @@ ], "parameters": { "parent": { - "description": "The name of the dataset 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, @@ -3705,6 +4196,7 @@ "$ref": "Message" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3718,7 +4210,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, @@ -3730,6 +4222,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3743,7 +4236,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, @@ -3776,6 +4269,7 @@ "$ref": "Message" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3789,7 +4283,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, @@ -3804,6 +4298,7 @@ "$ref": "IngestMessageResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3838,7 +4333,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, @@ -3871,6 +4366,7 @@ "$ref": "ListMessagesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3884,14 +4380,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" @@ -3905,6 +4401,7 @@ "$ref": "Message" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -3939,6 +4436,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3964,11 +4462,12 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "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`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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}/datasets/{datasetsId}/operations", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.operations.list", @@ -4005,6 +4504,7 @@ "$ref": "ListOperationsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -4041,6 +4541,7 @@ "$ref": "AnalyzeEntitiesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -4053,7 +4554,7 @@ } } }, - "revision": "20221220", + "revision": "20240228", "rootUrl": "https://healthcare.googleapis.com/", "schemas": { "ActivateConsentRequest": { @@ -4081,6 +4582,18 @@ "description": "The request to analyze healthcare entities in a document.", "id": "AnalyzeEntitiesRequest", "properties": { + "alternativeOutputFormat": { + "description": "Optional. Alternative output format to be generated based on the results of analysis.", + "enum": [ + "ALTERNATIVE_OUTPUT_FORMAT_UNSPECIFIED", + "FHIR_BUNDLE" + ], + "enumDescriptions": [ + "No alternative output format is specified.", + "FHIR bundle output." + ], + "type": "string" + }, "documentContent": { "description": "document_content is a document to be annotated.", "type": "string" @@ -4117,12 +4630,16 @@ "type": "array" }, "entityMentions": { - "description": "entity_mentions contains all the annotated medical entities that were mentioned in the provided document.", + "description": "The `entity_mentions` field contains all the annotated medical entities that were mentioned in the provided document.", "items": { "$ref": "EntityMention" }, "type": "array" }, + "fhirBundle": { + "description": "The FHIR bundle ([`R4`](http://hl7.org/fhir/R4/bundle.html)) that includes all the entities, the entity mentions, and the relationships in JSON format.", + "type": "string" + }, "relationships": { "description": "relationships contains all the binary relationships that were identified between entity mentions within the provided document.", "items": { @@ -4204,7 +4721,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" } }, @@ -4267,14 +4784,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -4372,7 +4889,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": { @@ -4452,7 +4969,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": { @@ -4530,7 +5047,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" } }, @@ -4542,7 +5059,7 @@ "properties": { "message": { "$ref": "Message", - "description": "HL7v2 message." + "description": "Required. HL7v2 message." } }, "type": "object" @@ -4568,7 +5085,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": { @@ -4628,6 +5145,10 @@ "text": { "$ref": "TextConfig", "description": "Configures de-identification of text wherever it is found in the source_dataset." + }, + "useRegionalDataProcessing": { + "description": "Ensures in-flight data remains in the region of origin during de-identification. Using this option results in a significant reduction of throughput, and is not compatible with `LOCATION` or `ORGANIZATION_NAME` infoTypes. `LOCATION` must be excluded within TextConfig, and must also be excluded within ImageConfig if image redaction is required.", + "type": "boolean" } }, "type": "object" @@ -4641,7 +5162,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": { @@ -4660,7 +5181,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": { @@ -4683,7 +5204,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": { @@ -4767,12 +5288,55 @@ "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": { "$ref": "NotificationConfig", "description": "Notification destination for new DICOM instances. Supplied by the client." + }, + "streamConfigs": { + "description": "Optional. A list of streaming configs used to configure the destination of streaming exports for every DICOM instance insertion in this DICOM store. After a new config is added to `stream_configs`, DICOM instance insertions are streamed to the new destination. When a config is removed from `stream_configs`, the server stops streaming to that destination. Each config must contain a unique destination.", + "items": { + "$ref": "GoogleCloudHealthcareV1DicomStreamConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "DicomStoreMetrics": { + "description": "DicomStoreMetrics contains metrics describing a DICOM store.", + "id": "DicomStoreMetrics", + "properties": { + "blobStorageSizeBytes": { + "description": "Total blob storage bytes for all instances in the store.", + "format": "int64", + "type": "string" + }, + "instanceCount": { + "description": "Number of instances in the store.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Resource name of the DICOM store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "type": "string" + }, + "seriesCount": { + "description": "Number of series in the store.", + "format": "int64", + "type": "string" + }, + "structuredStorageSizeBytes": { + "description": "Total structured storage bytes for all instances in the store.", + "format": "int64", + "type": "string" + }, + "studyCount": { + "description": "Number of studies in the store.", + "format": "int64", + "type": "string" } }, "type": "object" @@ -4967,10 +5531,18 @@ "format": "google-datetime", "type": "string" }, + "filter": { + "description": "Restricts messages exported to those matching a filter, only applicable to PubsubDestination. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in the `yyyy-mm-dd` format. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, and is just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. The following fields and functions are available for filtering: * `message_type`, from the MSH-9.1 field. For example, `NOT message_type = \"ADT\"`. * `send_date` or `sendDate`, the `yyyy-mm-dd` date the message was sent in the dataset's time_zone, from the MSH-7 segment. For example, `send_date < \"2017-01-02\"`. * `send_time`, the timestamp when the message was sent, using the RFC3339 time format for comparisons, from the MSH-7 segment. For example, `send_time < \"2017-01-02T00:00:00-05:00\"`. * `create_time`, the timestamp when the message was created in the HL7v2 store. Use the RFC3339 time format for comparisons. For example, `create_time < \"2017-01-02T00:00:00-05:00\"`. * `send_facility`, the care center that the message came from, from the MSH-4 segment. For example, `send_facility = \"ABC\"`. Note: The filter will be applied to every message in the HL7v2 store whose `send_time` lies in the range defined by the `start_time` and the `end_time`. Even if the filter only matches a small set of messages, the export operation can still take a long time to finish when a lot of messages are between the specified `start_time` and `end_time` range.", + "type": "string" + }, "gcsDestination": { "$ref": "GcsDestination", "description": "Export to a Cloud Storage destination." }, + "pubsubDestination": { + "$ref": "PubsubDestination", + "description": "Export messages to a Pub/Sub topic." + }, "startTime": { "description": "The start of the range in `send_time` (MSH.7, https://www.hl7.org/documentcenter/public_temp_2E58C1F9-1C23-BA17-0C6126475344DA9D/wg/conf/HL7MSH.htm) to process. If not specified, the UNIX epoch (1970-01-01T00:00:00Z) is used. This value has to come before the `end_time` defined below. Only messages whose `send_time` lies in the range `start_time` (inclusive) to `end_time` (exclusive) are exported.", "format": "google-datetime", @@ -5082,6 +5654,25 @@ }, "type": "object" }, + "FhirNotificationConfig": { + "description": "Contains the configuration for FHIR notifications.", + "id": "FhirNotificationConfig", + "properties": { + "pubsubTopic": { + "description": "The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. The notification is a `PubsubMessage` with the following fields: * `PubsubMessage.Data` contains the resource name. * `PubsubMessage.MessageId` is the ID of this notification. It is guaranteed to be unique within the topic. * `PubsubMessage.PublishTime` is the time when the message was published. Note that notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. The Cloud Healthcare API service account, service-@gcp-sa-healthcare.iam.gserviceaccount.com, must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail (https://cloud.google.com/healthcare-api/docs/permissions-healthcare-api-gcp-products#dicom_fhir_and_hl7v2_store_cloud_pubsub_permissions). If a notification can't be published to Pub/Sub, errors are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare-api/docs/how-tos/logging).", + "type": "string" + }, + "sendFullResource": { + "description": "Whether to send full FHIR resource to this Pub/Sub topic.", + "type": "boolean" + }, + "sendPreviousResourceOnDelete": { + "description": "Whether to send full FHIR resource to this Pub/Sub topic for deleting FHIR resource. Note that setting this to true does not guarantee that all previous resources will be sent in the format of full FHIR resource. When a resource change is too large or during heavy traffic, only the resource name will be sent. Clients should always check the \"payloadType\" label from a Pub/Sub message to determine whether it needs to fetch the full previous resource as a separate operation.", + "type": "boolean" + } + }, + "type": "object" + }, "FhirStore": { "description": "Represents a FHIR store.", "id": "FhirStore", @@ -5124,12 +5715,20 @@ "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": { "$ref": "NotificationConfig", - "description": "If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, \"action\":\"CreateResource\"." + "deprecated": true, + "description": "Deprecated. Use `notification_configs` instead. If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, \"action\":\"CreateResource\"." + }, + "notificationConfigs": { + "description": "Specifies where and whether to send notifications upon changes to a FHIR store.", + "items": { + "$ref": "FhirNotificationConfig" + }, + "type": "array" }, "streamConfigs": { "description": "A list of streaming configs that configure the destinations of streaming export for every resource mutation in this FHIR store. Each store is allowed to have up to 10 streaming configs. After a new config is added, the next resource mutation is streamed to the new location in addition to the existing ones. When a location is removed from the list, the server stops streaming to that location. Before adding a new config, you must add the required [`bigquery.dataEditor`](https://cloud.google.com/bigquery/docs/access-control#bigquery.dataEditor) role to your project's **Cloud Healthcare Service Agent** [service account](https://cloud.google.com/iam/docs/service-accounts). Some lag (typically on the order of dozens of seconds) is expected before the results show up in the streaming destination.", @@ -5143,7 +5742,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", @@ -5161,6 +5760,45 @@ }, "type": "object" }, + "FhirStoreMetric": { + "description": "Count of resources and total storage size by type for a given FHIR store.", + "id": "FhirStoreMetric", + "properties": { + "count": { + "description": "The total count of FHIR resources in the store of this resource type.", + "format": "int64", + "type": "string" + }, + "resourceType": { + "description": "The FHIR resource type this metric applies to.", + "type": "string" + }, + "structuredStorageSizeBytes": { + "description": "The total amount of structured storage used by FHIR resources of this resource type in the store.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "FhirStoreMetrics": { + "description": "List of metrics for a given FHIR store.", + "id": "FhirStoreMetrics", + "properties": { + "metrics": { + "description": "List of FhirStoreMetric by resource type.", + "items": { + "$ref": "FhirStoreMetric" + }, + "type": "array" + }, + "name": { + "description": "The resource name of the FHIR store to get metrics for, in the format `projects/{project_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", + "type": "string" + } + }, + "type": "object" + }, "Field": { "description": "A (sub) field of a type.", "id": "Field", @@ -5372,6 +6010,17 @@ }, "type": "object" }, + "GoogleCloudHealthcareV1DicomStreamConfig": { + "description": "StreamConfig specifies configuration for a streaming DICOM export.", + "id": "GoogleCloudHealthcareV1DicomStreamConfig", + "properties": { + "bigqueryDestination": { + "$ref": "GoogleCloudHealthcareV1DicomBigQueryDestination", + "description": "Results are appended to this table. The server creates a new table in the given BigQuery dataset if the specified table does not exist. To enable the Cloud Healthcare API to write to your BigQuery table, you must give the Cloud Healthcare API service account the bigquery.dataEditor role. The service account is: `service-{PROJECT_NUMBER}@gcp-sa-healthcare.iam.gserviceaccount.com`. The PROJECT_NUMBER identifies the project that the DICOM store resides in. To get the project number, go to the Cloud Console Dashboard. It is recommended to not have a custom schema in the destination table which could conflict with the schema created by the Cloud Healthcare API. Instance deletions are not applied to the destination table. The destination's table schema will be automatically updated in case a new instance's data is incompatible with the current schema. The schema should not be updated manually as this can cause incompatibilies that cannot be resolved automatically. One resolution in this case is to delete the incompatible table and let the server recreate one, though the newly created table only contains data after the table recreation. BigQuery imposes a 1 MB limit on streaming insert row size, therefore any instance that generates more than 1 MB of BigQuery data will not be streamed. If an instance cannot be streamed to BigQuery, errors will be logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging))." + } + }, + "type": "object" + }, "GoogleCloudHealthcareV1FhirBigQueryDestination": { "description": "The configuration for exporting to BigQuery.", "id": "GoogleCloudHealthcareV1FhirBigQueryDestination", @@ -5511,7 +6160,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": { @@ -5532,6 +6181,45 @@ }, "type": "object" }, + "Hl7V2StoreMetric": { + "description": "Count of messages and total storage size by type for a given HL7 store.", + "id": "Hl7V2StoreMetric", + "properties": { + "count": { + "description": "The total count of HL7v2 messages in the store for the given message type.", + "format": "int64", + "type": "string" + }, + "messageType": { + "description": "The Hl7v2 message type this metric applies to, such as `ADT` or `ORU`.", + "type": "string" + }, + "structuredStorageSizeBytes": { + "description": "The total amount of structured storage used by HL7v2 messages of this message type in the store.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "Hl7V2StoreMetrics": { + "description": "List of metrics for a given HL7v2 store.", + "id": "Hl7V2StoreMetrics", + "properties": { + "metrics": { + "description": "List of HL7v2 store metrics by message type.", + "items": { + "$ref": "Hl7V2StoreMetric" + }, + "type": "array" + }, + "name": { + "description": "The resource name of the HL7v2 store to get metrics for, in the format `projects/{project_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", + "type": "string" + } + }, + "type": "object" + }, "HttpBody": { "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": "HttpBody", @@ -5707,7 +6395,7 @@ "properties": { "message": { "$ref": "Message", - "description": "HL7v2 message to ingest." + "description": "Required. HL7v2 message to ingest." } }, "type": "object" @@ -5984,7 +6672,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -6028,7 +6716,7 @@ "type": "string" }, "data": { - "description": "Raw message bytes.", + "description": "Required. Raw message bytes.", "format": "byte", "type": "string" }, @@ -6044,7 +6732,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": { @@ -6082,6 +6771,10 @@ "pubsubTopic": { "description": "The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can't be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren't submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.", "type": "string" + }, + "sendForBulkImport": { + "description": "Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.", + "type": "boolean" } }, "type": "object" @@ -6115,7 +6808,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" } }, @@ -6218,7 +6911,7 @@ "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/).", + "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": { @@ -6270,6 +6963,17 @@ }, "type": "object" }, + "PubsubDestination": { + "description": "The Pub/Sub output destination. The Cloud Healthcare Service Agent requires the `roles/pubsub.publisher` Cloud IAM role on the Pub/Sub topic.", + "id": "PubsubDestination", + "properties": { + "pubsubTopic": { + "description": "The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that Pub/Sub messages are published on. Supplied by the client. The `PubsubMessage` contains the following fields: * `PubsubMessage.Data` contains the resource name. * `PubsubMessage.MessageId` is the ID of this notification. It is guaranteed to be unique within the topic. * `PubsubMessage.PublishTime` is the time when the message was published. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. The Cloud Healthcare API service account, service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com, must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail.", + "type": "string" + } + }, + "type": "object" + }, "QueryAccessibleDataRequest": { "description": "Queries all data_ids that are consented for a given use in the given consent store and writes them to a specified destination. The returned Operation includes a progress counter for the number of User data mappings processed. Errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging] (https://cloud.google.com/healthcare/docs/how-tos/logging) and [QueryAccessibleData] for a sample log entry).", "id": "QueryAccessibleDataRequest", @@ -6379,10 +7083,99 @@ }, "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", "properties": { + "lastUpdatedPartitionConfig": { + "$ref": "TimePartitioning", + "description": "The configuration for exported BigQuery tables to be partitioned by FHIR resource's last updated time column." + }, "recursiveStructureDepth": { "description": "The depth for all recursive structures in the output analytics schema. For example, `concept` in the CodeSystem resource is a recursive structure; when the depth is 2, the CodeSystem table will have a column called `concept.concept` but not `concept.concept.concept`. If not specified or set to 0, the server will use the default value 2. The maximum depth allowed is 5.", "format": "int64", @@ -6397,8 +7190,8 @@ ], "enumDescriptions": [ "No schema type specified. This type is unsupported.", - "Analytics schema defined by the FHIR community. See https://github.com/FHIR/sql-on-fhir/blob/master/sql-on-fhir.md. BigQuery only allows a maximum of 10,000 columns per table. Due to this limitation, the server will not generate schemas for fields of type `Resource`, which can hold any resource type. The affected fields are `Parameters.parameter.resource`, `Bundle.entry.resource`, and `Bundle.entry.response.outcome`.", - "Analytics V2, similar to schema defined by the FHIR community, with added support for extensions with one or more occurrences and contained resources in stringified JSON. Analytics V2 uses more space in the destination table than Analytics V1." + "Analytics schema defined by the FHIR community. See https://github.com/FHIR/sql-on-fhir/blob/master/sql-on-fhir.md. BigQuery only allows a maximum of 10,000 columns per table. Due to this limitation, the server will not generate schemas for fields of type `Resource`, which can hold any resource type. The affected fields are `Parameters.parameter.resource`, `Bundle.entry.resource`, and `Bundle.entry.response.outcome`. Analytics schema does not gracefully handle extensions with one or more occurrences, anaytics schema also does not handle contained resource.", + "Analytics V2, similar to schema defined by the FHIR community, with added support for extensions with one or more occurrences and contained resources in stringified JSON. Analytics V2 uses more space in the destination table than Analytics V1. It is generally recommended to use Analytics V2 over Analytics." ], "type": "string" } @@ -6533,7 +7326,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" } }, @@ -6561,6 +7354,32 @@ }, "type": "object" }, + "SeriesMetrics": { + "description": "SeriesMetrics contains metrics describing a DICOM series.", + "id": "SeriesMetrics", + "properties": { + "blobStorageSizeBytes": { + "description": "Total blob storage bytes for all instances in the series.", + "format": "int64", + "type": "string" + }, + "instanceCount": { + "description": "Number of instances in the series.", + "format": "int64", + "type": "string" + }, + "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}`.", + "type": "string" + }, + "structuredStorageSizeBytes": { + "description": "Total structured storage bytes for all instances in the series.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", @@ -6653,6 +7472,37 @@ }, "type": "object" }, + "StudyMetrics": { + "description": "StudyMetrics contains metrics describing a DICOM study.", + "id": "StudyMetrics", + "properties": { + "blobStorageSizeBytes": { + "description": "Total blob storage bytes for all instances in the study.", + "format": "int64", + "type": "string" + }, + "instanceCount": { + "description": "Number of instances in the study.", + "format": "int64", + "type": "string" + }, + "seriesCount": { + "description": "Number of series in the study.", + "format": "int64", + "type": "string" + }, + "structuredStorageSizeBytes": { + "description": "Total structured storage bytes for all instances in the study.", + "format": "int64", + "type": "string" + }, + "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}`.", + "type": "string" + } + }, + "type": "object" + }, "TagFilterList": { "description": "List of tags to be filtered.", "id": "TagFilterList", @@ -6698,8 +7548,22 @@ "TextConfig": { "id": "TextConfig", "properties": { + "additionalTransformations": { + "description": "Transformations to apply to the detected data, overridden by `exclude_info_types`.", + "items": { + "$ref": "InfoTypeTransformation" + }, + "type": "array" + }, + "excludeInfoTypes": { + "description": "InfoTypes to skip transforming, overriding `additional_transformations`.", + "items": { + "type": "string" + }, + "type": "array" + }, "transformations": { - "description": "The transformations to apply to the detected data.", + "description": "The transformations to apply to the detected data. Deprecated. Use `additional_transformations` instead.", "items": { "$ref": "InfoTypeTransformation" }, @@ -6724,6 +7588,36 @@ }, "type": "object" }, + "TimePartitioning": { + "description": "Configuration for FHIR BigQuery time-partitioned tables.", + "id": "TimePartitioning", + "properties": { + "expirationMs": { + "description": "Number of milliseconds for which to keep the storage for a partition.", + "format": "int64", + "type": "string" + }, + "type": { + "description": "Type of partitioning.", + "enum": [ + "PARTITION_TYPE_UNSPECIFIED", + "HOUR", + "DAY", + "MONTH", + "YEAR" + ], + "enumDescriptions": [ + "Default unknown time.", + "Data partitioned by hour.", + "Data partitioned by day.", + "Data partitioned by month.", + "Data partitioned by year." + ], + "type": "string" + } + }, + "type": "object" + }, "Type": { "description": "A type definition for some HL7v2 type (incl. Segments and Datatypes).", "id": "Type", diff --git a/etc/api/healthcare/v1beta1/healthcare-api.json b/etc/api/healthcare/v1beta1/healthcare-api.json index ae65a3d8b4..ccc38f9598 100644 --- a/etc/api/healthcare/v1beta1/healthcare-api.json +++ b/etc/api/healthcare/v1beta1/healthcare-api.json @@ -2,6 +2,9 @@ "auth": { "oauth2": { "scopes": { + "https://www.googleapis.com/auth/cloud-healthcare": { + "description": "Read, write and manage healthcare data" + }, "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." } @@ -131,6 +134,7 @@ "$ref": "Location" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -172,6 +176,7 @@ "$ref": "ListLocationsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -189,12 +194,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, @@ -209,6 +214,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -222,7 +228,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, @@ -237,6 +243,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -250,7 +257,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, @@ -262,6 +269,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -275,7 +283,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, @@ -287,6 +295,7 @@ "$ref": "Dataset" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -318,6 +327,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -342,7 +352,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, @@ -354,6 +364,7 @@ "$ref": "ListDatasetsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -367,14 +378,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" @@ -388,6 +399,7 @@ "$ref": "Dataset" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -416,6 +428,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -444,6 +457,7 @@ "$ref": "TestIamPermissionsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -461,12 +475,12 @@ ], "parameters": { "annotationStoreId": { - "description": "The ID of the Annotation store that is being created. The string must match the following regex: `[\\p{L}\\p{N}_\\-\\.]{1,256}`.", + "description": "Required. The ID of the Annotation 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 Annotation store belongs to.", + "description": "Required. The name of the dataset this Annotation store belongs to.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "required": true, @@ -481,6 +495,7 @@ "$ref": "AnnotationStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -494,7 +509,7 @@ ], "parameters": { "name": { - "description": "The resource name of the Annotation store to delete.", + "description": "Required. The resource name of the Annotation store to delete.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+$", "required": true, @@ -506,6 +521,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -519,7 +535,7 @@ ], "parameters": { "name": { - "description": "The Annotation store to compare against `golden_store`, in the format of `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.", + "description": "Required. The Annotation store to compare against `golden_store`, in the format of `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+$", "required": true, @@ -534,6 +550,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -547,7 +564,7 @@ ], "parameters": { "name": { - "description": "The name of the Annotation store to export annotations to, in the format of `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.", + "description": "Required. The name of the Annotation store to export annotations to, in the format of `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+$", "required": true, @@ -562,6 +579,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -575,7 +593,7 @@ ], "parameters": { "name": { - "description": "The resource name of the Annotation store to get.", + "description": "Required. The resource name of the Annotation store to get.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+$", "required": true, @@ -587,6 +605,7 @@ "$ref": "AnnotationStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -618,6 +637,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -631,7 +651,7 @@ ], "parameters": { "name": { - "description": "The name of the Annotation store to which the server imports annotations, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.", + "description": "Required. The name of the Annotation store to which the server imports annotations, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+$", "required": true, @@ -646,6 +666,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -675,7 +696,7 @@ "type": "string" }, "parent": { - "description": "Name of the dataset.", + "description": "Required. Name of the dataset.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "required": true, @@ -687,6 +708,7 @@ "$ref": "ListAnnotationStoresResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -700,14 +722,14 @@ ], "parameters": { "name": { - "description": "Resource name of the Annotation store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.", + "description": "Identifier. Resource name of the Annotation store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+$", "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" @@ -721,6 +743,7 @@ "$ref": "AnnotationStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -749,6 +772,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -777,6 +801,7 @@ "$ref": "TestIamPermissionsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -794,7 +819,7 @@ ], "parameters": { "parent": { - "description": "The name of the Annotation store this annotation belongs to. For example, `projects/my-project/locations/us-central1/datasets/mydataset/annotationStores/myannotationstore`.", + "description": "Required. The name of the Annotation store this annotation belongs to. For example, `projects/my-project/locations/us-central1/datasets/mydataset/annotationStores/myannotationstore`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+$", "required": true, @@ -809,6 +834,7 @@ "$ref": "Annotation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -822,7 +848,7 @@ ], "parameters": { "name": { - "description": "The resource name of the Annotation to delete.", + "description": "Required. The resource name of the Annotation to delete.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+/annotations/[^/]+$", "required": true, @@ -834,6 +860,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -847,7 +874,7 @@ ], "parameters": { "name": { - "description": "The resource name of the Annotation to retrieve.", + "description": "Required. The resource name of the Annotation to retrieve.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+/annotations/[^/]+$", "required": true, @@ -859,6 +886,7 @@ "$ref": "Annotation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -888,7 +916,7 @@ "type": "string" }, "parent": { - "description": "Name of the Annotation store to retrieve Annotations from.", + "description": "Required. Name of the Annotation store to retrieve Annotations from.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+$", "required": true, @@ -915,6 +943,7 @@ "$ref": "ListAnnotationsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -928,14 +957,14 @@ ], "parameters": { "name": { - "description": "Resource name of the Annotation, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}/annotations/{annotation_id}`.", + "description": "Identifier. Resource name of the Annotation, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}/annotations/{annotation_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+/annotations/[^/]+$", "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" @@ -949,6 +978,7 @@ "$ref": "Annotation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -983,6 +1013,7 @@ "$ref": "CheckDataAccessResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1016,6 +1047,7 @@ "$ref": "ConsentStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1041,6 +1073,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1069,6 +1102,7 @@ "$ref": "EvaluateUserConsentsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1094,6 +1128,7 @@ "$ref": "ConsentStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1125,6 +1160,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1166,6 +1202,7 @@ "$ref": "ListConsentStoresResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1200,6 +1237,7 @@ "$ref": "ConsentStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1228,6 +1266,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1256,6 +1295,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1284,6 +1324,7 @@ "$ref": "TestIamPermissionsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -1321,6 +1362,7 @@ "$ref": "AttributeDefinition" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1346,6 +1388,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1371,6 +1414,7 @@ "$ref": "AttributeDefinition" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1412,6 +1456,7 @@ "$ref": "ListAttributeDefinitionsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1425,7 +1470,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, @@ -1446,6 +1491,7 @@ "$ref": "AttributeDefinition" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -1478,6 +1524,7 @@ "$ref": "ConsentArtifact" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1503,6 +1550,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1528,6 +1576,7 @@ "$ref": "ConsentArtifact" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1569,6 +1618,7 @@ "$ref": "ListConsentArtifactsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -1601,6 +1651,7 @@ "$ref": "Consent" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1629,6 +1680,7 @@ "$ref": "Consent" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1654,6 +1706,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1679,6 +1732,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1704,6 +1758,7 @@ "$ref": "Consent" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1745,6 +1800,7 @@ "$ref": "ListConsentsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1786,6 +1842,7 @@ "$ref": "ListConsentRevisionsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1799,7 +1856,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, @@ -1820,6 +1877,7 @@ "$ref": "Consent" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1848,6 +1906,7 @@ "$ref": "Consent" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1876,6 +1935,7 @@ "$ref": "Consent" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -1908,6 +1968,7 @@ "$ref": "ArchiveUserDataMappingResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1936,6 +1997,7 @@ "$ref": "UserDataMapping" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1961,6 +2023,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -1986,6 +2049,7 @@ "$ref": "UserDataMapping" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2027,6 +2091,7 @@ "$ref": "ListUserDataMappingsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2061,6 +2126,7 @@ "$ref": "UserDataMapping" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -2068,6 +2134,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": "v1beta1/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": "v1beta1/{+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": "v1beta1/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": "v1beta1/{+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": "v1beta1/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": "v1beta1/{+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": { @@ -2080,12 +2240,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, @@ -2100,6 +2260,7 @@ "$ref": "DicomStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2113,7 +2274,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, @@ -2128,6 +2289,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2141,7 +2303,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, @@ -2153,6 +2315,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2166,7 +2329,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, @@ -2181,6 +2344,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2194,7 +2358,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, @@ -2206,6 +2370,33 @@ "$ref": "DicomStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getDICOMStoreMetrics": { + "description": "Gets metrics associated with the DICOM store.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:getDICOMStoreMetrics", + "httpMethod": "GET", + "id": "healthcare.projects.locations.datasets.dicomStores.getDICOMStoreMetrics", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the DICOM store to get metrics for.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:getDICOMStoreMetrics", + "response": { + "$ref": "DicomStoreMetrics" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2237,6 +2428,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2250,7 +2442,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, @@ -2265,6 +2457,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2294,7 +2487,7 @@ "type": "string" }, "parent": { - "description": "Name of the dataset.", + "description": "Required. Name of the dataset.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "required": true, @@ -2306,6 +2499,7 @@ "$ref": "ListDicomStoresResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2319,7 +2513,7 @@ ], "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, @@ -2340,11 +2534,12 @@ "$ref": "DicomStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "searchForInstances": { - "description": "SearchForInstances returns a list of matching instances. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of SearchForInstances, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForInstances, see [Searching for studies, series, instances, and frames](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#searching_for_studies_series_instances_and_frames).", + "description": "SearchForInstances returns a list of matching instances. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of SearchForInstances, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForInstances, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/instances", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.searchForInstances", @@ -2354,14 +2549,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, @@ -2373,11 +2568,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "searchForSeries": { - "description": "SearchForSeries returns a list of matching series. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of SearchForSeries, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForSeries, see [Searching for studies, series, instances, and frames](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#searching_for_studies_series_instances_and_frames).", + "description": "SearchForSeries returns a list of matching series. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of SearchForSeries, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForSeries, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/series", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.searchForSeries", @@ -2387,14 +2583,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, @@ -2406,11 +2602,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "searchForStudies": { - "description": "SearchForStudies returns a list of matching studies. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of SearchForStudies, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForStudies, see [Searching for studies, series, instances, and frames](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#searching_for_studies_series_instances_and_frames).", + "description": "SearchForStudies returns a list of matching studies. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of SearchForStudies, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForStudies, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.searchForStudies", @@ -2420,14 +2617,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, @@ -2439,6 +2636,36 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "setBlobStorageSettings": { + "description": "SetBlobStorageSettings sets the blob storage settings of the specified resources.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:setBlobStorageSettings", + "httpMethod": "POST", + "id": "healthcare.projects.locations.datasets.dicomStores.setBlobStorageSettings", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "Required. The path of the resource to update the blob storage settings in the format of `projects/{projectID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}`, `projects/{projectID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}/series/{seriesUID}/`, or `projects/{projectID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}/series/{seriesUID}/instances/{instanceUID}`. If `filter_config` is specified, set the value of `resource` to the resource name of a DICOM store in the format `projects/{projectID}/datasets/{datasetID}/dicomStores/{dicomStoreID}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+resource}:setBlobStorageSettings", + "request": { + "$ref": "SetBlobStorageSettingsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2467,11 +2694,12 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "storeInstances": { - "description": "StoreInstances stores DICOM instances associated with study instance unique identifiers (SUID). See [Store Transaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.5). For details on the implementation of StoreInstances, see [Store transaction](https://cloud.google.com/healthcare/docs/dicom#store_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call StoreInstances, see [Storing DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#storing_dicom_data).", + "description": "StoreInstances stores DICOM instances associated with study instance unique identifiers (SUID). See [Store Transaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.5). For details on the implementation of StoreInstances, see [Store transaction](https://cloud.google.com/healthcare/docs/dicom#store_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call StoreInstances, see [Store DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#store-dicom).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies", "httpMethod": "POST", "id": "healthcare.projects.locations.datasets.dicomStores.storeInstances", @@ -2481,14 +2709,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, @@ -2503,6 +2731,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -2531,15 +2760,143 @@ "$ref": "TestIamPermissionsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } }, "resources": { + "dicomWeb": { + "resources": { + "studies": { + "methods": { + "getStudyMetrics": { + "description": "GetStudyMetrics returns metrics for a study.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}:getStudyMetrics", + "httpMethod": "GET", + "id": "healthcare.projects.locations.datasets.dicomStores.dicomWeb.studies.getStudyMetrics", + "parameterOrder": [ + "study" + ], + "parameters": { + "study": { + "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, + "type": "string" + } + }, + "path": "v1beta1/{+study}:getStudyMetrics", + "response": { + "$ref": "StudyMetrics" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "setBlobStorageSettings": { + "description": "SetBlobStorageSettings sets the blob storage settings of the specified resources.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}:setBlobStorageSettings", + "httpMethod": "POST", + "id": "healthcare.projects.locations.datasets.dicomStores.dicomWeb.studies.setBlobStorageSettings", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "Required. The path of the resource to update the blob storage settings in the format of `projects/{projectID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}`, `projects/{projectID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}/series/{seriesUID}/`, or `projects/{projectID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}/series/{seriesUID}/instances/{instanceUID}`. If `filter_config` is specified, set the value of `resource` to the resource name of a DICOM store in the format `projects/{projectID}/datasets/{datasetID}/dicomStores/{dicomStoreID}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+/dicomWeb/studies/.*$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+resource}:setBlobStorageSettings", + "request": { + "$ref": "SetBlobStorageSettingsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "series": { + "methods": { + "getSeriesMetrics": { + "description": "GetSeriesMetrics returns metrics for a series.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}:getSeriesMetrics", + "httpMethod": "GET", + "id": "healthcare.projects.locations.datasets.dicomStores.dicomWeb.studies.series.getSeriesMetrics", + "parameterOrder": [ + "series" + ], + "parameters": { + "series": { + "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, + "type": "string" + } + }, + "path": "v1beta1/{+series}:getSeriesMetrics", + "response": { + "$ref": "SeriesMetrics" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "instances": { + "methods": { + "getStorageInfo": { + "description": "GetStorageInfo returns the storage info of the specified resource.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}:getStorageInfo", + "httpMethod": "GET", + "id": "healthcare.projects.locations.datasets.dicomStores.dicomWeb.studies.series.instances.getStorageInfo", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "Required. The path of the resource for which the storage info is requested (for exaxmple for a DICOM Instance: `projects/{projectid}/datasets/{datasetid}/dicomStores/{dicomStoreId}/dicomWeb/studies/{study_uid}/series/{series_uid}/instances/{instance_uid}`)", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+/dicomWeb/studies/[^/]+/series/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+resource}:getStorageInfo", + "response": { + "$ref": "StorageInfo" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + } + } + } + }, "studies": { "methods": { "delete": { - "description": "DeleteStudy deletes all instances within the given study using a long running operation. The method returns an Operation which will be marked successful when the deletion is complete. Warning: Instances cannot be inserted into a study that is being deleted by an operation until the operation completes. For samples that show how to call DeleteStudy, see [Deleting a study, series, or instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#deleting_a_study_series_or_instance).", + "description": "DeleteStudy deletes all instances within the given study using a long running operation. The method returns an Operation which will be marked successful when the deletion is complete. Warning: Instances cannot be inserted into a study that is being deleted by an operation until the operation completes. For samples that show how to call DeleteStudy, see [Delete a study, series, or instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#delete-dicom).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}", "httpMethod": "DELETE", "id": "healthcare.projects.locations.datasets.dicomStores.studies.delete", @@ -2549,7 +2906,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, @@ -2567,11 +2924,12 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "retrieveMetadata": { - "description": "RetrieveStudyMetadata returns instance associated with the given study presented as metadata with the bulk data removed. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveStudyMetadata, see [Metadata resources](https://cloud.google.com/healthcare/docs/dicom#metadata_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveStudyMetadata, see [Retrieving metadata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieving_metadata).", + "description": "RetrieveStudyMetadata returns instance associated with the given study presented as metadata with the bulk data removed. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveStudyMetadata, see [Metadata resources](https://cloud.google.com/healthcare/docs/dicom#metadata_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveStudyMetadata, see [Retrieve metadata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-metadata).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/metadata", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.retrieveMetadata", @@ -2581,14 +2939,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, @@ -2600,11 +2958,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "retrieveStudy": { - "description": "RetrieveStudy returns all instances within the given study. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveStudy, see [DICOM study/series/instances](https://cloud.google.com/healthcare/docs/dicom#dicom_studyseriesinstances) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveStudy, see [Retrieving DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieving_dicom_data).", + "description": "RetrieveStudy returns all instances within the given study. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveStudy, see [DICOM study/series/instances](https://cloud.google.com/healthcare/docs/dicom#dicom_studyseriesinstances) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveStudy, see [Retrieve DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-dicom).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.retrieveStudy", @@ -2614,14 +2973,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, @@ -2633,11 +2992,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "searchForInstances": { - "description": "SearchForInstances returns a list of matching instances. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of SearchForInstances, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForInstances, see [Searching for studies, series, instances, and frames](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#searching_for_studies_series_instances_and_frames).", + "description": "SearchForInstances returns a list of matching instances. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of SearchForInstances, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForInstances, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/instances", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.searchForInstances", @@ -2647,14 +3007,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, @@ -2666,11 +3026,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "searchForSeries": { - "description": "SearchForSeries returns a list of matching series. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of SearchForSeries, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForSeries, see [Searching for studies, series, instances, and frames](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#searching_for_studies_series_instances_and_frames).", + "description": "SearchForSeries returns a list of matching series. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of SearchForSeries, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForSeries, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.searchForSeries", @@ -2680,14 +3041,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, @@ -2699,11 +3060,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "storeInstances": { - "description": "StoreInstances stores DICOM instances associated with study instance unique identifiers (SUID). See [Store Transaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.5). For details on the implementation of StoreInstances, see [Store transaction](https://cloud.google.com/healthcare/docs/dicom#store_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call StoreInstances, see [Storing DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#storing_dicom_data).", + "description": "StoreInstances stores DICOM instances associated with study instance unique identifiers (SUID). See [Store Transaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.5). For details on the implementation of StoreInstances, see [Store transaction](https://cloud.google.com/healthcare/docs/dicom#store_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call StoreInstances, see [Store DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#store-dicom).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}", "httpMethod": "POST", "id": "healthcare.projects.locations.datasets.dicomStores.studies.storeInstances", @@ -2713,14 +3075,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, @@ -2735,6 +3097,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -2743,7 +3106,7 @@ "series": { "methods": { "delete": { - "description": "DeleteSeries deletes all instances within the given study and series using a long running operation. The method returns an Operation which will be marked successful when the deletion is complete. Warning: Instances cannot be inserted into a series that is being deleted by an operation until the operation completes. For samples that show how to call DeleteSeries, see [Deleting a study, series, or instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#deleting_a_study_series_or_instance).", + "description": "DeleteSeries deletes all instances within the given study and series using a long running operation. The method returns an Operation which will be marked successful when the deletion is complete. Warning: Instances cannot be inserted into a series that is being deleted by an operation until the operation completes. For samples that show how to call DeleteSeries, see [Delete a study, series, or instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#delete-dicom).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}", "httpMethod": "DELETE", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.delete", @@ -2753,14 +3116,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, @@ -2772,11 +3135,12 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "retrieveMetadata": { - "description": "RetrieveSeriesMetadata returns instance associated with the given study and series, presented as metadata with the bulk data removed. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveSeriesMetadata, see [Metadata resources](https://cloud.google.com/healthcare/docs/dicom#metadata_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveSeriesMetadata, see [Retrieving metadata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieving_metadata).", + "description": "RetrieveSeriesMetadata returns instance associated with the given study and series, presented as metadata with the bulk data removed. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveSeriesMetadata, see [Metadata resources](https://cloud.google.com/healthcare/docs/dicom#metadata_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveSeriesMetadata, see [Retrieve metadata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-metadata).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/metadata", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.retrieveMetadata", @@ -2786,14 +3150,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, @@ -2805,11 +3169,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "retrieveSeries": { - "description": "RetrieveSeries returns all instances within the given study and series. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveSeries, see [DICOM study/series/instances](https://cloud.google.com/healthcare/docs/dicom#dicom_studyseriesinstances) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveSeries, see [Retrieving DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieving_dicom_data).", + "description": "RetrieveSeries returns all instances within the given study and series. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveSeries, see [DICOM study/series/instances](https://cloud.google.com/healthcare/docs/dicom#dicom_studyseriesinstances) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveSeries, see [Retrieve DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-dicom).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.retrieveSeries", @@ -2819,14 +3184,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, @@ -2838,11 +3203,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "searchForInstances": { - "description": "SearchForInstances returns a list of matching instances. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of SearchForInstances, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForInstances, see [Searching for studies, series, instances, and frames](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#searching_for_studies_series_instances_and_frames).", + "description": "SearchForInstances returns a list of matching instances. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of SearchForInstances, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForInstances, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.searchForInstances", @@ -2852,14 +3218,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, @@ -2871,6 +3237,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -2879,7 +3246,7 @@ "instances": { "methods": { "delete": { - "description": "DeleteInstance deletes an instance associated with the given study, series, and SOP Instance UID. Delete requests are equivalent to the GET requests specified in the Retrieve transaction. Study and series search results can take a few seconds to be updated after an instance is deleted using DeleteInstance. For samples that show how to call DeleteInstance, see [Deleting a study, series, or instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#deleting_a_study_series_or_instance).", + "description": "DeleteInstance deletes an instance associated with the given study, series, and SOP Instance UID. Delete requests are equivalent to the GET requests specified in the Retrieve transaction. Study and series search results can take a few seconds to be updated after an instance is deleted using DeleteInstance. For samples that show how to call DeleteInstance, see [Delete a study, series, or instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#delete-dicom).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}", "httpMethod": "DELETE", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.delete", @@ -2889,14 +3256,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, @@ -2908,11 +3275,12 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "retrieveInstance": { - "description": "RetrieveInstance returns instance associated with the given study, series, and SOP Instance UID. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveInstance, see [DICOM study/series/instances](https://cloud.google.com/healthcare/docs/dicom#dicom_studyseriesinstances) and [DICOM instances](https://cloud.google.com/healthcare/docs/dicom#dicom_instances) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveInstance, see [Retrieving an instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieving_an_instance).", + "description": "RetrieveInstance returns instance associated with the given study, series, and SOP Instance UID. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveInstance, see [DICOM study/series/instances](https://cloud.google.com/healthcare/docs/dicom#dicom_studyseriesinstances) and [DICOM instances](https://cloud.google.com/healthcare/docs/dicom#dicom_instances) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveInstance, see [Retrieve an instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-instance).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.retrieveInstance", @@ -2922,14 +3290,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, @@ -2941,11 +3309,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "retrieveMetadata": { - "description": "RetrieveInstanceMetadata returns instance associated with the given study, series, and SOP Instance UID presented as metadata with the bulk data removed. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveInstanceMetadata, see [Metadata resources](https://cloud.google.com/healthcare/docs/dicom#metadata_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveInstanceMetadata, see [Retrieving metadata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieving_metadata).", + "description": "RetrieveInstanceMetadata returns instance associated with the given study, series, and SOP Instance UID presented as metadata with the bulk data removed. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveInstanceMetadata, see [Metadata resources](https://cloud.google.com/healthcare/docs/dicom#metadata_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveInstanceMetadata, see [Retrieve metadata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-metadata).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}/metadata", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.retrieveMetadata", @@ -2955,14 +3324,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, @@ -2974,11 +3343,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "retrieveRendered": { - "description": "RetrieveRenderedInstance returns instance associated with the given study, series, and SOP Instance UID in an acceptable Rendered Media Type. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveRenderedInstance, see [Rendered resources](https://cloud.google.com/healthcare/docs/dicom#rendered_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveRenderedInstance, see [Retrieving consumer image formats](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieving_consumer_image_formats).", + "description": "RetrieveRenderedInstance returns instance associated with the given study, series, and SOP Instance UID in an acceptable Rendered Media Type. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveRenderedInstance, see [Rendered resources](https://cloud.google.com/healthcare/docs/dicom#rendered_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveRenderedInstance, see [Retrieve consumer image formats](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-consumer).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}/rendered", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.retrieveRendered", @@ -2988,14 +3358,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, @@ -3007,15 +3377,54 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } }, "resources": { + "bulkdata": { + "methods": { + "retrieveBulkdata": { + "description": "Returns uncompressed, unencoded bytes representing the referenced bulkdata tag from an instance. See [Retrieve Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4){: .external}. For details on the implementation of RetrieveBulkdata, see [Bulkdata resources](https://cloud.google.com/healthcare/docs/dicom#bulkdata-resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveBulkdata, see [Retrieve bulkdata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-bulkdata).", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}/bulkdata/{bulkdataId}/{bulkdataId1}", + "httpMethod": "GET", + "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.bulkdata.retrieveBulkdata", + "parameterOrder": [ + "parent", + "dicomWebPath" + ], + "parameters": { + "dicomWebPath": { + "description": "Required. The path for the `RetrieveBulkdata` DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/bukdata/{bulkdata_uri}`.", + "location": "path", + "pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+/bulkdata/[^/]+/.*$", + "required": true, + "type": "string" + }, + "parent": { + "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, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", + "response": { + "$ref": "HttpBody" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "frames": { "methods": { "retrieveFrames": { - "description": "RetrieveFrames returns instances associated with the given study, series, SOP Instance UID and frame numbers. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveFrames, see [DICOM frames](https://cloud.google.com/healthcare/docs/dicom#dicom_frames) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveFrames, see [Retrieving DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieving_dicom_data).", + "description": "RetrieveFrames returns instances associated with the given study, series, SOP Instance UID and frame numbers. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveFrames, see [DICOM frames](https://cloud.google.com/healthcare/docs/dicom#dicom_frames) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveFrames, see [Retrieve DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-dicom).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}/frames/{framesId}", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.frames.retrieveFrames", @@ -3025,14 +3434,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, @@ -3044,11 +3453,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "retrieveRendered": { - "description": "RetrieveRenderedFrames returns instances associated with the given study, series, SOP Instance UID and frame numbers in an acceptable Rendered Media Type. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveRenderedFrames, see [Rendered resources](https://cloud.google.com/healthcare/docs/dicom#rendered_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveRenderedFrames, see [Retrieving consumer image formats](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieving_consumer_image_formats).", + "description": "RetrieveRenderedFrames returns instances associated with the given study, series, SOP Instance UID and frame numbers in an acceptable Rendered Media Type. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveRenderedFrames, see [Rendered resources](https://cloud.google.com/healthcare/docs/dicom#rendered_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveRenderedFrames, see [Retrieve consumer image formats](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-consumer).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}/frames/{framesId}/rendered", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.frames.retrieveRendered", @@ -3058,14 +3468,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, @@ -3077,6 +3487,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -3092,6 +3503,64 @@ }, "fhirStores": { "methods": { + "applyAdminConsents": { + "description": "Applies the admin Consent resources for the FHIR store and reindexes the underlying resources in the FHIR store according to the aggregate consents. This method also updates the `consent_config.enforced_admin_consents` field of the FhirStore unless `validate_only=true` in ApplyAdminConsentsRequest. Any admin Consent resource change after this operation execution (including deletion) requires you to call ApplyAdminConsents again for the change to take effect. This method returns an Operation that can be used to track the progress of the resources that were reindexed, by calling GetOperation. Upon completion, the ApplyAdminConsentsResponse additionally contains the number of resources that were reindexed. If at least one Consent resource contains an error or fails be be enforced for any reason, the method returns an error instead of an Operation. No resources will be reindexed and the `consent_config.enforced_admin_consents` field will be unchanged. To enforce a consent check for data access, `consent_config.access_enforced` must be set to true for the FhirStore.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:applyAdminConsents", + "httpMethod": "POST", + "id": "healthcare.projects.locations.datasets.fhirStores.applyAdminConsents", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the FHIR store to enforce, in the format `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": "v1beta1/{+name}:applyAdminConsents", + "request": { + "$ref": "ApplyAdminConsentsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "applyConsents": { + "description": "Apply the Consent resources for the FHIR store and reindex the underlying resources in the FHIR store according to the aggregate consent. The aggregate consent of the patient in scope in this request replaces any previous call of this method. Any Consent resource change after this operation execution (including deletion) requires you to call ApplyConsents again to have effect. This method returns an Operation that can be used to track the progress of the consent resources that were processed by calling GetOperation. Upon completion, the ApplyConsentsResponse additionally contains the number of resources that was reindexed. Errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). To enforce consent check for data access, `consent_config.access_enforced` must be set to true for the FhirStore.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:applyConsents", + "httpMethod": "POST", + "id": "healthcare.projects.locations.datasets.fhirStores.applyConsents", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the FHIR store to enforce, in the format `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": "v1beta1/{+name}:applyConsents", + "request": { + "$ref": "ApplyConsentsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "configureSearch": { "description": "Configure the search parameters for the FHIR store and reindex resources in the FHIR store according to the defined search parameters. The search parameters provided in this request will replace any previous search configuration. The target SearchParameter resources need to exist in the store before calling ConfigureSearch, otherwise an error will occur. This method returns an Operation that can be used to track the progress of the reindexing by calling GetOperation.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:configureSearch", @@ -3102,7 +3571,7 @@ ], "parameters": { "name": { - "description": "The name of the FHIR store to configure, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", + "description": "Required. The name of the FHIR store to configure, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "required": true, @@ -3117,6 +3586,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3130,12 +3600,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, @@ -3150,6 +3620,7 @@ "$ref": "FhirStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3163,7 +3634,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, @@ -3178,6 +3649,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3191,7 +3663,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, @@ -3203,6 +3675,38 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "explainDataAccess": { + "description": "Explains all the permitted/denied actor, purpose and environment for a given resource.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:explainDataAccess", + "httpMethod": "GET", + "id": "healthcare.projects.locations.datasets.fhirStores.explainDataAccess", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the FHIR store to enforce, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", + "required": true, + "type": "string" + }, + "resourceId": { + "description": "Required. The ID (`{resourceType}/{id}`) of the resource to explain data access on.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+name}:explainDataAccess", + "response": { + "$ref": "ExplainDataAccessResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3216,7 +3720,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, @@ -3231,6 +3735,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3244,7 +3749,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, @@ -3256,6 +3761,33 @@ "$ref": "FhirStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getFHIRStoreMetrics": { + "description": "Gets metrics associated with the FHIR store.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:getFHIRStoreMetrics", + "httpMethod": "GET", + "id": "healthcare.projects.locations.datasets.fhirStores.getFHIRStoreMetrics", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the FHIR store to get metrics for.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:getFHIRStoreMetrics", + "response": { + "$ref": "FhirStoreMetrics" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3287,6 +3819,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3300,7 +3833,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, @@ -3315,6 +3848,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3344,7 +3878,7 @@ "type": "string" }, "parent": { - "description": "Name of the dataset.", + "description": "Required. Name of the dataset.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "required": true, @@ -3356,6 +3890,7 @@ "$ref": "ListFhirStoresResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3369,14 +3904,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" @@ -3390,6 +3925,36 @@ "$ref": "FhirStore" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "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": "v1beta1/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": "v1beta1/{+name}:rollback", + "request": { + "$ref": "RollbackFhirResourcesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3418,6 +3983,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3446,6 +4012,7 @@ "$ref": "TestIamPermissionsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -3463,7 +4030,7 @@ ], "parameters": { "code": { - "description": "The code to translate.", + "description": "Required. The code to translate.", "location": "query", "type": "string" }, @@ -3473,7 +4040,7 @@ "type": "string" }, "parent": { - "description": "The name for the FHIR store containing the concept map(s) to use for the translation.", + "description": "Required. The name for the FHIR store containing the concept map(s) to use for the translation.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "required": true, @@ -3485,7 +4052,7 @@ "type": "string" }, "system": { - "description": "The system for the code to be translated.", + "description": "Required. The system for the code to be translated.", "location": "query", "type": "string" }, @@ -3505,6 +4072,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3518,7 +4086,7 @@ ], "parameters": { "code": { - "description": "The code to translate.", + "description": "Required. The code to translate.", "location": "query", "type": "string" }, @@ -3528,14 +4096,14 @@ "type": "string" }, "name": { - "description": "The URL for the concept map to use for the translation.", + "description": "Required. The URL for the concept map to use for the translation.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/ConceptMap/[^/]+$", "required": true, "type": "string" }, "system": { - "description": "The system for the code to be translated.", + "description": "Required. The system for the code to be translated.", "location": "query", "type": "string" } @@ -3545,6 +4113,33 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "Consent-enforcement-status": { + "description": "Returns the consent enforcement status of a single consent resource. On success, the response body contains a JSON-encoded representation of a `Parameters` (http://hl7.org/fhir/parameters.html) FHIR resource, containing the current enforcement status. Does not support DSTU2.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/Consent/{ConsentId}/$consent-enforcement-status", + "httpMethod": "GET", + "id": "healthcare.projects.locations.datasets.fhirStores.fhir.Consent-enforcement-status", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the consent resource to find enforcement status, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{consent_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/Consent/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}/$consent-enforcement-status", + "response": { + "$ref": "HttpBody" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3558,7 +4153,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, @@ -3570,6 +4165,44 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "Patient-consent-enforcement-status": { + "description": "Returns the consent enforcement status of all consent resources for a patient. On success, the response body contains a JSON-encoded representation of a bundle of `Parameters` (http://hl7.org/fhir/parameters.html) FHIR resources, containing the current enforcement status for each consent resource of the patient. Does not support DSTU2.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/Patient/{PatientId}/$consent-enforcement-status", + "httpMethod": "GET", + "id": "healthcare.projects.locations.datasets.fhirStores.fhir.Patient-consent-enforcement-status", + "parameterOrder": [ + "name" + ], + "parameters": { + "_count": { + "description": "Optional. The maximum number of results on a page. If not specified, 100 is used. May not be larger than 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "_page_token": { + "description": "Optional. Used to retrieve the first, previous, next, or last page of consent enforcement statuses when using pagination. Value should be set to the value of `_page_token` set in next or previous page links' URLs. Next and previous page are returned in the response bundle's links field, where `link.relation` is \"previous\" or \"next\". Omit `_page_token` if no previous request has been made.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The name of the patient to find enforcement statuses, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Patient/{patient_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/Patient/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}/$consent-enforcement-status", + "response": { + "$ref": "HttpBody" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3599,7 +4232,7 @@ "type": "string" }, "_type": { - "description": "String of comma-delimited FHIR resource types. If provided, only resources of the specified resource type(s) are returned.", + "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.", "location": "query", "type": "string" }, @@ -3609,7 +4242,7 @@ "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, @@ -3626,6 +4259,59 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "Resource-incoming-references": { + "description": "Lists all the resources that directly refer to the given target FHIR resource. Can also support the case when the target resource doesn't exist, for example, if the target has been deleted. On success, the response body contains a Bundle with type `searchset`, where each entry in the Bundle contains the full content of the resource. If the operation fails, an `OperationOutcome` is returned describing the failure. If the request cannot be mapped to a valid API method on a FHIR store, a generic Google Cloud error might be returned instead.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/$references", + "httpMethod": "GET", + "id": "healthcare.projects.locations.datasets.fhirStores.fhir.Resource-incoming-references", + "parameterOrder": [ + "parent" + ], + "parameters": { + "_count": { + "description": "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" + }, + "_page_token": { + "description": "Used to retrieve the next page of results when using pagination. Set `_page_token` to the value of _page_token set in next page links' url. Next page are returned in the response bundle's links field, where `link.relation` is \"next\". Omit `_page_token` if no previous request has been made.", + "location": "query", + "type": "string" + }, + "_summary": { + "description": "Used to simplify the representation of the returned resources. `_summary=text` returns only the `text`, `id`, and `meta` top-level fields. `_summary=data` removes the `text` field and returns all other fields. `_summary=false` returns all parts of the resource(s). Either not providing this parameter or providing an empty value to this parameter also returns all parts of the resource(s).", + "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. If not provided or an empty value is provided, no filter on the returned resource type(s) is applied.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The name of the FHIR store that holds the target resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", + "required": true, + "type": "string" + }, + "target": { + "description": "Required. The target whose incoming references are requested. This param is required and must not be empty. It uses the format \"ResourceType/ResourceID\", for example, target=ResourceType/ResourceID.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+parent}/fhir/$references", + "response": { + "$ref": "HttpBody" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3639,7 +4325,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, @@ -3651,6 +4337,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3665,19 +4352,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, @@ -3692,6 +4379,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3705,7 +4393,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, @@ -3717,6 +4405,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3731,14 +4420,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, @@ -3750,6 +4439,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3764,14 +4454,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, @@ -3786,6 +4476,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3800,14 +4491,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, @@ -3822,6 +4513,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3836,14 +4528,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](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 create, 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, @@ -3858,6 +4550,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3871,7 +4564,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, @@ -3883,11 +4576,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "executeBundle": { - "description": "Executes all the requests in the given Bundle. Implements the FHIR standard batch/transaction interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#transaction), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#transaction), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#transaction)). Supports all interactions within a bundle, except search. This method accepts Bundles of type `batch` and `transaction`, processing them according to the batch processing rules ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#2.1.0.16.1), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#2.21.0.17.1), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#brules)) and transaction processing rules ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#2.1.0.16.2), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#2.21.0.17.2), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#trules)). The request body must contain a JSON-encoded FHIR `Bundle` resource, and the request headers must contain `Content-Type: application/fhir+json`. For a batch bundle or a successful transaction, the response body contains a JSON-encoded representation of a `Bundle` resource of type `batch-response` or `transaction-response` containing one entry for each entry in the request, with the outcome of processing the entry. In the case of an error for a transaction bundle, the response body contains a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. This method checks permissions for each request in the bundle. The `executeBundle` permission is required to call this method, but you must also grant sufficient permissions to execute the individual requests in the bundle. For example, if the bundle contains a request to create a FHIR resource, the caller must also have been granted the `healthcare.fhirResources.create` permission. You can use audit logs to view the permissions for `executeBundle` and each request in the bundle. For more information, see [Viewing Cloud Audit logs](https://cloud.google.com/healthcare-api/docs/how-tos/audit-logging). For samples that show how to call `executeBundle`, see [Managing FHIR resources using FHIR bundles](https://cloud.google.com/healthcare/docs/how-tos/fhir-bundles).", + "description": "Executes all the requests in the given Bundle. Implements the FHIR standard batch/transaction interaction and history operations. ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#transaction), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#transaction), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#transaction)). Supports all interactions within a bundle, except search. This method accepts Bundles of type `batch`, `transaction` and `history`, processing `batch` and `transaction` bundles according to the batch processing rules ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#2.1.0.16.1), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#2.21.0.17.1), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#brules)) and transaction processing rules ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#2.1.0.16.2), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#2.21.0.17.2), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#trules)). The request body must contain a JSON-encoded FHIR `Bundle` resource, and the request headers must contain `Content-Type: application/fhir+json`. For a batch bundle or a successful transaction, the response body contains a JSON-encoded representation of a `Bundle` resource of type `batch-response` or `transaction-response` containing one entry for each entry in the request, with the outcome of processing the entry. In the case of an error for a `transaction` or `history` bundle, the response body contains a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. This method checks permissions for each request in the bundle. The `executeBundle` permission is required to call this method, but you must also grant sufficient permissions to execute the individual requests in the bundle. For example, if the bundle contains a request to create a FHIR resource, the caller must also have been granted the `healthcare.fhirResources.create` permission. `history` bundles also check the `import` permission. You can use audit logs to view the permissions for `executeBundle` and each request in the bundle. For more information, see [Viewing Cloud Audit logs](https://cloud.google.com/healthcare-api/docs/how-tos/audit-logging). For samples that show how to call `executeBundle`, see [Managing FHIR resources using FHIR bundles](https://cloud.google.com/healthcare/docs/how-tos/fhir-bundles).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir", "httpMethod": "POST", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.executeBundle", @@ -3896,7 +4590,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, @@ -3911,6 +4605,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3945,7 +4640,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, @@ -3957,6 +4652,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3970,7 +4666,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, @@ -3985,6 +4681,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -3998,7 +4695,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, @@ -4010,11 +4707,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "search": { - "description": "Searches for resources in the given FHIR store according to criteria specified as query parameters. Implements the FHIR standard search interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#search), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#search), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#search)) using the search semantics described in the FHIR Search specification ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/search.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/search.html), [R4](https://hl7.org/implement/standards/fhir/R4/search.html)). Supports four methods of search defined by the specification: * `GET [base]?[parameters]` to search across all resources. * `GET [base]/[type]?[parameters]` to search resources of a specified type. * `POST [base]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method across all resources. * `POST [base]/[type]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method for the specified type. The `GET` and `POST` methods do not support compartment searches. The `POST` method does not support `application/x-www-form-urlencoded` search parameters. On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `searchset`, containing the results of the search. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. The server's capability statement, retrieved through capabilities, indicates what search parameters are supported on each FHIR resource. A list of all search parameters defined by the specification can be found in the FHIR Search Parameter Registry ([STU3](https://hl7.org/implement/standards/fhir/STU3/searchparameter-registry.html), [R4](https://hl7.org/implement/standards/fhir/R4/searchparameter-registry.html)). FHIR search parameters for DSTU2 can be found on each resource's definition page. Supported search modifiers: `:missing`, `:exact`, `:contains`, `:text`, `:in`, `:not-in`, `:above`, `:below`, `:[type]`, `:not`, and `recurse` (DSTU2 and STU3) or `:iterate` (R4). Supported search result parameters: `_sort`, `_count`, `_include`, `_revinclude`, `_summary=text`, `_summary=data`, and `_elements`. The maximum number of search results returned defaults to 100, which can be overridden by the `_count` parameter up to a maximum limit of 1000. If there are additional results, the returned `Bundle` contains a link of `relation` \"next\", which has a `_page_token` parameter for an opaque pagination token that can be used to retrieve the next page. Resources with a total size larger than 5MB or a field count larger than 50,000 might not be fully searchable as the server might trim its generated search index in those cases. Note: FHIR resources are indexed asynchronously, so there might be a slight delay between the time a resource is created or changes and when the change is reflected in search results. For samples and detailed information, see [Searching for FHIR resources](https://cloud.google.com/healthcare/docs/how-tos/fhir-search) and [Advanced FHIR search features](https://cloud.google.com/healthcare/docs/how-tos/fhir-advanced-search).", + "description": "Searches for resources in the given FHIR store according to criteria specified as query parameters. Implements the FHIR standard search interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#search), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#search), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#search)) using the search semantics described in the FHIR Search specification ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/search.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/search.html), [R4](https://hl7.org/implement/standards/fhir/R4/search.html)). Supports four methods of search defined by the specification: * `GET [base]?[parameters]` to search across all resources. * `GET [base]/[type]?[parameters]` to search resources of a specified type. * `POST [base]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method across all resources. * `POST [base]/[type]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method for the specified type. The `GET` and `POST` methods do not support compartment searches. The `POST` method does not support `application/x-www-form-urlencoded` search parameters. On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `searchset`, containing the results of the search. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. The server's capability statement, retrieved through capabilities, indicates what search parameters are supported on each FHIR resource. A list of all search parameters defined by the specification can be found in the FHIR Search Parameter Registry ([STU3](https://hl7.org/implement/standards/fhir/STU3/searchparameter-registry.html), [R4](https://hl7.org/implement/standards/fhir/R4/searchparameter-registry.html)). FHIR search parameters for DSTU2 can be found on each resource's definition page. Supported search modifiers: `:missing`, `:exact`, `:contains`, `:text`, `:in`, `:not-in`, `:above`, `:below`, `:[type]`, `:not`, and `recurse` (DSTU2 and STU3) or `:iterate` (R4). Supported search result parameters: `_sort`, `_count`, `_include`, `_revinclude`, `_summary=text`, `_summary=data`, and `_elements`. The maximum number of search results returned defaults to 100, which can be overridden by the `_count` parameter up to a maximum limit of 1000. The server might return fewer resources than requested to prevent excessively large responses. If there are additional results, the returned `Bundle` contains a link of `relation` \"next\", which has a `_page_token` parameter for an opaque pagination token that can be used to retrieve the next page. Resources with a total size larger than 5MB or a field count larger than 50,000 might not be fully searchable as the server might trim its generated search index in those cases. Note: FHIR resources are indexed asynchronously, so there might be a slight delay between the time a resource is created or changed, and the time when the change reflects in search results. The only exception is resource identifier data, which is indexed synchronously as a special index. As a result, searching using resource identifier is not subject to indexing delay. To use the special synchronous index, the search term for identifier should be in the pattern `identifier=[system]|[value]` or `identifier=[value]`, and any of the following search result parameters can be used: * `_count` * `_include` * `_revinclude` * `_summary` * `_elements` If your query contains any other search parameters, the standard asynchronous index will be used instead. Note that searching against the special index is optimized for resolving a small number of matches. The search isn't optimized if your identifier search criteria matches a large number (i.e. more than 2,000) of resources. For a search query that will match a large number of resources, you can avoiding using the special synchronous index by including an additional `_sort` parameter in your query. Use `_sort=-_lastUpdated` if you want to keep the default sorting order. Note: The special synchronous identifier index are currently disabled for DocumentReference and DocumentManifest searches. For samples and detailed information, see [Searching for FHIR resources](https://cloud.google.com/healthcare/docs/how-tos/fhir-search) and [Advanced FHIR search features](https://cloud.google.com/healthcare/docs/how-tos/fhir-advanced-search).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/_search", "httpMethod": "POST", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.search", @@ -4023,7 +4721,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, @@ -4038,11 +4736,12 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, "search-type": { - "description": "Searches for resources in the given FHIR store according to criteria specified as query parameters. Implements the FHIR standard search interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#search), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#search), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#search)) using the search semantics described in the FHIR Search specification ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/search.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/search.html), [R4](https://hl7.org/implement/standards/fhir/R4/search.html)). Supports four methods of search defined by the specification: * `GET [base]?[parameters]` to search across all resources. * `GET [base]/[type]?[parameters]` to search resources of a specified type. * `POST [base]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method across all resources. * `POST [base]/[type]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method for the specified type. The `GET` and `POST` methods do not support compartment searches. The `POST` method does not support `application/x-www-form-urlencoded` search parameters. On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `searchset`, containing the results of the search. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. The server's capability statement, retrieved through capabilities, indicates what search parameters are supported on each FHIR resource. A list of all search parameters defined by the specification can be found in the FHIR Search Parameter Registry ([STU3](https://hl7.org/implement/standards/fhir/STU3/searchparameter-registry.html), [R4](https://hl7.org/implement/standards/fhir/R4/searchparameter-registry.html)). FHIR search parameters for DSTU2 can be found on each resource's definition page. Supported search modifiers: `:missing`, `:exact`, `:contains`, `:text`, `:in`, `:not-in`, `:above`, `:below`, `:[type]`, `:not`, and `recurse` (DSTU2 and STU3) or `:iterate` (R4). Supported search result parameters: `_sort`, `_count`, `_include`, `_revinclude`, `_summary=text`, `_summary=data`, and `_elements`. The maximum number of search results returned defaults to 100, which can be overridden by the `_count` parameter up to a maximum limit of 1000. If there are additional results, the returned `Bundle` contains a link of `relation` \"next\", which has a `_page_token` parameter for an opaque pagination token that can be used to retrieve the next page. Resources with a total size larger than 5MB or a field count larger than 50,000 might not be fully searchable as the server might trim its generated search index in those cases. Note: FHIR resources are indexed asynchronously, so there might be a slight delay between the time a resource is created or changes and when the change is reflected in search results. For samples and detailed information, see [Searching for FHIR resources](https://cloud.google.com/healthcare/docs/how-tos/fhir-search) and [Advanced FHIR search features](https://cloud.google.com/healthcare/docs/how-tos/fhir-advanced-search).", + "description": "Searches for resources in the given FHIR store according to criteria specified as query parameters. Implements the FHIR standard search interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#search), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#search), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#search)) using the search semantics described in the FHIR Search specification ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/search.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/search.html), [R4](https://hl7.org/implement/standards/fhir/R4/search.html)). Supports four methods of search defined by the specification: * `GET [base]?[parameters]` to search across all resources. * `GET [base]/[type]?[parameters]` to search resources of a specified type. * `POST [base]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method across all resources. * `POST [base]/[type]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method for the specified type. The `GET` and `POST` methods do not support compartment searches. The `POST` method does not support `application/x-www-form-urlencoded` search parameters. On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `searchset`, containing the results of the search. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. The server's capability statement, retrieved through capabilities, indicates what search parameters are supported on each FHIR resource. A list of all search parameters defined by the specification can be found in the FHIR Search Parameter Registry ([STU3](https://hl7.org/implement/standards/fhir/STU3/searchparameter-registry.html), [R4](https://hl7.org/implement/standards/fhir/R4/searchparameter-registry.html)). FHIR search parameters for DSTU2 can be found on each resource's definition page. Supported search modifiers: `:missing`, `:exact`, `:contains`, `:text`, `:in`, `:not-in`, `:above`, `:below`, `:[type]`, `:not`, and `recurse` (DSTU2 and STU3) or `:iterate` (R4). Supported search result parameters: `_sort`, `_count`, `_include`, `_revinclude`, `_summary=text`, `_summary=data`, and `_elements`. The maximum number of search results returned defaults to 100, which can be overridden by the `_count` parameter up to a maximum limit of 1000. The server might return fewer resources than requested to prevent excessively large responses. If there are additional results, the returned `Bundle` contains a link of `relation` \"next\", which has a `_page_token` parameter for an opaque pagination token that can be used to retrieve the next page. Resources with a total size larger than 5MB or a field count larger than 50,000 might not be fully searchable as the server might trim its generated search index in those cases. Note: FHIR resources are indexed asynchronously, so there might be a slight delay between the time a resource is created or changed, and the time when the change reflects in search results. The only exception is resource identifier data, which is indexed synchronously as a special index. As a result, searching using resource identifier is not subject to indexing delay. To use the special synchronous index, the search term for identifier should be in the pattern `identifier=[system]|[value]` or `identifier=[value]`, and any of the following search result parameters can be used: * `_count` * `_include` * `_revinclude` * `_summary` * `_elements` If your query contains any other search parameters, the standard asynchronous index will be used instead. Note that searching against the special index is optimized for resolving a small number of matches. The search isn't optimized if your identifier search criteria matches a large number (i.e. more than 2,000) of resources. For a search query that will match a large number of resources, you can avoiding using the special synchronous index by including an additional `_sort` parameter in your query. Use `_sort=-_lastUpdated` if you want to keep the default sorting order. Note: The special synchronous identifier index are currently disabled for DocumentReference and DocumentManifest searches. For samples and detailed information, see [Searching for FHIR resources](https://cloud.google.com/healthcare/docs/how-tos/fhir-search) and [Advanced FHIR search features](https://cloud.google.com/healthcare/docs/how-tos/fhir-advanced-search).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{resourceType}/_search", "httpMethod": "POST", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.search-type", @@ -4052,14 +4751,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](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 search, 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", "required": true, "type": "string" @@ -4073,6 +4772,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -4086,7 +4786,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, @@ -4101,6 +4801,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -4114,7 +4815,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, @@ -4126,6 +4827,7 @@ "$ref": "HttpBody" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -4145,12 +4847,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, @@ -4165,6 +4867,7 @@ "$ref": "Hl7V2Store" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -4178,7 +4881,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, @@ -4190,6 +4893,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -4203,7 +4907,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, @@ -4218,6 +4922,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -4231,7 +4936,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, @@ -4243,6 +4948,33 @@ "$ref": "Hl7V2Store" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getHL7v2StoreMetrics": { + "description": "Gets metrics associated with the HL7v2 store.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}:getHL7v2StoreMetrics", + "httpMethod": "GET", + "id": "healthcare.projects.locations.datasets.hl7V2Stores.getHL7v2StoreMetrics", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "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, + "type": "string" + } + }, + "path": "v1beta1/{+name}:getHL7v2StoreMetrics", + "response": { + "$ref": "Hl7V2StoreMetrics" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -4274,6 +5006,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -4287,7 +5020,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, @@ -4302,6 +5035,7 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -4331,7 +5065,7 @@ "type": "string" }, "parent": { - "description": "Name of the dataset.", + "description": "Required. Name of the dataset.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "required": true, @@ -4343,6 +5077,7 @@ "$ref": "ListHl7V2StoresResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -4356,14 +5091,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" @@ -4377,6 +5112,7 @@ "$ref": "Hl7V2Store" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -4405,6 +5141,7 @@ "$ref": "Policy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -4433,6 +5170,7 @@ "$ref": "TestIamPermissionsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -4456,7 +5194,7 @@ "type": "string" }, "parent": { - "description": "Name of the HL7v2 store to retrieve messages from, in the format: `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7v2Stores/{hl7v2_store_id}`.", + "description": "Required. Name of the HL7v2 store to retrieve messages from, 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, @@ -4489,6 +5227,7 @@ "$ref": "BatchGetMessagesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -4502,7 +5241,7 @@ ], "parameters": { "parent": { - "description": "The name of the dataset 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, @@ -4517,6 +5256,7 @@ "$ref": "Message" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -4530,7 +5270,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, @@ -4542,6 +5282,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -4555,7 +5296,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, @@ -4588,6 +5329,7 @@ "$ref": "Message" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -4601,7 +5343,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, @@ -4616,6 +5358,7 @@ "$ref": "IngestMessageResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -4650,7 +5393,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, @@ -4683,6 +5426,7 @@ "$ref": "ListMessagesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -4696,14 +5440,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" @@ -4717,6 +5461,7 @@ "$ref": "Message" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -4751,6 +5496,7 @@ "$ref": "Empty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] }, @@ -4776,11 +5522,12 @@ "$ref": "Operation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "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`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/operations", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.operations.list", @@ -4817,6 +5564,7 @@ "$ref": "ListOperationsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -4853,6 +5601,7 @@ "$ref": "AnalyzeEntitiesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ] } @@ -4865,9 +5614,32 @@ } } }, - "revision": "20221220", + "revision": "20240228", "rootUrl": "https://healthcare.googleapis.com/", "schemas": { + "AccessDeterminationLogConfig": { + "description": "Configures consent audit log config for FHIR create, read, update, and delete (CRUD) operations. Cloud audit log for healthcare API must be [enabled](https://cloud.google.com/logging/docs/audit/configure-data-access#config-console-enable). The consent-related logs are included as part of `protoPayload.metadata`.", + "id": "AccessDeterminationLogConfig", + "properties": { + "logLevel": { + "description": "Optional. Controls the amount of detail to include as part of the audit logs.", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "DISABLED", + "MINIMUM", + "VERBOSE" + ], + "enumDescriptions": [ + "No log level specified. This value is unused.", + "No additional consent-related logging is added to audit logs.", + "The following information is included: * One of the following [`consentMode`](https://cloud.google.com/healthcare-api/docs/fhir-consent#audit_logs) fields: (`off`|`emptyScope`|`enforced`|`btg`|`bypass`). * The accessor's request headers * The `log_level` of the [AccessDeterminationLogConfig](https://cloud.google.com/healthcare-api/docs/reference/rest/v1beta1/projects.locations.datasets.fhirStores#AccessDeterminationLogConfig) * The final consent evaluation (`PERMIT`, `DENY`, or `NO_CONSENT`) * A human-readable summary of the evaluation", + "Includes `MINIMUM` and, for each resource owner, returns: * The resource owner's name * Most specific part of the `X-Consent-Scope` resulting in consensual determination * Timestamp of the applied enforcement leading to the decision * Enforcement version at the time the applicable consents were applied * The Consent resource name * The timestamp of the Consent resource used for enforcement * Policy type (`PATIENT` or `ADMIN`) Note that this mode adds some overhead to CRUD operations." + ], + "type": "string" + } + }, + "type": "object" + }, "Action": { "description": "Specifies a selection of tags and an `Action` to apply to each one.", "id": "Action", @@ -4935,10 +5707,36 @@ }, "type": "object" }, + "AdminConsents": { + "description": "List of admin Consent resources to be applied.", + "id": "AdminConsents", + "properties": { + "names": { + "description": "The versioned names of the admin Consent resource(s), in the format `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{resource_id}/_history/{version_id}`. For FHIR stores with `disable_resource_versioning=true`, the format is `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{resource_id}`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AnalyzeEntitiesRequest": { "description": "The request to analyze healthcare entities in a document.", "id": "AnalyzeEntitiesRequest", "properties": { + "alternativeOutputFormat": { + "description": "Optional. Alternative output format to be generated based on the results of analysis.", + "enum": [ + "ALTERNATIVE_OUTPUT_FORMAT_UNSPECIFIED", + "FHIR_BUNDLE" + ], + "enumDescriptions": [ + "No alternative output format is specified.", + "FHIR bundle output." + ], + "type": "string" + }, "documentContent": { "description": "document_content is a document to be annotated.", "type": "string" @@ -4975,12 +5773,16 @@ "type": "array" }, "entityMentions": { - "description": "entity_mentions contains all the annotated medical entities that were mentioned in the provided document.", + "description": "The `entity_mentions` field contains all the annotated medical entities that were mentioned in the provided document.", "items": { "$ref": "EntityMention" }, "type": "array" }, + "fhirBundle": { + "description": "The FHIR bundle ([`R4`](http://hl7.org/fhir/R4/bundle.html)) that includes all the entities, the entity mentions, and the relationships in JSON format.", + "type": "string" + }, "relationships": { "description": "relationships contains all the binary relationships that were identified between entity mentions within the provided document.", "items": { @@ -4997,7 +5799,7 @@ "properties": { "annotationSource": { "$ref": "AnnotationSource", - "description": "Details of the source." + "description": "Required. Details of the source." }, "customData": { "additionalProperties": { @@ -5011,7 +5813,7 @@ "description": "Annotations for images. For example, bounding polygons." }, "name": { - "description": "Resource name of the Annotation, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}/annotations/{annotation_id}`.", + "description": "Identifier. Resource name of the Annotation, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}/annotations/{annotation_id}`.", "type": "string" }, "resourceAnnotation": { @@ -5063,7 +5865,90 @@ "type": "object" }, "name": { - "description": "Resource name of the Annotation store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.", + "description": "Identifier. Resource name of the Annotation store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.", + "type": "string" + } + }, + "type": "object" + }, + "ApplyAdminConsentsRequest": { + "description": "Request to apply the admin Consent resources for the specified FHIR store.", + "id": "ApplyAdminConsentsRequest", + "properties": { + "newConsentsList": { + "$ref": "AdminConsents", + "description": "A new list of admin Consent resources to be applied. Any existing enforced Consents, which are specified in `consent_config.enforced_admin_consents` of the FhirStore, that are not part of this list will be disabled. An empty list is equivalent to clearing or disabling all Consents enforced on the FHIR store. When a FHIR store has `disable_resource_versioning=true` and this list contains a Consent resource that exists in `consent_config.enforced_admin_consents`, the method enforces any updates to the existing resource since the last enforcement. If the existing resource hasn't been updated since the last enforcement, the resource is unaffected. After the method finishes, the resulting consent enforcement model is determined by the contents of the Consent resource(s) when the method was called: * When `disable_resource_versioning=true`, the result is identical to the current resource(s) in the FHIR store. * When `disable_resource_versioning=false`, the result is based on the historical version(s) of the Consent resource(s) at the point in time when the method was called. At most 200 Consents can be specified." + }, + "validateOnly": { + "description": "If true, the method only validates Consent resources to make sure they are supported. Otherwise, the method applies the aggregate consent information to update the enforcement model and reindex the FHIR resources. If all Consent resources can be applied successfully, the ApplyAdminConsentsResponse is returned containing the following fields: * `consent_apply_success` to indicate the number of Consent resources applied. * `affected_resources` to indicate the number of resources that might have had their consent access changed. If, however, one or more Consent resources are unsupported or cannot be applied, the method fails and ApplyAdminConsentsErrorDetail is is returned with details about the unsupported Consent resources.", + "type": "boolean" + } + }, + "type": "object" + }, + "ApplyAdminConsentsResponse": { + "description": "Response when all admin Consent resources in scope were processed and all affected resources were reindexed successfully. This structure will be included in the response when the operation finishes successfully.", + "id": "ApplyAdminConsentsResponse", + "properties": { + "affectedResources": { + "description": "The number of resources (including the Consent resources) that may have consent access change.", + "format": "int64", + "type": "string" + }, + "consentApplySuccess": { + "description": "If `validate_only=false` in ApplyAdminConsentsRequest, this counter contains the number of Consent resources that were successfully applied. Otherwise, it is the number of Consent resources that are supported.", + "format": "int64", + "type": "string" + }, + "failedResources": { + "description": "The number of resources (including the Consent resources) that ApplyAdminConsents failed to re-index.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "ApplyConsentsRequest": { + "description": "Request to apply the Consent resources for the specified FHIR store.", + "id": "ApplyConsentsRequest", + "properties": { + "patientScope": { + "$ref": "PatientScope", + "description": "Optional. Scope down to a list of patients." + }, + "timeRange": { + "$ref": "TimeRange", + "description": "Optional. Scope down to patients whose most recent consent changes are in the time range. Can only be used with a versioning store (i.e. when disable_resource_versioning is set to false)." + }, + "validateOnly": { + "description": "Optional. If true, the method only validates Consent resources to make sure they are supported. When the operation completes, ApplyConsentsResponse is returned where `consent_apply_success` and `consent_apply_failure` indicate supported and unsupported (or invalid) Consent resources, respectively. Otherwise, the method propagates the aggregate consensual information to the patient's resources. Upon success, `affected_resources` in the ApplyConsentsResponse indicates the number of resources that may have consensual access changed.", + "type": "boolean" + } + }, + "type": "object" + }, + "ApplyConsentsResponse": { + "description": "Response when all Consent resources in scope were processed and all affected resources were reindexed successfully. This structure is included in the response when the operation finishes successfully.", + "id": "ApplyConsentsResponse", + "properties": { + "affectedResources": { + "description": "The number of resources (including the Consent resources) that may have consensual access change.", + "format": "int64", + "type": "string" + }, + "consentApplyFailure": { + "description": "If `validate_only = false` in ApplyConsentsRequest, this counter is the number of Consent resources that were failed to apply. Otherwise, it is the number of Consent resources that are not supported or invalid.", + "format": "int64", + "type": "string" + }, + "consentApplySuccess": { + "description": "If `validate_only = false` in ApplyConsentsRequest, this counter is the number of Consent resources that were successfully applied. Otherwise, it is the number of Consent resources that are supported.", + "format": "int64", + "type": "string" + }, + "failedResources": { + "description": "The number of resources (including the Consent resources) that ApplyConsents failed to re-index.", + "format": "int64", "type": "string" } }, @@ -5140,7 +6025,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" } }, @@ -5217,14 +6102,74 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" + }, + "BlobStorageInfo": { + "description": "BlobStorageInfo contains details about the data stored in Blob Storage for the referenced resource. Note: Storage class is only valid for DICOM and hence will only be populated for DICOM resources.", + "id": "BlobStorageInfo", + "properties": { + "sizeBytes": { + "description": "Size in bytes of data stored in Blob Storage.", + "format": "int64", + "type": "string" + }, + "storageClass": { + "description": "The storage class in which the Blob data is stored.", + "enum": [ + "BLOB_STORAGE_CLASS_UNSPECIFIED", + "STANDARD", + "NEARLINE", + "COLDLINE", + "ARCHIVE" + ], + "enumDescriptions": [ + "If unspecified in CreateDataset, the StorageClass defaults to STANDARD. If unspecified in UpdateDataset and the StorageClass is set in the field mask, an InvalidRequest error is thrown.", + "This stores the Object in Blob Standard Storage: https://cloud.google.com/storage/docs/storage-classes#standard", + "This stores the Object in Blob Nearline Storage: https://cloud.google.com/storage/docs/storage-classes#nearline", + "This stores the Object in Blob Coldline Storage: https://cloud.google.com/storage/docs/storage-classes#coldline", + "This stores the Object in Blob Archive Storage: https://cloud.google.com/storage/docs/storage-classes#archive" + ], + "type": "string" + }, + "storageClassUpdateTime": { + "description": "The time at which the storage class was updated. This is used to compute early deletion fees of the resource.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "BlobStorageSettings": { + "description": "Settings for data stored in Blob storage.", + "id": "BlobStorageSettings", + "properties": { + "blobStorageClass": { + "description": "The Storage class in which the Blob data is stored.", + "enum": [ + "BLOB_STORAGE_CLASS_UNSPECIFIED", + "STANDARD", + "NEARLINE", + "COLDLINE", + "ARCHIVE" + ], + "enumDescriptions": [ + "If unspecified in CreateDataset, the StorageClass defaults to STANDARD. If unspecified in UpdateDataset and the StorageClass is set in the field mask, an InvalidRequest error is thrown.", + "This stores the Object in Blob Standard Storage: https://cloud.google.com/storage/docs/storage-classes#standard", + "This stores the Object in Blob Nearline Storage: https://cloud.google.com/storage/docs/storage-classes#nearline", + "This stores the Object in Blob Coldline Storage: https://cloud.google.com/storage/docs/storage-classes#coldline", + "This stores the Object in Blob Archive Storage: https://cloud.google.com/storage/docs/storage-classes#archive" + ], "type": "string" } }, @@ -5266,7 +6211,7 @@ "type": "object" }, "CharacterMaskField": { - "description": "Replace field value with masking character. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml", + "description": "Replace field value with masking character. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml.", "id": "CharacterMaskField", "properties": {}, "type": "object" @@ -5326,19 +6271,19 @@ "type": "object" }, "CleanDescriptorsOption": { - "description": "This option is based on the DICOM Standard's [Clean Descriptors Option](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part15/sect_E.3.5.html), and the `CleanText` `Action` is applied to all the specified fields. When cleaning text, the process attempts to transform phrases matching any of the tags marked for removal (action codes D, Z, X, and U) in the [Basic Profile](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part15/chapter_E.html). These contextual phrases are replaced with the token \"[CTX]\". This option uses an additional `InfoType` during inspection.", + "description": "This option is based on the DICOM Standard's [Clean Descriptors Option](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part15/sect_E.3.5.html), and the `CleanText` `Action` is applied to all the specified fields. When cleaning text, the process attempts to transform phrases matching any of the tags marked for removal (action codes D, Z, X, and U) in the [Basic Profile](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part15/chapter_E.html). These contextual phrases are replaced with the token \"[CTX]\". This option uses an additional infoType during inspection.", "id": "CleanDescriptorsOption", "properties": {}, "type": "object" }, "CleanTextField": { - "description": "Inspect text and transform sensitive text. Configure using `TextConfig`. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Date, DateTime, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml", + "description": "Inspect text and transform sensitive text. Configure using TextConfig. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Date, DateTime, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml.", "id": "CleanTextField", "properties": {}, "type": "object" }, "CleanTextTag": { - "description": "Inspect text and transform sensitive text. Configurable using `TextConfig`. Supported [Value Representations] (http://dicom.nema.org/medical/dicom/2018e/output/chtml/part05/sect_6.2.html#table_6.2-1): AE, LO, LT, PN, SH, ST, UC, UT, DA, DT, AS", + "description": "Inspect text and transform sensitive text. Configurable using TextConfig. Supported [Value Representations] (http://dicom.nema.org/medical/dicom/2018e/output/chtml/part05/sect_6.2.html#table_6.2-1): AE, LO, LT, PN, SH, ST, UC, UT, DA, DT, AS", "id": "CleanTextTag", "properties": {}, "type": "object" @@ -5393,7 +6338,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": { @@ -5446,6 +6391,25 @@ }, "type": "object" }, + "ConsentAccessorScope": { + "description": "The accessor scope that describes who can access, for what purpose, in which environment.", + "id": "ConsentAccessorScope", + "properties": { + "actor": { + "description": "An individual, group, or access role that identifies the accessor or a characteristic of the accessor. This can be a resource ID (such as `{resourceType}/{id}`) or an external URI. This value must be present.", + "type": "string" + }, + "environment": { + "description": "An abstract identifier that describes the environment or conditions under which the accessor is acting. Can be \u201c*\u201d if it applies to all environments.", + "type": "string" + }, + "purpose": { + "description": "The intent of data use. Can be \u201c*\u201d if it applies to all purposes.", + "type": "string" + } + }, + "type": "object" + }, "ConsentArtifact": { "description": "Documentation of a user's consent.", "id": "ConsentArtifact", @@ -5473,7 +6437,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": { @@ -5491,6 +6455,44 @@ }, "type": "object" }, + "ConsentConfig": { + "description": "Configures whether to enforce consent for the FHIR store and which consent enforcement version is being used.", + "id": "ConsentConfig", + "properties": { + "accessDeterminationLogConfig": { + "$ref": "AccessDeterminationLogConfig", + "description": "Optional. Specifies how the server logs the consent-aware requests. If not specified, the `AccessDeterminationLogConfig.LogLevel.MINIMUM` option is used." + }, + "accessEnforced": { + "description": "Optional. If set to true, when accessing FHIR resources, the consent headers will be verified against consents given by patients. See the ConsentEnforcementVersion for the supported consent headers.", + "type": "boolean" + }, + "consentHeaderHandling": { + "$ref": "ConsentHeaderHandling", + "description": "Optional. Different options to configure the behaviour of the server when handling the `X-Consent-Scope` header." + }, + "enforcedAdminConsents": { + "description": "The versioned names of the enforced admin Consent resource(s), in the format `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{resource_id}/_history/{version_id}`. For FHIR stores with `disable_resource_versioning=true`, the format is `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{resource_id}`. This field can only be updated using ApplyAdminConsents.", + "items": { + "type": "string" + }, + "type": "array" + }, + "version": { + "description": "Required. Specifies which consent enforcement version is being used for this FHIR store. This field can only be set once by either CreateFhirStore or UpdateFhirStore. After that, you must call ApplyConsents to change the version.", + "enum": [ + "CONSENT_ENFORCEMENT_VERSION_UNSPECIFIED", + "V1" + ], + "enumDescriptions": [ + "Users must specify an enforcement version or an error is returned.", + "Enforcement version 1. See the [FHIR Consent resources in the Cloud Healthcare API](https://cloud.google.com/healthcare-api/docs/fhir-consent) guide for more details." + ], + "type": "string" + } + }, + "type": "object" + }, "ConsentEvaluation": { "description": "The detailed evaluation of a particular Consent.", "id": "ConsentEvaluation", @@ -5516,6 +6518,27 @@ }, "type": "object" }, + "ConsentHeaderHandling": { + "description": "How the server handles the consent header.", + "id": "ConsentHeaderHandling", + "properties": { + "profile": { + "description": "Optional. Specifies the default server behavior when the header is empty. If not specified, the `ScopeProfile.PERMIT_EMPTY_SCOPE` option is used.", + "enum": [ + "SCOPE_PROFILE_UNSPECIFIED", + "PERMIT_EMPTY_SCOPE", + "REQUIRED_ON_READ" + ], + "enumDescriptions": [ + "If not specified, the default value `PERMIT_EMPTY_SCOPE` is used.", + "When no consent scopes are provided (for example, if there's an empty or missing header), then consent check is disabled, similar to when `access_enforced` is `false`. You can use audit logs to differentiate these two cases by looking at the value of `protopayload.metadata.consentMode`. If consents scopes are present, they must be valid and within the allowed limits, otherwise the request will be rejected with a `4xx` code.", + "The consent header must be non-empty when performing read and search operations, otherwise the request is rejected with a `4xx` code. Additionally, invalid consent scopes or scopes exceeding the allowed limits are rejected." + ], + "type": "string" + } + }, + "type": "object" + }, "ConsentList": { "description": "List of resource names of Consent resources.", "id": "ConsentList", @@ -5558,7 +6581,7 @@ "type": "object" }, "ContextualDeidConfig": { - "description": "The fields that aren't marked `Keep` or `CleanText` in the `BASIC` profile are collected into a contextual phrase list. For fields marked `CleanText`, the process attempts to transform phrases matching these contextual entries. These contextual phrases are replaced with the token \"[CTX]\". This feature uses an additional InfoType during inspection.", + "description": "Fields that don't match a KeepField or CleanTextField `action` in the BASIC profile are collected into a contextual phrase list. For fields that match a CleanTextField `action` in FieldMetadata or ProfileType, the process attempts to transform phrases matching these contextual entries. These contextual phrases are replaced with the token \"[CTX]\". This feature uses an additional InfoType during inspection.", "id": "ContextualDeidConfig", "properties": {}, "type": "object" @@ -5569,7 +6592,7 @@ "properties": { "message": { "$ref": "Message", - "description": "HL7v2 message." + "description": "Required. HL7v2 message." } }, "type": "object" @@ -5579,19 +6602,19 @@ "id": "CryptoHashConfig", "properties": { "cryptoKey": { - "description": "An AES 128/192/256 bit key. Causes the hash to be computed based on this key. A default key is generated for each Deidentify operation and is used when neither `crypto_key` nor `kms_wrapped` is specified. Must not be set if `kms_wrapped` is set.", + "description": "An AES 128/192/256 bit key. Causes the hash to be computed based on this key. A default key is generated for each Deidentify operation and is used when neither crypto_key nor kms_wrapped is specified. Must not be set if kms_wrapped is set.", "format": "byte", "type": "string" }, "kmsWrapped": { "$ref": "KmsWrappedCryptoKey", - "description": "KMS wrapped key. Must not be set if `crypto_key` is set." + "description": "KMS wrapped key. Must not be set if crypto_key is set." } }, "type": "object" }, "CryptoHashField": { - "description": "Replace field value with a hash of that value. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml", + "description": "Replace field value with a hash of that value. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml.", "id": "CryptoHashField", "properties": {}, "type": "object" @@ -5601,7 +6624,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": { @@ -5616,19 +6639,19 @@ "id": "DateShiftConfig", "properties": { "cryptoKey": { - "description": "An AES 128/192/256 bit key. The date shift is computed based on this key and the patient ID. If the patient ID is empty for a DICOM resource, the date shift is computed based on this key and the study instance UID. If `crypto_key` is not set, then `kms_wrapped` is used to calculate the date shift. If neither is set, a default key is generated for each de-identify operation. Must not be set if `kms_wrapped` is set.", + "description": "An AES 128/192/256 bit key. The date shift is computed based on this key and the patient ID. If the patient ID is empty for a DICOM resource, the date shift is computed based on this key and the study instance UID. If crypto_key is not set, then kms_wrapped is used to calculate the date shift. If neither is set, a default key is generated for each de-identify operation. Must not be set if kms_wrapped is set.", "format": "byte", "type": "string" }, "kmsWrapped": { "$ref": "KmsWrappedCryptoKey", - "description": "KMS wrapped key. If `kms_wrapped` is not set, then `crypto_key` is used to calculate the date shift. If neither is set, a default key is generated for each de-identify operation. Must not be set if `crypto_key` is set." + "description": "KMS wrapped key. If kms_wrapped is not set, then crypto_key is used to calculate the date shift. If neither is set, a default key is generated for each de-identify operation. Must not be set if crypto_key is set." } }, "type": "object" }, "DateShiftField": { - "description": "Shift the date by a randomized number of days. See [date shifting](https://cloud.google.com/dlp/docs/concepts-date-shifting) for more information. Supported [types](https://www.hl7.org/fhir/datatypes.html): Date, DateTime", + "description": "Shift the date by a randomized number of days. See [date shifting](https://cloud.google.com/dlp/docs/concepts-date-shifting) for more information. Supported [types](https://www.hl7.org/fhir/datatypes.html): Date, DateTime.", "id": "DateShiftField", "properties": {}, "type": "object" @@ -5658,6 +6681,7 @@ }, "dicom": { "$ref": "DicomConfig", + "deprecated": true, "description": "Configures de-id of application/DICOM content. Deprecated. Use `dicom_tag_config` instead." }, "dicomTagConfig": { @@ -5666,6 +6690,7 @@ }, "fhir": { "$ref": "FhirConfig", + "deprecated": true, "description": "Configures de-id of application/FHIR content. Deprecated. Use `fhir_field_config` instead." }, "fhirFieldConfig": { @@ -5674,6 +6699,7 @@ }, "image": { "$ref": "ImageConfig", + "deprecated": true, "description": "Configures the de-identification of image pixels in the source_dataset. Deprecated. Use `dicom_tag_config.options.clean_image` instead." }, "operationMetadata": { @@ -5683,6 +6709,10 @@ "text": { "$ref": "TextConfig", "description": "Configures de-identification of text wherever it is found in the source_dataset." + }, + "useRegionalDataProcessing": { + "description": "Ensures in-flight data remains in the region of origin during de-identification. Using this option results in a significant reduction of throughput, and is not compatible with `LOCATION` or `ORGANIZATION_NAME` infoTypes. If the deprecated DicomConfig or FhirConfig are used, then `LOCATION` must be excluded within TextConfig, and must also be excluded within ImageConfig if image redaction is required.", + "type": "boolean" } }, "type": "object" @@ -5696,7 +6726,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": { @@ -5715,7 +6745,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": { @@ -5738,7 +6768,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": { @@ -5852,7 +6882,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": { @@ -5860,7 +6890,7 @@ "description": "Notification destination for new DICOM instances. Supplied by the client." }, "streamConfigs": { - "description": "A list of streaming configs used to configure the destination of streaming exports for every DICOM instance insertion in this DICOM store. After a new config is added to `stream_configs`, DICOM instance insertions are streamed to the new destination. When a config is removed from `stream_configs`, the server stops streaming to that destination. Each config must contain a unique destination.", + "description": "Optional. A list of streaming configs used to configure the destination of streaming exports for every DICOM instance insertion in this DICOM store. After a new config is added to `stream_configs`, DICOM instance insertions are streamed to the new destination. When a config is removed from `stream_configs`, the server stops streaming to that destination. Each config must contain a unique destination.", "items": { "$ref": "GoogleCloudHealthcareV1beta1DicomStreamConfig" }, @@ -5869,6 +6899,42 @@ }, "type": "object" }, + "DicomStoreMetrics": { + "description": "DicomStoreMetrics contains metrics describing a DICOM store.", + "id": "DicomStoreMetrics", + "properties": { + "blobStorageSizeBytes": { + "description": "Total blob storage bytes for all instances in the store.", + "format": "int64", + "type": "string" + }, + "instanceCount": { + "description": "Number of instances in the store.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Resource name of the DICOM store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "type": "string" + }, + "seriesCount": { + "description": "Number of series in the store.", + "format": "int64", + "type": "string" + }, + "structuredStorageSizeBytes": { + "description": "Total structured storage bytes for all instances in the store.", + "format": "int64", + "type": "string" + }, + "studyCount": { + "description": "Number of studies in the store.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "DicomTagConfig": { "description": "Specifies the parameters needed for the de-identification of DICOM stores.", "id": "DicomTagConfig", @@ -5937,6 +7003,13 @@ "description": "An entity mention in the document.", "id": "EntityMention", "properties": { + "additionalInfo": { + "description": "Additional information about the entity mention. For example, for an entity mention of type `DATE` this can be its more specific date types from the following list: `ADMISSION_DATE`, `CONSULTATION_DATE`, `DISCHARGE_DATE`, `SERVICE_DATE`, `VISIT_DATE`, `DIAGNOSIS_DATE`, `MED_STARTED_DATE`, `MED_ENDED_DATE`, `NOTE_DATE`, `PROCEDURE_DATE`, `RADIATION_STARTED_DATE`, `RADIATION_ENDED_DATE`, `STAGE_DATE`", + "items": { + "$ref": "Feature" + }, + "type": "array" + }, "certaintyAssessment": { "$ref": "Feature", "description": "The certainty assessment of the entity mention. Its value is one of: LIKELY, SOMEWHAT_LIKELY, UNCERTAIN, SOMEWHAT_UNLIKELY, UNLIKELY, CONDITIONAL" @@ -6019,7 +7092,7 @@ "type": "object" }, "goldenStore": { - "description": "The Annotation store to use as ground truth, in the format of `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.", + "description": "Required. The Annotation store to use as ground truth, in the format of `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.", "type": "string" }, "infoTypeConfig": { @@ -6103,6 +7176,128 @@ }, "type": "object" }, + "ExplainDataAccessConsentInfo": { + "description": "The enforcing consent's metadata.", + "id": "ExplainDataAccessConsentInfo", + "properties": { + "cascadeOrigins": { + "description": "The compartment base resources that matched a cascading policy. Each resource has the following format: `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/{resource_type}/{resource_id}`", + "items": { + "type": "string" + }, + "type": "array" + }, + "consentResource": { + "description": "The resource name of this consent resource. Format: `projects/{projectId}/datasets/{datasetId}/fhirStores/{fhirStoreId}/fhir/{resourceType}/{id}`.", + "type": "string" + }, + "enforcementTime": { + "description": "Last enforcement timestamp of this consent resource.", + "format": "google-datetime", + "type": "string" + }, + "matchingAccessorScopes": { + "description": "A list of all the matching accessor scopes of this consent policy that enforced ExplainDataAccessConsentScope.accessor_scope.", + "items": { + "$ref": "ConsentAccessorScope" + }, + "type": "array" + }, + "patientConsentOwner": { + "description": "The patient owning the consent (only applicable for patient consents), in the format: `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Patient/{patient_id}`", + "type": "string" + }, + "type": { + "description": "The policy type of consent resource (e.g. PATIENT, ADMIN).", + "enum": [ + "CONSENT_POLICY_TYPE_UNSPECIFIED", + "CONSENT_POLICY_TYPE_PATIENT", + "CONSENT_POLICY_TYPE_ADMIN" + ], + "enumDescriptions": [ + "Unspecified policy type.", + "Consent represent a patient consent.", + "Consent represent an admin consent." + ], + "type": "string" + }, + "variants": { + "description": "The consent's variant combinations. A single consent may have multiple variants.", + "items": { + "enum": [ + "VARIANT_UNSPECIFIED", + "VARIANT_STANDARD", + "VARIANT_CASCADE" + ], + "enumDescriptions": [ + "Consent variant unspecified.", + "Consent is a standard patient or admin consent.", + "Consent is a cascading consent." + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ExplainDataAccessConsentScope": { + "description": "A single consent scope that provides info on who has access to the requested resource scope for a particular purpose and environment, enforced by which consent.", + "id": "ExplainDataAccessConsentScope", + "properties": { + "accessorScope": { + "$ref": "ConsentAccessorScope", + "description": "The accessor scope that describes who can access, for what purpose, and in which environment." + }, + "decision": { + "description": "Whether the current consent scope is permitted or denied access on the requested resource.", + "enum": [ + "CONSENT_DECISION_TYPE_UNSPECIFIED", + "CONSENT_DECISION_TYPE_PERMIT", + "CONSENT_DECISION_TYPE_DENY" + ], + "enumDescriptions": [ + "Unspecified consent decision type.", + "Consent permitted access.", + "Consent denied access." + ], + "type": "string" + }, + "enforcingConsents": { + "description": "Metadata of the consent resources that enforce the consent scope's access.", + "items": { + "$ref": "ExplainDataAccessConsentInfo" + }, + "type": "array" + }, + "exceptions": { + "description": "Other consent scopes that created exceptions within this scope.", + "items": { + "$ref": "ExplainDataAccessConsentScope" + }, + "type": "array" + } + }, + "type": "object" + }, + "ExplainDataAccessResponse": { + "description": "List of consent scopes that are applicable to the explained access on a given resource.", + "id": "ExplainDataAccessResponse", + "properties": { + "consentScopes": { + "description": "List of applicable consent scopes. Sorted in order of actor such that scopes belonging to the same actor will be adjacent to each other in the list.", + "items": { + "$ref": "ExplainDataAccessConsentScope" + }, + "type": "array" + }, + "warning": { + "description": "Warnings associated with this response. It inform user with exceeded scope limit errors.", + "type": "string" + } + }, + "type": "object" + }, "ExportAnnotationsRequest": { "description": "Request to export Annotations. The export operation is not atomic. If a failure occurs, any annotations already exported are not removed.", "id": "ExportAnnotationsRequest", @@ -6158,10 +7353,18 @@ "format": "google-datetime", "type": "string" }, + "filter": { + "description": "Restricts messages exported to those matching a filter, only applicable to PubsubDestination. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in the `yyyy-mm-dd` format. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, and is just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. The following fields and functions are available for filtering: * `message_type`, from the MSH-9.1 field. For example, `NOT message_type = \"ADT\"`. * `send_date` or `sendDate`, the YYYY-MM-DD date the message was sent in the dataset's time_zone, from the MSH-7 segment. For example, `send_date < \"2017-01-02\"`. * `send_time`, the timestamp when the message was sent, using the RFC3339 time format for comparisons, from the MSH-7 segment. For example, `send_time < \"2017-01-02T00:00:00-05:00\"`. * `create_time`, the timestamp when the message was created in the HL7v2 store. Use the RFC3339 time format for comparisons. For example, `create_time < \"2017-01-02T00:00:00-05:00\"`. * `send_facility`, the care center that the message came from, from the MSH-4 segment. For example, `send_facility = \"ABC\"`. Note: The filter will be applied to every message in the HL7v2 store whose `send_time` lies in the range defined by the `start_time` and the `end_time`. Even if the filter only matches a small set of messages, the export operation can still take a long time to finish when a lot of messages are between the specified `start_time` and `end_time` range.", + "type": "string" + }, "gcsDestination": { "$ref": "GcsDestination", "description": "Export to a Cloud Storage destination." }, + "pubsubDestination": { + "$ref": "PubsubDestination", + "description": "Export messages to a Pub/Sub topic." + }, "startTime": { "description": "The start of the range in `send_time` (MSH.7, https://www.hl7.org/documentcenter/public_temp_2E58C1F9-1C23-BA17-0C6126475344DA9D/wg/conf/HL7MSH.htm) to process. If not specified, the UNIX epoch (1970-01-01T00:00:00Z) is used. This value has to come before the `end_time` defined below. Only messages whose `send_time` lies in the range `start_time` (inclusive) to `end_time` (exclusive) are exported.", "format": "google-datetime", @@ -6261,7 +7464,7 @@ "id": "FhirFieldConfig", "properties": { "fieldMetadataList": { - "description": "Specifies FHIR paths to match and how to transform them. Any field that is not matched by a `FieldMetadata` is passed through to the output dataset unmodified. All extensions will be processed according to `keep_extensions`. If a field can be matched by more than one `FieldMetadata`, the first `FieldMetadata.Action` is applied. Overrides `options` and `profile`.", + "description": "Specifies FHIR paths to match and how to transform them. Any field that is not matched by a FieldMetadata `action` is passed through to the output dataset unmodified. All extensions will be processed according to keep_extensions. If a field can be matched by more than one FieldMetadata `action`, the first `action` option is applied. Overrides options and the union field `profile` in FhirFieldConfig.", "items": { "$ref": "GoogleCloudHealthcareV1beta1DeidentifyFieldMetadata" }, @@ -6269,7 +7472,7 @@ }, "options": { "$ref": "GoogleCloudHealthcareV1beta1DeidentifyOptions", - "description": "Specifies additional options, overriding the base `profile`." + "description": "Specifies additional options, overriding the base ProfileType." }, "profileType": { "description": "Base profile type for handling FHIR fields.", @@ -6281,9 +7484,9 @@ ], "enumDescriptions": [ "No profile provided. Same as `BASIC`.", - "`Keep` all fields.", - "Transforms known HIPAA 18 fields and cleans known unstructured text fields.", - "Cleans all supported tags. Applies to types: Code, Date, DateTime, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml" + "Keep all fields.", + "Transforms known [HIPAA 18](https://www.hhs.gov/hipaa/for-professionals/privacy/special-topics/de-identification/index.html#standard) fields and cleans known unstructured text fields.", + "Cleans all supported tags. Applies to types: Code, Date, DateTime, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml." ], "type": "string" } @@ -6306,12 +7509,16 @@ "id": "FhirNotificationConfig", "properties": { "pubsubTopic": { - "description": "The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. The notification is a `PubsubMessage` with the following fields: * `PubsubMessage.Data` contains the resource name. * `PubsubMessage.MessageId` is the ID of this notification. It is guaranteed to be unique within the topic. * `PubsubMessage.PublishTime` is the time when the message was published. Note that notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. The Cloud Healthcare API service account, service-@gcp-sa-healthcare.iam.gserviceaccount.com, must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can't be published to Pub/Sub, errors are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare-api/docs/how-tos/logging).", + "description": "The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. The notification is a `PubsubMessage` with the following fields: * `PubsubMessage.Data` contains the resource name. * `PubsubMessage.MessageId` is the ID of this notification. It is guaranteed to be unique within the topic. * `PubsubMessage.PublishTime` is the time when the message was published. Note that notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. The Cloud Healthcare API service account, service-@gcp-sa-healthcare.iam.gserviceaccount.com, must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail (https://cloud.google.com/healthcare-api/docs/permissions-healthcare-api-gcp-products#dicom_fhir_and_hl7v2_store_cloud_pubsub_permissions). If a notification can't be published to Pub/Sub, errors are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare-api/docs/how-tos/logging).", "type": "string" }, "sendFullResource": { "description": "Whether to send full FHIR resource to this Pub/Sub topic for Create and Update operation. Note that setting this to true does not guarantee that all resources will be sent in the format of full FHIR resource. When a resource change is too large or during heavy traffic, only the resource name will be sent. Clients should always check the \"payloadType\" label from a Pub/Sub message to determine whether it needs to fetch the full resource as a separate operation.", "type": "boolean" + }, + "sendPreviousResourceOnDelete": { + "description": "Whether to send full FHIR resource to this Pub/Sub topic for deleting FHIR resource. Note that setting this to true does not guarantee that all previous resources will be sent in the format of full FHIR resource. When a resource change is too large or during heavy traffic, only the resource name will be sent. Clients should always check the \"payloadType\" label from a Pub/Sub message to determine whether it needs to fetch the full previous resource as a separate operation.", + "type": "boolean" } }, "type": "object" @@ -6321,7 +7528,7 @@ "id": "FhirOutput", "properties": { "fhirStore": { - "description": "Name of the output FHIR store, which must already exist. You must grant the healthcare.fhirResources.update permission on the destination store to your project's **Cloud Healthcare Service Agent** [service account](https://cloud.google.com/healthcare/docs/how-tos/permissions-healthcare-api-gcp-products#the_cloud_healthcare_service_agent). The destination store must set `enable_update_create` to true. The destination store must use FHIR version R4. Writing these resources will consume FHIR operations quota from the project containing the source data. De-identify operation metadata is only generated for DICOM de-identification operations.", + "description": "Name of the output FHIR store, which must already exist. You must grant the healthcare.fhirResources.update permission on the destination store to your project's **Cloud Healthcare Service Agent** [service account](https://cloud.google.com/healthcare/docs/how-tos/permissions-healthcare-api-gcp-products#the_cloud_healthcare_service_agent). The destination store must set enableUpdateCreate to true. The destination store must use FHIR version R4. Writing these resources will consume FHIR operations quota from the project containing the source data. De-identify operation metadata is only generated for DICOM de-identification operations.", "type": "string" } }, @@ -6345,6 +7552,10 @@ ], "type": "string" }, + "consentConfig": { + "$ref": "ConsentConfig", + "description": "Optional. Specifies whether this store has consent enforcement. Not available for DSTU2 FHIR version due to absence of Consent resources." + }, "defaultSearchHandlingStrict": { "description": "If true, overrides the default search behavior for this FHIR store to `handling=strict` which returns an error for unrecognized search parameters. If false, uses the FHIR specification default `handling=lenient` which ignores unrecognized search parameters. The handling can always be changed from the default on an individual API call by setting the HTTP header `Prefer: handling=strict` or `Prefer: handling=lenient`.", "type": "boolean" @@ -6357,6 +7568,10 @@ "description": "Immutable. Whether to disable resource versioning for this FHIR store. This field can not be changed after the creation of FHIR store. If set to false, which is the default behavior, all write operations cause historical versions to be recorded automatically. The historical versions can be fetched through the history APIs, but cannot be updated. If set to true, no historical versions are kept. The server sends errors for attempts to read the historical versions.", "type": "boolean" }, + "enableHistoryModifications": { + "description": "Optional. Whether to allow ExecuteBundle to accept history bundles, and directly insert and overwrite historical resource versions into the FHIR store. If set to false, using history bundles fails with an error.", + "type": "boolean" + }, "enableUpdateCreate": { "description": "Whether this FHIR store has the [updateCreate capability](https://www.hl7.org/fhir/capabilitystatement-definitions.html#CapabilityStatement.rest.resource.updateCreate). This determines if the client can use an Update operation to create a new resource with a client-specified ID. If false, all IDs are server-assigned through the Create operation and attempts to update a non-existent resource return errors. It is strongly advised not to include or encode any sensitive data such as patient identifiers in client-specified resource IDs. Those IDs are part of the FHIR resource path recorded in Cloud audit logs and Pub/Sub notifications. Those IDs can also be contained in reference fields within other resources.", "type": "boolean" @@ -6369,12 +7584,13 @@ "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": { "$ref": "NotificationConfig", - "description": "If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, \"action\":\"CreateResource\"." + "deprecated": true, + "description": "Deprecated. Use `notification_configs` instead. If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, \"action\":\"CreateResource\"." }, "notificationConfigs": { "description": "Specifies where and whether to send notifications upon changes to a Fhir store.", @@ -6399,7 +7615,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", @@ -6417,6 +7633,45 @@ }, "type": "object" }, + "FhirStoreMetric": { + "description": "Count of resources and total storage size by type for a given FHIR store.", + "id": "FhirStoreMetric", + "properties": { + "count": { + "description": "The total count of FHIR resources in the store of this resource type.", + "format": "int64", + "type": "string" + }, + "resourceType": { + "description": "The FHIR resource type this metric applies to.", + "type": "string" + }, + "structuredStorageSizeBytes": { + "description": "The total amount of structured storage used by FHIR resources of this resource type in the store.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "FhirStoreMetrics": { + "description": "List of metrics for a given FHIR store.", + "id": "FhirStoreMetrics", + "properties": { + "metrics": { + "description": "List of FhirStoreMetric by resource type.", + "items": { + "$ref": "FhirStoreMetric" + }, + "type": "array" + }, + "name": { + "description": "The resource name of the FHIR store to get metrics for, in the format `projects/{project_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", + "type": "string" + } + }, + "type": "object" + }, "Field": { "description": "A (sub) field of a type.", "id": "Field", @@ -6680,26 +7935,26 @@ "properties": { "characterMaskField": { "$ref": "CharacterMaskField", - "description": "Replace the field's value with a masking character. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml" + "description": "Replace the field's value with a masking character. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml." }, "cleanTextField": { "$ref": "CleanTextField", - "description": "Inspect the field's text and transform sensitive text. Configure using `TextConfig`. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Date, DateTime, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml" + "description": "Inspect the field's text and transform sensitive text. Configure using TextConfig. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Date, DateTime, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml." }, "cryptoHashField": { "$ref": "CryptoHashField", - "description": "Replace field value with a hash of that value. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml" + "description": "Replace field value with a hash of that value. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml." }, "dateShiftField": { "$ref": "DateShiftField", - "description": "Shift the date by a randomized number of days. See [date shifting](https://cloud.google.com/dlp/docs/concepts-date-shifting) for more information. Supported [types](https://www.hl7.org/fhir/datatypes.html): Date, DateTime" + "description": "Shift the date by a randomized number of days. See [date shifting](https://cloud.google.com/dlp/docs/concepts-date-shifting) for more information. Supported [types](https://www.hl7.org/fhir/datatypes.html): Date, DateTime." }, "keepField": { "$ref": "KeepField", "description": "Keep the field unchanged." }, "paths": { - "description": "List of paths to FHIR fields to redact. Each path is a period-separated list where each component is either a field name or FHIR type name. All types begin with an upper case letter. For example, the resource field \"Patient.Address.city\", which uses a string type, can be matched by \"Patient.Address.String\". Path also supports partialkk matching. For example, \"Patient.Address.city\" can be matched by \"Address.city\" (Patient omitted). Partial matching and type matching can be combined, for example \"Patient.Address.city\" can be matched by \"Address.String\". For \"choice\" types (those defined in the FHIR spec with the form: field[x]), use two separate components. For example, \"deceasedAge.unit\" is matched by \"Deceased.Age.unit\". Supported [types](https://www.hl7.org/fhir/datatypes.html) are: AdministrativeGenderCode, Base64Binary, Boolean, Code, Date, DateTime, Decimal, HumanName, Id, Instant, Integer, LanguageCode, Markdown, Oid, PositiveInt, String, UnsignedInt, Uri, Uuid, Xhtml. The sub-type for HumanName (for example HumanName.given, HumanName.family) can be omitted.", + "description": "List of paths to FHIR fields to redact. Each path is a period-separated list where each component is either a field name or FHIR [type](https://www.hl7.org/fhir/datatypes.html) name. All types begin with an upper case letter. For example, the resource field `Patient.Address.city`, which uses a [string](https://www.hl7.org/fhir/datatypes-definitions.html#Address.city) type, can be matched by `Patient.Address.String`. Partial matching is supported. For example, `Patient.Address.city` can be matched by `Address.city` (with `Patient` omitted). Partial matching and type matching can be combined, for example `Patient.Address.city` can be matched by `Address.String`. For \"choice\" types (those defined in the FHIR spec with the format `field[x]`), use two separate components. For example, `deceasedAge.unit` is matched by `Deceased.Age.unit`. The following types are supported: AdministrativeGenderCode, Base64Binary, Boolean, Code, Date, DateTime, Decimal, HumanName, Id, Instant, Integer, LanguageCode, Markdown, Oid, PositiveInt, String, UnsignedInt, Uri, Uuid, Xhtml. The sub-type for HumanName (for example `HumanName.given`, `HumanName.family`) can be omitted.", "items": { "type": "string" }, @@ -6713,12 +7968,12 @@ "type": "object" }, "GoogleCloudHealthcareV1beta1DeidentifyOptions": { - "description": "Specifies additional options to apply to the base `profile`.", + "description": "Specifies additional options to apply to the base ProfileType.", "id": "GoogleCloudHealthcareV1beta1DeidentifyOptions", "properties": { "characterMaskConfig": { "$ref": "CharacterMaskConfig", - "description": "Character mask config for `CharacterMaskField` `FieldMetadatas`." + "description": "Character mask config for CharacterMaskField." }, "contextualDeid": { "$ref": "ContextualDeidConfig", @@ -6726,11 +7981,11 @@ }, "cryptoHashConfig": { "$ref": "CryptoHashConfig", - "description": "Crypo hash config for `CharacterMaskField` `FieldMetadatas`." + "description": "Crypto hash config for CharacterMaskField." }, "dateShiftConfig": { "$ref": "DateShiftConfig", - "description": "Date shifting config for `CharacterMaskField` `FieldMetadatas`." + "description": "Date shifting config for CharacterMaskField." }, "keepExtensions": { "$ref": "KeepExtensionsConfig", @@ -6958,11 +8213,12 @@ "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" }, "notificationConfig": { "$ref": "NotificationConfig", + "deprecated": true, "description": "The notification destination all messages (both Ingest & Create) are published on. Only the message name is sent as part of the notification. If this is unset, no notifications are sent. Supplied by the client." }, "notificationConfigs": { @@ -6983,6 +8239,45 @@ }, "type": "object" }, + "Hl7V2StoreMetric": { + "description": "Count of messages and total storage size by type for a given HL7 store.", + "id": "Hl7V2StoreMetric", + "properties": { + "count": { + "description": "The total count of HL7v2 messages in the store for the given message type.", + "format": "int64", + "type": "string" + }, + "messageType": { + "description": "The Hl7v2 message type this metric applies to, such as `ADT` or `ORU`.", + "type": "string" + }, + "structuredStorageSizeBytes": { + "description": "The total amount of structured storage used by HL7v2 messages of this message type in the store.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "Hl7V2StoreMetrics": { + "description": "List of metrics for a given HL7v2 store.", + "id": "Hl7V2StoreMetrics", + "properties": { + "metrics": { + "description": "List of HL7v2 store metrics by message type.", + "items": { + "$ref": "Hl7V2StoreMetric" + }, + "type": "array" + }, + "name": { + "description": "The resource name of the HL7v2 store to get metrics for, in the format `projects/{project_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", + "type": "string" + } + }, + "type": "object" + }, "HttpBody": { "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": "HttpBody", @@ -7104,6 +8399,10 @@ "description": "Imports data into the specified DICOM store. Returns an error if any of the files to import are not DICOM files. This API accepts duplicate DICOM instances by ignoring the newly-pushed instance. It does not overwrite.", "id": "ImportDicomDataRequest", "properties": { + "blobStorageSettings": { + "$ref": "BlobStorageSettings", + "description": "Optional. The blob storage settings for the data imported by this operation." + }, "gcsSource": { "$ref": "GoogleCloudHealthcareV1beta1DicomGcsSource", "description": "Cloud Storage source data location and import configuration. The Cloud Healthcare Service Agent requires the `roles/storage.objectViewer` Cloud IAM roles on the Cloud Storage location." @@ -7220,7 +8519,7 @@ "properties": { "message": { "$ref": "Message", - "description": "HL7v2 message to ingest." + "description": "Required. HL7v2 message to ingest." } }, "type": "object" @@ -7242,7 +8541,7 @@ "type": "object" }, "KeepExtensionsConfig": { - "description": "The behaviour for handling FHIR extensions that aren't otherwise specified for de-identification. If provided, all extensions are preserved during de-identification by default. If unspecified, all extensions are removed during de-identification by default.", + "description": "The behavior for handling FHIR extensions that aren't otherwise specified for de-identification. If provided, all extensions are preserved during de-identification by default. If unspecified, all extensions are removed during de-identification by default.", "id": "KeepExtensionsConfig", "properties": {}, "type": "object" @@ -7551,7 +8850,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -7595,7 +8894,7 @@ "type": "string" }, "data": { - "description": "Raw message bytes.", + "description": "Required. Raw message bytes.", "format": "byte", "type": "string" }, @@ -7611,7 +8910,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": { @@ -7686,7 +8986,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" } }, @@ -7713,12 +9013,12 @@ "type": "string" }, "endTime": { - "description": "The time at which execution was completed.", + "description": "The time at which execution workloads were completed. Some tasks will complete after this time such as logging audit logs.", "format": "google-datetime", "type": "string" }, "logsUrl": { - "description": "A link to audit and error logs in the log viewer. Error logs are generated only by some operations, listed at [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging).", + "description": "A link to audit and error logs in the log viewer. Error logs are generated only by some operations, listed at [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging). The `end_time` specified in this URL may not match the end time on the metadata because logs are written asynchronously from execution.", "type": "string" } }, @@ -7817,8 +9117,22 @@ }, "type": "object" }, + "PatientScope": { + "description": "Apply consents given by a list of patients.", + "id": "PatientScope", + "properties": { + "patientIds": { + "description": "Optional. The list of patient IDs whose Consent resources will be enforced. At most 10,000 patients can be specified. An empty list is equivalent to all patients (meaning the entire FHIR store).", + "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/).", + "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": { @@ -7862,6 +9176,16 @@ "format": "int64", "type": "string" }, + "secondaryFailure": { + "description": "The number of secondary units that failed in the operation.", + "format": "int64", + "type": "string" + }, + "secondarySuccess": { + "description": "The number of secondary units that succeeded in the operation.", + "format": "int64", + "type": "string" + }, "success": { "description": "The number of units that succeeded in the operation.", "format": "int64", @@ -7870,6 +9194,17 @@ }, "type": "object" }, + "PubsubDestination": { + "description": "The Pub/Sub output destination. The Cloud Healthcare Service Agent requires the `roles/pubsub.publisher` Cloud IAM role on the Pub/Sub topic.", + "id": "PubsubDestination", + "properties": { + "pubsubTopic": { + "description": "The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that Pub/Sub messages are published on. Supplied by the client. The `PubsubMessage` contains the following fields: * `PubsubMessage.Data` contains the resource name. * `PubsubMessage.MessageId` is the ID of this notification. It is guaranteed to be unique within the topic. * `PubsubMessage.PublishTime` is the time when the message was published. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. The Cloud Healthcare API service account, service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com, must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail.", + "type": "string" + } + }, + "type": "object" + }, "QueryAccessibleDataRequest": { "description": "Queries all data_ids that are consented for a given use in the given consent store and writes them to a specified destination. The returned Operation includes a progress counter for the number of User data mappings processed. Errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging] (https://cloud.google.com/healthcare/docs/how-tos/logging) and [QueryAccessibleData] for a sample log entry).", "id": "QueryAccessibleDataRequest", @@ -8020,6 +9355,93 @@ }, "type": "object" }, + "RollbackFhirResourceFilteringFields": { + "description": "Filters to select resources that need to be rolled back.", + "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. Only changes made by these operations will be rolled back.", + "items": { + "format": "uint64", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RollbackFhirResourcesRequest": { + "description": "Request to roll back resources.", + "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. Tag represents fields that HDE needs to identify resources that will be reverted. Parameters for filtering resources" + }, + "force": { + "description": "Optional. When enabled, changes will be reverted without explicit confirmation", + "type": "boolean" + }, + "inputGcsObject": { + "description": "Optional. Cloud Storage 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 FHIR 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", @@ -8043,9 +9465,9 @@ ], "enumDescriptions": [ "No schema type specified. This type is unsupported.", - "A data-driven schema generated from the fields present in the FHIR data being exported, with no additional simplification.", - "Analytics schema defined by the FHIR community. See https://github.com/FHIR/sql-on-fhir/blob/master/sql-on-fhir.md. BigQuery only allows a maximum of 10,000 columns per table. Due to this limitation, the server will not generate schemas for fields of type `Resource`, which can hold any resource type. The affected fields are `Parameters.parameter.resource`, `Bundle.entry.resource`, and `Bundle.entry.response.outcome`.", - "Analytics V2, similar to schema defined by the FHIR community, with added support for extensions with one or more occurrences and contained resources in stringified JSON. Analytics V2 uses more space in the destination table than Analytics V1." + "A data-driven schema generated from the fields present in the FHIR data being exported, with no additional simplification. This type cannot be used for streaming to BigQuery.", + "Analytics schema defined by the FHIR community. See https://github.com/FHIR/sql-on-fhir/blob/master/sql-on-fhir.md. BigQuery only allows a maximum of 10,000 columns per table. Due to this limitation, the server will not generate schemas for fields of type `Resource`, which can hold any resource type. The affected fields are `Parameters.parameter.resource`, `Bundle.entry.resource`, and `Bundle.entry.response.outcome`. Analytics schema does not gracefully handle extensions with one or more occurrences, anaytics schema also does not handle contained resource.", + "Analytics V2, similar to schema defined by the FHIR community, with added support for extensions with one or more occurrences and contained resources in stringified JSON. Analytics V2 uses more space in the destination table than Analytics V1. It is generally recommended to use Analytics V2 over Analytics." ], "type": "string" } @@ -8209,7 +9631,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](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 search, 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)).", "type": "string" } }, @@ -8251,6 +9673,53 @@ }, "type": "object" }, + "SeriesMetrics": { + "description": "SeriesMetrics contains metrics describing a DICOM series.", + "id": "SeriesMetrics", + "properties": { + "blobStorageSizeBytes": { + "description": "Total blob storage bytes for all instances in the series.", + "format": "int64", + "type": "string" + }, + "instanceCount": { + "description": "Number of instances in the series.", + "format": "int64", + "type": "string" + }, + "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}`.", + "type": "string" + }, + "structuredStorageSizeBytes": { + "description": "Total structured storage bytes for all instances in the series.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "SetBlobStorageSettingsRequest": { + "description": "Request message for `SetBlobStorageSettings` method.", + "id": "SetBlobStorageSettingsRequest", + "properties": { + "blobStorageSettings": { + "$ref": "BlobStorageSettings", + "description": "The blob storage settings to update for the specified resources. Only fields listed in `update_mask` are applied." + }, + "filterConfig": { + "$ref": "DicomFilterConfig", + "description": "Optional. A filter configuration. If `filter_config` is specified, set the value of `resource` to the resource name of a DICOM store in the format `projects/{projectID}/datasets/{datasetID}/dicomStores/{dicomStoreID}`." + } + }, + "type": "object" + }, + "SetBlobStorageSettingsResponse": { + "description": "Returns additional info in regards to a completed set blob storage settings API.", + "id": "SetBlobStorageSettingsResponse", + "properties": {}, + "type": "object" + }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", @@ -8321,6 +9790,25 @@ }, "type": "object" }, + "StorageInfo": { + "description": "StorageInfo encapsulates all the storage info of a resource.", + "id": "StorageInfo", + "properties": { + "blobStorageInfo": { + "$ref": "BlobStorageInfo", + "description": "Info about the data stored in blob storage for the resource." + }, + "referencedResource": { + "description": "The resource whose storage info is returned. For example, to specify the resource path of a DICOM Instance: `projects/{projectid}/datasets/{datasetid}/dicomStores/{dicom_store_id}/dicomWeb/studi/{study_uid}/series/{series_uid}/instances/{instance_uid}`", + "type": "string" + }, + "structuredStorageInfo": { + "$ref": "StructuredStorageInfo", + "description": "Info about the data stored in structured storage for the resource." + } + }, + "type": "object" + }, "StreamConfig": { "description": "Contains configuration for streaming FHIR export.", "id": "StreamConfig", @@ -8343,6 +9831,49 @@ }, "type": "object" }, + "StructuredStorageInfo": { + "description": "StructuredStorageInfo contains details about the data stored in Structured Storage for the referenced resource.", + "id": "StructuredStorageInfo", + "properties": { + "sizeBytes": { + "description": "Size in bytes of data stored in structured storage.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "StudyMetrics": { + "description": "StudyMetrics contains metrics describing a DICOM study.", + "id": "StudyMetrics", + "properties": { + "blobStorageSizeBytes": { + "description": "Total blob storage bytes for all instances in the study.", + "format": "int64", + "type": "string" + }, + "instanceCount": { + "description": "Number of instances in the study.", + "format": "int64", + "type": "string" + }, + "seriesCount": { + "description": "Number of series in the study.", + "format": "int64", + "type": "string" + }, + "structuredStorageSizeBytes": { + "description": "Total structured storage bytes for all instances in the study.", + "format": "int64", + "type": "string" + }, + "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}`.", + "type": "string" + } + }, + "type": "object" + }, "TagFilterList": { "description": "List of tags to be filtered.", "id": "TagFilterList", @@ -8411,13 +9942,14 @@ "BASIC" ], "enumDescriptions": [ - "Same as BASIC.", + "No profile provided. Same as BASIC.", "Empty profile which does not perform any transformations.", - "Basic profile applies: DATE -> DateShift Default -> ReplaceWithInfoType" + "Automatically converts \"DATE\" infoTypes using a DateShiftConfig, and all other infoTypes using a ReplaceWithInfoTypeConfig." ], "type": "string" }, "transformations": { + "deprecated": true, "description": "The transformations to apply to the detected data. Deprecated. Use `additional_transformations` instead.", "items": { "$ref": "InfoTypeTransformation" @@ -8473,6 +10005,21 @@ }, "type": "object" }, + "TimeRange": { + "description": "Apply consents given by patients whose most recent consent changes are in the time range. Note that after identifying these patients, the server applies all Consent resources given by those patients, not just the Consent resources within the timestamp in the range.", + "id": "TimeRange", + "properties": { + "end": { + "description": "Optional. The latest consent change time, in format YYYY-MM-DDThh:mm:ss.sss+zz:zz If not specified, the system uses the time when ApplyConsents was called.", + "type": "string" + }, + "start": { + "description": "Optional. The earliest consent change time, in format YYYY-MM-DDThh:mm:ss.sss+zz:zz If not specified, the system uses the FHIR store creation time.", + "type": "string" + } + }, + "type": "object" + }, "Type": { "description": "A type definition for some HL7v2 type (incl. Segments and Datatypes).", "id": "Type", diff --git a/etc/api/homegraph/v1/homegraph-api.json b/etc/api/homegraph/v1/homegraph-api.json index 4e88057a91..ed0a295b70 100644 --- a/etc/api/homegraph/v1/homegraph-api.json +++ b/etc/api/homegraph/v1/homegraph-api.json @@ -216,7 +216,7 @@ } } }, - "revision": "20230113", + "revision": "20240226", "rootUrl": "https://homegraph.googleapis.com/", "schemas": { "AgentDeviceId": { @@ -484,6 +484,7 @@ "type": "string" }, "followUpToken": { + "deprecated": true, "description": "Deprecated.", "type": "string" }, diff --git a/etc/api/iam/v1/iam-api.json b/etc/api/iam/v1/iam-api.json index 101fc1b470..1c1a3f5c44 100644 --- a/etc/api/iam/v1/iam-api.json +++ b/etc/api/iam/v1/iam-api.json @@ -148,6 +148,283 @@ "locations": { "resources": { "workforcePools": { + "methods": { + "create": { + "description": "Creates a new WorkforcePool. You cannot reuse the name of a deleted pool until 30 days after deletion.", + "flatPath": "v1/locations/{locationsId}/workforcePools", + "httpMethod": "POST", + "id": "iam.locations.workforcePools.create", + "parameterOrder": [ + "location" + ], + "parameters": { + "location": { + "description": "The location of the pool to create. Format: `locations/{location}`.", + "location": "path", + "pattern": "^locations/[^/]+$", + "required": true, + "type": "string" + }, + "workforcePoolId": { + "description": "The ID to use for the pool, which becomes the final component of the resource name. The IDs must be a globally unique string of 6 to 63 lowercase letters, digits, or hyphens. It must start with a letter, and cannot have a trailing hyphen. The prefix `gcp-` is reserved for use by Google, and may not be specified.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+location}/workforcePools", + "request": { + "$ref": "WorkforcePool" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a WorkforcePool. You cannot use a deleted WorkforcePool to exchange external credentials for Google Cloud credentials. However, deletion does not revoke credentials that have already been issued. Credentials issued for a deleted pool do not grant access to resources. If the pool is undeleted, and the credentials are not expired, they grant access again. You can undelete a pool for 30 days. After 30 days, deletion is permanent. You cannot update deleted pools. However, you can view and list them.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}", + "httpMethod": "DELETE", + "id": "iam.locations.workforcePools.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the pool to delete. Format: `locations/{location}/workforcePools/{workforce_pool_id}`", + "location": "path", + "pattern": "^locations/[^/]+/workforcePools/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets an individual WorkforcePool.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}", + "httpMethod": "GET", + "id": "iam.locations.workforcePools.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the pool to retrieve. Format: `locations/{location}/workforcePools/{workforce_pool_id}`", + "location": "path", + "pattern": "^locations/[^/]+/workforcePools/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "WorkforcePool" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getIamPolicy": { + "description": "Gets IAM policies on a WorkforcePool.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}:getIamPolicy", + "httpMethod": "POST", + "id": "iam.locations.workforcePools.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": "^locations/[^/]+/workforcePools/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "request": { + "$ref": "GetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all non-deleted WorkforcePools under the specified parent. If `show_deleted` is set to `true`, then deleted pools are also listed.", + "flatPath": "v1/locations/{locationsId}/workforcePools", + "httpMethod": "GET", + "id": "iam.locations.workforcePools.list", + "parameterOrder": [ + "location" + ], + "parameters": { + "location": { + "description": "The location of the pool. Format: `locations/{location}`.", + "location": "path", + "pattern": "^locations/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The maximum number of pools to return. If unspecified, at most 50 pools will be returned. The maximum value is 1000; values above 1000 are truncated to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListWorkforcePools` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource to list pools for. Format: `organizations/{org-id}`.", + "location": "query", + "type": "string" + }, + "showDeleted": { + "description": "Whether to return soft-deleted pools.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+location}/workforcePools", + "response": { + "$ref": "ListWorkforcePoolsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates an existing WorkforcePool.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}", + "httpMethod": "PATCH", + "id": "iam.locations.workforcePools.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The resource name of the pool. Format: `locations/{location}/workforcePools/{workforce_pool_id}`", + "location": "path", + "pattern": "^locations/[^/]+/workforcePools/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to update.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "WorkforcePool" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "setIamPolicy": { + "description": "Sets IAM policies on a WorkforcePool.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}:setIamPolicy", + "httpMethod": "POST", + "id": "iam.locations.workforcePools.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": "^locations/[^/]+/workforcePools/[^/]+$", + "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 the caller's permissions on the WorkforcePool. If the pool does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}:testIamPermissions", + "httpMethod": "POST", + "id": "iam.locations.workforcePools.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": "^locations/[^/]+/workforcePools/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "undelete": { + "description": "Undeletes a WorkforcePool, as long as it was deleted fewer than 30 days ago.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}:undelete", + "httpMethod": "POST", + "id": "iam.locations.workforcePools.undelete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the pool to undelete. Format: `locations/{location}/workforcePools/{workforce_pool_id}`", + "location": "path", + "pattern": "^locations/[^/]+/workforcePools/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:undelete", + "request": { + "$ref": "UndeleteWorkforcePoolRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "operations": { "methods": { @@ -179,8 +456,350 @@ } }, "providers": { + "methods": { + "create": { + "description": "Creates a new WorkforcePoolProvider in a WorkforcePool. You cannot reuse the name of a deleted provider until 30 days after deletion.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers", + "httpMethod": "POST", + "id": "iam.locations.workforcePools.providers.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The pool to create this provider in. Format: `locations/{location}/workforcePools/{workforce_pool_id}`", + "location": "path", + "pattern": "^locations/[^/]+/workforcePools/[^/]+$", + "required": true, + "type": "string" + }, + "workforcePoolProviderId": { + "description": "Required. The ID for the provider, which becomes the final component of the resource name. This value must be 4-32 characters, and may contain the characters [a-z0-9-]. The prefix `gcp-` is reserved for use by Google, and may not be specified.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/providers", + "request": { + "$ref": "WorkforcePoolProvider" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a WorkforcePoolProvider. Deleting a provider does not revoke credentials that have already been\\ issued; they continue to grant access. You can undelete a provider for 30 days. After 30 days, deletion is permanent. You cannot update deleted providers. However, you can view and list them.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}", + "httpMethod": "DELETE", + "id": "iam.locations.workforcePools.providers.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the provider to delete. Format: `locations/{location}/workforcePools/{workforce_pool_id}/providers/{provider_id}`", + "location": "path", + "pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets an individual WorkforcePoolProvider.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}", + "httpMethod": "GET", + "id": "iam.locations.workforcePools.providers.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the provider to retrieve. Format: `locations/{location}/workforcePools/{workforce_pool_id}/providers/{provider_id}`", + "location": "path", + "pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "WorkforcePoolProvider" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all non-deleted WorkforcePoolProviders in a WorkforcePool. If `show_deleted` is set to `true`, then deleted providers are also listed.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers", + "httpMethod": "GET", + "id": "iam.locations.workforcePools.providers.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of providers to return. If unspecified, at most 50 providers are returned. The maximum value is 100; values above 100 are truncated to 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListWorkforcePoolProviders` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The pool to list providers for. Format: `locations/{location}/workforcePools/{workforce_pool_id}`", + "location": "path", + "pattern": "^locations/[^/]+/workforcePools/[^/]+$", + "required": true, + "type": "string" + }, + "showDeleted": { + "description": "Whether to return soft-deleted providers.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+parent}/providers", + "response": { + "$ref": "ListWorkforcePoolProvidersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates an existing WorkforcePoolProvider.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}", + "httpMethod": "PATCH", + "id": "iam.locations.workforcePools.providers.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The resource name of the provider. Format: `locations/{location}/workforcePools/{workforce_pool_id}/providers/{provider_id}`", + "location": "path", + "pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to update.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "WorkforcePoolProvider" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "undelete": { + "description": "Undeletes a WorkforcePoolProvider, as long as it was deleted fewer than 30 days ago.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}:undelete", + "httpMethod": "POST", + "id": "iam.locations.workforcePools.providers.undelete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the provider to undelete. Format: `locations/{location}/workforcePools/{workforce_pool_id}/providers/{provider_id}`", + "location": "path", + "pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:undelete", + "request": { + "$ref": "UndeleteWorkforcePoolProviderRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "keys": { + "methods": { + "create": { + "description": "Creates a new WorkforcePoolProviderKey in a WorkforcePoolProvider.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}/keys", + "httpMethod": "POST", + "id": "iam.locations.workforcePools.providers.keys.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The provider to create this key in.", + "location": "path", + "pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+$", + "required": true, + "type": "string" + }, + "workforcePoolProviderKeyId": { + "description": "Required. The ID to use for the key, which becomes the final component of the resource name. This value must be 4-32 characters, and may contain the characters [a-z0-9-].", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/keys", + "request": { + "$ref": "WorkforcePoolProviderKey" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a WorkforcePoolProviderKey. You can undelete a key for 30 days. After 30 days, deletion is permanent.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}/keys/{keysId}", + "httpMethod": "DELETE", + "id": "iam.locations.workforcePools.providers.keys.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the key to delete.", + "location": "path", + "pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+/keys/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a WorkforcePoolProviderKey.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}/keys/{keysId}", + "httpMethod": "GET", + "id": "iam.locations.workforcePools.providers.keys.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the key to retrieve.", + "location": "path", + "pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+/keys/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "WorkforcePoolProviderKey" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all non-deleted WorkforcePoolProviderKeys in a WorkforcePoolProvider. If `show_deleted` is set to `true`, then deleted keys are also listed.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}/keys", + "httpMethod": "GET", + "id": "iam.locations.workforcePools.providers.keys.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of keys to return. If unspecified, all keys are returned. The maximum value is 10; values above 10 are truncated to 10.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListWorkforcePoolProviderKeys` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The provider resource to list encryption keys for. Format: `locations/{location}/workforcePools/{workforce_pool_id}/providers/{provider_id}`", + "location": "path", + "pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+$", + "required": true, + "type": "string" + }, + "showDeleted": { + "description": "Whether to return soft-deleted keys.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+parent}/keys", + "response": { + "$ref": "ListWorkforcePoolProviderKeysResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "undelete": { + "description": "Undeletes a WorkforcePoolProviderKey, as long as it was deleted fewer than 30 days ago.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}/keys/{keysId}:undelete", + "httpMethod": "POST", + "id": "iam.locations.workforcePools.providers.keys.undelete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the key to undelete.", + "location": "path", + "pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+/keys/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:undelete", + "request": { + "$ref": "UndeleteWorkforcePoolProviderKeyRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "operations": { "methods": { @@ -245,6 +864,61 @@ } }, "subjects": { + "methods": { + "delete": { + "description": "Deletes a WorkforcePoolSubject. Subject must not already be in a deleted state. A WorkforcePoolSubject is automatically created the first time an external credential is exchanged for a Google Cloud credential with a mapped `google.subject` attribute. There is no path to manually create WorkforcePoolSubjects. Once deleted, the WorkforcePoolSubject may not be used for 30 days. After 30 days, the WorkforcePoolSubject will be deleted forever and can be reused in token exchanges with Google Cloud STS. This will automatically create a new WorkforcePoolSubject that is independent of the previously deleted WorkforcePoolSubject with the same google.subject value.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/subjects/{subjectsId}", + "httpMethod": "DELETE", + "id": "iam.locations.workforcePools.subjects.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the WorkforcePoolSubject. Special characters, like '/' and ':', must be escaped, because all URLs need to conform to the \"When to Escape and Unescape\" section of [RFC3986](https://www.ietf.org/rfc/rfc2396.txt). Format: `locations/{location}/workforcePools/{workforce_pool_id}/subjects/{subject_id}`", + "location": "path", + "pattern": "^locations/[^/]+/workforcePools/[^/]+/subjects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "undelete": { + "description": "Undeletes a WorkforcePoolSubject, as long as it was deleted fewer than 30 days ago.", + "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/subjects/{subjectsId}:undelete", + "httpMethod": "POST", + "id": "iam.locations.workforcePools.subjects.undelete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the WorkforcePoolSubject. Special characters, like '/' and ':', must be escaped, because all URLs need to conform to the \"When to Escape and Unescape\" section of [RFC3986](https://www.ietf.org/rfc/rfc2396.txt). Format: `locations/{location}/workforcePools/{workforce_pool_id}/subjects/{subject_id}`", + "location": "path", + "pattern": "^locations/[^/]+/workforcePools/[^/]+/subjects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:undelete", + "request": { + "$ref": "UndeleteWorkforcePoolSubjectRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "operations": { "methods": { @@ -705,6 +1379,105 @@ } }, "resources": { + "namespaces": { + "resources": { + "managedIdentities": { + "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/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/namespaces/{namespacesId}/managedIdentities/{managedIdentitiesId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "iam.projects.locations.workloadIdentityPools.namespaces.managedIdentities.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/namespaces/[^/]+/managedIdentities/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "workloadSources": { + "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/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/namespaces/{namespacesId}/managedIdentities/{managedIdentitiesId}/workloadSources/{workloadSourcesId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "iam.projects.locations.workloadIdentityPools.namespaces.managedIdentities.workloadSources.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/namespaces/[^/]+/managedIdentities/[^/]+/workloadSources/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + } + }, + "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/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/namespaces/{namespacesId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "iam.projects.locations.workloadIdentityPools.namespaces.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/namespaces/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "operations": { "methods": { "get": { @@ -925,6 +1698,160 @@ }, "resources": { "keys": { + "methods": { + "create": { + "description": "Create a new WorkloadIdentityPoolProviderKey in a WorkloadIdentityPoolProvider.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}/keys", + "httpMethod": "POST", + "id": "iam.projects.locations.workloadIdentityPools.providers.keys.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent provider resource to create the key in.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+$", + "required": true, + "type": "string" + }, + "workloadIdentityPoolProviderKeyId": { + "description": "Required. The ID to use for the key, which becomes the final component of the resource name. This value should be 4-32 characters, and may contain the characters [a-z0-9-].", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/keys", + "request": { + "$ref": "WorkloadIdentityPoolProviderKey" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an WorkloadIdentityPoolProviderKey. You can undelete a key for 30 days. After 30 days, deletion is permanent.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}/keys/{keysId}", + "httpMethod": "DELETE", + "id": "iam.projects.locations.workloadIdentityPools.providers.keys.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the encryption key to delete.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+/keys/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets an individual WorkloadIdentityPoolProviderKey.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}/keys/{keysId}", + "httpMethod": "GET", + "id": "iam.projects.locations.workloadIdentityPools.providers.keys.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the key to retrieve.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+/keys/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "WorkloadIdentityPoolProviderKey" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all non-deleted WorkloadIdentityPoolProviderKeys in a project. If show_deleted is set to `true`, then deleted pools are also listed.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}/keys", + "httpMethod": "GET", + "id": "iam.projects.locations.workloadIdentityPools.providers.keys.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of keys to return. If unspecified, all keys are returned. The maximum value is 10; values above 10 are truncated to 10.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListWorkloadIdentityPoolProviderKeys` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent provider resource to list encryption keys for.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+$", + "required": true, + "type": "string" + }, + "showDeleted": { + "description": "Whether to return soft deleted resources as well.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+parent}/keys", + "response": { + "$ref": "ListWorkloadIdentityPoolProviderKeysResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "undelete": { + "description": "Undeletes an WorkloadIdentityPoolProviderKey, as long as it was deleted fewer than 30 days ago.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}/keys/{keysId}:undelete", + "httpMethod": "POST", + "id": "iam.projects.locations.workloadIdentityPools.providers.keys.undelete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the encryption key to undelete.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+/keys/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:undelete", + "request": { + "$ref": "UndeleteWorkloadIdentityPoolProviderKeyRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "operations": { "methods": { @@ -1456,6 +2383,7 @@ ] }, "signBlob": { + "deprecated": true, "description": "**Note:** This method is deprecated. Use the [`signBlob`](https://cloud.google.com/iam/help/rest-credentials/v1/projects.serviceAccounts/signBlob) method in the IAM Service Account Credentials API instead. If you currently use this method, see the [migration guide](https://cloud.google.com/iam/help/credentials/migrate-api) for instructions. Signs a blob using the system-managed private key for a ServiceAccount.", "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:signBlob", "httpMethod": "POST", @@ -1484,6 +2412,7 @@ ] }, "signJwt": { + "deprecated": true, "description": "**Note:** This method is deprecated. Use the [`signJwt`](https://cloud.google.com/iam/help/rest-credentials/v1/projects.serviceAccounts/signJwt) method in the IAM Service Account Credentials API instead. If you currently use this method, see the [migration guide](https://cloud.google.com/iam/help/credentials/migrate-api) for instructions. Signs a JSON Web Token (JWT) using the system-managed private key for a ServiceAccount.", "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:signJwt", "httpMethod": "POST", @@ -1921,9 +2850,27 @@ } } }, - "revision": "20230112", + "revision": "20240220", "rootUrl": "https://iam.googleapis.com/", "schemas": { + "AccessRestrictions": { + "description": "Access related restrictions on the workforce pool.", + "id": "AccessRestrictions", + "properties": { + "allowedServices": { + "description": "Optional. Immutable. Services allowed for web sign-in with the workforce pool. If not set by default there are no restrictions.", + "items": { + "$ref": "ServiceConfig" + }, + "type": "array" + }, + "disableProgrammaticSignin": { + "description": "Optional. Disable programmatic sign-in by disabling token issue via the Security Token API endpoint. See [Security Token Service API] (https://cloud.google.com/iam/docs/reference/sts/rest).", + "type": "boolean" + } + }, + "type": "object" + }, "AdminAuditData": { "description": "Audit log information specific to Cloud IAM admin APIs. This message is serialized as an `Any` type in the `ServiceData` message of an `AuditLog` message.", "id": "AdminAuditData", @@ -2025,14 +2972,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -2189,6 +3136,189 @@ }, "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" + }, + "GoogleIamAdminV1WorkforcePoolProviderOidc": { + "description": "Represents an OpenId Connect 1.0 identity provider.", + "id": "GoogleIamAdminV1WorkforcePoolProviderOidc", + "properties": { + "clientId": { + "description": "Required. The client ID. Must match the audience claim of the JWT issued by the identity provider.", + "type": "string" + }, + "clientSecret": { + "$ref": "GoogleIamAdminV1WorkforcePoolProviderOidcClientSecret", + "description": "The optional client secret. Required to enable Authorization Code flow for web sign-in." + }, + "issuerUri": { + "description": "Required. The OIDC issuer URI. Must be a valid URI using the 'https' scheme.", + "type": "string" + }, + "jwksJson": { + "description": "OIDC JWKs in JSON String format. For details on the definition of a JWK, see https://tools.ietf.org/html/rfc7517. If not set, the `jwks_uri` from the discovery document(fetched from the .well-known path of the `issuer_uri`) will be used. Currently, RSA and EC asymmetric keys are supported. The JWK must use following format and include only the following fields: { \"keys\": [ { \"kty\": \"RSA/EC\", \"alg\": \"\", \"use\": \"sig\", \"kid\": \"\", \"n\": \"\", \"e\": \"\", \"x\": \"\", \"y\": \"\", \"crv\": \"\" } ] }", + "type": "string" + }, + "webSsoConfig": { + "$ref": "GoogleIamAdminV1WorkforcePoolProviderOidcWebSsoConfig", + "description": "Required. Configuration for web single sign-on for the OIDC provider. Here, web sign-in refers to console sign-in and gcloud sign-in through the browser." + } + }, + "type": "object" + }, + "GoogleIamAdminV1WorkforcePoolProviderOidcClientSecret": { + "description": "Representation of a client secret configured for the OIDC provider.", + "id": "GoogleIamAdminV1WorkforcePoolProviderOidcClientSecret", + "properties": { + "value": { + "$ref": "GoogleIamAdminV1WorkforcePoolProviderOidcClientSecretValue", + "description": "The value of the client secret." + } + }, + "type": "object" + }, + "GoogleIamAdminV1WorkforcePoolProviderOidcClientSecretValue": { + "description": "Representation of the value of the client secret.", + "id": "GoogleIamAdminV1WorkforcePoolProviderOidcClientSecretValue", + "properties": { + "plainText": { + "description": "Input only. The plain text of the client secret value. For security reasons, this field is only used for input and will never be populated in any response.", + "type": "string" + }, + "thumbprint": { + "description": "Output only. A thumbprint to represent the current client secret value.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleIamAdminV1WorkforcePoolProviderOidcWebSsoConfig": { + "description": "Configuration for web single sign-on for the OIDC provider.", + "id": "GoogleIamAdminV1WorkforcePoolProviderOidcWebSsoConfig", + "properties": { + "additionalScopes": { + "description": "Additional scopes to request for in the OIDC authentication request on top of scopes requested by default. By default, the `openid`, `profile` and `email` scopes that are supported by the identity provider are requested. Each additional scope may be at most 256 characters. A maximum of 10 additional scopes may be configured.", + "items": { + "type": "string" + }, + "type": "array" + }, + "assertionClaimsBehavior": { + "description": "Required. The behavior for how OIDC Claims are included in the `assertion` object used for attribute mapping and attribute condition.", + "enum": [ + "ASSERTION_CLAIMS_BEHAVIOR_UNSPECIFIED", + "MERGE_USER_INFO_OVER_ID_TOKEN_CLAIMS", + "ONLY_ID_TOKEN_CLAIMS" + ], + "enumDescriptions": [ + "No assertion claims behavior specified.", + "Merge the UserInfo Endpoint Claims with ID Token Claims, preferring UserInfo Claim Values for the same Claim Name. This option is available only for the Authorization Code Flow.", + "Only include ID Token Claims." + ], + "type": "string" + }, + "responseType": { + "description": "Required. The Response Type to request for in the OIDC Authorization Request for web sign-in. The `CODE` Response Type is recommended to avoid the Implicit Flow, for security reasons.", + "enum": [ + "RESPONSE_TYPE_UNSPECIFIED", + "CODE", + "ID_TOKEN" + ], + "enumDescriptions": [ + "No Response Type specified.", + "The `response_type=code` selection uses the Authorization Code Flow for web sign-in. Requires a configured client secret.", + "The `response_type=id_token` selection uses the Implicit Flow for web sign-in." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleIamAdminV1WorkforcePoolProviderSaml": { + "description": "Represents a SAML identity provider.", + "id": "GoogleIamAdminV1WorkforcePoolProviderSaml", + "properties": { + "idpMetadataXml": { + "description": "Required. SAML Identity provider configuration metadata xml doc. The xml document should comply with [SAML 2.0 specification](https://docs.oasis-open.org/security/saml/v2.0/saml-metadata-2.0-os.pdf). The max size of the acceptable xml document will be bounded to 128k characters. The metadata xml document should satisfy the following constraints: 1) Must contain an Identity Provider Entity ID. 2) Must contain at least one non-expired signing key certificate. 3) For each signing key: a) Valid from should be no more than 7 days from now. b) Valid to should be no more than 15 years in the future. 4) Up to 3 IdP signing keys are allowed in the metadata xml. When updating the provider's metadata xml, at least one non-expired signing key must overlap with the existing metadata. This requirement is skipped if there are no non-expired signing keys present in the existing metadata.", + "type": "string" + } + }, + "type": "object" + }, + "KeyData": { + "description": "Represents a public key data along with its format.", + "id": "KeyData", + "properties": { + "format": { + "description": "Output only. The format of the key.", + "enum": [ + "KEY_FORMAT_UNSPECIFIED", + "RSA_X509_PEM" + ], + "enumDescriptions": [ + "No format has been specified. This is an invalid format and must not be used.", + "A RSA public key wrapped in an X.509v3 certificate ([RFC5280] ( https://www.ietf.org/rfc/rfc5280.txt)), encoded in base64, and wrapped in [public certificate label](https://datatracker.ietf.org/doc/html/rfc7468#section-5.1)." + ], + "readOnly": true, + "type": "string" + }, + "key": { + "description": "Output only. The key data. The format of the key is represented by the format field.", + "readOnly": true, + "type": "string" + }, + "keySpec": { + "description": "Required. The specifications for the key.", + "enum": [ + "KEY_SPEC_UNSPECIFIED", + "RSA_2048", + "RSA_3072", + "RSA_4096" + ], + "enumDescriptions": [ + "No key specification specified.", + "A 2048 bit RSA key.", + "A 3072 bit RSA key.", + "A 4096 bit RSA key." + ], + "type": "string" + }, + "notAfterTime": { + "description": "Output only. Latest timestamp when this key is valid. Attempts to use this key after this time will fail. Only present if the key data represents a X.509 certificate.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "notBeforeTime": { + "description": "Output only. Earliest timestamp when this key is valid. Attempts to use this key before this time will fail. Only present if the key data represents a X.509 certificate.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "LintPolicyRequest": { "description": "The request to lint a Cloud IAM policy object.", "id": "LintPolicyRequest", @@ -2324,6 +3454,78 @@ }, "type": "object" }, + "ListWorkforcePoolProviderKeysResponse": { + "description": "Response message for ListWorkforcePoolProviderKeys.", + "id": "ListWorkforcePoolProviderKeysResponse", + "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" + }, + "workforcePoolProviderKeys": { + "description": "A list of WorkforcePoolProviderKeys.", + "items": { + "$ref": "WorkforcePoolProviderKey" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListWorkforcePoolProvidersResponse": { + "description": "Response message for ListWorkforcePoolProviders.", + "id": "ListWorkforcePoolProvidersResponse", + "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" + }, + "workforcePoolProviders": { + "description": "A list of providers.", + "items": { + "$ref": "WorkforcePoolProvider" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListWorkforcePoolsResponse": { + "description": "Response message for ListWorkforcePools.", + "id": "ListWorkforcePoolsResponse", + "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" + }, + "workforcePools": { + "description": "A list of pools.", + "items": { + "$ref": "WorkforcePool" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListWorkloadIdentityPoolProviderKeysResponse": { + "description": "Response message for ListWorkloadIdentityPoolProviderKeys.", + "id": "ListWorkloadIdentityPoolProviderKeysResponse", + "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" + }, + "workloadIdentityPoolProviderKeys": { + "description": "A list of WorkloadIdentityPoolProviderKey", + "items": { + "$ref": "WorkloadIdentityPoolProviderKey" + }, + "type": "array" + } + }, + "type": "object" + }, "ListWorkloadIdentityPoolProvidersResponse": { "description": "Response message for ListWorkloadIdentityPoolProviders.", "id": "ListWorkloadIdentityPoolProvidersResponse", @@ -2374,6 +3576,10 @@ "issuerUri": { "description": "Required. The OIDC issuer URL. Must be an HTTPS endpoint.", "type": "string" + }, + "jwksJson": { + "description": "Optional. OIDC JWKs in JSON String format. For details on the definition of a JWK, see https://tools.ietf.org/html/rfc7517. If not set, the `jwks_uri` from the discovery document(fetched from the .well-known path of the `issuer_uri`) will be used. Currently, RSA and EC asymmetric keys are supported. The JWK must use following format and include only the following fields: { \"keys\": [ { \"kty\": \"RSA/EC\", \"alg\": \"\", \"use\": \"sig\", \"kid\": \"\", \"n\": \"\", \"e\": \"\", \"x\": \"\", \"y\": \"\", \"crv\": \"\" } ] }", + "type": "string" } }, "type": "object" @@ -2407,12 +3613,56 @@ "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" } }, "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" + }, + "cancelRequested": { + "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" + }, + "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" + }, + "statusDetail": { + "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" + }, "PatchServiceAccountRequest": { "description": "The service account patch request. You can patch only the `display_name` and `description` fields. You must use the `update_mask` field to specify which of these fields you want to patch. Only the fields specified in the request are guaranteed to be returned in the response. Other fields may be empty in the response.", "id": "PatchServiceAccountRequest", @@ -2458,6 +3708,7 @@ "type": "string" }, "onlyInPredefinedRoles": { + "deprecated": true, "type": "boolean" }, "primaryPermission": { @@ -2509,7 +3760,7 @@ "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/).", + "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": { @@ -2690,7 +3941,7 @@ "type": "array" }, "name": { - "description": "The name of the role. When Role is used in CreateRole, the role name must not be set. When Role is used in output and other input such as UpdateRole, the role name is the complete path, e.g., roles/logging.viewer for predefined roles and organizations/{ORGANIZATION_ID}/roles/logging.viewer for custom roles.", + "description": "The name of the role. When `Role` is used in `CreateRole`, the role name must not be set. When `Role` is used in output and other input such as `UpdateRole`, the role name is the complete path. For example, `roles/logging.viewer` for predefined roles, `organizations/{ORGANIZATION_ID}/roles/my-role` for organization-level custom roles, and `projects/{PROJECT_ID}/roles/my-role` for project-level custom roles.", "type": "string" }, "stage": { @@ -2725,14 +3976,14 @@ "id": "Saml", "properties": { "idpMetadataXml": { - "description": "Required. SAML Identity provider configuration metadata xml doc. The xml document should comply with [SAML 2.0 specification](https://www.oasis-open.org/committees/download.php/56785/sstc-saml-metadata-errata-2.0-wd-05.pdf). The max size of the acceptable xml document will be bounded to 128k characters. The metadata xml document should satisfy the following constraints: 1) Must contain an Identity Provider Entity ID. 2) Must contain at least one non-expired signing key certificate. 3) For each signing key: a) Valid from should be no more than 7 days from now. b) Valid to should be no more than 14 years in the future. 4) Upto 3 IdP signing keys are allowed in the metadata xml. When updating the provider's metadata xml, at lease one non-expired signing key must overlap with the existing metadata. This requirement is skipped if there are no non-expired signing keys present in the existing metadata", + "description": "Required. SAML Identity provider configuration metadata xml doc. The xml document should comply with [SAML 2.0 specification](https://www.oasis-open.org/committees/download.php/56785/sstc-saml-metadata-errata-2.0-wd-05.pdf). The max size of the acceptable xml document will be bounded to 128k characters. The metadata xml document should satisfy the following constraints: 1) Must contain an Identity Provider Entity ID. 2) Must contain at least one non-expired signing key certificate. 3) For each signing key: a) Valid from should be no more than 7 days from now. b) Valid to should be no more than 15 years in the future. 4) Upto 3 IdP signing keys are allowed in the metadata xml. When updating the provider's metadata xml, at lease one non-expired signing key must overlap with the existing metadata. This requirement is skipped if there are no non-expired signing keys present in the existing metadata", "type": "string" } }, "type": "object" }, "ServiceAccount": { - "description": "An IAM service account. A service account is an account for an application or a virtual machine (VM) instance, not a person. You can use a service account to call Google APIs. To learn more, read the [overview of service accounts](https://cloud.google.com/iam/help/service-accounts/overview). When you create a service account, you specify the project ID that owns the service account, as well as a name that must be unique within the project. IAM uses these values to create an email address that identifies the service //", + "description": "An IAM service account. A service account is an account for an application or a virtual machine (VM) instance, not a person. You can use a service account to call Google APIs. To learn more, read the [overview of service accounts](https://cloud.google.com/iam/help/service-accounts/overview). When you create a service account, you specify the project ID that owns the service account, as well as a name that must be unique within the project. IAM uses these values to create an email address that identifies the service account. //", "id": "ServiceAccount", "properties": { "description": { @@ -2754,6 +4005,7 @@ "type": "string" }, "etag": { + "deprecated": true, "description": "Deprecated. Do not use.", "format": "byte", "type": "string" @@ -2871,6 +4123,17 @@ }, "type": "object" }, + "ServiceConfig": { + "description": "Configuration for a service.", + "id": "ServiceConfig", + "properties": { + "domain": { + "description": "Optional. Domain name of the service. Example: console.cloud.google", + "type": "string" + } + }, + "type": "object" + }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", @@ -2892,6 +4155,7 @@ "id": "SignBlobRequest", "properties": { "bytesToSign": { + "deprecated": true, "description": "Required. Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The bytes to sign.", "format": "byte", "type": "string" @@ -2904,10 +4168,12 @@ "id": "SignBlobResponse", "properties": { "keyId": { + "deprecated": true, "description": "Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The id of the key used to sign the blob.", "type": "string" }, "signature": { + "deprecated": true, "description": "Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The signed blob.", "format": "byte", "type": "string" @@ -2920,6 +4186,7 @@ "id": "SignJwtRequest", "properties": { "payload": { + "deprecated": true, "description": "Required. Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The JWT payload to sign. Must be a serialized JSON object that contains a JWT Claims Set. For example: `{\"sub\": \"user@example.com\", \"iat\": 313435}` If the JWT Claims Set contains an expiration time (`exp`) claim, it must be an integer timestamp that is not in the past and no more than 12 hours in the future. If the JWT Claims Set does not contain an expiration time (`exp`) claim, this claim is added automatically, with a timestamp that is 1 hour in the future.", "type": "string" } @@ -2931,10 +4198,12 @@ "id": "SignJwtResponse", "properties": { "keyId": { + "deprecated": true, "description": "Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The id of the key used to sign the JWT.", "type": "string" }, "signedJwt": { + "deprecated": true, "description": "Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The signed JWT.", "type": "string" } @@ -3024,6 +4293,36 @@ }, "type": "object" }, + "UndeleteWorkforcePoolProviderKeyRequest": { + "description": "Request message for UndeleteWorkforcePoolProviderKey.", + "id": "UndeleteWorkforcePoolProviderKeyRequest", + "properties": {}, + "type": "object" + }, + "UndeleteWorkforcePoolProviderRequest": { + "description": "Request message for UndeleteWorkforcePoolProvider.", + "id": "UndeleteWorkforcePoolProviderRequest", + "properties": {}, + "type": "object" + }, + "UndeleteWorkforcePoolRequest": { + "description": "Request message for UndeleteWorkforcePool.", + "id": "UndeleteWorkforcePoolRequest", + "properties": {}, + "type": "object" + }, + "UndeleteWorkforcePoolSubjectRequest": { + "description": "Request message for UndeleteWorkforcePoolSubject.", + "id": "UndeleteWorkforcePoolSubjectRequest", + "properties": {}, + "type": "object" + }, + "UndeleteWorkloadIdentityPoolProviderKeyRequest": { + "description": "Request message for UndeleteWorkloadIdentityPoolProviderKey.", + "id": "UndeleteWorkloadIdentityPoolProviderKeyRequest", + "properties": {}, + "type": "object" + }, "UndeleteWorkloadIdentityPoolProviderRequest": { "description": "Request message for UndeleteWorkloadIdentityPoolProvider.", "id": "UndeleteWorkloadIdentityPoolProviderRequest", @@ -3048,8 +4347,179 @@ }, "type": "object" }, + "WorkforcePool": { + "description": "Represents a collection of external workforces. Provides namespaces for federated users that can be referenced in IAM policies.", + "id": "WorkforcePool", + "properties": { + "accessRestrictions": { + "$ref": "AccessRestrictions", + "description": "Optional. Configure access restrictions on the workforce pool users. This is an optional field. If specified web sign-in can be restricted to given set of services or programmatic sign-in can be disabled for pool users." + }, + "description": { + "description": "A user-specified description of the pool. Cannot exceed 256 characters.", + "type": "string" + }, + "disabled": { + "description": "Disables the workforce pool. You cannot use a disabled pool to exchange tokens, or use existing tokens to access resources. If the pool is re-enabled, existing tokens grant access again.", + "type": "boolean" + }, + "displayName": { + "description": "A user-specified display name of the pool in Google Cloud Console. Cannot exceed 32 characters.", + "type": "string" + }, + "expireTime": { + "description": "Output only. Time after which the workforce pool will be permanently purged and cannot be recovered.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. The resource name of the pool. Format: `locations/{location}/workforcePools/{workforce_pool_id}`", + "readOnly": true, + "type": "string" + }, + "parent": { + "description": "Immutable. The resource name of the parent. Format: `organizations/{org-id}`.", + "type": "string" + }, + "sessionDuration": { + "description": "Duration that the Google Cloud access tokens, console sign-in sessions, and `gcloud` sign-in sessions from this pool are valid. Must be greater than 15 minutes (900s) and less than 12 hours (43200s). If `session_duration` is not configured, minted credentials have a default duration of one hour (3600s). For SAML providers, the lifetime of the token is the minimum of the `session_duration` and the `SessionNotOnOrAfter` claim in the SAML assertion.", + "format": "google-duration", + "type": "string" + }, + "state": { + "description": "Output only. The state of the pool.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "DELETED" + ], + "enumDescriptions": [ + "State unspecified.", + "The pool is active and may be used in Google Cloud policies.", + "The pool is soft-deleted. Soft-deleted pools are permanently deleted after approximately 30 days. You can restore a soft-deleted pool using UndeleteWorkforcePool. You cannot reuse the ID of a soft-deleted pool until it is permanently deleted. While a pool is deleted, you cannot use it to exchange tokens, or use existing tokens to access resources. If the pool is undeleted, existing tokens grant access again." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "WorkforcePoolProvider": { + "description": "A configuration for an external identity provider.", + "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`, `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. * `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": { + "description": "A user-specified description of the provider. Cannot exceed 256 characters.", + "type": "string" + }, + "disabled": { + "description": "Disables the workforce pool provider. You cannot use a disabled provider to exchange tokens. However, existing tokens still grant access.", + "type": "boolean" + }, + "displayName": { + "description": "A user-specified display name for the provider. Cannot exceed 32 characters.", + "type": "string" + }, + "expireTime": { + "description": "Output only. Time after which the workload pool provider will be permanently purged and cannot be recovered.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. The resource name of the provider. Format: `locations/{location}/workforcePools/{workforce_pool_id}/providers/{provider_id}`", + "readOnly": true, + "type": "string" + }, + "oidc": { + "$ref": "GoogleIamAdminV1WorkforcePoolProviderOidc", + "description": "An OpenId Connect 1.0 identity provider configuration." + }, + "saml": { + "$ref": "GoogleIamAdminV1WorkforcePoolProviderSaml", + "description": "A SAML identity provider configuration." + }, + "state": { + "description": "Output only. The state of the provider.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "DELETED" + ], + "enumDescriptions": [ + "State unspecified.", + "The provider is active and may be used to validate authentication credentials.", + "The provider is soft-deleted. Soft-deleted providers are permanently deleted after approximately 30 days. You can restore a soft-deleted provider using UndeleteWorkforcePoolProvider." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "WorkforcePoolProviderKey": { + "description": "Represents a public key configuration for a Workforce Pool Provider. The key can be configured in your identity provider to encrypt SAML assertions. Google holds the corresponding private key, which it uses to decrypt encrypted tokens.", + "id": "WorkforcePoolProviderKey", + "properties": { + "expireTime": { + "description": "Output only. The time after which the key will be permanently deleted and cannot be recovered. Note that the key may get purged before this time if the total limit of keys per provider is exceeded.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "keyData": { + "$ref": "KeyData", + "description": "Immutable. Public half of the asymmetric key." + }, + "name": { + "description": "Output only. The resource name of the key.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The state of the key.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "DELETED" + ], + "enumDescriptions": [ + "State unspecified.", + "The key is active.", + "The key is soft-deleted. Soft-deleted keys are permanently deleted after approximately 30 days. You can restore a soft-deleted key using UndeleteWorkforcePoolProviderKey." + ], + "readOnly": true, + "type": "string" + }, + "use": { + "description": "Required. The purpose of the key.", + "enum": [ + "KEY_USE_UNSPECIFIED", + "ENCRYPTION" + ], + "enumDescriptions": [ + "KeyUse unspecified.", + "The key is used for encryption." + ], + "type": "string" + } + }, + "type": "object" + }, "WorkloadIdentityPool": { - "description": "Represents a collection of external workload identities. You can define IAM policies to grant these identities access to Google Cloud resources.", + "description": "Represents a collection of workload identities. You can define IAM policies to grant these identities access to Google Cloud resources.", "id": "WorkloadIdentityPool", "properties": { "description": { @@ -3064,6 +4534,12 @@ "description": "A display name for the pool. Cannot exceed 32 characters.", "type": "string" }, + "expireTime": { + "description": "Output only. Time after which the workload identity pool will be permanently purged and cannot be recovered.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "name": { "description": "Output only. The resource name of the pool.", "readOnly": true, @@ -3105,7 +4581,7 @@ "additionalProperties": { "type": "string" }, - "description": "Maps attributes from 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. Cannot exceed 127 bytes. * `google.groups`: Groups the external identity belongs to. You can grant groups access to resources using an IAM `principalSet` binding; access applies to all members of the group. 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 workload to Google Cloud resources. For example: * `google.subject`: `principal://iam.googleapis.com/projects/{project}/locations/{location}/workloadIdentityPools/{pool}/subject/{value}` * `google.groups`: `principalSet://iam.googleapis.com/projects/{project}/locations/{location}/workloadIdentityPools/{pool}/group/{value}` * `attribute.{custom_attribute}`: `principalSet://iam.googleapis.com/projects/{project}/locations/{location}/workloadIdentityPools/{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 8KB. For AWS providers, if no attribute mapping is defined, the following default mapping applies: ``` { \"google.subject\":\"assertion.arn\", \"attribute.aws_role\": \"assertion.arn.contains('assumed-role')\" \" ? assertion.arn.extract('{account_arn}assumed-role/')\" \" + 'assumed-role/'\" \" + assertion.arn.extract('assumed-role/{role_name}/')\" \" : assertion.arn\", } ``` If any custom attribute mappings are defined, they must include a mapping to the `google.subject` attribute. For OIDC providers, you must supply a custom mapping, which must include 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": " Maps attributes from 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. Cannot exceed 127 bytes. * `google.groups`: Groups the external identity belongs to. You can grant groups access to resources using an IAM `principalSet` binding; access applies to all members of the group. 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 workload to Google Cloud resources. For example: * `google.subject`: `principal://iam.googleapis.com/projects/{project}/locations/{location}/workloadIdentityPools/{pool}/subject/{value}` * `google.groups`: `principalSet://iam.googleapis.com/projects/{project}/locations/{location}/workloadIdentityPools/{pool}/group/{value}` * `attribute.{custom_attribute}`: `principalSet://iam.googleapis.com/projects/{project}/locations/{location}/workloadIdentityPools/{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 8KB. For AWS providers, if no attribute mapping is defined, the following default mapping applies: ``` { \"google.subject\":\"assertion.arn\", \"attribute.aws_role\": \"assertion.arn.contains('assumed-role')\" \" ? assertion.arn.extract('{account_arn}assumed-role/')\" \" + 'assumed-role/'\" \" + assertion.arn.extract('assumed-role/{role_name}/')\" \" : assertion.arn\", } ``` If any custom attribute mappings are defined, they must include a mapping to the `google.subject` attribute. For OIDC providers, you must supply a custom mapping, which must include 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" }, "aws": { @@ -3124,6 +4600,12 @@ "description": "A display name for the provider. Cannot exceed 32 characters.", "type": "string" }, + "expireTime": { + "description": "Output only. Time after which the workload identity pool provider will be permanently purged and cannot be recovered.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "name": { "description": "Output only. The resource name of the provider.", "readOnly": true, @@ -3154,6 +4636,55 @@ } }, "type": "object" + }, + "WorkloadIdentityPoolProviderKey": { + "description": "Represents a public key configuration for your workload identity pool provider. The key can be configured in your identity provider to encrypt the SAML assertions. Google holds the corresponding private key which it uses to decrypt encrypted tokens.", + "id": "WorkloadIdentityPoolProviderKey", + "properties": { + "expireTime": { + "description": "Output only. Time after which the key will be permanently purged and cannot be recovered. Note that the key may get purged before this timestamp if the total limit of keys per provider is crossed.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "keyData": { + "$ref": "KeyData", + "description": "Immutable. Public half of the asymmetric key." + }, + "name": { + "description": "Output only. The resource name of the key.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The state of the key.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "DELETED" + ], + "enumDescriptions": [ + "State unspecified.", + "The key is active.", + "The key is soft-deleted. Soft-deleted keys are permanently deleted after approximately 30 days. You can restore a soft-deleted key using UndeleteWorkloadIdentityPoolProviderKey. While a key is deleted, you cannot use it during the federation." + ], + "readOnly": true, + "type": "string" + }, + "use": { + "description": "Required. The purpose of the key.", + "enum": [ + "KEY_USE_UNSPECIFIED", + "ENCRYPTION" + ], + "enumDescriptions": [ + "The key use is not known.", + "The public key is used for encryption purposes." + ], + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/iamcredentials/v1/iamcredentials-api.json b/etc/api/iamcredentials/v1/iamcredentials-api.json index 582adeaa02..0ab41243f1 100644 --- a/etc/api/iamcredentials/v1/iamcredentials-api.json +++ b/etc/api/iamcredentials/v1/iamcredentials-api.json @@ -226,7 +226,7 @@ } } }, - "revision": "20230113", + "revision": "20240221", "rootUrl": "https://iamcredentials.googleapis.com/", "schemas": { "GenerateAccessTokenRequest": { diff --git a/etc/api/iap/v1/iap-api.json b/etc/api/iap/v1/iap-api.json index e89f064c94..e836bc963d 100644 --- a/etc/api/iap/v1/iap-api.json +++ b/etc/api/iap/v1/iap-api.json @@ -632,7 +632,7 @@ "type": "string" }, "updateMask": { - "description": "The field mask specifying which IAP settings should be updated. If omitted, the all of the settings are updated. See https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", + "description": "The field mask specifying which IAP settings should be updated. If omitted, then all of the settings are updated. See https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask. Note: All IAP reauth settings must always be set together, using the field mask: `iapSettings.accessSettings.reauthSettings`.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -648,11 +648,41 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "validateAttributeExpression": { + "description": "Validates a given CEL expression conforms to IAP restrictions.", + "flatPath": "v1/{v1Id}:validateAttributeExpression", + "httpMethod": "POST", + "id": "iap.validateAttributeExpression", + "parameterOrder": [ + "name" + ], + "parameters": { + "expression": { + "description": "Required. User input string expression. Should be of the form 'attributes.saml_attributes.filter(attribute, attribute.name in ['{attribute_name}', '{attribute_name}'])'", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The resource name of the IAP protected resource.", + "location": "path", + "pattern": "^.*$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:validateAttributeExpression", + "response": { + "$ref": "ValidateIapAttributeExpressionResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } } }, - "revision": "20230118", + "revision": "20240224", "rootUrl": "https://iap.googleapis.com/", "schemas": { "AccessDeniedPageSettings": { @@ -755,7 +785,7 @@ "type": "boolean" }, "expression": { - "description": "Raw string CEL expression. Must return a list of attributes. Maximum of 45 attributes can be selected. Expressions can select different attribute types from `attributes`: `attributes.saml_attributes`, `attributes.iap_attributes`. Limited functions are supported: - filter: .filter(, ) -> returns a subset of where is true for every item - in: in -> returns true if contains - selectByName: .selectByName() -> returns the attribute in with the given name, otherwise returns empty. - emitAs: .emitAs() -> sets the name field to the given for propagation in selected output credentials. - strict: .strict() -> ignore the `x-goog-iap-attr-` prefix for the provided attribute when propagating via the `HEADER` output credential, i.e. request headers. - append: .append() OR .append() -> append the provided or onto the end of Example expression: attributes.saml_attributes.filter(x, x.name in ['test']).append(attributes.iap_attributes.selectByName('exact').emitAs('custom').strict())", + "description": "Raw string CEL expression. Must return a list of attributes. A maximum of 45 attributes can be selected. Expressions can select different attribute types from `attributes`: `attributes.saml_attributes`, `attributes.iap_attributes`. The following functions are supported: - filter `.filter(, )`: Returns a subset of `` where `` is true for every item. - in ` in `: Returns true if `` contains ``. - selectByName `.selectByName()`: Returns the attribute in `` with the given `` name, otherwise returns empty. - emitAs `.emitAs()`: Sets the `` name field to the given `` for propagation in selected output credentials. - strict `.strict()`: Ignores the `x-goog-iap-attr-` prefix for the provided `` when propagating with the `HEADER` output credential, such as request headers. - append `.append()` OR `.append()`: Appends the provided `` or `` to the end of ``. Example expression: `attributes.saml_attributes.filter(x, x.name in ['test']).append(attributes.iap_attributes.selectByName('exact').emitAs('custom').strict())`", "type": "string" }, "outputCredentials": { @@ -768,10 +798,10 @@ "RCTOKEN" ], "enumDescriptions": [ - "No output credential. This is unsupported in IAP, there must be an output credential.", + "An output credential is required.", "Propagate attributes in the headers with \"x-goog-iap-attr-\" prefix.", - "Propagate attributes in the JWT of the form: \"additional_claims\": { \"my_attribute\": [\"value1\", \"value2\"] }", - "Propagate attributes in the RCToken of the form: \"additional_claims\": { \"my_attribute\": [\"value1\", \"value2\"] }" + "Propagate attributes in the JWT of the form: `\"additional_claims\": { \"my_attribute\": [\"value1\", \"value2\"] }`", + "Propagate attributes in the RCToken of the form: `\"additional_claims\": { \"my_attribute\": [\"value1\", \"value2\"] }`" ], "type": "string" }, @@ -789,14 +819,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1016,12 +1046,19 @@ "loginHint": { "description": "Domain hint to send as hd=? parameter in OAuth request flow. Enables redirect to primary IDP by skipping Google's login screen. https://developers.google.com/identity/protocols/OpenIDConnect#hd-param Note: IAP does not verify that the id token's hd claim matches this value since access behavior is managed by IAM policies.", "type": "string" + }, + "programmaticClients": { + "description": "List of client ids allowed to use IAP programmatically.", + "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/).", + "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": { "bindings": { @@ -1101,18 +1138,27 @@ "METHOD_UNSPECIFIED", "LOGIN", "PASSWORD", - "SECURE_KEY" + "SECURE_KEY", + "ENROLLED_SECOND_FACTORS" + ], + "enumDeprecated": [ + false, + false, + true, + false, + false ], "enumDescriptions": [ "Reauthentication disabled.", "Prompts the user to log in again.", - "Deprecated, no longer accepted by IAP APIs.", - "User must use their secure key 2nd factor device." + "", + "User must use their secure key 2nd factor device.", + "User can use any enabled 2nd factor." ], "type": "string" }, "policyType": { - "description": "How IAP determines the effective policy in cases of hierarchial policies. Policies are merged from higher in the hierarchy to lower in the hierarchy.", + "description": "How IAP determines the effective policy in cases of hierarchical policies. Policies are merged from higher in the hierarchy to lower in the hierarchy.", "enum": [ "POLICY_TYPE_UNSPECIFIED", "MINIMUM", @@ -1137,6 +1183,14 @@ "Resource": { "id": "Resource", "properties": { + "expectedNextState": { + "additionalProperties": { + "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. 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": { "additionalProperties": { "type": "string" @@ -1222,6 +1276,12 @@ } }, "type": "object" + }, + "ValidateIapAttributeExpressionResponse": { + "description": "API requires a return message, but currently all response strings will fit in the status and public message. In the future, this response can hold AST validation info.", + "id": "ValidateIapAttributeExpressionResponse", + "properties": {}, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/iap/v1beta1/iap-api.json b/etc/api/iap/v1beta1/iap-api.json index cfe236ed66..a5ff956b7a 100644 --- a/etc/api/iap/v1beta1/iap-api.json +++ b/etc/api/iap/v1beta1/iap-api.json @@ -194,7 +194,7 @@ } } }, - "revision": "20230118", + "revision": "20240224", "rootUrl": "https://iap.googleapis.com/", "schemas": { "Binding": { @@ -206,14 +206,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -266,7 +266,7 @@ "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/).", + "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": { "bindings": { diff --git a/etc/api/ids/v1/ids-api.json b/etc/api/ids/v1/ids-api.json index 11c8fe039b..5a516910d6 100644 --- a/etc/api/ids/v1/ids-api.json +++ b/etc/api/ids/v1/ids-api.json @@ -201,7 +201,7 @@ "type": "string" }, "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "An optional request ID to identify requests. Specify a unique 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" } @@ -234,7 +234,7 @@ "type": "string" }, "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "An optional request ID to identify requests. Specify a unique 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" } @@ -366,7 +366,7 @@ "type": "string" }, "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "An optional request ID to identify requests. Specify a unique 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" }, @@ -527,7 +527,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "ids.projects.locations.operations.list", @@ -574,7 +574,7 @@ } } }, - "revision": "20221113", + "revision": "20231203", "rootUrl": "https://ids.googleapis.com/", "schemas": { "AuditConfig": { @@ -634,7 +634,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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.", "items": { "type": "string" }, @@ -842,7 +842,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -904,7 +904,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" } }, @@ -955,7 +955,7 @@ "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/).", + "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": { diff --git a/etc/api/indexing/v3/indexing-api.json b/etc/api/indexing/v3/indexing-api.json index 6d6c1b3619..368106c563 100644 --- a/etc/api/indexing/v3/indexing-api.json +++ b/etc/api/indexing/v3/indexing-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://indexing.googleapis.com/", "batchPath": "batch", "canonicalName": "Indexing", - "description": "Notifies Google when your web pages change.", + "description": "Notifies Google Web Search when your web pages change.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/search/apis/indexing-api/", "fullyEncodeReservedExpansion": true, @@ -149,7 +149,7 @@ } } }, - "revision": "20230117", + "revision": "20240227", "rootUrl": "https://indexing.googleapis.com/", "schemas": { "PublishUrlNotificationResponse": { @@ -214,7 +214,7 @@ } }, "servicePath": "", - "title": "Indexing API", + "title": "Web Search Indexing API", "version": "v3", "version_module": true } \ No newline at end of file diff --git a/etc/api/jobs/v3/jobs-api.json b/etc/api/jobs/v3/jobs-api.json index 260cbdf9d4..8cc9793443 100644 --- a/etc/api/jobs/v3/jobs-api.json +++ b/etc/api/jobs/v3/jobs-api.json @@ -125,6 +125,7 @@ "type": "string" }, "languageCode": { + "deprecated": true, "description": "Deprecated. Use language_codes instead. Optional. The language of the query. This is the BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). For CompletionType.JOB_TITLE type, only open jobs with the same language_code are returned. For CompletionType.COMPANY_NAME type, only companies having open jobs with the same language_code are returned. For CompletionType.COMBINED type, only open jobs with the same language_code or companies having open jobs with the same language_code are returned. The maximum number of allowed characters is 255.", "location": "query", "type": "string" @@ -651,7 +652,7 @@ } } }, - "revision": "20230120", + "revision": "20240202", "rootUrl": "https://jobs.googleapis.com/", "schemas": { "ApplicationInfo": { @@ -863,6 +864,7 @@ "type": "string" }, "keywordSearchableJobCustomAttributes": { + "deprecated": true, "description": "Optional. This field is deprecated. Please set the searchability of the custom attribute in the Job.custom_attributes going forward. A list of keys of filterable Job.custom_attributes, whose corresponding `string_values` are used in keyword search. Jobs with `string_values` under these specified field keys are returned if any of the values matches the search keyword. Custom field values with parenthesis, brackets and special symbols won't be properly searchable, and those keyword queries need to be surrounded by quotes.", "items": { "type": "string" @@ -1731,6 +1733,7 @@ "type": "string" }, "visibility": { + "deprecated": true, "description": "Deprecated. The job is only visible to the owner. The visibility of the job. Defaults to Visibility.ACCOUNT_ONLY if not specified.", "enum": [ "VISIBILITY_UNSPECIFIED", @@ -2201,6 +2204,12 @@ "TELECOMMUTE_ALLOWED", "TELECOMMUTE_JOBS_EXCLUDED" ], + "enumDeprecated": [ + false, + true, + false, + false + ], "enumDescriptions": [ "Default value if the telecommute preference is not specified.", "Deprecated: Ignore telecommute status of jobs. Use TELECOMMUTE_JOBS_EXCLUDED if want to exclude telecommute jobs.", @@ -2622,6 +2631,7 @@ "description": "Required. The meta information collected about the job searcher, used to improve the search quality of the service. The identifiers (such as `user_id`) are provided by users, and must be unique and consistent." }, "requirePreciseResultSize": { + "deprecated": true, "description": "This field is deprecated.", "type": "boolean" }, diff --git a/etc/api/jobs/v3p1beta1/jobs-api.json b/etc/api/jobs/v3p1beta1/jobs-api.json index 43febb94a7..c6c6fdc262 100644 --- a/etc/api/jobs/v3p1beta1/jobs-api.json +++ b/etc/api/jobs/v3p1beta1/jobs-api.json @@ -125,6 +125,7 @@ "type": "string" }, "languageCode": { + "deprecated": true, "description": "Deprecated. Use language_codes instead. Optional. The language of the query. This is the BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). For CompletionType.JOB_TITLE type, only open jobs with the same language_code are returned. For CompletionType.COMPANY_NAME type, only companies having open jobs with the same language_code are returned. For CompletionType.COMBINED type, only open jobs with the same language_code or companies having open jobs with the same language_code are returned. The maximum number of allowed characters is 255.", "location": "query", "type": "string" @@ -681,7 +682,7 @@ } } }, - "revision": "20230120", + "revision": "20240202", "rootUrl": "https://jobs.googleapis.com/", "schemas": { "ApplicationInfo": { @@ -897,6 +898,7 @@ "type": "string" }, "keywordSearchableJobCustomAttributes": { + "deprecated": true, "description": "Optional. This field is deprecated. Please set the searchability of the custom attribute in the Job.custom_attributes going forward. A list of keys of filterable Job.custom_attributes, whose corresponding `string_values` are used in keyword search. Jobs with `string_values` under these specified field keys are returned if any of the values matches the search keyword. Custom field values with parenthesis, brackets and special symbols won't be properly searchable, and those keyword queries need to be surrounded by quotes.", "items": { "type": "string" @@ -1828,6 +1830,7 @@ "type": "string" }, "visibility": { + "deprecated": true, "description": "Deprecated. The job is only visible to the owner. The visibility of the job. Defaults to Visibility.ACCOUNT_ONLY if not specified.", "enum": [ "VISIBILITY_UNSPECIFIED", @@ -2305,6 +2308,12 @@ "TELECOMMUTE_ALLOWED", "TELECOMMUTE_JOBS_EXCLUDED" ], + "enumDeprecated": [ + false, + true, + false, + false + ], "enumDescriptions": [ "Default value if the telecommute preference is not specified.", "Deprecated: Ignore telecommute status of jobs. Use TELECOMMUTE_JOBS_EXCLUDED if want to exclude telecommute jobs.", @@ -2563,7 +2572,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" } }, @@ -2772,6 +2781,7 @@ "description": "Required. The meta information collected about the job searcher, used to improve the search quality of the service. The identifiers (such as `user_id`) are provided by users, and must be unique and consistent." }, "requirePreciseResultSize": { + "deprecated": true, "description": "This field is deprecated.", "type": "boolean" }, diff --git a/etc/api/jobs/v4/jobs-api.json b/etc/api/jobs/v4/jobs-api.json index a5b4c9c3b6..1734048dcd 100644 --- a/etc/api/jobs/v4/jobs-api.json +++ b/etc/api/jobs/v4/jobs-api.json @@ -903,7 +903,7 @@ } } }, - "revision": "20230120", + "revision": "20240202", "rootUrl": "https://jobs.googleapis.com/", "schemas": { "ApplicationInfo": { @@ -1223,6 +1223,7 @@ "type": "string" }, "keywordSearchableJobCustomAttributes": { + "deprecated": true, "description": "This field is deprecated. Please set the searchability of the custom attribute in the Job.custom_attributes going forward. A list of keys of filterable Job.custom_attributes, whose corresponding `string_values` are used in keyword searches. Jobs with `string_values` under these specified field keys are returned if any of the values match the search keyword. Custom field values with parenthesis, brackets and special symbols are not searchable as-is, and those keyword queries must be surrounded by quotes.", "items": { "type": "string" @@ -1885,6 +1886,7 @@ "type": "string" }, "visibility": { + "deprecated": true, "description": "Deprecated. The job is only visible to the owner. The visibility of the job. Defaults to Visibility.ACCOUNT_ONLY if not specified.", "enum": [ "VISIBILITY_UNSPECIFIED", @@ -2397,6 +2399,12 @@ "TELECOMMUTE_ALLOWED", "TELECOMMUTE_JOBS_EXCLUDED" ], + "enumDeprecated": [ + false, + true, + false, + false + ], "enumDescriptions": [ "Default value if the telecommute preference isn't specified.", "Deprecated: Ignore telecommute status of jobs. Use TELECOMMUTE_JOBS_EXCLUDED if want to exclude telecommute jobs.", @@ -2612,7 +2620,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" } }, @@ -2748,6 +2756,7 @@ "description": "Controls over how job documents get ranked on top of existing relevance score (determined by API algorithm)." }, "disableKeywordMatch": { + "deprecated": true, "description": "This field is deprecated. Please use SearchJobsRequest.keyword_match_mode going forward. To migrate, disable_keyword_match set to false maps to KeywordMatchMode.KEYWORD_MATCH_ALL, and disable_keyword_match set to true maps to KeywordMatchMode.KEYWORD_MATCH_DISABLED. If SearchJobsRequest.keyword_match_mode is set, this field is ignored. Controls whether to disable exact keyword match on Job.title, Job.description, Job.company_display_name, Job.addresses, Job.qualifications. When disable keyword match is turned off, a keyword match returns jobs that do not match given category filters when there are matching keywords. For example, for the query \"program manager,\" a result is returned even if the job posting has the title \"software developer,\" which doesn't fall into \"program manager\" ontology, but does have \"program manager\" appearing in its description. For queries like \"cloud\" that don't contain title or location specific ontology, jobs with \"cloud\" keyword matches are returned regardless of this flag's value. Use Company.keyword_searchable_job_custom_attributes if company-specific globally matched custom field/attribute string values are needed. Enabling keyword match improves recall of subsequent search requests. Defaults to false.", "type": "boolean" }, @@ -2759,6 +2768,7 @@ "SIMPLE", "ONE_PER_COMPANY", "TWO_PER_COMPANY", + "MAX_THREE_PER_COMPANY", "DIVERSIFY_BY_LOOSER_SIMILARITY" ], "enumDescriptions": [ @@ -2767,6 +2777,7 @@ "Default diversifying behavior. The result list is ordered so that highly similar results are pushed to the end of the last page of search results.", "Only one job from the same company will be shown at once, other jobs under same company are pushed to the end of the last page of search result.", "Similar to ONE_PER_COMPANY, but it allows at most two jobs in the same company to be shown at once, the other jobs under same company are pushed to the end of the last page of search result.", + "Similar to ONE_PER_COMPANY, but it allows at most three jobs in the same company to be shown at once, the other jobs under same company are dropped.", "The result list is ordered such that somewhat similar results are pushed to the end of the last page of the search results. This option is recommended if SIMPLE diversification does not diversify enough." ], "type": "string" diff --git a/etc/api/keep/v1/keep-api.json b/etc/api/keep/v1/keep-api.json index 6f0bdc265c..eb949dd07d 100644 --- a/etc/api/keep/v1/keep-api.json +++ b/etc/api/keep/v1/keep-api.json @@ -314,7 +314,7 @@ } } }, - "revision": "20230117", + "revision": "20240227", "rootUrl": "https://keep.googleapis.com/", "schemas": { "Attachment": { diff --git a/etc/api/kgsearch/v1/kgsearch-api.json b/etc/api/kgsearch/v1/kgsearch-api.json index 9e728753d0..1152439ee6 100644 --- a/etc/api/kgsearch/v1/kgsearch-api.json +++ b/etc/api/kgsearch/v1/kgsearch-api.json @@ -151,7 +151,7 @@ } } }, - "revision": "20230115", + "revision": "20240303", "rootUrl": "https://kgsearch.googleapis.com/", "schemas": { "SearchResponse": { diff --git a/etc/api/language/v1/language-api.json b/etc/api/language/v1/language-api.json index 3e108dbf13..2edc849f1b 100644 --- a/etc/api/language/v1/language-api.json +++ b/etc/api/language/v1/language-api.json @@ -223,11 +223,30 @@ "https://www.googleapis.com/auth/cloud-language", "https://www.googleapis.com/auth/cloud-platform" ] + }, + "moderateText": { + "description": "Moderates a document for harmful and sensitive categories.", + "flatPath": "v1/documents:moderateText", + "httpMethod": "POST", + "id": "language.documents.moderateText", + "parameterOrder": [], + "parameters": {}, + "path": "v1/documents:moderateText", + "request": { + "$ref": "ModerateTextRequest" + }, + "response": { + "$ref": "ModerateTextResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-language", + "https://www.googleapis.com/auth/cloud-platform" + ] } } } }, - "revision": "20230121", + "revision": "20240303", "rootUrl": "https://language.googleapis.com/", "schemas": { "AnalyzeEntitiesRequest": { @@ -446,12 +465,47 @@ "type": "string" }, "features": { - "$ref": "Features", + "$ref": "AnnotateTextRequestFeatures", "description": "Required. The enabled features." } }, "type": "object" }, + "AnnotateTextRequestFeatures": { + "description": "All available features for sentiment, syntax, and semantic analysis. Setting each one to true will enable that specific analysis for the input.", + "id": "AnnotateTextRequestFeatures", + "properties": { + "classificationModelOptions": { + "$ref": "ClassificationModelOptions", + "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.", + "type": "boolean" + }, + "extractDocumentSentiment": { + "description": "Extract document-level sentiment.", + "type": "boolean" + }, + "extractEntities": { + "description": "Extract entities.", + "type": "boolean" + }, + "extractEntitySentiment": { + "description": "Extract entities and their associated sentiment.", + "type": "boolean" + }, + "extractSyntax": { + "description": "Extract syntax information.", + "type": "boolean" + }, + "moderateText": { + "description": "Moderate the document for harmful and sensitive categories.", + "type": "boolean" + } + }, + "type": "object" + }, "AnnotateTextResponse": { "description": "The text annotations response message.", "id": "AnnotateTextResponse", @@ -478,6 +532,13 @@ "description": "The language of the text, which will be the same as the language specified in the request or, if not specified, the automatically-detected language. See Document.language field for more details.", "type": "string" }, + "moderationCategories": { + "description": "Harmful and sensitive categories identified in the input document.", + "items": { + "$ref": "ClassificationCategory" + }, + "type": "array" + }, "sentences": { "description": "Sentences in the input document. Populated if the user enables AnnotateTextRequest.Features.extract_syntax.", "items": { @@ -505,7 +566,7 @@ "type": "number" }, "name": { - "description": "The name of the category representing the document, from the [predefined taxonomy](https://cloud.google.com/natural-language/docs/categories).", + "description": "The name of the category representing the document.", "type": "string" } }, @@ -516,23 +577,50 @@ "id": "ClassificationModelOptions", "properties": { "v1Model": { - "$ref": "V1Model", + "$ref": "ClassificationModelOptionsV1Model", "description": "Setting this field will use the V1 model and V1 content categories version. The V1 model is a legacy model; support for this will be discontinued in the future." }, "v2Model": { - "$ref": "V2Model", + "$ref": "ClassificationModelOptionsV2Model", "description": "Setting this field will use the V2 model with the appropriate content categories version. The V2 model is a better performing model." } }, "type": "object" }, + "ClassificationModelOptionsV1Model": { + "description": "Options for the V1 model.", + "id": "ClassificationModelOptionsV1Model", + "properties": {}, + "type": "object" + }, + "ClassificationModelOptionsV2Model": { + "description": "Options for the V2 model.", + "id": "ClassificationModelOptionsV2Model", + "properties": { + "contentCategoriesVersion": { + "description": "The content categories used for classification.", + "enum": [ + "CONTENT_CATEGORIES_VERSION_UNSPECIFIED", + "V1", + "V2" + ], + "enumDescriptions": [ + "If `ContentCategoriesVersion` is not specified, this option will default to `V1`.", + "Legacy content categories of our initial launch in 2017.", + "Updated content categories in 2022." + ], + "type": "string" + } + }, + "type": "object" + }, "ClassifyTextRequest": { "description": "The document classification request message.", "id": "ClassifyTextRequest", "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", @@ -555,6 +643,419 @@ }, "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\u2014for 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" + }, "DependencyEdge": { "description": "Represents dependency parse tree information for a token. (For more information on dependency labels, see http://www.aclweb.org/anthology/P13-2017", "id": "DependencyEdge", @@ -741,6 +1242,37 @@ }, "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", @@ -871,33 +1403,439 @@ }, "type": "object" }, - "Features": { - "description": "All available features for sentiment, syntax, and semantic analysis. Setting each one to true will enable that specific analysis for the input.", - "id": "Features", + "GpuMetric": { + "id": "GpuMetric", "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." + "gpuSec": { + "description": "Required. Seconds of GPU usage, e.g. 3600.", + "format": "int64", + "type": "string" }, - "classifyText": { - "description": "Classify the full document into categories.", - "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" }, - "extractDocumentSentiment": { - "description": "Extract document-level sentiment.", - "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" }, - "extractEntities": { - "description": "Extract entities.", - "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" }, - "extractEntitySentiment": { - "description": "Extract entities and their associated sentiment.", - "type": "boolean" + "diskMetrics": { + "description": "Aggregated persistent disk metrics since requested start_time.", + "items": { + "$ref": "DiskMetric" + }, + "type": "array" }, - "extractSyntax": { - "description": "Extract syntax information.", - "type": "boolean" + "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" + }, + "ModerateTextRequest": { + "description": "The document moderation request message.", + "id": "ModerateTextRequest", + "properties": { + "document": { + "$ref": "Document", + "description": "Required. Input document." + } + }, + "type": "object" + }, + "ModerateTextResponse": { + "description": "The document moderation response message.", + "id": "ModerateTextResponse", + "properties": { + "moderationCategories": { + "description": "Harmful and sensitive categories representing the input document.", + "items": { + "$ref": "ClassificationCategory" + }, + "type": "array" } }, "type": "object" @@ -1169,6 +2107,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", @@ -1229,7 +2552,7 @@ "type": "object" }, "TextSpan": { - "description": "Represents an output piece of text.", + "description": "Represents a text span in the input document.", "id": "TextSpan", "properties": { "beginOffset": { @@ -1238,7 +2561,7 @@ "type": "integer" }, "content": { - "description": "The content of the output text.", + "description": "The content of the text span, which is a substring of the document.", "type": "string" } }, @@ -1267,32 +2590,3079 @@ }, "type": "object" }, - "V1Model": { - "description": "Options for the V1 model.", - "id": "V1Model", + "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" }, - "V2Model": { - "description": "Options for the V2 model.", - "id": "V2Model", + "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": { - "contentCategoriesVersion": { - "description": "The content categories used for classification.", + "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": [ - "CONTENT_CATEGORIES_VERSION_UNSPECIFIED", - "V1", - "V2" + "ERROR_TYPE_UNSPECIFIED", + "UNSUPPORTED_AUDIO_FORMAT", + "FILE_EXTENSION_MISMATCH_WITH_AUDIO_FORMAT", + "FILE_TOO_LARGE", + "MISSING_TRANSCRIPTION" ], "enumDescriptions": [ - "If `ContentCategoriesVersion` is not specified, this option will default to `V1`.", - "Legacy content categories of our initial launch in 2017.", - "Updated content categories in 2022." + "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" } }, "servicePath": "", diff --git a/etc/api/language/v1beta2/language-api.json b/etc/api/language/v1beta2/language-api.json index 369998b284..a102bfd8fb 100644 --- a/etc/api/language/v1beta2/language-api.json +++ b/etc/api/language/v1beta2/language-api.json @@ -223,11 +223,30 @@ "https://www.googleapis.com/auth/cloud-language", "https://www.googleapis.com/auth/cloud-platform" ] + }, + "moderateText": { + "description": "Moderates a document for harmful and sensitive categories.", + "flatPath": "v1beta2/documents:moderateText", + "httpMethod": "POST", + "id": "language.documents.moderateText", + "parameterOrder": [], + "parameters": {}, + "path": "v1beta2/documents:moderateText", + "request": { + "$ref": "ModerateTextRequest" + }, + "response": { + "$ref": "ModerateTextResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-language", + "https://www.googleapis.com/auth/cloud-platform" + ] } } } }, - "revision": "20230121", + "revision": "20240303", "rootUrl": "https://language.googleapis.com/", "schemas": { "AnalyzeEntitiesRequest": { @@ -446,12 +465,47 @@ "type": "string" }, "features": { - "$ref": "Features", + "$ref": "AnnotateTextRequestFeatures", "description": "Required. The enabled features." } }, "type": "object" }, + "AnnotateTextRequestFeatures": { + "description": "All available features for sentiment, syntax, and semantic analysis. Setting each one to true will enable that specific analysis for the input. Next ID: 12", + "id": "AnnotateTextRequestFeatures", + "properties": { + "classificationModelOptions": { + "$ref": "ClassificationModelOptions", + "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. If this is true, the API will use the default model which classifies into a [predefined taxonomy](https://cloud.google.com/natural-language/docs/categories).", + "type": "boolean" + }, + "extractDocumentSentiment": { + "description": "Extract document-level sentiment.", + "type": "boolean" + }, + "extractEntities": { + "description": "Extract entities.", + "type": "boolean" + }, + "extractEntitySentiment": { + "description": "Extract entities and their associated sentiment.", + "type": "boolean" + }, + "extractSyntax": { + "description": "Extract syntax information.", + "type": "boolean" + }, + "moderateText": { + "description": "Moderate the document for harmful and sensitive categories.", + "type": "boolean" + } + }, + "type": "object" + }, "AnnotateTextResponse": { "description": "The text annotations response message.", "id": "AnnotateTextResponse", @@ -478,6 +532,13 @@ "description": "The language of the text, which will be the same as the language specified in the request or, if not specified, the automatically-detected language. See Document.language field for more details.", "type": "string" }, + "moderationCategories": { + "description": "Harmful and sensitive categories identified in the input document.", + "items": { + "$ref": "ClassificationCategory" + }, + "type": "array" + }, "sentences": { "description": "Sentences in the input document. Populated if the user enables AnnotateTextRequest.Features.extract_syntax.", "items": { @@ -505,7 +566,7 @@ "type": "number" }, "name": { - "description": "The name of the category representing the document, from the [predefined taxonomy](https://cloud.google.com/natural-language/docs/categories).", + "description": "The name of the category representing the document.", "type": "string" } }, @@ -516,23 +577,50 @@ "id": "ClassificationModelOptions", "properties": { "v1Model": { - "$ref": "V1Model", + "$ref": "ClassificationModelOptionsV1Model", "description": "Setting this field will use the V1 model and V1 content categories version. The V1 model is a legacy model; support for this will be discontinued in the future." }, "v2Model": { - "$ref": "V2Model", + "$ref": "ClassificationModelOptionsV2Model", "description": "Setting this field will use the V2 model with the appropriate content categories version. The V2 model is a better performing model." } }, "type": "object" }, + "ClassificationModelOptionsV1Model": { + "description": "Options for the V1 model.", + "id": "ClassificationModelOptionsV1Model", + "properties": {}, + "type": "object" + }, + "ClassificationModelOptionsV2Model": { + "description": "Options for the V2 model.", + "id": "ClassificationModelOptionsV2Model", + "properties": { + "contentCategoriesVersion": { + "description": "The content categories used for classification.", + "enum": [ + "CONTENT_CATEGORIES_VERSION_UNSPECIFIED", + "V1", + "V2" + ], + "enumDescriptions": [ + "If `ContentCategoriesVersion` is not specified, this option will default to `V1`.", + "Legacy content categories of our initial launch in 2017.", + "Updated content categories in 2022." + ], + "type": "string" + } + }, + "type": "object" + }, "ClassifyTextRequest": { "description": "The document classification request message.", "id": "ClassifyTextRequest", "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", @@ -555,6 +643,419 @@ }, "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\u2014for 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" + }, "DependencyEdge": { "description": "Represents dependency parse tree information for a token.", "id": "DependencyEdge", @@ -741,6 +1242,37 @@ }, "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", @@ -889,33 +1421,439 @@ }, "type": "object" }, - "Features": { - "description": "All available features for sentiment, syntax, and semantic analysis. Setting each one to true will enable that specific analysis for the input. Next ID: 11", - "id": "Features", + "GpuMetric": { + "id": "GpuMetric", "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." + "gpuSec": { + "description": "Required. Seconds of GPU usage, e.g. 3600.", + "format": "int64", + "type": "string" }, - "classifyText": { - "description": "Classify the full document into categories. If this is true, the API will use the default model which classifies into a [predefined taxonomy](https://cloud.google.com/natural-language/docs/categories).", - "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" }, - "extractDocumentSentiment": { - "description": "Extract document-level sentiment.", - "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" }, - "extractEntities": { - "description": "Extract entities.", - "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" }, - "extractEntitySentiment": { - "description": "Extract entities and their associated sentiment.", - "type": "boolean" + "diskMetrics": { + "description": "Aggregated persistent disk metrics since requested start_time.", + "items": { + "$ref": "DiskMetric" + }, + "type": "array" }, - "extractSyntax": { - "description": "Extract syntax information.", - "type": "boolean" + "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" + }, + "ModerateTextRequest": { + "description": "The document moderation request message.", + "id": "ModerateTextRequest", + "properties": { + "document": { + "$ref": "Document", + "description": "Required. Input document." + } + }, + "type": "object" + }, + "ModerateTextResponse": { + "description": "The document moderation response message.", + "id": "ModerateTextResponse", + "properties": { + "moderationCategories": { + "description": "Harmful and sensitive categories representing the input document.", + "items": { + "$ref": "ClassificationCategory" + }, + "type": "array" } }, "type": "object" @@ -1187,6 +2125,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", @@ -1247,7 +2570,7 @@ "type": "object" }, "TextSpan": { - "description": "Represents an output piece of text.", + "description": "Represents a text span in the input document.", "id": "TextSpan", "properties": { "beginOffset": { @@ -1256,7 +2579,7 @@ "type": "integer" }, "content": { - "description": "The content of the output text.", + "description": "The content of the text span, which is a substring of the document.", "type": "string" } }, @@ -1285,32 +2608,3079 @@ }, "type": "object" }, - "V1Model": { - "description": "Options for the V1 model.", - "id": "V1Model", + "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" }, - "V2Model": { - "description": "Options for the V2 model.", - "id": "V2Model", + "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": { - "contentCategoriesVersion": { - "description": "The content categories used for classification.", + "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": [ - "CONTENT_CATEGORIES_VERSION_UNSPECIFIED", - "V1", - "V2" + "ERROR_TYPE_UNSPECIFIED", + "UNSUPPORTED_AUDIO_FORMAT", + "FILE_EXTENSION_MISMATCH_WITH_AUDIO_FORMAT", + "FILE_TOO_LARGE", + "MISSING_TRANSCRIPTION" ], "enumDescriptions": [ - "If `ContentCategoriesVersion` is not specified, this option will default to `V1`.", - "Legacy content categories of our initial launch in 2017.", - "Updated content categories in 2022." + "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" } }, "servicePath": "", diff --git a/etc/api/libraryagent/v1/libraryagent-api.json b/etc/api/libraryagent/v1/libraryagent-api.json index be5b15befb..1ecaca75d9 100644 --- a/etc/api/libraryagent/v1/libraryagent-api.json +++ b/etc/api/libraryagent/v1/libraryagent-api.json @@ -279,7 +279,7 @@ } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://libraryagent.googleapis.com/", "schemas": { "GoogleExampleLibraryagentV1Book": { diff --git a/etc/api/licensing/v1/licensing-api.json b/etc/api/licensing/v1/licensing-api.json index 89ad8ea98f..3558e89e80 100644 --- a/etc/api/licensing/v1/licensing-api.json +++ b/etc/api/licensing/v1/licensing-api.json @@ -400,7 +400,7 @@ } } }, - "revision": "20230121", + "revision": "20240301", "rootUrl": "https://licensing.googleapis.com/", "schemas": { "Empty": { diff --git a/etc/api/lifesciences/v2beta/lifesciences-api.json b/etc/api/lifesciences/v2beta/lifesciences-api.json index 8b91c3b7d0..46a9888576 100644 --- a/etc/api/lifesciences/v2beta/lifesciences-api.json +++ b/etc/api/lifesciences/v2beta/lifesciences-api.json @@ -312,7 +312,7 @@ } } }, - "revision": "20230106", + "revision": "20240220", "rootUrl": "https://lifesciences.googleapis.com/", "schemas": { "Accelerator": { @@ -703,7 +703,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1128,6 +1128,7 @@ "description": "The VM network configuration." }, "nvidiaDriverVersion": { + "deprecated": true, "description": "The NVIDIA driver version to use when attaching an NVIDIA GPU accelerator. The version specified here must be compatible with the GPU libraries contained in the container being executed, and must be one of the drivers hosted in the `nvidia-drivers-us-public` bucket on Google Cloud Storage.", "type": "string" }, diff --git a/etc/api/localservices/v1/localservices-api.json b/etc/api/localservices/v1/localservices-api.json index 8c59d25750..37632a66d0 100644 --- a/etc/api/localservices/v1/localservices-api.json +++ b/etc/api/localservices/v1/localservices-api.json @@ -250,7 +250,7 @@ } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://localservices.googleapis.com/", "schemas": { "GoogleAdsHomeservicesLocalservicesV1AccountReport": { @@ -428,6 +428,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" @@ -438,7 +443,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/etc/api/logging/v2/logging-api.json b/etc/api/logging/v2/logging-api.json index 5f7eaeeb62..0cabae16a5 100644 --- a/etc/api/logging/v2/logging-api.json +++ b/etc/api/logging/v2/logging-api.json @@ -27,6 +27,13 @@ "description": "Writes log entries and manages your Cloud Logging configuration.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/logging/docs/", + "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://logging.me-central2.rep.googleapis.com/", + "location": "me-central2" + } + ], "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -120,7 +127,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", @@ -129,7 +136,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, @@ -148,7 +155,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", @@ -157,7 +164,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, @@ -450,6 +457,40 @@ "https://www.googleapis.com/auth/logging.admin" ] }, + "createAsync": { + "description": "Creates a log bucket asynchronously that can be used to store log entries.After a bucket has been created, the bucket's location cannot be changed.", + "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/buckets:createAsync", + "httpMethod": "POST", + "id": "logging.billingAccounts.locations.buckets.createAsync", + "parameterOrder": [ + "parent" + ], + "parameters": { + "bucketId": { + "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource in which to create the log bucket: \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" For example:\"projects/my-project/locations/global\"", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/buckets:createAsync", + "request": { + "$ref": "LogBucket" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, "delete": { "description": "Deletes a log bucket.Changes the bucket's lifecycle_state to the DELETE_REQUESTED state. After 7 days, the bucket will be purged and all log entries in the bucket will be permanently deleted.", "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/buckets/{bucketsId}", @@ -544,7 +585,7 @@ ] }, "patch": { - "description": "Updates a log bucket. This method replaces the following fields in the existing bucket with values from the new bucket: retention_periodIf the retention period is decreased and the bucket is locked, FAILED_PRECONDITION will be returned.If the bucket has a lifecycle_state of DELETE_REQUESTED, then FAILED_PRECONDITION will be returned.After a bucket has been created, the bucket's location cannot be changed.", + "description": "Updates a log bucket.If the bucket has a lifecycle_state of DELETE_REQUESTED, then FAILED_PRECONDITION will be returned.After a bucket has been created, the bucket's location cannot be changed.", "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/buckets/{bucketsId}", "httpMethod": "PATCH", "id": "logging.billingAccounts.locations.buckets.patch", @@ -606,9 +647,175 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/logging.admin" ] + }, + "updateAsync": { + "description": "Updates a log bucket asynchronously.If the bucket has a lifecycle_state of DELETE_REQUESTED, then FAILED_PRECONDITION will be returned.After a bucket has been created, the bucket's location cannot be changed.", + "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/buckets/{bucketsId}:updateAsync", + "httpMethod": "POST", + "id": "logging.billingAccounts.locations.buckets.updateAsync", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The full resource name of the bucket to update. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" For example:\"projects/my-project/locations/global/buckets/my-bucket\"", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+/buckets/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Field mask that specifies the fields in bucket that need an update. A bucket field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.For a detailed FieldMask definition, see: https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMaskFor example: updateMask=retention_days", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+name}:updateAsync", + "request": { + "$ref": "LogBucket" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] } }, "resources": { + "links": { + "methods": { + "create": { + "description": "Asynchronously creates a linked dataset in BigQuery which makes it possible to use BigQuery to read the logs stored in the log bucket. A log bucket may currently only contain one link.", + "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/buckets/{bucketsId}/links", + "httpMethod": "POST", + "id": "logging.billingAccounts.locations.buckets.links.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "linkId": { + "description": "Required. The ID to use for the link. The link_id can have up to 100 characters. A valid link_id must only have alphanumeric characters and underscores within it.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The full resource name of the bucket to create a link for. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" ", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+/buckets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/links", + "request": { + "$ref": "Link" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "delete": { + "description": "Deletes a link. This will also delete the corresponding BigQuery linked dataset.", + "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/buckets/{bucketsId}/links/{linksId}", + "httpMethod": "DELETE", + "id": "logging.billingAccounts.locations.buckets.links.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The full resource name of the link to delete. \"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]\" ", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+/buckets/[^/]+/links/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "get": { + "description": "Gets a link.", + "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/buckets/{bucketsId}/links/{linksId}", + "httpMethod": "GET", + "id": "logging.billingAccounts.locations.buckets.links.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the link: \"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]\" ", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+/buckets/[^/]+/links/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "Link" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.read" + ] + }, + "list": { + "description": "Lists links.", + "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/buckets/{bucketsId}/links", + "httpMethod": "GET", + "id": "logging.billingAccounts.locations.buckets.links.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of results to return from this request.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource whose links are to be listed: \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" ", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+/buckets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/links", + "response": { + "$ref": "ListLinksResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.read" + ] + } + } + }, "views": { "methods": { "create": { @@ -672,7 +879,7 @@ ] }, "get": { - "description": "Gets a view on a log bucket..", + "description": "Gets a view on a log bucket.", "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/buckets/{bucketsId}/views/{viewsId}", "httpMethod": "GET", "id": "logging.billingAccounts.locations.buckets.views.get", @@ -739,7 +946,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", @@ -798,14 +1005,14 @@ "type": "string" }, "parent": { - "description": "Required. The resource name that owns the logs: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", + "description": "Required. The resource name to list logs for: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", "location": "path", "pattern": "^billingAccounts/[^/]+/locations/[^/]+/buckets/[^/]+/views/[^/]+$", "required": true, "type": "string" }, "resourceNames": { - "description": "Optional. The resource name that owns the logs: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]To support legacy queries, it could also be: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", + "description": "Optional. List of resource names to list logs for: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]To support legacy queries, it could also be: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]The resource name in the parent field is added to this list.", "location": "query", "repeated": true, "type": "string" @@ -888,7 +1095,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as \"/v1/{name=users/*}/operations\" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.", "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "logging.billingAccounts.locations.operations.list", @@ -932,6 +1139,152 @@ ] } } + }, + "recentQueries": { + "methods": { + "list": { + "description": "Lists the RecentQueries that were created by the user making the request.", + "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/recentQueries", + "httpMethod": "GET", + "id": "logging.billingAccounts.locations.recentQueries.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource to which the listed queries belong. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]\" For example:projects/my-project/locations/us-central1Note: The location portion of the resource must be specified, but supplying the character - in place of LOCATION_ID will return all recent queries.", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/recentQueries", + "response": { + "$ref": "ListRecentQueriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.read" + ] + } + } + }, + "savedQueries": { + "methods": { + "create": { + "description": "Creates a new SavedQuery for the user making the request.", + "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/savedQueries", + "httpMethod": "POST", + "id": "logging.billingAccounts.locations.savedQueries.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource in which to create the saved query: \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]\" For example: \"projects/my-project/locations/global\" \"organizations/123456789/locations/us-central1\" ", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+$", + "required": true, + "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, periods.First character has to be alphanumeric.", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+parent}/savedQueries", + "request": { + "$ref": "SavedQuery" + }, + "response": { + "$ref": "SavedQuery" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "delete": { + "description": "Deletes an existing SavedQuery that was created by the user making the request.", + "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/savedQueries/{savedQueriesId}", + "httpMethod": "DELETE", + "id": "logging.billingAccounts.locations.savedQueries.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The full resource name of the saved query to delete. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/savedQueries/[QUERY_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/savedQueries/[QUERY_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/savedQueries/[QUERY_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/savedQueries/[QUERY_ID]\" For example: \"projects/my-project/locations/global/savedQueries/my-saved-query\" ", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+/savedQueries/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "list": { + "description": "Lists the SavedQueries that were created by the user making the request.", + "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/savedQueries", + "httpMethod": "GET", + "id": "logging.billingAccounts.locations.savedQueries.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of results to return from this request.Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource to which the listed queries belong. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]\" For example: \"projects/my-project/locations/us-central1\" Note: The locations portion of the resource must be specified. To get a list of all saved queries, a wildcard character - can be used for LOCATION_ID, for example: \"projects/my-project/locations/-\" ", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/savedQueries", + "response": { + "$ref": "ListSavedQueriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.read" + ] + } + } } } }, @@ -984,14 +1337,14 @@ "type": "string" }, "parent": { - "description": "Required. The resource name that owns the logs: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", + "description": "Required. The resource name to list logs for: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", "location": "path", "pattern": "^billingAccounts/[^/]+$", "required": true, "type": "string" }, "resourceNames": { - "description": "Optional. The resource name that owns the logs: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]To support legacy queries, it could also be: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", + "description": "Optional. List of resource names to list logs for: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]To support legacy queries, it could also be: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]The resource name in the parent field is added to this list.", "location": "query", "repeated": true, "type": "string" @@ -1013,7 +1366,7 @@ "sinks": { "methods": { "create": { - "description": "Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.", + "description": "Creates a sink that exports specified log entries to a destination. The export begins upon ingress, unless the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.", "flatPath": "v2/billingAccounts/{billingAccountsId}/sinks", "httpMethod": "POST", "id": "logging.billingAccounts.sinks.create", @@ -1021,6 +1374,11 @@ "parent" ], "parameters": { + "customWriterIdentity": { + "description": "Optional. A service account provided by the caller that will be used to write the log entries. The format must be serviceAccount:some@email. This field can only be specified if you are routing logs to a destination outside this sink's project. If not specified, a Logging service account will automatically be generated.", + "location": "query", + "type": "string" + }, "parent": { "description": "Required. The resource in which to create the sink: \"projects/[PROJECT_ID]\" \"organizations/[ORGANIZATION_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]\" \"folders/[FOLDER_ID]\" For examples:\"projects/my-project\" \"organizations/123456789\"", "location": "path", @@ -1029,7 +1387,7 @@ "type": "string" }, "uniqueWriterIdentity": { - "description": "Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Cloud Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.", + "description": "Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Cloud Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a service agent (https://cloud.google.com/iam/docs/service-account-types#service-agents) used by the sinks with the same parent. For more information, see writer_identity in LogSink.", "location": "query", "type": "boolean" } @@ -1140,7 +1498,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", @@ -1148,6 +1506,11 @@ "sinkName" ], "parameters": { + "customWriterIdentity": { + "description": "Optional. A service account provided by the caller that will be used to write the log entries. The format must be serviceAccount:some@email. This field can only be specified if you are routing logs to a destination outside this sink's project. If not specified, a Logging service account will automatically be generated.", + "location": "query", + "type": "string" + }, "sinkName": { "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier: \"projects/[PROJECT_ID]/sinks/[SINK_ID]\" \"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\" \"folders/[FOLDER_ID]/sinks/[SINK_ID]\" For example:\"projects/my-project/sinks/my-sink\"", "location": "path", @@ -1156,7 +1519,7 @@ "type": "string" }, "uniqueWriterIdentity": { - "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field: If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity. If the old value is false and the new value is true, then writer_identity is changed to a unique service account. It is an error if the old value is true and the new value is set to false or defaulted to false.", + "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field: If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity. If the old value is false and the new value is true, then writer_identity is changed to a service agent (https://cloud.google.com/iam/docs/service-account-types#service-agents) owned by Cloud Logging. It is an error if the old value is true and the new value is set to false or defaulted to false.", "location": "query", "type": "boolean" }, @@ -1180,7 +1543,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", @@ -1188,6 +1551,11 @@ "sinkName" ], "parameters": { + "customWriterIdentity": { + "description": "Optional. A service account provided by the caller that will be used to write the log entries. The format must be serviceAccount:some@email. This field can only be specified if you are routing logs to a destination outside this sink's project. If not specified, a Logging service account will automatically be generated.", + "location": "query", + "type": "string" + }, "sinkName": { "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier: \"projects/[PROJECT_ID]/sinks/[SINK_ID]\" \"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\" \"folders/[FOLDER_ID]/sinks/[SINK_ID]\" For example:\"projects/my-project/sinks/my-sink\"", "location": "path", @@ -1196,7 +1564,7 @@ "type": "string" }, "uniqueWriterIdentity": { - "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field: If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity. If the old value is false and the new value is true, then writer_identity is changed to a unique service account. It is an error if the old value is true and the new value is set to false or defaulted to false.", + "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field: If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity. If the old value is false and the new value is true, then writer_identity is changed to a service agent (https://cloud.google.com/iam/docs/service-account-types#service-agents) owned by Cloud Logging. It is an error if the old value is true and the new value is set to false or defaulted to false.", "location": "query", "type": "boolean" }, @@ -1266,7 +1634,7 @@ ] }, "tail": { - "description": "Streaming read of log entries as they are ingested. Until the stream is terminated, it will continue reading logs.", + "description": "Streaming read of log entries as they are received. Until the stream is terminated, it will continue reading logs.", "flatPath": "v2/entries:tail", "httpMethod": "POST", "id": "logging.entries.tail", @@ -1287,7 +1655,7 @@ ] }, "write": { - "description": "Writes log entries to Logging. This API method is the only way to send log entries to Logging. This method is used, directly or indirectly, by the Logging agent (fluentd) and all logging libraries configured to use Logging. A single request may contain log entries for a maximum of 1000 different resources (projects, organizations, billing accounts or folders)", + "description": "Writes log entries to Logging. This API method is the only way to send log entries to Logging. This method is used, directly or indirectly, by the Logging agent (fluentd) and all logging libraries configured to use Logging. A single request may contain log entries for a maximum of 1000 different resource names (projects, organizations, billing accounts or folders), where the resource name for a log entry is determined from its logName field.", "flatPath": "v2/entries:write", "httpMethod": "POST", "id": "logging.entries.write", @@ -1472,7 +1840,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", @@ -1481,7 +1849,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, @@ -1500,7 +1868,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", @@ -1509,7 +1877,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, @@ -1528,7 +1896,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", @@ -1537,7 +1905,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, @@ -1837,6 +2205,40 @@ "https://www.googleapis.com/auth/logging.admin" ] }, + "createAsync": { + "description": "Creates a log bucket asynchronously that can be used to store log entries.After a bucket has been created, the bucket's location cannot be changed.", + "flatPath": "v2/folders/{foldersId}/locations/{locationsId}/buckets:createAsync", + "httpMethod": "POST", + "id": "logging.folders.locations.buckets.createAsync", + "parameterOrder": [ + "parent" + ], + "parameters": { + "bucketId": { + "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource in which to create the log bucket: \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" For example:\"projects/my-project/locations/global\"", + "location": "path", + "pattern": "^folders/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/buckets:createAsync", + "request": { + "$ref": "LogBucket" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, "delete": { "description": "Deletes a log bucket.Changes the bucket's lifecycle_state to the DELETE_REQUESTED state. After 7 days, the bucket will be purged and all log entries in the bucket will be permanently deleted.", "flatPath": "v2/folders/{foldersId}/locations/{locationsId}/buckets/{bucketsId}", @@ -1931,7 +2333,7 @@ ] }, "patch": { - "description": "Updates a log bucket. This method replaces the following fields in the existing bucket with values from the new bucket: retention_periodIf the retention period is decreased and the bucket is locked, FAILED_PRECONDITION will be returned.If the bucket has a lifecycle_state of DELETE_REQUESTED, then FAILED_PRECONDITION will be returned.After a bucket has been created, the bucket's location cannot be changed.", + "description": "Updates a log bucket.If the bucket has a lifecycle_state of DELETE_REQUESTED, then FAILED_PRECONDITION will be returned.After a bucket has been created, the bucket's location cannot be changed.", "flatPath": "v2/folders/{foldersId}/locations/{locationsId}/buckets/{bucketsId}", "httpMethod": "PATCH", "id": "logging.folders.locations.buckets.patch", @@ -1993,9 +2395,175 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/logging.admin" ] + }, + "updateAsync": { + "description": "Updates a log bucket asynchronously.If the bucket has a lifecycle_state of DELETE_REQUESTED, then FAILED_PRECONDITION will be returned.After a bucket has been created, the bucket's location cannot be changed.", + "flatPath": "v2/folders/{foldersId}/locations/{locationsId}/buckets/{bucketsId}:updateAsync", + "httpMethod": "POST", + "id": "logging.folders.locations.buckets.updateAsync", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The full resource name of the bucket to update. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" For example:\"projects/my-project/locations/global/buckets/my-bucket\"", + "location": "path", + "pattern": "^folders/[^/]+/locations/[^/]+/buckets/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Field mask that specifies the fields in bucket that need an update. A bucket field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.For a detailed FieldMask definition, see: https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMaskFor example: updateMask=retention_days", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+name}:updateAsync", + "request": { + "$ref": "LogBucket" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] } }, "resources": { + "links": { + "methods": { + "create": { + "description": "Asynchronously creates a linked dataset in BigQuery which makes it possible to use BigQuery to read the logs stored in the log bucket. A log bucket may currently only contain one link.", + "flatPath": "v2/folders/{foldersId}/locations/{locationsId}/buckets/{bucketsId}/links", + "httpMethod": "POST", + "id": "logging.folders.locations.buckets.links.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "linkId": { + "description": "Required. The ID to use for the link. The link_id can have up to 100 characters. A valid link_id must only have alphanumeric characters and underscores within it.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The full resource name of the bucket to create a link for. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" ", + "location": "path", + "pattern": "^folders/[^/]+/locations/[^/]+/buckets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/links", + "request": { + "$ref": "Link" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "delete": { + "description": "Deletes a link. This will also delete the corresponding BigQuery linked dataset.", + "flatPath": "v2/folders/{foldersId}/locations/{locationsId}/buckets/{bucketsId}/links/{linksId}", + "httpMethod": "DELETE", + "id": "logging.folders.locations.buckets.links.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The full resource name of the link to delete. \"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]\" ", + "location": "path", + "pattern": "^folders/[^/]+/locations/[^/]+/buckets/[^/]+/links/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "get": { + "description": "Gets a link.", + "flatPath": "v2/folders/{foldersId}/locations/{locationsId}/buckets/{bucketsId}/links/{linksId}", + "httpMethod": "GET", + "id": "logging.folders.locations.buckets.links.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the link: \"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]\" ", + "location": "path", + "pattern": "^folders/[^/]+/locations/[^/]+/buckets/[^/]+/links/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "Link" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.read" + ] + }, + "list": { + "description": "Lists links.", + "flatPath": "v2/folders/{foldersId}/locations/{locationsId}/buckets/{bucketsId}/links", + "httpMethod": "GET", + "id": "logging.folders.locations.buckets.links.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of results to return from this request.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource whose links are to be listed: \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" ", + "location": "path", + "pattern": "^folders/[^/]+/locations/[^/]+/buckets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/links", + "response": { + "$ref": "ListLinksResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.read" + ] + } + } + }, "views": { "methods": { "create": { @@ -2059,7 +2627,7 @@ ] }, "get": { - "description": "Gets a view on a log bucket..", + "description": "Gets a view on a log bucket.", "flatPath": "v2/folders/{foldersId}/locations/{locationsId}/buckets/{bucketsId}/views/{viewsId}", "httpMethod": "GET", "id": "logging.folders.locations.buckets.views.get", @@ -2126,7 +2694,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", @@ -2185,14 +2753,14 @@ "type": "string" }, "parent": { - "description": "Required. The resource name that owns the logs: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", + "description": "Required. The resource name to list logs for: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", "location": "path", "pattern": "^folders/[^/]+/locations/[^/]+/buckets/[^/]+/views/[^/]+$", "required": true, "type": "string" }, "resourceNames": { - "description": "Optional. The resource name that owns the logs: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]To support legacy queries, it could also be: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", + "description": "Optional. List of resource names to list logs for: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]To support legacy queries, it could also be: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]The resource name in the parent field is added to this list.", "location": "query", "repeated": true, "type": "string" @@ -2275,7 +2843,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as \"/v1/{name=users/*}/operations\" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.", "flatPath": "v2/folders/{foldersId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "logging.folders.locations.operations.list", @@ -2319,6 +2887,152 @@ ] } } + }, + "recentQueries": { + "methods": { + "list": { + "description": "Lists the RecentQueries that were created by the user making the request.", + "flatPath": "v2/folders/{foldersId}/locations/{locationsId}/recentQueries", + "httpMethod": "GET", + "id": "logging.folders.locations.recentQueries.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource to which the listed queries belong. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]\" For example:projects/my-project/locations/us-central1Note: The location portion of the resource must be specified, but supplying the character - in place of LOCATION_ID will return all recent queries.", + "location": "path", + "pattern": "^folders/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/recentQueries", + "response": { + "$ref": "ListRecentQueriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.read" + ] + } + } + }, + "savedQueries": { + "methods": { + "create": { + "description": "Creates a new SavedQuery for the user making the request.", + "flatPath": "v2/folders/{foldersId}/locations/{locationsId}/savedQueries", + "httpMethod": "POST", + "id": "logging.folders.locations.savedQueries.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource in which to create the saved query: \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]\" For example: \"projects/my-project/locations/global\" \"organizations/123456789/locations/us-central1\" ", + "location": "path", + "pattern": "^folders/[^/]+/locations/[^/]+$", + "required": true, + "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, periods.First character has to be alphanumeric.", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+parent}/savedQueries", + "request": { + "$ref": "SavedQuery" + }, + "response": { + "$ref": "SavedQuery" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "delete": { + "description": "Deletes an existing SavedQuery that was created by the user making the request.", + "flatPath": "v2/folders/{foldersId}/locations/{locationsId}/savedQueries/{savedQueriesId}", + "httpMethod": "DELETE", + "id": "logging.folders.locations.savedQueries.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The full resource name of the saved query to delete. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/savedQueries/[QUERY_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/savedQueries/[QUERY_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/savedQueries/[QUERY_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/savedQueries/[QUERY_ID]\" For example: \"projects/my-project/locations/global/savedQueries/my-saved-query\" ", + "location": "path", + "pattern": "^folders/[^/]+/locations/[^/]+/savedQueries/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "list": { + "description": "Lists the SavedQueries that were created by the user making the request.", + "flatPath": "v2/folders/{foldersId}/locations/{locationsId}/savedQueries", + "httpMethod": "GET", + "id": "logging.folders.locations.savedQueries.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of results to return from this request.Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource to which the listed queries belong. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]\" For example: \"projects/my-project/locations/us-central1\" Note: The locations portion of the resource must be specified. To get a list of all saved queries, a wildcard character - can be used for LOCATION_ID, for example: \"projects/my-project/locations/-\" ", + "location": "path", + "pattern": "^folders/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/savedQueries", + "response": { + "$ref": "ListSavedQueriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.read" + ] + } + } } } }, @@ -2371,14 +3085,14 @@ "type": "string" }, "parent": { - "description": "Required. The resource name that owns the logs: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", + "description": "Required. The resource name to list logs for: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", "location": "path", "pattern": "^folders/[^/]+$", "required": true, "type": "string" }, "resourceNames": { - "description": "Optional. The resource name that owns the logs: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]To support legacy queries, it could also be: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", + "description": "Optional. List of resource names to list logs for: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]To support legacy queries, it could also be: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]The resource name in the parent field is added to this list.", "location": "query", "repeated": true, "type": "string" @@ -2400,7 +3114,7 @@ "sinks": { "methods": { "create": { - "description": "Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.", + "description": "Creates a sink that exports specified log entries to a destination. The export begins upon ingress, unless the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.", "flatPath": "v2/folders/{foldersId}/sinks", "httpMethod": "POST", "id": "logging.folders.sinks.create", @@ -2408,6 +3122,11 @@ "parent" ], "parameters": { + "customWriterIdentity": { + "description": "Optional. A service account provided by the caller that will be used to write the log entries. The format must be serviceAccount:some@email. This field can only be specified if you are routing logs to a destination outside this sink's project. If not specified, a Logging service account will automatically be generated.", + "location": "query", + "type": "string" + }, "parent": { "description": "Required. The resource in which to create the sink: \"projects/[PROJECT_ID]\" \"organizations/[ORGANIZATION_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]\" \"folders/[FOLDER_ID]\" For examples:\"projects/my-project\" \"organizations/123456789\"", "location": "path", @@ -2416,7 +3135,7 @@ "type": "string" }, "uniqueWriterIdentity": { - "description": "Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Cloud Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.", + "description": "Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Cloud Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a service agent (https://cloud.google.com/iam/docs/service-account-types#service-agents) used by the sinks with the same parent. For more information, see writer_identity in LogSink.", "location": "query", "type": "boolean" } @@ -2527,7 +3246,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", @@ -2535,6 +3254,11 @@ "sinkName" ], "parameters": { + "customWriterIdentity": { + "description": "Optional. A service account provided by the caller that will be used to write the log entries. The format must be serviceAccount:some@email. This field can only be specified if you are routing logs to a destination outside this sink's project. If not specified, a Logging service account will automatically be generated.", + "location": "query", + "type": "string" + }, "sinkName": { "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier: \"projects/[PROJECT_ID]/sinks/[SINK_ID]\" \"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\" \"folders/[FOLDER_ID]/sinks/[SINK_ID]\" For example:\"projects/my-project/sinks/my-sink\"", "location": "path", @@ -2543,7 +3267,7 @@ "type": "string" }, "uniqueWriterIdentity": { - "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field: If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity. If the old value is false and the new value is true, then writer_identity is changed to a unique service account. It is an error if the old value is true and the new value is set to false or defaulted to false.", + "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field: If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity. If the old value is false and the new value is true, then writer_identity is changed to a service agent (https://cloud.google.com/iam/docs/service-account-types#service-agents) owned by Cloud Logging. It is an error if the old value is true and the new value is set to false or defaulted to false.", "location": "query", "type": "boolean" }, @@ -2567,7 +3291,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", @@ -2575,6 +3299,11 @@ "sinkName" ], "parameters": { + "customWriterIdentity": { + "description": "Optional. A service account provided by the caller that will be used to write the log entries. The format must be serviceAccount:some@email. This field can only be specified if you are routing logs to a destination outside this sink's project. If not specified, a Logging service account will automatically be generated.", + "location": "query", + "type": "string" + }, "sinkName": { "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier: \"projects/[PROJECT_ID]/sinks/[SINK_ID]\" \"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\" \"folders/[FOLDER_ID]/sinks/[SINK_ID]\" For example:\"projects/my-project/sinks/my-sink\"", "location": "path", @@ -2583,7 +3312,7 @@ "type": "string" }, "uniqueWriterIdentity": { - "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field: If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity. If the old value is false and the new value is true, then writer_identity is changed to a unique service account. It is an error if the old value is true and the new value is set to false or defaulted to false.", + "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field: If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity. If the old value is false and the new value is true, then writer_identity is changed to a service agent (https://cloud.google.com/iam/docs/service-account-types#service-agents) owned by Cloud Logging. It is an error if the old value is true and the new value is set to false or defaulted to false.", "location": "query", "type": "boolean" }, @@ -2722,6 +3451,40 @@ "https://www.googleapis.com/auth/logging.admin" ] }, + "createAsync": { + "description": "Creates a log bucket asynchronously that can be used to store log entries.After a bucket has been created, the bucket's location cannot be changed.", + "flatPath": "v2/{v2Id}/{v2Id1}/locations/{locationsId}/buckets:createAsync", + "httpMethod": "POST", + "id": "logging.locations.buckets.createAsync", + "parameterOrder": [ + "parent" + ], + "parameters": { + "bucketId": { + "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource in which to create the log bucket: \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" For example:\"projects/my-project/locations/global\"", + "location": "path", + "pattern": "^[^/]+/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/buckets:createAsync", + "request": { + "$ref": "LogBucket" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, "delete": { "description": "Deletes a log bucket.Changes the bucket's lifecycle_state to the DELETE_REQUESTED state. After 7 days, the bucket will be purged and all log entries in the bucket will be permanently deleted.", "flatPath": "v2/{v2Id}/{v2Id1}/locations/{locationsId}/buckets/{bucketsId}", @@ -2816,7 +3579,7 @@ ] }, "patch": { - "description": "Updates a log bucket. This method replaces the following fields in the existing bucket with values from the new bucket: retention_periodIf the retention period is decreased and the bucket is locked, FAILED_PRECONDITION will be returned.If the bucket has a lifecycle_state of DELETE_REQUESTED, then FAILED_PRECONDITION will be returned.After a bucket has been created, the bucket's location cannot be changed.", + "description": "Updates a log bucket.If the bucket has a lifecycle_state of DELETE_REQUESTED, then FAILED_PRECONDITION will be returned.After a bucket has been created, the bucket's location cannot be changed.", "flatPath": "v2/{v2Id}/{v2Id1}/locations/{locationsId}/buckets/{bucketsId}", "httpMethod": "PATCH", "id": "logging.locations.buckets.patch", @@ -2878,9 +3641,175 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/logging.admin" ] + }, + "updateAsync": { + "description": "Updates a log bucket asynchronously.If the bucket has a lifecycle_state of DELETE_REQUESTED, then FAILED_PRECONDITION will be returned.After a bucket has been created, the bucket's location cannot be changed.", + "flatPath": "v2/{v2Id}/{v2Id1}/locations/{locationsId}/buckets/{bucketsId}:updateAsync", + "httpMethod": "POST", + "id": "logging.locations.buckets.updateAsync", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The full resource name of the bucket to update. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" For example:\"projects/my-project/locations/global/buckets/my-bucket\"", + "location": "path", + "pattern": "^[^/]+/[^/]+/locations/[^/]+/buckets/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Field mask that specifies the fields in bucket that need an update. A bucket field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.For a detailed FieldMask definition, see: https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMaskFor example: updateMask=retention_days", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+name}:updateAsync", + "request": { + "$ref": "LogBucket" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] } }, "resources": { + "links": { + "methods": { + "create": { + "description": "Asynchronously creates a linked dataset in BigQuery which makes it possible to use BigQuery to read the logs stored in the log bucket. A log bucket may currently only contain one link.", + "flatPath": "v2/{v2Id}/{v2Id1}/locations/{locationsId}/buckets/{bucketsId}/links", + "httpMethod": "POST", + "id": "logging.locations.buckets.links.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "linkId": { + "description": "Required. The ID to use for the link. The link_id can have up to 100 characters. A valid link_id must only have alphanumeric characters and underscores within it.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The full resource name of the bucket to create a link for. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" ", + "location": "path", + "pattern": "^[^/]+/[^/]+/locations/[^/]+/buckets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/links", + "request": { + "$ref": "Link" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "delete": { + "description": "Deletes a link. This will also delete the corresponding BigQuery linked dataset.", + "flatPath": "v2/{v2Id}/{v2Id1}/locations/{locationsId}/buckets/{bucketsId}/links/{linksId}", + "httpMethod": "DELETE", + "id": "logging.locations.buckets.links.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The full resource name of the link to delete. \"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]\" ", + "location": "path", + "pattern": "^[^/]+/[^/]+/locations/[^/]+/buckets/[^/]+/links/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "get": { + "description": "Gets a link.", + "flatPath": "v2/{v2Id}/{v2Id1}/locations/{locationsId}/buckets/{bucketsId}/links/{linksId}", + "httpMethod": "GET", + "id": "logging.locations.buckets.links.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the link: \"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]\" ", + "location": "path", + "pattern": "^[^/]+/[^/]+/locations/[^/]+/buckets/[^/]+/links/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "Link" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.read" + ] + }, + "list": { + "description": "Lists links.", + "flatPath": "v2/{v2Id}/{v2Id1}/locations/{locationsId}/buckets/{bucketsId}/links", + "httpMethod": "GET", + "id": "logging.locations.buckets.links.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of results to return from this request.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource whose links are to be listed: \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" ", + "location": "path", + "pattern": "^[^/]+/[^/]+/locations/[^/]+/buckets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/links", + "response": { + "$ref": "ListLinksResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.read" + ] + } + } + }, "views": { "methods": { "create": { @@ -2944,7 +3873,7 @@ ] }, "get": { - "description": "Gets a view on a log bucket..", + "description": "Gets a view on a log bucket.", "flatPath": "v2/{v2Id}/{v2Id1}/locations/{locationsId}/buckets/{bucketsId}/views/{viewsId}", "httpMethod": "GET", "id": "logging.locations.buckets.views.get", @@ -3011,7 +3940,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", @@ -3109,7 +4038,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as \"/v1/{name=users/*}/operations\" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.", "flatPath": "v2/{v2Id}/{v2Id1}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "logging.locations.operations.list", @@ -3205,14 +4134,14 @@ "type": "string" }, "parent": { - "description": "Required. The resource name that owns the logs: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", + "description": "Required. The resource name to list logs for: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", "location": "path", "pattern": "^[^/]+/[^/]+$", "required": true, "type": "string" }, "resourceNames": { - "description": "Optional. The resource name that owns the logs: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]To support legacy queries, it could also be: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", + "description": "Optional. List of resource names to list logs for: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]To support legacy queries, it could also be: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]The resource name in the parent field is added to this list.", "location": "query", "repeated": true, "type": "string" @@ -3268,7 +4197,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", @@ -3277,7 +4206,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, @@ -3296,7 +4225,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", @@ -3305,7 +4234,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, @@ -3324,7 +4253,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", @@ -3359,7 +4288,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", @@ -3368,7 +4297,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, @@ -3668,6 +4597,40 @@ "https://www.googleapis.com/auth/logging.admin" ] }, + "createAsync": { + "description": "Creates a log bucket asynchronously that can be used to store log entries.After a bucket has been created, the bucket's location cannot be changed.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/buckets:createAsync", + "httpMethod": "POST", + "id": "logging.organizations.locations.buckets.createAsync", + "parameterOrder": [ + "parent" + ], + "parameters": { + "bucketId": { + "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource in which to create the log bucket: \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" For example:\"projects/my-project/locations/global\"", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/buckets:createAsync", + "request": { + "$ref": "LogBucket" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, "delete": { "description": "Deletes a log bucket.Changes the bucket's lifecycle_state to the DELETE_REQUESTED state. After 7 days, the bucket will be purged and all log entries in the bucket will be permanently deleted.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/buckets/{bucketsId}", @@ -3762,7 +4725,7 @@ ] }, "patch": { - "description": "Updates a log bucket. This method replaces the following fields in the existing bucket with values from the new bucket: retention_periodIf the retention period is decreased and the bucket is locked, FAILED_PRECONDITION will be returned.If the bucket has a lifecycle_state of DELETE_REQUESTED, then FAILED_PRECONDITION will be returned.After a bucket has been created, the bucket's location cannot be changed.", + "description": "Updates a log bucket.If the bucket has a lifecycle_state of DELETE_REQUESTED, then FAILED_PRECONDITION will be returned.After a bucket has been created, the bucket's location cannot be changed.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/buckets/{bucketsId}", "httpMethod": "PATCH", "id": "logging.organizations.locations.buckets.patch", @@ -3824,9 +4787,175 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/logging.admin" ] + }, + "updateAsync": { + "description": "Updates a log bucket asynchronously.If the bucket has a lifecycle_state of DELETE_REQUESTED, then FAILED_PRECONDITION will be returned.After a bucket has been created, the bucket's location cannot be changed.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/buckets/{bucketsId}:updateAsync", + "httpMethod": "POST", + "id": "logging.organizations.locations.buckets.updateAsync", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The full resource name of the bucket to update. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" For example:\"projects/my-project/locations/global/buckets/my-bucket\"", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/buckets/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Field mask that specifies the fields in bucket that need an update. A bucket field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.For a detailed FieldMask definition, see: https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMaskFor example: updateMask=retention_days", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+name}:updateAsync", + "request": { + "$ref": "LogBucket" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] } }, "resources": { + "links": { + "methods": { + "create": { + "description": "Asynchronously creates a linked dataset in BigQuery which makes it possible to use BigQuery to read the logs stored in the log bucket. A log bucket may currently only contain one link.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/buckets/{bucketsId}/links", + "httpMethod": "POST", + "id": "logging.organizations.locations.buckets.links.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "linkId": { + "description": "Required. The ID to use for the link. The link_id can have up to 100 characters. A valid link_id must only have alphanumeric characters and underscores within it.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The full resource name of the bucket to create a link for. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" ", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/buckets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/links", + "request": { + "$ref": "Link" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "delete": { + "description": "Deletes a link. This will also delete the corresponding BigQuery linked dataset.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/buckets/{bucketsId}/links/{linksId}", + "httpMethod": "DELETE", + "id": "logging.organizations.locations.buckets.links.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The full resource name of the link to delete. \"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]\" ", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/buckets/[^/]+/links/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "get": { + "description": "Gets a link.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/buckets/{bucketsId}/links/{linksId}", + "httpMethod": "GET", + "id": "logging.organizations.locations.buckets.links.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the link: \"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]\" ", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/buckets/[^/]+/links/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "Link" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.read" + ] + }, + "list": { + "description": "Lists links.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/buckets/{bucketsId}/links", + "httpMethod": "GET", + "id": "logging.organizations.locations.buckets.links.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of results to return from this request.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource whose links are to be listed: \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" ", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/buckets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/links", + "response": { + "$ref": "ListLinksResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.read" + ] + } + } + }, "views": { "methods": { "create": { @@ -3890,7 +5019,7 @@ ] }, "get": { - "description": "Gets a view on a log bucket..", + "description": "Gets a view on a log bucket.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/buckets/{bucketsId}/views/{viewsId}", "httpMethod": "GET", "id": "logging.organizations.locations.buckets.views.get", @@ -3957,7 +5086,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", @@ -4016,14 +5145,14 @@ "type": "string" }, "parent": { - "description": "Required. The resource name that owns the logs: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", + "description": "Required. The resource name to list logs for: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", "location": "path", "pattern": "^organizations/[^/]+/locations/[^/]+/buckets/[^/]+/views/[^/]+$", "required": true, "type": "string" }, "resourceNames": { - "description": "Optional. The resource name that owns the logs: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]To support legacy queries, it could also be: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", + "description": "Optional. List of resource names to list logs for: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]To support legacy queries, it could also be: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]The resource name in the parent field is added to this list.", "location": "query", "repeated": true, "type": "string" @@ -4106,7 +5235,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as \"/v1/{name=users/*}/operations\" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "logging.organizations.locations.operations.list", @@ -4150,6 +5279,152 @@ ] } } + }, + "recentQueries": { + "methods": { + "list": { + "description": "Lists the RecentQueries that were created by the user making the request.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/recentQueries", + "httpMethod": "GET", + "id": "logging.organizations.locations.recentQueries.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource to which the listed queries belong. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]\" For example:projects/my-project/locations/us-central1Note: The location portion of the resource must be specified, but supplying the character - in place of LOCATION_ID will return all recent queries.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/recentQueries", + "response": { + "$ref": "ListRecentQueriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.read" + ] + } + } + }, + "savedQueries": { + "methods": { + "create": { + "description": "Creates a new SavedQuery for the user making the request.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/savedQueries", + "httpMethod": "POST", + "id": "logging.organizations.locations.savedQueries.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource in which to create the saved query: \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]\" For example: \"projects/my-project/locations/global\" \"organizations/123456789/locations/us-central1\" ", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "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, periods.First character has to be alphanumeric.", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+parent}/savedQueries", + "request": { + "$ref": "SavedQuery" + }, + "response": { + "$ref": "SavedQuery" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "delete": { + "description": "Deletes an existing SavedQuery that was created by the user making the request.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/savedQueries/{savedQueriesId}", + "httpMethod": "DELETE", + "id": "logging.organizations.locations.savedQueries.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The full resource name of the saved query to delete. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/savedQueries/[QUERY_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/savedQueries/[QUERY_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/savedQueries/[QUERY_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/savedQueries/[QUERY_ID]\" For example: \"projects/my-project/locations/global/savedQueries/my-saved-query\" ", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/savedQueries/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "list": { + "description": "Lists the SavedQueries that were created by the user making the request.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/savedQueries", + "httpMethod": "GET", + "id": "logging.organizations.locations.savedQueries.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of results to return from this request.Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource to which the listed queries belong. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]\" For example: \"projects/my-project/locations/us-central1\" Note: The locations portion of the resource must be specified. To get a list of all saved queries, a wildcard character - can be used for LOCATION_ID, for example: \"projects/my-project/locations/-\" ", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/savedQueries", + "response": { + "$ref": "ListSavedQueriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.read" + ] + } + } } } }, @@ -4202,14 +5477,14 @@ "type": "string" }, "parent": { - "description": "Required. The resource name that owns the logs: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", + "description": "Required. The resource name to list logs for: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, "type": "string" }, "resourceNames": { - "description": "Optional. The resource name that owns the logs: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]To support legacy queries, it could also be: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", + "description": "Optional. List of resource names to list logs for: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]To support legacy queries, it could also be: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]The resource name in the parent field is added to this list.", "location": "query", "repeated": true, "type": "string" @@ -4231,7 +5506,7 @@ "sinks": { "methods": { "create": { - "description": "Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.", + "description": "Creates a sink that exports specified log entries to a destination. The export begins upon ingress, unless the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.", "flatPath": "v2/organizations/{organizationsId}/sinks", "httpMethod": "POST", "id": "logging.organizations.sinks.create", @@ -4239,6 +5514,11 @@ "parent" ], "parameters": { + "customWriterIdentity": { + "description": "Optional. A service account provided by the caller that will be used to write the log entries. The format must be serviceAccount:some@email. This field can only be specified if you are routing logs to a destination outside this sink's project. If not specified, a Logging service account will automatically be generated.", + "location": "query", + "type": "string" + }, "parent": { "description": "Required. The resource in which to create the sink: \"projects/[PROJECT_ID]\" \"organizations/[ORGANIZATION_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]\" \"folders/[FOLDER_ID]\" For examples:\"projects/my-project\" \"organizations/123456789\"", "location": "path", @@ -4247,7 +5527,7 @@ "type": "string" }, "uniqueWriterIdentity": { - "description": "Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Cloud Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.", + "description": "Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Cloud Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a service agent (https://cloud.google.com/iam/docs/service-account-types#service-agents) used by the sinks with the same parent. For more information, see writer_identity in LogSink.", "location": "query", "type": "boolean" } @@ -4358,7 +5638,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", @@ -4366,6 +5646,11 @@ "sinkName" ], "parameters": { + "customWriterIdentity": { + "description": "Optional. A service account provided by the caller that will be used to write the log entries. The format must be serviceAccount:some@email. This field can only be specified if you are routing logs to a destination outside this sink's project. If not specified, a Logging service account will automatically be generated.", + "location": "query", + "type": "string" + }, "sinkName": { "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier: \"projects/[PROJECT_ID]/sinks/[SINK_ID]\" \"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\" \"folders/[FOLDER_ID]/sinks/[SINK_ID]\" For example:\"projects/my-project/sinks/my-sink\"", "location": "path", @@ -4374,7 +5659,7 @@ "type": "string" }, "uniqueWriterIdentity": { - "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field: If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity. If the old value is false and the new value is true, then writer_identity is changed to a unique service account. It is an error if the old value is true and the new value is set to false or defaulted to false.", + "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field: If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity. If the old value is false and the new value is true, then writer_identity is changed to a service agent (https://cloud.google.com/iam/docs/service-account-types#service-agents) owned by Cloud Logging. It is an error if the old value is true and the new value is set to false or defaulted to false.", "location": "query", "type": "boolean" }, @@ -4398,7 +5683,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", @@ -4406,6 +5691,11 @@ "sinkName" ], "parameters": { + "customWriterIdentity": { + "description": "Optional. A service account provided by the caller that will be used to write the log entries. The format must be serviceAccount:some@email. This field can only be specified if you are routing logs to a destination outside this sink's project. If not specified, a Logging service account will automatically be generated.", + "location": "query", + "type": "string" + }, "sinkName": { "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier: \"projects/[PROJECT_ID]/sinks/[SINK_ID]\" \"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\" \"folders/[FOLDER_ID]/sinks/[SINK_ID]\" For example:\"projects/my-project/sinks/my-sink\"", "location": "path", @@ -4414,7 +5704,7 @@ "type": "string" }, "uniqueWriterIdentity": { - "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field: If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity. If the old value is false and the new value is true, then writer_identity is changed to a unique service account. It is an error if the old value is true and the new value is set to false or defaulted to false.", + "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field: If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity. If the old value is false and the new value is true, then writer_identity is changed to a service agent (https://cloud.google.com/iam/docs/service-account-types#service-agents) owned by Cloud Logging. It is an error if the old value is true and the new value is set to false or defaulted to false.", "location": "query", "type": "boolean" }, @@ -4444,7 +5734,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", @@ -4453,7 +5743,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, @@ -4472,7 +5762,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", @@ -4481,7 +5771,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, @@ -4774,6 +6064,40 @@ "https://www.googleapis.com/auth/logging.admin" ] }, + "createAsync": { + "description": "Creates a log bucket asynchronously that can be used to store log entries.After a bucket has been created, the bucket's location cannot be changed.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/buckets:createAsync", + "httpMethod": "POST", + "id": "logging.projects.locations.buckets.createAsync", + "parameterOrder": [ + "parent" + ], + "parameters": { + "bucketId": { + "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource in which to create the log bucket: \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" For example:\"projects/my-project/locations/global\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/buckets:createAsync", + "request": { + "$ref": "LogBucket" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, "delete": { "description": "Deletes a log bucket.Changes the bucket's lifecycle_state to the DELETE_REQUESTED state. After 7 days, the bucket will be purged and all log entries in the bucket will be permanently deleted.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/buckets/{bucketsId}", @@ -4868,7 +6192,7 @@ ] }, "patch": { - "description": "Updates a log bucket. This method replaces the following fields in the existing bucket with values from the new bucket: retention_periodIf the retention period is decreased and the bucket is locked, FAILED_PRECONDITION will be returned.If the bucket has a lifecycle_state of DELETE_REQUESTED, then FAILED_PRECONDITION will be returned.After a bucket has been created, the bucket's location cannot be changed.", + "description": "Updates a log bucket.If the bucket has a lifecycle_state of DELETE_REQUESTED, then FAILED_PRECONDITION will be returned.After a bucket has been created, the bucket's location cannot be changed.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/buckets/{bucketsId}", "httpMethod": "PATCH", "id": "logging.projects.locations.buckets.patch", @@ -4930,9 +6254,175 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/logging.admin" ] + }, + "updateAsync": { + "description": "Updates a log bucket asynchronously.If the bucket has a lifecycle_state of DELETE_REQUESTED, then FAILED_PRECONDITION will be returned.After a bucket has been created, the bucket's location cannot be changed.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/buckets/{bucketsId}:updateAsync", + "httpMethod": "POST", + "id": "logging.projects.locations.buckets.updateAsync", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The full resource name of the bucket to update. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" For example:\"projects/my-project/locations/global/buckets/my-bucket\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/buckets/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Field mask that specifies the fields in bucket that need an update. A bucket field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.For a detailed FieldMask definition, see: https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMaskFor example: updateMask=retention_days", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+name}:updateAsync", + "request": { + "$ref": "LogBucket" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] } }, "resources": { + "links": { + "methods": { + "create": { + "description": "Asynchronously creates a linked dataset in BigQuery which makes it possible to use BigQuery to read the logs stored in the log bucket. A log bucket may currently only contain one link.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/buckets/{bucketsId}/links", + "httpMethod": "POST", + "id": "logging.projects.locations.buckets.links.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "linkId": { + "description": "Required. The ID to use for the link. The link_id can have up to 100 characters. A valid link_id must only have alphanumeric characters and underscores within it.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The full resource name of the bucket to create a link for. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" ", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/buckets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/links", + "request": { + "$ref": "Link" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "delete": { + "description": "Deletes a link. This will also delete the corresponding BigQuery linked dataset.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/buckets/{bucketsId}/links/{linksId}", + "httpMethod": "DELETE", + "id": "logging.projects.locations.buckets.links.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The full resource name of the link to delete. \"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]\" ", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/buckets/[^/]+/links/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "get": { + "description": "Gets a link.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/buckets/{bucketsId}/links/{linksId}", + "httpMethod": "GET", + "id": "logging.projects.locations.buckets.links.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the link: \"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]\" ", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/buckets/[^/]+/links/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "Link" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.read" + ] + }, + "list": { + "description": "Lists links.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/buckets/{bucketsId}/links", + "httpMethod": "GET", + "id": "logging.projects.locations.buckets.links.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of results to return from this request.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource whose links are to be listed: \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" ", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/buckets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/links", + "response": { + "$ref": "ListLinksResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.read" + ] + } + } + }, "views": { "methods": { "create": { @@ -4996,7 +6486,7 @@ ] }, "get": { - "description": "Gets a view on a log bucket..", + "description": "Gets a view on a log bucket.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/buckets/{bucketsId}/views/{viewsId}", "httpMethod": "GET", "id": "logging.projects.locations.buckets.views.get", @@ -5063,7 +6553,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", @@ -5122,14 +6612,14 @@ "type": "string" }, "parent": { - "description": "Required. The resource name that owns the logs: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", + "description": "Required. The resource name to list logs for: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/buckets/[^/]+/views/[^/]+$", "required": true, "type": "string" }, "resourceNames": { - "description": "Optional. The resource name that owns the logs: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]To support legacy queries, it could also be: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", + "description": "Optional. List of resource names to list logs for: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]To support legacy queries, it could also be: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]The resource name in the parent field is added to this list.", "location": "query", "repeated": true, "type": "string" @@ -5212,7 +6702,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as \"/v1/{name=users/*}/operations\" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "logging.projects.locations.operations.list", @@ -5256,6 +6746,152 @@ ] } } + }, + "recentQueries": { + "methods": { + "list": { + "description": "Lists the RecentQueries that were created by the user making the request.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/recentQueries", + "httpMethod": "GET", + "id": "logging.projects.locations.recentQueries.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource to which the listed queries belong. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]\" For example:projects/my-project/locations/us-central1Note: The location portion of the resource must be specified, but supplying the character - in place of LOCATION_ID will return all recent queries.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/recentQueries", + "response": { + "$ref": "ListRecentQueriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.read" + ] + } + } + }, + "savedQueries": { + "methods": { + "create": { + "description": "Creates a new SavedQuery for the user making the request.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/savedQueries", + "httpMethod": "POST", + "id": "logging.projects.locations.savedQueries.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource in which to create the saved query: \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]\" For example: \"projects/my-project/locations/global\" \"organizations/123456789/locations/us-central1\" ", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "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, periods.First character has to be alphanumeric.", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+parent}/savedQueries", + "request": { + "$ref": "SavedQuery" + }, + "response": { + "$ref": "SavedQuery" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "delete": { + "description": "Deletes an existing SavedQuery that was created by the user making the request.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/savedQueries/{savedQueriesId}", + "httpMethod": "DELETE", + "id": "logging.projects.locations.savedQueries.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The full resource name of the saved query to delete. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/savedQueries/[QUERY_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/savedQueries/[QUERY_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/savedQueries/[QUERY_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/savedQueries/[QUERY_ID]\" For example: \"projects/my-project/locations/global/savedQueries/my-saved-query\" ", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/savedQueries/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "list": { + "description": "Lists the SavedQueries that were created by the user making the request.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/savedQueries", + "httpMethod": "GET", + "id": "logging.projects.locations.savedQueries.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of results to return from this request.Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource to which the listed queries belong. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]\" For example: \"projects/my-project/locations/us-central1\" Note: The locations portion of the resource must be specified. To get a list of all saved queries, a wildcard character - can be used for LOCATION_ID, for example: \"projects/my-project/locations/-\" ", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/savedQueries", + "response": { + "$ref": "ListSavedQueriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.read" + ] + } + } } } }, @@ -5308,14 +6944,14 @@ "type": "string" }, "parent": { - "description": "Required. The resource name that owns the logs: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", + "description": "Required. The resource name to list logs for: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", "location": "path", "pattern": "^projects/[^/]+$", "required": true, "type": "string" }, "resourceNames": { - "description": "Optional. The resource name that owns the logs: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]To support legacy queries, it could also be: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]", + "description": "Optional. List of resource names to list logs for: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]To support legacy queries, it could also be: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]The resource name in the parent field is added to this list.", "location": "query", "repeated": true, "type": "string" @@ -5495,7 +7131,7 @@ "sinks": { "methods": { "create": { - "description": "Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.", + "description": "Creates a sink that exports specified log entries to a destination. The export begins upon ingress, unless the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.", "flatPath": "v2/projects/{projectsId}/sinks", "httpMethod": "POST", "id": "logging.projects.sinks.create", @@ -5503,6 +7139,11 @@ "parent" ], "parameters": { + "customWriterIdentity": { + "description": "Optional. A service account provided by the caller that will be used to write the log entries. The format must be serviceAccount:some@email. This field can only be specified if you are routing logs to a destination outside this sink's project. If not specified, a Logging service account will automatically be generated.", + "location": "query", + "type": "string" + }, "parent": { "description": "Required. The resource in which to create the sink: \"projects/[PROJECT_ID]\" \"organizations/[ORGANIZATION_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]\" \"folders/[FOLDER_ID]\" For examples:\"projects/my-project\" \"organizations/123456789\"", "location": "path", @@ -5511,7 +7152,7 @@ "type": "string" }, "uniqueWriterIdentity": { - "description": "Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Cloud Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.", + "description": "Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Cloud Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a service agent (https://cloud.google.com/iam/docs/service-account-types#service-agents) used by the sinks with the same parent. For more information, see writer_identity in LogSink.", "location": "query", "type": "boolean" } @@ -5622,7 +7263,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", @@ -5630,6 +7271,11 @@ "sinkName" ], "parameters": { + "customWriterIdentity": { + "description": "Optional. A service account provided by the caller that will be used to write the log entries. The format must be serviceAccount:some@email. This field can only be specified if you are routing logs to a destination outside this sink's project. If not specified, a Logging service account will automatically be generated.", + "location": "query", + "type": "string" + }, "sinkName": { "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier: \"projects/[PROJECT_ID]/sinks/[SINK_ID]\" \"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\" \"folders/[FOLDER_ID]/sinks/[SINK_ID]\" For example:\"projects/my-project/sinks/my-sink\"", "location": "path", @@ -5638,7 +7284,7 @@ "type": "string" }, "uniqueWriterIdentity": { - "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field: If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity. If the old value is false and the new value is true, then writer_identity is changed to a unique service account. It is an error if the old value is true and the new value is set to false or defaulted to false.", + "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field: If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity. If the old value is false and the new value is true, then writer_identity is changed to a service agent (https://cloud.google.com/iam/docs/service-account-types#service-agents) owned by Cloud Logging. It is an error if the old value is true and the new value is set to false or defaulted to false.", "location": "query", "type": "boolean" }, @@ -5662,7 +7308,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", @@ -5670,6 +7316,11 @@ "sinkName" ], "parameters": { + "customWriterIdentity": { + "description": "Optional. A service account provided by the caller that will be used to write the log entries. The format must be serviceAccount:some@email. This field can only be specified if you are routing logs to a destination outside this sink's project. If not specified, a Logging service account will automatically be generated.", + "location": "query", + "type": "string" + }, "sinkName": { "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier: \"projects/[PROJECT_ID]/sinks/[SINK_ID]\" \"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\" \"folders/[FOLDER_ID]/sinks/[SINK_ID]\" For example:\"projects/my-project/sinks/my-sink\"", "location": "path", @@ -5678,7 +7329,7 @@ "type": "string" }, "uniqueWriterIdentity": { - "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field: If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity. If the old value is false and the new value is true, then writer_identity is changed to a unique service account. It is an error if the old value is true and the new value is set to false or defaulted to false.", + "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field: If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity. If the old value is false and the new value is true, then writer_identity is changed to a service agent (https://cloud.google.com/iam/docs/service-account-types#service-agents) owned by Cloud Logging. It is an error if the old value is true and the new value is set to false or defaulted to false.", "location": "query", "type": "boolean" }, @@ -5708,7 +7359,7 @@ "sinks": { "methods": { "create": { - "description": "Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.", + "description": "Creates a sink that exports specified log entries to a destination. The export begins upon ingress, unless the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.", "flatPath": "v2/{v2Id}/{v2Id1}/sinks", "httpMethod": "POST", "id": "logging.sinks.create", @@ -5716,6 +7367,11 @@ "parent" ], "parameters": { + "customWriterIdentity": { + "description": "Optional. A service account provided by the caller that will be used to write the log entries. The format must be serviceAccount:some@email. This field can only be specified if you are routing logs to a destination outside this sink's project. If not specified, a Logging service account will automatically be generated.", + "location": "query", + "type": "string" + }, "parent": { "description": "Required. The resource in which to create the sink: \"projects/[PROJECT_ID]\" \"organizations/[ORGANIZATION_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]\" \"folders/[FOLDER_ID]\" For examples:\"projects/my-project\" \"organizations/123456789\"", "location": "path", @@ -5724,7 +7380,7 @@ "type": "string" }, "uniqueWriterIdentity": { - "description": "Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Cloud Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.", + "description": "Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Cloud Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a service agent (https://cloud.google.com/iam/docs/service-account-types#service-agents) used by the sinks with the same parent. For more information, see writer_identity in LogSink.", "location": "query", "type": "boolean" } @@ -5835,7 +7491,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", @@ -5843,6 +7499,11 @@ "sinkName" ], "parameters": { + "customWriterIdentity": { + "description": "Optional. A service account provided by the caller that will be used to write the log entries. The format must be serviceAccount:some@email. This field can only be specified if you are routing logs to a destination outside this sink's project. If not specified, a Logging service account will automatically be generated.", + "location": "query", + "type": "string" + }, "sinkName": { "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier: \"projects/[PROJECT_ID]/sinks/[SINK_ID]\" \"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\" \"folders/[FOLDER_ID]/sinks/[SINK_ID]\" For example:\"projects/my-project/sinks/my-sink\"", "location": "path", @@ -5851,7 +7512,7 @@ "type": "string" }, "uniqueWriterIdentity": { - "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field: If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity. If the old value is false and the new value is true, then writer_identity is changed to a unique service account. It is an error if the old value is true and the new value is set to false or defaulted to false.", + "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field: If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity. If the old value is false and the new value is true, then writer_identity is changed to a service agent (https://cloud.google.com/iam/docs/service-account-types#service-agents) owned by Cloud Logging. It is an error if the old value is true and the new value is set to false or defaulted to false.", "location": "query", "type": "boolean" }, @@ -5879,7 +7540,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", @@ -5888,7 +7549,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, @@ -5907,7 +7568,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", @@ -5916,7 +7577,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, @@ -5935,7 +7596,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", @@ -5970,7 +7631,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", @@ -5979,7 +7640,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, @@ -6007,9 +7668,21 @@ } } }, - "revision": "20230104", + "revision": "20240223", "rootUrl": "https://logging.googleapis.com/", "schemas": { + "BigQueryDataset": { + "description": "Describes a BigQuery dataset that was created by a link.", + "id": "BigQueryDataset", + "properties": { + "datasetId": { + "description": "Output only. The full resource name of the BigQuery dataset. The DATASET_ID will match the ID of the link, so the link must match the naming restrictions of BigQuery datasets (alphanumeric characters and underscores only).The dataset will have a resource path of \"bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID\"", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "BigQueryOptions": { "description": "Options that change functionality of a sink exporting data to BigQuery.", "id": "BigQueryOptions", @@ -6019,13 +7692,63 @@ "type": "boolean" }, "usesTimestampColumnPartitioning": { - "description": "Output only. True if new timestamp column based partitioning is in use, false if legacy ingestion-time partitioning is in use.All new sinks will have this field set true and will use timestamp column based partitioning. If use_partitioned_tables is false, this value has no meaning and will be false. Legacy sinks using partitioned tables will have this field set to false.", + "description": "Output only. True if new timestamp column based partitioning is in use, false if legacy ingress-time partitioning is in use.All new sinks will have this field set true and will use timestamp column based partitioning. If use_partitioned_tables is false, this value has no meaning and will be false. Legacy sinks using partitioned tables will have this field set to false.", "readOnly": true, "type": "boolean" } }, "type": "object" }, + "BucketMetadata": { + "description": "Metadata for LongRunningUpdateBucket Operations.", + "id": "BucketMetadata", + "properties": { + "createBucketRequest": { + "$ref": "CreateBucketRequest", + "description": "LongRunningCreateBucket RPC request." + }, + "endTime": { + "description": "The end time of an operation.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "The create time of an operation.", + "format": "google-datetime", + "type": "string" + }, + "state": { + "description": "Output only. State of an operation.", + "enum": [ + "OPERATION_STATE_UNSPECIFIED", + "OPERATION_STATE_SCHEDULED", + "OPERATION_STATE_WAITING_FOR_PERMISSIONS", + "OPERATION_STATE_RUNNING", + "OPERATION_STATE_SUCCEEDED", + "OPERATION_STATE_FAILED", + "OPERATION_STATE_CANCELLED", + "OPERATION_STATE_PENDING" + ], + "enumDescriptions": [ + "Should not be used.", + "The operation is scheduled.", + "Waiting for necessary permissions.", + "The operation is running.", + "The operation was completed successfully.", + "The operation failed.", + "The operation was cancelled by the user.", + "The operation is waiting for quota." + ], + "readOnly": true, + "type": "string" + }, + "updateBucketRequest": { + "$ref": "UpdateBucketRequest", + "description": "LongRunningUpdateBucket RPC request." + } + }, + "type": "object" + }, "BucketOptions": { "description": "BucketOptions describes the bucket boundaries used to create a histogram for the distribution. The buckets can be in a linear sequence, an exponential sequence, or each bucket can be specified explicitly. BucketOptions does not include the number of values in each bucket.A bucket has an inclusive lower bound and exclusive upper bound for the values that are counted for that bucket. The upper bound of a bucket must be strictly greater than the lower bound. The sequence of N buckets for a distribution consists of an underflow bucket (number 0), zero or more finite buckets (number 1 through N - 2) and an overflow bucket (number N - 1). The buckets are contiguous: the lower bound of bucket i (i > 0) is the same as the upper bound of bucket i - 1. The buckets span the whole range of finite values: lower bound of the underflow bucket is -infinity and the upper bound of the overflow bucket is +infinity. The finite buckets are so-called because both bounds are finite.", "id": "BucketOptions", @@ -6056,11 +7779,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 required 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.", + "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": { @@ -6084,6 +7808,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", @@ -6096,7 +7824,12 @@ }, "request": { "$ref": "CopyLogEntriesRequest", - "description": "CopyLogEntries RPC request." + "deprecated": true, + "description": "CopyLogEntries RPC request. This field is deprecated and not used." + }, + "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.", @@ -6104,7 +7837,7 @@ "type": "string" }, "state": { - "description": "State of an operation.", + "description": "Output only. State of an operation.", "enum": [ "OPERATION_STATE_UNSPECIFIED", "OPERATION_STATE_SCHEDULED", @@ -6112,7 +7845,8 @@ "OPERATION_STATE_RUNNING", "OPERATION_STATE_SUCCEEDED", "OPERATION_STATE_FAILED", - "OPERATION_STATE_CANCELLED" + "OPERATION_STATE_CANCELLED", + "OPERATION_STATE_PENDING" ], "enumDescriptions": [ "Should not be used.", @@ -6121,8 +7855,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": { @@ -6163,6 +7903,87 @@ }, "type": "object" }, + "CreateBucketRequest": { + "description": "The parameters to CreateBucket.", + "id": "CreateBucketRequest", + "properties": { + "bucket": { + "$ref": "LogBucket", + "description": "Required. The new bucket. The region specified in the new bucket must be compliant with any Location Restriction Org Policy. The name field in the bucket is ignored." + }, + "bucketId": { + "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", + "type": "string" + }, + "parent": { + "description": "Required. The resource in which to create the log bucket: \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" For example:\"projects/my-project/locations/global\"", + "type": "string" + } + }, + "type": "object" + }, + "CreateLinkRequest": { + "description": "The parameters to CreateLink.", + "id": "CreateLinkRequest", + "properties": { + "link": { + "$ref": "Link", + "description": "Required. The new link." + }, + "linkId": { + "description": "Required. The ID to use for the link. The link_id can have up to 100 characters. A valid link_id must only have alphanumeric characters and underscores within it.", + "type": "string" + }, + "parent": { + "description": "Required. The full resource name of the bucket to create a link for. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" ", + "type": "string" + } + }, + "type": "object" + }, + "DefaultSinkConfig": { + "description": "Describes the custom _Default sink configuration that is used to override the built-in _Default sink configuration in newly created resource containers, such as projects or folders.", + "id": "DefaultSinkConfig", + "properties": { + "exclusions": { + "description": "Optional. Specifies the set of exclusions to be added to the _Default sink in newly created resource containers.", + "items": { + "$ref": "LogExclusion" + }, + "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>=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": { + "description": "Required. Determines the behavior to apply to the built-in _Default sink inclusion filter.Exclusions are always appended, as built-in _Default sinks have no exclusions.", + "enum": [ + "FILTER_WRITE_MODE_UNSPECIFIED", + "APPEND", + "OVERWRITE" + ], + "enumDescriptions": [ + "The filter's write mode is unspecified. This mode must not be used.", + "The contents of filter will be appended to the built-in _Default sink filter. Using the append mode with an empty filter will keep the sink inclusion filter unchanged.", + "The contents of filter will overwrite the built-in _Default sink filter." + ], + "type": "string" + } + }, + "type": "object" + }, + "DeleteLinkRequest": { + "description": "The parameters to DeleteLink.", + "id": "DeleteLinkRequest", + "properties": { + "name": { + "description": "Required. The full resource name of the link to delete. \"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]\" ", + "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", @@ -6185,7 +8006,7 @@ "type": "object" }, "Exponential": { - "description": "Specifies an exponential sequence of buckets that have a width that is proportional to the value of the lower bound. Each bucket represents a constant relative uncertainty on a specific value in the bucket.There are num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 <= i < N-1): scale * (growth_factor ^ i). Lower bound (1 <= i < N): scale * (growth_factor ^ (i - 1)).", + "description": "Specifies an exponential sequence of buckets that have a width that is proportional to the value of the lower bound. Each bucket represents a constant relative uncertainty on a specific value in the bucket.There are num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 <= i < N-1): scale * (growth_factor ^ i).Lower bound (1 <= i < N): scale * (growth_factor ^ (i - 1)).", "id": "Exponential", "properties": { "growthFactor": { @@ -6237,7 +8058,7 @@ "type": "string" }, "referer": { - "description": "The referer URL of the request, as defined in HTTP/1.1 Header Field Definitions (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).", + "description": "The referer URL of the request, as defined in HTTP/1.1 Header Field Definitions (https://datatracker.ietf.org/doc/html/rfc2616#section-14.36).", "type": "string" }, "remoteIp": { @@ -6339,7 +8160,7 @@ "type": "object" }, "Linear": { - "description": "Specifies a linear sequence of buckets that all have the same width (except overflow and underflow). Each bucket represents a constant absolute uncertainty on the specific value in the bucket.There are num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 <= i < N-1): offset + (width * i). Lower bound (1 <= i < N): offset + (width * (i - 1)).", + "description": "Specifies a linear sequence of buckets that all have the same width (except overflow and underflow). Each bucket represents a constant absolute uncertainty on the specific value in the bucket.There are num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 <= i < N-1): offset + (width * i).Lower bound (1 <= i < N): offset + (width * (i - 1)).", "id": "Linear", "properties": { "numFiniteBuckets": { @@ -6360,6 +8181,103 @@ }, "type": "object" }, + "Link": { + "description": "Describes a link connected to an analytics enabled bucket.", + "id": "Link", + "properties": { + "bigqueryDataset": { + "$ref": "BigQueryDataset", + "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.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Describes this link.The maximum length of the description is 8000 characters.", + "type": "string" + }, + "lifecycleState": { + "description": "Output only. The resource lifecycle state.", + "enum": [ + "LIFECYCLE_STATE_UNSPECIFIED", + "ACTIVE", + "DELETE_REQUESTED", + "UPDATING", + "CREATING", + "FAILED" + ], + "enumDescriptions": [ + "Unspecified state. This is only used/useful for distinguishing unset values.", + "The normal and active state.", + "The resource has been marked for deletion by the user. For some resources (e.g. buckets), this can be reversed by an un-delete operation.", + "The resource has been marked for an update by the user. It will remain in this state until the update is complete.", + "The resource has been marked for creation by the user. It will remain in this state until the creation is complete.", + "The resource is in an INTERNAL error state." + ], + "readOnly": true, + "type": "string" + }, + "name": { + "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" + } + }, + "type": "object" + }, + "LinkMetadata": { + "description": "Metadata for long running Link operations.", + "id": "LinkMetadata", + "properties": { + "createLinkRequest": { + "$ref": "CreateLinkRequest", + "description": "CreateLink RPC request." + }, + "deleteLinkRequest": { + "$ref": "DeleteLinkRequest", + "description": "DeleteLink RPC request." + }, + "endTime": { + "description": "The end time of an operation.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "The start time of an operation.", + "format": "google-datetime", + "type": "string" + }, + "state": { + "description": "Output only. State of an operation.", + "enum": [ + "OPERATION_STATE_UNSPECIFIED", + "OPERATION_STATE_SCHEDULED", + "OPERATION_STATE_WAITING_FOR_PERMISSIONS", + "OPERATION_STATE_RUNNING", + "OPERATION_STATE_SUCCEEDED", + "OPERATION_STATE_FAILED", + "OPERATION_STATE_CANCELLED", + "OPERATION_STATE_PENDING" + ], + "enumDescriptions": [ + "Should not be used.", + "The operation is scheduled.", + "Waiting for necessary permissions.", + "The operation is running.", + "The operation was completed successfully.", + "The operation failed.", + "The operation was cancelled by the user.", + "The operation is waiting for quota." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "ListBucketsResponse": { "description": "The response from ListBuckets.", "id": "ListBucketsResponse", @@ -6396,6 +8314,24 @@ }, "type": "object" }, + "ListLinksResponse": { + "description": "The response from ListLinks.", + "id": "ListLinksResponse", + "properties": { + "links": { + "description": "A list of links.", + "items": { + "$ref": "Link" + }, + "type": "array" + }, + "nextPageToken": { + "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call the same method again using the value of nextPageToken as pageToken.", + "type": "string" + } + }, + "type": "object" + }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -6419,7 +8355,7 @@ "id": "ListLogEntriesRequest", "properties": { "filter": { - "description": "Optional. Only log entries that match the filter are returned. An empty filter matches all log entries in the resources listed in resource_names. Referencing a parent resource that is not listed in resource_names will cause the filter to return no results. The maximum length of a filter is 20,000 characters.", + "description": "Optional. A filter that chooses which log entries to return. For more information, see Logging query language (https://cloud.google.com/logging/docs/view/logging-query-language).Only log entries that match the filter are returned. An empty filter matches all log entries in the resources listed in resource_names. Referencing a parent resource that is not listed in resource_names will cause the filter to return no results. The maximum length of a filter is 20,000 characters.", "type": "string" }, "orderBy": { @@ -6427,7 +8363,7 @@ "type": "string" }, "pageSize": { - "description": "Optional. The maximum number of results to return from this request. Default is 50. If the value is negative or exceeds 1000, the request is rejected. The presence of next_page_token in the response indicates that more results might be available.", + "description": "Optional. The maximum number of results to return from this request. Default is 50. If the value is negative, the request is rejected.The presence of next_page_token in the response indicates that more results might be available.", "format": "int32", "type": "integer" }, @@ -6436,6 +8372,7 @@ "type": "string" }, "projectIds": { + "deprecated": true, "description": "Optional. Deprecated. Use resource_names instead. One or more project identifiers or project numbers from which to retrieve log entries. Example: \"my-project-1A\".", "items": { "type": "string" @@ -6443,7 +8380,7 @@ "type": "array" }, "resourceNames": { - "description": "Required. Names of one or more parent resources from which to retrieve log entries: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]May alternatively be one or more views: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]Projects listed in the project_ids field are added to this list.", + "description": "Required. Names of one or more parent resources from which to retrieve log entries: projects/[PROJECT_ID] organizations/[ORGANIZATION_ID] billingAccounts/[BILLING_ACCOUNT_ID] folders/[FOLDER_ID]May alternatively be one or more views: projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID] folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]Projects listed in the project_ids field are added to this list. A maximum of 100 resources may be specified in a single request.", "items": { "type": "string" }, @@ -6542,6 +8479,56 @@ }, "type": "object" }, + "ListRecentQueriesResponse": { + "description": "The response from ListRecentQueries.", + "id": "ListRecentQueriesResponse", + "properties": { + "nextPageToken": { + "description": "If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call the same method again using the value of nextPageToken as pageToken.", + "type": "string" + }, + "recentQueries": { + "description": "A list of recent queries.", + "items": { + "$ref": "RecentQuery" + }, + "type": "array" + }, + "unreachable": { + "description": "The unreachable resources. Each resource can be either 1) a saved query if a specific query is unreachable or 2) a location if a specific location is unreachable. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/recentQueries/[QUERY_ID]\" \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" For example:\"projects/my-project/locations/global/recentQueries/12345678\" \"projects/my-project/locations/global\"If there are unreachable resources, the response will first return pages that contain recent queries, and then return pages that contain the unreachable resources.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListSavedQueriesResponse": { + "description": "The response from ListSavedQueries.", + "id": "ListSavedQueriesResponse", + "properties": { + "nextPageToken": { + "description": "If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call the same method again using the value of nextPageToken as pageToken.", + "type": "string" + }, + "savedQueries": { + "description": "A list of saved queries.", + "items": { + "$ref": "SavedQuery" + }, + "type": "array" + }, + "unreachable": { + "description": "The unreachable resources. It can be either 1) a saved query if a specific query is unreachable or 2) a location if a specific location is unreachabe. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/savedQueries/[QUERY_ID]\" \"projects/[PROJECT_ID]/locations/[LOCATION_ID]\" For example: \"projects/my-project/locations/global/savedQueries/12345678\" \"projects/my-project/locations/global\" If there are unreachable resources, the response will first return pages that contain saved queries, and then return pages that contain the unreachable resources.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListSinksResponse": { "description": "Result returned from ListSinks.", "id": "ListSinksResponse", @@ -6579,7 +8566,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -6612,13 +8599,28 @@ }, "type": "object" }, + "LocationMetadata": { + "description": "Cloud Logging specific location metadata.", + "id": "LocationMetadata", + "properties": { + "logAnalyticsEnabled": { + "description": "Indicates whether or not Log Analytics features are supported in the given location.", + "type": "boolean" + } + }, + "type": "object" + }, "LogBucket": { "description": "Describes a repository in which log entries are stored.", "id": "LogBucket", "properties": { + "analyticsEnabled": { + "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.", @@ -6627,11 +8629,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" }, @@ -6642,18 +8644,24 @@ "enum": [ "LIFECYCLE_STATE_UNSPECIFIED", "ACTIVE", - "DELETE_REQUESTED" + "DELETE_REQUESTED", + "UPDATING", + "CREATING", + "FAILED" ], "enumDescriptions": [ "Unspecified state. This is only used/useful for distinguishing unset values.", "The normal and active state.", - "The resource has been marked for deletion by the user. For some resources (e.g. buckets), this can be reversed by an un-delete operation." + "The resource has been marked for deletion by the user. For some resources (e.g. buckets), this can be reversed by an un-delete operation.", + "The resource has been marked for an update by the user. It will remain in this state until the update is complete.", + "The resource has been marked for creation by the user. It will remain in this state until the creation is complete.", + "The resource is in an INTERNAL error state." ], "readOnly": true, "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": { @@ -6662,14 +8670,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" }, @@ -6686,6 +8694,14 @@ "description": "An individual entry in a log.", "id": "LogEntry", "properties": { + "errorGroups": { + "description": "Output only. The Error Reporting (https://cloud.google.com/error-reporting) error groups associated with this LogEntry. Error Reporting sets the values for this field during error group creation.For more information, see View error details( https://cloud.google.com/error-reporting/docs/viewing-errors#view_error_details)This field isn't available during log routing (https://cloud.google.com/logging/docs/routing/overview)", + "items": { + "$ref": "LogErrorGroup" + }, + "readOnly": true, + "type": "array" + }, "httpRequest": { "$ref": "HttpRequest", "description": "Optional. Information about the HTTP request associated with this log entry, if applicable." @@ -6710,11 +8726,12 @@ "type": "object" }, "logName": { - "description": "Required. The resource name of the log to which this log entry belongs: \"projects/[PROJECT_ID]/logs/[LOG_ID]\" \"organizations/[ORGANIZATION_ID]/logs/[LOG_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]\" \"folders/[FOLDER_ID]/logs/[LOG_ID]\" A project number may be used in place of PROJECT_ID. The project number is translated to its corresponding PROJECT_ID internally and the log_name field will contain PROJECT_ID in queries and exports.[LOG_ID] must be URL-encoded within log_name. Example: \"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity\".[LOG_ID] must be less than 512 characters long and can only include the following characters: upper and lower case alphanumeric characters, forward-slash, underscore, hyphen, and period.For backward compatibility, if log_name begins with a forward-slash, such as /projects/..., then the log entry is ingested as usual, but the forward-slash is removed. Listing the log entry will not show the leading slash and filtering for a log name with a leading slash will never return any results.", + "description": "Required. The resource name of the log to which this log entry belongs: \"projects/[PROJECT_ID]/logs/[LOG_ID]\" \"organizations/[ORGANIZATION_ID]/logs/[LOG_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]\" \"folders/[FOLDER_ID]/logs/[LOG_ID]\" A project number may be used in place of PROJECT_ID. The project number is translated to its corresponding PROJECT_ID internally and the log_name field will contain PROJECT_ID in queries and exports.[LOG_ID] must be URL-encoded within log_name. Example: \"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity\".[LOG_ID] must be less than 512 characters long and can only include the following characters: upper and lower case alphanumeric characters, forward-slash, underscore, hyphen, and period.For backward compatibility, if log_name begins with a forward-slash, such as /projects/..., then the log entry is processed as usual, but the forward-slash is removed. Listing the log entry will not show the leading slash and filtering for a log name with a leading slash will never return any results.", "type": "string" }, "metadata": { "$ref": "MonitoredResourceMetadata", + "deprecated": true, "description": "Output only. Deprecated. This field is not used by Logging. Any value written to it is cleared.", "readOnly": true }, @@ -6783,16 +8800,16 @@ "type": "string" }, "timestamp": { - "description": "Optional. The time the event described by the log entry occurred. This time is used to compute the log entry's age and to enforce the logs retention period. If this field is omitted in a new log entry, then Logging assigns it the current time. Timestamps have nanosecond accuracy, but trailing zeros in the fractional seconds might be omitted when the timestamp is displayed.Incoming log entries must have timestamps that don't exceed the logs retention period (https://cloud.google.com/logging/quotas#logs_retention_periods) in the past, and that don't exceed 24 hours in the future. Log entries outside those time boundaries aren't ingested by Logging.", + "description": "Optional. The time the event described by the log entry occurred. This time is used to compute the log entry's age and to enforce the logs retention period. If this field is omitted in a new log entry, then Logging assigns it the current time. Timestamps have nanosecond accuracy, but trailing zeros in the fractional seconds might be omitted when the timestamp is displayed.Incoming log entries must have timestamps that don't exceed the logs retention period (https://cloud.google.com/logging/quotas#logs_retention_periods) in the past, and that don't exceed 24 hours in the future. Log entries outside those time boundaries are rejected by Logging.", "format": "google-datetime", "type": "string" }, "trace": { - "description": "Optional. The REST resource name of the trace being written to Cloud Trace (https://cloud.google.com/trace) in association with this log entry. For example, if your trace data is stored in the Cloud project \"my-trace-project\" and if the service that is creating the log entry receives a trace header that includes the trace ID \"12345\", then the service should use \"projects/my-tracing-project/traces/12345\".The trace field provides the link between logs and traces. By using this field, you can navigate from a log entry to a trace.", + "description": "Optional. The REST resource name of the trace being written to Cloud Trace (https://cloud.google.com/trace) in association with this log entry. For example, if your trace data is stored in the Cloud project \"my-trace-project\" and if the service that is creating the log entry receives a trace header that includes the trace ID \"12345\", then the service should use \"projects/my-trace-project/traces/12345\".The trace field provides the link between logs and traces. By using this field, you can navigate from a log entry to a trace.", "type": "string" }, "traceSampled": { - "description": "Optional. The sampling decision of the trace associated with the log entry.True means that the trace resource name in the trace field was sampled for storage in a trace backend. False means that the trace was not sampled for storage when this log entry was written, or the sampling decision was unknown at the time. A non-sampled trace value is still useful as a request correlation identifier. The default is False.", + "description": "Optional. The sampling decision of the span associated with the log entry at the time the log entry was created. This field corresponds to the sampled flag in the W3C trace-context specification (https://www.w3.org/TR/trace-context/#sampled-flag). A non-sampled trace value is still useful as a request correlation identifier. The default is False.", "type": "boolean" } }, @@ -6841,6 +8858,17 @@ }, "type": "object" }, + "LogErrorGroup": { + "description": "Contains metadata that associates the LogEntry to Error Reporting error groups.", + "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: /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" + } + }, + "type": "object" + }, "LogExclusion": { "description": "Specifies a set of log entries that are filtered out by a sink. If your Google Cloud resource receives a large volume of log entries, you can use exclusions to reduce your chargeable logs. Note that exclusions on organization-level and folder-level sinks don't apply to child resources. Note also that you cannot modify the _Required sink or exclude logs from it.", "id": "LogExclusion", @@ -6864,7 +8892,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": { @@ -6978,6 +9007,7 @@ "type": "string" }, "version": { + "deprecated": true, "description": "Deprecated. The API version that created or updated this metric. The v2 format is used by default and cannot be changed.", "enum": [ "V2", @@ -6993,7 +9023,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": { @@ -7011,7 +9041,7 @@ "type": "string" }, "destination": { - "description": "Required. The export destination: \"storage.googleapis.com/[GCS_BUCKET]\" \"bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]\" \"pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]\" The sink's writer_identity, set when the sink is created, must have permission to write to the destination or else the log entries are not exported. For more information, see Exporting Logs with Sinks (https://cloud.google.com/logging/docs/api/tasks/exporting-logs).", + "description": "Required. The export destination: \"storage.googleapis.com/[GCS_BUCKET]\" \"bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]\" \"pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]\" \"logging.googleapis.com/projects/[PROJECT_ID]\" \"logging.googleapis.com/projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" The sink's writer_identity, set when the sink is created, must have permission to write to the destination or else the log entries are not exported. For more information, see Exporting Logs with Sinks (https://cloud.google.com/logging/docs/api/tasks/exporting-logs).", "type": "string" }, "disabled": { @@ -7034,10 +9064,12 @@ "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": { + "deprecated": true, "description": "Deprecated. This field is unused.", "enum": [ "VERSION_FORMAT_UNSPECIFIED", @@ -7097,15 +9129,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": { @@ -7117,6 +9150,34 @@ }, "type": "object" }, + "LoggingQuery": { + "description": "Describes a Cloud Logging query that can be run in Logs Explorer UI or via the logging API.In addition to the query itself, additional information may be stored to capture the display configuration and other UI state used in association with analysis of query results.", + "id": "LoggingQuery", + "properties": { + "filter": { + "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": { + "description": "Characters will be counted from the end of the string.", + "format": "int32", + "type": "integer" + }, + "summaryFieldStart": { + "description": "Characters will be counted from the start of the string.", + "format": "int32", + "type": "integer" + }, + "summaryFields": { + "description": "Optional. The set of summary fields to display for this saved query.", + "items": { + "$ref": "SummaryField" + }, + "type": "array" + } + }, + "type": "object" + }, "MetricDescriptor": { "description": "Defines a metric type and its schema. Once a metric descriptor is created, deleting or altering it stops data collection and makes the metric type's existing data unusable.", "id": "MetricDescriptor", @@ -7234,6 +9295,7 @@ "type": "string" }, "launchStage": { + "deprecated": true, "description": "Deprecated. Must use the MetricDescriptor.launch_stage instead.", "enum": [ "LAUNCH_STAGE_UNSPECIFIED", @@ -7331,7 +9393,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" } }, @@ -7388,12 +9450,49 @@ "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" } }, "type": "object" }, + "OpsAnalyticsQuery": { + "description": "Describes an analytics query that can be run in the Log Analytics page of Google Cloud console.Preview: This is a preview feature and may be subject to change before final release.", + "id": "OpsAnalyticsQuery", + "properties": { + "sqlQueryText": { + "description": "Required. A logs analytics SQL query, which generally follows BigQuery format.This is the SQL query that appears in the Log Analytics UI's query editor.", + "type": "string" + } + }, + "type": "object" + }, + "RecentQuery": { + "description": "Describes a recent query executed on the Logs Explorer or Log Analytics page within the last ~ 30 days.", + "id": "RecentQuery", + "properties": { + "lastRunTime": { + "description": "Output only. The timestamp when this query was last run.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "loggingQuery": { + "$ref": "LoggingQuery", + "description": "Logging query that can be executed in Logs Explorer or via Logging API." + }, + "name": { + "description": "Output only. Resource name of the recent query.In the format: \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/recentQueries/[QUERY_ID]\" For a list of supported locations, see Supported Regions (https://cloud.google.com/logging/docs/region-support)The QUERY_ID is a system generated alphanumeric ID.", + "readOnly": true, + "type": "string" + }, + "opsAnalyticsQuery": { + "$ref": "OpsAnalyticsQuery", + "description": "Analytics query that can be executed in Log Analytics." + } + }, + "type": "object" + }, "RequestLog": { "description": "Complete log information about a single HTTP request to an App Engine application.", "id": "RequestLog", @@ -7552,20 +9651,83 @@ }, "type": "object" }, + "SavedQuery": { + "description": "Describes a query that has been saved by a user.", + "id": "SavedQuery", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the saved query was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. A human readable description of the saved query.", + "type": "string" + }, + "displayName": { + "description": "Optional. The user specified title for the SavedQuery.", + "type": "string" + }, + "loggingQuery": { + "$ref": "LoggingQuery", + "description": "Logging query that can be executed in Logs Explorer or via Logging API." + }, + "name": { + "description": "Output only. Resource name of the saved query.In the format: \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/savedQueries/[QUERY_ID]\" For a list of supported locations, see Supported Regions (https://cloud.google.com/logging/docs/region-support#bucket-regions)After the saved query is created, the location cannot be changed.If the user doesn't provide a QUERY_ID, the system will generate an alphanumeric ID.", + "readOnly": true, + "type": "string" + }, + "opsAnalyticsQuery": { + "$ref": "OpsAnalyticsQuery", + "description": "Analytics query that can be executed in Log Analytics." + }, + "updateTime": { + "description": "Output only. The timestamp when the saved query was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "visibility": { + "description": "Required. The visibility status of this query, which determines its ownership.", + "enum": [ + "VISIBILITY_UNSPECIFIED", + "PRIVATE", + "SHARED" + ], + "enumDescriptions": [ + "The saved query visibility is unspecified. A CreateSavedQuery request with an unspecified visibility will be rejected.", + "The saved query is only visible to the user that created it.", + "The saved query is visible to anyone in the project." + ], + "type": "string" + } + }, + "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": { + "defaultSinkConfig": { + "$ref": "DefaultSinkConfig", + "description": "Optional. Overrides the built-in configuration for _Default sink." + }, "disableDefaultSink": { - "description": "Optional. If set to true, the _Default sink in newly created projects and folders will created in a disabled state. This can be used to automatically disable log ingestion if there is already an aggregated sink configured in the hierarchy. The _Default sink can be re-enabled manually if needed.", + "description": "Optional. If set to true, the _Default sink in newly created projects and folders will created in a disabled state. This can be used to automatically disable log storage if there is already an aggregated sink configured in the hierarchy. The _Default sink can be re-enabled manually if needed.", "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" + }, + "loggingServiceAccountId": { + "description": "Output only. The service account for the given resource container, such as project or folder. Log sinks use this service account as their writer_identity if no custom service account is provided in the request when calling the create sink method.", "readOnly": true, "type": "string" }, @@ -7575,7 +9737,7 @@ "type": "string" }, "storageLocation": { - "description": "Optional. The Cloud region that will be used for _Default and _Required log buckets for newly created projects and folders. For example europe-west1. This setting does not affect the location of 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" } }, @@ -7643,6 +9805,17 @@ }, "type": "object" }, + "SummaryField": { + "description": "A field from the LogEntry that is added to the summary line (https://cloud.google.com/logging/docs/view/logs-explorer-interface#add-summary-fields) for a query in the Logs Explorer.", + "id": "SummaryField", + "properties": { + "field": { + "description": "Optional. The field from the LogEntry to include in the summary line, for example resource.type or jsonPayload.name.", + "type": "string" + } + }, + "type": "object" + }, "SuppressionInfo": { "description": "Information about entries that were omitted from the session.", "id": "SuppressionInfo", @@ -7719,6 +9892,26 @@ "properties": {}, "type": "object" }, + "UpdateBucketRequest": { + "description": "The parameters to UpdateBucket.", + "id": "UpdateBucketRequest", + "properties": { + "bucket": { + "$ref": "LogBucket", + "description": "Required. The updated bucket." + }, + "name": { + "description": "Required. The full resource name of the bucket to update. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]\" For example:\"projects/my-project/locations/global/buckets/my-bucket\"", + "type": "string" + }, + "updateMask": { + "description": "Required. Field mask that specifies the fields in bucket that need an update. A bucket field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.For a detailed FieldMask definition, see: https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMaskFor example: updateMask=retention_days", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, "WriteLogEntriesRequest": { "description": "The parameters to WriteLogEntries.", "id": "WriteLogEntriesRequest", diff --git a/etc/api/managedidentities/v1/managedidentities-api.json b/etc/api/managedidentities/v1/managedidentities-api.json index 1ee94110e2..a2de5e5ec8 100644 --- a/etc/api/managedidentities/v1/managedidentities-api.json +++ b/etc/api/managedidentities/v1/managedidentities-api.json @@ -209,6 +209,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "checkMigrationPermission": { + "description": "CheckMigrationPermission API gets the current state of DomainMigration", + "flatPath": "v1/projects/{projectsId}/locations/global/domains/{domainsId}:checkMigrationPermission", + "httpMethod": "POST", + "id": "managedidentities.projects.locations.global.domains.checkMigrationPermission", + "parameterOrder": [ + "domain" + ], + "parameters": { + "domain": { + "description": "Required. The domain resource name using the form: `projects/{project_id}/locations/global/domains/{domain_name}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+domain}:checkMigrationPermission", + "request": { + "$ref": "CheckMigrationPermissionRequest" + }, + "response": { + "$ref": "CheckMigrationPermissionResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a Microsoft AD domain.", "flatPath": "v1/projects/{projectsId}/locations/global/domains", @@ -295,6 +323,90 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "disableMigration": { + "description": "Disable Domain Migration", + "flatPath": "v1/projects/{projectsId}/locations/global/domains/{domainsId}:disableMigration", + "httpMethod": "POST", + "id": "managedidentities.projects.locations.global.domains.disableMigration", + "parameterOrder": [ + "domain" + ], + "parameters": { + "domain": { + "description": "Required. The domain resource name using the form: `projects/{project_id}/locations/global/domains/{domain_name}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+domain}:disableMigration", + "request": { + "$ref": "DisableMigrationRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "domainJoinMachine": { + "description": "DomainJoinMachine API joins a Compute Engine VM to the domain", + "flatPath": "v1/projects/{projectsId}/locations/global/domains/{domainsId}:domainJoinMachine", + "httpMethod": "POST", + "id": "managedidentities.projects.locations.global.domains.domainJoinMachine", + "parameterOrder": [ + "domain" + ], + "parameters": { + "domain": { + "description": "Required. The domain resource name using the form: projects/{project_id}/locations/global/domains/{domain_name}", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+domain}:domainJoinMachine", + "request": { + "$ref": "DomainJoinMachineRequest" + }, + "response": { + "$ref": "DomainJoinMachineResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "enableMigration": { + "description": "Enable Domain Migration", + "flatPath": "v1/projects/{projectsId}/locations/global/domains/{domainsId}:enableMigration", + "httpMethod": "POST", + "id": "managedidentities.projects.locations.global.domains.enableMigration", + "parameterOrder": [ + "domain" + ], + "parameters": { + "domain": { + "description": "Required. The domain resource name using the form: `projects/{project_id}/locations/global/domains/{domain_name}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+domain}:enableMigration", + "request": { + "$ref": "EnableMigrationRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "extendSchema": { "description": "Extend Schema for Domain", "flatPath": "v1/projects/{projectsId}/locations/global/domains/{domainsId}:extendSchema", @@ -1100,7 +1212,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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/global/operations", "httpMethod": "GET", "id": "managedidentities.projects.locations.global.operations.list", @@ -1403,7 +1515,7 @@ } } }, - "revision": "20221227", + "revision": "20240112", "rootUrl": "https://managedidentities.googleapis.com/", "schemas": { "AttachTrustRequest": { @@ -1496,7 +1608,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, @@ -1546,6 +1658,42 @@ }, "type": "object" }, + "CheckMigrationPermissionRequest": { + "description": "CheckMigrationPermissionRequest is the request message for CheckMigrationPermission method.", + "id": "CheckMigrationPermissionRequest", + "properties": {}, + "type": "object" + }, + "CheckMigrationPermissionResponse": { + "description": "CheckMigrationPermissionResponse is the response message for CheckMigrationPermission method.", + "id": "CheckMigrationPermissionResponse", + "properties": { + "onpremDomains": { + "description": "The state of SID filtering of all the domains which has trust established.", + "items": { + "$ref": "OnPremDomainSIDDetails" + }, + "type": "array" + }, + "state": { + "description": "The state of DomainMigration.", + "enum": [ + "STATE_UNSPECIFIED", + "DISABLED", + "ENABLED", + "NEEDS_MAINTENANCE" + ], + "enumDescriptions": [ + "DomainMigration is in unspecified state.", + "Domain Migration is Disabled.", + "Domain Migration is Enabled.", + "Domain Migration is not in valid state." + ], + "type": "string" + } + }, + "type": "object" + }, "DailyCycle": { "description": "Time window specified for daily operations.", "id": "DailyCycle", @@ -1614,6 +1762,12 @@ }, "type": "object" }, + "DisableMigrationRequest": { + "description": "DisableMigrationRequest is the request message for DisableMigration method.", + "id": "DisableMigrationRequest", + "properties": {}, + "type": "object" + }, "Domain": { "description": "Represents a managed Microsoft Active Directory domain. If the domain is being changed, it will be placed into the UPDATING state, which indicates that the resource is being reconciled. At this point, Get will reflect an intermediate state.", "id": "Domain", @@ -1713,12 +1867,56 @@ }, "type": "object" }, + "DomainJoinMachineRequest": { + "description": "DomainJoinMachineRequest is the request message for DomainJoinMachine method", + "id": "DomainJoinMachineRequest", + "properties": { + "force": { + "description": "Optional. force if True, forces domain join even if the computer account already exists.", + "type": "boolean" + }, + "ouName": { + "description": "Optional. OU name where the VM needs to be domain joined", + "type": "string" + }, + "vmIdToken": { + "description": "Required. Full instance id token of compute engine VM to verify instance identity. More about this: https://cloud.google.com/compute/docs/instances/verifying-instance-identity#request_signature", + "type": "string" + } + }, + "type": "object" + }, + "DomainJoinMachineResponse": { + "description": "DomainJoinMachineResponse is the response message for DomainJoinMachine method", + "id": "DomainJoinMachineResponse", + "properties": { + "domainJoinBlob": { + "description": "Offline domain join blob as the response", + "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" }, + "EnableMigrationRequest": { + "description": "EnableMigrationRequest is the request message for EnableMigration method.", + "id": "EnableMigrationRequest", + "properties": { + "migratingDomains": { + "description": "Required. List of the on-prem domains to be migrated.", + "items": { + "$ref": "OnPremDomainDetails" + }, + "type": "array" + } + }, + "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", @@ -1880,10 +2078,11 @@ "type": "object" }, "GoogleCloudSaasacceleratorManagementProvidersV1Instance": { + "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": "GoogleCloudSaasacceleratorManagementProvidersV1Instance", "properties": { "consumerDefinedName": { - "description": "consumer_defined_name is the name that is set by the consumer. On the other hand Name field represents system-assigned id of an instance so consumers are not necessarily aware of it. consumer_defined_name is used for notification/UI purposes for consumer to recognize their instances.", + "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": { @@ -1907,7 +2106,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Deprecated. 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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug.", + "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": { @@ -2006,6 +2205,7 @@ "id": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule", "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" }, @@ -2047,7 +2247,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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug. 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" } }, @@ -2337,7 +2537,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -2435,6 +2635,46 @@ }, "type": "object" }, + "OnPremDomainDetails": { + "description": "OnPremDomainDetails is the message which contains details of on-prem domain which is trusted and needs to be migrated.", + "id": "OnPremDomainDetails", + "properties": { + "disableSidFiltering": { + "description": "Optional. Option to disable SID filtering.", + "type": "boolean" + }, + "domainName": { + "description": "Required. FQDN of the on-prem domain being migrated.", + "type": "string" + } + }, + "type": "object" + }, + "OnPremDomainSIDDetails": { + "description": "OnPremDomainDetails is the message which contains details of on-prem domain which is trusted and needs to be migrated.", + "id": "OnPremDomainSIDDetails", + "properties": { + "name": { + "description": "FQDN of the on-prem domain being migrated.", + "type": "string" + }, + "sidFilteringState": { + "description": "Current SID filtering state.", + "enum": [ + "SID_FILTERING_STATE_UNSPECIFIED", + "ENABLED", + "DISABLED" + ], + "enumDescriptions": [ + "SID Filtering is in unspecified state.", + "SID Filtering is Enabled.", + "SID Filtering is Disabled." + ], + "type": "string" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -2464,7 +2704,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" } }, @@ -2578,7 +2818,7 @@ "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/).", + "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": { "bindings": { @@ -2949,7 +3189,7 @@ "type": "string" }, "denyMaintenancePeriods": { - "description": "Deny Maintenance Period that is applied to resource to indicate when maintenance is forbidden. User can specify zero or more non-overlapping deny periods. Maximum number of deny_maintenance_periods expected is one.", + "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" }, diff --git a/etc/api/managedidentities/v1alpha1/managedidentities-api.json b/etc/api/managedidentities/v1alpha1/managedidentities-api.json index a6f0d5c824..3c045f7ee2 100644 --- a/etc/api/managedidentities/v1alpha1/managedidentities-api.json +++ b/etc/api/managedidentities/v1alpha1/managedidentities-api.json @@ -1212,7 +1212,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1alpha1/projects/{projectsId}/locations/global/operations", "httpMethod": "GET", "id": "managedidentities.projects.locations.global.operations.list", @@ -1515,7 +1515,7 @@ } } }, - "revision": "20221227", + "revision": "20240112", "rootUrl": "https://managedidentities.googleapis.com/", "schemas": { "AttachTrustRequest": { @@ -1613,7 +1613,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, @@ -1869,6 +1869,10 @@ "description": "DomainJoinMachineRequest is the request message for DomainJoinMachine method", "id": "DomainJoinMachineRequest", "properties": { + "force": { + "description": "Optional. force if True, forces domain join even if the computer account already exists.", + "type": "boolean" + }, "ouName": { "description": "Optional. OU name where the VM needs to be domain joined", "type": "string" @@ -1901,6 +1905,11 @@ "description": "EnableMigrationRequest is the request message for EnableMigration method.", "id": "EnableMigrationRequest", "properties": { + "enableDuration": { + "description": "Optional. Period after which the migration would be auto disabled. If unspecified, a default timeout of 48h is used.", + "format": "google-duration", + "type": "string" + }, "migratingDomains": { "description": "Required. List of the on-prem domains to be migrated.", "items": { @@ -2072,10 +2081,11 @@ "type": "object" }, "GoogleCloudSaasacceleratorManagementProvidersV1Instance": { + "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": "GoogleCloudSaasacceleratorManagementProvidersV1Instance", "properties": { "consumerDefinedName": { - "description": "consumer_defined_name is the name that is set by the consumer. On the other hand Name field represents system-assigned id of an instance so consumers are not necessarily aware of it. consumer_defined_name is used for notification/UI purposes for consumer to recognize their instances.", + "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": { @@ -2099,7 +2109,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Deprecated. 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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug.", + "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": { @@ -2198,6 +2208,7 @@ "id": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule", "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" }, @@ -2239,7 +2250,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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug. 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" } }, @@ -2528,7 +2539,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -2695,7 +2706,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" } }, @@ -2809,7 +2820,7 @@ "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/).", + "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": { "bindings": { @@ -3165,7 +3176,7 @@ "type": "string" }, "denyMaintenancePeriods": { - "description": "Deny Maintenance Period that is applied to resource to indicate when maintenance is forbidden. User can specify zero or more non-overlapping deny periods. Maximum number of deny_maintenance_periods expected is one.", + "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" }, diff --git a/etc/api/managedidentities/v1beta1/managedidentities-api.json b/etc/api/managedidentities/v1beta1/managedidentities-api.json index 30e679932e..cf82c9bffc 100644 --- a/etc/api/managedidentities/v1beta1/managedidentities-api.json +++ b/etc/api/managedidentities/v1beta1/managedidentities-api.json @@ -1212,7 +1212,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/projects/{projectsId}/locations/global/operations", "httpMethod": "GET", "id": "managedidentities.projects.locations.global.operations.list", @@ -1515,7 +1515,7 @@ } } }, - "revision": "20221227", + "revision": "20240112", "rootUrl": "https://managedidentities.googleapis.com/", "schemas": { "AttachTrustRequest": { @@ -1614,7 +1614,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, @@ -1878,6 +1878,10 @@ "description": "DomainJoinMachineRequest is the request message for DomainJoinMachine method", "id": "DomainJoinMachineRequest", "properties": { + "force": { + "description": "Optional. force if True, forces domain join even if the computer account already exists.", + "type": "boolean" + }, "ouName": { "description": "Optional. OU name to which the VM needs to be domain joined. If the field is not provided, the VM is joined to the default OU which is created. The default OU for the domain join api is created as GCE Instances under the Cloud OU. Example - OU=GCE Instances,OU=Cloud,DC=ad,DC=test,DC=com If the field is provided, then the custom OU is searched for under GCE Instances OU. Example - if ou_name=test_ou then the VM is domain joined to the following OU: OU=test_ou,OU=GCE Instances,OU=Cloud,DC=ad,DC=test,DC=com if present. If OU is not present under GCE Instances, then error is returned.", "type": "string" @@ -1910,6 +1914,11 @@ "description": "EnableMigrationRequest is the request message for EnableMigration method.", "id": "EnableMigrationRequest", "properties": { + "enableDuration": { + "description": "Optional. Period after which the migration would be auto disabled. If unspecified, a default timeout of 48h is used.", + "format": "google-duration", + "type": "string" + }, "migratingDomains": { "description": "Required. List of the on-prem domains to be migrated.", "items": { @@ -2081,10 +2090,11 @@ "type": "object" }, "GoogleCloudSaasacceleratorManagementProvidersV1Instance": { + "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": "GoogleCloudSaasacceleratorManagementProvidersV1Instance", "properties": { "consumerDefinedName": { - "description": "consumer_defined_name is the name that is set by the consumer. On the other hand Name field represents system-assigned id of an instance so consumers are not necessarily aware of it. consumer_defined_name is used for notification/UI purposes for consumer to recognize their instances.", + "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": { @@ -2108,7 +2118,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Deprecated. 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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug.", + "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": { @@ -2207,6 +2217,7 @@ "id": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule", "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" }, @@ -2248,7 +2259,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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug. 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" } }, @@ -2538,7 +2549,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -2705,7 +2716,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" } }, @@ -2819,7 +2830,7 @@ "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/).", + "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": { "bindings": { @@ -3190,7 +3201,7 @@ "type": "string" }, "denyMaintenancePeriods": { - "description": "Deny Maintenance Period that is applied to resource to indicate when maintenance is forbidden. User can specify zero or more non-overlapping deny periods. Maximum number of deny_maintenance_periods expected is one.", + "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" }, diff --git a/etc/api/manufacturers/v1/manufacturers-api.json b/etc/api/manufacturers/v1/manufacturers-api.json index 65cfb8ed87..72391e1a22 100644 --- a/etc/api/manufacturers/v1/manufacturers-api.json +++ b/etc/api/manufacturers/v1/manufacturers-api.json @@ -107,6 +107,134 @@ "resources": { "accounts": { "resources": { + "languages": { + "resources": { + "productCertifications": { + "methods": { + "delete": { + "description": "Deletes a product certification by its name. This method can only be called by certification bodies.", + "flatPath": "v1/accounts/{accountsId}/languages/{languagesId}/productCertifications/{productCertificationsId}", + "httpMethod": "DELETE", + "id": "manufacturers.accounts.languages.productCertifications.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the product certification to delete. Format: accounts/{account}/languages/{language_code}/productCertifications/{id}", + "location": "path", + "pattern": "^accounts/[^/]+/languages/[^/]+/productCertifications/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/manufacturercenter" + ] + }, + "get": { + "description": "Gets a product certification by its name. This method can only be called by certification bodies.", + "flatPath": "v1/accounts/{accountsId}/languages/{languagesId}/productCertifications/{productCertificationsId}", + "httpMethod": "GET", + "id": "manufacturers.accounts.languages.productCertifications.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the product certification to get. Format: accounts/{account}/languages/{language_code}/productCertifications/{id}", + "location": "path", + "pattern": "^accounts/[^/]+/languages/[^/]+/productCertifications/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ProductCertification" + }, + "scopes": [ + "https://www.googleapis.com/auth/manufacturercenter" + ] + }, + "list": { + "description": "Lists product certifications from a specified certification body. This method can only be called by certification bodies.", + "flatPath": "v1/accounts/{accountsId}/languages/{languagesId}/productCertifications", + "httpMethod": "GET", + "id": "manufacturers.accounts.languages.productCertifications.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of product certifications to return. The service may return fewer than this value. If unspecified, at most 50 product certifications 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 `ListProductCertifications` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListProductCertifications` must match the call that provided the page token. Required if requesting the second or higher page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent, which owns this collection of product certifications. Format: accounts/{account}/languages/{language_code}", + "location": "path", + "pattern": "^accounts/[^/]+/languages/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/productCertifications", + "response": { + "$ref": "ListProductCertificationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/manufacturercenter" + ] + }, + "patch": { + "description": "Updates (or creates if allow_missing = true) a product certification which links certifications with products. This method can only be called by certification bodies.", + "flatPath": "v1/accounts/{accountsId}/languages/{languagesId}/productCertifications/{productCertificationsId}", + "httpMethod": "PATCH", + "id": "manufacturers.accounts.languages.productCertifications.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The unique name identifier of a product certification Format: accounts/{account}/languages/{language_code}/productCertifications/{id} Where `id` is a some unique identifier and `language_code` is a 2-letter ISO 639-1 code of a Shopping supported language according to https://support.google.com/merchants/answer/160637.", + "location": "path", + "pattern": "^accounts/[^/]+/languages/[^/]+/productCertifications/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. The list of fields to update according to aip.dev/134. However, only full update is supported as of right now. Therefore, it can be either ignored or set to \"*\". Setting any other values will returns UNIMPLEMENTED error.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "ProductCertification" + }, + "response": { + "$ref": "ProductCertification" + }, + "scopes": [ + "https://www.googleapis.com/auth/manufacturercenter" + ] + } + } + } + } + }, "products": { "methods": { "delete": { @@ -288,7 +416,7 @@ } } }, - "revision": "20230123", + "revision": "20240205", "rootUrl": "https://manufacturers.googleapis.com/", "schemas": { "Attributes": { @@ -314,6 +442,13 @@ "$ref": "Capacity", "description": "The capacity of the product. For more information, see https://support.google.com/manufacturers/answer/6124116#capacity." }, + "certification": { + "description": "Optional. List of certifications claimed by this product.", + "items": { + "$ref": "GoogleShoppingManufacturersV1ProductCertification" + }, + "type": "array" + }, "color": { "description": "The color of the product. For more information, see https://support.google.com/manufacturers/answer/6124116#color.", "type": "string" @@ -483,6 +618,10 @@ "type": "string" }, "type": "array" + }, + "virtualModelLink": { + "description": "Virtual Model (3d) asset link.", + "type": "string" } }, "type": "object" @@ -503,6 +642,41 @@ }, "type": "object" }, + "Certification": { + "description": "Description of a certification.", + "id": "Certification", + "properties": { + "authority": { + "description": "Required. Name of the certification body.", + "type": "string" + }, + "code": { + "description": "Required. A unique code to identify the certification.", + "type": "string" + }, + "link": { + "description": "Optional. A URL link to the certification.", + "type": "string" + }, + "logo": { + "description": "Optional. A URL link to the certification logo.", + "type": "string" + }, + "name": { + "description": "Required. Name of the certification.", + "type": "string" + }, + "validUntil": { + "description": "Optional. The expiration date (UTC).", + "type": "string" + }, + "value": { + "description": "Optional. A custom value of the certification.", + "type": "string" + } + }, + "type": "object" + }, "Count": { "description": "The number of products in a single package. For more information, see https://support.google.com/manufacturers/answer/6124116#count.", "id": "Count", @@ -587,6 +761,25 @@ }, "type": "object" }, + "GoogleShoppingManufacturersV1ProductCertification": { + "description": "Description of a certification.", + "id": "GoogleShoppingManufacturersV1ProductCertification", + "properties": { + "authority": { + "description": "Required. Name of the certification body.", + "type": "string" + }, + "code": { + "description": "Required. A unique code to identify the certification.", + "type": "string" + }, + "name": { + "description": "Required. Name of the certification.", + "type": "string" + } + }, + "type": "object" + }, "Grocery": { "id": "Grocery", "properties": { @@ -757,6 +950,24 @@ }, "type": "object" }, + "ListProductCertificationsResponse": { + "description": "Response for ListProductCertifications method.", + "id": "ListProductCertificationsResponse", + "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" + }, + "productCertifications": { + "description": "The product certifications from the specified certification body.", + "items": { + "$ref": "ProductCertification" + }, + "type": "array" + } + }, + "type": "object" + }, "ListProductsResponse": { "id": "ListProductsResponse", "properties": { @@ -1031,6 +1242,76 @@ }, "type": "object" }, + "ProductCertification": { + "description": "Product certification data.", + "id": "ProductCertification", + "properties": { + "brand": { + "description": "Required. This is the product's brand name. The brand is used to help identify your product.", + "type": "string" + }, + "certification": { + "description": "Required. A list of certifications to link to the described product.", + "items": { + "$ref": "Certification" + }, + "type": "array" + }, + "countryCode": { + "description": "Optional. A 2-letter country code (ISO 3166-1 Alpha 2).", + "items": { + "type": "string" + }, + "type": "array" + }, + "destinationStatuses": { + "description": "Output only. The statuses of the destinations.", + "items": { + "$ref": "DestinationStatus" + }, + "readOnly": true, + "type": "array" + }, + "issues": { + "description": "Output only. A server-generated list of issues associated with the product.", + "items": { + "$ref": "Issue" + }, + "readOnly": true, + "type": "array" + }, + "mpn": { + "description": "Optional. These are the Manufacturer Part Numbers (MPN). MPNs are used to uniquely identify a specific product among all products from the same manufacturer", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Required. The unique name identifier of a product certification Format: accounts/{account}/languages/{language_code}/productCertifications/{id} Where `id` is a some unique identifier and `language_code` is a 2-letter ISO 639-1 code of a Shopping supported language according to https://support.google.com/merchants/answer/160637.", + "type": "string" + }, + "productCode": { + "description": "Optional. Another name for GTIN.", + "items": { + "type": "string" + }, + "type": "array" + }, + "productType": { + "description": "Optional. These are your own product categorization system in your product data.", + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "description": "Required. This is to clearly identify the product you are certifying.", + "type": "string" + } + }, + "type": "object" + }, "ProductDetail": { "description": "A product detail of the product. For more information, see https://support.google.com/manufacturers/answer/6124116#productdetail.", "id": "ProductDetail", diff --git a/etc/api/memcache/v1/memcache-api.json b/etc/api/memcache/v1/memcache-api.json index 1bbb4b5a55..f7dc2dfb01 100644 --- a/etc/api/memcache/v1/memcache-api.json +++ b/etc/api/memcache/v1/memcache-api.json @@ -425,6 +425,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "upgrade": { + "description": "Upgrades the Memcache instance to a newer memcached engine version specified in the request.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:upgrade", + "httpMethod": "POST", + "id": "memcache.projects.locations.instances.upgrade", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Memcache instance resource name using the form: `projects/{project}/locations/{location}/instances/{instance}` where `location_id` refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:upgrade", + "request": { + "$ref": "GoogleCloudMemcacheV1UpgradeInstanceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -509,7 +537,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "memcache.projects.locations.operations.list", @@ -556,7 +584,7 @@ } } }, - "revision": "20230103", + "revision": "20240222", "rootUrl": "https://memcache.googleapis.com/", "schemas": { "ApplyParametersRequest": { @@ -735,16 +763,38 @@ }, "type": "object" }, + "GoogleCloudMemcacheV1UpgradeInstanceRequest": { + "description": "Request for UpgradeInstance.", + "id": "GoogleCloudMemcacheV1UpgradeInstanceRequest", + "properties": { + "memcacheVersion": { + "description": "Required. Specifies the target version of memcached engine to upgrade to.", + "enum": [ + "MEMCACHE_VERSION_UNSPECIFIED", + "MEMCACHE_1_5", + "MEMCACHE_1_6_15" + ], + "enumDescriptions": [ + "Memcache version is not specified by customer", + "Memcached 1.5 version.", + "Memcached 1.6.15 version." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudMemcacheV1ZoneMetadata": { "id": "GoogleCloudMemcacheV1ZoneMetadata", "properties": {}, "type": "object" }, "GoogleCloudSaasacceleratorManagementProvidersV1Instance": { + "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": "GoogleCloudSaasacceleratorManagementProvidersV1Instance", "properties": { "consumerDefinedName": { - "description": "consumer_defined_name is the name that is set by the consumer. On the other hand Name field represents system-assigned id of an instance so consumers are not necessarily aware of it. consumer_defined_name is used for notification/UI purposes for consumer to recognize their instances.", + "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": { @@ -768,7 +818,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Deprecated. 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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug.", + "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": { @@ -867,6 +917,7 @@ "id": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule", "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" }, @@ -908,7 +959,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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug. 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" } }, @@ -1076,11 +1127,13 @@ "description": "The major version of Memcached software. If not provided, latest supported version will be used. Currently the latest supported major version is `MEMCACHE_1_5`. The minor version will be automatically determined by our system based on the latest supported minor version.", "enum": [ "MEMCACHE_VERSION_UNSPECIFIED", - "MEMCACHE_1_5" + "MEMCACHE_1_5", + "MEMCACHE_1_6_15" ], "enumDescriptions": [ - "", - "Memcached 1.5 version." + "Memcache version is not specified by customer", + "Memcached 1.5 version.", + "Memcached 1.6.15 version." ], "type": "string" }, @@ -1101,6 +1154,13 @@ "$ref": "MemcacheParameters", "description": "User defined parameters to apply to the memcached process on each node." }, + "reservedIpRangeId": { + "description": "Optional. Contains the id of allocated IP address ranges associated with the private service access connection for example, \"test-default\" associated with IP range 10.0.0.0/29.", + "items": { + "type": "string" + }, + "type": "array" + }, "state": { "description": "Output only. The state of this Memcached instance.", "enum": [ @@ -1109,7 +1169,8 @@ "READY", "UPDATING", "DELETING", - "PERFORMING_MAINTENANCE" + "PERFORMING_MAINTENANCE", + "MEMCACHE_VERSION_UPGRADING" ], "enumDescriptions": [ "State not set.", @@ -1117,7 +1178,8 @@ "Memcached instance has been created and ready to be used.", "Memcached instance is updating configuration such as maintenance policy and schedule.", "Memcached instance is being deleted.", - "Memcached instance is going through maintenance, e.g. data plane rollout." + "Memcached instance is going through maintenance, e.g. data plane rollout.", + "Memcached instance is undergoing memcached engine version upgrade." ], "readOnly": true, "type": "string" @@ -1222,7 +1284,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1386,6 +1448,26 @@ "readOnly": true, "type": "string" }, + "memcacheFullVersion": { + "description": "Output only. The full version of memcached server running on this node. e.g. - memcached-1.5.16", + "readOnly": true, + "type": "string" + }, + "memcacheVersion": { + "description": "Output only. Major version of memcached server running on this node, e.g. MEMCACHE_1_5", + "enum": [ + "MEMCACHE_VERSION_UNSPECIFIED", + "MEMCACHE_1_5", + "MEMCACHE_1_6_15" + ], + "enumDescriptions": [ + "Memcache version is not specified by customer", + "Memcached 1.5 version.", + "Memcached 1.6.15 version." + ], + "readOnly": true, + "type": "string" + }, "nodeId": { "description": "Output only. Identifier of the Memcached node. The node id does not include project or location like the Memcached instance name.", "readOnly": true, @@ -1474,7 +1556,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" } }, @@ -1687,7 +1769,7 @@ "type": "string" }, "denyMaintenancePeriods": { - "description": "Deny Maintenance Period that is applied to resource to indicate when maintenance is forbidden. User can specify zero or more non-overlapping deny periods. Maximum number of deny_maintenance_periods expected is one.", + "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" }, diff --git a/etc/api/memcache/v1beta2/memcache-api.json b/etc/api/memcache/v1beta2/memcache-api.json index ced8306f4b..89464027e7 100644 --- a/etc/api/memcache/v1beta2/memcache-api.json +++ b/etc/api/memcache/v1beta2/memcache-api.json @@ -453,6 +453,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "upgrade": { + "description": "Upgrades the Memcache instance to a newer memcached engine version specified in the request.", + "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:upgrade", + "httpMethod": "POST", + "id": "memcache.projects.locations.instances.upgrade", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Memcache instance resource name using the form: `projects/{project}/locations/{location}/instances/{instance}` where `location_id` refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta2/{+name}:upgrade", + "request": { + "$ref": "GoogleCloudMemcacheV1beta2UpgradeInstanceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -537,7 +565,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "memcache.projects.locations.operations.list", @@ -584,7 +612,7 @@ } } }, - "revision": "20230103", + "revision": "20240222", "rootUrl": "https://memcache.googleapis.com/", "schemas": { "ApplyParametersRequest": { @@ -781,16 +809,38 @@ }, "type": "object" }, + "GoogleCloudMemcacheV1beta2UpgradeInstanceRequest": { + "description": "Request for UpgradeInstance.", + "id": "GoogleCloudMemcacheV1beta2UpgradeInstanceRequest", + "properties": { + "memcacheVersion": { + "description": "Required. Specifies the target version of memcached engine to upgrade to.", + "enum": [ + "MEMCACHE_VERSION_UNSPECIFIED", + "MEMCACHE_1_5", + "MEMCACHE_1_6_15" + ], + "enumDescriptions": [ + "Memcache version is not specified by customer", + "Memcached 1.5 version.", + "Memcached 1.6.15 version." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudMemcacheV1beta2ZoneMetadata": { "id": "GoogleCloudMemcacheV1beta2ZoneMetadata", "properties": {}, "type": "object" }, "GoogleCloudSaasacceleratorManagementProvidersV1Instance": { + "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": "GoogleCloudSaasacceleratorManagementProvidersV1Instance", "properties": { "consumerDefinedName": { - "description": "consumer_defined_name is the name that is set by the consumer. On the other hand Name field represents system-assigned id of an instance so consumers are not necessarily aware of it. consumer_defined_name is used for notification/UI purposes for consumer to recognize their instances.", + "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": { @@ -814,7 +864,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Deprecated. 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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug.", + "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": { @@ -913,6 +963,7 @@ "id": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule", "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" }, @@ -954,7 +1005,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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug. 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" } }, @@ -1122,11 +1173,13 @@ "description": "The major version of Memcached software. If not provided, latest supported version will be used. Currently the latest supported major version is `MEMCACHE_1_5`. The minor version will be automatically determined by our system based on the latest supported minor version.", "enum": [ "MEMCACHE_VERSION_UNSPECIFIED", - "MEMCACHE_1_5" + "MEMCACHE_1_5", + "MEMCACHE_1_6_15" ], "enumDescriptions": [ - "", - "Memcached 1.5 version." + "Memcache version is not specified by customer", + "Memcached 1.5 version.", + "Memcached 1.6.15 version." ], "type": "string" }, @@ -1147,6 +1200,13 @@ "$ref": "MemcacheParameters", "description": "User defined parameters to apply to the memcached process on each node." }, + "reservedIpRangeId": { + "description": "Optional. Contains the id of allocated IP address ranges associated with the private service access connection for example, \"test-default\" associated with IP range 10.0.0.0/29.", + "items": { + "type": "string" + }, + "type": "array" + }, "state": { "description": "Output only. The state of this Memcached instance.", "enum": [ @@ -1155,7 +1215,8 @@ "READY", "UPDATING", "DELETING", - "PERFORMING_MAINTENANCE" + "PERFORMING_MAINTENANCE", + "MEMCACHE_VERSION_UPGRADING" ], "enumDescriptions": [ "State not set.", @@ -1163,7 +1224,8 @@ "Memcached instance has been created and ready to be used.", "Memcached instance is updating configuration such as maintenance policy and schedule.", "Memcached instance is being deleted.", - "Memcached instance is going through maintenance, e.g. data plane rollout." + "Memcached instance is going through maintenance, e.g. data plane rollout.", + "Memcached instance is undergoing memcached engine version upgrade." ], "readOnly": true, "type": "string" @@ -1273,7 +1335,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1437,6 +1499,26 @@ "readOnly": true, "type": "string" }, + "memcacheFullVersion": { + "description": "Output only. The full version of memcached server running on this node. e.g. - memcached-1.5.16", + "readOnly": true, + "type": "string" + }, + "memcacheVersion": { + "description": "Output only. Major version of memcached server running on this node, e.g. MEMCACHE_1_5", + "enum": [ + "MEMCACHE_VERSION_UNSPECIFIED", + "MEMCACHE_1_5", + "MEMCACHE_1_6_15" + ], + "enumDescriptions": [ + "Memcache version is not specified by customer", + "Memcached 1.5 version.", + "Memcached 1.6.15 version." + ], + "readOnly": true, + "type": "string" + }, "nodeId": { "description": "Output only. Identifier of the Memcached node. The node id does not include project or location like the Memcached instance name.", "readOnly": true, @@ -1530,7 +1612,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" } }, @@ -1743,7 +1825,7 @@ "type": "string" }, "denyMaintenancePeriods": { - "description": "Deny Maintenance Period that is applied to resource to indicate when maintenance is forbidden. User can specify zero or more non-overlapping deny periods. Maximum number of deny_maintenance_periods expected is one.", + "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" }, diff --git a/etc/api/metastore/v1alpha/metastore-api.json b/etc/api/metastore/v1alpha/metastore-api.json index db58aace63..cc32b6408d 100644 --- a/etc/api/metastore/v1alpha/metastore-api.json +++ b/etc/api/metastore/v1alpha/metastore-api.json @@ -448,6 +448,34 @@ }, "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": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", + "httpMethod": "POST", + "id": "metastore.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": "v1alpha/{+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": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", @@ -499,7 +527,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as \"/v1/{name=users/*}/operations\" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.", "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "metastore.projects.locations.operations.list", @@ -571,6 +599,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "alterTableProperties": { + "description": "Alter metadata table properties.", + "flatPath": "v1alpha/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": "v1alpha/{+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": "v1alpha/projects/{projectsId}/locations/{locationsId}/services", @@ -1543,6 +1599,40 @@ ] } } + }, + "migrationExecutions": { + "methods": { + "delete": { + "description": "Deletes a single migration execution.", + "flatPath": "v1alpha/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": "v1alpha/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } } @@ -1551,7 +1641,7 @@ } } }, - "revision": "20230111", + "revision": "20240228", "rootUrl": "https://metastore.googleapis.com/", "schemas": { "AlterMetadataResourceLocationRequest": { @@ -1575,6 +1665,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", @@ -1654,11 +1767,13 @@ "description": "The type of the backend metastore.", "enum": [ "METASTORE_TYPE_UNSPECIFIED", + "DATAPLEX", "BIGQUERY", "DATAPROC_METASTORE" ], "enumDescriptions": [ "The metastore type is not set.", + "The backend metastore is Dataplex.", "The backend metastore is BigQuery.", "The backend metastore is Dataproc Metastore." ], @@ -1741,23 +1856,34 @@ "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. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com.", + "description": "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" }, + "CancelOperationRequest": { + "description": "The request message for Operations.CancelOperation.", + "id": "CancelOperationRequest", + "properties": {}, + "type": "object" + }, "Consumer": { "description": "Contains information of the customer's network configurations.", "id": "Consumer", "properties": { + "endpointLocation": { + "description": "Output only. The location of the endpoint URI. Format: projects/{project}/locations/{location}.", + "readOnly": true, + "type": "string" + }, "endpointUri": { "description": "Output only. The URI of the endpoint used to access the metastore service.", "readOnly": true, @@ -1775,7 +1901,7 @@ "id": "DataCatalogConfig", "properties": { "enabled": { - "description": "Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.", + "description": "Optional. Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.", "type": "boolean" } }, @@ -1786,6 +1912,7 @@ "id": "DatabaseDump", "properties": { "databaseType": { + "deprecated": true, "description": "The type of the database.", "enum": [ "DATABASE_TYPE_UNSPECIFIED", @@ -1802,6 +1929,7 @@ "type": "string" }, "sourceDatabase": { + "deprecated": true, "description": "The name of the source database.", "type": "string" }, @@ -1853,6 +1981,20 @@ }, "type": "object" }, + "ErrorDetails": { + "description": "Error details in public error message for DataprocMetastore.QueryMetadata.", + "id": "ErrorDetails", + "properties": { + "details": { + "additionalProperties": { + "type": "string" + }, + "description": "Additional structured details about this error.Keys define the failure items. Value describes the exception or details of the item.", + "type": "object" + } + }, + "type": "object" + }, "ExportMetadataRequest": { "description": "Request message for DataprocMetastore.ExportMetadata.", "id": "ExportMetadataRequest", @@ -2070,6 +2212,47 @@ }, "type": "object" }, + "LatestBackup": { + "description": "The details of the latest scheduled backup.", + "id": "LatestBackup", + "properties": { + "backupId": { + "description": "Output only. The ID of an in-progress scheduled backup. Empty if no backup is in progress.", + "readOnly": true, + "type": "string" + }, + "duration": { + "description": "Output only. The duration of the backup completion.", + "format": "google-duration", + "readOnly": true, + "type": "string" + }, + "startTime": { + "description": "Output only. The time when the backup was started.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The current state of the backup.", + "enum": [ + "STATE_UNSPECIFIED", + "IN_PROGRESS", + "SUCCEEDED", + "FAILED" + ], + "enumDescriptions": [ + "The state of the backup is unknown.", + "The backup is in progress.", + "The backup completed.", + "The backup failed." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "ListBackupsResponse": { "description": "Response message for DataprocMetastore.ListBackups.", "id": "ListBackupsResponse", @@ -2207,7 +2390,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -2244,6 +2427,10 @@ "description": "Metadata about the service in a location.", "id": "LocationMetadata", "properties": { + "multiRegionMetadata": { + "$ref": "MultiRegionMetadata", + "description": "The multi-region metadata if the current region is a multi-region." + }, "supportedHiveMetastoreVersions": { "description": "The versions of Hive Metastore that can be used when creating a new metastore service in this location. The server guarantees that exactly one HiveMetastoreVersion in the list will set is_default.", "items": { @@ -2410,7 +2597,7 @@ "properties": { "dataCatalogConfig": { "$ref": "DataCatalogConfig", - "description": "The integration config for the Data Catalog service." + "description": "Optional. The integration config for the Data Catalog service." }, "dataplexConfig": { "$ref": "DataplexConfig", @@ -2467,6 +2654,20 @@ "properties": {}, "type": "object" }, + "MultiRegionMetadata": { + "description": "The metadata for the multi-region that includes the constituent regions. The metadata is only populated if the region is multi-region. For single region, it will be empty.", + "id": "MultiRegionMetadata", + "properties": { + "constituentRegions": { + "description": "The regions constituting the multi-region.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "NetworkConfig": { "description": "Network configuration for the Dataproc Metastore service.", "id": "NetworkConfig", @@ -2477,6 +2678,10 @@ "$ref": "Consumer" }, "type": "array" + }, + "customRoutesEnabled": { + "description": "Enables custom routes to be imported and exported for the Dataproc Metastore service's peered VPC network.", + "type": "boolean" } }, "type": "object" @@ -2510,7 +2715,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" } }, @@ -2644,6 +2849,10 @@ "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, @@ -2703,7 +2912,11 @@ "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" + }, + "backupLocation": { + "description": "Optional. A Cloud Storage URI specifying the location of the backup artifacts, namely - backup avro files under \"avro/\", backup_metastore.json and service.json, in the following form:gs://. Mutually exclusive with backup, and exactly one of the two must be set.", "type": "string" }, "requestId": { @@ -2727,6 +2940,72 @@ }, "type": "object" }, + "ScalingConfig": { + "description": "Represents the scaling configuration of a metastore service.", + "id": "ScalingConfig", + "properties": { + "instanceSize": { + "description": "An enum of readable instance sizes, with each instance size mapping to a float value (e.g. InstanceSize.EXTRA_SMALL = scaling_factor(0.1))", + "enum": [ + "INSTANCE_SIZE_UNSPECIFIED", + "EXTRA_SMALL", + "SMALL", + "MEDIUM", + "LARGE", + "EXTRA_LARGE" + ], + "enumDescriptions": [ + "Unspecified instance size", + "Extra small instance size, maps to a scaling factor of 0.1.", + "Small instance size, maps to a scaling factor of 0.5.", + "Medium instance size, maps to a scaling factor of 1.0.", + "Large instance size, maps to a scaling factor of 3.0.", + "Extra large instance size, maps to a scaling factor of 6.0." + ], + "type": "string" + }, + "scalingFactor": { + "description": "Scaling factor, increments of 0.1 for values less than 1.0, and increments of 1.0 for values greater than 1.0.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "ScheduledBackup": { + "description": "This specifies the configuration of scheduled backup.", + "id": "ScheduledBackup", + "properties": { + "backupLocation": { + "description": "Optional. A Cloud Storage URI of a folder, in the format gs:///. A sub-folder containing backup files will be stored below it.", + "type": "string" + }, + "cronSchedule": { + "description": "Optional. The scheduled interval in Cron format, see https://en.wikipedia.org/wiki/Cron The default is empty: scheduled backup is not enabled. Must be specified to enable scheduled backups.", + "type": "string" + }, + "enabled": { + "description": "Optional. Defines whether the scheduled backup is enabled. The default value is false.", + "type": "boolean" + }, + "latestBackup": { + "$ref": "LatestBackup", + "description": "Output only. The details of the latest scheduled backup.", + "readOnly": true + }, + "nextScheduledTime": { + "description": "Output only. The time when the next backups execution is scheduled to start.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "timeZone": { + "description": "Optional. Specifies the time zone to be used when interpreting cron_schedule. Must be a time zone name from the time zone database (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), e.g. America/Los_Angeles or Africa/Abidjan. If left unspecified, the default is UTC.", + "type": "string" + } + }, + "type": "object" + }, "Secret": { "description": "A securely stored value.", "id": "Secret", @@ -2793,7 +3072,7 @@ }, "metadataIntegration": { "$ref": "MetadataIntegration", - "description": "The setting that defines how metastore metadata should be integrated with external services and systems." + "description": "Optional. The setting that defines how metastore metadata should be integrated with external services and systems." }, "metadataManagementActivity": { "$ref": "MetadataManagementActivity", @@ -2831,6 +3110,14 @@ ], "type": "string" }, + "scalingConfig": { + "$ref": "ScalingConfig", + "description": "Scaling configuration of the metastore service." + }, + "scheduledBackup": { + "$ref": "ScheduledBackup", + "description": "Optional. The configuration of scheduled backup for the metastore service." + }, "state": { "description": "Output only. The current state of the metastore service.", "enum": [ diff --git a/etc/api/metastore/v1beta/metastore-api.json b/etc/api/metastore/v1beta/metastore-api.json index 5d911bddf8..953dee257e 100644 --- a/etc/api/metastore/v1beta/metastore-api.json +++ b/etc/api/metastore/v1beta/metastore-api.json @@ -448,6 +448,34 @@ }, "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": "v1beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", + "httpMethod": "POST", + "id": "metastore.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": "v1beta/{+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": "v1beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", @@ -499,7 +527,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as \"/v1/{name=users/*}/operations\" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.", "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "metastore.projects.locations.operations.list", @@ -571,6 +599,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "alterTableProperties": { + "description": "Alter metadata table properties.", + "flatPath": "v1beta/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": "v1beta/{+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": "v1beta/projects/{projectsId}/locations/{locationsId}/services", @@ -1543,6 +1599,40 @@ ] } } + }, + "migrationExecutions": { + "methods": { + "delete": { + "description": "Deletes a single migration execution.", + "flatPath": "v1beta/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": "v1beta/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } } @@ -1551,7 +1641,7 @@ } } }, - "revision": "20230111", + "revision": "20240228", "rootUrl": "https://metastore.googleapis.com/", "schemas": { "AlterMetadataResourceLocationRequest": { @@ -1575,6 +1665,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", @@ -1654,11 +1767,13 @@ "description": "The type of the backend metastore.", "enum": [ "METASTORE_TYPE_UNSPECIFIED", + "DATAPLEX", "BIGQUERY", "DATAPROC_METASTORE" ], "enumDescriptions": [ "The metastore type is not set.", + "The backend metastore is Dataplex.", "The backend metastore is BigQuery.", "The backend metastore is Dataproc Metastore." ], @@ -1741,23 +1856,34 @@ "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. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com.", + "description": "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" }, + "CancelOperationRequest": { + "description": "The request message for Operations.CancelOperation.", + "id": "CancelOperationRequest", + "properties": {}, + "type": "object" + }, "Consumer": { "description": "Contains information of the customer's network configurations.", "id": "Consumer", "properties": { + "endpointLocation": { + "description": "Output only. The location of the endpoint URI. Format: projects/{project}/locations/{location}.", + "readOnly": true, + "type": "string" + }, "endpointUri": { "description": "Output only. The URI of the endpoint used to access the metastore service.", "readOnly": true, @@ -1775,7 +1901,7 @@ "id": "DataCatalogConfig", "properties": { "enabled": { - "description": "Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.", + "description": "Optional. Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.", "type": "boolean" } }, @@ -1786,6 +1912,7 @@ "id": "DatabaseDump", "properties": { "databaseType": { + "deprecated": true, "description": "The type of the database.", "enum": [ "DATABASE_TYPE_UNSPECIFIED", @@ -1802,6 +1929,7 @@ "type": "string" }, "sourceDatabase": { + "deprecated": true, "description": "The name of the source database.", "type": "string" }, @@ -1853,6 +1981,20 @@ }, "type": "object" }, + "ErrorDetails": { + "description": "Error details in public error message for DataprocMetastore.QueryMetadata.", + "id": "ErrorDetails", + "properties": { + "details": { + "additionalProperties": { + "type": "string" + }, + "description": "Additional structured details about this error.Keys define the failure items. Value describes the exception or details of the item.", + "type": "object" + } + }, + "type": "object" + }, "ExportMetadataRequest": { "description": "Request message for DataprocMetastore.ExportMetadata.", "id": "ExportMetadataRequest", @@ -2070,6 +2212,47 @@ }, "type": "object" }, + "LatestBackup": { + "description": "The details of the latest scheduled backup.", + "id": "LatestBackup", + "properties": { + "backupId": { + "description": "Output only. The ID of an in-progress scheduled backup. Empty if no backup is in progress.", + "readOnly": true, + "type": "string" + }, + "duration": { + "description": "Output only. The duration of the backup completion.", + "format": "google-duration", + "readOnly": true, + "type": "string" + }, + "startTime": { + "description": "Output only. The time when the backup was started.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The current state of the backup.", + "enum": [ + "STATE_UNSPECIFIED", + "IN_PROGRESS", + "SUCCEEDED", + "FAILED" + ], + "enumDescriptions": [ + "The state of the backup is unknown.", + "The backup is in progress.", + "The backup completed.", + "The backup failed." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "ListBackupsResponse": { "description": "Response message for DataprocMetastore.ListBackups.", "id": "ListBackupsResponse", @@ -2207,7 +2390,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -2244,6 +2427,10 @@ "description": "Metadata about the service in a location.", "id": "LocationMetadata", "properties": { + "multiRegionMetadata": { + "$ref": "MultiRegionMetadata", + "description": "The multi-region metadata if the current region is a multi-region." + }, "supportedHiveMetastoreVersions": { "description": "The versions of Hive Metastore that can be used when creating a new metastore service in this location. The server guarantees that exactly one HiveMetastoreVersion in the list will set is_default.", "items": { @@ -2410,7 +2597,7 @@ "properties": { "dataCatalogConfig": { "$ref": "DataCatalogConfig", - "description": "The integration config for the Data Catalog service." + "description": "Optional. The integration config for the Data Catalog service." }, "dataplexConfig": { "$ref": "DataplexConfig", @@ -2467,6 +2654,20 @@ "properties": {}, "type": "object" }, + "MultiRegionMetadata": { + "description": "The metadata for the multi-region that includes the constituent regions. The metadata is only populated if the region is multi-region. For single region, it will be empty.", + "id": "MultiRegionMetadata", + "properties": { + "constituentRegions": { + "description": "The regions constituting the multi-region.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "NetworkConfig": { "description": "Network configuration for the Dataproc Metastore service.", "id": "NetworkConfig", @@ -2477,6 +2678,10 @@ "$ref": "Consumer" }, "type": "array" + }, + "customRoutesEnabled": { + "description": "Enables custom routes to be imported and exported for the Dataproc Metastore service's peered VPC network.", + "type": "boolean" } }, "type": "object" @@ -2510,7 +2715,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" } }, @@ -2644,6 +2849,10 @@ "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, @@ -2703,7 +2912,11 @@ "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" + }, + "backupLocation": { + "description": "Optional. A Cloud Storage URI specifying the location of the backup artifacts, namely - backup avro files under \"avro/\", backup_metastore.json and service.json, in the following form:gs://. Mutually exclusive with backup, and exactly one of the two must be set.", "type": "string" }, "requestId": { @@ -2727,6 +2940,72 @@ }, "type": "object" }, + "ScalingConfig": { + "description": "Represents the scaling configuration of a metastore service.", + "id": "ScalingConfig", + "properties": { + "instanceSize": { + "description": "An enum of readable instance sizes, with each instance size mapping to a float value (e.g. InstanceSize.EXTRA_SMALL = scaling_factor(0.1))", + "enum": [ + "INSTANCE_SIZE_UNSPECIFIED", + "EXTRA_SMALL", + "SMALL", + "MEDIUM", + "LARGE", + "EXTRA_LARGE" + ], + "enumDescriptions": [ + "Unspecified instance size", + "Extra small instance size, maps to a scaling factor of 0.1.", + "Small instance size, maps to a scaling factor of 0.5.", + "Medium instance size, maps to a scaling factor of 1.0.", + "Large instance size, maps to a scaling factor of 3.0.", + "Extra large instance size, maps to a scaling factor of 6.0." + ], + "type": "string" + }, + "scalingFactor": { + "description": "Scaling factor, increments of 0.1 for values less than 1.0, and increments of 1.0 for values greater than 1.0.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "ScheduledBackup": { + "description": "This specifies the configuration of scheduled backup.", + "id": "ScheduledBackup", + "properties": { + "backupLocation": { + "description": "Optional. A Cloud Storage URI of a folder, in the format gs:///. A sub-folder containing backup files will be stored below it.", + "type": "string" + }, + "cronSchedule": { + "description": "Optional. The scheduled interval in Cron format, see https://en.wikipedia.org/wiki/Cron The default is empty: scheduled backup is not enabled. Must be specified to enable scheduled backups.", + "type": "string" + }, + "enabled": { + "description": "Optional. Defines whether the scheduled backup is enabled. The default value is false.", + "type": "boolean" + }, + "latestBackup": { + "$ref": "LatestBackup", + "description": "Output only. The details of the latest scheduled backup.", + "readOnly": true + }, + "nextScheduledTime": { + "description": "Output only. The time when the next backups execution is scheduled to start.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "timeZone": { + "description": "Optional. Specifies the time zone to be used when interpreting cron_schedule. Must be a time zone name from the time zone database (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), e.g. America/Los_Angeles or Africa/Abidjan. If left unspecified, the default is UTC.", + "type": "string" + } + }, + "type": "object" + }, "Secret": { "description": "A securely stored value.", "id": "Secret", @@ -2793,7 +3072,7 @@ }, "metadataIntegration": { "$ref": "MetadataIntegration", - "description": "The setting that defines how metastore metadata should be integrated with external services and systems." + "description": "Optional. The setting that defines how metastore metadata should be integrated with external services and systems." }, "metadataManagementActivity": { "$ref": "MetadataManagementActivity", @@ -2831,6 +3110,14 @@ ], "type": "string" }, + "scalingConfig": { + "$ref": "ScalingConfig", + "description": "Scaling configuration of the metastore service." + }, + "scheduledBackup": { + "$ref": "ScheduledBackup", + "description": "Optional. The configuration of scheduled backup for the metastore service." + }, "state": { "description": "Output only. The current state of the metastore service.", "enum": [ diff --git a/etc/api/ml/v1/ml-api.json b/etc/api/ml/v1/ml-api.json index d852620781..0d72bab150 100644 --- a/etc/api/ml/v1/ml-api.json +++ b/etc/api/ml/v1/ml-api.json @@ -1441,7 +1441,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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}/operations", "httpMethod": "GET", "id": "ml.projects.operations.list", @@ -1486,7 +1486,7 @@ } } }, - "revision": "20230106", + "revision": "20240127", "rootUrl": "https://ml.googleapis.com/", "schemas": { "GoogleApi__HttpBody": { @@ -1822,7 +1822,8 @@ "TPU_V2", "TPU_V3", "TPU_V2_POD", - "TPU_V3_POD" + "TPU_V3_POD", + "TPU_V4_POD" ], "enumDescriptions": [ "Unspecified accelerator type. Default to no GPU.", @@ -1835,7 +1836,8 @@ "TPU v2.", "TPU v3.", "TPU v2 POD.", - "TPU v3 POD." + "TPU v3 POD.", + "TPU v4 POD." ], "type": "string" } @@ -1936,7 +1938,8 @@ "TPU_V2", "TPU_V3", "TPU_V2_POD", - "TPU_V3_POD" + "TPU_V3_POD", + "TPU_V4_POD" ], "enumDescriptions": [ "Unspecified accelerator type. Default to no GPU.", @@ -1949,7 +1952,8 @@ "TPU v2.", "TPU v3.", "TPU v2 POD.", - "TPU v3 POD." + "TPU v3 POD.", + "TPU v4 POD." ], "type": "string" }, @@ -3705,21 +3709,21 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, "GoogleIamV1__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/).", + "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": "GoogleIamV1__Policy", "properties": { "auditConfigs": { @@ -3840,7 +3844,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/etc/api/monitoring/v1/monitoring-api.json b/etc/api/monitoring/v1/monitoring-api.json index 6fcc50366f..74e02f2f80 100644 --- a/etc/api/monitoring/v1/monitoring-api.json +++ b/etc/api/monitoring/v1/monitoring-api.json @@ -379,7 +379,7 @@ "type": "integer" }, "pageToken": { - "description": "If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.", + "description": "Optional. If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.", "location": "query", "type": "string" }, @@ -411,7 +411,7 @@ ], "parameters": { "name": { - "description": "Immutable. The resource name of the dashboard.", + "description": "Identifier. The resource name of the dashboard.", "location": "path", "pattern": "^projects/[^/]+/dashboards/[^/]+$", "required": true, @@ -472,7 +472,7 @@ }, "path": "v1/{+name}/location/{location}/prometheus/api/v1/labels", "request": { - "$ref": "ListLabelsRequest" + "$ref": "QueryLabelsRequest" }, "response": { "$ref": "HttpBody" @@ -520,6 +520,43 @@ "https://www.googleapis.com/auth/monitoring.read" ] }, + "query_exemplars": { + "description": "Lists exemplars relevant to a given PromQL query,", + "flatPath": "v1/projects/{projectsId}/location/{location}/prometheus/api/v1/query_exemplars", + "httpMethod": "POST", + "id": "monitoring.projects.location.prometheus.api.v1.query_exemplars", + "parameterOrder": [ + "name", + "location" + ], + "parameters": { + "location": { + "description": "Location of the resource information. Has to be \"global\" now.", + "location": "path", + "required": true, + "type": "string" + }, + "name": { + "description": "The project on which to execute the request. Data associcated with the project's workspace stored under the The format is: projects/PROJECT_ID_OR_NUMBER. Open source API but used as a request path prefix to distinguish different virtual Prometheus instances of Google Prometheus Engine.", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}/location/{location}/prometheus/api/v1/query_exemplars", + "request": { + "$ref": "QueryExemplarsRequest" + }, + "response": { + "$ref": "HttpBody" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.read" + ] + }, "query_range": { "description": "Evaluate a PromQL query with start, end time range.", "flatPath": "v1/projects/{projectsId}/location/{location}/prometheus/api/v1/query_range", @@ -656,59 +693,6 @@ } } }, - "labels": { - "methods": { - "list": { - "description": "Lists labels for metrics.", - "flatPath": "v1/projects/{projectsId}/location/{location}/prometheus/api/v1/labels", - "httpMethod": "GET", - "id": "monitoring.projects.location.prometheus.api.v1.labels.list", - "parameterOrder": [ - "name", - "location" - ], - "parameters": { - "end": { - "description": "The end time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.", - "location": "query", - "type": "string" - }, - "location": { - "description": "Location of the resource information. Has to be \"global\" now.", - "location": "path", - "required": true, - "type": "string" - }, - "match": { - "description": "A list of matchers encoded in the Prometheus label matcher format to constrain the values to series that satisfy them.", - "location": "query", - "type": "string" - }, - "name": { - "description": "The workspace on which to execute the request. It is not part of the open source API but used as a request path prefix to distinguish different virtual Prometheus instances of Google Prometheus Engine. The format is: projects/PROJECT_ID_OR_NUMBER.", - "location": "path", - "pattern": "^projects/[^/]+$", - "required": true, - "type": "string" - }, - "start": { - "description": "The start time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+name}/location/{location}/prometheus/api/v1/labels", - "response": { - "$ref": "HttpBody" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/monitoring", - "https://www.googleapis.com/auth/monitoring.read" - ] - } - } - }, "metadata": { "methods": { "list": { @@ -769,7 +753,7 @@ } } }, - "revision": "20230115", + "revision": "20240225", "rootUrl": "https://monitoring.googleapis.com/", "schemas": { "Aggregation": { @@ -873,6 +857,24 @@ }, "type": "object" }, + "AggregationFunction": { + "description": "Preview: An identifier for an aggregation function. Aggregation functions are SQL functions that group or transform data from multiple points to a single point. This is a preview feature and may be subject to change before final release.", + "id": "AggregationFunction", + "properties": { + "parameters": { + "description": "Optional. Parameters applied to the aggregation function. Only used for functions that require them.", + "items": { + "$ref": "Parameter" + }, + "type": "array" + }, + "type": { + "description": "Required. The type of aggregation function, must be one of the following: \"none\" - no function. \"percentile\" - APPROX_QUANTILES() - 1 parameter numeric value \"average\" - AVG() \"count\" - COUNT() \"count-distinct\" - COUNT(DISTINCT) \"count-distinct-approx\" - APPROX_COUNT_DISTINCT() \"max\" - MAX() \"min\" - MIN() \"sum\" - SUM()", + "type": "string" + } + }, + "type": "object" + }, "AlertChart": { "description": "A chart that displays alert policy data.", "id": "AlertChart", @@ -909,10 +911,50 @@ }, "type": "object" }, + "Breakdown": { + "description": "Preview: A breakdown is an aggregation applied to the measures over a specified column. A breakdown can result in multiple series across a category for the provided measure. This is a preview feature and may be subject to change before final release.", + "id": "Breakdown", + "properties": { + "aggregationFunction": { + "$ref": "AggregationFunction", + "description": "Required. The Aggregation function is applied across all data in each breakdown created." + }, + "column": { + "description": "Required. The name of the column in the dataset containing the breakdown values.", + "type": "string" + }, + "limit": { + "description": "Required. A limit to the number of breakdowns. If set to zero then all possible breakdowns are applied. The list of breakdowns is dependent on the value of the sort_order field.", + "format": "int32", + "type": "integer" + }, + "sortOrder": { + "description": "Required. The sort order is applied to the values of the breakdown column.", + "enum": [ + "SORT_ORDER_UNSPECIFIED", + "SORT_ORDER_NONE", + "SORT_ORDER_ASCENDING", + "SORT_ORDER_DESCENDING" + ], + "enumDescriptions": [ + "An unspecified sort order. This option is invalid when sorting is required.", + "No sorting is applied.", + "The lowest-valued entries are selected first.", + "The highest-valued entries are selected first." + ], + "type": "string" + } + }, + "type": "object" + }, "ChartOptions": { "description": "Options to control visual rendering of a chart.", "id": "ChartOptions", "properties": { + "displayHorizontal": { + "description": "Preview: Configures whether the charted values are shown on the horizontal or vertical axis. By default, values are represented the vertical axis. This is a preview feature and may be subject to change before final release.", + "type": "boolean" + }, "mode": { "description": "The chart mode.", "enum": [ @@ -1030,7 +1072,7 @@ "description": "The content is arranged as a grid of tiles, with each content widget occupying one or more grid blocks." }, "name": { - "description": "Immutable. The resource name of the dashboard.", + "description": "Identifier. The resource name of the dashboard.", "type": "string" }, "rowLayout": { @@ -1083,10 +1125,31 @@ "description": "Groups a time series query definition with charting options.", "id": "DataSet", "properties": { + "breakdowns": { + "description": "Optional. The collection of breakdowns to be applied to the dataset.", + "items": { + "$ref": "Breakdown" + }, + "type": "array" + }, + "dimensions": { + "description": "Optional. A collection of dimension columns.", + "items": { + "$ref": "Dimension" + }, + "type": "array" + }, "legendTemplate": { "description": "A template string for naming TimeSeries in the resulting data set. This should be a string with interpolations of the form ${label_name}, which will resolve to the label's value.", "type": "string" }, + "measures": { + "description": "Optional. A collection of measures.", + "items": { + "$ref": "Measure" + }, + "type": "array" + }, "minAlignmentPeriod": { "description": "Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query For example, if the data is published once every 10 minutes, the min_alignment_period should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.", "format": "google-duration", @@ -1104,8 +1167,8 @@ "enumDescriptions": [ "Plot type is unspecified. The view will default to LINE.", "The data is plotted as a set of lines (one line per series).", - "The data is plotted as a set of filled areas (one area per series), with the areas stacked vertically (the base of each area is the top of its predecessor, and the base of the first area is the X axis). Since the areas do not overlap, each is filled with a different opaque color.", - "The data is plotted as a set of rectangular boxes (one box per series), with the boxes stacked vertically (the base of each box is the top of its predecessor, and the base of the first box is the X axis). Since the boxes do not overlap, each is filled with a different opaque color.", + "The data is plotted as a set of filled areas (one area per series), with the areas stacked vertically (the base of each area is the top of its predecessor, and the base of the first area is the x-axis). Since the areas do not overlap, each is filled with a different opaque color.", + "The data is plotted as a set of rectangular boxes (one box per series), with the boxes stacked vertically (the base of each box is the top of its predecessor, and the base of the first box is the x-axis). Since the boxes do not overlap, each is filled with a different opaque color.", "The data is plotted as a heatmap. The series being plotted must have a DISTRIBUTION value type. The value of each bucket in the distribution is displayed as a color. This type is not currently available in the Stackdriver Monitoring application." ], "type": "string" @@ -1131,6 +1194,61 @@ }, "type": "object" }, + "Dimension": { + "description": "A chart dimension. Dimensions are a structured label, class, or category for a set of measurements in your data.", + "id": "Dimension", + "properties": { + "column": { + "description": "Required. The name of the column in the source SQL query that is used to chart the dimension.", + "type": "string" + }, + "columnType": { + "description": "Optional. The type of the dimension column. This is relevant only if one of the bin_size fields is set. If it is empty, the type TIMESTAMP or INT64 will be assumed based on which bin_size field is set. If populated, this should be set to one of the following types: DATE, TIME, DATETIME, TIMESTAMP, BIGNUMERIC, INT64, NUMERIC, FLOAT64.", + "type": "string" + }, + "floatBinSize": { + "description": "Optional. float_bin_size is used when the column type used for a dimension is a floating point numeric column.", + "format": "double", + "type": "number" + }, + "maxBinCount": { + "description": "A limit to the number of bins generated. When 0 is specified, the maximum count is not enforced.", + "format": "int32", + "type": "integer" + }, + "numericBinSize": { + "description": "numeric_bin_size is used when the column type used for a dimension is numeric or string.", + "format": "int32", + "type": "integer" + }, + "sortColumn": { + "description": "The column name to sort on for binning. This column can be the same column as this dimension or any other column used as a measure in the results. If sort_order is set to NONE, then this value is not used.", + "type": "string" + }, + "sortOrder": { + "description": "The sort order applied to the sort column.", + "enum": [ + "SORT_ORDER_UNSPECIFIED", + "SORT_ORDER_NONE", + "SORT_ORDER_ASCENDING", + "SORT_ORDER_DESCENDING" + ], + "enumDescriptions": [ + "An unspecified sort order. This option is invalid when sorting is required.", + "No sorting is applied.", + "The lowest-valued entries are selected first.", + "The highest-valued entries are selected first." + ], + "type": "string" + }, + "timeBinSize": { + "description": "time_bin_size is used when the data type specified by column is a time type and the bin size is determined by a time duration. If column_type is DATE, this must be a whole value multiple of 1 day. If column_type is TIME, this must be less than or equal to 24 hours.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "DroppedLabels": { "description": "A set of (label, value) pairs that were removed from a Distribution time series during aggregation and then added as an attachment to a Distribution.Exemplar.The full label set for the exemplars is constructed by using the dropped pairs in combination with the label values that remain on the aggregated Distribution time series. The constructed full label set can be used to identify the specific entity, such as the instance or job, which might be contributing to a long-tail. However, with dropped labels, the storage requirements are reduced because only the aggregated distribution values for a large group of time series are stored.Note that there are no guarantees on ordering of the labels from exemplar-to-exemplar and from distribution-to-distribution in the same stream, and there may be duplicates. It is up to clients to resolve any ambiguities.", "id": "DroppedLabels", @@ -1151,6 +1269,34 @@ "properties": {}, "type": "object" }, + "ErrorReportingPanel": { + "description": "A widget that displays a list of error groups.", + "id": "ErrorReportingPanel", + "properties": { + "projectNames": { + "description": "The resource name of the Google Cloud Platform project. Written as projects/{projectID} or projects/{projectNumber}, where {projectID} and {projectNumber} can be found in the Google Cloud console (https://support.google.com/cloud/answer/6158840).Examples: projects/my-project-123, projects/5551234.", + "items": { + "type": "string" + }, + "type": "array" + }, + "services": { + "description": "An identifier of the service, such as the name of the executable, job, or Google App Engine service name. This field is expected to have a low number of values that are relatively stable over time, as opposed to version, which can be changed whenever new code is deployed.Contains the service name for error reports extracted from Google App Engine logs or default if the App Engine default service is used.", + "items": { + "type": "string" + }, + "type": "array" + }, + "versions": { + "description": "Represents the source code version that the developer provided, which could represent a version label or a Git SHA-1 hash, for example. For App Engine standard environment, the version is set to the version of the app.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "Field": { "description": "A single field of a message type.", "id": "Field", @@ -1320,6 +1466,44 @@ }, "type": "object" }, + "IncidentList": { + "description": "A widget that displays a list of incidents", + "id": "IncidentList", + "properties": { + "monitoredResources": { + "description": "Optional. The monitored resource for which incidents are listed. The resource doesn't need to be fully specified. That is, you can specify the resource type but not the values of the resource labels. The resource type and labels are used for filtering.", + "items": { + "$ref": "MonitoredResource" + }, + "type": "array" + }, + "policyNames": { + "description": "Optional. A list of alert policy names to filter the incident list by. Don't include the project ID prefix in the policy name. For example, use alertPolicies/utilization.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "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" + }, "ListDashboardsResponse": { "description": "The ListDashboards request.", "id": "ListDashboardsResponse", @@ -1338,25 +1522,6 @@ }, "type": "object" }, - "ListLabelsRequest": { - "description": "ListLabelsRequest holds all parameters of the Prometheus upstream API for returning a list of label names.", - "id": "ListLabelsRequest", - "properties": { - "end": { - "description": "The end time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.", - "type": "string" - }, - "match": { - "description": "A list of matchers encoded in the Prometheus label matcher format to constrain the values to series that satisfy them.", - "type": "string" - }, - "start": { - "description": "The start time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.", - "type": "string" - } - }, - "type": "object" - }, "ListMetricsScopesByMonitoredProjectResponse": { "description": "Response for the ListMetricsScopesByMonitoredProject method.", "id": "ListMetricsScopesByMonitoredProjectResponse", @@ -1389,6 +1554,21 @@ }, "type": "object" }, + "Measure": { + "description": "A chart measure. Measures represent a measured property in your chart data such as rainfall in inches, number of units sold, revenue gained, etc.", + "id": "Measure", + "properties": { + "aggregationFunction": { + "$ref": "AggregationFunction", + "description": "Required. The aggregation function applied to the input column. This must not be set to \"none\" unless binning is disabled on the dimension. The aggregation function is used to group points on the dimension bins." + }, + "column": { + "description": "Required. The column name within in the dataset used for the measure.", + "type": "string" + } + }, + "type": "object" + }, "MetricsScope": { "description": "Represents a Metrics Scope (https://cloud.google.com/monitoring/settings#concept-scope) in Cloud Monitoring, which specifies one or more Google projects and zero or more AWS accounts to monitor together.", "id": "MetricsScope", @@ -1437,6 +1617,24 @@ }, "type": "object" }, + "MonitoredResource": { + "description": "An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The type field identifies a MonitoredResourceDescriptor object that describes the resource's schema. Information in the labels field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for \"gce_instance\" has labels \"project_id\", \"instance_id\" and \"zone\": { \"type\": \"gce_instance\", \"labels\": { \"project_id\": \"my-project\", \"instance_id\": \"12345678901234\", \"zone\": \"us-central1-a\" }} ", + "id": "MonitoredResource", + "properties": { + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels \"project_id\", \"instance_id\", and \"zone\".", + "type": "object" + }, + "type": { + "description": "Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is gce_instance. 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).", + "type": "string" + } + }, + "type": "object" + }, "MosaicLayout": { "description": "A mosaic layout divides the available space into a grid of blocks, and overlays the grid with tiles. Unlike GridLayout, tiles may span multiple grid blocks and can be placed at arbitrary locations in the grid.", "id": "MosaicLayout", @@ -1485,7 +1683,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" } }, @@ -1526,6 +1724,17 @@ }, "type": "object" }, + "OpsAnalyticsQuery": { + "description": "Preview: A query that produces an aggregated response and supporting data. This is a preview feature and may be subject to change before final release.", + "id": "OpsAnalyticsQuery", + "properties": { + "sql": { + "description": "A SQL query to fetch time series, category series, or numeric series data.", + "type": "string" + } + }, + "type": "object" + }, "Option": { "description": "A protocol buffer option, which can be attached to a message, field, enumeration, etc.", "id": "Option", @@ -1545,6 +1754,23 @@ }, "type": "object" }, + "Parameter": { + "description": "Preview: Parameter value applied to the aggregation function. This is a preview feature and may be subject to change before final release.", + "id": "Parameter", + "properties": { + "doubleValue": { + "description": "A floating-point parameter value.", + "format": "double", + "type": "number" + }, + "intValue": { + "description": "An integer parameter value.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "PickTimeSeriesFilter": { "description": "Describes a ranking-based time series filter. Each input time series is ranked with an aligner. The filter will allow up to num_time_series time series to pass through it, selecting them based on the relative ranking.For example, if ranking_method is METHOD_MEAN,direction is BOTTOM, and num_time_series is 3, then the 3 times series with the lowest mean values will pass through the filter.", "id": "PickTimeSeriesFilter", @@ -1563,6 +1789,10 @@ ], "type": "string" }, + "interval": { + "$ref": "Interval", + "description": "Select the top N streams/time series within this time interval" + }, "numTimeSeries": { "description": "How many time series to allow to pass through the filter.", "format": "int32", @@ -1591,6 +1821,91 @@ }, "type": "object" }, + "PieChart": { + "description": "A widget that displays timeseries data as a pie or a donut.", + "id": "PieChart", + "properties": { + "chartType": { + "description": "Required. Indicates the visualization type for the PieChart.", + "enum": [ + "PIE_CHART_TYPE_UNSPECIFIED", + "PIE", + "DONUT" + ], + "enumDescriptions": [ + "The zero value. No type specified. Do not use.", + "A Pie type PieChart.", + "Similar to PIE, but the DONUT type PieChart has a hole in the middle." + ], + "type": "string" + }, + "dataSets": { + "description": "Required. The queries for the chart's data.", + "items": { + "$ref": "PieChartDataSet" + }, + "type": "array" + }, + "showLabels": { + "description": "Optional. Indicates whether or not the pie chart should show slices' labels", + "type": "boolean" + } + }, + "type": "object" + }, + "PieChartDataSet": { + "description": "Groups a time series query definition.", + "id": "PieChartDataSet", + "properties": { + "dimensions": { + "description": "A dimension is a structured label, class, or category for a set of measurements in your data.", + "items": { + "$ref": "Dimension" + }, + "type": "array" + }, + "measures": { + "description": "A measure is a measured value of a property in your data. For example, rainfall in inches, number of units sold, revenue gained, etc.", + "items": { + "$ref": "Measure" + }, + "type": "array" + }, + "minAlignmentPeriod": { + "description": "Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query. For example, if the data is published once every 10 minutes, the min_alignment_period should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.", + "format": "google-duration", + "type": "string" + }, + "sliceNameTemplate": { + "description": "Optional. A template for the name of the slice. This name will be displayed in the legend and the tooltip of the pie chart. It replaces the auto-generated names for the slices. For example, if the template is set to ${resource.labels.zone}, the zone's value will be used for the name instead of the default name.", + "type": "string" + }, + "timeSeriesQuery": { + "$ref": "TimeSeriesQuery", + "description": "Required. The query for the PieChart. See, google.monitoring.dashboard.v1.TimeSeriesQuery." + } + }, + "type": "object" + }, + "QueryExemplarsRequest": { + "description": "QueryExemplarsRequest holds all parameters of the Prometheus upstream API for querying exemplars.", + "id": "QueryExemplarsRequest", + "properties": { + "end": { + "description": "The end time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.", + "type": "string" + }, + "query": { + "description": "A PromQL query string. Query lanauge documentation: https://prometheus.io/docs/prometheus/latest/querying/basics/.", + "type": "string" + }, + "start": { + "description": "The start time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.", + "type": "string" + } + }, + "type": "object" + }, "QueryInstantRequest": { "description": "QueryInstantRequest holds all parameters of the Prometheus upstream instant query API plus GCM specific parameters.", "id": "QueryInstantRequest", @@ -1610,6 +1925,25 @@ }, "type": "object" }, + "QueryLabelsRequest": { + "description": "QueryLabelsRequest holds all parameters of the Prometheus upstream API for returning a list of label names.", + "id": "QueryLabelsRequest", + "properties": { + "end": { + "description": "The end time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.", + "type": "string" + }, + "match": { + "description": "A list of matchers encoded in the Prometheus label matcher format to constrain the values to series that satisfy them.", + "type": "string" + }, + "start": { + "description": "The start time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.", + "type": "string" + } + }, + "type": "object" + }, "QueryRangeRequest": { "description": "QueryRangeRequest holds all parameters of the Prometheus upstream range query API plus GCM specific parameters.", "id": "QueryRangeRequest", @@ -1704,6 +2038,10 @@ "description": "A widget showing the latest value of a metric, and how this value relates to one or more thresholds.", "id": "Scorecard", "properties": { + "blankView": { + "$ref": "Empty", + "description": "Will cause the Scorecard to show only the value, with no indicator to its value relative to its thresholds." + }, "gaugeView": { "$ref": "GaugeView", "description": "Will cause the scorecard to show a gauge chart." @@ -1726,6 +2064,27 @@ }, "type": "object" }, + "SectionHeader": { + "description": "A widget that defines a new section header. Sections populate a table of contents and allow easier navigation of long-form content.", + "id": "SectionHeader", + "properties": { + "dividerBelow": { + "description": "Whether to insert a divider below the section in the table of contents", + "type": "boolean" + }, + "subtitle": { + "description": "The subtitle of the section", + "type": "string" + } + }, + "type": "object" + }, + "SingleViewGroup": { + "description": "A widget that groups the other widgets by using a dropdown menu. All widgets that are within the area spanned by the grouping widget are considered member widgets.", + "id": "SingleViewGroup", + "properties": {}, + "type": "object" + }, "SourceContext": { "description": "SourceContext represents information about the source of a protobuf element, like the file in which it is defined.", "id": "SourceContext", @@ -1854,6 +2213,7 @@ "id": "TableDisplayOptions", "properties": { "shownColumns": { + "deprecated": true, "description": "Optional. This field is unused and has been replaced by TimeSeriesTable.column_settings", "items": { "type": "string" @@ -1884,6 +2244,131 @@ "The text contains no special formatting." ], "type": "string" + }, + "style": { + "$ref": "TextStyle", + "description": "How the text is styled" + } + }, + "type": "object" + }, + "TextStyle": { + "description": "Properties that determine how the title and content are styled", + "id": "TextStyle", + "properties": { + "backgroundColor": { + "description": "The background color as a hex string. \"#RRGGBB\" or \"#RGB\"", + "type": "string" + }, + "fontSize": { + "description": "Font sizes for both the title and content. The title will still be larger relative to the content.", + "enum": [ + "FONT_SIZE_UNSPECIFIED", + "FS_EXTRA_SMALL", + "FS_SMALL", + "FS_MEDIUM", + "FS_LARGE", + "FS_EXTRA_LARGE" + ], + "enumDescriptions": [ + "No font size specified, will default to FS_LARGE", + "Extra small font size", + "Small font size", + "Medium font size", + "Large font size", + "Extra large font size" + ], + "type": "string" + }, + "horizontalAlignment": { + "description": "The horizontal alignment of both the title and content", + "enum": [ + "HORIZONTAL_ALIGNMENT_UNSPECIFIED", + "H_LEFT", + "H_CENTER", + "H_RIGHT" + ], + "enumDescriptions": [ + "No horizontal alignment specified, will default to H_LEFT", + "Left-align", + "Center-align", + "Right-align" + ], + "type": "string" + }, + "padding": { + "description": "The amount of padding around the widget", + "enum": [ + "PADDING_SIZE_UNSPECIFIED", + "P_EXTRA_SMALL", + "P_SMALL", + "P_MEDIUM", + "P_LARGE", + "P_EXTRA_LARGE" + ], + "enumDescriptions": [ + "No padding size specified, will default to P_EXTRA_SMALL", + "Extra small padding", + "Small padding", + "Medium padding", + "Large padding", + "Extra large padding" + ], + "type": "string" + }, + "pointerLocation": { + "description": "The pointer location for this widget (also sometimes called a \"tail\")", + "enum": [ + "POINTER_LOCATION_UNSPECIFIED", + "PL_TOP", + "PL_RIGHT", + "PL_BOTTOM", + "PL_LEFT", + "PL_TOP_LEFT", + "PL_TOP_RIGHT", + "PL_RIGHT_TOP", + "PL_RIGHT_BOTTOM", + "PL_BOTTOM_RIGHT", + "PL_BOTTOM_LEFT", + "PL_LEFT_BOTTOM", + "PL_LEFT_TOP" + ], + "enumDescriptions": [ + "No visual pointer", + "Placed in the middle of the top of the widget", + "Placed in the middle of the right side of the widget", + "Placed in the middle of the bottom of the widget", + "Placed in the middle of the left side of the widget", + "Placed on the left side of the top of the widget", + "Placed on the right side of the top of the widget", + "Placed on the top of the right side of the widget", + "Placed on the bottom of the right side of the widget", + "Placed on the right side of the bottom of the widget", + "Placed on the left side of the bottom of the widget", + "Placed on the bottom of the left side of the widget", + "Placed on the top of the left side of the widget" + ], + "type": "string" + }, + "textColor": { + "description": "The text color as a hex string. \"#RRGGBB\" or \"#RGB\"", + "type": "string" + }, + "verticalAlignment": { + "description": "The vertical alignment of both the title and content", + "enum": [ + "VERTICAL_ALIGNMENT_UNSPECIFIED", + "V_TOP", + "V_CENTER", + "V_BOTTOM" + ], + "enumDescriptions": [ + "No vertical alignment specified, will default to V_TOP", + "Top-align", + "Center-align", + "Bottom-align" + ], + "type": "string" } }, "type": "object" @@ -1999,6 +2484,7 @@ }, "statisticalTimeSeriesFilter": { "$ref": "StatisticalTimeSeriesFilter", + "deprecated": true, "description": "Statistics based time series filter. Note: This field is deprecated and completely ignored by the API." } }, @@ -2026,6 +2512,7 @@ }, "statisticalTimeSeriesFilter": { "$ref": "StatisticalTimeSeriesFilter", + "deprecated": true, "description": "Statistics based time series filter. Note: This field is deprecated and completely ignored by the API." } }, @@ -2035,6 +2522,14 @@ "description": "TimeSeriesQuery collects the set of supported methods for querying time series data from the Stackdriver metrics API.", "id": "TimeSeriesQuery", "properties": { + "opsAnalyticsQuery": { + "$ref": "OpsAnalyticsQuery", + "description": "Preview: A query used to fetch a time series, category series, or numeric series with SQL. This is a preview feature and may be subject to change before final release." + }, + "outputFullDuration": { + "description": "Optional. If set, Cloud Monitoring will treat the full query duration as the alignment period so that there will be only 1 output value.*Note: This could override the configured alignment period except for the cases where a series of data points are expected, like - XyChart - Scorecard's spark chart", + "type": "boolean" + }, "prometheusQuery": { "description": "A query used to fetch time series with PromQL.", "type": "string" @@ -2097,6 +2592,10 @@ "description": "A protocol buffer message type.", "id": "Type", "properties": { + "edition": { + "description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", + "type": "string" + }, "fields": { "description": "The list of fields.", "items": { @@ -2130,11 +2629,13 @@ "description": "The source syntax.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax proto2.", - "Syntax proto3." + "Syntax proto3.", + "Syntax editions." ], "type": "string" } @@ -2157,14 +2658,38 @@ "$ref": "CollapsibleGroup", "description": "A widget that groups the other widgets. All widgets that are within the area spanned by the grouping widget are considered member widgets." }, + "errorReportingPanel": { + "$ref": "ErrorReportingPanel", + "description": "A widget that displays a list of error groups." + }, + "id": { + "description": "Optional. The widget id. Ids may be made up of alphanumerics, dashes and underscores. Widget ids are optional.", + "type": "string" + }, + "incidentList": { + "$ref": "IncidentList", + "description": "A widget that shows list of incidents." + }, "logsPanel": { "$ref": "LogsPanel", "description": "A widget that shows a stream of logs." }, + "pieChart": { + "$ref": "PieChart", + "description": "A widget that displays timeseries data as a pie chart." + }, "scorecard": { "$ref": "Scorecard", "description": "A scorecard summarizing time series data." }, + "sectionHeader": { + "$ref": "SectionHeader", + "description": "A widget that defines a section header for easier navigation of the dashboard." + }, + "singleViewGroup": { + "$ref": "SingleViewGroup", + "description": "A widget that groups the other widgets by using a dropdown menu." + }, "text": { "$ref": "Text", "description": "A raw string or markdown displaying textual content." @@ -2213,15 +2738,15 @@ }, "xAxis": { "$ref": "Axis", - "description": "The properties applied to the X axis." + "description": "The properties applied to the x-axis." }, "y2Axis": { "$ref": "Axis", - "description": "The properties applied to the Y2 axis." + "description": "The properties applied to the y2-axis." }, "yAxis": { "$ref": "Axis", - "description": "The properties applied to the Y axis." + "description": "The properties applied to the y-axis." } }, "type": "object" diff --git a/etc/api/monitoring/v3/monitoring-api.json b/etc/api/monitoring/v3/monitoring-api.json index 23e16457e4..b2d3603c01 100644 --- a/etc/api/monitoring/v3/monitoring-api.json +++ b/etc/api/monitoring/v3/monitoring-api.json @@ -1217,7 +1217,7 @@ "type": "string" }, "pageSize": { - "description": "A positive number that is the maximum number of results to return.", + "description": "A positive number that is the maximum number of results to return. The default and maximum value is 10,000. If a page_size <= 0 or > 10,000 is submitted, will instead return a maximum of 10,000 results.", "format": "int32", "location": "query", "type": "integer" @@ -1505,7 +1505,7 @@ ] }, "list": { - "description": "Lists the notification channels that have been created for the project.", + "description": "Lists the notification channels that have been created for the project. To list the types of notification channels that are supported, use the ListNotificationChannelDescriptors method.", "flatPath": "v3/projects/{projectsId}/notificationChannels", "httpMethod": "GET", "id": "monitoring.projects.notificationChannels.list", @@ -1788,7 +1788,7 @@ "timeSeries": { "methods": { "create": { - "description": "Creates or adds data to one or more time series. The response is empty if all time series in the request were written. If any time series could not be written, a corresponding failure message is included in the error response.", + "description": "Creates or adds data to one or more time series. The response is empty if all time series in the request were written. If any time series could not be written, a corresponding failure message is included in the error response. This method does not support resource locations constraint of an organization policy (https://cloud.google.com/resource-manager/docs/organization-policy/defining-locations#setting_the_organization_policy).", "flatPath": "v3/projects/{projectsId}/timeSeries", "httpMethod": "POST", "id": "monitoring.projects.timeSeries.create", @@ -2281,7 +2281,7 @@ ], "parameters": { "name": { - "description": "A unique resource name for this Uptime check configuration. The format is: projects/[PROJECT_ID_OR_NUMBER]/uptimeCheckConfigs/[UPTIME_CHECK_ID] [PROJECT_ID_OR_NUMBER] is the Workspace host project associated with the Uptime check.This field should be omitted when creating the Uptime check configuration; on create, the resource name is assigned by the server and included in the response.", + "description": "Identifier. A unique resource name for this Uptime check configuration. The format is: projects/[PROJECT_ID_OR_NUMBER]/uptimeCheckConfigs/[UPTIME_CHECK_ID] [PROJECT_ID_OR_NUMBER] is the Workspace host project associated with the Uptime check.This field should be omitted when creating the Uptime check configuration; on create, the resource name is assigned by the server and included in the response.", "location": "path", "pattern": "^projects/[^/]+/uptimeCheckConfigs/[^/]+$", "required": true, @@ -2498,7 +2498,7 @@ "type": "string" }, "serviceLevelObjectiveId": { - "description": "Optional. The ServiceLevelObjective id to use for this ServiceLevelObjective. If omitted, an id will be generated instead. Must match the pattern [a-z0-9\\-]+", + "description": "Optional. The ServiceLevelObjective id to use for this ServiceLevelObjective. If omitted, an id will be generated instead. Must match the pattern ^[a-zA-Z0-9-_:.]+$", "location": "query", "type": "string" } @@ -2714,7 +2714,7 @@ } } }, - "revision": "20230115", + "revision": "20240225", "rootUrl": "https://monitoring.googleapis.com/", "schemas": { "Aggregation": { @@ -2843,7 +2843,7 @@ "type": "string" }, "conditions": { - "description": "A list of conditions for the policy. The conditions are combined by AND or OR according to the combiner field. If the combined conditions evaluate to true, then an incident is created. A policy can have from one to six conditions. If condition_time_series_query_language is present, it must be the only condition.", + "description": "A list of conditions for the policy. The conditions are combined by AND or OR according to the combiner field. If the combined conditions evaluate to true, then an incident is created. A policy can have from one to six conditions. If condition_time_series_query_language is present, it must be the only condition. If condition_monitoring_query_language is present, it must be the only condition.", "items": { "$ref": "Condition" }, @@ -2854,7 +2854,7 @@ "description": "A read-only record of the creation of the alerting policy. If provided in a call to create or update, this field will be ignored." }, "displayName": { - "description": "A short name or phrase used to identify the policy in dashboards, notifications, and incidents. To avoid confusion, don't use the same display name for multiple policies in the same project. The name is limited to 512 Unicode characters.", + "description": "A short name or phrase used to identify the policy in dashboards, notifications, and incidents. To avoid confusion, don't use the same display name for multiple policies in the same project. The name is limited to 512 Unicode characters.The convention for the display_name of a PrometheusQueryLanguageCondition is \"{rule group name}/{alert name}\", where the {rule group name} and {alert name} should be taken from the corresponding Prometheus configuration file. This convention is not enforced. In any case the display_name is not a unique key of the AlertPolicy.", "type": "string" }, "documentation": { @@ -2880,16 +2880,32 @@ }, "type": "array" }, + "severity": { + "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", + "ERROR", + "WARNING" + ], + "enumDescriptions": [ + "No severity is specified. This is the default value.", + "This is the highest severity level. Use this if the problem could cause significant damage or downtime.", + "This is the medium severity level. Use this if the problem could cause minor damage or downtime.", + "This is the lowest severity level. Use this if the problem is not causing any damage or downtime, but could potentially lead to a problem in the future." + ], + "type": "string" + }, "userLabels": { "additionalProperties": { "type": "string" }, - "description": "User-supplied key/value data to be used for organizing and identifying the AlertPolicy objects.The field can contain up to 64 entries. Each key and value is limited to 63 Unicode characters or 128 bytes, whichever is smaller. Labels and values can contain only lowercase letters, numerals, underscores, and dashes. Keys must begin with a letter.", + "description": "User-supplied key/value data to be used for organizing and identifying the AlertPolicy objects.The field can contain up to 64 entries. Each key and value is limited to 63 Unicode characters or 128 bytes, whichever is smaller. Labels and values can contain only lowercase letters, numerals, underscores, and dashes. Keys must begin with a letter.Note that Prometheus {alert name} is a valid Prometheus label names (https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels), whereas Prometheus {rule group} is an unrestricted UTF-8 string. This means that they cannot be stored as-is in user labels, because they may contain characters that are not allowed in user-label values.", "type": "object" }, "validity": { "$ref": "Status", - "description": "Read-only description of how the alert policy is invalid. OK if the alert policy is valid. If not OK, the alert policy will not generate incidents." + "description": "Read-only description of how the alert policy is invalid. This field is only set when the alert policy is invalid. An invalid alert policy will not generate incidents." } }, "type": "object" @@ -2903,6 +2919,13 @@ "format": "google-duration", "type": "string" }, + "notificationChannelStrategy": { + "description": "Control how notifications will be sent out, on a per-channel basis.", + "items": { + "$ref": "NotificationChannelStrategy" + }, + "type": "array" + }, "notificationRateLimit": { "$ref": "NotificationRateLimit", "description": "Required for alert policies with a LogMatch condition.This limit is not implemented for alert policies that are not log-based." @@ -3026,6 +3049,22 @@ }, "type": "object" }, + "CloudFunctionV2Target": { + "description": "A Synthetic Monitor deployed to a Cloud Functions V2 instance.", + "id": "CloudFunctionV2Target", + "properties": { + "cloudRunRevision": { + "$ref": "MonitoredResource", + "description": "Output only. The cloud_run_revision Monitored Resource associated with the GCFv2. The Synthetic Monitor execution results (metrics, logs, and spans) are reported against this Monitored Resource. This field is output only.", + "readOnly": true + }, + "name": { + "description": "Required. Fully qualified GCFv2 resource name i.e. projects/{project}/locations/{location}/functions/{function} Required.", + "type": "string" + } + }, + "type": "object" + }, "CloudRun": { "description": "Cloud Run service. Learn more at https://cloud.google.com/run.", "id": "CloudRun", @@ -3199,6 +3238,10 @@ "$ref": "MonitoringQueryLanguageCondition", "description": "A condition that uses the Monitoring Query Language to define alerts." }, + "conditionPrometheusQueryLanguage": { + "$ref": "PrometheusQueryLanguageCondition", + "description": "A condition that uses the Prometheus query language to define alerts." + }, "conditionThreshold": { "$ref": "MetricThreshold", "description": "A condition that compares a time series against a threshold." @@ -3334,7 +3377,7 @@ "id": "Criteria", "properties": { "policies": { - "description": "The specific AlertPolicy names for the alert that should be snoozed. The format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[POLICY_ID] There is a limit of 100 policies per snooze. This limit is checked during snooze creation.", + "description": "The specific AlertPolicy names for the alert that should be snoozed. The format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[POLICY_ID] There is a limit of 16 policies per snooze. This limit is checked during snooze creation.", "items": { "type": "string" }, @@ -3420,6 +3463,10 @@ "mimeType": { "description": "The format of the content field. Presently, only the value \"text/markdown\" is supported. See Markdown (https://en.wikipedia.org/wiki/Markdown) for more information.", "type": "string" + }, + "subject": { + "description": "Optional. The subject line of the notification. The subject line may not exceed 10,240 bytes. In notifications generated by this policy, the contents of the subject line after variable expansion will be truncated to 255 bytes or shorter at the latest UTF-8 character boundary. The 255-byte limit is recommended by this thread (https://stackoverflow.com/questions/1592291/what-is-the-email-subject-length-limit). It is both the limit imposed by some third-party ticketing products and it is common to define textual fields in databases as VARCHAR(255).The contents of the subject line can be templatized by using variables (https://cloud.google.com/monitoring/alerts/doc-variables). If this field is missing or empty, a default subject line will be generated.", + "type": "string" } }, "type": "object" @@ -3504,7 +3551,7 @@ "type": "object" }, "Exponential": { - "description": "Specifies an exponential sequence of buckets that have a width that is proportional to the value of the lower bound. Each bucket represents a constant relative uncertainty on a specific value in the bucket.There are num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 <= i < N-1): scale * (growth_factor ^ i). Lower bound (1 <= i < N): scale * (growth_factor ^ (i - 1)).", + "description": "Specifies an exponential sequence of buckets that have a width that is proportional to the value of the lower bound. Each bucket represents a constant relative uncertainty on a specific value in the bucket.There are num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 <= i < N-1): scale * (growth_factor ^ i).Lower bound (1 <= i < N): scale * (growth_factor ^ (i - 1)).", "id": "Exponential", "properties": { "growthFactor": { @@ -3636,7 +3683,7 @@ "id": "ForecastOptions", "properties": { "forecastHorizon": { - "description": "Required. The length of time into the future to forecast whether a time series will violate the threshold. If the predicted value is found to violate the threshold, and the violation is observed in all forecasts made for the configured duration, then the time series is considered to be failing.", + "description": "Required. The length of time into the future to forecast whether a time series will violate the threshold. If the predicted value is found to violate the threshold, and the violation is observed in all forecasts made for the configured duration, then the time series is considered to be failing. The forecast horizon can range from 1 hour to 60 hours.", "format": "google-duration", "type": "string" } @@ -3823,14 +3870,20 @@ "description": "The content type header to use for the check. The following configurations result in errors: 1. Content type is specified in both the headers field and the content_type field. 2. Request method is GET and content_type is not TYPE_UNSPECIFIED 3. Request method is POST and content_type is TYPE_UNSPECIFIED. 4. Request method is POST and a \"Content-Type\" header is provided via headers field. The content_type field should be used instead.", "enum": [ "TYPE_UNSPECIFIED", - "URL_ENCODED" + "URL_ENCODED", + "USER_PROVIDED" ], "enumDescriptions": [ "No content type specified.", - "body is in URL-encoded form. Equivalent to setting the Content-Type to application/x-www-form-urlencoded in the HTTP request." + "body is in URL-encoded form. Equivalent to setting the Content-Type to application/x-www-form-urlencoded in the HTTP request.", + "body is in custom_content_type form. Equivalent to setting the Content-Type to the contents of custom_content_type in the HTTP request." ], "type": "string" }, + "customContentType": { + "description": "A user provided content type header to use for the check. The invalid configurations outlined in the content_type field apply to custom_content_type, as well as the following: 1. content_type is URL_ENCODED and custom_content_type is set. 2. content_type is USER_PROVIDED and custom_content_type is not set.", + "type": "string" + }, "headers": { "additionalProperties": { "type": "string" @@ -3881,6 +3934,7 @@ "type": "object" }, "InternalChecker": { + "deprecated": true, "description": "An internal checker allows Uptime checks to run on private/internal GCP resources.", "id": "InternalChecker", "properties": { @@ -4027,7 +4081,7 @@ "type": "object" }, "Linear": { - "description": "Specifies a linear sequence of buckets that all have the same width (except overflow and underflow). Each bucket represents a constant absolute uncertainty on the specific value in the bucket.There are num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 <= i < N-1): offset + (width * i). Lower bound (1 <= i < N): offset + (width * (i - 1)).", + "description": "Specifies a linear sequence of buckets that all have the same width (except overflow and underflow). Each bucket represents a constant absolute uncertainty on the specific value in the bucket.There are num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 <= i < N-1): offset + (width * i).Lower bound (1 <= i < N): offset + (width * (i - 1)).", "id": "Linear", "properties": { "numFiniteBuckets": { @@ -4512,6 +4566,7 @@ "type": "string" }, "launchStage": { + "deprecated": true, "description": "Deprecated. Must use the MetricDescriptor.launch_stage instead.", "enum": [ "LAUNCH_STAGE_UNSPECIFIED", @@ -4608,7 +4663,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", @@ -4629,7 +4684,7 @@ }, "forecastOptions": { "$ref": "ForecastOptions", - "description": "When this field is present, the MetricThreshold condition forecasts whether the time series is predicted to violate the threshold within the forecast_horizion. When this field is not set, the MetricThreshold tests the current value of the timeseries against the threshold." + "description": "When this field is present, the MetricThreshold condition forecasts whether the time series is predicted to violate the threshold within the forecast_horizon. When this field is not set, the MetricThreshold tests the current value of the timeseries against the threshold." }, "thresholdValue": { "description": "A value against which to compare the time series.", @@ -4709,7 +4764,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" } }, @@ -4903,6 +4958,7 @@ "type": "string" }, "supportedTiers": { + "deprecated": true, "description": "The tiers that support this notification channel; the project service tier must be one of the supported_tiers.", "items": { "enum": [ @@ -4926,6 +4982,25 @@ }, "type": "object" }, + "NotificationChannelStrategy": { + "description": "Control over how the notification channels in notification_channels are notified when this alert fires, on a per-channel basis.", + "id": "NotificationChannelStrategy", + "properties": { + "notificationChannelNames": { + "description": "The full REST resource name for the notification channels that these settings apply to. Each of these correspond to the name field in one of the NotificationChannel objects referenced in the notification_channels field of this AlertPolicy. The format is: projects/[PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID] ", + "items": { + "type": "string" + }, + "type": "array" + }, + "renotifyInterval": { + "description": "The frequency at which to send reminder notifications for open incidents.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "NotificationRateLimit": { "description": "Control over the rate of notifications sent to this alert policy's notification channels.", "id": "NotificationRateLimit", @@ -5057,6 +5132,42 @@ }, "type": "object" }, + "PrometheusQueryLanguageCondition": { + "description": "A condition type that allows alert policies to be defined using Prometheus Query Language (PromQL) (https://prometheus.io/docs/prometheus/latest/querying/basics/).The PrometheusQueryLanguageCondition message contains information from a Prometheus alerting rule and its associated rule group.A Prometheus alerting rule is described here (https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/). The semantics of a Prometheus alerting rule is described here (https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/#rule).A Prometheus rule group is described here (https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/). The semantics of a Prometheus rule group is described here (https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/#rule_group).Because Cloud Alerting has no representation of a Prometheus rule group resource, we must embed the information of the parent rule group inside each of the conditions that refer to it. We must also update the contents of all Prometheus alerts in case the information of their rule group changes.The PrometheusQueryLanguageCondition protocol buffer combines the information of the corresponding rule group and alerting rule. The structure of the PrometheusQueryLanguageCondition protocol buffer does NOT mimic the structure of the Prometheus rule group and alerting rule YAML declarations. The PrometheusQueryLanguageCondition protocol buffer may change in the future to support future rule group and/or alerting rule features. There are no new such features at the present time (2023-06-26).", + "id": "PrometheusQueryLanguageCondition", + "properties": { + "alertRule": { + "description": "Optional. The alerting rule name of this alert in the corresponding Prometheus configuration file.Some external tools may require this field to be populated correctly in order to refer to the original Prometheus configuration file. The rule group name and the alert name are necessary to update the relevant AlertPolicies in case the definition of the rule group changes in the future.This field is optional. If this field is not empty, then it must be a valid Prometheus label name (https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels). This field may not exceed 2048 Unicode characters in length.", + "type": "string" + }, + "duration": { + "description": "Optional. Alerts are considered firing once their PromQL expression was evaluated to be \"true\" for this long. Alerts whose PromQL expression was not evaluated to be \"true\" for long enough are considered pending. Must be a non-negative duration or missing. This field is optional. Its default value is zero.", + "format": "google-duration", + "type": "string" + }, + "evaluationInterval": { + "description": "Optional. How often this rule should be evaluated. Must be a positive multiple of 30 seconds or missing. This field is optional. Its default value is 30 seconds. If this PrometheusQueryLanguageCondition was generated from a Prometheus alerting rule, then this value should be taken from the enclosing rule group.", + "format": "google-duration", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels to add to or overwrite in the PromQL query result. Label names must be valid (https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels). Label values can be templatized by using variables (https://cloud.google.com/monitoring/alerts/doc-variables). The only available variable names are the names of the labels in the PromQL result, including \"__name__\" and \"value\". \"labels\" may be empty.", + "type": "object" + }, + "query": { + "description": "Required. The PromQL expression to evaluate. Every evaluation cycle this expression is evaluated at the current time, and all resultant time series become pending/firing alerts. This field must not be empty.", + "type": "string" + }, + "ruleGroup": { + "description": "Optional. The rule group name of this alert in the corresponding Prometheus configuration file.Some external tools may require this field to be populated correctly in order to refer to the original Prometheus configuration file. The rule group name and the alert name are necessary to update the relevant AlertPolicies in case the definition of the rule group changes in the future.This field is optional. If this field is not empty, then it must contain a valid UTF-8 string. This field may not exceed 2048 Unicode characters in length.", + "type": "string" + } + }, + "type": "object" + }, "QueryTimeSeriesRequest": { "description": "The QueryTimeSeries request.", "id": "QueryTimeSeriesRequest", @@ -5424,6 +5535,17 @@ }, "type": "object" }, + "SyntheticMonitorTarget": { + "description": "Describes a Synthetic Monitor to be invoked by Uptime.", + "id": "SyntheticMonitorTarget", + "properties": { + "cloudFunctionV2": { + "$ref": "CloudFunctionV2Target", + "description": "Target a Synthetic Monitor GCFv2 instance." + } + }, + "type": "object" + }, "TcpCheck": { "description": "Information required for a TCP Uptime check request.", "id": "TcpCheck", @@ -5618,6 +5740,10 @@ "description": "A protocol buffer message type.", "id": "Type", "properties": { + "edition": { + "description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", + "type": "string" + }, "fields": { "description": "The list of fields.", "items": { @@ -5651,11 +5777,13 @@ "description": "The source syntax.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax proto2.", - "Syntax proto3." + "Syntax proto3.", + "Syntax editions." ], "type": "string" } @@ -5725,6 +5853,7 @@ "description": "Contains information needed to make an HTTP or HTTPS check." }, "internalCheckers": { + "deprecated": true, "description": "The internal checkers that this check will egress from. If is_internal is true and this list is empty, the check will egress from all the InternalCheckers configured for the project that owns this UptimeCheckConfig.", "items": { "$ref": "InternalChecker" @@ -5732,6 +5861,7 @@ "type": "array" }, "isInternal": { + "deprecated": true, "description": "If this is true, then checks are made only from the 'internal_checkers'. If it is false, then checks are made only from the 'selected_regions'. It is an error to provide 'selected_regions' when is_internal is true, or to provide 'internal_checkers' when is_internal is false.", "type": "boolean" }, @@ -5740,7 +5870,7 @@ "description": "The monitored resource (https://cloud.google.com/monitoring/api/resources) associated with the configuration. The following monitored resource types are valid for this field: uptime_url, gce_instance, gae_app, aws_ec2_instance, aws_elb_load_balancer k8s_service servicedirectory_service cloud_run_revision" }, "name": { - "description": "A unique resource name for this Uptime check configuration. The format is: projects/[PROJECT_ID_OR_NUMBER]/uptimeCheckConfigs/[UPTIME_CHECK_ID] [PROJECT_ID_OR_NUMBER] is the Workspace host project associated with the Uptime check.This field should be omitted when creating the Uptime check configuration; on create, the resource name is assigned by the server and included in the response.", + "description": "Identifier. A unique resource name for this Uptime check configuration. The format is: projects/[PROJECT_ID_OR_NUMBER]/uptimeCheckConfigs/[UPTIME_CHECK_ID] [PROJECT_ID_OR_NUMBER] is the Workspace host project associated with the Uptime check.This field should be omitted when creating the Uptime check configuration; on create, the resource name is assigned by the server and included in the response.", "type": "string" }, "period": { @@ -5760,19 +5890,29 @@ "USA", "EUROPE", "SOUTH_AMERICA", - "ASIA_PACIFIC" + "ASIA_PACIFIC", + "USA_OREGON", + "USA_IOWA", + "USA_VIRGINIA" ], "enumDescriptions": [ "Default value if no region is specified. Will result in Uptime checks running from all regions.", "Allows checks to run from locations within the United States of America.", "Allows checks to run from locations within the continent of Europe.", "Allows checks to run from locations within the continent of South America.", - "Allows checks to run from locations within the Asia Pacific area (ex: Singapore)." + "Allows checks to run from locations within the Asia Pacific area (ex: Singapore).", + "Allows checks to run from locations within the western United States of America", + "Allows checks to run from locations within the central United States of America", + "Allows checks to run from locations within the eastern United States of America" ], "type": "string" }, "type": "array" }, + "syntheticMonitor": { + "$ref": "SyntheticMonitorTarget", + "description": "Specifies a Synthetic Monitor to invoke." + }, "tcpCheck": { "$ref": "TcpCheck", "description": "Contains information needed to make a TCP check." @@ -5811,14 +5951,20 @@ "USA", "EUROPE", "SOUTH_AMERICA", - "ASIA_PACIFIC" + "ASIA_PACIFIC", + "USA_OREGON", + "USA_IOWA", + "USA_VIRGINIA" ], "enumDescriptions": [ "Default value if no region is specified. Will result in Uptime checks running from all regions.", "Allows checks to run from locations within the United States of America.", "Allows checks to run from locations within the continent of Europe.", "Allows checks to run from locations within the continent of South America.", - "Allows checks to run from locations within the Asia Pacific area (ex: Singapore)." + "Allows checks to run from locations within the Asia Pacific area (ex: Singapore).", + "Allows checks to run from locations within the western United States of America", + "Allows checks to run from locations within the central United States of America", + "Allows checks to run from locations within the eastern United States of America" ], "type": "string" } diff --git a/etc/api/mybusinessaccountmanagement/v1/mybusinessaccountmanagement-api.json b/etc/api/mybusinessaccountmanagement/v1/mybusinessaccountmanagement-api.json index 59615ebd22..b75b0df9c3 100644 --- a/etc/api/mybusinessaccountmanagement/v1/mybusinessaccountmanagement-api.json +++ b/etc/api/mybusinessaccountmanagement/v1/mybusinessaccountmanagement-api.json @@ -530,7 +530,7 @@ } } }, - "revision": "20230124", + "revision": "20240304", "rootUrl": "https://mybusinessaccountmanagement.googleapis.com/", "schemas": { "AcceptInvitationRequest": { diff --git a/etc/api/mybusinessbusinessinformation/v1/mybusinessbusinessinformation-api.json b/etc/api/mybusinessbusinessinformation/v1/mybusinessbusinessinformation-api.json index 2c7c3c1bde..b83cd062ab 100644 --- a/etc/api/mybusinessbusinessinformation/v1/mybusinessbusinessinformation-api.json +++ b/etc/api/mybusinessbusinessinformation/v1/mybusinessbusinessinformation-api.json @@ -414,56 +414,6 @@ }, "locations": { "methods": { - "associate": { - "description": "Associates a location to a place ID. Any previous association is overwritten. This operation is only valid if the location is unverified. The association must be valid, that is, it appears in the list of `SearchGoogleLocations`.", - "flatPath": "v1/locations/{locationsId}:associate", - "httpMethod": "POST", - "id": "mybusinessbusinessinformation.locations.associate", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The resource name of the location to associate.", - "location": "path", - "pattern": "^locations/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+name}:associate", - "request": { - "$ref": "AssociateLocationRequest" - }, - "response": { - "$ref": "Empty" - } - }, - "clearLocationAssociation": { - "description": "Clears an association between a location and its place ID. This operation is only valid if the location is unverified.", - "flatPath": "v1/locations/{locationsId}:clearLocationAssociation", - "httpMethod": "POST", - "id": "mybusinessbusinessinformation.locations.clearLocationAssociation", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The resource name of the location to disassociate.", - "location": "path", - "pattern": "^locations/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+name}:clearLocationAssociation", - "request": { - "$ref": "ClearLocationAssociationRequest" - }, - "response": { - "$ref": "Empty" - } - }, "delete": { "description": "Deletes a location. If this location cannot be deleted using the API and it is marked so in the `google.mybusiness.businessinformation.v1.LocationState`, use the [Google Business Profile](https://business.google.com/manage/) website.", "flatPath": "v1/locations/{locationsId}", @@ -662,7 +612,7 @@ } } }, - "revision": "20230124", + "revision": "20240304", "rootUrl": "https://mybusinessbusinessinformation.googleapis.com/", "schemas": { "AdWordsLocationExtensions": { @@ -676,17 +626,6 @@ }, "type": "object" }, - "AssociateLocationRequest": { - "description": "Request message for Locations.AssociateLocationRequest.", - "id": "AssociateLocationRequest", - "properties": { - "placeId": { - "description": "The association to establish. If not set, it indicates no match.", - "type": "string" - } - }, - "type": "object" - }, "Attribute": { "description": "A location attribute. Attributes provide additional information about a location. The attributes that can be set on a location may vary based on the properties of that location (for example, category). Available attributes are determined by Google and may be added and removed without API changes.", "id": "Attribute", @@ -954,12 +893,6 @@ }, "type": "object" }, - "ClearLocationAssociationRequest": { - "description": "Request message for Locations.ClearLocationAssociationRequest.", - "id": "ClearLocationAssociationRequest", - "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", @@ -1131,7 +1064,7 @@ "type": "string" }, "totalSize": { - "description": "The approximate number of Locations in the list irrespective of pagination.", + "description": "The approximate number of Locations in the list irrespective of pagination. This field will only be returned if `filter` is used as a query parameter.", "format": "int32", "type": "integer" } @@ -1222,7 +1155,7 @@ }, "storefrontAddress": { "$ref": "PostalAddress", - "description": "Optional. A precise, accurate address to describe your business location. PO boxes or mailboxes located at remote locations are not acceptable. At this time, you can specify a maximum of five `address_lines` values in the address. This field should only be set for businesses that have a storefront. This field should not be set for locations of type `CUSTOMER_LOCATION_ONLY`." + "description": "Optional. A precise, accurate address to describe your business location. PO boxes or mailboxes located at remote locations are not acceptable. At this time, you can specify a maximum of five `address_lines` values in the address. This field should only be set for businesses that have a storefront. This field should not be set for locations of type `CUSTOMER_LOCATION_ONLY` but if set, any value provided will be discarded." }, "title": { "description": "Required. Location name should reflect your business's real-world name, as used consistently on your storefront, website, and stationery, and as known to customers. Any additional information, when relevant, can be included in other fields of the resource (for example, `Address`, `Categories`). Don't add unnecessary information to your name (for example, prefer \"Google\" over \"Google Inc. - Mountain View Corporate Headquarters\"). Don't include marketing taglines, store codes, special characters, hours or closed/open status, phone numbers, website URLs, service/product information, location/address or directions, or containment information (for example, \"Chase ATM in Duane Reade\").", diff --git a/etc/api/mybusinesslodging/v1/mybusinesslodging-api.json b/etc/api/mybusinesslodging/v1/mybusinesslodging-api.json index 9490287343..0d7d628a6a 100644 --- a/etc/api/mybusinesslodging/v1/mybusinesslodging-api.json +++ b/etc/api/mybusinesslodging/v1/mybusinesslodging-api.json @@ -171,7 +171,7 @@ ], "parameters": { "name": { - "description": "Required. Google identifier for this location in the form: `accounts/{account_id}/locations/{location_id}/lodging`", + "description": "Required. Google identifier for this location in the form: `locations/{location_id}/lodging`", "location": "path", "pattern": "^locations/[^/]+/lodging$", "required": true, @@ -194,7 +194,7 @@ } } }, - "revision": "20230124", + "revision": "20240304", "rootUrl": "https://mybusinesslodging.googleapis.com/", "schemas": { "Accessibility": { @@ -787,7 +787,8 @@ "type": "object" }, "EcoCertification": { - "description": "An eco certificate awarded to the hotel.", + "deprecated": true, + "description": "An eco certificate awarded to the hotel. Deprecated: this message is no longer populated. All certification data is now provided by BeCause.", "id": "EcoCertification", "properties": { "awarded": { @@ -982,7 +983,7 @@ "type": "string" }, "greenBuildingDesign": { - "description": "Output only. Green building design. True if BREEAM-* or LEED-* certified.", + "description": "Output only. Green building design. True if the property has been awarded a relevant certification.", "readOnly": true, "type": "boolean" }, @@ -4935,7 +4936,8 @@ }, "sustainabilityCertifications": { "$ref": "SustainabilityCertifications", - "description": "Sustainability certifications the hotel has been awarded." + "deprecated": true, + "description": "Sustainability certifications the hotel has been awarded. Deprecated: this field is no longer populated. All certification data is now provided by BeCause." }, "sustainableSourcing": { "$ref": "SustainableSourcing", @@ -4953,7 +4955,8 @@ "type": "object" }, "SustainabilityCertifications": { - "description": "Sustainability certifications the hotel has been awarded.", + "deprecated": true, + "description": "Sustainability certifications the hotel has been awarded. Deprecated: this message is no longer populated. All certification data is now provided by BeCause.", "id": "SustainabilityCertifications", "properties": { "breeamCertification": { @@ -5002,7 +5005,7 @@ "type": "array" }, "leedCertification": { - "description": "LEED certification. Deprecated: this field is no longer populated. LEED certification status is now provided directly by USGBC.", + "description": "LEED certification.", "enum": [ "LEED_CERTIFICATION_UNSPECIFIED", "NO_LEED_CERTIFICATION", @@ -5022,7 +5025,7 @@ "type": "string" }, "leedCertificationException": { - "description": "LEED certification exception. Deprecated: this field is no longer populated. LEED certification status is now provided directly by USGBC.", + "description": "LEED certification exception.", "enum": [ "EXCEPTION_UNSPECIFIED", "UNDER_CONSTRUCTION", diff --git a/etc/api/mybusinessnotifications/v1/mybusinessnotifications-api.json b/etc/api/mybusinessnotifications/v1/mybusinessnotifications-api.json index 159f4850fb..494925c699 100644 --- a/etc/api/mybusinessnotifications/v1/mybusinessnotifications-api.json +++ b/etc/api/mybusinessnotifications/v1/mybusinessnotifications-api.json @@ -154,7 +154,7 @@ } } }, - "revision": "20230124", + "revision": "20240304", "rootUrl": "https://mybusinessnotifications.googleapis.com/", "schemas": { "NotificationSetting": { @@ -182,6 +182,20 @@ "LOSS_OF_VOICE_OF_MERCHANT", "VOICE_OF_MERCHANT_UPDATED" ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true, + false + ], "enumDescriptions": [ "No notification type. Will not match any notifications.", "The location has Google updates for review. The location_name field on the notification will provide the resource name of the location with Google updates.", diff --git a/etc/api/mybusinessplaceactions/v1/mybusinessplaceactions-api.json b/etc/api/mybusinessplaceactions/v1/mybusinessplaceactions-api.json index 380b7e95af..0517f679a9 100644 --- a/etc/api/mybusinessplaceactions/v1/mybusinessplaceactions-api.json +++ b/etc/api/mybusinessplaceactions/v1/mybusinessplaceactions-api.json @@ -281,7 +281,7 @@ } } }, - "revision": "20230124", + "revision": "20240304", "rootUrl": "https://mybusinessplaceactions.googleapis.com/", "schemas": { "Empty": { diff --git a/etc/api/mybusinessqanda/v1/mybusinessqanda-api.json b/etc/api/mybusinessqanda/v1/mybusinessqanda-api.json index 6d5c4a1a5e..c4a2862553 100644 --- a/etc/api/mybusinessqanda/v1/mybusinessqanda-api.json +++ b/etc/api/mybusinessqanda/v1/mybusinessqanda-api.json @@ -323,7 +323,7 @@ } } }, - "revision": "20230124", + "revision": "20240304", "rootUrl": "https://mybusinessqanda.googleapis.com/", "schemas": { "Answer": { diff --git a/etc/api/mybusinessverifications/v1/mybusinessverifications-api.json b/etc/api/mybusinessverifications/v1/mybusinessverifications-api.json index be6f21beb3..e3ea42dfa0 100644 --- a/etc/api/mybusinessverifications/v1/mybusinessverifications-api.json +++ b/etc/api/mybusinessverifications/v1/mybusinessverifications-api.json @@ -235,28 +235,9 @@ } } } - }, - "verificationTokens": { - "methods": { - "generate": { - "description": "Generates a token for the provided location data as a vetted [partner](https://support.google.com/business/answer/7674102). Throws PERMISSION_DENIED if the caller is not a vetted partner account. Throws FAILED_PRECONDITION if the caller's VettedStatus is INVALID.", - "flatPath": "v1/verificationTokens:generate", - "httpMethod": "POST", - "id": "mybusinessverifications.verificationTokens.generate", - "parameterOrder": [], - "parameters": {}, - "path": "v1/verificationTokens:generate", - "request": { - "$ref": "GenerateVerificationTokenRequest" - }, - "response": { - "$ref": "GenerateVerificationTokenResponse" - } - } - } } }, - "revision": "20230124", + "revision": "20240304", "rootUrl": "https://mybusinessverifications.googleapis.com/", "schemas": { "AddressVerificationData": { @@ -370,28 +351,6 @@ }, "type": "object" }, - "GenerateVerificationTokenRequest": { - "description": "Request message for Verifications.GenerateVerificationToken.", - "id": "GenerateVerificationTokenRequest", - "properties": { - "location": { - "$ref": "Location", - "description": "Required. The target location. Note: The location information should exactly match the target Location, otherwise the generated verification token won't be able to verify the target Location." - } - }, - "type": "object" - }, - "GenerateVerificationTokenResponse": { - "description": "Response message for Verifications.GenerateVerificationToken.", - "id": "GenerateVerificationTokenResponse", - "properties": { - "token": { - "$ref": "VerificationToken", - "description": "The generated token to verify the location." - } - }, - "type": "object" - }, "ListVerificationsResponse": { "description": "Response message for Verifications.ListVerifications.", "id": "ListVerificationsResponse", @@ -410,33 +369,6 @@ }, "type": "object" }, - "Location": { - "description": "A subset of location info. See the [help center article] (https://support.google.com/business/answer/3038177) for a detailed description of these fields, or the [category endpoint](/my-business/reference/rest/v4/categories) for a list of valid business categories.", - "id": "Location", - "properties": { - "address": { - "$ref": "PostalAddress", - "description": "Required. A precise, accurate address to describe your business location. PO boxes or mailboxes located at remote locations are not acceptable. At this time, you can specify a maximum of five `address_lines` values in the address." - }, - "name": { - "description": "Required. Location name should reflect your business's real-world name, as used consistently on your storefront, website, and stationery, and as known to customers. Any additional information, when relevant, can be included in other fields of the resource (for example, `Address`, `Categories`). Don't add unnecessary information to your name (for example, prefer \"Google\" over \"Google Inc. - Mountain View Corporate Headquarters\"). Don't include marketing taglines, store codes, special characters, hours or closed/open status, phone numbers, website URLs, service/product information, location/address or directions, or containment information (for example, \"Chase ATM in Duane Reade\").", - "type": "string" - }, - "primaryCategoryId": { - "description": "Required. Id of the category that best describes the core business this location engages in. e.g. gcid:bakery.", - "type": "string" - }, - "primaryPhone": { - "description": "Optional. A phone number that connects to your individual business location as directly as possible. Use a local phone number instead of a central, call center helpline number whenever possible.", - "type": "string" - }, - "websiteUri": { - "description": "Optional. A URL for this business. If possible, use a URL that represents this individual business location instead of a generic website/URL that represents all locations, or the brand.", - "type": "string" - } - }, - "type": "object" - }, "PostalAddress": { "description": "Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an internationalization-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478", "id": "PostalAddress", @@ -516,6 +448,10 @@ "description": "A verification represents a verification attempt on a location.", "id": "Verification", "properties": { + "announcement": { + "description": "Optional. Response announcement set only if the method is VETTED_PARTNER.", + "type": "string" + }, "createTime": { "description": "The timestamp when the verification is requested.", "format": "google-datetime", @@ -539,7 +475,7 @@ "Make a phone call with a verification PIN to a specific phone number. The PIN is used to complete verification with Google.", "Send an SMS with a verification PIN to a specific phone number. The PIN is used to complete verification with Google.", "Verify the location without additional user action. This option may not be available for all locations.", - "Used for vetted [partners](https://support.google.com/business/answer/7674102). This option may not be available for all locations." + "This option may not be available for all locations." ], "type": "string" }, @@ -574,6 +510,10 @@ "$ref": "AddressVerificationData", "description": "Set only if the method is MAIL." }, + "announcement": { + "description": "Set only if the method is VETTED_PARTNER.", + "type": "string" + }, "emailData": { "$ref": "EmailVerificationData", "description": "Set only if the method is EMAIL." @@ -600,7 +540,7 @@ "Make a phone call with a verification PIN to a specific phone number. The PIN is used to complete verification with Google.", "Send an SMS with a verification PIN to a specific phone number. The PIN is used to complete verification with Google.", "Verify the location without additional user action. This option may not be available for all locations.", - "Used for vetted [partners](https://support.google.com/business/answer/7674102). This option may not be available for all locations." + "This option may not be available for all locations." ], "type": "string" } @@ -667,7 +607,7 @@ "Make a phone call with a verification PIN to a specific phone number. The PIN is used to complete verification with Google.", "Send an SMS with a verification PIN to a specific phone number. The PIN is used to complete verification with Google.", "Verify the location without additional user action. This option may not be available for all locations.", - "Used for vetted [partners](https://support.google.com/business/answer/7674102). This option may not be available for all locations." + "This option may not be available for all locations." ], "type": "string" }, diff --git a/etc/api/networkconnectivity/v1/networkconnectivity-api.json b/etc/api/networkconnectivity/v1/networkconnectivity-api.json index df6f17e5da..ab1012803a 100644 --- a/etc/api/networkconnectivity/v1/networkconnectivity-api.json +++ b/etc/api/networkconnectivity/v1/networkconnectivity-api.json @@ -181,6 +181,34 @@ "resources": { "hubs": { "methods": { + "acceptSpoke": { + "description": "Accepts a proposal to attach a Network Connectivity Center spoke to a hub.", + "flatPath": "v1/projects/{projectsId}/locations/global/hubs/{hubsId}:acceptSpoke", + "httpMethod": "POST", + "id": "networkconnectivity.projects.locations.global.hubs.acceptSpoke", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the hub into which to accept the spoke.", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/hubs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:acceptSpoke", + "request": { + "$ref": "AcceptHubSpokeRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a new Network Connectivity Center hub in the specified project.", "flatPath": "v1/projects/{projectsId}/locations/global/hubs", @@ -203,7 +231,7 @@ "type": "string" }, "requestId": { - "description": "Optional. A unique request ID (optional). If you specify this ID, you can use it in cases when you need to retry your request. When you need to retry, this ID lets the server know that it 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 to see whether the original operation was received. If it was, the server ignores the second request. This behavior prevents clients from mistakenly creating 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 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 to see whether the original operation was received. If it was, the server ignores the second request. This behavior prevents clients from mistakenly creating duplicate commitments. The request ID must be a valid UUID, with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -236,7 +264,7 @@ "type": "string" }, "requestId": { - "description": "Optional. A unique request ID (optional). If you specify this ID, you can use it in cases when you need to retry your request. When you need to retry, this ID lets the server know that it 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 to see whether the original operation was received. If it was, the server ignores the second request. This behavior prevents clients from mistakenly creating 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 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 to see whether the original operation was received. If it was, the server ignores the second request. This behavior prevents clients from mistakenly creating duplicate commitments. The request ID must be a valid UUID, with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -315,7 +343,7 @@ ], "parameters": { "filter": { - "description": "An expression that filters the results listed in the response.", + "description": "An expression that filters the list of results.", "location": "query", "type": "string" }, @@ -325,7 +353,7 @@ "type": "string" }, "pageSize": { - "description": "The maximum number of results per page that should be returned.", + "description": "The maximum number of results per page to return.", "format": "int32", "location": "query", "type": "integer" @@ -351,6 +379,73 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "listSpokes": { + "description": "Lists the Network Connectivity Center spokes associated with a specified hub and location. The list includes both spokes that are attached to the hub and spokes that have been proposed but not yet accepted.", + "flatPath": "v1/projects/{projectsId}/locations/global/hubs/{hubsId}:listSpokes", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.global.hubs.listSpokes", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "An expression that filters the list of results.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The name of the hub.", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/hubs/[^/]+$", + "required": true, + "type": "string" + }, + "orderBy": { + "description": "Sort the results by name or create_time.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of results to return per page.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The page token.", + "location": "query", + "type": "string" + }, + "spokeLocations": { + "description": "A list of locations. Specify one of the following: `[global]`, a single region (for example, `[us-central1]`), or a combination of values (for example, `[global, us-central1, us-west1]`). If the spoke_locations field is populated, the list of results includes only spokes in the specified location. If the spoke_locations field is not populated, the list of results includes spokes in all locations.", + "location": "query", + "repeated": true, + "type": "string" + }, + "view": { + "description": "The view of the spoke to return. The view that you use determines which spoke fields are included in the response.", + "enum": [ + "SPOKE_VIEW_UNSPECIFIED", + "BASIC", + "DETAILED" + ], + "enumDescriptions": [ + "The spoke view is unspecified. When the spoke view is unspecified, the API returns the same fields as the `BASIC` view.", + "Includes `name`, `create_time`, `hub`, `unique_id`, `state`, `reasons`, and `spoke_type`. This is the default value.", + "Includes all spoke fields except `labels`. You can use the `DETAILED` view only when you set the `spoke_locations` field to `[global]`." + ], + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}:listSpokes", + "response": { + "$ref": "ListHubSpokesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "patch": { "description": "Updates the description and/or labels of a Network Connectivity Center hub.", "flatPath": "v1/projects/{projectsId}/locations/global/hubs/{hubsId}", @@ -368,7 +463,7 @@ "type": "string" }, "requestId": { - "description": "Optional. A unique request ID (optional). If you specify this ID, you can use it in cases when you need to retry your request. When you need to retry, this ID lets the server know that it 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 to see whether the original operation was received. If it was, the server ignores the second request. This behavior prevents clients from mistakenly creating 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 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 to see whether the original operation was received. If it was, the server ignores the second request. This behavior prevents clients from mistakenly creating duplicate commitments. The request ID must be a valid UUID, with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -390,6 +485,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "rejectSpoke": { + "description": "Rejects a Network Connectivity Center spoke from being attached to a hub. If the spoke was previously in the `ACTIVE` state, it transitions to the `INACTIVE` state and is no longer able to connect to other spokes that are attached to the hub.", + "flatPath": "v1/projects/{projectsId}/locations/global/hubs/{hubsId}:rejectSpoke", + "httpMethod": "POST", + "id": "networkconnectivity.projects.locations.global.hubs.rejectSpoke", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the hub from which to reject the spoke.", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/hubs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:rejectSpoke", + "request": { + "$ref": "RejectHubSpokeRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "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/global/hubs/{hubsId}:setIamPolicy", @@ -446,10 +569,419 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "groups": { + "methods": { + "get": { + "description": "Gets details about a Network Connectivity Center group.", + "flatPath": "v1/projects/{projectsId}/locations/global/hubs/{hubsId}/groups/{groupsId}", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.global.hubs.groups.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the route table resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/hubs/[^/]+/groups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Group" + }, + "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/global/hubs/{hubsId}/groups/{groupsId}:getIamPolicy", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.global.hubs.groups.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/global/hubs/[^/]+/groups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists groups in a given hub.", + "flatPath": "v1/projects/{projectsId}/locations/global/hubs/{hubsId}/groups", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.global.hubs.groups.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "An expression that filters the list of results.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Sort the results by a certain order.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of results to return per page.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource's name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/hubs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/groups", + "response": { + "$ref": "ListGroupsResponse" + }, + "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/global/hubs/{hubsId}/groups/{groupsId}:setIamPolicy", + "httpMethod": "POST", + "id": "networkconnectivity.projects.locations.global.hubs.groups.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/global/hubs/[^/]+/groups/[^/]+$", + "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/global/hubs/{hubsId}/groups/{groupsId}:testIamPermissions", + "httpMethod": "POST", + "id": "networkconnectivity.projects.locations.global.hubs.groups.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/global/hubs/[^/]+/groups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "routeTables": { + "methods": { + "get": { + "description": "Gets details about a Network Connectivity Center route table.", + "flatPath": "v1/projects/{projectsId}/locations/global/hubs/{hubsId}/routeTables/{routeTablesId}", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.global.hubs.routeTables.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the route table resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/hubs/[^/]+/routeTables/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "RouteTable" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "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", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "An expression that filters the list of results.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Sort the results by a certain order.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of results to return per page.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource's name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/hubs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/routeTables", + "response": { + "$ref": "ListRouteTablesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "routes": { + "methods": { + "get": { + "description": "Gets details about the specified route.", + "flatPath": "v1/projects/{projectsId}/locations/global/hubs/{hubsId}/routeTables/{routeTablesId}/routes/{routesId}", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.global.hubs.routeTables.routes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the route resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/hubs/[^/]+/routeTables/[^/]+/routes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Route" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "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", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "An expression that filters the list of results.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Sort the results by a certain order.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of results to return per page.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource's name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/hubs/[^/]+/routeTables/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/routes", + "response": { + "$ref": "ListRoutesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } } }, "policyBasedRoutes": { "methods": { + "create": { + "description": "Creates a new policy-based route in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/global/policyBasedRoutes", + "httpMethod": "POST", + "id": "networkconnectivity.projects.locations.global.policyBasedRoutes.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource's name of the PolicyBasedRoute.", + "location": "path", + "pattern": "^projects/[^/]+/locations/global$", + "required": true, + "type": "string" + }, + "policyBasedRouteId": { + "description": "Required. Unique id for the policy-based route to create.", + "location": "query", + "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}/policyBasedRoutes", + "request": { + "$ref": "PolicyBasedRoute" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single policy-based route.", + "flatPath": "v1/projects/{projectsId}/locations/global/policyBasedRoutes/{policyBasedRoutesId}", + "httpMethod": "DELETE", + "id": "networkconnectivity.projects.locations.global.policyBasedRoutes.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the policy-based route resource to delete.", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/policyBasedRoutes/[^/]+$", + "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": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single policy-based route.", + "flatPath": "v1/projects/{projectsId}/locations/global/policyBasedRoutes/{policyBasedRoutesId}", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.global.policyBasedRoutes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the PolicyBasedRoute resource to get.", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/policyBasedRoutes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "PolicyBasedRoute" + }, + "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/global/policyBasedRoutes/{policyBasedRoutesId}:getIamPolicy", @@ -481,6 +1013,52 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "Lists policy-based routes in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/global/policyBasedRoutes", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.global.policyBasedRoutes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters the results listed in the response.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Sort the results by a certain order.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of results per page that should be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource's name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/global$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/policyBasedRoutes", + "response": { + "$ref": "ListPolicyBasedRoutesResponse" + }, + "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/global/policyBasedRoutes/{policyBasedRoutesId}:setIamPolicy", @@ -565,7 +1143,7 @@ "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "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" } @@ -598,7 +1176,7 @@ "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "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" } @@ -699,7 +1277,7 @@ "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "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" }, @@ -804,7 +1382,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "networkconnectivity.projects.locations.operations.list", @@ -848,6 +1426,66 @@ }, "serviceClasses": { "methods": { + "delete": { + "description": "Deletes a single ServiceClass.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceClasses/{serviceClassesId}", + "httpMethod": "DELETE", + "id": "networkconnectivity.projects.locations.serviceClasses.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "Optional. The etag is computed by the server, 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 ServiceClass to delete.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceClasses/[^/]+$", + "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": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single ServiceClass.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceClasses/{serviceClassesId}", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.serviceClasses.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the ServiceClass to get.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceClasses/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ServiceClass" + }, + "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}/serviceClasses/{serviceClassesId}:getIamPolicy", @@ -879,6 +1517,91 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "Lists ServiceClasses in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceClasses", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.serviceClasses.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters the results listed in the response.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Sort the results by a certain order.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of results per page that should be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource's name. ex. projects/123/locations/us-east1", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/serviceClasses", + "response": { + "$ref": "ListServiceClassesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single ServiceClass.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceClasses/{serviceClassesId}", + "httpMethod": "PATCH", + "id": "networkconnectivity.projects.locations.serviceClasses.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. The name of a ServiceClass resource. Format: projects/{project}/locations/{location}/serviceClasses/{service_class} See: https://google.aip.dev/122#fields-representing-resource-names", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceClasses/[^/]+$", + "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": "Optional. Field mask is used to specify the fields to be overwritten in the ServiceClass 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": "ServiceClass" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "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}/serviceClasses/{serviceClassesId}:setIamPolicy", @@ -939,6 +1662,104 @@ }, "serviceConnectionMaps": { "methods": { + "create": { + "description": "Creates a new ServiceConnectionMap in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceConnectionMaps", + "httpMethod": "POST", + "id": "networkconnectivity.projects.locations.serviceConnectionMaps.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource's name of the ServiceConnectionMap. ex. projects/123/locations/us-east1", + "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" + }, + "serviceConnectionMapId": { + "description": "Optional. Resource ID (i.e. 'foo' in '[...]/projects/p/locations/l/serviceConnectionMaps/foo') See https://google.aip.dev/122#resource-id-segments Unique per location. If one is not provided, one will be generated.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/serviceConnectionMaps", + "request": { + "$ref": "ServiceConnectionMap" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single ServiceConnectionMap.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceConnectionMaps/{serviceConnectionMapsId}", + "httpMethod": "DELETE", + "id": "networkconnectivity.projects.locations.serviceConnectionMaps.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "Optional. The etag is computed by the server, 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 ServiceConnectionMap to delete.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceConnectionMaps/[^/]+$", + "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": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single ServiceConnectionMap.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceConnectionMaps/{serviceConnectionMapsId}", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.serviceConnectionMaps.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the ServiceConnectionMap to get.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceConnectionMaps/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ServiceConnectionMap" + }, + "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}/serviceConnectionMaps/{serviceConnectionMapsId}:getIamPolicy", @@ -970,6 +1791,91 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "Lists ServiceConnectionMaps in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceConnectionMaps", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.serviceConnectionMaps.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters the results listed in the response.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Sort the results by a certain order.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of results per page that should be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource's name. ex. projects/123/locations/us-east1", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/serviceConnectionMaps", + "response": { + "$ref": "ListServiceConnectionMapsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single ServiceConnectionMap.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceConnectionMaps/{serviceConnectionMapsId}", + "httpMethod": "PATCH", + "id": "networkconnectivity.projects.locations.serviceConnectionMaps.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. The name of a ServiceConnectionMap. Format: projects/{project}/locations/{location}/serviceConnectionMaps/{service_connection_map} See: https://google.aip.dev/122#fields-representing-resource-names", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceConnectionMaps/[^/]+$", + "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": "Optional. Field mask is used to specify the fields to be overwritten in the ServiceConnectionMap 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": "ServiceConnectionMap" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "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}/serviceConnectionMaps/{serviceConnectionMapsId}:setIamPolicy", @@ -1030,6 +1936,104 @@ }, "serviceConnectionPolicies": { "methods": { + "create": { + "description": "Creates a new ServiceConnectionPolicy in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceConnectionPolicies", + "httpMethod": "POST", + "id": "networkconnectivity.projects.locations.serviceConnectionPolicies.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource's name of the ServiceConnectionPolicy. ex. projects/123/locations/us-east1", + "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" + }, + "serviceConnectionPolicyId": { + "description": "Optional. Resource ID (i.e. 'foo' in '[...]/projects/p/locations/l/serviceConnectionPolicies/foo') See https://google.aip.dev/122#resource-id-segments Unique per location.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/serviceConnectionPolicies", + "request": { + "$ref": "ServiceConnectionPolicy" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single ServiceConnectionPolicy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceConnectionPolicies/{serviceConnectionPoliciesId}", + "httpMethod": "DELETE", + "id": "networkconnectivity.projects.locations.serviceConnectionPolicies.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "Optional. The etag is computed by the server, 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 ServiceConnectionPolicy to delete.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceConnectionPolicies/[^/]+$", + "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": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single ServiceConnectionPolicy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceConnectionPolicies/{serviceConnectionPoliciesId}", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.serviceConnectionPolicies.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the ServiceConnectionPolicy to get.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceConnectionPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ServiceConnectionPolicy" + }, + "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}/serviceConnectionPolicies/{serviceConnectionPoliciesId}:getIamPolicy", @@ -1061,6 +2065,91 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "Lists ServiceConnectionPolicies in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceConnectionPolicies", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.serviceConnectionPolicies.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters the results listed in the response.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Sort the results by a certain order.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of results per page that should be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource's name. ex. projects/123/locations/us-east1", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/serviceConnectionPolicies", + "response": { + "$ref": "ListServiceConnectionPoliciesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single ServiceConnectionPolicy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceConnectionPolicies/{serviceConnectionPoliciesId}", + "httpMethod": "PATCH", + "id": "networkconnectivity.projects.locations.serviceConnectionPolicies.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. The name of a ServiceConnectionPolicy. Format: projects/{project}/locations/{location}/serviceConnectionPolicies/{service_connection_policy} See: https://google.aip.dev/122#fields-representing-resource-names", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceConnectionPolicies/[^/]+$", + "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": "Optional. Field mask is used to specify the fields to be overwritten in the ServiceConnectionPolicy 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": "ServiceConnectionPolicy" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "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}/serviceConnectionPolicies/{serviceConnectionPoliciesId}:setIamPolicy", @@ -1119,6 +2208,154 @@ } } }, + "serviceConnectionTokens": { + "methods": { + "create": { + "description": "Creates a new ServiceConnectionToken in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceConnectionTokens", + "httpMethod": "POST", + "id": "networkconnectivity.projects.locations.serviceConnectionTokens.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource's name of the ServiceConnectionToken. ex. projects/123/locations/us-east1", + "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" + }, + "serviceConnectionTokenId": { + "description": "Optional. Resource ID (i.e. 'foo' in '[...]/projects/p/locations/l/ServiceConnectionTokens/foo') See https://google.aip.dev/122#resource-id-segments Unique per location. If one is not provided, one will be generated.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/serviceConnectionTokens", + "request": { + "$ref": "ServiceConnectionToken" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single ServiceConnectionToken.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceConnectionTokens/{serviceConnectionTokensId}", + "httpMethod": "DELETE", + "id": "networkconnectivity.projects.locations.serviceConnectionTokens.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "Optional. The etag is computed by the server, 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 ServiceConnectionToken to delete.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceConnectionTokens/[^/]+$", + "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": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single ServiceConnectionToken.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceConnectionTokens/{serviceConnectionTokensId}", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.serviceConnectionTokens.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the ServiceConnectionToken to get.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceConnectionTokens/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ServiceConnectionToken" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists ServiceConnectionTokens in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceConnectionTokens", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.serviceConnectionTokens.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters the results listed in the response.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Sort the results by a certain order.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of results per page that should be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource's name. ex. projects/123/locations/us-east1", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/serviceConnectionTokens", + "response": { + "$ref": "ListServiceConnectionTokensResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "spokes": { "methods": { "create": { @@ -1138,7 +2375,7 @@ "type": "string" }, "requestId": { - "description": "Optional. A unique request ID (optional). If you specify this ID, you can use it in cases when you need to retry your request. When you need to retry, this ID lets the server know that it 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 to see whether the original operation was received. If it was, the server ignores the second request. This behavior prevents clients from mistakenly creating 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 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 to see whether the original operation was received. If it was, the server ignores the second request. This behavior prevents clients from mistakenly creating duplicate commitments. The request ID must be a valid UUID, with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -1176,7 +2413,7 @@ "type": "string" }, "requestId": { - "description": "Optional. A unique request ID (optional). If you specify this ID, you can use it in cases when you need to retry your request. When you need to retry, this ID lets the server know that it 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 to see whether the original operation was received. If it was, the server ignores the second request. This behavior prevents clients from mistakenly creating 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 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 to see whether the original operation was received. If it was, the server ignores the second request. This behavior prevents clients from mistakenly creating duplicate commitments. The request ID must be a valid UUID, with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -1255,7 +2492,7 @@ ], "parameters": { "filter": { - "description": "An expression that filters the results listed in the response.", + "description": "An expression that filters the list of results.", "location": "query", "type": "string" }, @@ -1265,7 +2502,7 @@ "type": "string" }, "pageSize": { - "description": "The maximum number of results per page that should be returned.", + "description": "The maximum number of results to return per page.", "format": "int32", "location": "query", "type": "integer" @@ -1308,7 +2545,7 @@ "type": "string" }, "requestId": { - "description": "Optional. A unique request ID (optional). If you specify this ID, you can use it in cases when you need to retry your request. When you need to retry, this ID lets the server know that it 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 to see whether the original operation was received. If it was, the server ignores the second request. This behavior prevents clients from mistakenly creating 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 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 to see whether the original operation was received. If it was, the server ignores the second request. This behavior prevents clients from mistakenly creating duplicate commitments. The request ID must be a valid UUID, with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -1393,9 +2630,35 @@ } } }, - "revision": "20230105", + "revision": "20240221", "rootUrl": "https://networkconnectivity.googleapis.com/", "schemas": { + "AcceptHubSpokeRequest": { + "description": "The request for HubService.AcceptHubSpoke.", + "id": "AcceptHubSpokeRequest", + "properties": { + "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 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 to see whether the original operation was received. If it was, the server ignores the second request. This behavior prevents clients from mistakenly creating duplicate commitments. The request ID must be a valid UUID, with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "spokeUri": { + "description": "Required. The URI of the spoke to accept into the hub.", + "type": "string" + } + }, + "type": "object" + }, + "AcceptHubSpokeResponse": { + "description": "The response for HubService.AcceptHubSpoke.", + "id": "AcceptHubSpokeResponse", + "properties": { + "spoke": { + "$ref": "Spoke", + "description": "The spoke that was operated on." + } + }, + "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", @@ -1453,14 +2716,134 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" + }, + "ConsumerPscConfig": { + "description": "Allow the producer to specify which consumers can connect to it.", + "id": "ConsumerPscConfig", + "properties": { + "disableGlobalAccess": { + "description": "This is used in PSC consumer ForwardingRule to control whether the PSC endpoint can be accessed from another region.", + "type": "boolean" + }, + "network": { + "description": "The resource path of the consumer network where PSC connections are allowed to be created in. Note, this network does not need be in the ConsumerPscConfig.project in the case of SharedVPC. Example: projects/{projectNumOrId}/global/networks/{networkId}.", + "type": "string" + }, + "project": { + "description": "The consumer project where PSC connections are allowed to be created in.", + "type": "string" + }, + "state": { + "description": "Output only. Overall state of PSC Connections management for this consumer psc config.", + "enum": [ + "STATE_UNSPECIFIED", + "VALID", + "CONNECTION_POLICY_MISSING", + "POLICY_LIMIT_REACHED" + ], + "enumDescriptions": [ + "Default state, when Connection Map is created initially.", + "Set when policy and map configuration is valid, and their matching can lead to allowing creation of PSC Connections subject to other constraints like connections limit.", + "No Service Connection Policy found for this network and Service Class", + "Service Connection Policy limit reached for this network and Service Class" + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ConsumerPscConnection": { + "description": "PSC connection details on consumer side.", + "id": "ConsumerPscConnection", + "properties": { + "error": { + "$ref": "GoogleRpcStatus", + "deprecated": true, + "description": "The most recent error during operating this connection." + }, + "errorInfo": { + "$ref": "GoogleRpcErrorInfo", + "description": "Output only. The error info for the latest error during operating this connection.", + "readOnly": true + }, + "errorType": { + "description": "The error type indicates whether the error is consumer facing, producer facing or system internal.", + "enum": [ + "CONNECTION_ERROR_TYPE_UNSPECIFIED", + "ERROR_INTERNAL", + "ERROR_CONSUMER_SIDE", + "ERROR_PRODUCER_SIDE" + ], + "enumDescriptions": [ + "An invalid error type as the default case.", + "The error is due to Service Automation system internal.", + "The error is due to the setup on consumer side.", + "The error is due to the setup on producer side." + ], + "type": "string" + }, + "forwardingRule": { + "description": "The URI of the consumer forwarding rule created. Example: projects/{projectNumOrId}/regions/us-east1/networks/{resourceId}.", + "type": "string" + }, + "gceOperation": { + "description": "The last Compute Engine operation to setup PSC connection.", + "type": "string" + }, + "ip": { + "description": "The IP literal allocated on the consumer network for the PSC forwarding rule that is created to connect to the producer service attachment in this service connection map.", + "type": "string" + }, + "network": { + "description": "The consumer network whose PSC forwarding rule is connected to the service attachments in this service connection map. Note that the network could be on a different project (shared VPC).", + "type": "string" + }, + "project": { + "description": "The consumer project whose PSC forwarding rule is connected to the service attachments in this service connection map.", + "type": "string" + }, + "pscConnectionId": { + "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" + }, + "state": { + "description": "The state of the PSC connection.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "FAILED", + "CREATING", + "DELETING" + ], + "enumDescriptions": [ + "An invalid state as the default case.", + "The connection is fully established and ready to use.", + "The connection is not functional since some resources on the connection fail to be created.", + "The connection is being created.", + "The connection is being deleted." + ], "type": "string" } }, @@ -1495,6 +2878,37 @@ }, "type": "object" }, + "Filter": { + "description": "Filter matches L4 traffic.", + "id": "Filter", + "properties": { + "destRange": { + "description": "Optional. The destination IP range of outgoing packets that this policy-based route applies to. Default is \"0.0.0.0/0\" if protocol version is IPv4.", + "type": "string" + }, + "ipProtocol": { + "description": "Optional. The IP protocol that this policy-based route applies to. Valid values are 'TCP', 'UDP', and 'ALL'. Default is 'ALL'.", + "type": "string" + }, + "protocolVersion": { + "description": "Required. Internet protocol versions this policy-based route applies to. For this version, only IPV4 is supported.", + "enum": [ + "PROTOCOL_VERSION_UNSPECIFIED", + "IPV4" + ], + "enumDescriptions": [ + "Default value.", + "The PBR is for IPv4 internet protocol traffic." + ], + "type": "string" + }, + "srcRange": { + "description": "Optional. The source IP range of outgoing packets that this policy-based route applies to. Default is \"0.0.0.0/0\" if protocol version is IPv4.", + "type": "string" + } + }, + "type": "object" + }, "GoogleLongrunningCancelOperationRequest": { "description": "The request message for Operations.CancelOperation.", "id": "GoogleLongrunningCancelOperationRequest", @@ -1548,12 +2962,34 @@ "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" } }, "type": "object" }, + "GoogleRpcErrorInfo": { + "description": "Describes the cause of the error with structured details. Example of an error when contacting the \"pubsub.googleapis.com\" API when it is not enabled: { \"reason\": \"API_DISABLED\" \"domain\": \"googleapis.com\" \"metadata\": { \"resource\": \"projects/123\", \"service\": \"pubsub.googleapis.com\" } } This response indicates that the pubsub.googleapis.com API is not enabled. Example of an error that is returned when attempting to create a Spanner instance in a region that is out of stock: { \"reason\": \"STOCKOUT\" \"domain\": \"spanner.googleapis.com\", \"metadata\": { \"availableRegions\": \"us-central1,us-east2\" } }", + "id": "GoogleRpcErrorInfo", + "properties": { + "domain": { + "description": "The logical grouping to which the \"reason\" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: \"pubsub.googleapis.com\". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is \"googleapis.com\".", + "type": "string" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Additional structured details about this error. Keys should match /[a-zA-Z0-9-_]/ and be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {\"instanceLimit\": \"100/request\"}, should be returned as, {\"instanceLimitPerRequest\": \"100\"}, if the client exceeds the number of instances that can be created in a single (batch) request.", + "type": "object" + }, + "reason": { + "description": "The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of `A-Z+[A-Z0-9]`, which represents UPPER_SNAKE_CASE.", + "type": "string" + } + }, + "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", @@ -1581,6 +3017,72 @@ }, "type": "object" }, + "Group": { + "description": "A group represents a subset of spokes attached to a hub.", + "id": "Group", + "properties": { + "createTime": { + "description": "Output only. The time the group was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. The description of the group.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels in key-value pair format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).", + "type": "object" + }, + "name": { + "description": "Immutable. The name of the group. Group names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub}/groups/{group_id}`", + "type": "string" + }, + "state": { + "description": "Output only. The current lifecycle state of this group.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "DELETING", + "ACCEPTING", + "REJECTING", + "UPDATING", + "INACTIVE", + "OBSOLETE" + ], + "enumDescriptions": [ + "No state information available", + "The resource's create operation is in progress.", + "The resource is active", + "The resource's delete operation is in progress.", + "The resource's accept operation is in progress.", + "The resource's reject operation is in progress.", + "The resource's update operation is in progress.", + "The resource is inactive.", + "The hub associated with this spoke resource has been deleted. This state applies to spoke resources only." + ], + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. The Google-generated UUID for the group. This value is unique across all group resources. If a group is deleted and another with the same name is created, the new route table is assigned a different unique_id.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The time the group was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Hub": { "description": "A Network Connectivity Center hub is a global management resource to which you attach spokes. A single hub can contain spokes from multiple regions. However, if any of a hub's spokes use the site-to-site data transfer feature, the resources associated with those spokes must all be in the same VPC network. Spokes that do not use site-to-site data transfer can be associated with any VPC network in your project.", "id": "Hub", @@ -1599,13 +3101,21 @@ "additionalProperties": { "type": "string" }, - "description": "Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).", + "description": "Optional labels in key-value pair format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).", "type": "object" }, "name": { "description": "Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}`", "type": "string" }, + "routeTables": { + "description": "Output only. The route tables that belong to this hub. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}/routeTables/{route_table_id}` This field is read-only. Network Connectivity Center automatically populates it based on the route tables nested under the hub.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "routingVpcs": { "description": "The VPC networks associated with this hub's spokes. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub.", "items": { @@ -1613,6 +3123,11 @@ }, "type": "array" }, + "spokeSummary": { + "$ref": "SpokeSummary", + "description": "Output only. A summary of the spokes associated with a hub. The summary includes a count of spokes according to type and according to state. If any spokes are inactive, the summary also lists the reasons they are inactive, including a count for each reason.", + "readOnly": true + }, "state": { "description": "Output only. The current lifecycle state of this hub.", "enum": [ @@ -1620,14 +3135,22 @@ "CREATING", "ACTIVE", "DELETING", - "UPDATING" + "ACCEPTING", + "REJECTING", + "UPDATING", + "INACTIVE", + "OBSOLETE" ], "enumDescriptions": [ "No state information available", - "The resource's create operation is in progress", + "The resource's create operation is in progress.", "The resource is active", - "The resource's Delete operation is in progress", - "The resource's Update operation is in progress" + "The resource's delete operation is in progress.", + "The resource's accept operation is in progress.", + "The resource's reject operation is in progress.", + "The resource's update operation is in progress.", + "The resource is inactive.", + "The hub associated with this spoke resource has been deleted. This state applies to spoke resources only." ], "readOnly": true, "type": "string" @@ -1646,6 +3169,17 @@ }, "type": "object" }, + "InterconnectAttachment": { + "description": "InterconnectAttachment that this route applies to.", + "id": "InterconnectAttachment", + "properties": { + "region": { + "description": "Optional. Cloud region to install this policy-based route on interconnect attachment. Use `all` to install it on all interconnect attachments.", + "type": "string" + } + }, + "type": "object" + }, "InternalRange": { "description": "The internal range resource for IPAM operations within a VPC network. Used to represent a private address range along with behavioral characterstics of that range (its usage and peering behavior). Networking resources can link to this range if they are created as belonging to it.", "id": "InternalRange", @@ -1683,11 +3217,13 @@ "items": { "enum": [ "OVERLAP_UNSPECIFIED", - "OVERLAP_ROUTE_RANGE" + "OVERLAP_ROUTE_RANGE", + "OVERLAP_EXISTING_SUBNET_RANGE" ], "enumDescriptions": [ "No overlap overrides.", - "Allow creation of static routes more specific that the current internal range." + "Allow creation of static routes more specific that the current internal range.", + "Allow creation of internal ranges that overlap with existing subnets." ], "type": "string" }, @@ -1797,6 +3333,24 @@ }, "type": "object" }, + "LinkedVpcNetwork": { + "description": "An existing VPC network.", + "id": "LinkedVpcNetwork", + "properties": { + "excludeExportRanges": { + "description": "Optional. IP ranges encompassing the subnets to be excluded from peering.", + "items": { + "type": "string" + }, + "type": "array" + }, + "uri": { + "description": "Required. The URI of the VPC network resource.", + "type": "string" + } + }, + "type": "object" + }, "LinkedVpnTunnels": { "description": "A collection of Cloud VPN tunnel resources. These resources should be redundant HA VPN tunnels that all advertise the same prefixes to Google Cloud. Alternatively, in a passive/active configuration, all tunnels should be capable of advertising the same prefixes.", "id": "LinkedVpnTunnels", @@ -1820,6 +3374,56 @@ }, "type": "object" }, + "ListGroupsResponse": { + "description": "Response for HubService.ListGroups method.", + "id": "ListGroupsResponse", + "properties": { + "groups": { + "description": "The requested groups.", + "items": { + "$ref": "Group" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The token for the next page of the response. To see more results, use this value as the page_token for your next request. If this value is empty, there are no more results.", + "type": "string" + }, + "unreachable": { + "description": "Hubs that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListHubSpokesResponse": { + "description": "The response for HubService.ListHubSpokes.", + "id": "ListHubSpokesResponse", + "properties": { + "nextPageToken": { + "description": "The token for the next page of the response. To see more results, use this value as the page_token for your next request. If this value is empty, there are no more results.", + "type": "string" + }, + "spokes": { + "description": "The requested spokes. The spoke fields can be partially populated based on the `view` field in the request message.", + "items": { + "$ref": "Spoke" + }, + "type": "array" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListHubsResponse": { "description": "Response for HubService.ListHubs method.", "id": "ListHubsResponse", @@ -1832,7 +3436,7 @@ "type": "array" }, "nextPageToken": { - "description": "The next pagination token in the List response. It should be used as page_token for the following request. An empty value means no more result.", + "description": "The token for the next page of the response. To see more results, use this value as the page_token for your next request. If this value is empty, there are no more results.", "type": "string" }, "unreachable": { @@ -1888,12 +3492,187 @@ }, "type": "object" }, + "ListPolicyBasedRoutesResponse": { + "description": "Response for PolicyBasedRouting.ListPolicyBasedRoutes method.", + "id": "ListPolicyBasedRoutesResponse", + "properties": { + "nextPageToken": { + "description": "The next pagination token in the List response. It should be used as page_token for the following request. An empty value means no more result.", + "type": "string" + }, + "policyBasedRoutes": { + "description": "Policy-based routes to be returned.", + "items": { + "$ref": "PolicyBasedRoute" + }, + "type": "array" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListRouteTablesResponse": { + "description": "Response for HubService.ListRouteTables method.", + "id": "ListRouteTablesResponse", + "properties": { + "nextPageToken": { + "description": "The token for the next page of the response. To see more results, use this value as the page_token for your next request. If this value is empty, there are no more results.", + "type": "string" + }, + "routeTables": { + "description": "The requested route tables.", + "items": { + "$ref": "RouteTable" + }, + "type": "array" + }, + "unreachable": { + "description": "Hubs that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListRoutesResponse": { + "description": "Response for HubService.ListRoutes method.", + "id": "ListRoutesResponse", + "properties": { + "nextPageToken": { + "description": "The token for the next page of the response. To see more results, use this value as the page_token for your next request. If this value is empty, there are no more results.", + "type": "string" + }, + "routes": { + "description": "The requested routes.", + "items": { + "$ref": "Route" + }, + "type": "array" + }, + "unreachable": { + "description": "RouteTables that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListServiceClassesResponse": { + "description": "Response for ListServiceClasses.", + "id": "ListServiceClassesResponse", + "properties": { + "nextPageToken": { + "description": "The next pagination token in the List response. It should be used as page_token for the following request. An empty value means no more result.", + "type": "string" + }, + "serviceClasses": { + "description": "ServiceClasses to be returned.", + "items": { + "$ref": "ServiceClass" + }, + "type": "array" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListServiceConnectionMapsResponse": { + "description": "Response for ListServiceConnectionMaps.", + "id": "ListServiceConnectionMapsResponse", + "properties": { + "nextPageToken": { + "description": "The next pagination token in the List response. It should be used as page_token for the following request. An empty value means no more result.", + "type": "string" + }, + "serviceConnectionMaps": { + "description": "ServiceConnectionMaps to be returned.", + "items": { + "$ref": "ServiceConnectionMap" + }, + "type": "array" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListServiceConnectionPoliciesResponse": { + "description": "Response for ListServiceConnectionPolicies.", + "id": "ListServiceConnectionPoliciesResponse", + "properties": { + "nextPageToken": { + "description": "The next pagination token in the List response. It should be used as page_token for the following request. An empty value means no more result.", + "type": "string" + }, + "serviceConnectionPolicies": { + "description": "ServiceConnectionPolicies to be returned.", + "items": { + "$ref": "ServiceConnectionPolicy" + }, + "type": "array" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListServiceConnectionTokensResponse": { + "description": "Response for ListServiceConnectionTokens.", + "id": "ListServiceConnectionTokensResponse", + "properties": { + "nextPageToken": { + "description": "The next pagination token in the List response. It should be used as page_token for the following request. An empty value means no more result.", + "type": "string" + }, + "serviceConnectionTokens": { + "description": "ServiceConnectionTokens to be returned.", + "items": { + "$ref": "ServiceConnectionToken" + }, + "type": "array" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListSpokesResponse": { "description": "The response for HubService.ListSpokes.", "id": "ListSpokesResponse", "properties": { "nextPageToken": { - "description": "The next pagination token in the List response. It should be used as page_token for the following request. An empty value means no more result.", + "description": "The token for the next page of the response. To see more results, use this value as the page_token for your next request. If this value is empty, there are no more results.", "type": "string" }, "spokes": { @@ -1914,7 +3693,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1971,6 +3750,16 @@ }, "type": "object" }, + "NextHopVpcNetwork": { + "id": "NextHopVpcNetwork", + "properties": { + "uri": { + "description": "The URI of the VPC network resource", + "type": "string" + } + }, + "type": "object" + }, "OperationMetadata": { "description": "Represents the metadata of the long-running operation.", "id": "OperationMetadata", @@ -2016,7 +3805,7 @@ "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/).", + "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": { @@ -2046,6 +3835,394 @@ }, "type": "object" }, + "PolicyBasedRoute": { + "description": "Policy-based routes route L4 network traffic based on not just destination IP address, but also source IP address, protocol, and more. If a policy-based route conflicts with other types of routes, the policy-based route always take precedence.", + "id": "PolicyBasedRoute", + "properties": { + "createTime": { + "description": "Output only. Time when the policy-based route was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. An optional description of this resource. Provide this field when you create the resource.", + "type": "string" + }, + "filter": { + "$ref": "Filter", + "description": "Required. The filter to match L4 traffic." + }, + "interconnectAttachment": { + "$ref": "InterconnectAttachment", + "description": "Optional. The interconnect attachments that this policy-based route applies to." + }, + "kind": { + "description": "Output only. Type of this resource. Always networkconnectivity#policyBasedRoute for policy-based Route resources.", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "User-defined labels.", + "type": "object" + }, + "name": { + "description": "Immutable. A unique name of the resource in the form of `projects/{project_number}/locations/global/PolicyBasedRoutes/{policy_based_route_id}`", + "type": "string" + }, + "network": { + "description": "Required. Fully-qualified URL of the network that this route applies to, for example: projects/my-project/global/networks/my-network.", + "type": "string" + }, + "nextHopIlbIp": { + "description": "Optional. The IP address of a global-access-enabled L4 ILB that is the next hop for matching packets. For this version, only nextHopIlbIp is supported.", + "type": "string" + }, + "nextHopOtherRoutes": { + "description": "Optional. Other routes that will be referenced to determine the next hop of the packet.", + "enum": [ + "OTHER_ROUTES_UNSPECIFIED", + "DEFAULT_ROUTING" + ], + "enumDescriptions": [ + "Default value.", + "Use the routes from the default routing tables (system-generated routes, custom routes, peering route) to determine the next hop. This will effectively exclude matching packets being applied on other PBRs with a lower priority." + ], + "type": "string" + }, + "priority": { + "description": "Optional. The priority of this policy-based route. Priority is used to break ties in cases where there are more than one matching policy-based routes found. In cases where multiple policy-based routes are matched, the one with the lowest-numbered priority value wins. The default value is 1000. The priority value must be from 1 to 65535, inclusive.", + "format": "int32", + "type": "integer" + }, + "selfLink": { + "description": "Output only. Server-defined fully-qualified URL for this resource.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Time when the policy-based route was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "virtualMachine": { + "$ref": "VirtualMachine", + "description": "Optional. VM instances to which this policy-based route applies to." + }, + "warnings": { + "description": "Output only. If potential misconfigurations are detected for this route, this field will be populated with warning messages.", + "items": { + "$ref": "Warnings" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "ProducerPscConfig": { + "description": "The PSC configurations on producer side.", + "id": "ProducerPscConfig", + "properties": { + "serviceAttachmentUri": { + "description": "The resource path of a service attachment. Example: projects/{projectNumOrId}/regions/{region}/serviceAttachments/{resourceId}.", + "type": "string" + } + }, + "type": "object" + }, + "PscConfig": { + "description": "Configuration used for Private Service Connect connections. Used when Infrastructure is PSC.", + "id": "PscConfig", + "properties": { + "limit": { + "description": "Optional. Max number of PSC connections for this policy.", + "format": "int64", + "type": "string" + }, + "subnetworks": { + "description": "The resource paths of subnetworks to use for IP address management. Example: projects/{projectNumOrId}/regions/{region}/subnetworks/{resourceId}.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "PscConnection": { + "description": "Information about a specific Private Service Connect connection.", + "id": "PscConnection", + "properties": { + "consumerAddress": { + "description": "The resource reference of the consumer address.", + "type": "string" + }, + "consumerForwardingRule": { + "description": "The resource reference of the PSC Forwarding Rule within the consumer VPC.", + "type": "string" + }, + "consumerTargetProject": { + "description": "The project where the PSC connection is created.", + "type": "string" + }, + "error": { + "$ref": "GoogleRpcStatus", + "deprecated": true, + "description": "The most recent error during operating this connection." + }, + "errorInfo": { + "$ref": "GoogleRpcErrorInfo", + "description": "Output only. The error info for the latest error during operating this connection.", + "readOnly": true + }, + "errorType": { + "description": "The error type indicates whether the error is consumer facing, producer facing or system internal.", + "enum": [ + "CONNECTION_ERROR_TYPE_UNSPECIFIED", + "ERROR_INTERNAL", + "ERROR_CONSUMER_SIDE", + "ERROR_PRODUCER_SIDE" + ], + "enumDescriptions": [ + "An invalid error type as the default case.", + "The error is due to Service Automation system internal.", + "The error is due to the setup on consumer side.", + "The error is due to the setup on producer side." + ], + "type": "string" + }, + "gceOperation": { + "description": "The last Compute Engine operation to setup PSC connection.", + "type": "string" + }, + "pscConnectionId": { + "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": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "FAILED", + "CREATING", + "DELETING" + ], + "enumDescriptions": [ + "An invalid state as the default case.", + "The connection is fully established and ready to use.", + "The connection is not functional since some resources on the connection fail to be created.", + "The connection is being created.", + "The connection is being deleted." + ], + "type": "string" + } + }, + "type": "object" + }, + "RejectHubSpokeRequest": { + "description": "The request for HubService.RejectHubSpoke.", + "id": "RejectHubSpokeRequest", + "properties": { + "details": { + "description": "Optional. Additional information provided by the hub administrator.", + "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 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 to see whether the original operation was received. If it was, the server ignores the second request. This behavior prevents clients from mistakenly creating duplicate commitments. The request ID must be a valid UUID, with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "type": "string" + }, + "spokeUri": { + "description": "Required. The URI of the spoke to reject from the hub.", + "type": "string" + } + }, + "type": "object" + }, + "RejectHubSpokeResponse": { + "description": "The response for HubService.RejectHubSpoke.", + "id": "RejectHubSpokeResponse", + "properties": { + "spoke": { + "$ref": "Spoke", + "description": "The spoke that was operated on." + } + }, + "type": "object" + }, + "Route": { + "description": "A route defines a path from VM instances within a spoke to a specific destination resource. Only VPC spokes have routes.", + "id": "Route", + "properties": { + "createTime": { + "description": "Output only. The time the route was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of the route.", + "type": "string" + }, + "ipCidrRange": { + "description": "The destination IP address range.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional labels in key-value pair format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).", + "type": "object" + }, + "location": { + "description": "Output only. The location of the route. Uses the following form: \"projects/{project}/locations/{location}\" Example: projects/1234/locations/us-central1", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Immutable. The name of the route. Route names must be unique. Route names use the following form: `projects/{project_number}/locations/global/hubs/{hub}/routeTables/{route_table_id}/routes/{route_id}`", + "type": "string" + }, + "nextHopVpcNetwork": { + "$ref": "NextHopVpcNetwork", + "description": "Immutable. The destination VPC network for packets on this route." + }, + "spoke": { + "description": "Immutable. The spoke that this route leads to. Example: projects/12345/locations/global/spokes/SPOKE", + "type": "string" + }, + "state": { + "description": "Output only. The current lifecycle state of the route.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "DELETING", + "ACCEPTING", + "REJECTING", + "UPDATING", + "INACTIVE", + "OBSOLETE" + ], + "enumDescriptions": [ + "No state information available", + "The resource's create operation is in progress.", + "The resource is active", + "The resource's delete operation is in progress.", + "The resource's accept operation is in progress.", + "The resource's reject operation is in progress.", + "The resource's update operation is in progress.", + "The resource is inactive.", + "The hub associated with this spoke resource has been deleted. This state applies to spoke resources only." + ], + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Output only. The route's type. Its type is determined by the properties of its IP address range.", + "enum": [ + "ROUTE_TYPE_UNSPECIFIED", + "VPC_PRIMARY_SUBNET", + "VPC_SECONDARY_SUBNET" + ], + "enumDescriptions": [ + "No route type information specified", + "The route leads to a destination within the primary address range of the VPC network's subnet.", + "The route leads to a destination within the secondary address range of the VPC network's subnet." + ], + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. The Google-generated UUID for the route. This value is unique across all Network Connectivity Center route resources. If a route is deleted and another with the same name is created, the new route is assigned a different `uid`.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The time the route was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "RouteTable": { + "id": "RouteTable", + "properties": { + "createTime": { + "description": "Output only. The time the route table was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of the route table.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional labels in key-value pair format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).", + "type": "object" + }, + "name": { + "description": "Immutable. The name of the route table. Route table names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub}/routeTables/{route_table_id}`", + "type": "string" + }, + "state": { + "description": "Output only. The current lifecycle state of this route table.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "DELETING", + "ACCEPTING", + "REJECTING", + "UPDATING", + "INACTIVE", + "OBSOLETE" + ], + "enumDescriptions": [ + "No state information available", + "The resource's create operation is in progress.", + "The resource is active", + "The resource's delete operation is in progress.", + "The resource's accept operation is in progress.", + "The resource's reject operation is in progress.", + "The resource's update operation is in progress.", + "The resource is inactive.", + "The hub associated with this spoke resource has been deleted. This state applies to spoke resources only." + ], + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. The Google-generated UUID for the route table. This value is unique across all route table resources. If a route table is deleted and another with the same name is created, the new route table is assigned a different `uid`.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The time the route table was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "RouterApplianceInstance": { "description": "A router appliance instance is a Compute Engine virtual machine (VM) instance that acts as a BGP speaker. A router appliance instance is specified by the URI of the VM and the internal IP address of one of the VM's network interfaces.", "id": "RouterApplianceInstance", @@ -2077,6 +4254,259 @@ }, "type": "object" }, + "ServiceClass": { + "description": "The ServiceClass resource. Next id: 9", + "id": "ServiceClass", + "properties": { + "createTime": { + "description": "Output only. Time when the ServiceClass was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "A description of this resource.", + "type": "string" + }, + "etag": { + "description": "Optional. The etag is computed by the server, 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": "User-defined labels.", + "type": "object" + }, + "name": { + "description": "Immutable. The name of a ServiceClass resource. Format: projects/{project}/locations/{location}/serviceClasses/{service_class} See: https://google.aip.dev/122#fields-representing-resource-names", + "type": "string" + }, + "serviceClass": { + "description": "Output only. The generated service class name. Use this name to refer to the Service class in Service Connection Maps and Service Connection Policies.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Time when the ServiceClass was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectionMap": { + "description": "The ServiceConnectionMap resource. Next id: 15", + "id": "ServiceConnectionMap", + "properties": { + "consumerPscConfigs": { + "description": "The PSC configurations on consumer side.", + "items": { + "$ref": "ConsumerPscConfig" + }, + "type": "array" + }, + "consumerPscConnections": { + "description": "Output only. PSC connection details on consumer side.", + "items": { + "$ref": "ConsumerPscConnection" + }, + "readOnly": true, + "type": "array" + }, + "createTime": { + "description": "Output only. Time when the ServiceConnectionMap was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "A description of this resource.", + "type": "string" + }, + "etag": { + "description": "Optional. The etag is computed by the server, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", + "type": "string" + }, + "infrastructure": { + "description": "Output only. The infrastructure used for connections between consumers/producers.", + "enum": [ + "INFRASTRUCTURE_UNSPECIFIED", + "PSC" + ], + "enumDescriptions": [ + "An invalid infrastructure as the default case.", + "Private Service Connect is used for connections." + ], + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "User-defined labels.", + "type": "object" + }, + "name": { + "description": "Immutable. The name of a ServiceConnectionMap. Format: projects/{project}/locations/{location}/serviceConnectionMaps/{service_connection_map} See: https://google.aip.dev/122#fields-representing-resource-names", + "type": "string" + }, + "producerPscConfigs": { + "description": "The PSC configurations on producer side.", + "items": { + "$ref": "ProducerPscConfig" + }, + "type": "array" + }, + "serviceClass": { + "description": "The service class identifier this ServiceConnectionMap is for. The user of ServiceConnectionMap create API needs to have networkconnecitivty.serviceclasses.use iam permission for the service class.", + "type": "string" + }, + "serviceClassUri": { + "description": "Output only. The service class uri this ServiceConnectionMap is for.", + "readOnly": true, + "type": "string" + }, + "token": { + "description": "The token provided by the consumer. This token authenticates that the consumer can create a connecton within the specified project and network.", + "type": "string" + }, + "updateTime": { + "description": "Output only. Time when the ServiceConnectionMap was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectionPolicy": { + "description": "The ServiceConnectionPolicy resource. Next id: 12", + "id": "ServiceConnectionPolicy", + "properties": { + "createTime": { + "description": "Output only. Time when the ServiceConnectionMap was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "A description of this resource.", + "type": "string" + }, + "etag": { + "description": "Optional. The etag is computed by the server, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", + "type": "string" + }, + "infrastructure": { + "description": "Output only. The type of underlying resources used to create the connection.", + "enum": [ + "INFRASTRUCTURE_UNSPECIFIED", + "PSC" + ], + "enumDescriptions": [ + "An invalid infrastructure as the default case.", + "Private Service Connect is used for connections." + ], + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "User-defined labels.", + "type": "object" + }, + "name": { + "description": "Immutable. The name of a ServiceConnectionPolicy. Format: projects/{project}/locations/{location}/serviceConnectionPolicies/{service_connection_policy} See: https://google.aip.dev/122#fields-representing-resource-names", + "type": "string" + }, + "network": { + "description": "The resource path of the consumer network. Example: - projects/{projectNumOrId}/global/networks/{resourceId}.", + "type": "string" + }, + "pscConfig": { + "$ref": "PscConfig", + "description": "Configuration used for Private Service Connect connections. Used when Infrastructure is PSC." + }, + "pscConnections": { + "description": "Output only. [Output only] Information about each Private Service Connect connection.", + "items": { + "$ref": "PscConnection" + }, + "readOnly": true, + "type": "array" + }, + "serviceClass": { + "description": "The service class identifier for which this ServiceConnectionPolicy is for. The service class identifier is a unique, symbolic representation of a ServiceClass. It is provided by the Service Producer. Google services have a prefix of gcp. For example, gcp-cloud-sql. 3rd party services do not. For example, test-service-a3dfcx.", + "type": "string" + }, + "updateTime": { + "description": "Output only. Time when the ServiceConnectionMap was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectionToken": { + "description": "The ServiceConnectionToken resource. Next id: 10", + "id": "ServiceConnectionToken", + "properties": { + "createTime": { + "description": "Output only. Time when the ServiceConnectionToken was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "A description of this resource.", + "type": "string" + }, + "etag": { + "description": "Optional. The etag is computed by the server, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", + "type": "string" + }, + "expireTime": { + "description": "Output only. The time to which this token is valid.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "User-defined labels.", + "type": "object" + }, + "name": { + "description": "Immutable. The name of a ServiceConnectionToken. Format: projects/{project}/locations/{location}/ServiceConnectionTokens/{service_connection_token} See: https://google.aip.dev/122#fields-representing-resource-names", + "type": "string" + }, + "network": { + "description": "The resource path of the network associated with this token. Example: projects/{projectNumOrId}/global/networks/{resourceId}.", + "type": "string" + }, + "token": { + "description": "Output only. The token generated by Automation.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Time when the ServiceConnectionToken was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", @@ -2094,7 +4524,7 @@ "type": "object" }, "Spoke": { - "description": "A Network Connectivity Center spoke represents one or more network connectivity resources. When you create a spoke, you associate it with a hub. You must also identify a value for exactly one of the following fields: * linked_vpn_tunnels * linked_interconnect_attachments * linked_router_appliance_instances", + "description": "A Network Connectivity Center spoke represents one or more network connectivity resources. When you create a spoke, you associate it with a hub. You must also identify a value for exactly one of the following fields: * linked_vpn_tunnels * linked_interconnect_attachments * linked_router_appliance_instances * linked_vpc_network", "id": "Spoke", "properties": { "createTime": { @@ -2107,6 +4537,10 @@ "description": "An optional description of the spoke.", "type": "string" }, + "group": { + "description": "Optional. The name of the group that this spoke is associated with.", + "type": "string" + }, "hub": { "description": "Immutable. The name of the hub that this spoke is attached to.", "type": "string" @@ -2115,7 +4549,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).", + "description": "Optional labels in key-value pair format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).", "type": "object" }, "linkedInterconnectAttachments": { @@ -2126,6 +4560,10 @@ "$ref": "LinkedRouterApplianceInstances", "description": "Router appliance instances that are associated with the spoke." }, + "linkedVpcNetwork": { + "$ref": "LinkedVpcNetwork", + "description": "Optional. VPC network that is associated with the spoke." + }, "linkedVpnTunnels": { "$ref": "LinkedVpnTunnels", "description": "VPN tunnels that are associated with the spoke." @@ -2134,6 +4572,33 @@ "description": "Immutable. The name of the spoke. Spoke names must be unique. They use the following form: `projects/{project_number}/locations/{region}/spokes/{spoke_id}`", "type": "string" }, + "reasons": { + "description": "Output only. The reasons for current state of the spoke. Only present when the spoke is in the `INACTIVE` state.", + "items": { + "$ref": "StateReason" + }, + "readOnly": true, + "type": "array" + }, + "spokeType": { + "description": "Output only. The type of resource associated with the spoke.", + "enum": [ + "SPOKE_TYPE_UNSPECIFIED", + "VPN_TUNNEL", + "INTERCONNECT_ATTACHMENT", + "ROUTER_APPLIANCE", + "VPC_NETWORK" + ], + "enumDescriptions": [ + "Unspecified spoke type.", + "Spokes associated with VPN tunnels.", + "Spokes associated with VLAN attachments.", + "Spokes associated with router appliance instances.", + "Spokes associated with VPC networks." + ], + "readOnly": true, + "type": "string" + }, "state": { "description": "Output only. The current lifecycle state of this spoke.", "enum": [ @@ -2141,20 +4606,28 @@ "CREATING", "ACTIVE", "DELETING", - "UPDATING" + "ACCEPTING", + "REJECTING", + "UPDATING", + "INACTIVE", + "OBSOLETE" ], "enumDescriptions": [ "No state information available", - "The resource's create operation is in progress", + "The resource's create operation is in progress.", "The resource is active", - "The resource's Delete operation is in progress", - "The resource's Update operation is in progress" + "The resource's delete operation is in progress.", + "The resource's accept operation is in progress.", + "The resource's reject operation is in progress.", + "The resource's update operation is in progress.", + "The resource is inactive.", + "The hub associated with this spoke resource has been deleted. This state applies to spoke resources only." ], "readOnly": true, "type": "string" }, "uniqueId": { - "description": "Output only. The Google-generated UUID for the spoke. This value is unique across all spoke resources. If a spoke is deleted and another with the same name is created, the new spoke is assigned a different unique_id.", + "description": "Output only. The Google-generated UUID for the spoke. This value is unique across all spoke resources. If a spoke is deleted and another with the same name is created, the new spoke is assigned a different `unique_id`.", "readOnly": true, "type": "string" }, @@ -2167,6 +4640,174 @@ }, "type": "object" }, + "SpokeStateCount": { + "description": "The number of spokes that are in a particular state and associated with a given hub.", + "id": "SpokeStateCount", + "properties": { + "count": { + "description": "Output only. The total number of spokes that are in this state and associated with a given hub.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The state of the spokes.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "DELETING", + "ACCEPTING", + "REJECTING", + "UPDATING", + "INACTIVE", + "OBSOLETE" + ], + "enumDescriptions": [ + "No state information available", + "The resource's create operation is in progress.", + "The resource is active", + "The resource's delete operation is in progress.", + "The resource's accept operation is in progress.", + "The resource's reject operation is in progress.", + "The resource's update operation is in progress.", + "The resource is inactive.", + "The hub associated with this spoke resource has been deleted. This state applies to spoke resources only." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "SpokeStateReasonCount": { + "description": "The number of spokes in the hub that are inactive for this reason.", + "id": "SpokeStateReasonCount", + "properties": { + "count": { + "description": "Output only. The total number of spokes that are inactive for a particular reason and associated with a given hub.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "stateReasonCode": { + "description": "Output only. The reason that a spoke is inactive.", + "enum": [ + "CODE_UNSPECIFIED", + "PENDING_REVIEW", + "REJECTED", + "PAUSED", + "FAILED" + ], + "enumDescriptions": [ + "No information available.", + "The proposed spoke is pending review.", + "The proposed spoke has been rejected by the hub administrator.", + "The spoke has been deactivated internally.", + "Network Connectivity Center encountered errors while accepting the spoke." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "SpokeSummary": { + "description": "Summarizes information about the spokes associated with a hub. The summary includes a count of spokes according to type and according to state. If any spokes are inactive, the summary also lists the reasons they are inactive, including a count for each reason.", + "id": "SpokeSummary", + "properties": { + "spokeStateCounts": { + "description": "Output only. Counts the number of spokes that are in each state and associated with a given hub.", + "items": { + "$ref": "SpokeStateCount" + }, + "readOnly": true, + "type": "array" + }, + "spokeStateReasonCounts": { + "description": "Output only. Counts the number of spokes that are inactive for each possible reason and associated with a given hub.", + "items": { + "$ref": "SpokeStateReasonCount" + }, + "readOnly": true, + "type": "array" + }, + "spokeTypeCounts": { + "description": "Output only. Counts the number of spokes of each type that are associated with a specific hub.", + "items": { + "$ref": "SpokeTypeCount" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "SpokeTypeCount": { + "description": "The number of spokes of a given type that are associated with a specific hub. The type indicates what kind of resource is associated with the spoke.", + "id": "SpokeTypeCount", + "properties": { + "count": { + "description": "Output only. The total number of spokes of this type that are associated with the hub.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "spokeType": { + "description": "Output only. The type of the spokes.", + "enum": [ + "SPOKE_TYPE_UNSPECIFIED", + "VPN_TUNNEL", + "INTERCONNECT_ATTACHMENT", + "ROUTER_APPLIANCE", + "VPC_NETWORK" + ], + "enumDescriptions": [ + "Unspecified spoke type.", + "Spokes associated with VPN tunnels.", + "Spokes associated with VLAN attachments.", + "Spokes associated with router appliance instances.", + "Spokes associated with VPC networks." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "StateReason": { + "description": "The reason a spoke is inactive.", + "id": "StateReason", + "properties": { + "code": { + "description": "The code associated with this reason.", + "enum": [ + "CODE_UNSPECIFIED", + "PENDING_REVIEW", + "REJECTED", + "PAUSED", + "FAILED" + ], + "enumDescriptions": [ + "No information available.", + "The proposed spoke is pending review.", + "The proposed spoke has been rejected by the hub administrator.", + "The spoke has been deactivated internally.", + "Network Connectivity Center encountered errors while accepting the spoke." + ], + "type": "string" + }, + "message": { + "description": "Human-readable details about this reason.", + "type": "string" + }, + "userDetails": { + "description": "Additional information provided by the user in the RejectSpoke call.", + "type": "string" + } + }, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", @@ -2194,6 +4835,55 @@ } }, "type": "object" + }, + "VirtualMachine": { + "description": "VM instances to which this policy-based route applies to.", + "id": "VirtualMachine", + "properties": { + "tags": { + "description": "Optional. A list of VM instance tags the this policy-based route applies to. VM instances that have ANY of tags specified here will install this PBR.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Warnings": { + "description": "Informational warning message.", + "id": "Warnings", + "properties": { + "code": { + "description": "Output only. A warning code, if applicable.", + "enum": [ + "WARNING_UNSPECIFIED", + "RESOURCE_NOT_ACTIVE", + "RESOURCE_BEING_MODIFIED" + ], + "enumDescriptions": [ + "Default value.", + "The policy-based route is not active and functioning. Common causes are the dependent network was deleted or the resource project was turned off.", + "The policy-based route is being modified (e.g. created/deleted) at this time." + ], + "readOnly": true, + "type": "string" + }, + "data": { + "additionalProperties": { + "type": "string" + }, + "description": "Output only. Metadata about this warning in key: value format. The key should provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement.", + "readOnly": true, + "type": "object" + }, + "warningMessage": { + "description": "Output only. A human-readable description of the warning code.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/networkconnectivity/v1alpha1/networkconnectivity-api.json b/etc/api/networkconnectivity/v1alpha1/networkconnectivity-api.json index 94d1ff42c3..7a05dd902d 100644 --- a/etc/api/networkconnectivity/v1alpha1/networkconnectivity-api.json +++ b/etc/api/networkconnectivity/v1alpha1/networkconnectivity-api.json @@ -203,7 +203,7 @@ "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "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" } @@ -236,7 +236,7 @@ "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "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" } @@ -368,7 +368,7 @@ "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "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" }, @@ -474,7 +474,7 @@ "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 t he request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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. An optional request ID to identify requests. Specify a unique 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 the original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -507,7 +507,7 @@ "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 t he request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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. An optional request ID to identify requests. Specify a unique 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 the original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -639,7 +639,7 @@ "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 t he request times out. If you make the request again with the same request ID, the server can check if the original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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. An optional request ID to identify requests. Specify a unique 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 the original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -800,7 +800,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "networkconnectivity.projects.locations.operations.list", @@ -861,7 +861,7 @@ "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "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" }, @@ -899,7 +899,7 @@ "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "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" } @@ -1031,7 +1031,7 @@ "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "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" }, @@ -1116,7 +1116,7 @@ } } }, - "revision": "20230105", + "revision": "20240221", "rootUrl": "https://networkconnectivity.googleapis.com/", "schemas": { "AuditConfig": { @@ -1176,14 +1176,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1271,7 +1271,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" } }, @@ -1329,6 +1329,7 @@ "type": "string" }, "spokes": { + "deprecated": true, "description": "Output only. A list of the URIs of all attached spokes. This field is deprecated and will not be included in future API versions. Call ListSpokes on each region instead.", "items": { "type": "string" @@ -1405,11 +1406,13 @@ "items": { "enum": [ "OVERLAP_UNSPECIFIED", - "OVERLAP_ROUTE_RANGE" + "OVERLAP_ROUTE_RANGE", + "OVERLAP_EXISTING_SUBNET_RANGE" ], "enumDescriptions": [ "No overlap overrides.", - "Allow creation of static routes more specific than the current internal range." + "Allow creation of static routes more specific than the current internal range.", + "Allow creation of internal ranges that overlap with existing subnets." ], "type": "string" }, @@ -1567,7 +1570,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1645,7 +1648,7 @@ "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/).", + "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": { @@ -1684,6 +1687,7 @@ "type": "string" }, "networkInterface": { + "deprecated": true, "type": "string" }, "virtualMachine": { diff --git a/etc/api/networkmanagement/v1/networkmanagement-api.json b/etc/api/networkmanagement/v1/networkmanagement-api.json index ce80be1f6c..b7ef0855d1 100644 --- a/etc/api/networkmanagement/v1/networkmanagement-api.json +++ b/etc/api/networkmanagement/v1/networkmanagement-api.json @@ -542,7 +542,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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/global/operations", "httpMethod": "GET", "id": "networkmanagement.projects.locations.global.operations.list", @@ -591,7 +591,7 @@ } } }, - "revision": "20230105", + "revision": "20240221", "rootUrl": "https://networkmanagement.googleapis.com/", "schemas": { "AbortInfo": { @@ -603,47 +603,107 @@ "enum": [ "CAUSE_UNSPECIFIED", "UNKNOWN_NETWORK", - "UNKNOWN_IP", "UNKNOWN_PROJECT", - "PERMISSION_DENIED", - "NO_SOURCE_LOCATION", - "INVALID_ARGUMENT", "NO_EXTERNAL_IP", "UNINTENDED_DESTINATION", - "TRACE_TOO_LONG", - "INTERNAL_ERROR", "SOURCE_ENDPOINT_NOT_FOUND", "MISMATCHED_SOURCE_NETWORK", "DESTINATION_ENDPOINT_NOT_FOUND", "MISMATCHED_DESTINATION_NETWORK", + "UNKNOWN_IP", + "SOURCE_IP_ADDRESS_NOT_IN_SOURCE_NETWORK", + "PERMISSION_DENIED", + "PERMISSION_DENIED_NO_CLOUD_NAT_CONFIGS", + "PERMISSION_DENIED_NO_NEG_ENDPOINT_CONFIGS", + "NO_SOURCE_LOCATION", + "INVALID_ARGUMENT", + "TRACE_TOO_LONG", + "INTERNAL_ERROR", "UNSUPPORTED", "MISMATCHED_IP_VERSION", - "GKE_KONNECTIVITY_PROXY_UNSUPPORTED" + "GKE_KONNECTIVITY_PROXY_UNSUPPORTED", + "RESOURCE_CONFIG_NOT_FOUND", + "VM_INSTANCE_CONFIG_NOT_FOUND", + "NETWORK_CONFIG_NOT_FOUND", + "FIREWALL_CONFIG_NOT_FOUND", + "ROUTE_CONFIG_NOT_FOUND", + "GOOGLE_MANAGED_SERVICE_AMBIGUOUS_PSC_ENDPOINT", + "SOURCE_PSC_CLOUD_SQL_UNSUPPORTED", + "SOURCE_FORWARDING_RULE_UNSUPPORTED", + "NON_ROUTABLE_IP_ADDRESS" + ], + "enumDeprecated": [ + false, + true, + true, + true, + true, + true, + true, + true, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "Cause is unspecified.", - "Aborted due to unknown network. The reachability analysis cannot proceed because the user does not have access to the host project's network configurations, including firewall rules and routes. This happens when the project is a service project and the endpoints being traced are in the host project's network.", - "Aborted because the IP address(es) are unknown.", - "Aborted because no project information can be derived from the test input.", - "Aborted because the user lacks the permission to access all or part of the network configurations required to run the test.", - "Aborted because no valid source endpoint is derived from the input test request.", - "Aborted because the source and/or destination endpoint specified in the test are invalid. The possible reasons that an endpoint is invalid include: malformed IP address; nonexistent instance or network URI; IP address not in the range of specified network URI; and instance not owning the network interface in the specified network.", - "Aborted because traffic is sent from a public IP to an instance without an external IP.", - "Aborted because none of the traces matches destination information specified in the input test request.", - "Aborted because the number of steps in the trace exceeding a certain limit which may be caused by routing loop.", + "Aborted due to unknown network. Deprecated, not used in the new tests.", + "Aborted because no project information can be derived from the test input. Deprecated, not used in the new tests.", + "Aborted because traffic is sent from a public IP to an instance without an external IP. Deprecated, not used in the new tests.", + "Aborted because none of the traces matches destination information specified in the input test request. Deprecated, not used in the new tests.", + "Aborted because the source endpoint could not be found. Deprecated, not used in the new tests.", + "Aborted because the source network does not match the source endpoint. Deprecated, not used in the new tests.", + "Aborted because the destination endpoint could not be found. Deprecated, not used in the new tests.", + "Aborted because the destination network does not match the destination endpoint. Deprecated, not used in the new tests.", + "Aborted because no endpoint with the packet's destination IP address is found.", + "Aborted because the source IP address doesn't belong to any of the subnets of the source VPC network.", + "Aborted because user lacks permission to access all or part of the network configurations required to run the test.", + "Aborted because user lacks permission to access Cloud NAT configs required to run the test.", + "Aborted because user lacks permission to access Network endpoint group endpoint configs required to run the test.", + "Aborted because no valid source or destination endpoint is derived from the input test request.", + "Aborted because the source or destination endpoint specified in the request is invalid. Some examples: - The request might contain malformed resource URI, project ID, or IP address. - The request might contain inconsistent information (for example, the request might include both the instance and the network, but the instance might not have a NIC in that network).", + "Aborted because the number of steps in the trace exceeds a certain limit. It might be caused by a routing loop.", "Aborted due to internal server error.", - "Aborted because the source endpoint could not be found.", - "Aborted because the source network does not match the source endpoint.", - "Aborted because the destination endpoint could not be found.", - "Aborted because the destination network does not match the destination endpoint.", "Aborted because the test scenario is not supported.", "Aborted because the source and destination resources have no common IP version.", - "Aborted because the connection between the control plane and the node of the source cluster is initiated by the node and managed by the Konnectivity proxy." + "Aborted because the connection between the control plane and the node of the source cluster is initiated by the node and managed by the Konnectivity proxy.", + "Aborted because expected resource configuration was missing.", + "Aborted because expected VM instance configuration was missing.", + "Aborted because expected network configuration was missing.", + "Aborted because expected firewall configuration was missing.", + "Aborted because expected route 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 one of the endpoints is a non-routable IP address (loopback, link-local, etc)." ], "type": "string" }, + "ipAddress": { + "description": "IP address that caused the abort.", + "type": "string" + }, "projectsMissingPermission": { - "description": "List of project IDs that the user has specified in the request but does not have permission to access network configs. Analysis is aborted in this case with the PERMISSION_DENIED cause.", + "description": "List of project IDs the user specified in the request but lacks access to. In this case, analysis is aborted with the PERMISSION_DENIED cause.", "items": { "type": "string" }, @@ -657,7 +717,7 @@ "type": "object" }, "AppEngineVersionEndpoint": { - "description": "Wrapper for app engine service version attributes.", + "description": "Wrapper for the App Engine service version attributes.", "id": "AppEngineVersionEndpoint", "properties": { "uri": { @@ -747,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -900,6 +960,11 @@ "description": "Required. Unique name of the resource using the form: `projects/{project_id}/locations/global/connectivityTests/{test_id}`", "type": "string" }, + "probingDetails": { + "$ref": "ProbingDetails", + "description": "Output only. The probing details of this test from the latest run, present for applicable tests only. The details are updated when creating a new test, updating an existing test, or triggering a one-time rerun of an existing test.", + "readOnly": true + }, "protocol": { "description": "IP Protocol of the test. When not provided, \"TCP\" is assumed.", "type": "string" @@ -933,6 +998,10 @@ "description": "Details of the final state \"deliver\" and associated resource.", "id": "DeliverInfo", "properties": { + "ipAddress": { + "description": "IP address of the target (if applicable).", + "type": "string" + }, "resourceUri": { "description": "URI of the resource that the packet is delivered to.", "type": "string" @@ -948,7 +1017,13 @@ "CLOUD_SQL_INSTANCE", "PSC_PUBLISHED_SERVICE", "PSC_GOOGLE_API", - "PSC_VPC_SC" + "PSC_VPC_SC", + "SERVERLESS_NEG", + "STORAGE_BUCKET", + "PRIVATE_NETWORK", + "CLOUD_FUNCTION", + "APP_ENGINE_VERSION", + "CLOUD_RUN_REVISION" ], "enumDescriptions": [ "Target not specified.", @@ -959,7 +1034,13 @@ "Target is a Cloud SQL instance.", "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 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 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" } @@ -980,12 +1061,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", @@ -997,6 +1088,8 @@ "DROPPED_INSIDE_GKE_SERVICE", "DROPPED_INSIDE_CLOUD_SQL_SERVICE", "GOOGLE_MANAGED_SERVICE_NO_PEERING", + "GOOGLE_MANAGED_SERVICE_NO_PSC_ENDPOINT", + "GKE_PSC_ENDPOINT_MISSING", "CLOUD_SQL_INSTANCE_NO_IP_ADDRESS", "GKE_CONTROL_PLANE_REGION_MISMATCH", "PUBLIC_GKE_CONTROL_PLANE_TO_PRIVATE_DESTINATION", @@ -1007,23 +1100,43 @@ "CLOUD_FUNCTION_NOT_ACTIVE", "VPC_CONNECTOR_NOT_SET", "VPC_CONNECTOR_NOT_RUNNING", + "FORWARDING_RULE_REGION_MISMATCH", "PSC_CONNECTION_NOT_ACCEPTED", - "CLOUD_RUN_REVISION_NOT_READY" + "PSC_ENDPOINT_ACCESSED_FROM_PEERED_NETWORK", + "PSC_NEG_PRODUCER_ENDPOINT_NO_GLOBAL_ACCESS", + "PSC_NEG_PRODUCER_FORWARDING_RULE_MULTIPLE_PORTS", + "NO_NAT_SUBNETS_FOR_PSC_SERVICE_ATTACHMENT", + "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", + "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.", @@ -1035,6 +1148,8 @@ "Packet was dropped inside Google Kubernetes Engine Service.", "Packet was dropped inside Cloud SQL Service.", "Packet was dropped because there is no peering between the originating network and the Google Managed Services Network.", + "Packet was dropped because the Google-managed service uses Private Service Connect (PSC), but the PSC endpoint is not found in the project.", + "Packet was dropped because the GKE cluster uses Private Service Connect (PSC), but the PSC endpoint is not found in the project.", "Packet was dropped because the Cloud SQL instance has neither a private nor a public IP address.", "Packet was dropped because a GKE cluster private endpoint is unreachable from a region different from the cluster's region.", "Packet sent from a public GKE cluster control plane to a private IP address.", @@ -1045,14 +1160,47 @@ "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.", - "Packet sent from a Cloud Run revision that is not ready." + "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.", + "No NAT subnets are defined for the PSC service attachment.", + "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 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" + }, + "EdgeLocation": { + "description": "Representation of a network edge location as per https://cloud.google.com/vpc/docs/edge-locations.", + "id": "EdgeLocation", + "properties": { + "metropolitanArea": { + "description": "Name of the metropolitan area.", + "type": "string" } }, "type": "object" @@ -1083,6 +1231,29 @@ "description": "A [Cloud SQL](https://cloud.google.com/sql) instance URI.", "type": "string" }, + "forwardingRule": { + "description": "A forwarding rule and its corresponding IP address represent the frontend configuration of a Google Cloud load balancer. Forwarding rules are also used for protocol forwarding, Private Service Connect and other network services to provide forwarding information in the control plane. Format: projects/{project}/global/forwardingRules/{id} or projects/{project}/regions/{region}/forwardingRules/{id}", + "type": "string" + }, + "forwardingRuleTarget": { + "description": "Output only. Specifies the type of the target of the forwarding rule.", + "enum": [ + "FORWARDING_RULE_TARGET_UNSPECIFIED", + "INSTANCE", + "LOAD_BALANCER", + "VPN_GATEWAY", + "PSC" + ], + "enumDescriptions": [ + "Forwarding rule target is unknown.", + "Compute Engine instance for protocol forwarding.", + "Load Balancer. The specific type can be found from load_balancer_type.", + "Classic Cloud VPN Gateway.", + "Forwarding Rule is a Private Service Connect endpoint." + ], + "readOnly": true, + "type": "string" + }, "gkeMasterCluster": { "description": "A cluster URI for [Google Kubernetes Engine master](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-architecture).", "type": "string" @@ -1092,7 +1263,43 @@ "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](/load-balancing/docs/load-balancing-overview).", + "description": "The IP address of the endpoint, which can be an external or internal IP.", + "type": "string" + }, + "loadBalancerId": { + "description": "Output only. ID of the load balancer the forwarding rule points to. Empty for forwarding rules not related to load balancers.", + "readOnly": true, + "type": "string" + }, + "loadBalancerType": { + "description": "Output only. Type of the load balancer the forwarding rule points to.", + "enum": [ + "LOAD_BALANCER_TYPE_UNSPECIFIED", + "HTTPS_ADVANCED_LOAD_BALANCER", + "HTTPS_LOAD_BALANCER", + "REGIONAL_HTTPS_LOAD_BALANCER", + "INTERNAL_HTTPS_LOAD_BALANCER", + "SSL_PROXY_LOAD_BALANCER", + "TCP_PROXY_LOAD_BALANCER", + "INTERNAL_TCP_PROXY_LOAD_BALANCER", + "NETWORK_LOAD_BALANCER", + "LEGACY_NETWORK_LOAD_BALANCER", + "TCP_UDP_INTERNAL_LOAD_BALANCER" + ], + "enumDescriptions": [ + "Forwarding rule points to a different target than a load balancer or a load balancer type is unknown.", + "Global external HTTP(S) load balancer.", + "Global external HTTP(S) load balancer (classic)", + "Regional external HTTP(S) load balancer.", + "Internal HTTP(S) load balancer.", + "External SSL proxy load balancer.", + "External TCP proxy load balancer.", + "Internal regional TCP proxy load balancer.", + "External TCP/UDP Network load balancer.", + "Target-pool based external TCP/UDP Network load balancer.", + "Internal TCP/UDP load balancer." + ], + "readOnly": true, "type": "string" }, "network": { @@ -1108,8 +1315,8 @@ ], "enumDescriptions": [ "Default type if unspecified.", - "A network hosted within Google Cloud Platform. To receive more detailed output, specify the URI for the source or destination network.", - "A network hosted outside of Google Cloud Platform. This can be an on-premises network, or a network hosted by another cloud provider." + "A network hosted within Google Cloud. To receive more detailed output, specify the URI for the source or destination network.", + "A network hosted outside of Google Cloud. This can be an on-premises network, or a network hosted by another cloud provider." ], "type": "string" }, @@ -1119,7 +1326,7 @@ "type": "integer" }, "projectId": { - "description": "Project ID where the endpoint is located. The Project ID can be derived from the URI if you provide a VM instance or network URI. The following are two cases where you must provide the project ID: 1. Only the IP address is specified, and the IP address is within a GCP project. 2. When you are using Shared VPC and the IP address that you provide is from the service project. In this case, the network that the IP address resides in is defined in the host project.", + "description": "Project ID where the endpoint is located. The Project ID can be derived from the URI if you provide a VM instance or network URI. The following are two cases where you must provide the project ID: 1. Only the IP address is specified, and the IP address is within a Google Cloud project. 2. When you are using Shared VPC and the IP address that you provide is from the service project. In this case, the network that the IP address resides in is defined in the host project.", "type": "string" } }, @@ -1146,6 +1353,10 @@ "description": "IP protocol in string format, for example: \"TCP\", \"UDP\", \"ICMP\".", "type": "string" }, + "sourceAgentUri": { + "description": "URI of the source telemetry agent this packet originates from.", + "type": "string" + }, "sourceIp": { "description": "Source IP address.", "type": "string" @@ -1190,7 +1401,7 @@ "id": "FirewallInfo", "properties": { "action": { - "description": "Possible values: ALLOW, DENY", + "description": "Possible values: ALLOW, DENY, APPLY_SECURITY_PROFILE_GROUP", "type": "string" }, "direction": { @@ -1209,7 +1420,10 @@ "VPC_FIREWALL_RULE", "IMPLIED_VPC_FIREWALL_RULE", "SERVERLESS_VPC_ACCESS_MANAGED_FIREWALL_RULE", - "NETWORK_FIREWALL_POLICY_RULE" + "NETWORK_FIREWALL_POLICY_RULE", + "NETWORK_REGIONAL_FIREWALL_POLICY_RULE", + "UNSUPPORTED_FIREWALL_POLICY_RULE", + "TRACKING_STATE" ], "enumDescriptions": [ "Unspecified type.", @@ -1217,7 +1431,10 @@ "VPC firewall rule. For details, see [VPC firewall rules overview](https://cloud.google.com/vpc/docs/firewalls).", "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)." + "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).", + "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" }, @@ -1259,6 +1476,10 @@ "description": "Details of the final state \"forward\" and associated resource.", "id": "ForwardInfo", "properties": { + "ipAddress": { + "description": "IP address of the target (if applicable).", + "type": "string" + }, "resourceUri": { "description": "URI of the resource that the packet is forwarded to.", "type": "string" @@ -1273,7 +1494,21 @@ "GKE_MASTER", "IMPORTED_CUSTOM_ROUTE_NEXT_HOP", "CLOUD_SQL_INSTANCE", - "ANOTHER_PROJECT" + "ANOTHER_PROJECT", + "NCC_HUB", + "ROUTER_APPLIANCE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + true, + false, + true, + false, + false, + false ], "enumDescriptions": [ "Target not specified.", @@ -1283,7 +1518,9 @@ "Forwarded to a Google Kubernetes Engine Container cluster master.", "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 a VPC network in another project.", + "Forwarded to an NCC Hub.", + "Forwarded to a router appliance." ], "type": "string" } @@ -1348,6 +1585,39 @@ }, "type": "object" }, + "GoogleServiceInfo": { + "description": "For display only. Details of a Google Service sending packets to a VPC network. Although the source IP might be a publicly routable address, some Google Services use special routes within Google production infrastructure to reach Compute Engine Instances. https://cloud.google.com/vpc/docs/routes#special_return_paths", + "id": "GoogleServiceInfo", + "properties": { + "googleServiceType": { + "description": "Recognized type of a Google Service.", + "enum": [ + "GOOGLE_SERVICE_TYPE_UNSPECIFIED", + "IAP", + "GFE_PROXY_OR_HEALTH_CHECK_PROBER", + "CLOUD_DNS", + "GOOGLE_API", + "GOOGLE_API_PSC", + "GOOGLE_API_VPC_SC" + ], + "enumDescriptions": [ + "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", + "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" + }, + "sourceIp": { + "description": "Source IP address.", + "type": "string" + } + }, + "type": "object" + }, "InstanceInfo": { "description": "For display only. Metadata associated with a Compute Engine instance.", "id": "InstanceInfo", @@ -1380,6 +1650,7 @@ "type": "string" }, "serviceAccount": { + "deprecated": true, "description": "Service account authorized for the instance.", "type": "string" }, @@ -1390,6 +1661,37 @@ }, "type": "object" }, + "LatencyDistribution": { + "description": "Describes measured latency distribution.", + "id": "LatencyDistribution", + "properties": { + "latencyPercentiles": { + "description": "Representative latency percentiles.", + "items": { + "$ref": "LatencyPercentile" + }, + "type": "array" + } + }, + "type": "object" + }, + "LatencyPercentile": { + "description": "Latency percentile rank and value.", + "id": "LatencyPercentile", + "properties": { + "latencyMicros": { + "description": "percent-th percentile of latency observed, in microseconds. Fraction of percent/100 of samples have latency lower or equal to the value of this field.", + "format": "int64", + "type": "string" + }, + "percent": { + "description": "Percentage of samples this data point applies to.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "ListConnectivityTestsResponse": { "description": "Response for the `ListConnectivityTests` method.", "id": "ListConnectivityTestsResponse", @@ -1494,6 +1796,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", @@ -1526,7 +1890,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": { @@ -1553,7 +1918,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1586,6 +1951,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", @@ -1634,7 +2076,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" } }, @@ -1678,7 +2120,7 @@ "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/).", + "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": { @@ -1708,6 +2150,131 @@ }, "type": "object" }, + "ProbingDetails": { + "description": "Results of active probing from the last run of the test.", + "id": "ProbingDetails", + "properties": { + "abortCause": { + "description": "The reason probing was aborted.", + "enum": [ + "PROBING_ABORT_CAUSE_UNSPECIFIED", + "PERMISSION_DENIED", + "NO_SOURCE_LOCATION" + ], + "enumDescriptions": [ + "No reason was specified.", + "The user lacks permission to access some of the network resources required to run the test.", + "No valid source endpoint could be derived from the request." + ], + "type": "string" + }, + "destinationEgressLocation": { + "$ref": "EdgeLocation", + "description": "The EdgeLocation from which a packet destined for/originating from the internet will egress/ingress the Google network. This will only be populated for a connectivity test which has an internet destination/source address. The absence of this field *must not* be used as an indication that the destination/source is part of the Google network." + }, + "endpointInfo": { + "$ref": "EndpointInfo", + "description": "The source and destination endpoints derived from the test input and used for active probing." + }, + "error": { + "$ref": "Status", + "description": "Details about an internal failure or the cancellation of active probing." + }, + "probingLatency": { + "$ref": "LatencyDistribution", + "description": "Latency as measured by active probing in one direction: from the source to the destination endpoint." + }, + "result": { + "description": "The overall result of active probing.", + "enum": [ + "PROBING_RESULT_UNSPECIFIED", + "REACHABLE", + "UNREACHABLE", + "REACHABILITY_INCONSISTENT", + "UNDETERMINED" + ], + "enumDescriptions": [ + "No result was specified.", + "At least 95% of packets reached the destination.", + "No packets reached the destination.", + "Less than 95% of packets reached the destination.", + "Reachability could not be determined. Possible reasons are: * The user lacks permission to access some of the network resources required to run the test. * No valid source endpoint could be derived from the request. * An internal error occurred." + ], + "type": "string" + }, + "sentProbeCount": { + "description": "Number of probes sent.", + "format": "int32", + "type": "integer" + }, + "successfulProbeCount": { + "description": "Number of probes that reached the destination.", + "format": "int32", + "type": "integer" + }, + "verifyTime": { + "description": "The time that reachability was assessed through active probing.", + "format": "google-datetime", + "type": "string" + } + }, + "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", @@ -1729,7 +2296,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" @@ -1771,7 +2338,7 @@ "type": "array" }, "displayName": { - "description": "Name of a Compute Engine route.", + "description": "Name of a route.", "type": "string" }, "instanceTags": { @@ -1781,8 +2348,16 @@ }, "type": "array" }, + "nccHubUri": { + "description": "URI of a NCC Hub. NCC_HUB routes only.", + "type": "string" + }, + "nccSpokeUri": { + "description": "URI of a NCC Spoke. NCC_HUB routes only.", + "type": "string" + }, "networkUri": { - "description": "URI of a Compute Engine network.", + "description": "URI of a Compute Engine network. NETWORK routes only.", "type": "string" }, "nextHop": { @@ -1803,7 +2378,8 @@ "NEXT_HOP_INTERNET_GATEWAY", "NEXT_HOP_BLACKHOLE", "NEXT_HOP_ILB", - "NEXT_HOP_ROUTER_APPLIANCE" + "NEXT_HOP_ROUTER_APPLIANCE", + "NEXT_HOP_NCC_HUB" ], "enumDescriptions": [ "Unspecified type. Default value.", @@ -1817,7 +2393,8 @@ "Next hop is an internet gateway.", "Next hop is blackhole; that is, the next hop either does not exist or is not running.", "Next hop is the forwarding rule of an Internal Load Balancer.", - "Next hop is a [router appliance instance](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/ra-overview)." + "Next hop is a [router appliance instance](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/ra-overview).", + "Next hop is an NCC hub." ], "type": "string" }, @@ -1833,6 +2410,20 @@ }, "type": "array" }, + "routeScope": { + "description": "Indicates where route is applicable.", + "enum": [ + "ROUTE_SCOPE_UNSPECIFIED", + "NETWORK", + "NCC_HUB" + ], + "enumDescriptions": [ + "Unspecified scope. Default value.", + "Route is applicable to packets in Network.", + "Route is applicable to packets using NCC Hub's routing table." + ], + "type": "string" + }, "routeType": { "description": "Type of route.", "enum": [ @@ -1869,7 +2460,7 @@ "type": "array" }, "uri": { - "description": "URI of a Compute Engine route. Dynamic route from cloud router does not have a URI. Advertised route from Google Cloud VPC to on-premises network also does not have a URI.", + "description": "URI of a route. Dynamic, peering static and peering dynamic routes do not have an URI. Advertised route from Google Cloud VPC to on-premises network also does not have an URI.", "type": "string" } }, @@ -1978,13 +2569,26 @@ "$ref": "GKEMasterInfo", "description": "Display information of a Google Kubernetes Engine cluster master." }, + "googleService": { + "$ref": "GoogleServiceInfo", + "description": "Display information of a Google service" + }, "instance": { "$ref": "InstanceInfo", "description": "Display information of a Compute Engine instance." }, "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", @@ -1994,6 +2598,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." @@ -2004,16 +2612,20 @@ "STATE_UNSPECIFIED", "START_FROM_INSTANCE", "START_FROM_INTERNET", + "START_FROM_GOOGLE_SERVICE", "START_FROM_PRIVATE_NETWORK", "START_FROM_GKE_MASTER", "START_FROM_CLOUD_SQL_INSTANCE", "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", @@ -2029,20 +2641,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. 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.", @@ -2060,6 +2709,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." @@ -2075,6 +2728,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", @@ -2111,6 +2775,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/etc/api/networkmanagement/v1beta1/networkmanagement-api.json b/etc/api/networkmanagement/v1beta1/networkmanagement-api.json index e6cc1a7556..38b075991d 100644 --- a/etc/api/networkmanagement/v1beta1/networkmanagement-api.json +++ b/etc/api/networkmanagement/v1beta1/networkmanagement-api.json @@ -542,7 +542,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/projects/{projectsId}/locations/global/operations", "httpMethod": "GET", "id": "networkmanagement.projects.locations.global.operations.list", @@ -591,7 +591,7 @@ } } }, - "revision": "20230105", + "revision": "20240221", "rootUrl": "https://networkmanagement.googleapis.com/", "schemas": { "AbortInfo": { @@ -603,47 +603,107 @@ "enum": [ "CAUSE_UNSPECIFIED", "UNKNOWN_NETWORK", - "UNKNOWN_IP", "UNKNOWN_PROJECT", - "PERMISSION_DENIED", - "NO_SOURCE_LOCATION", - "INVALID_ARGUMENT", "NO_EXTERNAL_IP", "UNINTENDED_DESTINATION", - "TRACE_TOO_LONG", - "INTERNAL_ERROR", "SOURCE_ENDPOINT_NOT_FOUND", "MISMATCHED_SOURCE_NETWORK", "DESTINATION_ENDPOINT_NOT_FOUND", "MISMATCHED_DESTINATION_NETWORK", + "UNKNOWN_IP", + "SOURCE_IP_ADDRESS_NOT_IN_SOURCE_NETWORK", + "PERMISSION_DENIED", + "PERMISSION_DENIED_NO_CLOUD_NAT_CONFIGS", + "PERMISSION_DENIED_NO_NEG_ENDPOINT_CONFIGS", + "NO_SOURCE_LOCATION", + "INVALID_ARGUMENT", + "TRACE_TOO_LONG", + "INTERNAL_ERROR", "UNSUPPORTED", "MISMATCHED_IP_VERSION", - "GKE_KONNECTIVITY_PROXY_UNSUPPORTED" + "GKE_KONNECTIVITY_PROXY_UNSUPPORTED", + "RESOURCE_CONFIG_NOT_FOUND", + "VM_INSTANCE_CONFIG_NOT_FOUND", + "NETWORK_CONFIG_NOT_FOUND", + "FIREWALL_CONFIG_NOT_FOUND", + "ROUTE_CONFIG_NOT_FOUND", + "GOOGLE_MANAGED_SERVICE_AMBIGUOUS_PSC_ENDPOINT", + "SOURCE_PSC_CLOUD_SQL_UNSUPPORTED", + "SOURCE_FORWARDING_RULE_UNSUPPORTED", + "NON_ROUTABLE_IP_ADDRESS" + ], + "enumDeprecated": [ + false, + true, + true, + true, + true, + true, + true, + true, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "Cause is unspecified.", - "Aborted due to unknown network. The reachability analysis cannot proceed because the user does not have access to the host project's network configurations, including firewall rules and routes. This happens when the project is a service project and the endpoints being traced are in the host project's network.", - "Aborted because the IP address(es) are unknown.", - "Aborted because no project information can be derived from the test input.", - "Aborted because the user lacks the permission to access all or part of the network configurations required to run the test.", - "Aborted because no valid source endpoint is derived from the input test request.", - "Aborted because the source and/or destination endpoint specified in the test are invalid. The possible reasons that an endpoint is invalid include: malformed IP address; nonexistent instance or network URI; IP address not in the range of specified network URI; and instance not owning the network interface in the specified network.", - "Aborted because traffic is sent from a public IP to an instance without an external IP.", - "Aborted because none of the traces matches destination information specified in the input test request.", - "Aborted because the number of steps in the trace exceeding a certain limit which may be caused by routing loop.", + "Aborted due to unknown network. Deprecated, not used in the new tests.", + "Aborted because no project information can be derived from the test input. Deprecated, not used in the new tests.", + "Aborted because traffic is sent from a public IP to an instance without an external IP. Deprecated, not used in the new tests.", + "Aborted because none of the traces matches destination information specified in the input test request. Deprecated, not used in the new tests.", + "Aborted because the source endpoint could not be found. Deprecated, not used in the new tests.", + "Aborted because the source network does not match the source endpoint. Deprecated, not used in the new tests.", + "Aborted because the destination endpoint could not be found. Deprecated, not used in the new tests.", + "Aborted because the destination network does not match the destination endpoint. Deprecated, not used in the new tests.", + "Aborted because no endpoint with the packet's destination IP address is found.", + "Aborted because the source IP address doesn't belong to any of the subnets of the source VPC network.", + "Aborted because user lacks permission to access all or part of the network configurations required to run the test.", + "Aborted because user lacks permission to access Cloud NAT configs required to run the test.", + "Aborted because user lacks permission to access Network endpoint group endpoint configs required to run the test.", + "Aborted because no valid source or destination endpoint is derived from the input test request.", + "Aborted because the source or destination endpoint specified in the request is invalid. Some examples: - The request might contain malformed resource URI, project ID, or IP address. - The request might contain inconsistent information (for example, the request might include both the instance and the network, but the instance might not have a NIC in that network).", + "Aborted because the number of steps in the trace exceeds a certain limit. It might be caused by a routing loop.", "Aborted due to internal server error.", - "Aborted because the source endpoint could not be found.", - "Aborted because the source network does not match the source endpoint.", - "Aborted because the destination endpoint could not be found.", - "Aborted because the destination network does not match the destination endpoint.", "Aborted because the test scenario is not supported.", "Aborted because the source and destination resources have no common IP version.", - "Aborted because the connection between the control plane and the node of the source cluster is initiated by the node and managed by the Konnectivity proxy." + "Aborted because the connection between the control plane and the node of the source cluster is initiated by the node and managed by the Konnectivity proxy.", + "Aborted because expected resource configuration was missing.", + "Aborted because expected VM instance configuration was missing.", + "Aborted because expected network configuration was missing.", + "Aborted because expected firewall configuration was missing.", + "Aborted because expected route 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 one of the endpoints is a non-routable IP address (loopback, link-local, etc)." ], "type": "string" }, + "ipAddress": { + "description": "IP address that caused the abort.", + "type": "string" + }, "projectsMissingPermission": { - "description": "List of project IDs that the user has specified in the request but does not have permission to access network configs. Analysis is aborted in this case with the PERMISSION_DENIED cause.", + "description": "List of project IDs the user specified in the request but lacks access to. In this case, analysis is aborted with the PERMISSION_DENIED cause.", "items": { "type": "string" }, @@ -657,7 +717,7 @@ "type": "object" }, "AppEngineVersionEndpoint": { - "description": "Wrapper for app engine service version attributes.", + "description": "Wrapper for the App Engine service version attributes.", "id": "AppEngineVersionEndpoint", "properties": { "uri": { @@ -747,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -825,6 +885,7 @@ "type": "string" }, "serviceName": { + "deprecated": true, "description": "ID of Cloud Run Service this revision belongs to.", "type": "string" }, @@ -942,6 +1003,10 @@ "description": "Details of the final state \"deliver\" and associated resource.", "id": "DeliverInfo", "properties": { + "ipAddress": { + "description": "IP address of the target (if applicable).", + "type": "string" + }, "resourceUri": { "description": "URI of the resource that the packet is delivered to.", "type": "string" @@ -957,7 +1022,13 @@ "CLOUD_SQL_INSTANCE", "PSC_PUBLISHED_SERVICE", "PSC_GOOGLE_API", - "PSC_VPC_SC" + "PSC_VPC_SC", + "SERVERLESS_NEG", + "STORAGE_BUCKET", + "PRIVATE_NETWORK", + "CLOUD_FUNCTION", + "APP_ENGINE_VERSION", + "CLOUD_RUN_REVISION" ], "enumDescriptions": [ "Target not specified.", @@ -968,7 +1039,13 @@ "Target is a Cloud SQL instance.", "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 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 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" } @@ -989,12 +1066,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", @@ -1006,6 +1093,7 @@ "DROPPED_INSIDE_GKE_SERVICE", "DROPPED_INSIDE_CLOUD_SQL_SERVICE", "GOOGLE_MANAGED_SERVICE_NO_PEERING", + "GOOGLE_MANAGED_SERVICE_NO_PSC_ENDPOINT", "GKE_PSC_ENDPOINT_MISSING", "CLOUD_SQL_INSTANCE_NO_IP_ADDRESS", "GKE_CONTROL_PLANE_REGION_MISMATCH", @@ -1017,23 +1105,43 @@ "CLOUD_FUNCTION_NOT_ACTIVE", "VPC_CONNECTOR_NOT_SET", "VPC_CONNECTOR_NOT_RUNNING", + "FORWARDING_RULE_REGION_MISMATCH", "PSC_CONNECTION_NOT_ACCEPTED", - "CLOUD_RUN_REVISION_NOT_READY" + "PSC_ENDPOINT_ACCESSED_FROM_PEERED_NETWORK", + "PSC_NEG_PRODUCER_ENDPOINT_NO_GLOBAL_ACCESS", + "PSC_NEG_PRODUCER_FORWARDING_RULE_MULTIPLE_PORTS", + "NO_NAT_SUBNETS_FOR_PSC_SERVICE_ATTACHMENT", + "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", + "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.", @@ -1045,6 +1153,7 @@ "Packet was dropped inside Google Kubernetes Engine Service.", "Packet was dropped inside Cloud SQL Service.", "Packet was dropped because there is no peering between the originating network and the Google Managed Services Network.", + "Packet was dropped because the Google-managed service uses Private Service Connect (PSC), but the PSC endpoint is not found in the project.", "Packet was dropped because the GKE cluster uses Private Service Connect (PSC), but the PSC endpoint is not found in the project.", "Packet was dropped because the Cloud SQL instance has neither a private nor a public IP address.", "Packet was dropped because a GKE cluster private endpoint is unreachable from a region different from the cluster's region.", @@ -1056,14 +1165,36 @@ "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.", - "Packet sent from a Cloud Run revision that is not ready." + "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.", + "No NAT subnets are defined for the PSC service attachment.", + "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 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" @@ -1105,6 +1236,29 @@ "description": "A [Cloud SQL](https://cloud.google.com/sql) instance URI.", "type": "string" }, + "forwardingRule": { + "description": "A forwarding rule and its corresponding IP address represent the frontend configuration of a Google Cloud load balancer. Forwarding rules are also used for protocol forwarding, Private Service Connect and other network services to provide forwarding information in the control plane. Format: projects/{project}/global/forwardingRules/{id} or projects/{project}/regions/{region}/forwardingRules/{id}", + "type": "string" + }, + "forwardingRuleTarget": { + "description": "Output only. Specifies the type of the target of the forwarding rule.", + "enum": [ + "FORWARDING_RULE_TARGET_UNSPECIFIED", + "INSTANCE", + "LOAD_BALANCER", + "VPN_GATEWAY", + "PSC" + ], + "enumDescriptions": [ + "Forwarding rule target is unknown.", + "Compute Engine instance for protocol forwarding.", + "Load Balancer. The specific type can be found from load_balancer_type.", + "Classic Cloud VPN Gateway.", + "Forwarding Rule is a Private Service Connect endpoint." + ], + "readOnly": true, + "type": "string" + }, "gkeMasterCluster": { "description": "A cluster URI for [Google Kubernetes Engine master](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-architecture).", "type": "string" @@ -1114,7 +1268,43 @@ "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": { + "description": "Output only. ID of the load balancer the forwarding rule points to. Empty for forwarding rules not related to load balancers.", + "readOnly": true, + "type": "string" + }, + "loadBalancerType": { + "description": "Output only. Type of the load balancer the forwarding rule points to.", + "enum": [ + "LOAD_BALANCER_TYPE_UNSPECIFIED", + "HTTPS_ADVANCED_LOAD_BALANCER", + "HTTPS_LOAD_BALANCER", + "REGIONAL_HTTPS_LOAD_BALANCER", + "INTERNAL_HTTPS_LOAD_BALANCER", + "SSL_PROXY_LOAD_BALANCER", + "TCP_PROXY_LOAD_BALANCER", + "INTERNAL_TCP_PROXY_LOAD_BALANCER", + "NETWORK_LOAD_BALANCER", + "LEGACY_NETWORK_LOAD_BALANCER", + "TCP_UDP_INTERNAL_LOAD_BALANCER" + ], + "enumDescriptions": [ + "Forwarding rule points to a different target than a load balancer or a load balancer type is unknown.", + "Global external HTTP(S) load balancer.", + "Global external HTTP(S) load balancer (classic)", + "Regional external HTTP(S) load balancer.", + "Internal HTTP(S) load balancer.", + "External SSL proxy load balancer.", + "External TCP proxy load balancer.", + "Internal regional TCP proxy load balancer.", + "External TCP/UDP Network load balancer.", + "Target-pool based external TCP/UDP Network load balancer.", + "Internal TCP/UDP load balancer." + ], + "readOnly": true, "type": "string" }, "network": { @@ -1130,8 +1320,8 @@ ], "enumDescriptions": [ "Default type if unspecified.", - "A network hosted within Google Cloud Platform. To receive more detailed output, specify the URI for the source or destination network.", - "A network hosted outside of Google Cloud Platform. This can be an on-premises network, or a network hosted by another cloud provider." + "A network hosted within Google Cloud. To receive more detailed output, specify the URI for the source or destination network.", + "A network hosted outside of Google Cloud. This can be an on-premises network, or a network hosted by another cloud provider." ], "type": "string" }, @@ -1141,7 +1331,7 @@ "type": "integer" }, "projectId": { - "description": "Project ID where the endpoint is located. The Project ID can be derived from the URI if you provide a VM instance or network URI. The following are two cases where you must provide the project ID: 1. Only the IP address is specified, and the IP address is within a GCP project. 2. When you are using Shared VPC and the IP address that you provide is from the service project. In this case, the network that the IP address resides in is defined in the host project.", + "description": "Project ID where the endpoint is located. The Project ID can be derived from the URI if you provide a VM instance or network URI. The following are two cases where you must provide the project ID: 1. Only the IP address is specified, and the IP address is within a Google Cloud project. 2. When you are using Shared VPC and the IP address that you provide is from the service project. In this case, the network that the IP address resides in is defined in the host project.", "type": "string" } }, @@ -1216,7 +1406,7 @@ "id": "FirewallInfo", "properties": { "action": { - "description": "Possible values: ALLOW, DENY", + "description": "Possible values: ALLOW, DENY, APPLY_SECURITY_PROFILE_GROUP", "type": "string" }, "direction": { @@ -1235,7 +1425,10 @@ "VPC_FIREWALL_RULE", "IMPLIED_VPC_FIREWALL_RULE", "SERVERLESS_VPC_ACCESS_MANAGED_FIREWALL_RULE", - "NETWORK_FIREWALL_POLICY_RULE" + "NETWORK_FIREWALL_POLICY_RULE", + "NETWORK_REGIONAL_FIREWALL_POLICY_RULE", + "UNSUPPORTED_FIREWALL_POLICY_RULE", + "TRACKING_STATE" ], "enumDescriptions": [ "Unspecified type.", @@ -1243,7 +1436,10 @@ "VPC firewall rule. For details, see [VPC firewall rules overview](https://cloud.google.com/vpc/docs/firewalls).", "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)." + "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).", + "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" }, @@ -1285,6 +1481,10 @@ "description": "Details of the final state \"forward\" and associated resource.", "id": "ForwardInfo", "properties": { + "ipAddress": { + "description": "IP address of the target (if applicable).", + "type": "string" + }, "resourceUri": { "description": "URI of the resource that the packet is forwarded to.", "type": "string" @@ -1299,7 +1499,21 @@ "GKE_MASTER", "IMPORTED_CUSTOM_ROUTE_NEXT_HOP", "CLOUD_SQL_INSTANCE", - "ANOTHER_PROJECT" + "ANOTHER_PROJECT", + "NCC_HUB", + "ROUTER_APPLIANCE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + true, + false, + true, + false, + false, + false ], "enumDescriptions": [ "Target not specified.", @@ -1309,7 +1523,9 @@ "Forwarded to a Google Kubernetes Engine Container cluster master.", "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 a VPC network in another project.", + "Forwarded to an NCC Hub.", + "Forwarded to a router appliance." ], "type": "string" } @@ -1374,6 +1590,39 @@ }, "type": "object" }, + "GoogleServiceInfo": { + "description": "For display only. Details of a Google Service sending packets to a VPC network. Although the source IP might be a publicly routable address, some Google Services use special routes within Google production infrastructure to reach Compute Engine Instances. https://cloud.google.com/vpc/docs/routes#special_return_paths", + "id": "GoogleServiceInfo", + "properties": { + "googleServiceType": { + "description": "Recognized type of a Google Service.", + "enum": [ + "GOOGLE_SERVICE_TYPE_UNSPECIFIED", + "IAP", + "GFE_PROXY_OR_HEALTH_CHECK_PROBER", + "CLOUD_DNS", + "GOOGLE_API", + "GOOGLE_API_PSC", + "GOOGLE_API_VPC_SC" + ], + "enumDescriptions": [ + "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", + "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" + }, + "sourceIp": { + "description": "Source IP address.", + "type": "string" + } + }, + "type": "object" + }, "InstanceInfo": { "description": "For display only. Metadata associated with a Compute Engine instance.", "id": "InstanceInfo", @@ -1406,6 +1655,7 @@ "type": "string" }, "serviceAccount": { + "deprecated": true, "description": "Service account authorized for the instance.", "type": "string" }, @@ -1551,6 +1801,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", @@ -1583,7 +1895,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": { @@ -1610,7 +1923,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1643,6 +1956,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", @@ -1691,7 +2081,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" } }, @@ -1735,7 +2125,7 @@ "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/).", + "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": { @@ -1835,6 +2225,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", @@ -1856,7 +2301,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" @@ -1898,7 +2343,7 @@ "type": "array" }, "displayName": { - "description": "Name of a Compute Engine route.", + "description": "Name of a route.", "type": "string" }, "instanceTags": { @@ -1908,8 +2353,16 @@ }, "type": "array" }, + "nccHubUri": { + "description": "URI of a NCC Hub. NCC_HUB routes only.", + "type": "string" + }, + "nccSpokeUri": { + "description": "URI of a NCC Spoke. NCC_HUB routes only.", + "type": "string" + }, "networkUri": { - "description": "URI of a Compute Engine network.", + "description": "URI of a Compute Engine network. NETWORK routes only.", "type": "string" }, "nextHop": { @@ -1930,7 +2383,8 @@ "NEXT_HOP_INTERNET_GATEWAY", "NEXT_HOP_BLACKHOLE", "NEXT_HOP_ILB", - "NEXT_HOP_ROUTER_APPLIANCE" + "NEXT_HOP_ROUTER_APPLIANCE", + "NEXT_HOP_NCC_HUB" ], "enumDescriptions": [ "Unspecified type. Default value.", @@ -1944,7 +2398,8 @@ "Next hop is an internet gateway.", "Next hop is blackhole; that is, the next hop either does not exist or is not running.", "Next hop is the forwarding rule of an Internal Load Balancer.", - "Next hop is a [router appliance instance](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/ra-overview)." + "Next hop is a [router appliance instance](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/ra-overview).", + "Next hop is an NCC hub." ], "type": "string" }, @@ -1960,6 +2415,20 @@ }, "type": "array" }, + "routeScope": { + "description": "Indicates where route is applicable.", + "enum": [ + "ROUTE_SCOPE_UNSPECIFIED", + "NETWORK", + "NCC_HUB" + ], + "enumDescriptions": [ + "Unspecified scope. Default value.", + "Route is applicable to packets in Network.", + "Route is applicable to packets using NCC Hub's routing table." + ], + "type": "string" + }, "routeType": { "description": "Type of route.", "enum": [ @@ -1996,7 +2465,7 @@ "type": "array" }, "uri": { - "description": "URI of a Compute Engine route. Dynamic route from cloud router does not have a URI. Advertised route from Google Cloud VPC to on-premises network also does not have a URI.", + "description": "URI of a route. Dynamic, peering static and peering dynamic routes do not have an URI. Advertised route from Google Cloud VPC to on-premises network also does not have an URI.", "type": "string" } }, @@ -2105,13 +2574,26 @@ "$ref": "GKEMasterInfo", "description": "Display information of a Google Kubernetes Engine cluster master." }, + "googleService": { + "$ref": "GoogleServiceInfo", + "description": "Display information of a Google service" + }, "instance": { "$ref": "InstanceInfo", "description": "Display information of a Compute Engine instance." }, "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", @@ -2121,6 +2603,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." @@ -2131,16 +2617,20 @@ "STATE_UNSPECIFIED", "START_FROM_INSTANCE", "START_FROM_INTERNET", + "START_FROM_GOOGLE_SERVICE", "START_FROM_PRIVATE_NETWORK", "START_FROM_GKE_MASTER", "START_FROM_CLOUD_SQL_INSTANCE", "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", @@ -2156,24 +2646,61 @@ "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. 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.", - "Forwarding state: arriving at a Compute Engine external load balancer.", + "Forwarding state: arriving at a Compute Engine internal load balancer. Deprecated in favor of the `ANALYZE_LOAD_BALANCER_BACKEND` state, not used in new tests.", + "Forwarding state: arriving at a Compute Engine external load balancer. Deprecated in favor of the `ANALYZE_LOAD_BALANCER_BACKEND` state, not used in new tests.", "Forwarding state: arriving at a Cloud VPN gateway.", "Forwarding state: arriving at a Cloud VPN tunnel.", "Forwarding state: arriving at a VPC connector.", @@ -2187,6 +2714,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." @@ -2202,6 +2733,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", @@ -2238,6 +2780,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/etc/api/networksecurity/v1/networksecurity-api.json b/etc/api/networksecurity/v1/networksecurity-api.json index aec39adc20..98a207cca7 100644 --- a/etc/api/networksecurity/v1/networksecurity-api.json +++ b/etc/api/networksecurity/v1/networksecurity-api.json @@ -105,6 +105,429 @@ }, "protocol": "rest", "resources": { + "organizations": { + "resources": { + "locations": { + "resources": { + "addressGroups": { + "methods": { + "addItems": { + "description": "Adds items to an address group.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:addItems", + "httpMethod": "POST", + "id": "networksecurity.organizations.locations.addressGroups.addItems", + "parameterOrder": [ + "addressGroup" + ], + "parameters": { + "addressGroup": { + "description": "Required. A name of the AddressGroup to add items to. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+addressGroup}:addItems", + "request": { + "$ref": "AddAddressGroupItemsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "cloneItems": { + "description": "Clones items from one address group to another.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:cloneItems", + "httpMethod": "POST", + "id": "networksecurity.organizations.locations.addressGroups.cloneItems", + "parameterOrder": [ + "addressGroup" + ], + "parameters": { + "addressGroup": { + "description": "Required. A name of the AddressGroup to clone items to. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+addressGroup}:cloneItems", + "request": { + "$ref": "CloneAddressGroupItemsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "create": { + "description": "Creates a new address group in a given project and location.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/addressGroups", + "httpMethod": "POST", + "id": "networksecurity.organizations.locations.addressGroups.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "addressGroupId": { + "description": "Required. Short name of the AddressGroup resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"authz_policy\".", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the AddressGroup. Must be in the format `projects/*/locations/{location}`.", + "location": "path", + "pattern": "^organizations/[^/]+/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}/addressGroups", + "request": { + "$ref": "AddressGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an address group.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}", + "httpMethod": "DELETE", + "id": "networksecurity.organizations.locations.addressGroups.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the AddressGroup to delete. Must be in the format `projects/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "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/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single address group.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}", + "httpMethod": "GET", + "id": "networksecurity.organizations.locations.addressGroups.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the AddressGroup to get. Must be in the format `projects/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "AddressGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists address groups in a given project and location.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/addressGroups", + "httpMethod": "GET", + "id": "networksecurity.organizations.locations.addressGroups.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of AddressGroups to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListAddressGroupsResponse` Indicates that this is a continuation of a prior `ListAddressGroups` 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 AddressGroups should be listed, specified in the format `projects/*/locations/{location}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/addressGroups", + "response": { + "$ref": "ListAddressGroupsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "listReferences": { + "description": "Lists references of an address group.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:listReferences", + "httpMethod": "GET", + "id": "networksecurity.organizations.locations.addressGroups.listReferences", + "parameterOrder": [ + "addressGroup" + ], + "parameters": { + "addressGroup": { + "description": "Required. A name of the AddressGroup to clone items to. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The maximum number of references to return. If unspecified, server will pick an appropriate default. Server may return fewer items than requested. A caller should only rely on response's next_page_token to determine if there are more AddressGroupUsers left to be queried.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The next_page_token value returned from a previous List request, if any.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+addressGroup}:listReferences", + "response": { + "$ref": "ListAddressGroupReferencesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates parameters of an address group.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}", + "httpMethod": "PATCH", + "id": "networksecurity.organizations.locations.addressGroups.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the AddressGroup resource. It matches pattern `projects/*/locations/{location}/addressGroups/`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "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": "Optional. Field mask is used to specify the fields to be overwritten in the AddressGroup 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": "AddressGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "removeItems": { + "description": "Removes items from an address group.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:removeItems", + "httpMethod": "POST", + "id": "networksecurity.organizations.locations.addressGroups.removeItems", + "parameterOrder": [ + "addressGroup" + ], + "parameters": { + "addressGroup": { + "description": "Required. A name of the AddressGroup to remove items from. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+addressGroup}:removeItems", + "request": { + "$ref": "RemoveAddressGroupItemsRequest" + }, + "response": { + "$ref": "Operation" + }, + "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/organizations/{organizationsId}/locations/{locationsId}/operations/{operationsId}:cancel", + "httpMethod": "POST", + "id": "networksecurity.organizations.locations.operations.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be cancelled.", + "location": "path", + "pattern": "^organizations/[^/]+/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/organizations/{organizationsId}/locations/{locationsId}/operations/{operationsId}", + "httpMethod": "DELETE", + "id": "networksecurity.organizations.locations.operations.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be deleted.", + "location": "path", + "pattern": "^organizations/[^/]+/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/organizations/{organizationsId}/locations/{locationsId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "networksecurity.organizations.locations.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^organizations/[^/]+/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/organizations/{organizationsId}/locations/{locationsId}/operations", + "httpMethod": "GET", + "id": "networksecurity.organizations.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": "^organizations/[^/]+/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" + ] + } + } + } + } + } + } + }, "projects": { "resources": { "locations": { @@ -177,6 +600,385 @@ } }, "resources": { + "addressGroups": { + "methods": { + "addItems": { + "description": "Adds items to an address group.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:addItems", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.addressGroups.addItems", + "parameterOrder": [ + "addressGroup" + ], + "parameters": { + "addressGroup": { + "description": "Required. A name of the AddressGroup to add items to. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+addressGroup}:addItems", + "request": { + "$ref": "AddAddressGroupItemsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "cloneItems": { + "description": "Clones items from one address group to another.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:cloneItems", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.addressGroups.cloneItems", + "parameterOrder": [ + "addressGroup" + ], + "parameters": { + "addressGroup": { + "description": "Required. A name of the AddressGroup to clone items to. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+addressGroup}:cloneItems", + "request": { + "$ref": "CloneAddressGroupItemsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "create": { + "description": "Creates a new address group in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/addressGroups", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.addressGroups.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "addressGroupId": { + "description": "Required. Short name of the AddressGroup resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"authz_policy\".", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the AddressGroup. Must be in the format `projects/*/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 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}/addressGroups", + "request": { + "$ref": "AddressGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single address group.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}", + "httpMethod": "DELETE", + "id": "networksecurity.projects.locations.addressGroups.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the AddressGroup to delete. Must be in the format `projects/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "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/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single address group.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.addressGroups.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the AddressGroup to get. Must be in the format `projects/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "AddressGroup" + }, + "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}/addressGroups/{addressGroupsId}:getIamPolicy", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.addressGroups.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/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "GoogleIamV1Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists address groups in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/addressGroups", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.addressGroups.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of AddressGroups to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListAddressGroupsResponse` Indicates that this is a continuation of a prior `ListAddressGroups` 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 AddressGroups should be listed, specified in the format `projects/*/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/addressGroups", + "response": { + "$ref": "ListAddressGroupsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "listReferences": { + "description": "Lists references of an address group.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:listReferences", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.addressGroups.listReferences", + "parameterOrder": [ + "addressGroup" + ], + "parameters": { + "addressGroup": { + "description": "Required. A name of the AddressGroup to clone items to. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The maximum number of references to return. If unspecified, server will pick an appropriate default. Server may return fewer items than requested. A caller should only rely on response's next_page_token to determine if there are more AddressGroupUsers left to be queried.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The next_page_token value returned from a previous List request, if any.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+addressGroup}:listReferences", + "response": { + "$ref": "ListAddressGroupReferencesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single address group.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}", + "httpMethod": "PATCH", + "id": "networksecurity.projects.locations.addressGroups.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the AddressGroup resource. It matches pattern `projects/*/locations/{location}/addressGroups/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "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": "Optional. Field mask is used to specify the fields to be overwritten in the AddressGroup 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": "AddressGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "removeItems": { + "description": "Removes items from an address group.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:removeItems", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.addressGroups.removeItems", + "parameterOrder": [ + "addressGroup" + ], + "parameters": { + "addressGroup": { + "description": "Required. A name of the AddressGroup to remove items from. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+addressGroup}:removeItems", + "request": { + "$ref": "RemoveAddressGroupItemsRequest" + }, + "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}/addressGroups/{addressGroupsId}:setIamPolicy", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.addressGroups.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/[^/]+/addressGroups/[^/]+$", + "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}/addressGroups/{addressGroupsId}:testIamPermissions", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.addressGroups.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/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "GoogleIamV1TestIamPermissionsRequest" + }, + "response": { + "$ref": "GoogleIamV1TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "authorizationPolicies": { "methods": { "create": { @@ -665,6 +1467,322 @@ } } }, + "gatewaySecurityPolicies": { + "methods": { + "create": { + "description": "Creates a new GatewaySecurityPolicy in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "gatewaySecurityPolicyId": { + "description": "Required. Short name of the GatewaySecurityPolicy resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"gateway_security_policy1\".", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the GatewaySecurityPolicy. Must be in the format `projects/{project}/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/gatewaySecurityPolicies", + "request": { + "$ref": "GatewaySecurityPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single GatewaySecurityPolicy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}", + "httpMethod": "DELETE", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the GatewaySecurityPolicy to delete. Must be in the format `projects/{project}/locations/{location}/gatewaySecurityPolicies/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+$", + "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 GatewaySecurityPolicy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the GatewaySecurityPolicy to get. Must be in the format `projects/{project}/locations/{location}/gatewaySecurityPolicies/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GatewaySecurityPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists GatewaySecurityPolicies in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of GatewaySecurityPolicies to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last 'ListGatewaySecurityPoliciesResponse' Indicates that this is a continuation of a prior 'ListGatewaySecurityPolicies' 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 GatewaySecurityPolicies should be listed, specified in the format `projects/{project}/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/gatewaySecurityPolicies", + "response": { + "$ref": "ListGatewaySecurityPoliciesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single GatewaySecurityPolicy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}", + "httpMethod": "PATCH", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource. Name is of the form projects/{project}/locations/{location}/gatewaySecurityPolicies/{gateway_security_policy} gateway_security_policy should match the pattern:(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the GatewaySecurityPolicy 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": "GatewaySecurityPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "rules": { + "methods": { + "create": { + "description": "Creates a new GatewaySecurityPolicy in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}/rules", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.rules.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "gatewaySecurityPolicyRuleId": { + "description": "The ID to use for the rule, which will become the final component of the rule's resource name. This value should be 4-63 characters, and valid characters are /a-z-/.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent where this rule will be created. Format : projects/{project}/location/{location}/gatewaySecurityPolicies/*", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/rules", + "request": { + "$ref": "GatewaySecurityPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single GatewaySecurityPolicyRule.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}/rules/{rulesId}", + "httpMethod": "DELETE", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.rules.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the GatewaySecurityPolicyRule to delete. Must be in the format `projects/{project}/locations/{location}/gatewaySecurityPolicies/{gatewaySecurityPolicy}/rules/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+/rules/[^/]+$", + "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 GatewaySecurityPolicyRule.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}/rules/{rulesId}", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.rules.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the GatewaySecurityPolicyRule to retrieve. Format: projects/{project}/location/{location}/gatewaySecurityPolicies/*/rules/*", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+/rules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GatewaySecurityPolicyRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists GatewaySecurityPolicyRules in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}/rules", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.rules.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of GatewaySecurityPolicyRules to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last 'ListGatewaySecurityPolicyRulesResponse' Indicates that this is a continuation of a prior 'ListGatewaySecurityPolicyRules' call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project, location and GatewaySecurityPolicy from which the GatewaySecurityPolicyRules should be listed, specified in the format `projects/{project}/locations/{location}/gatewaySecurityPolicies/{gatewaySecurityPolicy}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/rules", + "response": { + "$ref": "ListGatewaySecurityPolicyRulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single GatewaySecurityPolicyRule.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}/rules/{rulesId}", + "httpMethod": "PATCH", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.rules.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Immutable. Name of the resource. ame is the full resource name so projects/{project}/locations/{location}/gatewaySecurityPolicies/{gateway_security_policy}/rules/{rule} rule should match the pattern: (^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+/rules/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the GatewaySecurityPolicy 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": "GatewaySecurityPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "operations": { "methods": { "cancel": { @@ -746,7 +1864,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "networksecurity.projects.locations.operations.list", @@ -1031,15 +2149,417 @@ ] } } + }, + "tlsInspectionPolicies": { + "methods": { + "create": { + "description": "Creates a new TlsInspectionPolicy in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tlsInspectionPolicies", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.tlsInspectionPolicies.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the TlsInspectionPolicy. Must be in the format `projects/{project}/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "tlsInspectionPolicyId": { + "description": "Required. Short name of the TlsInspectionPolicy resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"tls_inspection_policy1\".", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/tlsInspectionPolicies", + "request": { + "$ref": "TlsInspectionPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single TlsInspectionPolicy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tlsInspectionPolicies/{tlsInspectionPoliciesId}", + "httpMethod": "DELETE", + "id": "networksecurity.projects.locations.tlsInspectionPolicies.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "force": { + "description": "If set to true, any rules for this TlsInspectionPolicy will also be deleted. (Otherwise, the request will only work if the TlsInspectionPolicy has no rules.)", + "location": "query", + "type": "boolean" + }, + "name": { + "description": "Required. A name of the TlsInspectionPolicy to delete. Must be in the format `projects/{project}/locations/{location}/tlsInspectionPolicies/{tls_inspection_policy}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tlsInspectionPolicies/[^/]+$", + "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 TlsInspectionPolicy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tlsInspectionPolicies/{tlsInspectionPoliciesId}", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.tlsInspectionPolicies.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the TlsInspectionPolicy to get. Must be in the format `projects/{project}/locations/{location}/tlsInspectionPolicies/{tls_inspection_policy}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tlsInspectionPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "TlsInspectionPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists TlsInspectionPolicies in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tlsInspectionPolicies", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.tlsInspectionPolicies.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of TlsInspectionPolicies to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last 'ListTlsInspectionPoliciesResponse' Indicates that this is a continuation of a prior 'ListTlsInspectionPolicies' 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 TlsInspectionPolicies should be listed, specified in the format `projects/{project}/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/tlsInspectionPolicies", + "response": { + "$ref": "ListTlsInspectionPoliciesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single TlsInspectionPolicy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tlsInspectionPolicies/{tlsInspectionPoliciesId}", + "httpMethod": "PATCH", + "id": "networksecurity.projects.locations.tlsInspectionPolicies.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource. Name is of the form projects/{project}/locations/{location}/tlsInspectionPolicies/{tls_inspection_policy} tls_inspection_policy should match the pattern:(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tlsInspectionPolicies/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the TlsInspectionPolicy 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": "TlsInspectionPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "urlLists": { + "methods": { + "create": { + "description": "Creates a new UrlList in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/urlLists", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.urlLists.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the UrlList. Must be in the format `projects/*/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "urlListId": { + "description": "Required. Short name of the UrlList resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"url_list\".", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/urlLists", + "request": { + "$ref": "UrlList" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single UrlList.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/urlLists/{urlListsId}", + "httpMethod": "DELETE", + "id": "networksecurity.projects.locations.urlLists.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the UrlList to delete. Must be in the format `projects/*/locations/{location}/urlLists/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/urlLists/[^/]+$", + "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 UrlList.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/urlLists/{urlListsId}", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.urlLists.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the UrlList to get. Must be in the format `projects/*/locations/{location}/urlLists/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/urlLists/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "UrlList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists UrlLists in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/urlLists", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.urlLists.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of UrlLists to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListUrlListsResponse` Indicates that this is a continuation of a prior `ListUrlLists` 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 UrlLists should be listed, specified in the format `projects/{project}/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/urlLists", + "response": { + "$ref": "ListUrlListsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single UrlList.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/urlLists/{urlListsId}", + "httpMethod": "PATCH", + "id": "networksecurity.projects.locations.urlLists.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource provided by the user. Name is of the form projects/{project}/locations/{location}/urlLists/{url_list} url_list should match the pattern:(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/urlLists/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the UrlList 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": "UrlList" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } } } } }, - "revision": "20230106", + "revision": "20240221", "rootUrl": "https://networksecurity.googleapis.com/", "schemas": { + "AddAddressGroupItemsRequest": { + "description": "Request used by the AddAddressGroupItems method.", + "id": "AddAddressGroupItemsRequest", + "properties": { + "items": { + "description": "Required. List of items to add.", + "items": { + "type": "string" + }, + "type": "array" + }, + "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).", + "type": "string" + } + }, + "type": "object" + }, + "AddressGroup": { + "description": "AddressGroup is a resource that specifies how a collection of IP/DNS used in Firewall Policy.", + "id": "AddressGroup", + "properties": { + "capacity": { + "description": "Required. Capacity of the Address Group", + "format": "int32", + "type": "integer" + }, + "createTime": { + "description": "Output only. The timestamp when the resource was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Free-text description of the resource.", + "type": "string" + }, + "items": { + "description": "Optional. List of items.", + "items": { + "type": "string" + }, + "type": "array" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of label tags associated with the AddressGroup resource.", + "type": "object" + }, + "name": { + "description": "Required. Name of the AddressGroup resource. It matches pattern `projects/*/locations/{location}/addressGroups/`.", + "type": "string" + }, + "selfLink": { + "description": "Output only. Server-defined fully-qualified URL for this resource.", + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Required. The type of the Address Group. Possible values are \"IPv4\" or \"IPV6\".", + "enum": [ + "TYPE_UNSPECIFIED", + "IPV4", + "IPV6" + ], + "enumDescriptions": [ + "Default value.", + "IP v4 ranges.", + "IP v6 ranges." + ], + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "AuthorizationPolicy": { "description": "AuthorizationPolicy is a resource that specifies how a server should authorize incoming connections. This resource in itself does not change the configuration unless it's attached to a target https proxy or endpoint config selector resource.", "id": "AuthorizationPolicy", @@ -1161,6 +2681,21 @@ }, "type": "object" }, + "CloneAddressGroupItemsRequest": { + "description": "Request used by the CloneAddressGroupItems method.", + "id": "CloneAddressGroupItemsRequest", + "properties": { + "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).", + "type": "string" + }, + "sourceAddressGroup": { + "description": "Required. Source address group to clone items from.", + "type": "string" + } + }, + "type": "object" + }, "Destination": { "description": "Specification of traffic destination attributes.", "id": "Destination", @@ -1223,6 +2758,99 @@ }, "type": "object" }, + "GatewaySecurityPolicy": { + "description": "The GatewaySecurityPolicy resource contains a collection of GatewaySecurityPolicyRules and associated metadata.", + "id": "GatewaySecurityPolicy", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the resource was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Free-text description of the resource.", + "type": "string" + }, + "name": { + "description": "Required. Name of the resource. Name is of the form projects/{project}/locations/{location}/gatewaySecurityPolicies/{gateway_security_policy} gateway_security_policy should match the pattern:(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", + "type": "string" + }, + "tlsInspectionPolicy": { + "description": "Optional. Name of a TLS Inspection Policy resource that defines how TLS inspection will be performed for any rule(s) which enables it.", + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GatewaySecurityPolicyRule": { + "description": "The GatewaySecurityPolicyRule resource is in a nested collection within a GatewaySecurityPolicy and represents a traffic matching condition and associated action to perform.", + "id": "GatewaySecurityPolicyRule", + "properties": { + "applicationMatcher": { + "description": "Optional. CEL expression for matching on L7/application level criteria.", + "type": "string" + }, + "basicProfile": { + "description": "Required. Profile which tells what the primitive action should be.", + "enum": [ + "BASIC_PROFILE_UNSPECIFIED", + "ALLOW", + "DENY" + ], + "enumDescriptions": [ + "If there is not a mentioned action for the target.", + "Allow the matched traffic.", + "Deny the matched traffic." + ], + "type": "string" + }, + "createTime": { + "description": "Output only. Time when the rule was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Free-text description of the resource.", + "type": "string" + }, + "enabled": { + "description": "Required. Whether the rule is enforced.", + "type": "boolean" + }, + "name": { + "description": "Required. Immutable. Name of the resource. ame is the full resource name so projects/{project}/locations/{location}/gatewaySecurityPolicies/{gateway_security_policy}/rules/{rule} rule should match the pattern: (^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", + "type": "string" + }, + "priority": { + "description": "Required. Priority of the rule. Lower number corresponds to higher precedence.", + "format": "int32", + "type": "integer" + }, + "sessionMatcher": { + "description": "Required. CEL expression for matching on session criteria.", + "type": "string" + }, + "tlsInspectionEnabled": { + "description": "Optional. Flag to enable TLS inspection of traffic matching on , can only be true if the parent GatewaySecurityPolicy references a TLSInspectionConfig.", + "type": "boolean" + }, + "updateTime": { + "description": "Output only. Time when the rule was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudNetworksecurityV1CertificateProvider": { "description": "Specification of certificate provider. Defines the mechanism to obtain the certificate and private key for peer to peer authentication.", "id": "GoogleCloudNetworksecurityV1CertificateProvider", @@ -1306,21 +2934,21 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, "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/).", + "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": { "auditConfigs": { @@ -1409,6 +3037,62 @@ }, "type": "object" }, + "ListAddressGroupReferencesResponse": { + "description": "Response of the ListAddressGroupReferences method.", + "id": "ListAddressGroupReferencesResponse", + "properties": { + "addressGroupReferences": { + "description": "A list of references that matches the specified filter in the request.", + "items": { + "$ref": "ListAddressGroupReferencesResponseAddressGroupReference" + }, + "type": "array" + }, + "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" + } + }, + "type": "object" + }, + "ListAddressGroupReferencesResponseAddressGroupReference": { + "description": "The Reference of AddressGroup.", + "id": "ListAddressGroupReferencesResponseAddressGroupReference", + "properties": { + "firewallPolicy": { + "description": "FirewallPolicy that is using the Address Group.", + "type": "string" + }, + "rulePriority": { + "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" + }, + "ListAddressGroupsResponse": { + "description": "Response returned by the ListAddressGroups method.", + "id": "ListAddressGroupsResponse", + "properties": { + "addressGroups": { + "description": "List of AddressGroups resources.", + "items": { + "$ref": "AddressGroup" + }, + "type": "array" + }, + "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" + } + }, + "type": "object" + }, "ListAuthorizationPoliciesResponse": { "description": "Response returned by the ListAuthorizationPolicies method.", "id": "ListAuthorizationPoliciesResponse", @@ -1445,6 +3129,56 @@ }, "type": "object" }, + "ListGatewaySecurityPoliciesResponse": { + "description": "Response returned by the ListGatewaySecurityPolicies method.", + "id": "ListGatewaySecurityPoliciesResponse", + "properties": { + "gatewaySecurityPolicies": { + "description": "List of GatewaySecurityPolicies resources.", + "items": { + "$ref": "GatewaySecurityPolicy" + }, + "type": "array" + }, + "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" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListGatewaySecurityPolicyRulesResponse": { + "description": "Response returned by the ListGatewaySecurityPolicyRules method.", + "id": "ListGatewaySecurityPolicyRulesResponse", + "properties": { + "gatewaySecurityPolicyRules": { + "description": "List of GatewaySecurityPolicyRule resources.", + "items": { + "$ref": "GatewaySecurityPolicyRule" + }, + "type": "array" + }, + "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" + }, + "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", @@ -1499,8 +3233,58 @@ }, "type": "object" }, + "ListTlsInspectionPoliciesResponse": { + "description": "Response returned by the ListTlsInspectionPolicies method.", + "id": "ListTlsInspectionPoliciesResponse", + "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" + }, + "tlsInspectionPolicies": { + "description": "List of TlsInspectionPolicies resources.", + "items": { + "$ref": "TlsInspectionPolicy" + }, + "type": "array" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListUrlListsResponse": { + "description": "Response returned by the ListUrlLists method.", + "id": "ListUrlListsResponse", + "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" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + }, + "urlLists": { + "description": "List of UrlList resources.", + "items": { + "$ref": "UrlList" + }, + "type": "array" + } + }, + "type": "object" + }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1538,11 +3322,29 @@ "id": "MTLSPolicy", "properties": { "clientValidationCa": { - "description": " Defines the mechanism to obtain the Certificate Authority certificate to validate the client certificate.", + "description": "Required if the policy is to be used with Traffic Director. For external HTTPS load balancers it must be empty. Defines the mechanism to obtain the Certificate Authority certificate to validate the client certificate.", "items": { "$ref": "ValidationCA" }, "type": "array" + }, + "clientValidationMode": { + "description": "When the client presents an invalid certificate or no certificate to the load balancer, the `client_validation_mode` specifies how the client connection is handled. Required if the policy is to be used with the external HTTPS load balancing. For Traffic Director it must be empty.", + "enum": [ + "CLIENT_VALIDATION_MODE_UNSPECIFIED", + "ALLOW_INVALID_OR_MISSING_CLIENT_CERT", + "REJECT_INVALID" + ], + "enumDescriptions": [ + "Not allowed.", + "Allow connection even if certificate chain validation of the client certificate failed or no client certificate was presented. The proof of possession of the private key is always checked if client certificate was presented. This mode requires the backend to implement processing of data extracted from a client certificate to authenticate the peer, or to reject connections if the client certificate fingerprint is missing.", + "Require a client certificate and allow connection to the backend only if validation of the client certificate passed. If set, requires a reference to non-empty TrustConfig specified in `client_validation_trust_config`." + ], + "type": "string" + }, + "clientValidationTrustConfig": { + "description": "Reference to the TrustConfig from certificatemanager.googleapis.com namespace. If specified, the chain validation will be performed against certificates configured in the given TrustConfig. Allowed only if the policy is to be used with external HTTPS load balancers.", + "type": "string" } }, "type": "object" @@ -1576,7 +3378,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" } }, @@ -1626,6 +3428,24 @@ }, "type": "object" }, + "RemoveAddressGroupItemsRequest": { + "description": "Request used by the RemoveAddressGroupItems method.", + "id": "RemoveAddressGroupItemsRequest", + "properties": { + "items": { + "description": "Required. List of items to remove.", + "items": { + "type": "string" + }, + "type": "array" + }, + "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).", + "type": "string" + } + }, + "type": "object" + }, "Rule": { "description": "Specification of rules.", "id": "Rule", @@ -1648,11 +3468,11 @@ "type": "object" }, "ServerTlsPolicy": { - "description": "ServerTlsPolicy is a resource that specifies how a server should authenticate incoming requests. This resource itself does not affect configuration unless it is attached to a target HTTPS proxy or endpoint config selector resource.", + "description": "ServerTlsPolicy is a resource that specifies how a server should authenticate incoming requests. This resource itself does not affect configuration unless it is attached to a target HTTPS proxy or endpoint config selector resource. ServerTlsPolicy in the form accepted by external HTTPS load balancers can be attached only to TargetHttpsProxy with an `EXTERNAL` or `EXTERNAL_MANAGED` load balancing scheme. Traffic Director compatible ServerTlsPolicies can be attached to EndpointPolicy and TargetHttpsProxy with Traffic Director `INTERNAL_SELF_MANAGED` load balancing scheme.", "id": "ServerTlsPolicy", "properties": { "allowOpen": { - "description": " Determines if server allows plaintext connections. If set to true, server allows plain text connections. By default, it is set to false. This setting is not exclusive of other encryption modes. For example, if `allow_open` and `mtls_policy` are set, server allows both plain text and mTLS connections. See documentation of other encryption modes to confirm compatibility. Consider using it if you wish to upgrade in place your deployment to TLS while having mixed TLS and non-TLS traffic reaching port :80.", + "description": "This field applies only for Traffic Director policies. It is must be set to false for external HTTPS load balancer policies. Determines if server allows plaintext connections. If set to true, server allows plain text connections. By default, it is set to false. This setting is not exclusive of other encryption modes. For example, if `allow_open` and `mtls_policy` are set, server allows both plain text and mTLS connections. See documentation of other encryption modes to confirm compatibility. Consider using it if you wish to upgrade in place your deployment to TLS while having mixed TLS and non-TLS traffic reaching port :80.", "type": "boolean" }, "createTime": { @@ -1674,7 +3494,7 @@ }, "mtlsPolicy": { "$ref": "MTLSPolicy", - "description": " Defines a mechanism to provision peer validation certificates for peer to peer authentication (Mutual TLS - mTLS). If not specified, client certificate will not be requested. The connection is treated as TLS and not mTLS. If `allow_open` and `mtls_policy` are set, server allows both plain text and mTLS connections." + "description": "This field is required if the policy is used with external HTTPS load balancers. This field can be empty for Traffic Director. Defines a mechanism to provision peer validation certificates for peer to peer authentication (Mutual TLS - mTLS). If not specified, client certificate will not be requested. The connection is treated as TLS and not mTLS. If `allow_open` and `mtls_policy` are set, server allows both plain text and mTLS connections." }, "name": { "description": "Required. Name of the ServerTlsPolicy resource. It matches the pattern `projects/*/locations/{location}/serverTlsPolicies/{server_tls_policy}`", @@ -1682,7 +3502,7 @@ }, "serverCertificate": { "$ref": "GoogleCloudNetworksecurityV1CertificateProvider", - "description": " Defines a mechanism to provision server identity (public and private keys). Cannot be combined with `allow_open` as a permissive mode that allows both plain text and TLS is not supported." + "description": "Optional if policy is to be used with Traffic Director. For external HTTPS load balancer must be empty. Defines a mechanism to provision server identity (public and private keys). Cannot be combined with `allow_open` as a permissive mode that allows both plain text and TLS is not supported." }, "updateTime": { "description": "Output only. The timestamp when the resource was updated.", @@ -1741,6 +3561,122 @@ }, "type": "object" }, + "TlsInspectionPolicy": { + "description": "The TlsInspectionPolicy resource contains references to CA pools in Certificate Authority Service and associated metadata.", + "id": "TlsInspectionPolicy", + "properties": { + "caPool": { + "description": "Required. A CA pool resource used to issue interception certificates. The CA pool string has a relative resource path following the form \"projects/{project}/locations/{location}/caPools/{ca_pool}\".", + "type": "string" + }, + "createTime": { + "description": "Output only. The timestamp when the resource was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "customTlsFeatures": { + "description": "Optional. List of custom TLS cipher suites selected. This field is valid only if the selected tls_feature_profile is CUSTOM. The compute.SslPoliciesService.ListAvailableFeatures method returns the set of features that can be specified in this list. Note that Secure Web Proxy does not yet honor this field.", + "items": { + "type": "string" + }, + "type": "array" + }, + "description": { + "description": "Optional. Free-text description of the resource.", + "type": "string" + }, + "excludePublicCaSet": { + "description": "Optional. If FALSE (the default), use our default set of public CAs in addition to any CAs specified in trust_config. These public CAs are currently based on the Mozilla Root Program and are subject to change over time. If TRUE, do not accept our default set of public CAs. Only CAs specified in trust_config will be accepted. This defaults to FALSE (use public CAs in addition to trust_config) for backwards compatibility, but trusting public root CAs is *not recommended* unless the traffic in question is outbound to public web servers. When possible, prefer setting this to \"false\" and explicitly specifying trusted CAs and certificates in a TrustConfig. Note that Secure Web Proxy does not yet honor this field.", + "type": "boolean" + }, + "minTlsVersion": { + "description": "Optional. Minimum TLS version that the firewall should use when negotiating connections with both clients and servers. If this is not set, then the default value is to allow the broadest set of clients and servers (TLS 1.0 or higher). Setting this to more restrictive values may improve security, but may also prevent the firewall from connecting to some clients or servers. Note that Secure Web Proxy does not yet honor this field.", + "enum": [ + "TLS_VERSION_UNSPECIFIED", + "TLS_1_0", + "TLS_1_1", + "TLS_1_2", + "TLS_1_3" + ], + "enumDescriptions": [ + "Indicates no TLS version was specified.", + "TLS 1.0", + "TLS 1.1", + "TLS 1.2", + "TLS 1.3" + ], + "type": "string" + }, + "name": { + "description": "Required. Name of the resource. Name is of the form projects/{project}/locations/{location}/tlsInspectionPolicies/{tls_inspection_policy} tls_inspection_policy should match the pattern:(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", + "type": "string" + }, + "tlsFeatureProfile": { + "description": "Optional. The selected Profile. If this is not set, then the default value is to allow the broadest set of clients and servers (\"PROFILE_COMPATIBLE\"). Setting this to more restrictive values may improve security, but may also prevent the TLS inspection proxy from connecting to some clients or servers. Note that Secure Web Proxy does not yet honor this field.", + "enum": [ + "PROFILE_UNSPECIFIED", + "PROFILE_COMPATIBLE", + "PROFILE_MODERN", + "PROFILE_RESTRICTED", + "PROFILE_CUSTOM" + ], + "enumDescriptions": [ + "Indicates no profile was specified.", + "Compatible profile. Allows the broadest set of clients, even those which support only out-of-date SSL features to negotiate with the TLS inspection proxy.", + "Modern profile. Supports a wide set of SSL features, allowing modern clients to negotiate SSL with the TLS inspection proxy.", + "Restricted profile. Supports a reduced set of SSL features, intended to meet stricter compliance requirements.", + "Custom profile. Allow only the set of allowed SSL features specified in the custom_features field of SslPolicy." + ], + "type": "string" + }, + "trustConfig": { + "description": "Optional. A TrustConfig resource used when making a connection to the TLS server. This is a relative resource path following the form \"projects/{project}/locations/{location}/trustConfigs/{trust_config}\". This is necessary to intercept TLS connections to servers with certificates signed by a private CA or self-signed certificates. Note that Secure Web Proxy does not yet honor this field.", + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "UrlList": { + "description": "UrlList proto helps users to set reusable, independently manageable lists of hosts, host patterns, URLs, URL patterns.", + "id": "UrlList", + "properties": { + "createTime": { + "description": "Output only. Time when the security policy was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Free-text description of the resource.", + "type": "string" + }, + "name": { + "description": "Required. Name of the resource provided by the user. Name is of the form projects/{project}/locations/{location}/urlLists/{url_list} url_list should match the pattern:(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", + "type": "string" + }, + "updateTime": { + "description": "Output only. Time when the security policy was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "values": { + "description": "Required. FQDNs and URLs.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ValidationCA": { "description": "Specification of ValidationCA. Defines the mechanism to obtain the Certificate Authority certificate to validate the peer certificate.", "id": "ValidationCA", diff --git a/etc/api/networksecurity/v1beta1/networksecurity-api.json b/etc/api/networksecurity/v1beta1/networksecurity-api.json index 30d15a0b85..c69cf121b4 100644 --- a/etc/api/networksecurity/v1beta1/networksecurity-api.json +++ b/etc/api/networksecurity/v1beta1/networksecurity-api.json @@ -109,6 +109,480 @@ "resources": { "locations": { "resources": { + "addressGroups": { + "methods": { + "addItems": { + "description": "Adds items to an address group.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:addItems", + "httpMethod": "POST", + "id": "networksecurity.organizations.locations.addressGroups.addItems", + "parameterOrder": [ + "addressGroup" + ], + "parameters": { + "addressGroup": { + "description": "Required. A name of the AddressGroup to add items to. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+addressGroup}:addItems", + "request": { + "$ref": "AddAddressGroupItemsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "cloneItems": { + "description": "Clones items from one address group to another.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:cloneItems", + "httpMethod": "POST", + "id": "networksecurity.organizations.locations.addressGroups.cloneItems", + "parameterOrder": [ + "addressGroup" + ], + "parameters": { + "addressGroup": { + "description": "Required. A name of the AddressGroup to clone items to. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+addressGroup}:cloneItems", + "request": { + "$ref": "CloneAddressGroupItemsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "create": { + "description": "Creates a new address group in a given project and location.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/addressGroups", + "httpMethod": "POST", + "id": "networksecurity.organizations.locations.addressGroups.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "addressGroupId": { + "description": "Required. Short name of the AddressGroup resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"authz_policy\".", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the AddressGroup. Must be in the format `projects/*/locations/{location}`.", + "location": "path", + "pattern": "^organizations/[^/]+/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": "v1beta1/{+parent}/addressGroups", + "request": { + "$ref": "AddressGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an address group.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}", + "httpMethod": "DELETE", + "id": "networksecurity.organizations.locations.addressGroups.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the AddressGroup to delete. Must be in the format `projects/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "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": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single address group.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}", + "httpMethod": "GET", + "id": "networksecurity.organizations.locations.addressGroups.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the AddressGroup to get. Must be in the format `projects/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "AddressGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists address groups in a given project and location.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/addressGroups", + "httpMethod": "GET", + "id": "networksecurity.organizations.locations.addressGroups.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of AddressGroups to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListAddressGroupsResponse` Indicates that this is a continuation of a prior `ListAddressGroups` 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 AddressGroups should be listed, specified in the format `projects/*/locations/{location}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/addressGroups", + "response": { + "$ref": "ListAddressGroupsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "listReferences": { + "description": "Lists references of an address group.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:listReferences", + "httpMethod": "GET", + "id": "networksecurity.organizations.locations.addressGroups.listReferences", + "parameterOrder": [ + "addressGroup" + ], + "parameters": { + "addressGroup": { + "description": "Required. A name of the AddressGroup to clone items to. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The maximum number of references to return. If unspecified, server will pick an appropriate default. Server may return fewer items than requested. A caller should only rely on response's next_page_token to determine if there are more AddressGroupUsers left to be queried.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The next_page_token value returned from a previous List request, if any.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+addressGroup}:listReferences", + "response": { + "$ref": "ListAddressGroupReferencesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates parameters of an address group.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}", + "httpMethod": "PATCH", + "id": "networksecurity.organizations.locations.addressGroups.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the AddressGroup resource. It matches pattern `projects/*/locations/{location}/addressGroups/`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "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": "Optional. Field mask is used to specify the fields to be overwritten in the AddressGroup 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": "v1beta1/{+name}", + "request": { + "$ref": "AddressGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "removeItems": { + "description": "Removes items from an address group.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:removeItems", + "httpMethod": "POST", + "id": "networksecurity.organizations.locations.addressGroups.removeItems", + "parameterOrder": [ + "addressGroup" + ], + "parameters": { + "addressGroup": { + "description": "Required. A name of the AddressGroup to remove items from. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+addressGroup}:removeItems", + "request": { + "$ref": "RemoveAddressGroupItemsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "firewallEndpoints": { + "methods": { + "create": { + "description": "Creates a new FirewallEndpoint in a given project and location.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/firewallEndpoints", + "httpMethod": "POST", + "id": "networksecurity.organizations.locations.firewallEndpoints.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "firewallEndpointId": { + "description": "Required. Id of the requesting object. If auto-generating Id server-side, remove this field and firewall_endpoint_id from the method_signature of Create RPC.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Value for parent.", + "location": "path", + "pattern": "^organizations/[^/]+/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": "v1beta1/{+parent}/firewallEndpoints", + "request": { + "$ref": "FirewallEndpoint" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single Endpoint.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/firewallEndpoints/{firewallEndpointsId}", + "httpMethod": "DELETE", + "id": "networksecurity.organizations.locations.firewallEndpoints.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/firewallEndpoints/[^/]+$", + "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": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single Endpoint.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/firewallEndpoints/{firewallEndpointsId}", + "httpMethod": "GET", + "id": "networksecurity.organizations.locations.firewallEndpoints.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/firewallEndpoints/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "FirewallEndpoint" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists FirewallEndpoints in a given project and location.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/firewallEndpoints", + "httpMethod": "GET", + "id": "networksecurity.organizations.locations.firewallEndpoints.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filtering results", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "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": "A token identifying a page of results the server should return.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent value for ListEndpointsRequest", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/firewallEndpoints", + "response": { + "$ref": "ListFirewallEndpointsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Update a single Endpoint.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/firewallEndpoints/{firewallEndpointsId}", + "httpMethod": "PATCH", + "id": "networksecurity.organizations.locations.firewallEndpoints.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. Identifier. name of resource", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/firewallEndpoints/[^/]+$", + "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 Endpoint 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": "v1beta1/{+name}", + "request": { + "$ref": "FirewallEndpoint" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "operations": { "methods": { "cancel": { @@ -190,7 +664,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "networksecurity.organizations.locations.operations.list", @@ -231,6 +705,330 @@ ] } } + }, + "securityProfileGroups": { + "methods": { + "create": { + "description": "Creates a new SecurityProfileGroup in a given organization and location.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfileGroups", + "httpMethod": "POST", + "id": "networksecurity.organizations.locations.securityProfileGroups.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the SecurityProfileGroup. Must be in the format `projects|organizations/*/locations/{location}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "securityProfileGroupId": { + "description": "Required. Short name of the SecurityProfileGroup resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"security_profile_group1\".", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+parent}/securityProfileGroups", + "request": { + "$ref": "SecurityProfileGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single SecurityProfileGroup.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfileGroups/{securityProfileGroupsId}", + "httpMethod": "DELETE", + "id": "networksecurity.organizations.locations.securityProfileGroups.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "Optional. If client provided etag is out of date, delete will return FAILED_PRECONDITION error.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. A name of the SecurityProfileGroup to delete. Must be in the format `projects|organizations/*/locations/{location}/securityProfileGroups/{security_profile_group}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/securityProfileGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single SecurityProfileGroup.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfileGroups/{securityProfileGroupsId}", + "httpMethod": "GET", + "id": "networksecurity.organizations.locations.securityProfileGroups.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the SecurityProfileGroup to get. Must be in the format `projects|organizations/*/locations/{location}/securityProfileGroups/{security_profile_group}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/securityProfileGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "SecurityProfileGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists SecurityProfileGroups in a given organization and location.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfileGroups", + "httpMethod": "GET", + "id": "networksecurity.organizations.locations.securityProfileGroups.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of SecurityProfileGroups to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListSecurityProfileGroupsResponse` Indicates that this is a continuation of a prior `ListSecurityProfileGroups` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project or organization and location from which the SecurityProfileGroups should be listed, specified in the format `projects|organizations/*/locations/{location}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/securityProfileGroups", + "response": { + "$ref": "ListSecurityProfileGroupsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single SecurityProfileGroup.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfileGroups/{securityProfileGroupsId}", + "httpMethod": "PATCH", + "id": "networksecurity.organizations.locations.securityProfileGroups.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. Identifier. Name of the SecurityProfileGroup resource. It matches pattern `projects|organizations/*/locations/{location}/securityProfileGroups/{security_profile_group}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/securityProfileGroups/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Field mask is used to specify the fields to be overwritten in the SecurityProfileGroup 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.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "request": { + "$ref": "SecurityProfileGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "securityProfiles": { + "methods": { + "create": { + "description": "Creates a new SecurityProfile in a given organization and location.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfiles", + "httpMethod": "POST", + "id": "networksecurity.organizations.locations.securityProfiles.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the SecurityProfile. Must be in the format `projects|organizations/*/locations/{location}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "securityProfileId": { + "description": "Required. Short name of the SecurityProfile resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"security_profile1\".", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+parent}/securityProfiles", + "request": { + "$ref": "SecurityProfile" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single SecurityProfile.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfiles/{securityProfilesId}", + "httpMethod": "DELETE", + "id": "networksecurity.organizations.locations.securityProfiles.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "Optional. If client provided etag is out of date, delete will return FAILED_PRECONDITION error.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. A name of the SecurityProfile to delete. Must be in the format `projects|organizations/*/locations/{location}/securityProfiles/{security_profile_id}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/securityProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single SecurityProfile.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfiles/{securityProfilesId}", + "httpMethod": "GET", + "id": "networksecurity.organizations.locations.securityProfiles.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the SecurityProfile to get. Must be in the format `projects|organizations/*/locations/{location}/securityProfiles/{security_profile_id}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/securityProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "SecurityProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists SecurityProfiles in a given organization and location.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfiles", + "httpMethod": "GET", + "id": "networksecurity.organizations.locations.securityProfiles.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of SecurityProfiles to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListSecurityProfilesResponse` Indicates that this is a continuation of a prior `ListSecurityProfiles` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project or organization and location from which the SecurityProfiles should be listed, specified in the format `projects|organizations/*/locations/{location}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/securityProfiles", + "response": { + "$ref": "ListSecurityProfilesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single SecurityProfile.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/securityProfiles/{securityProfilesId}", + "httpMethod": "PATCH", + "id": "networksecurity.organizations.locations.securityProfiles.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. Identifier. Name of the SecurityProfile resource. It matches pattern `projects|organizations/*/locations/{location}/securityProfiles/{security_profile}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/securityProfiles/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Field mask is used to specify the fields to be overwritten in the SecurityProfile 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.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "request": { + "$ref": "SecurityProfile" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } } @@ -310,6 +1108,155 @@ "resources": { "addressGroups": { "methods": { + "addItems": { + "description": "Adds items to an address group.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:addItems", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.addressGroups.addItems", + "parameterOrder": [ + "addressGroup" + ], + "parameters": { + "addressGroup": { + "description": "Required. A name of the AddressGroup to add items to. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+addressGroup}:addItems", + "request": { + "$ref": "AddAddressGroupItemsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "cloneItems": { + "description": "Clones items from one address group to another.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:cloneItems", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.addressGroups.cloneItems", + "parameterOrder": [ + "addressGroup" + ], + "parameters": { + "addressGroup": { + "description": "Required. A name of the AddressGroup to clone items to. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+addressGroup}:cloneItems", + "request": { + "$ref": "CloneAddressGroupItemsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "create": { + "description": "Creates a new address group in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.addressGroups.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "addressGroupId": { + "description": "Required. Short name of the AddressGroup resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"authz_policy\".", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the AddressGroup. Must be in the format `projects/*/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 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": "v1beta1/{+parent}/addressGroups", + "request": { + "$ref": "AddressGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single address group.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}", + "httpMethod": "DELETE", + "id": "networksecurity.projects.locations.addressGroups.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the AddressGroup to delete. Must be in the format `projects/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "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": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single address group.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.addressGroups.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the AddressGroup to get. Must be in the format `projects/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "AddressGroup" + }, + "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": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:getIamPolicy", @@ -341,6 +1288,145 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "Lists address groups in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.addressGroups.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of AddressGroups to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListAddressGroupsResponse` Indicates that this is a continuation of a prior `ListAddressGroups` 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 AddressGroups should be listed, specified in the format `projects/*/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/addressGroups", + "response": { + "$ref": "ListAddressGroupsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "listReferences": { + "description": "Lists references of an address group.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:listReferences", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.addressGroups.listReferences", + "parameterOrder": [ + "addressGroup" + ], + "parameters": { + "addressGroup": { + "description": "Required. A name of the AddressGroup to clone items to. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The maximum number of references to return. If unspecified, server will pick an appropriate default. Server may return fewer items than requested. A caller should only rely on response's next_page_token to determine if there are more AddressGroupUsers left to be queried.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The next_page_token value returned from a previous List request, if any.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+addressGroup}:listReferences", + "response": { + "$ref": "ListAddressGroupReferencesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single address group.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}", + "httpMethod": "PATCH", + "id": "networksecurity.projects.locations.addressGroups.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the AddressGroup resource. It matches pattern `projects/*/locations/{location}/addressGroups/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "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": "Optional. Field mask is used to specify the fields to be overwritten in the AddressGroup 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": "v1beta1/{+name}", + "request": { + "$ref": "AddressGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "removeItems": { + "description": "Removes items from an address group.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:removeItems", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.addressGroups.removeItems", + "parameterOrder": [ + "addressGroup" + ], + "parameters": { + "addressGroup": { + "description": "Required. A name of the AddressGroup to remove items from. Must be in the format `projects|organization/*/locations/{location}/addressGroups/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/addressGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+addressGroup}:removeItems", + "request": { + "$ref": "RemoveAddressGroupItemsRequest" + }, + "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": "v1beta1/projects/{projectsId}/locations/{locationsId}/addressGroups/{addressGroupsId}:setIamPolicy", @@ -887,6 +1973,504 @@ } } }, + "firewallEndpointAssociations": { + "methods": { + "create": { + "description": "Creates a new FirewallEndpointAssociation in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/firewallEndpointAssociations", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.firewallEndpointAssociations.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "firewallEndpointAssociationId": { + "description": "Optional. Id of the requesting object. If auto-generating Id server-side, remove this field and firewall_endpoint_association_id from the method_signature of Create RPC.", + "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": "v1beta1/{+parent}/firewallEndpointAssociations", + "request": { + "$ref": "FirewallEndpointAssociation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single FirewallEndpointAssociation.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/firewallEndpointAssociations/{firewallEndpointAssociationsId}", + "httpMethod": "DELETE", + "id": "networksecurity.projects.locations.firewallEndpointAssociations.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/firewallEndpointAssociations/[^/]+$", + "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": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single FirewallEndpointAssociation.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/firewallEndpointAssociations/{firewallEndpointAssociationsId}", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.firewallEndpointAssociations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/firewallEndpointAssociations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "FirewallEndpointAssociation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Associations in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/firewallEndpointAssociations", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.firewallEndpointAssociations.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filtering results", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "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": "A token identifying a page of results the server should return.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent value for ListAssociationsRequest", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/firewallEndpointAssociations", + "response": { + "$ref": "ListFirewallEndpointAssociationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Update a single FirewallEndpointAssociation.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/firewallEndpointAssociations/{firewallEndpointAssociationsId}", + "httpMethod": "PATCH", + "id": "networksecurity.projects.locations.firewallEndpointAssociations.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. Identifier. name of resource", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/firewallEndpointAssociations/[^/]+$", + "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 Association 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": "v1beta1/{+name}", + "request": { + "$ref": "FirewallEndpointAssociation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "gatewaySecurityPolicies": { + "methods": { + "create": { + "description": "Creates a new GatewaySecurityPolicy in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "gatewaySecurityPolicyId": { + "description": "Required. Short name of the GatewaySecurityPolicy resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"gateway_security_policy1\".", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the GatewaySecurityPolicy. Must be in the format `projects/{project}/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/gatewaySecurityPolicies", + "request": { + "$ref": "GatewaySecurityPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single GatewaySecurityPolicy.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}", + "httpMethod": "DELETE", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the GatewaySecurityPolicy to delete. Must be in the format `projects/{project}/locations/{location}/gatewaySecurityPolicies/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single GatewaySecurityPolicy.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the GatewaySecurityPolicy to get. Must be in the format `projects/{project}/locations/{location}/gatewaySecurityPolicies/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "GatewaySecurityPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists GatewaySecurityPolicies in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of GatewaySecurityPolicies to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last 'ListGatewaySecurityPoliciesResponse' Indicates that this is a continuation of a prior 'ListGatewaySecurityPolicies' 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 GatewaySecurityPolicies should be listed, specified in the format `projects/{project}/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/gatewaySecurityPolicies", + "response": { + "$ref": "ListGatewaySecurityPoliciesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single GatewaySecurityPolicy.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}", + "httpMethod": "PATCH", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource. Name is of the form projects/{project}/locations/{location}/gatewaySecurityPolicies/{gateway_security_policy} gateway_security_policy should match the pattern:(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the GatewaySecurityPolicy 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": "v1beta1/{+name}", + "request": { + "$ref": "GatewaySecurityPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "rules": { + "methods": { + "create": { + "description": "Creates a new GatewaySecurityPolicy in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}/rules", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.rules.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "gatewaySecurityPolicyRuleId": { + "description": "The ID to use for the rule, which will become the final component of the rule's resource name. This value should be 4-63 characters, and valid characters are /a-z-/.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent where this rule will be created. Format : projects/{project}/location/{location}/gatewaySecurityPolicies/*", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/rules", + "request": { + "$ref": "GatewaySecurityPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single GatewaySecurityPolicyRule.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}/rules/{rulesId}", + "httpMethod": "DELETE", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.rules.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the GatewaySecurityPolicyRule to delete. Must be in the format `projects/{project}/locations/{location}/gatewaySecurityPolicies/{gatewaySecurityPolicy}/rules/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+/rules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single GatewaySecurityPolicyRule.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}/rules/{rulesId}", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.rules.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the GatewaySecurityPolicyRule to retrieve. Format: projects/{project}/location/{location}/gatewaySecurityPolicies/*/rules/*", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+/rules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "GatewaySecurityPolicyRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists GatewaySecurityPolicyRules in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}/rules", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.rules.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of GatewaySecurityPolicyRules to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last 'ListGatewaySecurityPolicyRulesResponse' Indicates that this is a continuation of a prior 'ListGatewaySecurityPolicyRules' call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project, location and GatewaySecurityPolicy from which the GatewaySecurityPolicyRules should be listed, specified in the format `projects/{project}/locations/{location}/gatewaySecurityPolicies/{gatewaySecurityPolicy}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/rules", + "response": { + "$ref": "ListGatewaySecurityPolicyRulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single GatewaySecurityPolicyRule.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gatewaySecurityPolicies/{gatewaySecurityPoliciesId}/rules/{rulesId}", + "httpMethod": "PATCH", + "id": "networksecurity.projects.locations.gatewaySecurityPolicies.rules.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Immutable. Name of the resource. ame is the full resource name so projects/{project}/locations/{location}/gatewaySecurityPolicies/{gateway_security_policy}/rules/{rule} rule should match the pattern: (^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gatewaySecurityPolicies/[^/]+/rules/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the GatewaySecurityPolicy 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": "v1beta1/{+name}", + "request": { + "$ref": "GatewaySecurityPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "operations": { "methods": { "cancel": { @@ -968,7 +2552,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "networksecurity.projects.locations.operations.list", @@ -1253,15 +2837,417 @@ ] } } + }, + "tlsInspectionPolicies": { + "methods": { + "create": { + "description": "Creates a new TlsInspectionPolicy in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsInspectionPolicies", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.tlsInspectionPolicies.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the TlsInspectionPolicy. Must be in the format `projects/{project}/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "tlsInspectionPolicyId": { + "description": "Required. Short name of the TlsInspectionPolicy resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"tls_inspection_policy1\".", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+parent}/tlsInspectionPolicies", + "request": { + "$ref": "TlsInspectionPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single TlsInspectionPolicy.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsInspectionPolicies/{tlsInspectionPoliciesId}", + "httpMethod": "DELETE", + "id": "networksecurity.projects.locations.tlsInspectionPolicies.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "force": { + "description": "If set to true, any rules for this TlsInspectionPolicy will also be deleted. (Otherwise, the request will only work if the TlsInspectionPolicy has no rules.)", + "location": "query", + "type": "boolean" + }, + "name": { + "description": "Required. A name of the TlsInspectionPolicy to delete. Must be in the format `projects/{project}/locations/{location}/tlsInspectionPolicies/{tls_inspection_policy}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tlsInspectionPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single TlsInspectionPolicy.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsInspectionPolicies/{tlsInspectionPoliciesId}", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.tlsInspectionPolicies.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the TlsInspectionPolicy to get. Must be in the format `projects/{project}/locations/{location}/tlsInspectionPolicies/{tls_inspection_policy}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tlsInspectionPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "TlsInspectionPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists TlsInspectionPolicies in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsInspectionPolicies", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.tlsInspectionPolicies.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of TlsInspectionPolicies to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last 'ListTlsInspectionPoliciesResponse' Indicates that this is a continuation of a prior 'ListTlsInspectionPolicies' 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 TlsInspectionPolicies should be listed, specified in the format `projects/{project}/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/tlsInspectionPolicies", + "response": { + "$ref": "ListTlsInspectionPoliciesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single TlsInspectionPolicy.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsInspectionPolicies/{tlsInspectionPoliciesId}", + "httpMethod": "PATCH", + "id": "networksecurity.projects.locations.tlsInspectionPolicies.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource. Name is of the form projects/{project}/locations/{location}/tlsInspectionPolicies/{tls_inspection_policy} tls_inspection_policy should match the pattern:(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tlsInspectionPolicies/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the TlsInspectionPolicy 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": "v1beta1/{+name}", + "request": { + "$ref": "TlsInspectionPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "urlLists": { + "methods": { + "create": { + "description": "Creates a new UrlList in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/urlLists", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.urlLists.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the UrlList. Must be in the format `projects/*/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "urlListId": { + "description": "Required. Short name of the UrlList resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"url_list\".", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+parent}/urlLists", + "request": { + "$ref": "UrlList" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single UrlList.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/urlLists/{urlListsId}", + "httpMethod": "DELETE", + "id": "networksecurity.projects.locations.urlLists.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the UrlList to delete. Must be in the format `projects/*/locations/{location}/urlLists/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/urlLists/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single UrlList.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/urlLists/{urlListsId}", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.urlLists.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the UrlList to get. Must be in the format `projects/*/locations/{location}/urlLists/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/urlLists/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "UrlList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists UrlLists in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/urlLists", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.urlLists.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of UrlLists to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListUrlListsResponse` Indicates that this is a continuation of a prior `ListUrlLists` 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 UrlLists should be listed, specified in the format `projects/{project}/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/urlLists", + "response": { + "$ref": "ListUrlListsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single UrlList.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/urlLists/{urlListsId}", + "httpMethod": "PATCH", + "id": "networksecurity.projects.locations.urlLists.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource provided by the user. Name is of the form projects/{project}/locations/{location}/urlLists/{url_list} url_list should match the pattern:(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/urlLists/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the UrlList 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": "v1beta1/{+name}", + "request": { + "$ref": "UrlList" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } } } } }, - "revision": "20230106", + "revision": "20240221", "rootUrl": "https://networksecurity.googleapis.com/", "schemas": { + "AddAddressGroupItemsRequest": { + "description": "Request used by the AddAddressGroupItems method.", + "id": "AddAddressGroupItemsRequest", + "properties": { + "items": { + "description": "Required. List of items to add.", + "items": { + "type": "string" + }, + "type": "array" + }, + "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).", + "type": "string" + } + }, + "type": "object" + }, + "AddressGroup": { + "description": "AddressGroup is a resource that specifies how a collection of IP/DNS used in Firewall Policy.", + "id": "AddressGroup", + "properties": { + "capacity": { + "description": "Required. Capacity of the Address Group", + "format": "int32", + "type": "integer" + }, + "createTime": { + "description": "Output only. The timestamp when the resource was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Free-text description of the resource.", + "type": "string" + }, + "items": { + "description": "Optional. List of items.", + "items": { + "type": "string" + }, + "type": "array" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of label tags associated with the AddressGroup resource.", + "type": "object" + }, + "name": { + "description": "Required. Name of the AddressGroup resource. It matches pattern `projects/*/locations/{location}/addressGroups/`.", + "type": "string" + }, + "selfLink": { + "description": "Output only. Server-defined fully-qualified URL for this resource.", + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Required. The type of the Address Group. Possible values are \"IPv4\" or \"IPV6\".", + "enum": [ + "TYPE_UNSPECIFIED", + "IPV4", + "IPV6" + ], + "enumDescriptions": [ + "Default value.", + "IP v4 ranges.", + "IP v6 ranges." + ], + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "AuthorizationPolicy": { "description": "AuthorizationPolicy is a resource that specifies how a server should authorize incoming connections. This resource in itself does not change the configuration unless it's attached to a target https proxy or endpoint config selector resource.", "id": "AuthorizationPolicy", @@ -1383,6 +3369,21 @@ }, "type": "object" }, + "CloneAddressGroupItemsRequest": { + "description": "Request used by the CloneAddressGroupItems method.", + "id": "CloneAddressGroupItemsRequest", + "properties": { + "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).", + "type": "string" + }, + "sourceAddressGroup": { + "description": "Required. Source address group to clone items from.", + "type": "string" + } + }, + "type": "object" + }, "Destination": { "description": "Specification of traffic destination attributes.", "id": "Destination", @@ -1445,6 +3446,261 @@ }, "type": "object" }, + "FirewallEndpoint": { + "description": "Message describing Endpoint object", + "id": "FirewallEndpoint", + "properties": { + "associatedNetworks": { + "deprecated": true, + "description": "Output only. List of networks that are associated with this endpoint in the local zone. This is a projection of the FirewallEndpointAssociations pointing at this endpoint. A network will only appear in this list after traffic routing is fully configured. Format: projects/{project}/global/networks/{name}.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "associations": { + "description": "Output only. List of FirewallEndpointAssociations that are associated to this endpoint. An association will only appear in this list after traffic routing is fully configured.", + "items": { + "$ref": "FirewallEndpointAssociationReference" + }, + "readOnly": true, + "type": "array" + }, + "billingProjectId": { + "description": "Required. Project to bill on endpoint uptime usage.", + "type": "string" + }, + "createTime": { + "description": "Output only. Create time stamp", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Description of the firewall endpoint. Max length 2048 characters.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels as key value pairs", + "type": "object" + }, + "name": { + "description": "Immutable. Identifier. name of resource", + "type": "string" + }, + "reconciling": { + "description": "Output only. Whether reconciling is in progress, recommended per https://google.aip.dev/128.", + "readOnly": true, + "type": "boolean" + }, + "state": { + "description": "Output only. Current state of the endpoint.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "DELETING", + "INACTIVE" + ], + "enumDescriptions": [ + "Not set.", + "Being created.", + "Processing configuration updates.", + "Being deleted.", + "Down or in an error state." + ], + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Update time stamp", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "FirewallEndpointAssociation": { + "description": "Message describing Association object", + "id": "FirewallEndpointAssociation", + "properties": { + "createTime": { + "description": "Output only. Create time stamp", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "firewallEndpoint": { + "description": "Required. The URL of the FirewallEndpoint that is being associated.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels as key value pairs", + "type": "object" + }, + "name": { + "description": "Immutable. Identifier. name of resource", + "type": "string" + }, + "network": { + "description": "Required. The URL of the network that is being associated.", + "type": "string" + }, + "reconciling": { + "description": "Output only. Whether reconciling is in progress, recommended per https://google.aip.dev/128.", + "readOnly": true, + "type": "boolean" + }, + "state": { + "description": "Output only. Current state of the association.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "DELETING", + "INACTIVE" + ], + "enumDescriptions": [ + "Not set.", + "Being created.", + "Active and ready for traffic.", + "Being deleted.", + "Down or in an error state." + ], + "readOnly": true, + "type": "string" + }, + "tlsInspectionPolicy": { + "description": "Optional. The URL of the TlsInspectionPolicy that is being associated.", + "type": "string" + }, + "updateTime": { + "description": "Output only. Update time stamp", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "FirewallEndpointAssociationReference": { + "description": "This is a subset of the FirewallEndpointAssociation message, containing fields to be used by the consumer.", + "id": "FirewallEndpointAssociationReference", + "properties": { + "name": { + "description": "Output only. The resource name of the FirewallEndpointAssociation. Format: projects/{project}/locations/{location}/firewallEndpointAssociations/{id}", + "readOnly": true, + "type": "string" + }, + "network": { + "description": "Output only. The VPC network associated. Format: projects/{project}/global/networks/{name}.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GatewaySecurityPolicy": { + "description": "The GatewaySecurityPolicy resource contains a collection of GatewaySecurityPolicyRules and associated metadata.", + "id": "GatewaySecurityPolicy", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the resource was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Free-text description of the resource.", + "type": "string" + }, + "name": { + "description": "Required. Name of the resource. Name is of the form projects/{project}/locations/{location}/gatewaySecurityPolicies/{gateway_security_policy} gateway_security_policy should match the pattern:(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", + "type": "string" + }, + "tlsInspectionPolicy": { + "description": "Optional. Name of a TLS Inspection Policy resource that defines how TLS inspection will be performed for any rule(s) which enables it.", + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GatewaySecurityPolicyRule": { + "description": "The GatewaySecurityPolicyRule resource is in a nested collection within a GatewaySecurityPolicy and represents a traffic matching condition and associated action to perform.", + "id": "GatewaySecurityPolicyRule", + "properties": { + "applicationMatcher": { + "description": "Optional. CEL expression for matching on L7/application level criteria.", + "type": "string" + }, + "basicProfile": { + "description": "Required. Profile which tells what the primitive action should be.", + "enum": [ + "BASIC_PROFILE_UNSPECIFIED", + "ALLOW", + "DENY" + ], + "enumDescriptions": [ + "If there is not a mentioned action for the target.", + "Allow the matched traffic.", + "Deny the matched traffic." + ], + "type": "string" + }, + "createTime": { + "description": "Output only. Time when the rule was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Free-text description of the resource.", + "type": "string" + }, + "enabled": { + "description": "Required. Whether the rule is enforced.", + "type": "boolean" + }, + "name": { + "description": "Required. Immutable. Name of the resource. ame is the full resource name so projects/{project}/locations/{location}/gatewaySecurityPolicies/{gateway_security_policy}/rules/{rule} rule should match the pattern: (^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", + "type": "string" + }, + "priority": { + "description": "Required. Priority of the rule. Lower number corresponds to higher precedence.", + "format": "int32", + "type": "integer" + }, + "sessionMatcher": { + "description": "Required. CEL expression for matching on session criteria.", + "type": "string" + }, + "tlsInspectionEnabled": { + "description": "Optional. Flag to enable TLS inspection of traffic matching on , can only be true if the parent GatewaySecurityPolicy references a TLSInspectionConfig.", + "type": "boolean" + }, + "updateTime": { + "description": "Output only. Time when the rule was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudNetworksecurityV1beta1CertificateProvider": { "description": "Specification of certificate provider. Defines the mechanism to obtain the certificate and private key for peer to peer authentication.", "id": "GoogleCloudNetworksecurityV1beta1CertificateProvider", @@ -1528,21 +3784,21 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, "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/).", + "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": { "auditConfigs": { @@ -1631,6 +3887,62 @@ }, "type": "object" }, + "ListAddressGroupReferencesResponse": { + "description": "Response of the ListAddressGroupReferences method.", + "id": "ListAddressGroupReferencesResponse", + "properties": { + "addressGroupReferences": { + "description": "A list of references that matches the specified filter in the request.", + "items": { + "$ref": "ListAddressGroupReferencesResponseAddressGroupReference" + }, + "type": "array" + }, + "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" + } + }, + "type": "object" + }, + "ListAddressGroupReferencesResponseAddressGroupReference": { + "description": "The Reference of AddressGroup.", + "id": "ListAddressGroupReferencesResponseAddressGroupReference", + "properties": { + "firewallPolicy": { + "description": "FirewallPolicy that is using the Address Group.", + "type": "string" + }, + "rulePriority": { + "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" + }, + "ListAddressGroupsResponse": { + "description": "Response returned by the ListAddressGroups method.", + "id": "ListAddressGroupsResponse", + "properties": { + "addressGroups": { + "description": "List of AddressGroups resources.", + "items": { + "$ref": "AddressGroup" + }, + "type": "array" + }, + "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" + } + }, + "type": "object" + }, "ListAuthorizationPoliciesResponse": { "description": "Response returned by the ListAuthorizationPolicies method.", "id": "ListAuthorizationPoliciesResponse", @@ -1667,6 +3979,106 @@ }, "type": "object" }, + "ListFirewallEndpointAssociationsResponse": { + "description": "Message for response to listing Associations", + "id": "ListFirewallEndpointAssociationsResponse", + "properties": { + "firewallEndpointAssociations": { + "description": "The list of Association", + "items": { + "$ref": "FirewallEndpointAssociation" + }, + "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" + }, + "ListFirewallEndpointsResponse": { + "description": "Message for response to listing Endpoints", + "id": "ListFirewallEndpointsResponse", + "properties": { + "firewallEndpoints": { + "description": "The list of Endpoint", + "items": { + "$ref": "FirewallEndpoint" + }, + "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" + }, + "ListGatewaySecurityPoliciesResponse": { + "description": "Response returned by the ListGatewaySecurityPolicies method.", + "id": "ListGatewaySecurityPoliciesResponse", + "properties": { + "gatewaySecurityPolicies": { + "description": "List of GatewaySecurityPolicies resources.", + "items": { + "$ref": "GatewaySecurityPolicy" + }, + "type": "array" + }, + "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" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListGatewaySecurityPolicyRulesResponse": { + "description": "Response returned by the ListGatewaySecurityPolicyRules method.", + "id": "ListGatewaySecurityPolicyRulesResponse", + "properties": { + "gatewaySecurityPolicyRules": { + "description": "List of GatewaySecurityPolicyRule resources.", + "items": { + "$ref": "GatewaySecurityPolicyRule" + }, + "type": "array" + }, + "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" + }, + "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", @@ -1703,6 +4115,42 @@ }, "type": "object" }, + "ListSecurityProfileGroupsResponse": { + "description": "Response returned by the ListSecurityProfileGroups method.", + "id": "ListSecurityProfileGroupsResponse", + "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" + }, + "securityProfileGroups": { + "description": "List of SecurityProfileGroups resources.", + "items": { + "$ref": "SecurityProfileGroup" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListSecurityProfilesResponse": { + "description": "Response returned by the ListSecurityProfiles method.", + "id": "ListSecurityProfilesResponse", + "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" + }, + "securityProfiles": { + "description": "List of SecurityProfile resources.", + "items": { + "$ref": "SecurityProfile" + }, + "type": "array" + } + }, + "type": "object" + }, "ListServerTlsPoliciesResponse": { "description": "Response returned by the ListServerTlsPolicies method.", "id": "ListServerTlsPoliciesResponse", @@ -1721,8 +4169,58 @@ }, "type": "object" }, + "ListTlsInspectionPoliciesResponse": { + "description": "Response returned by the ListTlsInspectionPolicies method.", + "id": "ListTlsInspectionPoliciesResponse", + "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" + }, + "tlsInspectionPolicies": { + "description": "List of TlsInspectionPolicies resources.", + "items": { + "$ref": "TlsInspectionPolicy" + }, + "type": "array" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListUrlListsResponse": { + "description": "Response returned by the ListUrlLists method.", + "id": "ListUrlListsResponse", + "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" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + }, + "urlLists": { + "description": "List of UrlList resources.", + "items": { + "$ref": "UrlList" + }, + "type": "array" + } + }, + "type": "object" + }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1760,11 +4258,29 @@ "id": "MTLSPolicy", "properties": { "clientValidationCa": { - "description": " Defines the mechanism to obtain the Certificate Authority certificate to validate the client certificate.", + "description": "Required if the policy is to be used with Traffic Director. For external HTTPS load balancers it must be empty. Defines the mechanism to obtain the Certificate Authority certificate to validate the client certificate.", "items": { "$ref": "ValidationCA" }, "type": "array" + }, + "clientValidationMode": { + "description": "When the client presents an invalid certificate or no certificate to the load balancer, the `client_validation_mode` specifies how the client connection is handled. Required if the policy is to be used with the external HTTPS load balancing. For Traffic Director it must be empty.", + "enum": [ + "CLIENT_VALIDATION_MODE_UNSPECIFIED", + "ALLOW_INVALID_OR_MISSING_CLIENT_CERT", + "REJECT_INVALID" + ], + "enumDescriptions": [ + "Not allowed.", + "Allow connection even if certificate chain validation of the client certificate failed or no client certificate was presented. The proof of possession of the private key is always checked if client certificate was presented. This mode requires the backend to implement processing of data extracted from a client certificate to authenticate the peer, or to reject connections if the client certificate fingerprint is missing.", + "Require a client certificate and allow connection to the backend only if validation of the client certificate passed. If set, requires a reference to non-empty TrustConfig specified in `client_validation_trust_config`." + ], + "type": "string" + }, + "clientValidationTrustConfig": { + "description": "Reference to the TrustConfig from certificatemanager.googleapis.com namespace. If specified, the chain validation will be performed against certificates configured in the given TrustConfig. Allowed only if the policy is to be used with external HTTPS load balancers.", + "type": "string" } }, "type": "object" @@ -1798,7 +4314,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" } }, @@ -1848,6 +4364,24 @@ }, "type": "object" }, + "RemoveAddressGroupItemsRequest": { + "description": "Request used by the RemoveAddressGroupItems method.", + "id": "RemoveAddressGroupItemsRequest", + "properties": { + "items": { + "description": "Required. List of items to remove.", + "items": { + "type": "string" + }, + "type": "array" + }, + "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).", + "type": "string" + } + }, + "type": "object" + }, "Rule": { "description": "Specification of rules.", "id": "Rule", @@ -1869,12 +4403,110 @@ }, "type": "object" }, + "SecurityProfile": { + "description": "SecurityProfile is a resource that defines the behavior for one of many ProfileTypes. Next ID: 9", + "id": "SecurityProfile", + "properties": { + "createTime": { + "description": "Output only. Resource creation timestamp.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. An optional description of the profile. Max length 512 characters.", + "type": "string" + }, + "etag": { + "description": "Output only. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels as key value pairs.", + "type": "object" + }, + "name": { + "description": "Immutable. Identifier. Name of the SecurityProfile resource. It matches pattern `projects|organizations/*/locations/{location}/securityProfiles/{security_profile}`.", + "type": "string" + }, + "threatPreventionProfile": { + "$ref": "ThreatPreventionProfile", + "description": "The threat prevention configuration for the SecurityProfile." + }, + "type": { + "description": "Immutable. The single ProfileType that the SecurityProfile resource configures.", + "enum": [ + "PROFILE_TYPE_UNSPECIFIED", + "THREAT_PREVENTION" + ], + "enumDescriptions": [ + "Profile type not specified.", + "Profile type for threat prevention." + ], + "type": "string" + }, + "updateTime": { + "description": "Output only. Last resource update timestamp.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "SecurityProfileGroup": { + "description": "SecurityProfileGroup is a resource that defines the behavior for various ProfileTypes. Next ID: 8", + "id": "SecurityProfileGroup", + "properties": { + "createTime": { + "description": "Output only. Resource creation timestamp.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. An optional description of the profile group. Max length 2048 characters.", + "type": "string" + }, + "etag": { + "description": "Output only. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels as key value pairs.", + "type": "object" + }, + "name": { + "description": "Immutable. Identifier. Name of the SecurityProfileGroup resource. It matches pattern `projects|organizations/*/locations/{location}/securityProfileGroups/{security_profile_group}`.", + "type": "string" + }, + "threatPreventionProfile": { + "description": "Optional. Reference to a SecurityProfile with the threat prevention configuration for the SecurityProfileGroup.", + "type": "string" + }, + "updateTime": { + "description": "Output only. Last resource update timestamp.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "ServerTlsPolicy": { - "description": "ServerTlsPolicy is a resource that specifies how a server should authenticate incoming requests. This resource itself does not affect configuration unless it is attached to a target HTTPS proxy or endpoint config selector resource.", + "description": "ServerTlsPolicy is a resource that specifies how a server should authenticate incoming requests. This resource itself does not affect configuration unless it is attached to a target HTTPS proxy or endpoint config selector resource. ServerTlsPolicy in the form accepted by external HTTPS load balancers can be attached only to TargetHttpsProxy with an `EXTERNAL` or `EXTERNAL_MANAGED` load balancing scheme. Traffic Director compatible ServerTlsPolicies can be attached to EndpointPolicy and TargetHttpsProxy with Traffic Director `INTERNAL_SELF_MANAGED` load balancing scheme.", "id": "ServerTlsPolicy", "properties": { "allowOpen": { - "description": " Determines if server allows plaintext connections. If set to true, server allows plain text connections. By default, it is set to false. This setting is not exclusive of other encryption modes. For example, if `allow_open` and `mtls_policy` are set, server allows both plain text and mTLS connections. See documentation of other encryption modes to confirm compatibility. Consider using it if you wish to upgrade in place your deployment to TLS while having mixed TLS and non-TLS traffic reaching port :80.", + "description": "This field applies only for Traffic Director policies. It is must be set to false for external HTTPS load balancer policies. Determines if server allows plaintext connections. If set to true, server allows plain text connections. By default, it is set to false. This setting is not exclusive of other encryption modes. For example, if `allow_open` and `mtls_policy` are set, server allows both plain text and mTLS connections. See documentation of other encryption modes to confirm compatibility. Consider using it if you wish to upgrade in place your deployment to TLS while having mixed TLS and non-TLS traffic reaching port :80.", "type": "boolean" }, "createTime": { @@ -1896,7 +4528,7 @@ }, "mtlsPolicy": { "$ref": "MTLSPolicy", - "description": " Defines a mechanism to provision peer validation certificates for peer to peer authentication (Mutual TLS - mTLS). If not specified, client certificate will not be requested. The connection is treated as TLS and not mTLS. If `allow_open` and `mtls_policy` are set, server allows both plain text and mTLS connections." + "description": "This field is required if the policy is used with external HTTPS load balancers. This field can be empty for Traffic Director. Defines a mechanism to provision peer validation certificates for peer to peer authentication (Mutual TLS - mTLS). If not specified, client certificate will not be requested. The connection is treated as TLS and not mTLS. If `allow_open` and `mtls_policy` are set, server allows both plain text and mTLS connections." }, "name": { "description": "Required. Name of the ServerTlsPolicy resource. It matches the pattern `projects/*/locations/{location}/serverTlsPolicies/{server_tls_policy}`", @@ -1904,7 +4536,7 @@ }, "serverCertificate": { "$ref": "GoogleCloudNetworksecurityV1beta1CertificateProvider", - "description": " Defines a mechanism to provision server identity (public and private keys). Cannot be combined with `allow_open` as a permissive mode that allows both plain text and TLS is not supported." + "description": "Optional if policy is to be used with Traffic Director. For external HTTPS load balancer must be empty. Defines a mechanism to provision server identity (public and private keys). Cannot be combined with `allow_open` as a permissive mode that allows both plain text and TLS is not supported." }, "updateTime": { "description": "Output only. The timestamp when the resource was updated.", @@ -1915,6 +4547,51 @@ }, "type": "object" }, + "SeverityOverride": { + "description": "Defines what action to take for a specific severity match.", + "id": "SeverityOverride", + "properties": { + "action": { + "description": "Required. Threat action override.", + "enum": [ + "THREAT_ACTION_UNSPECIFIED", + "DEFAULT_ACTION", + "ALLOW", + "ALERT", + "DENY" + ], + "enumDescriptions": [ + "Threat action not specified.", + "The default action (as specified by the vendor) is taken.", + "The packet matching this rule will be allowed to transmit.", + "The packet matching this rule will be allowed to transmit, but a threat_log entry will be sent to the consumer project.", + "The packet matching this rule will be dropped, and a threat_log entry will be sent to the consumer project." + ], + "type": "string" + }, + "severity": { + "description": "Required. Severity level to match.", + "enum": [ + "SEVERITY_UNSPECIFIED", + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "enumDescriptions": [ + "Severity level not specified.", + "Suspicious events that do not pose an immediate threat, but that are reported to call attention to deeper problems that could possibly exist.", + "Warning-level threats that have very little impact on an organization's infrastructure. They usually require local or physical system access and may often result in victim privacy issues and information leakage.", + "Minor threats in which impact is minimized, that do not compromise the target or exploits that require an attacker to reside on the same local network as the victim, affect only non-standard configurations or obscure applications, or provide very limited access.", + "Threats that have the ability to become critical but have mitigating factors; for example, they may be difficult to exploit, do not result in elevated privileges, or do not have a large victim pool.", + "Serious threats, such as those that affect default installations of widely deployed software, result in root compromise of servers, and the exploit code is widely available to attackers. The attacker usually does not need any special authentication credentials or knowledge about the individual victims and the target does not need to be manipulated into performing any special functions." + ], + "type": "string" + } + }, + "type": "object" + }, "Source": { "description": "Specification of traffic source attributes.", "id": "Source", @@ -1963,6 +4640,193 @@ }, "type": "object" }, + "ThreatOverride": { + "description": "Defines what action to take for a specific threat_id match.", + "id": "ThreatOverride", + "properties": { + "action": { + "description": "Required. Threat action override. For some threat types, only a subset of actions applies.", + "enum": [ + "THREAT_ACTION_UNSPECIFIED", + "DEFAULT_ACTION", + "ALLOW", + "ALERT", + "DENY" + ], + "enumDescriptions": [ + "Threat action not specified.", + "The default action (as specified by the vendor) is taken.", + "The packet matching this rule will be allowed to transmit.", + "The packet matching this rule will be allowed to transmit, but a threat_log entry will be sent to the consumer project.", + "The packet matching this rule will be dropped, and a threat_log entry will be sent to the consumer project." + ], + "type": "string" + }, + "threatId": { + "description": "Required. Vendor-specific ID of a threat to override.", + "type": "string" + }, + "type": { + "description": "Output only. Type of the threat (read only).", + "enum": [ + "THREAT_TYPE_UNSPECIFIED", + "UNKNOWN", + "VULNERABILITY", + "ANTIVIRUS", + "SPYWARE", + "DNS" + ], + "enumDescriptions": [ + "Type of threat not specified.", + "Type of threat is not derivable from threat ID. An override will be created for all types. Firewall will ignore overridden signature ID's that don't exist in the specific type.", + "Threats related to system flaws that an attacker might otherwise attempt to exploit.", + "Threats related to viruses and malware found in executables and file types.", + "Threats related to command-and-control (C2) activity, where spyware on an infected client is collecting data without the user's consent and/or communicating with a remote attacker.", + "Threats related to DNS." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ThreatPreventionProfile": { + "description": "ThreatPreventionProfile defines an action for specific threat signatures or severity levels.", + "id": "ThreatPreventionProfile", + "properties": { + "severityOverrides": { + "description": "Optional. Configuration for overriding threats actions by severity match.", + "items": { + "$ref": "SeverityOverride" + }, + "type": "array" + }, + "threatOverrides": { + "description": "Optional. Configuration for overriding threats actions by threat_id match. If a threat is matched both by configuration provided in severity_overrides and threat_overrides, the threat_overrides action is applied.", + "items": { + "$ref": "ThreatOverride" + }, + "type": "array" + } + }, + "type": "object" + }, + "TlsInspectionPolicy": { + "description": "The TlsInspectionPolicy resource contains references to CA pools in Certificate Authority Service and associated metadata.", + "id": "TlsInspectionPolicy", + "properties": { + "caPool": { + "description": "Required. A CA pool resource used to issue interception certificates. The CA pool string has a relative resource path following the form \"projects/{project}/locations/{location}/caPools/{ca_pool}\".", + "type": "string" + }, + "createTime": { + "description": "Output only. The timestamp when the resource was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "customTlsFeatures": { + "description": "Optional. List of custom TLS cipher suites selected. This field is valid only if the selected tls_feature_profile is CUSTOM. The compute.SslPoliciesService.ListAvailableFeatures method returns the set of features that can be specified in this list. Note that Secure Web Proxy does not yet honor this field.", + "items": { + "type": "string" + }, + "type": "array" + }, + "description": { + "description": "Optional. Free-text description of the resource.", + "type": "string" + }, + "excludePublicCaSet": { + "description": "Optional. If FALSE (the default), use our default set of public CAs in addition to any CAs specified in trust_config. These public CAs are currently based on the Mozilla Root Program and are subject to change over time. If TRUE, do not accept our default set of public CAs. Only CAs specified in trust_config will be accepted. This defaults to FALSE (use public CAs in addition to trust_config) for backwards compatibility, but trusting public root CAs is *not recommended* unless the traffic in question is outbound to public web servers. When possible, prefer setting this to \"false\" and explicitly specifying trusted CAs and certificates in a TrustConfig. Note that Secure Web Proxy does not yet honor this field.", + "type": "boolean" + }, + "minTlsVersion": { + "description": "Optional. Minimum TLS version that the firewall should use when negotiating connections with both clients and servers. If this is not set, then the default value is to allow the broadest set of clients and servers (TLS 1.0 or higher). Setting this to more restrictive values may improve security, but may also prevent the firewall from connecting to some clients or servers. Note that Secure Web Proxy does not yet honor this field.", + "enum": [ + "TLS_VERSION_UNSPECIFIED", + "TLS_1_0", + "TLS_1_1", + "TLS_1_2", + "TLS_1_3" + ], + "enumDescriptions": [ + "Indicates no TLS version was specified.", + "TLS 1.0", + "TLS 1.1", + "TLS 1.2", + "TLS 1.3" + ], + "type": "string" + }, + "name": { + "description": "Required. Name of the resource. Name is of the form projects/{project}/locations/{location}/tlsInspectionPolicies/{tls_inspection_policy} tls_inspection_policy should match the pattern:(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", + "type": "string" + }, + "tlsFeatureProfile": { + "description": "Optional. The selected Profile. If this is not set, then the default value is to allow the broadest set of clients and servers (\"PROFILE_COMPATIBLE\"). Setting this to more restrictive values may improve security, but may also prevent the TLS inspection proxy from connecting to some clients or servers. Note that Secure Web Proxy does not yet honor this field.", + "enum": [ + "PROFILE_UNSPECIFIED", + "PROFILE_COMPATIBLE", + "PROFILE_MODERN", + "PROFILE_RESTRICTED", + "PROFILE_CUSTOM" + ], + "enumDescriptions": [ + "Indicates no profile was specified.", + "Compatible profile. Allows the broadest set of clients, even those which support only out-of-date SSL features to negotiate with the TLS inspection proxy.", + "Modern profile. Supports a wide set of SSL features, allowing modern clients to negotiate SSL with the TLS inspection proxy.", + "Restricted profile. Supports a reduced set of SSL features, intended to meet stricter compliance requirements.", + "Custom profile. Allow only the set of allowed SSL features specified in the custom_features field of SslPolicy." + ], + "type": "string" + }, + "trustConfig": { + "description": "Optional. A TrustConfig resource used when making a connection to the TLS server. This is a relative resource path following the form \"projects/{project}/locations/{location}/trustConfigs/{trust_config}\". This is necessary to intercept TLS connections to servers with certificates signed by a private CA or self-signed certificates. Note that Secure Web Proxy does not yet honor this field.", + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "UrlList": { + "description": "UrlList proto helps users to set reusable, independently manageable lists of hosts, host patterns, URLs, URL patterns.", + "id": "UrlList", + "properties": { + "createTime": { + "description": "Output only. Time when the security policy was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Free-text description of the resource.", + "type": "string" + }, + "name": { + "description": "Required. Name of the resource provided by the user. Name is of the form projects/{project}/locations/{location}/urlLists/{url_list} url_list should match the pattern:(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).", + "type": "string" + }, + "updateTime": { + "description": "Output only. Time when the security policy was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "values": { + "description": "Required. FQDNs and URLs.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ValidationCA": { "description": "Specification of ValidationCA. Defines the mechanism to obtain the Certificate Authority certificate to validate the peer certificate.", "id": "ValidationCA", diff --git a/etc/api/networkservices/v1/networkservices-api.json b/etc/api/networkservices/v1/networkservices-api.json index 1b49547262..7e5ec3dcd5 100644 --- a/etc/api/networkservices/v1/networkservices-api.json +++ b/etc/api/networkservices/v1/networkservices-api.json @@ -1252,6 +1252,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": { @@ -1577,7 +1941,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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", @@ -1829,6 +2193,250 @@ } } }, + "serviceLbPolicies": { + "methods": { + "create": { + "description": "Creates a new ServiceLbPolicy in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies", + "httpMethod": "POST", + "id": "networkservices.projects.locations.serviceLbPolicies.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "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" + }, + "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}/serviceLbPolicies", + "request": { + "$ref": "ServiceLbPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single ServiceLbPolicy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies/{serviceLbPoliciesId}", + "httpMethod": "DELETE", + "id": "networkservices.projects.locations.serviceLbPolicies.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the ServiceLbPolicy to delete. Must be in the format `projects/{project}/locations/{location}/serviceLbPolicies/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceLbPolicies/[^/]+$", + "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 ServiceLbPolicy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies/{serviceLbPoliciesId}", + "httpMethod": "GET", + "id": "networkservices.projects.locations.serviceLbPolicies.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the ServiceLbPolicy to get. Must be in the format `projects/{project}/locations/{location}/serviceLbPolicies/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceLbPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ServiceLbPolicy" + }, + "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}/serviceLbPolicies/{serviceLbPoliciesId}:getIamPolicy", + "httpMethod": "GET", + "id": "networkservices.projects.locations.serviceLbPolicies.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/[^/]+/serviceLbPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists ServiceLbPolicies in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies", + "httpMethod": "GET", + "id": "networkservices.projects.locations.serviceLbPolicies.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of ServiceLbPolicies to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "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 ServiceLbPolicies should be listed, specified in the format `projects/{project}/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/serviceLbPolicies", + "response": { + "$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" + ] + }, + "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}/serviceLbPolicies/{serviceLbPoliciesId}:setIamPolicy", + "httpMethod": "POST", + "id": "networkservices.projects.locations.serviceLbPolicies.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/[^/]+/serviceLbPolicies/[^/]+$", + "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}/serviceLbPolicies/{serviceLbPoliciesId}:testIamPermissions", + "httpMethod": "POST", + "id": "networkservices.projects.locations.serviceLbPolicies.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/[^/]+/serviceLbPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "tcpRoutes": { "methods": { "create": { @@ -1848,7 +2456,7 @@ "type": "string" }, "tcpRouteId": { - "description": "Required. Short name of the TcpRoute resource to be created. E.g. TODO(Add an example).", + "description": "Required. Short name of the TcpRoute resource to be created.", "location": "query", "type": "string" } @@ -2005,7 +2613,7 @@ "type": "string" }, "tlsRouteId": { - "description": "Required. Short name of the TlsRoute resource to be created. E.g. TODO(Add an example).", + "description": "Required. Short name of the TlsRoute resource to be created.", "location": "query", "type": "string" } @@ -2148,7 +2756,7 @@ } } }, - "revision": "20230105", + "revision": "20240224", "rootUrl": "https://networkservices.googleapis.com/", "schemas": { "AuditConfig": { @@ -2208,14 +2816,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -2249,7 +2857,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", @@ -2378,10 +2986,117 @@ }, "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. Required for Callout extensions.", + "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` or the default setting of `FALSE` is used, one of the following happens: * If response headers have not been delivered to the downstream client, a generic 500 error is returned to the client. The error response can be tailored by configuring a custom error response in the load balancer. * If response headers have been delivered, then the HTTP stream to the downstream client is reset.", + "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", + "REQUEST_TRAILERS", + "RESPONSE_TRAILERS" + ], + "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.", + "If included in `supported_events`, the extension is called when the HTTP request trailers arrives.", + "If included in `supported_events`, the extension is called when the HTTP response trailers arrives." + ], + "type": "string" + }, + "type": "array" + }, + "timeout": { + "description": "Optional. Specifies the timeout for each individual message on the stream. The timeout must be between 10-1000 milliseconds. Required for Callout extensions.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "ExtensionChainMatchCondition": { + "description": "Conditions under which this chain is invoked for a request.", + "id": "ExtensionChainMatchCondition", + "properties": { + "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](/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": { + "description": "Optional. Zero or one IPv4 or IPv6 address on which the Gateway will receive the traffic. When no address is provided, an IP from the subnetwork is allocated This field only applies to gateways of type 'SECURE_WEB_GATEWAY'. Gateways of type 'OPEN_MESH' listen on 0.0.0.0 for IPv4 and :: for IPv6.", + "items": { + "type": "string" + }, + "type": "array" + }, + "certificateUrls": { + "description": "Optional. A fully-qualified Certificates URL reference. The proxy presents a Certificate (selected based on SNI) when establishing a TLS connection. This feature only applies to gateways of type 'SECURE_WEB_GATEWAY'.", + "items": { + "type": "string" + }, + "type": "array" + }, "createTime": { "description": "Output only. The timestamp when the resource was created.", "format": "google-datetime", @@ -2392,6 +3107,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" @@ -2403,8 +3150,12 @@ "description": "Required. Name of the Gateway resource. It matches pattern `projects/*/locations/*/gateways/`.", "type": "string" }, + "network": { + "description": "Optional. The relative resource name identifying the VPC network that is using this configuration. For example: `projects/*/global/networks/network-1`. Currently, this field is specific to gateways of type 'SECURE_WEB_GATEWAY'.", + "type": "string" + }, "ports": { - "description": "Required. One or more port numbers (1-65535), on which the Gateway will receive traffic. The proxy binds to the specified ports. Gateways of type 'SECURE_WEB_GATEWAY' are limited to 1 port. Gateways of type 'OPEN_MESH' listen on 0.0.0.0 and support multiple ports.", + "description": "Required. One or more port numbers (1-65535), on which the Gateway will receive traffic. The proxy binds to the specified ports. Gateways of type 'SECURE_WEB_GATEWAY' are limited to 1 port. Gateways of type 'OPEN_MESH' listen on 0.0.0.0 for IPv4 and :: for IPv6 and support multiple ports.", "items": { "format": "int32", "type": "integer" @@ -2412,7 +3163,7 @@ "type": "array" }, "scope": { - "description": "Required. Immutable. Scope determines how configuration across multiple Gateway instances are merged. The configuration for multiple Gateway instances with the same scope will be merged as presented as a single coniguration to the proxy/load balancer. Max length 64 characters. Scope should start with a letter and can only have letters, numbers, hyphens.", + "description": "Optional. Scope determines how configuration across multiple Gateway instances are merged. The configuration for multiple Gateway instances with the same scope will be merged as presented as a single coniguration to the proxy/load balancer. Max length 64 characters. Scope should start with a letter and can only have letters, numbers, hyphens.", "type": "string" }, "selfLink": { @@ -2424,6 +3175,10 @@ "description": "Optional. A fully-qualified ServerTLSPolicy URL reference. Specifies how TLS traffic is terminated. If empty, TLS termination is disabled.", "type": "string" }, + "subnetwork": { + "description": "Optional. The relative resource name identifying the subnetwork in which this SWG is allocated. For example: `projects/*/regions/us-central1/subnetworks/network-1` Currently, this field is specific to gateways of type 'SECURE_WEB_GATEWAY\".", + "type": "string" + }, "type": { "description": "Immutable. The type of the customer managed gateway. This field is required. If unspecified, an error is returned.", "enum": [ @@ -2469,7 +3224,7 @@ "type": "array" }, "hostnames": { - "description": "Required. Service hostnames with an optional port for which this route describes traffic. Format: [:] Hostname is the fully qualified domain name of a network host. This matches the RFC 1123 definition of a hostname with 2 notable exceptions: - IPs are not allowed. - A hostname may be prefixed with a wildcard label (*.). The wildcard label must appear by itself as the first label. Hostname can be \"precise\" which is a domain name without the terminating dot of a network host (e.g. \"foo.example.com\") or \"wildcard\", which is a domain name prefixed with a single wildcard label (e.g. *.example.com). Note that as per RFC1035 and RFC1123, a label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character. No other punctuation is allowed. The routes associated with a Mesh or Gateway must have unique hostnames. If you attempt to attach multiple routes with conflicting hostnames, the configuration will be rejected. For example, while it is acceptable for routes for the hostnames \"*.foo.bar.com\" and \"*.bar.com\" to be associated with the same route, it is not possible to associate two routes both with \"*.bar.com\" or both with \"bar.com\". If a port is specified, then gRPC clients must use the channel URI with the port to match this rule (i.e. \"xds:///service:123\"), otherwise they must supply the URI without a port (i.e. \"xds:///service\").", + "description": "Required. Service hostnames with an optional port for which this route describes traffic. Format: [:] Hostname is the fully qualified domain name of a network host. This matches the RFC 1123 definition of a hostname with 2 notable exceptions: - IPs are not allowed. - A hostname may be prefixed with a wildcard label (`*.`). The wildcard label must appear by itself as the first label. Hostname can be \"precise\" which is a domain name without the terminating dot of a network host (e.g. `foo.example.com`) or \"wildcard\", which is a domain name prefixed with a single wildcard label (e.g. `*.example.com`). Note that as per RFC1035 and RFC1123, a label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character. No other punctuation is allowed. The routes associated with a Mesh or Gateway must have unique hostnames. If you attempt to attach multiple routes with conflicting hostnames, the configuration will be rejected. For example, while it is acceptable for routes for the hostnames `*.foo.bar.com` and `*.bar.com` to be associated with the same route, it is not possible to associate two routes both with `*.bar.com` or both with `bar.com`. If a port is specified, then gRPC clients must use the channel URI with the port to match this rule (i.e. \"xds:///service:123\"), otherwise they must supply the URI without a port (i.e. \"xds:///service\").", "items": { "type": "string" }, @@ -2523,7 +3278,7 @@ "type": "string" }, "weight": { - "description": "Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.", + "description": "Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.", "format": "int32", "type": "integer" } @@ -2675,10 +3430,19 @@ "$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." }, + "statefulSessionAffinity": { + "$ref": "GrpcRouteStatefulSessionAffinityPolicy", + "description": "Optional. Specifies cookie-based stateful session affinity." + }, "timeout": { "description": "Optional. Specifies the timeout for selected route. Timeout is computed from the time the request has been fully processed (i.e. end of stream) up until the response has been completely processed. Timeout includes all retries.", "format": "google-duration", @@ -2723,6 +3487,18 @@ }, "type": "object" }, + "GrpcRouteStatefulSessionAffinityPolicy": { + "description": "The specification for cookie-based stateful session affinity where the date plane supplies a \u201csession cookie\u201d with the name \"GSSA\" which encodes a specific destination host and each request containing that cookie will be directed to that host as long as the destination host remains up and healthy. The gRPC proxyless mesh library or sidecar proxy will manage the session cookie but the client application code is responsible for copying the cookie from each RPC in the session to the next.", + "id": "GrpcRouteStatefulSessionAffinityPolicy", + "properties": { + "cookieTtl": { + "description": "Required. The cookie TTL value for the Set-Cookie header generated by the data plane. The lifetime of the cookie may be set to a value from 1 to 86400 seconds (24 hours) inclusive.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "HttpRoute": { "description": "HttpRoute is the resource defining how HTTP traffic should be routed by a Mesh or Gateway resource.", "id": "HttpRoute", @@ -2745,7 +3521,7 @@ "type": "array" }, "hostnames": { - "description": "Required. Hostnames define a set of hosts that should match against the HTTP host header to select a HttpRoute to process the request. Hostname is the fully qualified domain name of a network host, as defined by RFC 1123 with the exception that: - IPs are not allowed. - A hostname may be prefixed with a wildcard label (*.). The wildcard label must appear by itself as the first label. Hostname can be \"precise\" which is a domain name without the terminating dot of a network host (e.g. \"foo.example.com\") or \"wildcard\", which is a domain name prefixed with a single wildcard label (e.g. *.example.com). Note that as per RFC1035 and RFC1123, a label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character. No other punctuation is allowed. The routes associated with a Mesh or Gateways must have unique hostnames. If you attempt to attach multiple routes with conflicting hostnames, the configuration will be rejected. For example, while it is acceptable for routes for the hostnames \"*.foo.bar.com\" and \"*.bar.com\" to be associated with the same Mesh (or Gateways under the same scope), it is not possible to associate two routes both with \"*.bar.com\" or both with \"bar.com\".", + "description": "Required. Hostnames define a set of hosts that should match against the HTTP host header to select a HttpRoute to process the request. Hostname is the fully qualified domain name of a network host, as defined by RFC 1123 with the exception that: - IPs are not allowed. - A hostname may be prefixed with a wildcard label (`*.`). The wildcard label must appear by itself as the first label. Hostname can be \"precise\" which is a domain name without the terminating dot of a network host (e.g. `foo.example.com`) or \"wildcard\", which is a domain name prefixed with a single wildcard label (e.g. `*.example.com`). Note that as per RFC1035 and RFC1123, a label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character. No other punctuation is allowed. The routes associated with a Mesh or Gateways must have unique hostnames. If you attempt to attach multiple routes with conflicting hostnames, the configuration will be rejected. For example, while it is acceptable for routes for the hostnames `*.foo.bar.com` and `*.bar.com` to be associated with the same Mesh (or Gateways under the same scope), it is not possible to associate two routes both with `*.bar.com` or both with `bar.com`.", "items": { "type": "string" }, @@ -2848,12 +3624,20 @@ "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" }, "weight": { - "description": "Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.", + "description": "Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.", "format": "int32", "type": "integer" } @@ -2993,6 +3777,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", @@ -3075,6 +3880,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" @@ -3118,17 +3928,26 @@ }, "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." }, "requestHeaderModifier": { "$ref": "HttpRouteHeaderModifier", - "description": "The specification for modifying the headers of a matching request prior to delivery of the request to the destination." + "description": "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." }, "requestMirrorPolicy": { "$ref": "HttpRouteRequestMirrorPolicy", @@ -3136,12 +3955,16 @@ }, "responseHeaderModifier": { "$ref": "HttpRouteHeaderModifier", - "description": "The specification for modifying the headers of a response prior to sending the response back to the client." + "description": "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." }, "retryPolicy": { "$ref": "HttpRouteRetryPolicy", "description": "Specifies the retry policy associated with this route." }, + "statefulSessionAffinity": { + "$ref": "HttpRouteStatefulSessionAffinityPolicy", + "description": "Optional. Specifies cookie-based stateful session affinity." + }, "timeout": { "description": "Specifies the timeout for selected route. Timeout is computed from the time the request has been fully processed (i.e. end of stream) up until the response has been completely processed. Timeout includes all retries.", "format": "google-duration", @@ -3209,6 +4032,18 @@ }, "type": "object" }, + "HttpRouteStatefulSessionAffinityPolicy": { + "description": "The specification for cookie-based stateful session affinity where the date plane supplies a \u201csession cookie\u201d with the name \"GSSA\" which encodes a specific destination host and each request containing that cookie will be directed to that host as long as the destination host remains up and healthy. The gRPC proxyless mesh library or sidecar proxy will manage the session cookie but the client application code is responsible for copying the cookie from each RPC in the session to the next.", + "id": "HttpRouteStatefulSessionAffinityPolicy", + "properties": { + "cookieTtl": { + "description": "Required. The cookie TTL value for the Set-Cookie header generated by the data plane. The lifetime of the cookie may be set to a value from 1 to 86400 seconds (24 hours) inclusive.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "HttpRouteURLRewrite": { "description": "The specification for modifying the URL of the request, prior to forwarding the request to the destination.", "id": "HttpRouteURLRewrite", @@ -3224,6 +4059,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 requirements for labels](/compute/docs/labeling-resources#requirements) for Google Cloud resources.", + "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 requirements for labels](/compute/docs/labeling-resources#requirements) for Google Cloud resources.", + "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", @@ -3256,6 +4215,13 @@ "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" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -3296,6 +4262,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", @@ -3368,6 +4384,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", @@ -3405,7 +4439,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -3452,8 +4486,22 @@ "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 will is applicable only for sidecar proxy deployments.", + "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", "type": "integer" }, @@ -3511,7 +4559,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" } }, @@ -3562,7 +4610,7 @@ "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/).", + "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": { @@ -3621,6 +4669,11 @@ "description": "Required. The full Service Directory Service name of the format projects/*/locations/*/namespaces/*/services/*", "type": "string" }, + "serviceId": { + "description": "Output only. The unique identifier of the Service Directory Service against which the Service Binding resource is validated. This is populated when the Service Binding resource is used in another resource (like Backend Service). This is of the UUID4 format.", + "readOnly": true, + "type": "string" + }, "updateTime": { "description": "Output only. The timestamp when the resource was updated.", "format": "google-datetime", @@ -3630,6 +4683,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", @@ -3738,14 +4874,19 @@ "id": "TcpRouteRouteAction", "properties": { "destinations": { - "description": "Optional. The destination services to which traffic should be forwarded. At least one destination service is required.", + "description": "Optional. The destination services to which traffic should be forwarded. At least one destination service is required. Only one of route destination or original destination can be set.", "items": { "$ref": "TcpRouteRouteDestination" }, "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.", + "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" } }, @@ -3760,7 +4901,7 @@ "type": "string" }, "weight": { - "description": "Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.", + "description": "Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.", "format": "int32", "type": "integer" } @@ -3849,6 +4990,13 @@ }, "type": "array" }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of label tags associated with the TlsRoute resource.", + "type": "object" + }, "meshes": { "description": "Optional. Meshes defines a list of meshes this TlsRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/` The attached Mesh should be of a type SIDECAR", "items": { @@ -3891,6 +5039,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" @@ -3904,7 +5057,7 @@ "type": "string" }, "weight": { - "description": "Optional. Specifies the proportion of requests forwareded to the backend referenced by the service_name field. This is computed as: weight/Sum(weights in destinations) Weights in all destinations does not need to sum up to 100.", + "description": "Optional. Specifies the proportion of requests forwareded to the backend referenced by the service_name field. This is computed as: - weight/Sum(weights in destinations) Weights in all destinations does not need to sum up to 100.", "format": "int32", "type": "integer" } @@ -3923,7 +5076,7 @@ "type": "array" }, "sniHost": { - "description": "Optional. SNI (server name indicator) to match against. SNI will be matched against all wildcard domains, i.e. www.example.com will be first matched against www.example.com, then *.example.com, then *.com. Partial wildcards are not supported, and values like *w.example.com are invalid. At least one of sni_host and alpn is required. Up to 5 sni hosts across all matches can be set.", + "description": "Optional. SNI (server name indicator) to match against. SNI will be matched against all wildcard domains, i.e. `www.example.com` will be first matched against `www.example.com`, then `*.example.com`, then `*.com.` Partial wildcards are not supported, and values like *w.example.com are invalid. At least one of sni_host and alpn is required. Up to 5 sni hosts across all matches can be set.", "items": { "type": "string" }, diff --git a/etc/api/networkservices/v1beta1/networkservices-api.json b/etc/api/networkservices/v1beta1/networkservices-api.json index fcfc0ca394..e8a0e15a80 100644 --- a/etc/api/networkservices/v1beta1/networkservices-api.json +++ b/etc/api/networkservices/v1beta1/networkservices-api.json @@ -979,6 +979,370 @@ } } }, + "lbRouteExtensions": { + "methods": { + "create": { + "description": "Creates a new `LbRouteExtension` resource in a given project and location.", + "flatPath": "v1beta1/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": "v1beta1/{+parent}/lbRouteExtensions", + "request": { + "$ref": "LbRouteExtension" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes the specified `LbRouteExtension` resource.", + "flatPath": "v1beta1/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": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of the specified `LbRouteExtension` resource.", + "flatPath": "v1beta1/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": "v1beta1/{+name}", + "response": { + "$ref": "LbRouteExtension" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists `LbRouteExtension` resources in a given project and location.", + "flatPath": "v1beta1/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": "v1beta1/{+parent}/lbRouteExtensions", + "response": { + "$ref": "ListLbRouteExtensionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of the specified `LbRouteExtension` resource.", + "flatPath": "v1beta1/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": "v1beta1/{+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": "v1beta1/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": "v1beta1/{+parent}/lbTrafficExtensions", + "request": { + "$ref": "LbTrafficExtension" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes the specified `LbTrafficExtension` resource.", + "flatPath": "v1beta1/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": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of the specified `LbTrafficExtension` resource.", + "flatPath": "v1beta1/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": "v1beta1/{+name}", + "response": { + "$ref": "LbTrafficExtension" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists `LbTrafficExtension` resources in a given project and location.", + "flatPath": "v1beta1/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": "v1beta1/{+parent}/lbTrafficExtensions", + "response": { + "$ref": "ListLbTrafficExtensionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of the specified `LbTrafficExtension` resource.", + "flatPath": "v1beta1/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": "v1beta1/{+name}", + "request": { + "$ref": "LbTrafficExtension" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "meshes": { "methods": { "create": { @@ -1304,7 +1668,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "networkservices.projects.locations.operations.list", @@ -1556,6 +1920,250 @@ } } }, + "serviceLbPolicies": { + "methods": { + "create": { + "description": "Creates a new ServiceLbPolicy in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies", + "httpMethod": "POST", + "id": "networkservices.projects.locations.serviceLbPolicies.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "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" + }, + "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": "v1beta1/{+parent}/serviceLbPolicies", + "request": { + "$ref": "ServiceLbPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single ServiceLbPolicy.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies/{serviceLbPoliciesId}", + "httpMethod": "DELETE", + "id": "networkservices.projects.locations.serviceLbPolicies.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the ServiceLbPolicy to delete. Must be in the format `projects/{project}/locations/{location}/serviceLbPolicies/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceLbPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single ServiceLbPolicy.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies/{serviceLbPoliciesId}", + "httpMethod": "GET", + "id": "networkservices.projects.locations.serviceLbPolicies.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the ServiceLbPolicy to get. Must be in the format `projects/{project}/locations/{location}/serviceLbPolicies/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceLbPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "ServiceLbPolicy" + }, + "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": "v1beta1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies/{serviceLbPoliciesId}:getIamPolicy", + "httpMethod": "GET", + "id": "networkservices.projects.locations.serviceLbPolicies.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/[^/]+/serviceLbPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists ServiceLbPolicies in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies", + "httpMethod": "GET", + "id": "networkservices.projects.locations.serviceLbPolicies.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of ServiceLbPolicies to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "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 ServiceLbPolicies should be listed, specified in the format `projects/{project}/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/serviceLbPolicies", + "response": { + "$ref": "ListServiceLbPoliciesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single ServiceLbPolicy.", + "flatPath": "v1beta1/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": "v1beta1/{+name}", + "request": { + "$ref": "ServiceLbPolicy" + }, + "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": "v1beta1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies/{serviceLbPoliciesId}:setIamPolicy", + "httpMethod": "POST", + "id": "networkservices.projects.locations.serviceLbPolicies.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/[^/]+/serviceLbPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+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": "v1beta1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies/{serviceLbPoliciesId}:testIamPermissions", + "httpMethod": "POST", + "id": "networkservices.projects.locations.serviceLbPolicies.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/[^/]+/serviceLbPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "tcpRoutes": { "methods": { "create": { @@ -1575,7 +2183,7 @@ "type": "string" }, "tcpRouteId": { - "description": "Required. Short name of the TcpRoute resource to be created. E.g. TODO(Add an example).", + "description": "Required. Short name of the TcpRoute resource to be created.", "location": "query", "type": "string" } @@ -1732,7 +2340,7 @@ "type": "string" }, "tlsRouteId": { - "description": "Required. Short name of the TlsRoute resource to be created. E.g. TODO(Add an example).", + "description": "Required. Short name of the TlsRoute resource to be created.", "location": "query", "type": "string" } @@ -1875,7 +2483,7 @@ } } }, - "revision": "20230105", + "revision": "20240224", "rootUrl": "https://networkservices.googleapis.com/", "schemas": { "AuditConfig": { @@ -1935,14 +2543,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -2062,10 +2670,117 @@ }, "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. Required for Callout extensions.", + "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` or the default setting of `FALSE` is used, one of the following happens: * If response headers have not been delivered to the downstream client, a generic 500 error is returned to the client. The error response can be tailored by configuring a custom error response in the load balancer. * If response headers have been delivered, then the HTTP stream to the downstream client is reset.", + "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", + "REQUEST_TRAILERS", + "RESPONSE_TRAILERS" + ], + "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.", + "If included in `supported_events`, the extension is called when the HTTP request trailers arrives.", + "If included in `supported_events`, the extension is called when the HTTP response trailers arrives." + ], + "type": "string" + }, + "type": "array" + }, + "timeout": { + "description": "Optional. Specifies the timeout for each individual message on the stream. The timeout must be between 10-1000 milliseconds. Required for Callout extensions.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "ExtensionChainMatchCondition": { + "description": "Conditions under which this chain is invoked for a request.", + "id": "ExtensionChainMatchCondition", + "properties": { + "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](/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": { + "description": "Optional. Zero or one IPv4 or IPv6 address on which the Gateway will receive the traffic. When no address is provided, an IP from the subnetwork is allocated This field only applies to gateways of type 'SECURE_WEB_GATEWAY'. Gateways of type 'OPEN_MESH' listen on 0.0.0.0 for IPv4 and :: for IPv6.", + "items": { + "type": "string" + }, + "type": "array" + }, + "certificateUrls": { + "description": "Optional. A fully-qualified Certificates URL reference. The proxy presents a Certificate (selected based on SNI) when establishing a TLS connection. This feature only applies to gateways of type 'SECURE_WEB_GATEWAY'.", + "items": { + "type": "string" + }, + "type": "array" + }, "createTime": { "description": "Output only. The timestamp when the resource was created.", "format": "google-datetime", @@ -2076,6 +2791,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" @@ -2087,8 +2834,12 @@ "description": "Required. Name of the Gateway resource. It matches pattern `projects/*/locations/*/gateways/`.", "type": "string" }, + "network": { + "description": "Optional. The relative resource name identifying the VPC network that is using this configuration. For example: `projects/*/global/networks/network-1`. Currently, this field is specific to gateways of type 'SECURE_WEB_GATEWAY'.", + "type": "string" + }, "ports": { - "description": "Required. One or more port numbers (1-65535), on which the Gateway will receive traffic. The proxy binds to the specified ports. Gateways of type 'SECURE_WEB_GATEWAY' are limited to 1 port. Gateways of type 'OPEN_MESH' listen on 0.0.0.0 and support multiple ports.", + "description": "Required. One or more port numbers (1-65535), on which the Gateway will receive traffic. The proxy binds to the specified ports. Gateways of type 'SECURE_WEB_GATEWAY' are limited to 1 port. Gateways of type 'OPEN_MESH' listen on 0.0.0.0 for IPv4 and :: for IPv6 and support multiple ports.", "items": { "format": "int32", "type": "integer" @@ -2096,7 +2847,7 @@ "type": "array" }, "scope": { - "description": "Required. Immutable. Scope determines how configuration across multiple Gateway instances are merged. The configuration for multiple Gateway instances with the same scope will be merged as presented as a single coniguration to the proxy/load balancer. Max length 64 characters. Scope should start with a letter and can only have letters, numbers, hyphens.", + "description": "Optional. Scope determines how configuration across multiple Gateway instances are merged. The configuration for multiple Gateway instances with the same scope will be merged as presented as a single coniguration to the proxy/load balancer. Max length 64 characters. Scope should start with a letter and can only have letters, numbers, hyphens.", "type": "string" }, "selfLink": { @@ -2108,6 +2859,10 @@ "description": "Optional. A fully-qualified ServerTLSPolicy URL reference. Specifies how TLS traffic is terminated. If empty, TLS termination is disabled.", "type": "string" }, + "subnetwork": { + "description": "Optional. The relative resource name identifying the subnetwork in which this SWG is allocated. For example: `projects/*/regions/us-central1/subnetworks/network-1` Currently, this field is specific to gateways of type 'SECURE_WEB_GATEWAY\".", + "type": "string" + }, "type": { "description": "Immutable. The type of the customer managed gateway. This field is required. If unspecified, an error is returned.", "enum": [ @@ -2153,7 +2908,7 @@ "type": "array" }, "hostnames": { - "description": "Required. Service hostnames with an optional port for which this route describes traffic. Format: [:] Hostname is the fully qualified domain name of a network host. This matches the RFC 1123 definition of a hostname with 2 notable exceptions: - IPs are not allowed. - A hostname may be prefixed with a wildcard label (*.). The wildcard label must appear by itself as the first label. Hostname can be \"precise\" which is a domain name without the terminating dot of a network host (e.g. \"foo.example.com\") or \"wildcard\", which is a domain name prefixed with a single wildcard label (e.g. *.example.com). Note that as per RFC1035 and RFC1123, a label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character. No other punctuation is allowed. The routes associated with a Mesh or Gateway must have unique hostnames. If you attempt to attach multiple routes with conflicting hostnames, the configuration will be rejected. For example, while it is acceptable for routes for the hostnames \"*.foo.bar.com\" and \"*.bar.com\" to be associated with the same route, it is not possible to associate two routes both with \"*.bar.com\" or both with \"bar.com\". If a port is specified, then gRPC clients must use the channel URI with the port to match this rule (i.e. \"xds:///service:123\"), otherwise they must supply the URI without a port (i.e. \"xds:///service\").", + "description": "Required. Service hostnames with an optional port for which this route describes traffic. Format: [:] Hostname is the fully qualified domain name of a network host. This matches the RFC 1123 definition of a hostname with 2 notable exceptions: - IPs are not allowed. - A hostname may be prefixed with a wildcard label (`*.`). The wildcard label must appear by itself as the first label. Hostname can be \"precise\" which is a domain name without the terminating dot of a network host (e.g. `foo.example.com`) or \"wildcard\", which is a domain name prefixed with a single wildcard label (e.g. `*.example.com`). Note that as per RFC1035 and RFC1123, a label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character. No other punctuation is allowed. The routes associated with a Mesh or Gateway must have unique hostnames. If you attempt to attach multiple routes with conflicting hostnames, the configuration will be rejected. For example, while it is acceptable for routes for the hostnames `*.foo.bar.com` and `*.bar.com` to be associated with the same route, it is not possible to associate two routes both with `*.bar.com` or both with `bar.com`. If a port is specified, then gRPC clients must use the channel URI with the port to match this rule (i.e. \"xds:///service:123\"), otherwise they must supply the URI without a port (i.e. \"xds:///service\").", "items": { "type": "string" }, @@ -2207,7 +2962,7 @@ "type": "string" }, "weight": { - "description": "Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.", + "description": "Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.", "format": "int32", "type": "integer" } @@ -2359,10 +3114,19 @@ "$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." }, + "statefulSessionAffinity": { + "$ref": "GrpcRouteStatefulSessionAffinityPolicy", + "description": "Optional. Specifies cookie-based stateful session affinity." + }, "timeout": { "description": "Optional. Specifies the timeout for selected route. Timeout is computed from the time the request has been fully processed (i.e. end of stream) up until the response has been completely processed. Timeout includes all retries.", "format": "google-duration", @@ -2407,6 +3171,18 @@ }, "type": "object" }, + "GrpcRouteStatefulSessionAffinityPolicy": { + "description": "The specification for cookie-based stateful session affinity where the date plane supplies a \u201csession cookie\u201d with the name \"GSSA\" which encodes a specific destination host and each request containing that cookie will be directed to that host as long as the destination host remains up and healthy. The gRPC proxyless mesh library or sidecar proxy will manage the session cookie but the client application code is responsible for copying the cookie from each RPC in the session to the next.", + "id": "GrpcRouteStatefulSessionAffinityPolicy", + "properties": { + "cookieTtl": { + "description": "Required. The cookie TTL value for the Set-Cookie header generated by the data plane. The lifetime of the cookie may be set to a value from 1 to 86400 seconds (24 hours) inclusive.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "HttpRoute": { "description": "HttpRoute is the resource defining how HTTP traffic should be routed by a Mesh or Gateway resource.", "id": "HttpRoute", @@ -2429,7 +3205,7 @@ "type": "array" }, "hostnames": { - "description": "Required. Hostnames define a set of hosts that should match against the HTTP host header to select a HttpRoute to process the request. Hostname is the fully qualified domain name of a network host, as defined by RFC 1123 with the exception that: - IPs are not allowed. - A hostname may be prefixed with a wildcard label (*.). The wildcard label must appear by itself as the first label. Hostname can be \"precise\" which is a domain name without the terminating dot of a network host (e.g. \"foo.example.com\") or \"wildcard\", which is a domain name prefixed with a single wildcard label (e.g. *.example.com). Note that as per RFC1035 and RFC1123, a label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character. No other punctuation is allowed. The routes associated with a Mesh or Gateways must have unique hostnames. If you attempt to attach multiple routes with conflicting hostnames, the configuration will be rejected. For example, while it is acceptable for routes for the hostnames \"*.foo.bar.com\" and \"*.bar.com\" to be associated with the same Mesh (or Gateways under the same scope), it is not possible to associate two routes both with \"*.bar.com\" or both with \"bar.com\".", + "description": "Required. Hostnames define a set of hosts that should match against the HTTP host header to select a HttpRoute to process the request. Hostname is the fully qualified domain name of a network host, as defined by RFC 1123 with the exception that: - IPs are not allowed. - A hostname may be prefixed with a wildcard label (`*.`). The wildcard label must appear by itself as the first label. Hostname can be \"precise\" which is a domain name without the terminating dot of a network host (e.g. `foo.example.com`) or \"wildcard\", which is a domain name prefixed with a single wildcard label (e.g. `*.example.com`). Note that as per RFC1035 and RFC1123, a label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character. No other punctuation is allowed. The routes associated with a Mesh or Gateways must have unique hostnames. If you attempt to attach multiple routes with conflicting hostnames, the configuration will be rejected. For example, while it is acceptable for routes for the hostnames `*.foo.bar.com` and `*.bar.com` to be associated with the same Mesh (or Gateways under the same scope), it is not possible to associate two routes both with `*.bar.com` or both with `bar.com`.", "items": { "type": "string" }, @@ -2532,12 +3308,20 @@ "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" }, "weight": { - "description": "Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.", + "description": "Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.", "format": "int32", "type": "integer" } @@ -2677,6 +3461,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", @@ -2759,6 +3564,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" @@ -2802,17 +3612,26 @@ }, "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." }, "requestHeaderModifier": { "$ref": "HttpRouteHeaderModifier", - "description": "The specification for modifying the headers of a matching request prior to delivery of the request to the destination." + "description": "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." }, "requestMirrorPolicy": { "$ref": "HttpRouteRequestMirrorPolicy", @@ -2820,12 +3639,16 @@ }, "responseHeaderModifier": { "$ref": "HttpRouteHeaderModifier", - "description": "The specification for modifying the headers of a response prior to sending the response back to the client." + "description": "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." }, "retryPolicy": { "$ref": "HttpRouteRetryPolicy", "description": "Specifies the retry policy associated with this route." }, + "statefulSessionAffinity": { + "$ref": "HttpRouteStatefulSessionAffinityPolicy", + "description": "Optional. Specifies cookie-based stateful session affinity." + }, "timeout": { "description": "Specifies the timeout for selected route. Timeout is computed from the time the request has been fully processed (i.e. end of stream) up until the response has been completely processed. Timeout includes all retries.", "format": "google-duration", @@ -2893,6 +3716,18 @@ }, "type": "object" }, + "HttpRouteStatefulSessionAffinityPolicy": { + "description": "The specification for cookie-based stateful session affinity where the date plane supplies a \u201csession cookie\u201d with the name \"GSSA\" which encodes a specific destination host and each request containing that cookie will be directed to that host as long as the destination host remains up and healthy. The gRPC proxyless mesh library or sidecar proxy will manage the session cookie but the client application code is responsible for copying the cookie from each RPC in the session to the next.", + "id": "HttpRouteStatefulSessionAffinityPolicy", + "properties": { + "cookieTtl": { + "description": "Required. The cookie TTL value for the Set-Cookie header generated by the data plane. The lifetime of the cookie may be set to a value from 1 to 86400 seconds (24 hours) inclusive.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "HttpRouteURLRewrite": { "description": "The specification for modifying the URL of the request, prior to forwarding the request to the destination.", "id": "HttpRouteURLRewrite", @@ -2908,6 +3743,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 requirements for labels](/compute/docs/labeling-resources#requirements) for Google Cloud resources.", + "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 requirements for labels](/compute/docs/labeling-resources#requirements) for Google Cloud resources.", + "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", @@ -2940,6 +3899,13 @@ "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" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -2980,6 +3946,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", @@ -3052,6 +4068,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", @@ -3089,7 +4123,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -3136,8 +4170,22 @@ "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 will is applicable only for sidecar proxy deployments.", + "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", "type": "integer" }, @@ -3171,7 +4219,7 @@ "id": "MetadataLabelMatcher", "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", @@ -3238,7 +4286,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" } }, @@ -3289,7 +4337,7 @@ "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/).", + "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": { @@ -3348,6 +4396,11 @@ "description": "Required. The full Service Directory Service name of the format projects/*/locations/*/namespaces/*/services/*", "type": "string" }, + "serviceId": { + "description": "Output only. The unique identifier of the Service Directory Service against which the Service Binding resource is validated. This is populated when the Service Binding resource is used in another resource (like Backend Service). This is of the UUID4 format.", + "readOnly": true, + "type": "string" + }, "updateTime": { "description": "Output only. The timestamp when the resource was updated.", "format": "google-datetime", @@ -3357,6 +4410,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", @@ -3465,14 +4601,19 @@ "id": "TcpRouteRouteAction", "properties": { "destinations": { - "description": "Optional. The destination services to which traffic should be forwarded. At least one destination service is required.", + "description": "Optional. The destination services to which traffic should be forwarded. At least one destination service is required. Only one of route destination or original destination can be set.", "items": { "$ref": "TcpRouteRouteDestination" }, "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.", + "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" } }, @@ -3487,7 +4628,7 @@ "type": "string" }, "weight": { - "description": "Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.", + "description": "Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.", "format": "int32", "type": "integer" } @@ -3576,6 +4717,13 @@ }, "type": "array" }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of label tags associated with the TlsRoute resource.", + "type": "object" + }, "meshes": { "description": "Optional. Meshes defines a list of meshes this TlsRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/` The attached Mesh should be of a type SIDECAR", "items": { @@ -3618,6 +4766,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" @@ -3631,7 +4784,7 @@ "type": "string" }, "weight": { - "description": "Optional. Specifies the proportion of requests forwareded to the backend referenced by the service_name field. This is computed as: weight/Sum(weights in destinations) Weights in all destinations does not need to sum up to 100.", + "description": "Optional. Specifies the proportion of requests forwareded to the backend referenced by the service_name field. This is computed as: - weight/Sum(weights in destinations) Weights in all destinations does not need to sum up to 100.", "format": "int32", "type": "integer" } @@ -3650,7 +4803,7 @@ "type": "array" }, "sniHost": { - "description": "Optional. SNI (server name indicator) to match against. SNI will be matched against all wildcard domains, i.e. www.example.com will be first matched against www.example.com, then *.example.com, then *.com. Partial wildcards are not supported, and values like *w.example.com are invalid. At least one of sni_host and alpn is required. Up to 5 sni hosts across all matches can be set.", + "description": "Optional. SNI (server name indicator) to match against. SNI will be matched against all wildcard domains, i.e. `www.example.com` will be first matched against `www.example.com`, then `*.example.com`, then `*.com.` Partial wildcards are not supported, and values like *w.example.com are invalid. At least one of sni_host and alpn is required. Up to 5 sni hosts across all matches can be set.", "items": { "type": "string" }, diff --git a/etc/api/notebooks/v1/notebooks-api.json b/etc/api/notebooks/v1/notebooks-api.json index 00bc6008e3..c0ffb518aa 100644 --- a/etc/api/notebooks/v1/notebooks-api.json +++ b/etc/api/notebooks/v1/notebooks-api.json @@ -395,7 +395,7 @@ ], "parameters": { "filter": { - "description": "Filter applied to resulting executions. Currently only supports filtering executions by a specified schedule_id. Format: `schedule_id=`", + "description": "Filter applied to resulting executions. Currently only supports filtering executions by a specified `schedule_id`. Format: `schedule_id=`", "location": "query", "type": "string" }, @@ -578,7 +578,7 @@ ] }, "getInstanceHealth": { - "description": "Check if a notebook instance is healthy.", + "description": "Checks whether a notebook instance is healthy.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:getInstanceHealth", "httpMethod": "GET", "id": "notebooks.projects.locations.instances.getInstanceHealth", @@ -603,7 +603,7 @@ ] }, "isUpgradeable": { - "description": "Check if a notebook instance is upgradable.", + "description": "Checks whether a notebook instance is upgradable.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:isUpgradeable", "httpMethod": "GET", "id": "notebooks.projects.locations.instances.isUpgradeable", @@ -655,6 +655,16 @@ "parent" ], "parameters": { + "filter": { + "description": "Optional. List filter.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Sort results. Supported values are \"name\", \"name desc\" or \"\" (unsorted).", + "location": "query", + "type": "string" + }, "pageSize": { "description": "Maximum return size of the list call.", "format": "int32", @@ -682,6 +692,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "migrate": { + "description": "Migrates an existing User-Managed Notebook to Workbench Instances.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:migrate", + "httpMethod": "POST", + "id": "notebooks.projects.locations.instances.migrate", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Format: `projects/{project_id}/locations/{location}/instances/{instance_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:migrate", + "request": { + "$ref": "MigrateInstanceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "register": { "description": "Registers an existing legacy notebook instance to the Notebooks API server. Legacy instances are instances created with the legacy Compute Engine calls. They are not manageable by the Notebooks API out of the box. This call makes these instances manageable by the Notebooks API.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances:register", @@ -738,6 +776,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "reportEvent": { + "description": "Reports and processes an instance event.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:reportEvent", + "httpMethod": "POST", + "id": "notebooks.projects.locations.instances.reportEvent", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Format: `projects/{project_id}/locations/{location}/instances/{instance_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:reportEvent", + "request": { + "$ref": "ReportInstanceEventRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "reset": { "description": "Resets a notebook instance.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:reset", @@ -1213,7 +1279,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "notebooks.projects.locations.operations.list", @@ -1418,6 +1484,16 @@ "parent" ], "parameters": { + "filter": { + "description": "Optional. List filter.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Sort results. Supported values are \"name\", \"name desc\" or \"\" (unsorted).", + "location": "query", + "type": "string" + }, "pageSize": { "description": "Maximum return size of the list call.", "format": "int32", @@ -1445,6 +1521,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "migrate": { + "description": "Migrate an existing Runtime to a new Workbench Instance.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/runtimes/{runtimesId}:migrate", + "httpMethod": "POST", + "id": "notebooks.projects.locations.runtimes.migrate", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Format: `projects/{project_id}/locations/{location}/runtimes/{runtime_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/runtimes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:migrate", + "request": { + "$ref": "MigrateRuntimeRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "patch": { "description": "Update Notebook Runtime configuration.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/runtimes/{runtimesId}", @@ -1467,7 +1571,7 @@ "type": "string" }, "updateMask": { - "description": "Required. Specifies the path, relative to `Runtime`, of the field to update. For example, to change the software configuration kernels, the `update_mask` parameter would be specified as `software_config.kernels`, and the `PATCH` request body would specify the new value, as follows: { \"software_config\":{ \"kernels\": [{ 'repository': 'gcr.io/deeplearning-platform-release/pytorch-gpu', 'tag': 'latest' }], } } Currently, only the following fields can be updated: - software_config.kernels - software_config.post_startup_script - software_config.custom_gpu_driver_path - software_config.idle_shutdown - software_config.idle_shutdown_timeout - software_config.disable_terminal", + "description": "Required. Specifies the path, relative to `Runtime`, of the field to update. For example, to change the software configuration kernels, the `update_mask` parameter would be specified as `software_config.kernels`, and the `PATCH` request body would specify the new value, as follows: { \"software_config\":{ \"kernels\": [{ 'repository': 'gcr.io/deeplearning-platform-release/pytorch-gpu', 'tag': 'latest' }], } } Currently, only the following fields can be updated: - `software_config.kernels` - `software_config.post_startup_script` - `software_config.custom_gpu_driver_path` - `software_config.idle_shutdown` - `software_config.idle_shutdown_timeout` - `software_config.disable_terminal` - `labels`", "format": "google-fieldmask", "location": "query", "type": "string" @@ -1513,7 +1617,7 @@ ] }, "reportEvent": { - "description": "Report and process a runtime event.", + "description": "Reports and processes a runtime event.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/runtimes/{runtimesId}:reportEvent", "httpMethod": "POST", "id": "notebooks.projects.locations.runtimes.reportEvent", @@ -1904,11 +2008,11 @@ } } }, - "revision": "20221213", + "revision": "20231227", "rootUrl": "https://notebooks.googleapis.com/", "schemas": { "AcceleratorConfig": { - "description": "Definition of a hardware accelerator. Note that not all combinations of `type` and `core_count` are valid. Check [GPUs on Compute Engine](/compute/docs/gpus/#gpus-list) to find a valid combination. TPUs are not supported.", + "description": "Definition of a hardware accelerator. Note that not all combinations of `type` and `core_count` are valid. See [GPUs on Compute Engine](https://cloud.google.com/compute/docs/gpus/#gpus-list) to find a valid combination. TPUs are not supported.", "id": "AcceleratorConfig", "properties": { "coreCount": { @@ -1926,6 +2030,7 @@ "NVIDIA_TESLA_P4", "NVIDIA_TESLA_T4", "NVIDIA_TESLA_A100", + "NVIDIA_L4", "NVIDIA_TESLA_T4_VWS", "NVIDIA_TESLA_P100_VWS", "NVIDIA_TESLA_P4_VWS", @@ -1940,6 +2045,7 @@ "Accelerator type is Nvidia Tesla P4.", "Accelerator type is Nvidia Tesla T4.", "Accelerator type is Nvidia Tesla A100.", + "Accelerator type is Nvidia Tesla L4.", "Accelerator type is NVIDIA Tesla T4 Virtual Workstations.", "Accelerator type is NVIDIA Tesla P100 Virtual Workstations.", "Accelerator type is NVIDIA Tesla P4 Virtual Workstations.", @@ -1960,7 +2066,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, @@ -2018,6 +2124,11 @@ "diagnosticConfig": { "$ref": "DiagnosticConfig", "description": "Required. Defines flags that are used to run the diagnostic tool" + }, + "timeoutMinutes": { + "description": "Optional. Maxmium amount of time in minutes before the operation times out.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -2029,6 +2140,11 @@ "diagnosticConfig": { "$ref": "DiagnosticConfig", "description": "Required. Defines flags that are used to run the diagnostic tool" + }, + "timeoutMinutes": { + "description": "Optional. Maxmium amount of time in minutes before the operation times out.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -2073,7 +2189,7 @@ "type": "boolean" }, "deviceName": { - "description": "Indicates a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine.This field is only applicable for persistent disks.", + "description": "Indicates a unique device name of your choice that is reflected into the `/dev/disk/by-id/google-*` tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine.This field is only applicable for persistent disks.", "type": "string" }, "diskSizeGb": { @@ -2094,7 +2210,7 @@ "type": "string" }, "interface": { - "description": "Indicates the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. Valid values: * NVME * SCSI", + "description": "Indicates the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. Valid values: * `NVME` * `SCSI`", "type": "string" }, "kind": { @@ -2109,7 +2225,7 @@ "type": "array" }, "mode": { - "description": "The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode. Valid values: * READ_ONLY * READ_WRITE", + "description": "The mode in which to attach this disk, either `READ_WRITE` or `READ_ONLY`. If not specified, the default is to attach the disk in `READ_WRITE` mode. Valid values: * `READ_ONLY` * `READ_WRITE`", "type": "string" }, "source": { @@ -2117,7 +2233,7 @@ "type": "string" }, "type": { - "description": "Indicates the type of the disk, either SCRATCH or PERSISTENT. Valid values: * PERSISTENT * SCRATCH", + "description": "Indicates the type of the disk, either `SCRATCH` or `PERSISTENT`. Valid values: * `PERSISTENT` * `SCRATCH`", "type": "string" } }, @@ -2352,6 +2468,7 @@ "type": "string" }, "scaleTier": { + "deprecated": true, "description": "Required. Scale tier of the hardware used for notebook execution. DEPRECATED Will be discontinued. As right now only CUSTOM is supported.", "enum": [ "SCALE_TIER_UNSPECIFIED", @@ -2450,7 +2567,7 @@ "id": "GuestOsFeature", "properties": { "type": { - "description": "The ID of a supported feature. Read Enabling guest operating system features to see a list of available options. Valid values: * FEATURE_TYPE_UNSPECIFIED * MULTI_IP_SUBNET * SECURE_BOOT * UEFI_COMPATIBLE * VIRTIO_SCSI_MULTIQUEUE * WINDOWS", + "description": "The ID of a supported feature. Read Enabling guest operating system features to see a list of available options. Valid values: * `FEATURE_TYPE_UNSPECIFIED` * `MULTI_IP_SUBNET` * `SECURE_BOOT` * `UEFI_COMPATIBLE` * `VIRTIO_SCSI_MULTIQUEUE` * `WINDOWS`", "type": "string" } }, @@ -2462,7 +2579,7 @@ "properties": { "acceleratorConfig": { "$ref": "AcceleratorConfig", - "description": "The hardware accelerator used on this instance. If you use accelerators, make sure that your configuration has [enough vCPUs and memory to support the `machine_type` you have selected](/compute/docs/gpus/#gpus-list)." + "description": "The hardware accelerator used on this instance. If you use accelerators, make sure that your configuration has [enough vCPUs and memory to support the `machine_type` you have selected](https://cloud.google.com/compute/docs/gpus/#gpus-list)." }, "bootDiskSizeGb": { "description": "Input only. The size of the boot disk in GB attached to this instance, up to a maximum of 64000 GB (64 TB). The minimum recommended value is 100 GB. If not specified, this defaults to 100.", @@ -2559,6 +2676,11 @@ "description": "Whether the end user authorizes Google Cloud to install GPU driver on this instance. If this field is empty or set to false, the GPU driver won't be installed. Only applicable to instances with GPUs.", "type": "boolean" }, + "instanceMigrationEligibility": { + "$ref": "InstanceMigrationEligibility", + "description": "Output only. Checks how feasible a migration from UmN to WbI is.", + "readOnly": true + }, "instanceOwners": { "description": "Input only. The owner of this instance after creation. Format: `alias@example.com` Currently supports one owner only. If not specified, all of the service account users of your VM instance's service account can use the instance.", "items": { @@ -2578,16 +2700,21 @@ "type": "object" }, "machineType": { - "description": "Required. The [Compute Engine machine type](/compute/docs/machine-types) of this instance.", + "description": "Required. The [Compute Engine machine type](https://cloud.google.com/compute/docs/machine-types) of this instance.", "type": "string" }, "metadata": { "additionalProperties": { "type": "string" }, - "description": "Custom metadata to apply to this instance.", + "description": "Custom metadata to apply to this instance. For example, to specify a Cloud Storage bucket for automatic backup, you can use the `gcs-data-bucket` metadata tag. Format: `\"--metadata=gcs-data-bucket=``BUCKET''\"`.", "type": "object" }, + "migrated": { + "description": "Output only. Bool indicating whether this notebook has been migrated to a Workbench Instance", + "readOnly": true, + "type": "boolean" + }, "name": { "description": "Output only. The name of this notebook instance. Format: `projects/{project_id}/locations/{location}/instances/{instance_id}`", "readOnly": true, @@ -2616,7 +2743,7 @@ "type": "boolean" }, "noPublicIp": { - "description": "If true, no public IP will be assigned to this instance.", + "description": "If true, no external IP will be assigned to this instance.", "type": "boolean" }, "noRemoveDataDisk": { @@ -2730,6 +2857,55 @@ }, "type": "object" }, + "InstanceMigrationEligibility": { + "description": "InstanceMigrationEligibility represents the feasibility information of a migration from UmN to WbI.", + "id": "InstanceMigrationEligibility", + "properties": { + "errors": { + "description": "Output only. Certain configurations make the UmN ineligible for an automatic migration. A manual migration is required.", + "items": { + "enum": [ + "ERROR_UNSPECIFIED", + "DATAPROC_HUB" + ], + "enumDescriptions": [ + "Default type.", + "The UmN uses Dataproc Hub and cannot be migrated." + ], + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "warnings": { + "description": "Output only. Certain configurations will be defaulted during the migration.", + "items": { + "enum": [ + "WARNING_UNSPECIFIED", + "UNSUPPORTED_MACHINE_TYPE", + "UNSUPPORTED_ACCELERATOR_TYPE", + "UNSUPPORTED_OS", + "NO_REMOVE_DATA_DISK", + "GCS_BACKUP", + "POST_STARTUP_SCRIPT" + ], + "enumDescriptions": [ + "Default type.", + "The UmN uses an machine type that's unsupported in WbI. It will be migrated with the default machine type e2-standard-4. Users can change the machine type after the migration.", + "The UmN uses an accelerator type that's unsupported in WbI. It will be migrated without an accelerator. User can attach an accelerator after the migration.", + "The UmN uses an operating system that's unsupported in WbI (e.g. Debian 10, Ubuntu). It will be replaced with Debian 11 in WbI.", + "This UmN is configured with no_remove_data_disk, which is no longer available in WbI.", + "This UmN is configured with the Cloud Storage backup feature, which is no longer available in WbI.", + "This UmN is configured with a post startup script. Please optionally provide the `post_startup_script_option` for the migration." + ], + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "IsInstanceUpgradeableResponse": { "description": "Response for checking if a notebook instance is upgradeable.", "id": "IsInstanceUpgradeableResponse", @@ -2819,7 +2995,7 @@ "type": "string" }, "unreachable": { - "description": "Locations that could not be reached. For example, ['us-west1-a', 'us-central1-b']. A ListInstancesResponse will only contain either instances or unreachables,", + "description": "Locations that could not be reached. For example, `['us-west1-a', 'us-central1-b']`. A ListInstancesResponse will only contain either instances or unreachables,", "items": { "type": "string" }, @@ -2880,7 +3056,7 @@ "type": "array" }, "unreachable": { - "description": "Locations that could not be reached. For example, ['us-west1', 'us-central1']. A ListRuntimesResponse will only contain either runtimes or unreachables,", + "description": "Locations that could not be reached. For example, `['us-west1', 'us-central1']`. A ListRuntimesResponse will only contain either runtimes or unreachables,", "items": { "type": "string" }, @@ -2929,7 +3105,7 @@ "type": "boolean" }, "deviceName": { - "description": "Optional. Output only. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.", + "description": "Optional. Output only. Specifies a unique device name of your choice that is reflected into the `/dev/disk/by-id/google-*` tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.", "readOnly": true, "type": "string" }, @@ -2952,7 +3128,7 @@ "description": "Input only. Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both." }, "interface": { - "description": "Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. Valid values: * NVME * SCSI", + "description": "Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. Valid values: * `NVME` * `SCSI`", "type": "string" }, "kind": { @@ -2969,7 +3145,7 @@ "type": "array" }, "mode": { - "description": "The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode. Valid values: * READ_ONLY * READ_WRITE", + "description": "The mode in which to attach this disk, either `READ_WRITE` or `READ_ONLY`. If not specified, the default is to attach the disk in `READ_WRITE` mode. Valid values: * `READ_ONLY` * `READ_WRITE`", "type": "string" }, "source": { @@ -2977,7 +3153,7 @@ "type": "string" }, "type": { - "description": "Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT. Valid values: * PERSISTENT * SCRATCH", + "description": "Specifies the type of the disk, either `SCRATCH` or `PERSISTENT`. If not specified, the default is `PERSISTENT`. Valid values: * `PERSISTENT` * `SCRATCH`", "type": "string" } }, @@ -3029,7 +3205,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -3062,6 +3238,64 @@ }, "type": "object" }, + "MigrateInstanceRequest": { + "description": "Request for migrating a User-Managed Notebook to Workbench Instances.", + "id": "MigrateInstanceRequest", + "properties": { + "postStartupScriptOption": { + "description": "Optional. Specifies the behavior of post startup script during migration.", + "enum": [ + "POST_STARTUP_SCRIPT_OPTION_UNSPECIFIED", + "POST_STARTUP_SCRIPT_OPTION_SKIP", + "POST_STARTUP_SCRIPT_OPTION_RERUN" + ], + "enumDescriptions": [ + "Post startup script option is not specified. Default is POST_STARTUP_SCRIPT_OPTION_SKIP.", + "Not migrate the post startup script to the new Workbench Instance.", + "Redownload and rerun the same post startup script as the User-Managed Notebook." + ], + "type": "string" + } + }, + "type": "object" + }, + "MigrateRuntimeRequest": { + "description": "Request for migrating a Runtime to a Workbench Instance.", + "id": "MigrateRuntimeRequest", + "properties": { + "network": { + "description": "Optional. Name of the VPC that the new Instance is in. This is required if the Runtime uses google-managed network. If the Runtime uses customer-owned network, it will reuse the same VPC, and this field must be empty. Format: `projects/{project_id}/global/networks/{network_id}`", + "type": "string" + }, + "postStartupScriptOption": { + "description": "Optional. Specifies the behavior of post startup script during migration.", + "enum": [ + "POST_STARTUP_SCRIPT_OPTION_UNSPECIFIED", + "POST_STARTUP_SCRIPT_OPTION_SKIP", + "POST_STARTUP_SCRIPT_OPTION_RERUN" + ], + "enumDescriptions": [ + "Post startup script option is not specified. Default is POST_STARTUP_SCRIPT_OPTION_SKIP.", + "Not migrate the post startup script to the new Workbench Instance.", + "Redownload and rerun the same post startup script as the Google-Managed Notebook." + ], + "type": "string" + }, + "requestId": { + "description": "Optional. Idempotent request UUID.", + "type": "string" + }, + "serviceAccount": { + "description": "Optional. The service account to be included in the Compute Engine instance of the new Workbench Instance when the Runtime uses \"single user only\" mode for permission. If not specified, the [Compute Engine default service account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account) is used. When the Runtime uses service account mode for permission, it will reuse the same service account, and this field must be empty.", + "type": "string" + }, + "subnet": { + "description": "Optional. Name of the subnet that the new Instance is in. This is required if the Runtime uses google-managed network. If the Runtime uses customer-owned network, it will reuse the same subnet, and this field must be empty. Format: `projects/{project_id}/regions/{region}/subnetworks/{subnetwork_id}`", + "type": "string" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -3091,7 +3325,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" } }, @@ -3139,7 +3373,7 @@ "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/).", + "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": { "bindings": { @@ -3201,6 +3435,21 @@ }, "type": "object" }, + "ReportInstanceEventRequest": { + "description": "Request for reporting a Managed Notebook Event.", + "id": "ReportInstanceEventRequest", + "properties": { + "event": { + "$ref": "Event", + "description": "Required. The Event to be reported." + }, + "vmId": { + "description": "Required. The VM hardware token for authenticating the VM. https://cloud.google.com/compute/docs/instances/verifying-instance-identity", + "type": "string" + } + }, + "type": "object" + }, "ReportInstanceInfoRequest": { "description": "Request for notebook instances to report information to Notebooks API.", "id": "ReportInstanceInfoRequest", @@ -3290,7 +3539,7 @@ "id": "RollbackInstanceRequest", "properties": { "targetSnapshot": { - "description": "Required. The snapshot for rollback. Example: \"projects/test-project/global/snapshots/krwlzipynril\".", + "description": "Required. The snapshot for rollback. Example: `projects/test-project/global/snapshots/krwlzipynril`.", "type": "string" } }, @@ -3329,16 +3578,33 @@ "readOnly": true, "type": "string" }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. The labels to associate with this Managed Notebook or Runtime. Label **keys** must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). Label **values** may be empty, but, if present, must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.", + "type": "object" + }, "metrics": { "$ref": "RuntimeMetrics", "description": "Output only. Contains Runtime daemon metrics such as Service status and JupyterLab stats.", "readOnly": true }, + "migrated": { + "description": "Output only. Bool indicating whether this notebook has been migrated to a Workbench Instance", + "readOnly": true, + "type": "boolean" + }, "name": { "description": "Output only. The resource name of the runtime. Format: `projects/{project}/locations/{location}/runtimes/{runtimeId}`", "readOnly": true, "type": "string" }, + "runtimeMigrationEligibility": { + "$ref": "RuntimeMigrationEligibility", + "description": "Output only. Checks how feasible a migration from GmN to WbI is.", + "readOnly": true + }, "softwareConfig": { "$ref": "RuntimeSoftwareConfig", "description": "The config settings for software inside the runtime." @@ -3384,7 +3650,7 @@ "type": "object" }, "RuntimeAcceleratorConfig": { - "description": "Definition of the types of hardware accelerators that can be used. Definition of the types of hardware accelerators that can be used. See [Compute Engine AcceleratorTypes](https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes). Examples: * `nvidia-tesla-k80` * `nvidia-tesla-p100` * `nvidia-tesla-v100` * `nvidia-tesla-p4` * `nvidia-tesla-t4` * `nvidia-tesla-a100`", + "description": "Definition of the types of hardware accelerators that can be used. See [Compute Engine AcceleratorTypes](https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes). Examples: * `nvidia-tesla-k80` * `nvidia-tesla-p100` * `nvidia-tesla-v100` * `nvidia-tesla-p4` * `nvidia-tesla-t4` * `nvidia-tesla-a100`", "id": "RuntimeAcceleratorConfig", "properties": { "coreCount": { @@ -3402,12 +3668,28 @@ "NVIDIA_TESLA_P4", "NVIDIA_TESLA_T4", "NVIDIA_TESLA_A100", + "NVIDIA_L4", "TPU_V2", "TPU_V3", "NVIDIA_TESLA_T4_VWS", "NVIDIA_TESLA_P100_VWS", "NVIDIA_TESLA_P4_VWS" ], + "enumDeprecated": [ + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], "enumDescriptions": [ "Accelerator type is not specified.", "Accelerator type is Nvidia Tesla K80.", @@ -3415,7 +3697,8 @@ "Accelerator type is Nvidia Tesla V100.", "Accelerator type is Nvidia Tesla P4.", "Accelerator type is Nvidia Tesla T4.", - "Accelerator type is Nvidia Tesla A100.", + "Accelerator type is Nvidia Tesla A100 - 40GB.", + "Accelerator type is Nvidia L4.", "(Coming soon) Accelerator type is TPU V2.", "(Coming soon) Accelerator type is TPU V3.", "Accelerator type is NVIDIA Tesla T4 Virtual Workstations.", @@ -3462,7 +3745,7 @@ "id": "RuntimeGuestOsFeature", "properties": { "type": { - "description": "The ID of a supported feature. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options. Valid values: * FEATURE_TYPE_UNSPECIFIED * MULTI_IP_SUBNET * SECURE_BOOT * UEFI_COMPATIBLE * VIRTIO_SCSI_MULTIQUEUE * WINDOWS", + "description": "The ID of a supported feature. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options. Valid values: * `FEATURE_TYPE_UNSPECIFIED` * `MULTI_IP_SUBNET` * `SECURE_BOOT` * `UEFI_COMPATIBLE` * `VIRTIO_SCSI_MULTIQUEUE` * `WINDOWS`", "type": "string" } }, @@ -3483,8 +3766,57 @@ }, "type": "object" }, + "RuntimeMigrationEligibility": { + "description": "RuntimeMigrationEligibility represents the feasibility information of a migration from GmN to WbI.", + "id": "RuntimeMigrationEligibility", + "properties": { + "errors": { + "description": "Output only. Certain configurations make the GmN ineligible for an automatic migration. A manual migration is required.", + "items": { + "enum": [ + "ERROR_UNSPECIFIED", + "CUSTOM_CONTAINER" + ], + "enumDescriptions": [ + "Default type.", + "The GmN is configured with custom container(s) and cannot be migrated." + ], + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "warnings": { + "description": "Output only. Certain configurations will be defaulted during the migration.", + "items": { + "enum": [ + "WARNING_UNSPECIFIED", + "UNSUPPORTED_ACCELERATOR_TYPE", + "UNSUPPORTED_OS", + "RESERVED_IP_RANGE", + "GOOGLE_MANAGED_NETWORK", + "POST_STARTUP_SCRIPT", + "SINGLE_USER" + ], + "enumDescriptions": [ + "Default type.", + "The GmN uses an accelerator type that's unsupported in WbI. It will be migrated without an accelerator. Users can attach an accelerator after the migration.", + "The GmN uses an operating system that's unsupported in WbI (e.g. Debian 10). It will be replaced with Debian 11 in WbI.", + "This GmN is configured with reserved IP range, which is no longer applicable in WbI.", + "This GmN is configured with a Google managed network. Please provide the `network` and `subnet` options for the migration.", + "This GmN is configured with a post startup script. Please optionally provide the `post_startup_script_option` for the migration.", + "This GmN is configured with single user mode. Please optionally provide the `service_account` option for the migration." + ], + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "RuntimeShieldedInstanceConfig": { - "description": "A set of Shielded Instance options. Check [Images using supported Shielded VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm). Not all combinations are valid.", + "description": "A set of Shielded Instance options. See [Images using supported Shielded VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm). Not all combinations are valid.", "id": "RuntimeShieldedInstanceConfig", "properties": { "enableIntegrityMonitoring": { @@ -3538,6 +3870,10 @@ }, "type": "array" }, + "mixerDisabled": { + "description": "Bool indicating whether mixer client should be disabled. Default: False", + "type": "boolean" + }, "notebookUpgradeSchedule": { "description": "Cron expression in UTC timezone, used to schedule instance auto upgrade. Please follow the [cron format](https://en.wikipedia.org/wiki/Cron).", "type": "string" @@ -3584,7 +3920,7 @@ "type": "string" }, "cronSchedule": { - "description": "Cron-tab formatted schedule by which the job will execute. Format: minute, hour, day of month, month, day of week, e.g. 0 0 * * WED = every Wednesday More examples: https://crontab.guru/examples.html", + "description": "Cron-tab formatted schedule by which the job will execute. Format: minute, hour, day of month, month, day of week, e.g. `0 0 * * WED` = every Wednesday More examples: https://crontab.guru/examples.html", "type": "string" }, "description": { @@ -3592,7 +3928,7 @@ "type": "string" }, "displayName": { - "description": "Output only. Display name used for UI purposes. Name can only contain alphanumeric characters, hyphens '-', and underscores '_'.", + "description": "Output only. Display name used for UI purposes. Name can only contain alphanumeric characters, hyphens `-`, and underscores `_`.", "readOnly": true, "type": "string" }, @@ -3648,7 +3984,7 @@ "type": "object" }, "SchedulerAcceleratorConfig": { - "description": "Definition of a hardware accelerator. Note that not all combinations of `type` and `core_count` are valid. Check [GPUs on Compute Engine](https://cloud.google.com/compute/docs/gpus) to find a valid combination. TPUs are not supported.", + "description": "Definition of a hardware accelerator. Note that not all combinations of `type` and `core_count` are valid. See [GPUs on Compute Engine](https://cloud.google.com/compute/docs/gpus) to find a valid combination. TPUs are not supported.", "id": "SchedulerAcceleratorConfig", "properties": { "coreCount": { @@ -3701,7 +4037,7 @@ "id": "SetInstanceAcceleratorRequest", "properties": { "coreCount": { - "description": "Required. Count of cores of this accelerator. Note that not all combinations of `type` and `core_count` are valid. Check [GPUs on Compute Engine](https://cloud.google.com/compute/docs/gpus/#gpus-list) to find a valid combination. TPUs are not supported.", + "description": "Required. Count of cores of this accelerator. Note that not all combinations of `type` and `core_count` are valid. See [GPUs on Compute Engine](https://cloud.google.com/compute/docs/gpus/#gpus-list) to find a valid combination. TPUs are not supported.", "format": "int64", "type": "string" }, @@ -3715,6 +4051,7 @@ "NVIDIA_TESLA_P4", "NVIDIA_TESLA_T4", "NVIDIA_TESLA_A100", + "NVIDIA_L4", "NVIDIA_TESLA_T4_VWS", "NVIDIA_TESLA_P100_VWS", "NVIDIA_TESLA_P4_VWS", @@ -3729,6 +4066,7 @@ "Accelerator type is Nvidia Tesla P4.", "Accelerator type is Nvidia Tesla T4.", "Accelerator type is Nvidia Tesla A100.", + "Accelerator type is Nvidia Tesla L4.", "Accelerator type is NVIDIA Tesla T4 Virtual Workstations.", "Accelerator type is NVIDIA Tesla P100 Virtual Workstations.", "Accelerator type is NVIDIA Tesla P4 Virtual Workstations.", @@ -3766,7 +4104,7 @@ "type": "object" }, "ShieldedInstanceConfig": { - "description": "A set of Shielded Instance options. Check [Images using supported Shielded VM features] Not all combinations are valid.", + "description": "A set of Shielded Instance options. See [Images using supported Shielded VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm). Not all combinations are valid.", "id": "ShieldedInstanceConfig", "properties": { "enableIntegrityMonitoring": { @@ -4000,7 +4338,8 @@ "type": "string" }, "targetImage": { - "description": "Target VM Image. Format: ainotebooks-vm/project/image-name/name.", + "deprecated": true, + "description": "Target VM Image. Format: `ainotebooks-vm/project/image-name/name`.", "type": "string" }, "targetVersion": { @@ -4091,11 +4430,11 @@ "additionalProperties": { "type": "string" }, - "description": "Environment variables. At most 100 environment variables can be specified and unique. Example: GCP_BUCKET=gs://my-bucket/samples/", + "description": "Environment variables. At most 100 environment variables can be specified and unique. Example: `GCP_BUCKET=gs://my-bucket/samples/`", "type": "object" }, "network": { - "description": "The full name of the Compute Engine [network](/compute/docs/networks-and-firewalls#networks) to which the Job should be peered. For example, `projects/12345/global/networks/myVPC`. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert) is of the form `projects/{project}/global/networks/{network}`. Where {project} is a project number, as in `12345`, and {network} is a network name. Private services access must already be configured for the network. If left unspecified, the job is not peered with any network.", + "description": "The full name of the Compute Engine [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the Job should be peered. For example, `projects/12345/global/networks/myVPC`. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert) is of the form `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is a network name. Private services access must already be configured for the network. If left unspecified, the job is not peered with any network.", "type": "string" } }, diff --git a/etc/api/ondemandscanning/v1/ondemandscanning-api.json b/etc/api/ondemandscanning/v1/ondemandscanning-api.json index 0e1b4ff7b9..4aa9a08605 100644 --- a/etc/api/ondemandscanning/v1/ondemandscanning-api.json +++ b/etc/api/ondemandscanning/v1/ondemandscanning-api.json @@ -187,7 +187,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "ondemandscanning.projects.locations.operations.list", @@ -339,7 +339,7 @@ } } }, - "revision": "20230109", + "revision": "20240226", "rootUrl": "https://ondemandscanning.googleapis.com/", "schemas": { "AliasContext": { @@ -419,6 +419,7 @@ "id": "AnalyzePackagesRequestV1", "properties": { "includeOsvData": { + "deprecated": true, "description": "[DEPRECATED] Whether to include OSV data in the scan. For backwards compatibility reasons, this field can be neither removed nor renamed.", "type": "boolean" }, @@ -506,10 +507,74 @@ }, "type": "object" }, + "BinarySourceInfo": { + "id": "BinarySourceInfo", + "properties": { + "binaryVersion": { + "$ref": "PackageVersion", + "description": "The binary package. This is significant when the source is different than the binary itself. Historically if they've differed, we've stored the name of the source and its version in the package/version fields, but we should also store the binary package info, as that's what's actually installed. See b/175908657#comment15." + }, + "sourceVersion": { + "$ref": "PackageVersion", + "description": "The source package. Similar to the above, this is significant when the source is different than the binary itself. Since the top-level package/version fields are based on an if/else, we need a separate field for both binary and source if we want to know definitively where the data is coming from." + } + }, + "type": "object" + }, + "BuildDefinition": { + "id": "BuildDefinition", + "properties": { + "buildType": { + "type": "string" + }, + "externalParameters": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "internalParameters": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "resolvedDependencies": { + "items": { + "$ref": "ResourceDescriptor" + }, + "type": "array" + } + }, + "type": "object" + }, + "BuildMetadata": { + "id": "BuildMetadata", + "properties": { + "finishedOn": { + "format": "google-datetime", + "type": "string" + }, + "invocationId": { + "type": "string" + }, + "startedOn": { + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "BuildOccurrence": { "description": "Details of a build occurrence.", "id": "BuildOccurrence", "properties": { + "inTotoSlsaProvenanceV1": { + "$ref": "InTotoSlsaProvenanceV1", + "description": "In-Toto Slsa Provenance V1 represents a slsa provenance meeting the slsa spec, wrapped in an in-toto statement. This allows for direct jsonification of a to-spec in-toto slsa statement with a to-spec slsa provenance." + }, "intotoProvenance": { "$ref": "InTotoProvenance", "description": "Deprecated. See InTotoStatement for the replacement. In-toto Provenance representation as defined in spec." @@ -617,9 +682,11 @@ "enum": [ "ATTACK_COMPLEXITY_UNSPECIFIED", "ATTACK_COMPLEXITY_LOW", - "ATTACK_COMPLEXITY_HIGH" + "ATTACK_COMPLEXITY_HIGH", + "ATTACK_COMPLEXITY_MEDIUM" ], "enumDescriptions": [ + "", "", "", "" @@ -664,9 +731,13 @@ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", - "IMPACT_NONE" + "IMPACT_NONE", + "IMPACT_PARTIAL", + "IMPACT_COMPLETE" ], "enumDescriptions": [ + "", + "", "", "", "", @@ -684,9 +755,13 @@ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", - "IMPACT_NONE" + "IMPACT_NONE", + "IMPACT_PARTIAL", + "IMPACT_COMPLETE" ], "enumDescriptions": [ + "", + "", "", "", "", @@ -707,9 +782,13 @@ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", - "IMPACT_NONE" + "IMPACT_NONE", + "IMPACT_PARTIAL", + "IMPACT_COMPLETE" ], "enumDescriptions": [ + "", + "", "", "", "", @@ -1004,6 +1083,10 @@ "description": "The last time this resource was scanned.", "format": "google-datetime", "type": "string" + }, + "sbomStatus": { + "$ref": "SBOMStatus", + "description": "The status of an SBOM generation." } }, "type": "object" @@ -1335,6 +1418,28 @@ }, "type": "object" }, + "InTotoSlsaProvenanceV1": { + "id": "InTotoSlsaProvenanceV1", + "properties": { + "_type": { + "description": "InToto spec defined at https://github.com/in-toto/attestation/tree/main/spec#statement", + "type": "string" + }, + "predicate": { + "$ref": "SlsaProvenanceV1" + }, + "predicateType": { + "type": "string" + }, + "subject": { + "items": { + "$ref": "Subject" + }, + "type": "array" + } + }, + "type": "object" + }, "InTotoStatement": { "description": "Spec defined at https://github.com/in-toto/attestation/tree/main/spec#statement The serialized InTotoStatement will be stored as Envelope.payload. Envelope.payloadType is always \"application/vnd.in-toto+json\".", "id": "InTotoStatement", @@ -1365,6 +1470,37 @@ }, "type": "object" }, + "Justification": { + "description": "Justification provides the justification when the state of the assessment if NOT_AFFECTED.", + "id": "Justification", + "properties": { + "details": { + "description": "Additional details on why this justification was chosen.", + "type": "string" + }, + "justificationType": { + "description": "The justification type for this vulnerability.", + "enum": [ + "JUSTIFICATION_TYPE_UNSPECIFIED", + "COMPONENT_NOT_PRESENT", + "VULNERABLE_CODE_NOT_PRESENT", + "VULNERABLE_CODE_NOT_IN_EXECUTE_PATH", + "VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY", + "INLINE_MITIGATIONS_ALREADY_EXIST" + ], + "enumDescriptions": [ + "JUSTIFICATION_TYPE_UNSPECIFIED.", + "The vulnerable component is not present in the product.", + "The vulnerable code is not present. Typically this case occurs when source code is configured or built in a way that excludes the vulnerable code.", + "The vulnerable code can not be executed. Typically this case occurs when the product includes the vulnerable code but does not call or use the vulnerable code.", + "The vulnerable code cannot be controlled by an attacker to exploit the vulnerability.", + "The product includes built-in protections or features that prevent exploitation of the vulnerability. These built-in protections cannot be subverted by the attacker and cannot be configured or disabled by the user. These mitigations completely prevent exploitation based on known attack vectors." + ], + "type": "string" + } + }, + "type": "object" + }, "Jwt": { "id": "Jwt", "properties": { @@ -1473,6 +1609,24 @@ }, "type": "object" }, + "Maintainer": { + "id": "Maintainer", + "properties": { + "email": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, "Material": { "id": "Material", "properties": { @@ -1590,7 +1744,9 @@ "ATTESTATION", "UPGRADE", "COMPLIANCE", - "DSSE_ATTESTATION" + "DSSE_ATTESTATION", + "VULNERABILITY_ASSESSMENT", + "SBOM_REFERENCE" ], "enumDescriptions": [ "Default value. This value is unused.", @@ -1603,7 +1759,9 @@ "This represents a logical \"role\" that can attest to artifacts.", "This represents an available package upgrade.", "This represents a Compliance Note", - "This represents a DSSE attestation Note" + "This represents a DSSE attestation Note", + "This represents a Vulnerability Assessment.", + "This represents an SBOM Reference." ], "type": "string" }, @@ -1627,6 +1785,10 @@ "description": "Required. Immutable. A URI that represents the resource for which the occurrence applies. For example, `https://gcr.io/project/image@sha256:123abc` for a Docker image.", "type": "string" }, + "sbomReference": { + "$ref": "SBOMReferenceOccurrence", + "description": "Describes a specific SBOM reference occurrences." + }, "updateTime": { "description": "Output only. The time this occurrence was last updated.", "format": "google-datetime", @@ -1672,7 +1834,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" } }, @@ -1681,6 +1843,21 @@ "PackageData": { "id": "PackageData", "properties": { + "architecture": { + "description": "The architecture of the package.", + "type": "string" + }, + "binarySourceInfo": { + "description": "A bundle containing the binary and source information.", + "items": { + "$ref": "BinarySourceInfo" + }, + "type": "array" + }, + "binaryVersion": { + "$ref": "PackageVersion", + "description": "DEPRECATED" + }, "cpeUri": { "description": "The cpe_uri in [cpe format] (https://cpe.mitre.org/specification/) in which the vulnerability may manifest. Examples include distro or storage location for vulnerable jar.", "type": "string" @@ -1703,6 +1880,17 @@ "description": "HashDigest stores the SHA512 hash digest of the jar file if the package is of type Maven. This field will be unset for non Maven packages.", "type": "string" }, + "licenses": { + "description": "The list of licenses found that are related to a given package. Note that licenses may also be stored on the BinarySourceInfo. If there is no BinarySourceInfo (because there's no concept of source vs binary), then it will be stored here, while if there are BinarySourceInfos, it will be stored there, as one source can have multiple binaries with different licenses.", + "items": { + "type": "string" + }, + "type": "array" + }, + "maintainer": { + "$ref": "Maintainer", + "description": "The maintainer of the package." + }, "os": { "description": "The OS affected by a vulnerability Used to generate the cpe_uri for OS packages", "type": "string" @@ -1724,7 +1912,11 @@ "GO", "GO_STDLIB", "PYPI", - "NPM" + "NPM", + "NUGET", + "RUBYGEMS", + "RUST", + "COMPOSER" ], "enumDescriptions": [ "", @@ -1733,7 +1925,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" }, @@ -1744,6 +1940,10 @@ }, "type": "array" }, + "sourceVersion": { + "$ref": "PackageVersion", + "description": "DEPRECATED" + }, "unused": { "type": "string" }, @@ -1874,6 +2074,25 @@ }, "type": "object" }, + "PackageVersion": { + "id": "PackageVersion", + "properties": { + "licenses": { + "description": "The licenses associated with this package. Note that this has to go on the PackageVersion level, because we can have cases with images with the same source having different licences. E.g. in Alpine, musl and musl-utils both have the same origin musl, but have different sets of licenses.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, "ProjectRepoId": { "description": "Selects a repo using a Google Cloud Platform project ID (e.g., winged-cargo-31) and a repo name within that project.", "id": "ProjectRepoId", @@ -1889,6 +2108,27 @@ }, "type": "object" }, + "ProvenanceBuilder": { + "id": "ProvenanceBuilder", + "properties": { + "builderDependencies": { + "items": { + "$ref": "ResourceDescriptor" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "version": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "type": "object" + }, "Recipe": { "description": "Steps taken to build the artifact. For a TaskRun, typically each container corresponds to one step in the recipe.", "id": "Recipe", @@ -1946,6 +2186,41 @@ }, "type": "object" }, + "Remediation": { + "description": "Specifies details on how to handle (and presumably, fix) a vulnerability.", + "id": "Remediation", + "properties": { + "details": { + "description": "Contains a comprehensive human-readable discussion of the remediation.", + "type": "string" + }, + "remediationType": { + "description": "The type of remediation that can be applied.", + "enum": [ + "REMEDIATION_TYPE_UNSPECIFIED", + "MITIGATION", + "NO_FIX_PLANNED", + "NONE_AVAILABLE", + "VENDOR_FIX", + "WORKAROUND" + ], + "enumDescriptions": [ + "No remediation type specified.", + "A MITIGATION is available.", + "No fix is planned.", + "Not available.", + "A vendor fix is available.", + "A workaround is available." + ], + "type": "string" + }, + "remediationUri": { + "$ref": "RelatedUrl", + "description": "Contains the URL where to obtain the remediation." + } + }, + "type": "object" + }, "RepoId": { "description": "A unique identifier for a Cloud Repo.", "id": "RepoId", @@ -1961,6 +2236,157 @@ }, "type": "object" }, + "ResourceDescriptor": { + "id": "ResourceDescriptor", + "properties": { + "annotations": { + "additionalProperties": { + "type": "any" + }, + "type": "object" + }, + "content": { + "format": "byte", + "type": "string" + }, + "digest": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "downloadLocation": { + "type": "string" + }, + "mediaType": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "RunDetails": { + "id": "RunDetails", + "properties": { + "builder": { + "$ref": "ProvenanceBuilder" + }, + "byproducts": { + "items": { + "$ref": "ResourceDescriptor" + }, + "type": "array" + }, + "metadata": { + "$ref": "BuildMetadata" + } + }, + "type": "object" + }, + "SBOMReferenceOccurrence": { + "description": "The occurrence representing an SBOM reference as applied to a specific resource. The occurrence follows the DSSE specification. See https://github.com/secure-systems-lab/dsse/blob/master/envelope.md for more details.", + "id": "SBOMReferenceOccurrence", + "properties": { + "payload": { + "$ref": "SbomReferenceIntotoPayload", + "description": "The actual payload that contains the SBOM reference data." + }, + "payloadType": { + "description": "The kind of payload that SbomReferenceIntotoPayload takes. Since it's in the intoto format, this value is expected to be 'application/vnd.in-toto+json'.", + "type": "string" + }, + "signatures": { + "description": "The signatures over the payload.", + "items": { + "$ref": "EnvelopeSignature" + }, + "type": "array" + } + }, + "type": "object" + }, + "SBOMStatus": { + "description": "The status of an SBOM generation.", + "id": "SBOMStatus", + "properties": { + "error": { + "description": "If there was an error generating an SBOM, this will indicate what that error was.", + "type": "string" + }, + "sbomState": { + "description": "The progress of the SBOM generation.", + "enum": [ + "SBOM_STATE_UNSPECIFIED", + "PENDING", + "COMPLETE" + ], + "enumDescriptions": [ + "Default unknown state.", + "SBOM scanning is pending.", + "SBOM scanning has completed." + ], + "type": "string" + } + }, + "type": "object" + }, + "SbomReferenceIntotoPayload": { + "description": "The actual payload that contains the SBOM Reference data. The payload follows the intoto statement specification. See https://github.com/in-toto/attestation/blob/main/spec/v1.0/statement.md for more details.", + "id": "SbomReferenceIntotoPayload", + "properties": { + "_type": { + "description": "Identifier for the schema of the Statement.", + "type": "string" + }, + "predicate": { + "$ref": "SbomReferenceIntotoPredicate", + "description": "Additional parameters of the Predicate. Includes the actual data about the SBOM." + }, + "predicateType": { + "description": "URI identifying the type of the Predicate.", + "type": "string" + }, + "subject": { + "description": "Set of software artifacts that the attestation applies to. Each element represents a single software artifact.", + "items": { + "$ref": "Subject" + }, + "type": "array" + } + }, + "type": "object" + }, + "SbomReferenceIntotoPredicate": { + "description": "A predicate which describes the SBOM being referenced.", + "id": "SbomReferenceIntotoPredicate", + "properties": { + "digest": { + "additionalProperties": { + "type": "string" + }, + "description": "A map of algorithm to digest of the contents of the SBOM.", + "type": "object" + }, + "location": { + "description": "The location of the SBOM.", + "type": "string" + }, + "mimeType": { + "description": "The mime type of the SBOM.", + "type": "string" + }, + "referrerId": { + "description": "The person or system referring this predicate to the consumer.", + "type": "string" + } + }, + "type": "object" + }, "Signature": { "description": "Verifiers (e.g. Kritis implementations) MUST verify signatures with respect to the trust anchors defined in policy (e.g. a Kritis policy). Typically this means that the verifier has been configured with a map from `public_key_id` to public key material (and any required parameters, e.g. signing algorithm). In particular, verification implementations MUST NOT treat the signature `public_key_id` as anything more than a key lookup hint. The `public_key_id` DOES NOT validate or authenticate a public key; it only provides a mechanism for quickly selecting a public key ALREADY CONFIGURED on the verifier through a trusted channel. Verification implementations MUST reject signatures in any of the following circumstances: * The `public_key_id` is not recognized by the verifier. * The public key that `public_key_id` refers to does not verify the signature with respect to the payload. The `signature` contents SHOULD NOT be \"attached\" (where the payload is included with the serialized `signature` bytes). Verifiers MUST ignore any \"attached\" payload and only verify signatures with respect to explicitly provided payload (e.g. a `payload` field on the proto message that holds this Signature, or the canonical serialization of the proto message that holds this signature).", "id": "Signature", @@ -2058,6 +2484,19 @@ }, "type": "object" }, + "SlsaProvenanceV1": { + "description": "Keep in sync with schema at https://github.com/slsa-framework/slsa/blob/main/docs/provenance/schema/v1/provenance.proto Builder renamed to ProvenanceBuilder because of Java conflicts.", + "id": "SlsaProvenanceV1", + "properties": { + "buildDefinition": { + "$ref": "BuildDefinition" + }, + "runDetails": { + "$ref": "RunDetails" + } + }, + "type": "object" + }, "SlsaProvenanceZeroTwo": { "description": "See full explanation of fields at slsa.dev/provenance/v0.2.", "id": "SlsaProvenanceZeroTwo", @@ -2317,6 +2756,69 @@ }, "type": "object" }, + "VexAssessment": { + "description": "VexAssessment provides all publisher provided Vex information that is related to this vulnerability.", + "id": "VexAssessment", + "properties": { + "cve": { + "deprecated": true, + "description": "Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability. Deprecated: Use vulnerability_id instead to denote CVEs.", + "type": "string" + }, + "impacts": { + "description": "Contains information about the impact of this vulnerability, this will change with time.", + "items": { + "type": "string" + }, + "type": "array" + }, + "justification": { + "$ref": "Justification", + "description": "Justification provides the justification when the state of the assessment if NOT_AFFECTED." + }, + "noteName": { + "description": "The VulnerabilityAssessment note from which this VexAssessment was generated. This will be of the form: `projects/[PROJECT_ID]/notes/[NOTE_ID]`.", + "type": "string" + }, + "relatedUris": { + "description": "Holds a list of references associated with this vulnerability item and assessment.", + "items": { + "$ref": "RelatedUrl" + }, + "type": "array" + }, + "remediations": { + "description": "Specifies details on how to handle (and presumably, fix) a vulnerability.", + "items": { + "$ref": "Remediation" + }, + "type": "array" + }, + "state": { + "description": "Provides the state of this Vulnerability assessment.", + "enum": [ + "STATE_UNSPECIFIED", + "AFFECTED", + "NOT_AFFECTED", + "FIXED", + "UNDER_INVESTIGATION" + ], + "enumDescriptions": [ + "No state is specified.", + "This product is known to be affected by this vulnerability.", + "This product is known to be not affected by this vulnerability.", + "This product contains a fix for this vulnerability.", + "It is not known yet whether these versions are or are not affected by the vulnerability. However, it is still under investigation." + ], + "type": "string" + }, + "vulnerabilityId": { + "description": "The vulnerability identifier for this Assessment. Will hold one of common identifiers e.g. CVE, GHSA etc.", + "type": "string" + } + }, + "type": "object" + }, "VulnerabilityOccurrence": { "description": "An occurrence of a severity vulnerability on a resource.", "id": "VulnerabilityOccurrence", @@ -2326,6 +2828,10 @@ "format": "float", "type": "number" }, + "cvssV2": { + "$ref": "CVSS", + "description": "The cvss v2 score for the vulnerability." + }, "cvssVersion": { "description": "Output only. CVSS version used to populate cvss_score and severity.", "enum": [ @@ -2364,6 +2870,10 @@ ], "type": "string" }, + "extraDetails": { + "description": "Occurrence-specific extra details about the vulnerability.", + "type": "string" + }, "fixAvailable": { "description": "Output only. Whether at least one of the affected packages has a fix available.", "type": "boolean" @@ -2413,6 +2923,9 @@ "type": { "description": "The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.).", "type": "string" + }, + "vexAssessment": { + "$ref": "VexAssessment" } }, "type": "object" diff --git a/etc/api/ondemandscanning/v1beta1/ondemandscanning-api.json b/etc/api/ondemandscanning/v1beta1/ondemandscanning-api.json index 3e353cf0ef..247ce1dbeb 100644 --- a/etc/api/ondemandscanning/v1beta1/ondemandscanning-api.json +++ b/etc/api/ondemandscanning/v1beta1/ondemandscanning-api.json @@ -187,7 +187,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "ondemandscanning.projects.locations.operations.list", @@ -339,7 +339,7 @@ } } }, - "revision": "20230109", + "revision": "20240226", "rootUrl": "https://ondemandscanning.googleapis.com/", "schemas": { "AliasContext": { @@ -502,10 +502,74 @@ }, "type": "object" }, + "BinarySourceInfo": { + "id": "BinarySourceInfo", + "properties": { + "binaryVersion": { + "$ref": "PackageVersion", + "description": "The binary package. This is significant when the source is different than the binary itself. Historically if they've differed, we've stored the name of the source and its version in the package/version fields, but we should also store the binary package info, as that's what's actually installed. See b/175908657#comment15." + }, + "sourceVersion": { + "$ref": "PackageVersion", + "description": "The source package. Similar to the above, this is significant when the source is different than the binary itself. Since the top-level package/version fields are based on an if/else, we need a separate field for both binary and source if we want to know definitively where the data is coming from." + } + }, + "type": "object" + }, + "BuildDefinition": { + "id": "BuildDefinition", + "properties": { + "buildType": { + "type": "string" + }, + "externalParameters": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "internalParameters": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "resolvedDependencies": { + "items": { + "$ref": "ResourceDescriptor" + }, + "type": "array" + } + }, + "type": "object" + }, + "BuildMetadata": { + "id": "BuildMetadata", + "properties": { + "finishedOn": { + "format": "google-datetime", + "type": "string" + }, + "invocationId": { + "type": "string" + }, + "startedOn": { + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "BuildOccurrence": { "description": "Details of a build occurrence.", "id": "BuildOccurrence", "properties": { + "inTotoSlsaProvenanceV1": { + "$ref": "InTotoSlsaProvenanceV1", + "description": "In-Toto Slsa Provenance V1 represents a slsa provenance meeting the slsa spec, wrapped in an in-toto statement. This allows for direct jsonification of a to-spec in-toto slsa statement with a to-spec slsa provenance." + }, "intotoProvenance": { "$ref": "InTotoProvenance", "description": "Deprecated. See InTotoStatement for the replacement. In-toto Provenance representation as defined in spec." @@ -613,9 +677,11 @@ "enum": [ "ATTACK_COMPLEXITY_UNSPECIFIED", "ATTACK_COMPLEXITY_LOW", - "ATTACK_COMPLEXITY_HIGH" + "ATTACK_COMPLEXITY_HIGH", + "ATTACK_COMPLEXITY_MEDIUM" ], "enumDescriptions": [ + "", "", "", "" @@ -660,9 +726,13 @@ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", - "IMPACT_NONE" + "IMPACT_NONE", + "IMPACT_PARTIAL", + "IMPACT_COMPLETE" ], "enumDescriptions": [ + "", + "", "", "", "", @@ -680,9 +750,13 @@ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", - "IMPACT_NONE" + "IMPACT_NONE", + "IMPACT_PARTIAL", + "IMPACT_COMPLETE" ], "enumDescriptions": [ + "", + "", "", "", "", @@ -703,9 +777,13 @@ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", - "IMPACT_NONE" + "IMPACT_NONE", + "IMPACT_PARTIAL", + "IMPACT_COMPLETE" ], "enumDescriptions": [ + "", + "", "", "", "", @@ -1000,6 +1078,10 @@ "description": "The last time this resource was scanned.", "format": "google-datetime", "type": "string" + }, + "sbomStatus": { + "$ref": "SBOMStatus", + "description": "The status of an SBOM generation." } }, "type": "object" @@ -1331,6 +1413,28 @@ }, "type": "object" }, + "InTotoSlsaProvenanceV1": { + "id": "InTotoSlsaProvenanceV1", + "properties": { + "_type": { + "description": "InToto spec defined at https://github.com/in-toto/attestation/tree/main/spec#statement", + "type": "string" + }, + "predicate": { + "$ref": "SlsaProvenanceV1" + }, + "predicateType": { + "type": "string" + }, + "subject": { + "items": { + "$ref": "Subject" + }, + "type": "array" + } + }, + "type": "object" + }, "InTotoStatement": { "description": "Spec defined at https://github.com/in-toto/attestation/tree/main/spec#statement The serialized InTotoStatement will be stored as Envelope.payload. Envelope.payloadType is always \"application/vnd.in-toto+json\".", "id": "InTotoStatement", @@ -1361,6 +1465,37 @@ }, "type": "object" }, + "Justification": { + "description": "Justification provides the justification when the state of the assessment if NOT_AFFECTED.", + "id": "Justification", + "properties": { + "details": { + "description": "Additional details on why this justification was chosen.", + "type": "string" + }, + "justificationType": { + "description": "The justification type for this vulnerability.", + "enum": [ + "JUSTIFICATION_TYPE_UNSPECIFIED", + "COMPONENT_NOT_PRESENT", + "VULNERABLE_CODE_NOT_PRESENT", + "VULNERABLE_CODE_NOT_IN_EXECUTE_PATH", + "VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY", + "INLINE_MITIGATIONS_ALREADY_EXIST" + ], + "enumDescriptions": [ + "JUSTIFICATION_TYPE_UNSPECIFIED.", + "The vulnerable component is not present in the product.", + "The vulnerable code is not present. Typically this case occurs when source code is configured or built in a way that excludes the vulnerable code.", + "The vulnerable code can not be executed. Typically this case occurs when the product includes the vulnerable code but does not call or use the vulnerable code.", + "The vulnerable code cannot be controlled by an attacker to exploit the vulnerability.", + "The product includes built-in protections or features that prevent exploitation of the vulnerability. These built-in protections cannot be subverted by the attacker and cannot be configured or disabled by the user. These mitigations completely prevent exploitation based on known attack vectors." + ], + "type": "string" + } + }, + "type": "object" + }, "Jwt": { "id": "Jwt", "properties": { @@ -1469,6 +1604,24 @@ }, "type": "object" }, + "Maintainer": { + "id": "Maintainer", + "properties": { + "email": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, "Material": { "id": "Material", "properties": { @@ -1586,7 +1739,9 @@ "ATTESTATION", "UPGRADE", "COMPLIANCE", - "DSSE_ATTESTATION" + "DSSE_ATTESTATION", + "VULNERABILITY_ASSESSMENT", + "SBOM_REFERENCE" ], "enumDescriptions": [ "Default value. This value is unused.", @@ -1599,7 +1754,9 @@ "This represents a logical \"role\" that can attest to artifacts.", "This represents an available package upgrade.", "This represents a Compliance Note", - "This represents a DSSE attestation Note" + "This represents a DSSE attestation Note", + "This represents a Vulnerability Assessment.", + "This represents an SBOM Reference." ], "type": "string" }, @@ -1623,6 +1780,10 @@ "description": "Required. Immutable. A URI that represents the resource for which the occurrence applies. For example, `https://gcr.io/project/image@sha256:123abc` for a Docker image.", "type": "string" }, + "sbomReference": { + "$ref": "SBOMReferenceOccurrence", + "description": "Describes a specific SBOM reference occurrences." + }, "updateTime": { "description": "Output only. The time this occurrence was last updated.", "format": "google-datetime", @@ -1668,7 +1829,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" } }, @@ -1677,6 +1838,21 @@ "PackageData": { "id": "PackageData", "properties": { + "architecture": { + "description": "The architecture of the package.", + "type": "string" + }, + "binarySourceInfo": { + "description": "A bundle containing the binary and source information.", + "items": { + "$ref": "BinarySourceInfo" + }, + "type": "array" + }, + "binaryVersion": { + "$ref": "PackageVersion", + "description": "DEPRECATED" + }, "cpeUri": { "description": "The cpe_uri in [cpe format] (https://cpe.mitre.org/specification/) in which the vulnerability may manifest. Examples include distro or storage location for vulnerable jar.", "type": "string" @@ -1699,6 +1875,17 @@ "description": "HashDigest stores the SHA512 hash digest of the jar file if the package is of type Maven. This field will be unset for non Maven packages.", "type": "string" }, + "licenses": { + "description": "The list of licenses found that are related to a given package. Note that licenses may also be stored on the BinarySourceInfo. If there is no BinarySourceInfo (because there's no concept of source vs binary), then it will be stored here, while if there are BinarySourceInfos, it will be stored there, as one source can have multiple binaries with different licenses.", + "items": { + "type": "string" + }, + "type": "array" + }, + "maintainer": { + "$ref": "Maintainer", + "description": "The maintainer of the package." + }, "os": { "description": "The OS affected by a vulnerability Used to generate the cpe_uri for OS packages", "type": "string" @@ -1720,7 +1907,11 @@ "GO", "GO_STDLIB", "PYPI", - "NPM" + "NPM", + "NUGET", + "RUBYGEMS", + "RUST", + "COMPOSER" ], "enumDescriptions": [ "", @@ -1729,7 +1920,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" }, @@ -1740,6 +1935,10 @@ }, "type": "array" }, + "sourceVersion": { + "$ref": "PackageVersion", + "description": "DEPRECATED" + }, "unused": { "type": "string" }, @@ -1870,6 +2069,25 @@ }, "type": "object" }, + "PackageVersion": { + "id": "PackageVersion", + "properties": { + "licenses": { + "description": "The licenses associated with this package. Note that this has to go on the PackageVersion level, because we can have cases with images with the same source having different licences. E.g. in Alpine, musl and musl-utils both have the same origin musl, but have different sets of licenses.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, "ProjectRepoId": { "description": "Selects a repo using a Google Cloud Platform project ID (e.g., winged-cargo-31) and a repo name within that project.", "id": "ProjectRepoId", @@ -1885,6 +2103,27 @@ }, "type": "object" }, + "ProvenanceBuilder": { + "id": "ProvenanceBuilder", + "properties": { + "builderDependencies": { + "items": { + "$ref": "ResourceDescriptor" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "version": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "type": "object" + }, "Recipe": { "description": "Steps taken to build the artifact. For a TaskRun, typically each container corresponds to one step in the recipe.", "id": "Recipe", @@ -1942,6 +2181,41 @@ }, "type": "object" }, + "Remediation": { + "description": "Specifies details on how to handle (and presumably, fix) a vulnerability.", + "id": "Remediation", + "properties": { + "details": { + "description": "Contains a comprehensive human-readable discussion of the remediation.", + "type": "string" + }, + "remediationType": { + "description": "The type of remediation that can be applied.", + "enum": [ + "REMEDIATION_TYPE_UNSPECIFIED", + "MITIGATION", + "NO_FIX_PLANNED", + "NONE_AVAILABLE", + "VENDOR_FIX", + "WORKAROUND" + ], + "enumDescriptions": [ + "No remediation type specified.", + "A MITIGATION is available.", + "No fix is planned.", + "Not available.", + "A vendor fix is available.", + "A workaround is available." + ], + "type": "string" + }, + "remediationUri": { + "$ref": "RelatedUrl", + "description": "Contains the URL where to obtain the remediation." + } + }, + "type": "object" + }, "RepoId": { "description": "A unique identifier for a Cloud Repo.", "id": "RepoId", @@ -1957,6 +2231,157 @@ }, "type": "object" }, + "ResourceDescriptor": { + "id": "ResourceDescriptor", + "properties": { + "annotations": { + "additionalProperties": { + "type": "any" + }, + "type": "object" + }, + "content": { + "format": "byte", + "type": "string" + }, + "digest": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "downloadLocation": { + "type": "string" + }, + "mediaType": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "RunDetails": { + "id": "RunDetails", + "properties": { + "builder": { + "$ref": "ProvenanceBuilder" + }, + "byproducts": { + "items": { + "$ref": "ResourceDescriptor" + }, + "type": "array" + }, + "metadata": { + "$ref": "BuildMetadata" + } + }, + "type": "object" + }, + "SBOMReferenceOccurrence": { + "description": "The occurrence representing an SBOM reference as applied to a specific resource. The occurrence follows the DSSE specification. See https://github.com/secure-systems-lab/dsse/blob/master/envelope.md for more details.", + "id": "SBOMReferenceOccurrence", + "properties": { + "payload": { + "$ref": "SbomReferenceIntotoPayload", + "description": "The actual payload that contains the SBOM reference data." + }, + "payloadType": { + "description": "The kind of payload that SbomReferenceIntotoPayload takes. Since it's in the intoto format, this value is expected to be 'application/vnd.in-toto+json'.", + "type": "string" + }, + "signatures": { + "description": "The signatures over the payload.", + "items": { + "$ref": "EnvelopeSignature" + }, + "type": "array" + } + }, + "type": "object" + }, + "SBOMStatus": { + "description": "The status of an SBOM generation.", + "id": "SBOMStatus", + "properties": { + "error": { + "description": "If there was an error generating an SBOM, this will indicate what that error was.", + "type": "string" + }, + "sbomState": { + "description": "The progress of the SBOM generation.", + "enum": [ + "SBOM_STATE_UNSPECIFIED", + "PENDING", + "COMPLETE" + ], + "enumDescriptions": [ + "Default unknown state.", + "SBOM scanning is pending.", + "SBOM scanning has completed." + ], + "type": "string" + } + }, + "type": "object" + }, + "SbomReferenceIntotoPayload": { + "description": "The actual payload that contains the SBOM Reference data. The payload follows the intoto statement specification. See https://github.com/in-toto/attestation/blob/main/spec/v1.0/statement.md for more details.", + "id": "SbomReferenceIntotoPayload", + "properties": { + "_type": { + "description": "Identifier for the schema of the Statement.", + "type": "string" + }, + "predicate": { + "$ref": "SbomReferenceIntotoPredicate", + "description": "Additional parameters of the Predicate. Includes the actual data about the SBOM." + }, + "predicateType": { + "description": "URI identifying the type of the Predicate.", + "type": "string" + }, + "subject": { + "description": "Set of software artifacts that the attestation applies to. Each element represents a single software artifact.", + "items": { + "$ref": "Subject" + }, + "type": "array" + } + }, + "type": "object" + }, + "SbomReferenceIntotoPredicate": { + "description": "A predicate which describes the SBOM being referenced.", + "id": "SbomReferenceIntotoPredicate", + "properties": { + "digest": { + "additionalProperties": { + "type": "string" + }, + "description": "A map of algorithm to digest of the contents of the SBOM.", + "type": "object" + }, + "location": { + "description": "The location of the SBOM.", + "type": "string" + }, + "mimeType": { + "description": "The mime type of the SBOM.", + "type": "string" + }, + "referrerId": { + "description": "The person or system referring this predicate to the consumer.", + "type": "string" + } + }, + "type": "object" + }, "Signature": { "description": "Verifiers (e.g. Kritis implementations) MUST verify signatures with respect to the trust anchors defined in policy (e.g. a Kritis policy). Typically this means that the verifier has been configured with a map from `public_key_id` to public key material (and any required parameters, e.g. signing algorithm). In particular, verification implementations MUST NOT treat the signature `public_key_id` as anything more than a key lookup hint. The `public_key_id` DOES NOT validate or authenticate a public key; it only provides a mechanism for quickly selecting a public key ALREADY CONFIGURED on the verifier through a trusted channel. Verification implementations MUST reject signatures in any of the following circumstances: * The `public_key_id` is not recognized by the verifier. * The public key that `public_key_id` refers to does not verify the signature with respect to the payload. The `signature` contents SHOULD NOT be \"attached\" (where the payload is included with the serialized `signature` bytes). Verifiers MUST ignore any \"attached\" payload and only verify signatures with respect to explicitly provided payload (e.g. a `payload` field on the proto message that holds this Signature, or the canonical serialization of the proto message that holds this signature).", "id": "Signature", @@ -2054,6 +2479,19 @@ }, "type": "object" }, + "SlsaProvenanceV1": { + "description": "Keep in sync with schema at https://github.com/slsa-framework/slsa/blob/main/docs/provenance/schema/v1/provenance.proto Builder renamed to ProvenanceBuilder because of Java conflicts.", + "id": "SlsaProvenanceV1", + "properties": { + "buildDefinition": { + "$ref": "BuildDefinition" + }, + "runDetails": { + "$ref": "RunDetails" + } + }, + "type": "object" + }, "SlsaProvenanceZeroTwo": { "description": "See full explanation of fields at slsa.dev/provenance/v0.2.", "id": "SlsaProvenanceZeroTwo", @@ -2313,6 +2751,69 @@ }, "type": "object" }, + "VexAssessment": { + "description": "VexAssessment provides all publisher provided Vex information that is related to this vulnerability.", + "id": "VexAssessment", + "properties": { + "cve": { + "deprecated": true, + "description": "Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability. Deprecated: Use vulnerability_id instead to denote CVEs.", + "type": "string" + }, + "impacts": { + "description": "Contains information about the impact of this vulnerability, this will change with time.", + "items": { + "type": "string" + }, + "type": "array" + }, + "justification": { + "$ref": "Justification", + "description": "Justification provides the justification when the state of the assessment if NOT_AFFECTED." + }, + "noteName": { + "description": "The VulnerabilityAssessment note from which this VexAssessment was generated. This will be of the form: `projects/[PROJECT_ID]/notes/[NOTE_ID]`.", + "type": "string" + }, + "relatedUris": { + "description": "Holds a list of references associated with this vulnerability item and assessment.", + "items": { + "$ref": "RelatedUrl" + }, + "type": "array" + }, + "remediations": { + "description": "Specifies details on how to handle (and presumably, fix) a vulnerability.", + "items": { + "$ref": "Remediation" + }, + "type": "array" + }, + "state": { + "description": "Provides the state of this Vulnerability assessment.", + "enum": [ + "STATE_UNSPECIFIED", + "AFFECTED", + "NOT_AFFECTED", + "FIXED", + "UNDER_INVESTIGATION" + ], + "enumDescriptions": [ + "No state is specified.", + "This product is known to be affected by this vulnerability.", + "This product is known to be not affected by this vulnerability.", + "This product contains a fix for this vulnerability.", + "It is not known yet whether these versions are or are not affected by the vulnerability. However, it is still under investigation." + ], + "type": "string" + }, + "vulnerabilityId": { + "description": "The vulnerability identifier for this Assessment. Will hold one of common identifiers e.g. CVE, GHSA etc.", + "type": "string" + } + }, + "type": "object" + }, "VulnerabilityOccurrence": { "description": "An occurrence of a severity vulnerability on a resource.", "id": "VulnerabilityOccurrence", @@ -2322,6 +2823,10 @@ "format": "float", "type": "number" }, + "cvssV2": { + "$ref": "CVSS", + "description": "The cvss v2 score for the vulnerability." + }, "cvssVersion": { "description": "Output only. CVSS version used to populate cvss_score and severity.", "enum": [ @@ -2360,6 +2865,10 @@ ], "type": "string" }, + "extraDetails": { + "description": "Occurrence-specific extra details about the vulnerability.", + "type": "string" + }, "fixAvailable": { "description": "Output only. Whether at least one of the affected packages has a fix available.", "type": "boolean" @@ -2409,6 +2918,9 @@ "type": { "description": "The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.).", "type": "string" + }, + "vexAssessment": { + "$ref": "VexAssessment" } }, "type": "object" diff --git a/etc/api/orgpolicy/v2/orgpolicy-api.json b/etc/api/orgpolicy/v2/orgpolicy-api.json index 29e189b591..c0f907e856 100644 --- a/etc/api/orgpolicy/v2/orgpolicy-api.json +++ b/etc/api/orgpolicy/v2/orgpolicy-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://orgpolicy.googleapis.com/", "batchPath": "batch", "canonicalName": "OrgPolicy API", - "description": "The Org Policy API allows users to configure governance rules on their GCP resources across the Cloud Resource Hierarchy.", + "description": "The Organization Policy API allows users to configure governance rules on their Google Cloud resources across the resource hierarchy.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/orgpolicy/docs/reference/rest/index.html", "fullyEncodeReservedExpansion": true, @@ -110,7 +110,7 @@ "constraints": { "methods": { "list": { - "description": "Lists `Constraints` that could be applied on the specified resource.", + "description": "Lists constraints that could be applied on the specified resource.", "flatPath": "v2/folders/{foldersId}/constraints", "httpMethod": "GET", "id": "orgpolicy.folders.constraints.list", @@ -130,7 +130,7 @@ "type": "string" }, "parent": { - "description": "Required. The Cloud resource that parents the constraint. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", + "description": "Required. The Google Cloud resource that parents the constraint. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", "location": "path", "pattern": "^folders/[^/]+$", "required": true, @@ -150,7 +150,7 @@ "policies": { "methods": { "create": { - "description": "Creates a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint does not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ALREADY_EXISTS` if the policy already exists on the given Cloud resource.", + "description": "Creates a policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint does not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ALREADY_EXISTS` if the policy already exists on the given Google Cloud resource.", "flatPath": "v2/folders/{foldersId}/policies", "httpMethod": "POST", "id": "orgpolicy.folders.policies.create", @@ -159,7 +159,7 @@ ], "parameters": { "parent": { - "description": "Required. The Cloud resource that will parent the new Policy. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", + "description": "Required. The Google Cloud resource that will parent the new policy. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", "location": "path", "pattern": "^folders/[^/]+$", "required": true, @@ -178,7 +178,7 @@ ] }, "delete": { - "description": "Deletes a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or Org Policy does not exist.", + "description": "Deletes a policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or organization policy does not exist.", "flatPath": "v2/folders/{foldersId}/policies/{policiesId}", "httpMethod": "DELETE", "id": "orgpolicy.folders.policies.delete", @@ -186,8 +186,13 @@ "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 `Policy` for naming rules.", + "description": "Required. Name of the policy to delete. See the policy entry for naming rules.", "location": "path", "pattern": "^folders/[^/]+/policies/[^/]+$", "required": true, @@ -203,7 +208,7 @@ ] }, "get": { - "description": "Gets a `Policy` on a resource. If no `Policy` is set on the resource, NOT_FOUND is returned. The `etag` value can be used with `UpdatePolicy()` to update a `Policy` during read-modify-write.", + "description": "Gets a policy on a resource. If no policy is set on the resource, `NOT_FOUND` is returned. The `etag` value can be used with `UpdatePolicy()` to update a policy during read-modify-write.", "flatPath": "v2/folders/{foldersId}/policies/{policiesId}", "httpMethod": "GET", "id": "orgpolicy.folders.policies.get", @@ -212,7 +217,7 @@ ], "parameters": { "name": { - "description": "Required. Resource name of the policy. See `Policy` for naming requirements.", + "description": "Required. Resource name of the policy. See Policy for naming requirements.", "location": "path", "pattern": "^folders/[^/]+/policies/[^/]+$", "required": true, @@ -228,7 +233,7 @@ ] }, "getEffectivePolicy": { - "description": "Gets the effective `Policy` on a resource. This is the result of merging `Policies` in the resource hierarchy and evaluating conditions. The returned `Policy` will not have an `etag` or `condition` set because it is a computed `Policy` across multiple resources. Subtrees of Resource Manager resource hierarchy with 'under:' prefix will not be expanded.", + "description": "Gets the effective policy on a resource. This is the result of merging policies in the resource hierarchy and evaluating conditions. The returned policy will not have an `etag` or `condition` set because it is an evaluated policy across multiple resources. Subtrees of Resource Manager resource hierarchy with 'under:' prefix will not be expanded.", "flatPath": "v2/folders/{foldersId}/policies/{policiesId}:getEffectivePolicy", "httpMethod": "GET", "id": "orgpolicy.folders.policies.getEffectivePolicy", @@ -237,7 +242,7 @@ ], "parameters": { "name": { - "description": "Required. The effective policy to compute. See `Policy` for naming rules.", + "description": "Required. The effective policy to compute. See Policy for naming requirements.", "location": "path", "pattern": "^folders/[^/]+/policies/[^/]+$", "required": true, @@ -253,7 +258,7 @@ ] }, "list": { - "description": "Retrieves all of the `Policies` that exist on a particular resource.", + "description": "Retrieves all of the policies that exist on a particular resource.", "flatPath": "v2/folders/{foldersId}/policies", "httpMethod": "GET", "id": "orgpolicy.folders.policies.list", @@ -273,7 +278,7 @@ "type": "string" }, "parent": { - "description": "Required. The target Cloud resource that parents the set of constraints and policies that will be returned from this call. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", + "description": "Required. The target Google Cloud resource that parents the set of constraints and policies that will be returned from this call. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", "location": "path", "pattern": "^folders/[^/]+$", "required": true, @@ -289,7 +294,7 @@ ] }, "patch": { - "description": "Updates a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or the policy do not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ABORTED` if the etag supplied in the request does not match the persisted etag of the policy Note: the supplied policy will perform a full overwrite of all fields.", + "description": "Updates a policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or the policy do not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ABORTED` if the etag supplied in the request does not match the persisted etag of the policy Note: the supplied policy will perform a full overwrite of all fields.", "flatPath": "v2/folders/{foldersId}/policies/{policiesId}", "httpMethod": "PATCH", "id": "orgpolicy.folders.policies.patch", @@ -298,7 +303,7 @@ ], "parameters": { "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.", + "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.", "location": "path", "pattern": "^folders/[^/]+/policies/[^/]+$", "required": true, @@ -331,7 +336,7 @@ "constraints": { "methods": { "list": { - "description": "Lists `Constraints` that could be applied on the specified resource.", + "description": "Lists constraints that could be applied on the specified resource.", "flatPath": "v2/organizations/{organizationsId}/constraints", "httpMethod": "GET", "id": "orgpolicy.organizations.constraints.list", @@ -351,7 +356,7 @@ "type": "string" }, "parent": { - "description": "Required. The Cloud resource that parents the constraint. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", + "description": "Required. The Google Cloud resource that parents the constraint. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -371,7 +376,7 @@ "customConstraints": { "methods": { "create": { - "description": "Creates a CustomConstraint. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the organization does not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ALREADY_EXISTS` if the constraint already exists on the given organization.", + "description": "Creates a custom constraint. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the organization does not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ALREADY_EXISTS` if the constraint already exists on the given organization.", "flatPath": "v2/organizations/{organizationsId}/customConstraints", "httpMethod": "POST", "id": "orgpolicy.organizations.customConstraints.create", @@ -399,7 +404,7 @@ ] }, "delete": { - "description": "Deletes a Custom Constraint. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint does not exist.", + "description": "Deletes a custom constraint. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint does not exist.", "flatPath": "v2/organizations/{organizationsId}/customConstraints/{customConstraintsId}", "httpMethod": "DELETE", "id": "orgpolicy.organizations.customConstraints.delete", @@ -408,7 +413,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the custom constraint to delete. See `CustomConstraint` for naming rules.", + "description": "Required. Name of the custom constraint to delete. See the custom constraint entry for naming rules.", "location": "path", "pattern": "^organizations/[^/]+/customConstraints/[^/]+$", "required": true, @@ -424,7 +429,7 @@ ] }, "get": { - "description": "Gets a CustomConstraint. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the CustomConstraint does not exist.", + "description": "Gets a custom constraint. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the custom constraint does not exist.", "flatPath": "v2/organizations/{organizationsId}/customConstraints/{customConstraintsId}", "httpMethod": "GET", "id": "orgpolicy.organizations.customConstraints.get", @@ -433,7 +438,7 @@ ], "parameters": { "name": { - "description": "Required. Resource name of the custom constraint. See `CustomConstraint` for naming requirements.", + "description": "Required. Resource name of the custom constraint. See the custom constraint entry for naming requirements.", "location": "path", "pattern": "^organizations/[^/]+/customConstraints/[^/]+$", "required": true, @@ -449,7 +454,7 @@ ] }, "list": { - "description": "Retrieves all of the `CustomConstraints` that exist on a particular organization resource.", + "description": "Retrieves all of the custom constraints that exist on a particular organization resource.", "flatPath": "v2/organizations/{organizationsId}/customConstraints", "httpMethod": "GET", "id": "orgpolicy.organizations.customConstraints.list", @@ -469,7 +474,7 @@ "type": "string" }, "parent": { - "description": "Required. The target Cloud resource that parents the set of custom constraints that will be returned from this call. Must be in one of the following forms: * `organizations/{organization_id}`", + "description": "Required. The target Google Cloud resource that parents the set of custom constraints that will be returned from this call. Must be in one of the following forms: * `organizations/{organization_id}`", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -485,7 +490,7 @@ ] }, "patch": { - "description": "Updates a Custom Constraint. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint does not exist. Note: the supplied policy will perform a full overwrite of all fields.", + "description": "Updates a custom constraint. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint does not exist. Note: the supplied policy will perform a full overwrite of all fields.", "flatPath": "v2/organizations/{organizationsId}/customConstraints/{customConstraintsId}", "httpMethod": "PATCH", "id": "orgpolicy.organizations.customConstraints.patch", @@ -494,7 +499,7 @@ ], "parameters": { "name": { - "description": "Immutable. Name of the constraint. This is unique within the organization. Format of the name should be * `organizations/{organization_id}/customConstraints/{custom_constraint_id}` Example : \"organizations/123/customConstraints/custom.createOnlyE2TypeVms\" The max length is 70 characters and the min length is 1. Note that the prefix \"organizations/{organization_id}/customConstraints/\" is not counted.", + "description": "Immutable. Name of the constraint. This is unique within the organization. Format of the name should be * `organizations/{organization_id}/customConstraints/{custom_constraint_id}` Example: `organizations/123/customConstraints/custom.createOnlyE2TypeVms` The max length is 70 characters and the minimum length is 1. Note that the prefix `organizations/{organization_id}/customConstraints/` is not counted.", "location": "path", "pattern": "^organizations/[^/]+/customConstraints/[^/]+$", "required": true, @@ -517,7 +522,7 @@ "policies": { "methods": { "create": { - "description": "Creates a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint does not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ALREADY_EXISTS` if the policy already exists on the given Cloud resource.", + "description": "Creates a policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint does not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ALREADY_EXISTS` if the policy already exists on the given Google Cloud resource.", "flatPath": "v2/organizations/{organizationsId}/policies", "httpMethod": "POST", "id": "orgpolicy.organizations.policies.create", @@ -526,7 +531,7 @@ ], "parameters": { "parent": { - "description": "Required. The Cloud resource that will parent the new Policy. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", + "description": "Required. The Google Cloud resource that will parent the new policy. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -545,7 +550,7 @@ ] }, "delete": { - "description": "Deletes a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or Org Policy does not exist.", + "description": "Deletes a policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or organization policy does not exist.", "flatPath": "v2/organizations/{organizationsId}/policies/{policiesId}", "httpMethod": "DELETE", "id": "orgpolicy.organizations.policies.delete", @@ -553,8 +558,13 @@ "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 `Policy` for naming rules.", + "description": "Required. Name of the policy to delete. See the policy entry for naming rules.", "location": "path", "pattern": "^organizations/[^/]+/policies/[^/]+$", "required": true, @@ -570,7 +580,7 @@ ] }, "get": { - "description": "Gets a `Policy` on a resource. If no `Policy` is set on the resource, NOT_FOUND is returned. The `etag` value can be used with `UpdatePolicy()` to update a `Policy` during read-modify-write.", + "description": "Gets a policy on a resource. If no policy is set on the resource, `NOT_FOUND` is returned. The `etag` value can be used with `UpdatePolicy()` to update a policy during read-modify-write.", "flatPath": "v2/organizations/{organizationsId}/policies/{policiesId}", "httpMethod": "GET", "id": "orgpolicy.organizations.policies.get", @@ -579,7 +589,7 @@ ], "parameters": { "name": { - "description": "Required. Resource name of the policy. See `Policy` for naming requirements.", + "description": "Required. Resource name of the policy. See Policy for naming requirements.", "location": "path", "pattern": "^organizations/[^/]+/policies/[^/]+$", "required": true, @@ -595,7 +605,7 @@ ] }, "getEffectivePolicy": { - "description": "Gets the effective `Policy` on a resource. This is the result of merging `Policies` in the resource hierarchy and evaluating conditions. The returned `Policy` will not have an `etag` or `condition` set because it is a computed `Policy` across multiple resources. Subtrees of Resource Manager resource hierarchy with 'under:' prefix will not be expanded.", + "description": "Gets the effective policy on a resource. This is the result of merging policies in the resource hierarchy and evaluating conditions. The returned policy will not have an `etag` or `condition` set because it is an evaluated policy across multiple resources. Subtrees of Resource Manager resource hierarchy with 'under:' prefix will not be expanded.", "flatPath": "v2/organizations/{organizationsId}/policies/{policiesId}:getEffectivePolicy", "httpMethod": "GET", "id": "orgpolicy.organizations.policies.getEffectivePolicy", @@ -604,7 +614,7 @@ ], "parameters": { "name": { - "description": "Required. The effective policy to compute. See `Policy` for naming rules.", + "description": "Required. The effective policy to compute. See Policy for naming requirements.", "location": "path", "pattern": "^organizations/[^/]+/policies/[^/]+$", "required": true, @@ -620,7 +630,7 @@ ] }, "list": { - "description": "Retrieves all of the `Policies` that exist on a particular resource.", + "description": "Retrieves all of the policies that exist on a particular resource.", "flatPath": "v2/organizations/{organizationsId}/policies", "httpMethod": "GET", "id": "orgpolicy.organizations.policies.list", @@ -640,7 +650,7 @@ "type": "string" }, "parent": { - "description": "Required. The target Cloud resource that parents the set of constraints and policies that will be returned from this call. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", + "description": "Required. The target Google Cloud resource that parents the set of constraints and policies that will be returned from this call. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -656,7 +666,7 @@ ] }, "patch": { - "description": "Updates a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or the policy do not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ABORTED` if the etag supplied in the request does not match the persisted etag of the policy Note: the supplied policy will perform a full overwrite of all fields.", + "description": "Updates a policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or the policy do not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ABORTED` if the etag supplied in the request does not match the persisted etag of the policy Note: the supplied policy will perform a full overwrite of all fields.", "flatPath": "v2/organizations/{organizationsId}/policies/{policiesId}", "httpMethod": "PATCH", "id": "orgpolicy.organizations.policies.patch", @@ -665,7 +675,7 @@ ], "parameters": { "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.", + "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.", "location": "path", "pattern": "^organizations/[^/]+/policies/[^/]+$", "required": true, @@ -698,7 +708,7 @@ "constraints": { "methods": { "list": { - "description": "Lists `Constraints` that could be applied on the specified resource.", + "description": "Lists constraints that could be applied on the specified resource.", "flatPath": "v2/projects/{projectsId}/constraints", "httpMethod": "GET", "id": "orgpolicy.projects.constraints.list", @@ -718,7 +728,7 @@ "type": "string" }, "parent": { - "description": "Required. The Cloud resource that parents the constraint. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", + "description": "Required. The Google Cloud resource that parents the constraint. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -738,7 +748,7 @@ "policies": { "methods": { "create": { - "description": "Creates a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint does not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ALREADY_EXISTS` if the policy already exists on the given Cloud resource.", + "description": "Creates a policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint does not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ALREADY_EXISTS` if the policy already exists on the given Google Cloud resource.", "flatPath": "v2/projects/{projectsId}/policies", "httpMethod": "POST", "id": "orgpolicy.projects.policies.create", @@ -747,7 +757,7 @@ ], "parameters": { "parent": { - "description": "Required. The Cloud resource that will parent the new Policy. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", + "description": "Required. The Google Cloud resource that will parent the new policy. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -766,7 +776,7 @@ ] }, "delete": { - "description": "Deletes a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or Org Policy does not exist.", + "description": "Deletes a policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or organization policy does not exist.", "flatPath": "v2/projects/{projectsId}/policies/{policiesId}", "httpMethod": "DELETE", "id": "orgpolicy.projects.policies.delete", @@ -774,8 +784,13 @@ "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 `Policy` for naming rules.", + "description": "Required. Name of the policy to delete. See the policy entry for naming rules.", "location": "path", "pattern": "^projects/[^/]+/policies/[^/]+$", "required": true, @@ -791,7 +806,7 @@ ] }, "get": { - "description": "Gets a `Policy` on a resource. If no `Policy` is set on the resource, NOT_FOUND is returned. The `etag` value can be used with `UpdatePolicy()` to update a `Policy` during read-modify-write.", + "description": "Gets a policy on a resource. If no policy is set on the resource, `NOT_FOUND` is returned. The `etag` value can be used with `UpdatePolicy()` to update a policy during read-modify-write.", "flatPath": "v2/projects/{projectsId}/policies/{policiesId}", "httpMethod": "GET", "id": "orgpolicy.projects.policies.get", @@ -800,7 +815,7 @@ ], "parameters": { "name": { - "description": "Required. Resource name of the policy. See `Policy` for naming requirements.", + "description": "Required. Resource name of the policy. See Policy for naming requirements.", "location": "path", "pattern": "^projects/[^/]+/policies/[^/]+$", "required": true, @@ -816,7 +831,7 @@ ] }, "getEffectivePolicy": { - "description": "Gets the effective `Policy` on a resource. This is the result of merging `Policies` in the resource hierarchy and evaluating conditions. The returned `Policy` will not have an `etag` or `condition` set because it is a computed `Policy` across multiple resources. Subtrees of Resource Manager resource hierarchy with 'under:' prefix will not be expanded.", + "description": "Gets the effective policy on a resource. This is the result of merging policies in the resource hierarchy and evaluating conditions. The returned policy will not have an `etag` or `condition` set because it is an evaluated policy across multiple resources. Subtrees of Resource Manager resource hierarchy with 'under:' prefix will not be expanded.", "flatPath": "v2/projects/{projectsId}/policies/{policiesId}:getEffectivePolicy", "httpMethod": "GET", "id": "orgpolicy.projects.policies.getEffectivePolicy", @@ -825,7 +840,7 @@ ], "parameters": { "name": { - "description": "Required. The effective policy to compute. See `Policy` for naming rules.", + "description": "Required. The effective policy to compute. See Policy for naming requirements.", "location": "path", "pattern": "^projects/[^/]+/policies/[^/]+$", "required": true, @@ -841,7 +856,7 @@ ] }, "list": { - "description": "Retrieves all of the `Policies` that exist on a particular resource.", + "description": "Retrieves all of the policies that exist on a particular resource.", "flatPath": "v2/projects/{projectsId}/policies", "httpMethod": "GET", "id": "orgpolicy.projects.policies.list", @@ -861,7 +876,7 @@ "type": "string" }, "parent": { - "description": "Required. The target Cloud resource that parents the set of constraints and policies that will be returned from this call. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", + "description": "Required. The target Google Cloud resource that parents the set of constraints and policies that will be returned from this call. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -877,7 +892,7 @@ ] }, "patch": { - "description": "Updates a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or the policy do not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ABORTED` if the etag supplied in the request does not match the persisted etag of the policy Note: the supplied policy will perform a full overwrite of all fields.", + "description": "Updates a policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or the policy do not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ABORTED` if the etag supplied in the request does not match the persisted etag of the policy Note: the supplied policy will perform a full overwrite of all fields.", "flatPath": "v2/projects/{projectsId}/policies/{policiesId}", "httpMethod": "PATCH", "id": "orgpolicy.projects.policies.patch", @@ -886,7 +901,7 @@ ], "parameters": { "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.", + "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.", "location": "path", "pattern": "^projects/[^/]+/policies/[^/]+$", "required": true, @@ -915,7 +930,7 @@ } } }, - "revision": "20230123", + "revision": "20240226", "rootUrl": "https://orgpolicy.googleapis.com/", "schemas": { "GoogleCloudOrgpolicyV2AlternatePolicySpec": { @@ -928,13 +943,13 @@ }, "spec": { "$ref": "GoogleCloudOrgpolicyV2PolicySpec", - "description": "Specify `Constraint` for configurations of Cloud Platform resources." + "description": "Specify constraint for configurations of Google Cloud resources." } }, "type": "object" }, "GoogleCloudOrgpolicyV2Constraint": { - "description": "A `constraint` describes a way to restrict resource's configuration. For example, you could enforce a constraint that controls which cloud services can be activated across an organization, or whether a Compute Engine instance can have serial port connections established. `Constraints` can be configured by the organization's policy administrator to fit the needs of the organization by setting a `policy` that includes `constraints` at different locations in the organization's resource hierarchy. Policies are inherited down the resource hierarchy from higher levels, but can also be overridden. For details about the inheritance rules please read about `policies`. `Constraints` have a default behavior determined by the `constraint_default` field, which is the enforcement behavior that is used in the absence of a `policy` being defined or inherited for the resource in question.", + "description": "A constraint describes a way to restrict resource's configuration. For example, you could enforce a constraint that controls which Google Cloud services can be activated across an organization, or whether a Compute Engine instance can have serial port connections established. Constraints can be configured by the organization policy administrator to fit the needs of the organization by setting a policy that includes constraints at different locations in the organization's resource hierarchy. Policies are inherited down the resource hierarchy from higher levels, but can also be overridden. For details about the inheritance rules please read about `policies`. Constraints have a default behavior determined by the `constraint_default` field, which is the enforcement behavior that is used in the absence of a policy being defined or inherited for the resource in question.", "id": "GoogleCloudOrgpolicyV2Constraint", "properties": { "booleanConstraint": { @@ -942,7 +957,7 @@ "description": "Defines this constraint as being a BooleanConstraint." }, "constraintDefault": { - "description": "The evaluation behavior of this constraint in the absence of 'Policy'.", + "description": "The evaluation behavior of this constraint in the absence of a policy.", "enum": [ "CONSTRAINT_DEFAULT_UNSPECIFIED", "ALLOW", @@ -956,7 +971,7 @@ "type": "string" }, "description": { - "description": "Detailed description of what this `Constraint` controls as well as how and where it is enforced. Mutable.", + "description": "Detailed description of what this constraint controls as well as how and where it is enforced. Mutable.", "type": "string" }, "displayName": { @@ -968,20 +983,24 @@ "description": "Defines this constraint as being a ListConstraint." }, "name": { - "description": "Immutable. The resource name of the Constraint. Must be in one of the following forms: * `projects/{project_number}/constraints/{constraint_name}` * `folders/{folder_id}/constraints/{constraint_name}` * `organizations/{organization_id}/constraints/{constraint_name}` For example, \"/projects/123/constraints/compute.disableSerialPortAccess\".", + "description": "Immutable. The resource name of the constraint. Must be in one of the following forms: * `projects/{project_number}/constraints/{constraint_name}` * `folders/{folder_id}/constraints/{constraint_name}` * `organizations/{organization_id}/constraints/{constraint_name}` For example, \"/projects/123/constraints/compute.disableSerialPortAccess\".", "type": "string" + }, + "supportsDryRun": { + "description": "Shows if dry run is supported for this constraint or not.", + "type": "boolean" } }, "type": "object" }, "GoogleCloudOrgpolicyV2ConstraintBooleanConstraint": { - "description": "A `Constraint` that is either enforced or not. For example a constraint `constraints/compute.disableSerialPortAccess`. If it is enforced on a VM instance, serial port connections will not be opened to that instance.", + "description": "A constraint that is either enforced or not. For example, a constraint `constraints/compute.disableSerialPortAccess`. If it is enforced on a VM instance, serial port connections will not be opened to that instance.", "id": "GoogleCloudOrgpolicyV2ConstraintBooleanConstraint", "properties": {}, "type": "object" }, "GoogleCloudOrgpolicyV2ConstraintListConstraint": { - "description": "A `Constraint` that allows or disallows a list of string values, which are configured by an Organization's policy administrator with a `Policy`.", + "description": "A constraint that allows or disallows a list of string values, which are configured by an Organization Policy administrator with a policy.", "id": "GoogleCloudOrgpolicyV2ConstraintListConstraint", "properties": { "supportsIn": { @@ -989,14 +1008,14 @@ "type": "boolean" }, "supportsUnder": { - "description": "Indicates whether subtrees of Cloud Resource Manager resource hierarchy can be used in `Policy.allowed_values` and `Policy.denied_values`. For example, `\"under:folders/123\"` would match any resource under the 'folders/123' folder.", + "description": "Indicates whether subtrees of the Resource Manager resource hierarchy can be used in `Policy.allowed_values` and `Policy.denied_values`. For example, `\"under:folders/123\"` would match any resource under the 'folders/123' folder.", "type": "boolean" } }, "type": "object" }, "GoogleCloudOrgpolicyV2CustomConstraint": { - "description": "A custom constraint defined by customers which can *only* be applied to the given resource types and organization. By creating a custom constraint, customers can applied policies of this custom constraint. *Creating a custom constraint itself does NOT apply any policy enforcement*.", + "description": "A custom constraint defined by customers which can *only* be applied to the given resource types and organization. By creating a custom constraint, customers can apply policies of this custom constraint. *Creating a custom constraint itself does NOT apply any policy enforcement*.", "id": "GoogleCloudOrgpolicyV2CustomConstraint", "properties": { "actionType": { @@ -1007,14 +1026,14 @@ "DENY" ], "enumDescriptions": [ - "Unspecified. Will results in user error.", + "Unspecified. Results in an error.", "Allowed action type.", "Deny action type." ], "type": "string" }, "condition": { - "description": "Org policy condition/expression. For example: `resource.instanceName.matches(\"[production|test]_.*_(\\d)+\")'` or, `resource.management.auto_upgrade == true` The max length of the condition is 1000 characters.", + "description": "Org policy condition/expression. For example: `resource.instanceName.matches(\"[production|test]_.*_(\\d)+\")` or, `resource.management.auto_upgrade == true` The max length of the condition is 1000 characters.", "type": "string" }, "description": { @@ -1035,7 +1054,7 @@ "DELETE" ], "enumDescriptions": [ - "Unspecified. Will results in user error.", + "Unspecified. Results in an error.", "Constraint applied when creating the resource.", "Constraint applied when updating the resource.", "Constraint applied when deleting the resource. Not supported yet." @@ -1045,11 +1064,11 @@ "type": "array" }, "name": { - "description": "Immutable. Name of the constraint. This is unique within the organization. Format of the name should be * `organizations/{organization_id}/customConstraints/{custom_constraint_id}` Example : \"organizations/123/customConstraints/custom.createOnlyE2TypeVms\" The max length is 70 characters and the min length is 1. Note that the prefix \"organizations/{organization_id}/customConstraints/\" is not counted.", + "description": "Immutable. Name of the constraint. This is unique within the organization. Format of the name should be * `organizations/{organization_id}/customConstraints/{custom_constraint_id}` Example: `organizations/123/customConstraints/custom.createOnlyE2TypeVms` The max length is 70 characters and the minimum length is 1. Note that the prefix `organizations/{organization_id}/customConstraints/` is not counted.", "type": "string" }, "resourceTypes": { - "description": "Immutable. The Resource Instance type on which this policy applies to. Format will be of the form : \"/\" Example: * `compute.googleapis.com/Instance`.", + "description": "Immutable. The resource instance type on which this policy applies. Format will be of the form : `/` Example: * `compute.googleapis.com/Instance`.", "items": { "type": "string" }, @@ -1083,11 +1102,11 @@ "type": "object" }, "GoogleCloudOrgpolicyV2ListCustomConstraintsResponse": { - "description": "The response returned from the ListCustomConstraints method. It will be empty if no `CustomConstraints` are set on the organization resource.", + "description": "The response returned from the ListCustomConstraints method. It will be empty if no custom constraints are set on the organization resource.", "id": "GoogleCloudOrgpolicyV2ListCustomConstraintsResponse", "properties": { "customConstraints": { - "description": "All `CustomConstraints` that exist on the organization resource. It will be empty if no `CustomConstraints` are set.", + "description": "All custom constraints that exist on the organization resource. It will be empty if no custom constraints are set.", "items": { "$ref": "GoogleCloudOrgpolicyV2CustomConstraint" }, @@ -1101,7 +1120,7 @@ "type": "object" }, "GoogleCloudOrgpolicyV2ListPoliciesResponse": { - "description": "The response returned from the ListPolicies method. It will be empty if no `Policies` are set on the resource.", + "description": "The response returned from the ListPolicies method. It will be empty if no policies are set on the resource.", "id": "GoogleCloudOrgpolicyV2ListPoliciesResponse", "properties": { "nextPageToken": { @@ -1109,7 +1128,7 @@ "type": "string" }, "policies": { - "description": "All `Policies` that exist on the resource. It will be empty if no `Policies` are set.", + "description": "All policies that exist on the resource. It will be empty if no policies are set.", "items": { "$ref": "GoogleCloudOrgpolicyV2Policy" }, @@ -1119,19 +1138,24 @@ "type": "object" }, "GoogleCloudOrgpolicyV2Policy": { - "description": "Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.", + "description": "Defines an organization policy which is used to specify constraints for configurations of Google Cloud resources.", "id": "GoogleCloudOrgpolicyV2Policy", "properties": { "alternate": { "$ref": "GoogleCloudOrgpolicyV2AlternatePolicySpec", + "deprecated": true, "description": "Deprecated." }, "dryRunSpec": { "$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." + "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.", + "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" }, "spec": { @@ -1142,30 +1166,30 @@ "type": "object" }, "GoogleCloudOrgpolicyV2PolicySpec": { - "description": "Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources.", + "description": "Defines a Google Cloud policy specification which is used to specify constraints for configurations of Google Cloud resources.", "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": { - "description": "Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.", + "description": "Determines the inheritance behavior for this policy. If `inherit_from_parent` is true, policy rules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this policy becomes the new root for evaluation. This field can be set only for policies which configure list constraints.", "type": "boolean" }, "reset": { - "description": "Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.", + "description": "Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific constraint at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.", "type": "boolean" }, "rules": { - "description": "Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.", + "description": "In policies for boolean constraints, the following requirements apply: - There must be one and only one policy rule where condition is unset. - Boolean policy rules with conditions must set `enforced` to the opposite of the policy rule without a condition. - During policy evaluation, policy rules with conditions that are true for a target resource take precedence.", "items": { "$ref": "GoogleCloudOrgpolicyV2PolicySpecPolicyRule" }, "type": "array" }, "updateTime": { - "description": "Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.", + "description": "Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that policy.", "format": "google-datetime", "readOnly": true, "type": "string" @@ -1178,7 +1202,7 @@ "id": "GoogleCloudOrgpolicyV2PolicySpecPolicyRule", "properties": { "allowAll": { - "description": "Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.", + "description": "Setting this to true means that all values are allowed. This field can be set only in policies for list constraints.", "type": "boolean" }, "condition": { @@ -1186,22 +1210,22 @@ "description": "A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr' must include from 1 to 10 subexpressions, joined by the \"||\" or \"&&\" operators. Each subexpression must be of the form \"resource.matchTag('/tag_key_short_name, 'tag_value_short_name')\". or \"resource.matchTagId('tagKeys/key_id', 'tagValues/value_id')\". where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: \"resource.matchTag('123456789/environment, 'prod')\". or \"resource.matchTagId('tagKeys/123', 'tagValues/456')\"." }, "denyAll": { - "description": "Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.", + "description": "Setting this to true means that all values are denied. This field can be set only in policies for list constraints.", "type": "boolean" }, "enforce": { - "description": "If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.", + "description": "If `true`, then the policy is enforced. If `false`, then any configuration is acceptable. This field can be set only in policies for boolean constraints.", "type": "boolean" }, "values": { "$ref": "GoogleCloudOrgpolicyV2PolicySpecPolicyRuleStringValues", - "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" }, "GoogleCloudOrgpolicyV2PolicySpecPolicyRuleStringValues": { - "description": "A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a \":\". Values prefixed with \"is:\" are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - \"projects/\", e.g. \"projects/tokyo-rain-123\" - \"folders/\", e.g. \"folders/1234\" - \"organizations/\", e.g. \"organizations/1234\" The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used.", + "description": "A message that holds specific allowed and denied values. This message can define specific values and subtrees of the Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a \":\". Values prefixed with \"is:\" are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - `projects/` (for example, `projects/tokyo-rain-123`) - `folders/` (for example, `folders/1234`) - `organizations/` (for example, `organizations/1234`) The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used.", "id": "GoogleCloudOrgpolicyV2PolicySpecPolicyRuleStringValues", "properties": { "allowedValues": { diff --git a/etc/api/osconfig/v1/osconfig-api.json b/etc/api/osconfig/v1/osconfig-api.json index 448e9a669c..f6e0929f1b 100644 --- a/etc/api/osconfig/v1/osconfig-api.json +++ b/etc/api/osconfig/v1/osconfig-api.json @@ -216,7 +216,7 @@ "reports": { "methods": { "get": { - "description": "Get the OS policy asssignment report for the specified Compute Engine VM instance.", + "description": "Get the OS policy assignment report for the specified Compute Engine VM instance.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/osPolicyAssignments/{osPolicyAssignmentsId}/report", "httpMethod": "GET", "id": "osconfig.projects.locations.instances.osPolicyAssignments.reports.get", @@ -241,7 +241,7 @@ ] }, "list": { - "description": "List OS policy asssignment reports for all Compute Engine VM instances in the specified zone.", + "description": "List OS policy assignment reports for all Compute Engine VM instances in the specified zone.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/osPolicyAssignments/{osPolicyAssignmentsId}/reports", "httpMethod": "GET", "id": "osconfig.projects.locations.instances.osPolicyAssignments.reports.list", @@ -1000,7 +1000,7 @@ } } }, - "revision": "20230121", + "revision": "20240304", "rootUrl": "https://osconfig.googleapis.com/", "schemas": { "AptSettings": { @@ -2837,7 +2837,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" } }, @@ -3025,7 +3025,7 @@ "type": "object" }, "PatchJob": { - "description": "A high level representation of a patch job that is either in progress or has completed. Instance details are not included in the job. To paginate through instance details, use ListPatchJobInstanceDetails. For more information about patch jobs, see [Creating patch jobs](https://cloud.google.com/compute/docs/os-patch-management/create-patch-job).", + "description": "A high level representation of a patch job that is either in progress or has completed. Instance details are not included in the job. To paginate through instance details, use `ListPatchJobInstanceDetails`. For more information about patch jobs, see [Creating patch jobs](https://cloud.google.com/compute/docs/os-patch-management/create-patch-job).", "id": "PatchJob", "properties": { "createTime": { @@ -3460,6 +3460,7 @@ "id": "VulnerabilityReportVulnerability", "properties": { "availableInventoryItemIds": { + "deprecated": true, "description": "Corresponds to the `AVAILABLE_PACKAGE` inventory item on the VM. If the vulnerability report was not updated after the VM inventory update, these values might not display in VM inventory. If there is no available fix, the field is empty. The `inventory_item` value specifies the latest `SoftwarePackage` available to the VM that fixes the vulnerability.", "items": { "type": "string" @@ -3476,6 +3477,7 @@ "description": "Contains metadata as per the upstream feed of the operating system and NVD." }, "installedInventoryItemIds": { + "deprecated": true, "description": "Corresponds to the `INSTALLED_PACKAGE` inventory item on the VM. This field displays the inventory items affected by this vulnerability. If the vulnerability report was not updated after the VM inventory update, these values might not display in VM inventory. For some distros, this field may be empty.", "items": { "type": "string" @@ -3599,7 +3601,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/etc/api/osconfig/v1alpha/osconfig-api.json b/etc/api/osconfig/v1alpha/osconfig-api.json index 5f64f7826d..700caf2adb 100644 --- a/etc/api/osconfig/v1alpha/osconfig-api.json +++ b/etc/api/osconfig/v1alpha/osconfig-api.json @@ -110,8 +110,10 @@ "locations": { "resources": { "instanceOSPoliciesCompliances": { + "deprecated": true, "methods": { "get": { + "deprecated": true, "description": "Get OS policies compliance data for the specified Compute Engine VM instance.", "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/instanceOSPoliciesCompliances/{instanceOSPoliciesCompliancesId}", "httpMethod": "GET", @@ -137,6 +139,7 @@ ] }, "list": { + "deprecated": true, "description": "List OS policies compliance data for all Compute Engine VM instances in the specified zone.", "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/instanceOSPoliciesCompliances", "httpMethod": "GET", @@ -286,7 +289,7 @@ "reports": { "methods": { "get": { - "description": "Get the OS policy asssignment report for the specified Compute Engine VM instance.", + "description": "Get the OS policy assignment report for the specified Compute Engine VM instance.", "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/osPolicyAssignments/{osPolicyAssignmentsId}/report", "httpMethod": "GET", "id": "osconfig.projects.locations.instances.osPolicyAssignments.reports.get", @@ -311,7 +314,7 @@ ] }, "list": { - "description": "List OS policy asssignment reports for all Compute Engine VM instances in the specified zone.", + "description": "List OS policy assignment reports for all Compute Engine VM instances in the specified zone.", "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/osPolicyAssignments/{osPolicyAssignmentsId}/reports", "httpMethod": "GET", "id": "osconfig.projects.locations.instances.osPolicyAssignments.reports.list", @@ -684,7 +687,7 @@ } } }, - "revision": "20230121", + "revision": "20240304", "rootUrl": "https://osconfig.googleapis.com/", "schemas": { "CVSSv3": { @@ -940,6 +943,7 @@ "type": "object" }, "InstanceOSPoliciesCompliance": { + "deprecated": true, "description": "This API resource represents the OS policies compliance data for a Compute Engine virtual machine (VM) instance at a given point in time. A Compute Engine VM can have multiple OS policy assignments, and each assignment can have multiple OS policies. As a result, multiple OS policies could be applied to a single VM. You can use this API resource to determine both the compliance state of your VM as well as the compliance state of an individual OS policy. For more information, see [View compliance](https://cloud.google.com/compute/docs/os-configuration-management/view-compliance).", "id": "InstanceOSPoliciesCompliance", "properties": { @@ -1005,6 +1009,7 @@ "type": "object" }, "InstanceOSPoliciesComplianceOSPolicyCompliance": { + "deprecated": true, "description": "Compliance data for an OS policy", "id": "InstanceOSPoliciesComplianceOSPolicyCompliance", "properties": { @@ -1375,6 +1380,7 @@ "type": "object" }, "ListInstanceOSPoliciesCompliancesResponse": { + "deprecated": true, "description": "A response message for listing OS policies compliance data for all Compute Engine VMs in the given location.", "id": "ListInstanceOSPoliciesCompliancesResponse", "properties": { @@ -1636,6 +1642,7 @@ "type": "array" }, "osShortNames": { + "deprecated": true, "description": "Deprecated. Use the `inventories` field instead. A VM is selected if it's OS short name matches with any of the values provided in this list.", "items": { "type": "string" @@ -1955,6 +1962,7 @@ "type": "object" }, "OSPolicyResourceCompliance": { + "deprecated": true, "description": "Compliance data for an OS policy resource.", "id": "OSPolicyResourceCompliance", "properties": { @@ -1995,6 +2003,7 @@ "type": "object" }, "OSPolicyResourceComplianceExecResourceOutput": { + "deprecated": true, "description": "ExecResource specific output.", "id": "OSPolicyResourceComplianceExecResourceOutput", "properties": { @@ -2007,6 +2016,7 @@ "type": "object" }, "OSPolicyResourceConfigStep": { + "deprecated": true, "description": "Step performed by the OS Config agent for configuring an `OSPolicyResource` to its desired state.", "id": "OSPolicyResourceConfigStep", "properties": { @@ -2216,6 +2226,7 @@ }, "osFilter": { "$ref": "OSPolicyOSFilter", + "deprecated": true, "description": "Deprecated. Use the `inventory_filters` field instead. Used to specify the OS filter for a resource group" }, "resources": { @@ -2528,7 +2539,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" } }, @@ -2592,6 +2603,7 @@ "id": "VulnerabilityReportVulnerability", "properties": { "availableInventoryItemIds": { + "deprecated": true, "description": "Corresponds to the `AVAILABLE_PACKAGE` inventory item on the VM. If the vulnerability report was not updated after the VM inventory update, these values might not display in VM inventory. If there is no available fix, the field is empty. The `inventory_item` value specifies the latest `SoftwarePackage` available to the VM that fixes the vulnerability.", "items": { "type": "string" @@ -2608,6 +2620,7 @@ "description": "Contains metadata as per the upstream feed of the operating system and NVD." }, "installedInventoryItemIds": { + "deprecated": true, "description": "Corresponds to the `INSTALLED_PACKAGE` inventory item on the VM. This field displays the inventory items affected by this vulnerability. If the vulnerability report was not updated after the VM inventory update, these values might not display in VM inventory. For some distros, this field may be empty.", "items": { "type": "string" diff --git a/etc/api/osconfig/v1beta/osconfig-api.json b/etc/api/osconfig/v1beta/osconfig-api.json index 0e2929502f..a2931e5603 100644 --- a/etc/api/osconfig/v1beta/osconfig-api.json +++ b/etc/api/osconfig/v1beta/osconfig-api.json @@ -689,7 +689,7 @@ } } }, - "revision": "20230121", + "revision": "20240304", "rootUrl": "https://osconfig.googleapis.com/", "schemas": { "AptRepository": { diff --git a/etc/api/oslogin/v1/oslogin-api.json b/etc/api/oslogin/v1/oslogin-api.json index dfd0bfa698..0e6ae91507 100644 --- a/etc/api/oslogin/v1/oslogin-api.json +++ b/etc/api/oslogin/v1/oslogin-api.json @@ -174,6 +174,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", @@ -343,7 +349,7 @@ } } }, - "revision": "20230115", + "revision": "20240225", "rootUrl": "https://oslogin.googleapis.com/", "schemas": { "Empty": { diff --git a/etc/api/oslogin/v1alpha/oslogin-api.json b/etc/api/oslogin/v1alpha/oslogin-api.json index 932a7d8335..bd56f1ee06 100644 --- a/etc/api/oslogin/v1alpha/oslogin-api.json +++ b/etc/api/oslogin/v1alpha/oslogin-api.json @@ -205,6 +205,12 @@ "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" + }, "view": { "description": "The view configures whether to retrieve security keys information.", "enum": [ @@ -278,6 +284,74 @@ "https://www.googleapis.com/auth/compute" ] } + }, + "resources": { + "locations": { + "methods": { + "signSshPublicKey": { + "description": "Signs an SSH public key for a user to authenticate to a virtual machine on Google Compute Engine.", + "flatPath": "v1alpha/users/{usersId}/projects/{projectsId}/locations/{locationsId}:signSshPublicKey", + "httpMethod": "POST", + "id": "oslogin.users.projects.locations.signSshPublicKey", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "The parent project and zone for the signing request. This is needed to properly ensure per-organization ISS processing and potentially to provide for the possibility of zone-specific certificates used in the signing process.", + "location": "path", + "pattern": "^users/[^/]+/projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}:signSshPublicKey", + "request": { + "$ref": "SignSshPublicKeyRequest" + }, + "response": { + "$ref": "SignSshPublicKeyResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "zones": { + "methods": { + "signSshPublicKey": { + "description": "Signs an SSH public key for a user to authenticate to a virtual machine on Google Compute Engine.", + "flatPath": "v1alpha/users/{usersId}/projects/{projectsId}/zones/{zonesId}:signSshPublicKey", + "httpMethod": "POST", + "id": "oslogin.users.projects.zones.signSshPublicKey", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "The parent project and zone for the signing request. This is needed to properly ensure per-organization ISS processing and potentially to provide for the possibility of zone-specific certificates used in the signing process.", + "location": "path", + "pattern": "^users/[^/]+/projects/[^/]+/zones/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}:signSshPublicKey", + "request": { + "$ref": "SignSshPublicKeyRequest" + }, + "response": { + "$ref": "SignSshPublicKeyResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + } } }, "sshPublicKeys": { @@ -403,7 +477,7 @@ } } }, - "revision": "20230115", + "revision": "20240225", "rootUrl": "https://oslogin.googleapis.com/", "schemas": { "Empty": { @@ -528,6 +602,10 @@ "description": "The credential information for a Google registered security key.", "id": "SecurityKey", "properties": { + "deviceNickname": { + "description": "The security key nickname explicitly set by the user.", + "type": "string" + }, "privateKey": { "description": "Hardware-backed private key text in SSH format.", "type": "string" @@ -547,6 +625,26 @@ }, "type": "object" }, + "SignSshPublicKeyRequest": { + "id": "SignSshPublicKeyRequest", + "properties": { + "sshPublicKey": { + "description": "The SSH public key to sign.", + "type": "string" + } + }, + "type": "object" + }, + "SignSshPublicKeyResponse": { + "id": "SignSshPublicKeyResponse", + "properties": { + "signedSshPublicKey": { + "description": "The signed SSH public key to use in the SSH handshake.", + "type": "string" + } + }, + "type": "object" + }, "SshPublicKey": { "description": "The SSH public key information associated with a Google account.", "id": "SshPublicKey", diff --git a/etc/api/oslogin/v1beta/oslogin-api.json b/etc/api/oslogin/v1beta/oslogin-api.json index c9f8a1d141..b8f1241692 100644 --- a/etc/api/oslogin/v1beta/oslogin-api.json +++ b/etc/api/oslogin/v1beta/oslogin-api.json @@ -190,6 +190,12 @@ "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" + }, "view": { "description": "The view configures whether to retrieve security keys information.", "enum": [ @@ -248,6 +254,74 @@ "https://www.googleapis.com/auth/compute" ] } + }, + "resources": { + "locations": { + "methods": { + "signSshPublicKey": { + "description": "Signs an SSH public key for a user to authenticate to an instance.", + "flatPath": "v1beta/users/{usersId}/projects/{projectsId}/locations/{locationsId}:signSshPublicKey", + "httpMethod": "POST", + "id": "oslogin.users.projects.locations.signSshPublicKey", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "The parent project and zone for the signing request. This is needed to properly ensure per-organization ISS processing and potentially to provide for the possibility of zone-specific certificates used in the signing process.", + "location": "path", + "pattern": "^users/[^/]+/projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}:signSshPublicKey", + "request": { + "$ref": "SignSshPublicKeyRequest" + }, + "response": { + "$ref": "SignSshPublicKeyResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "zones": { + "methods": { + "signSshPublicKey": { + "description": "Signs an SSH public key for a user to authenticate to an instance.", + "flatPath": "v1beta/users/{usersId}/projects/{projectsId}/zones/{zonesId}:signSshPublicKey", + "httpMethod": "POST", + "id": "oslogin.users.projects.zones.signSshPublicKey", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "The parent project and zone for the signing request. This is needed to properly ensure per-organization ISS processing and potentially to provide for the possibility of zone-specific certificates used in the signing process.", + "location": "path", + "pattern": "^users/[^/]+/projects/[^/]+/zones/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}:signSshPublicKey", + "request": { + "$ref": "SignSshPublicKeyRequest" + }, + "response": { + "$ref": "SignSshPublicKeyResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + } } }, "sshPublicKeys": { @@ -373,7 +447,7 @@ } } }, - "revision": "20230115", + "revision": "20240225", "rootUrl": "https://oslogin.googleapis.com/", "schemas": { "Empty": { @@ -498,6 +572,10 @@ "description": "The credential information for a Google registered security key.", "id": "SecurityKey", "properties": { + "deviceNickname": { + "description": "The security key nickname explicitly set by the user.", + "type": "string" + }, "privateKey": { "description": "Hardware-backed private key text in SSH format.", "type": "string" @@ -517,6 +595,26 @@ }, "type": "object" }, + "SignSshPublicKeyRequest": { + "id": "SignSshPublicKeyRequest", + "properties": { + "sshPublicKey": { + "description": "The SSH public key to sign.", + "type": "string" + } + }, + "type": "object" + }, + "SignSshPublicKeyResponse": { + "id": "SignSshPublicKeyResponse", + "properties": { + "signedSshPublicKey": { + "description": "The signed SSH public key to use in the SSH handshake.", + "type": "string" + } + }, + "type": "object" + }, "SshPublicKey": { "description": "The SSH public key information associated with a Google account.", "id": "SshPublicKey", diff --git a/etc/api/pagespeedonline/v5/pagespeedonline-api.json b/etc/api/pagespeedonline/v5/pagespeedonline-api.json index a1fd72b4da..7b0d4a20fe 100644 --- a/etc/api/pagespeedonline/v5/pagespeedonline-api.json +++ b/etc/api/pagespeedonline/v5/pagespeedonline-api.json @@ -193,7 +193,7 @@ } } }, - "revision": "20230123", + "revision": "20240229", "rootUrl": "https://pagespeedonline.googleapis.com/", "schemas": { "AuditRefs": { @@ -300,6 +300,7 @@ "type": "string" }, "emulatedFormFactor": { + "deprecated": true, "description": "The form factor the emulation should use. This field is deprecated, form_factor should be used instead.", "type": "string" }, @@ -327,6 +328,13 @@ "format": "double", "type": "number" }, + "credits": { + "additionalProperties": { + "type": "string" + }, + "description": "The version of libraries with which these results were generated. Ex: axe-core.", + "type": "object" + }, "hostUserAgent": { "description": "The user agent string of the version of Chrome used.", "type": "string" @@ -349,6 +357,40 @@ }, "type": "object" }, + "LhrEntity": { + "description": "Message containing an Entity.", + "id": "LhrEntity", + "properties": { + "category": { + "description": "Optional. An optional category name for the entity.", + "type": "string" + }, + "homepage": { + "description": "Optional. An optional homepage URL of the entity.", + "type": "string" + }, + "isFirstParty": { + "description": "Optional. An optional flag indicating if the entity is the first party.", + "type": "boolean" + }, + "isUnrecognized": { + "description": "Optional. An optional flag indicating if the entity is not recognized.", + "type": "boolean" + }, + "name": { + "description": "Required. Name of the entity.", + "type": "string" + }, + "origins": { + "description": "Required. A list of URL origin strings that belong to this entity.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "LighthouseAuditResultV5": { "description": "An audit's result object in a Lighthouse result.", "id": "LighthouseAuditResultV5", @@ -469,6 +511,13 @@ "$ref": "ConfigSettings", "description": "The configuration settings for this LHR." }, + "entities": { + "description": "Entity classification data.", + "items": { + "$ref": "LhrEntity" + }, + "type": "array" + }, "environment": { "$ref": "Environment", "description": "Environment settings that were used when making this LHR." @@ -477,10 +526,18 @@ "description": "The time that this run was fetched.", "type": "string" }, + "finalDisplayedUrl": { + "description": "URL displayed on the page after Lighthouse finishes.", + "type": "string" + }, "finalUrl": { "description": "The final resolved url that was audited.", "type": "string" }, + "fullPageScreenshot": { + "description": "Screenshot data of the full page, along with node rects relevant to the audit results.", + "type": "any" + }, "i18n": { "$ref": "I18n", "description": "The internationalization strings that are required to render the LHR." @@ -489,6 +546,10 @@ "description": "The lighthouse version that was used to generate this LHR.", "type": "string" }, + "mainDocumentUrl": { + "description": "URL of the main document request of the final navigation.", + "type": "string" + }, "requestedUrl": { "description": "The original requested url.", "type": "string" diff --git a/etc/api/paymentsresellersubscription/v1/paymentsresellersubscription-api.json b/etc/api/paymentsresellersubscription/v1/paymentsresellersubscription-api.json index 0f40a75444..04e9b8aa2d 100644 --- a/etc/api/paymentsresellersubscription/v1/paymentsresellersubscription-api.json +++ b/etc/api/paymentsresellersubscription/v1/paymentsresellersubscription-api.json @@ -1,4 +1,13 @@ { + "auth": { + "oauth2": { + "scopes": { + "openid": { + "description": "Associate you with your personal info on Google" + } + } + } + }, "basePath": "", "baseUrl": "https://paymentsresellersubscription.googleapis.com/", "batchPath": "batch", @@ -110,7 +119,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" }, @@ -136,14 +145,17 @@ "path": "v1/{+parent}/products", "response": { "$ref": "GoogleCloudPaymentsResellerSubscriptionV1ListProductsResponse" - } + }, + "scopes": [ + "openid" + ] } } }, "promotions": { "methods": { "findEligible": { - "description": "To find eligible promotions for the current user. The API requires user authorization via OAuth. The user is inferred from the authenticated OAuth credential.", + "description": "To find eligible promotions for the current user. The API requires user authorization via OAuth. The bare minimum oauth scope `openid` is sufficient, which will skip the consent screen.", "flatPath": "v1/partners/{partnersId}/promotions:findEligible", "httpMethod": "POST", "id": "paymentsresellersubscription.partners.promotions.findEligible", @@ -165,7 +177,10 @@ }, "response": { "$ref": "GoogleCloudPaymentsResellerSubscriptionV1FindEligiblePromotionsResponse" - } + }, + "scopes": [ + "openid" + ] }, "list": { "description": "To retrieve the promotions, such as free trial, that can be used by the partner. It should be autenticated with a service account.", @@ -177,7 +192,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" }, @@ -203,7 +218,10 @@ "path": "v1/{+parent}/promotions", "response": { "$ref": "GoogleCloudPaymentsResellerSubscriptionV1ListPromotionsResponse" - } + }, + "scopes": [ + "openid" + ] } } }, @@ -232,7 +250,10 @@ }, "response": { "$ref": "GoogleCloudPaymentsResellerSubscriptionV1CancelSubscriptionResponse" - } + }, + "scopes": [ + "openid" + ] }, "create": { "description": "Used by partners to create a subscription for their customers. The created subscription is associated with the end user inferred from the end user credentials. This API must be authorized by the end user using OAuth.", @@ -262,7 +283,10 @@ }, "response": { "$ref": "GoogleCloudPaymentsResellerSubscriptionV1Subscription" - } + }, + "scopes": [ + "openid" + ] }, "entitle": { "description": "Used by partners to entitle a previously provisioned subscription to the current end user. The end user identity is inferred from the authorized credential of the request. This API must be authorized by the end user using OAuth.", @@ -287,10 +311,13 @@ }, "response": { "$ref": "GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionResponse" - } + }, + "scopes": [ + "openid" + ] }, "extend": { - "description": "[Deprecated] New partners should be on auto-extend by default. Used by partners to extend a subscription service for their customers on an ongoing basis for the subscription to remain active and renewable. It should be called directly by the partner using service accounts.", + "description": "[Opt-in only] Most partners should be on auto-extend by default. Used by partners to extend a subscription service for their customers on an ongoing basis for the subscription to remain active and renewable. It should be called directly by the partner using service accounts.", "flatPath": "v1/partners/{partnersId}/subscriptions/{subscriptionsId}:extend", "httpMethod": "POST", "id": "paymentsresellersubscription.partners.subscriptions.extend", @@ -312,7 +339,10 @@ }, "response": { "$ref": "GoogleCloudPaymentsResellerSubscriptionV1ExtendSubscriptionResponse" - } + }, + "scopes": [ + "openid" + ] }, "get": { "description": "Used by partners to get a subscription by id. It should be called directly by the partner using service accounts.", @@ -334,7 +364,10 @@ "path": "v1/{+name}", "response": { "$ref": "GoogleCloudPaymentsResellerSubscriptionV1Subscription" - } + }, + "scopes": [ + "openid" + ] }, "provision": { "description": "Used by partners to provision a subscription for their customers. This creates a subscription without associating it with the end user account. EntitleSubscription must be called separately using OAuth in order for the end user account to be associated with the subscription. It should be called directly by the partner using service accounts.", @@ -364,7 +397,10 @@ }, "response": { "$ref": "GoogleCloudPaymentsResellerSubscriptionV1Subscription" - } + }, + "scopes": [ + "openid" + ] }, "undoCancel": { "description": "Used by partners to revoke the pending cancellation of a subscription, which is currently in `STATE_CANCEL_AT_END_OF_CYCLE` state. If the subscription is already cancelled, the request will fail. It should be called directly by the partner using service accounts.", @@ -389,14 +425,17 @@ }, "response": { "$ref": "GoogleCloudPaymentsResellerSubscriptionV1UndoCancelSubscriptionResponse" - } + }, + "scopes": [ + "openid" + ] } } } } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://paymentsresellersubscription.googleapis.com/", "schemas": { "GoogleCloudPaymentsResellerSubscriptionV1Amount": { @@ -416,10 +455,11 @@ "type": "object" }, "GoogleCloudPaymentsResellerSubscriptionV1CancelSubscriptionRequest": { + "description": "Request to cancel a subscription.", "id": "GoogleCloudPaymentsResellerSubscriptionV1CancelSubscriptionRequest", "properties": { "cancelImmediately": { - "description": "Optional. If true, Google will cancel the subscription immediately, and issue a prorated refund for the remainder of the billing cycle. Otherwise, Google defers the cancelation at renewal_time, and therefore, will not issue a refund.", + "description": "Optional. If true, Google will cancel the subscription immediately, and may or may not (based on the contract) issue a prorated refund for the remainder of the billing cycle. Otherwise, Google defers the cancelation at renewal_time, and will not issue a refund.", "type": "boolean" }, "cancellationReason": { @@ -433,6 +473,8 @@ "CANCELLATION_REASON_ACCOUNT_CLOSED", "CANCELLATION_REASON_UPGRADE_DOWNGRADE", "CANCELLATION_REASON_USER_DELINQUENCY", + "CANCELLATION_REASON_SYSTEM_ERROR", + "CANCELLATION_REASON_SYSTEM_CANCEL", "CANCELLATION_REASON_OTHER" ], "enumDescriptions": [ @@ -441,9 +483,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", + "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" @@ -452,6 +496,7 @@ "type": "object" }, "GoogleCloudPaymentsResellerSubscriptionV1CancelSubscriptionResponse": { + "description": "Response that contains the cancelled subscription resource.", "id": "GoogleCloudPaymentsResellerSubscriptionV1CancelSubscriptionResponse", "properties": { "subscription": { @@ -475,12 +520,14 @@ "enum": [ "UNIT_UNSPECIFIED", "MONTH", - "DAY" + "DAY", + "HOUR" ], "enumDescriptions": [ - "Default value.", + "Default value, reserved as an invalid or an unexpected value.", "Unit of a calendar month.", - "Unit of a day." + "Unit of a day.", + "Unit of an hour. It is used for testing." ], "type": "string" } @@ -490,10 +537,38 @@ "GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionRequest": { "description": "Partner request for entitling the previously provisioned subscription to an end user. The end user identity is inferred from the request OAuth context.", "id": "GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionRequest", - "properties": {}, + "properties": { + "lineItemEntitlementDetails": { + "description": "Optional. The line items to be entitled. If unspecified, all line items will be entitled.", + "items": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionRequestLineItemEntitlementDetails" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionRequestLineItemEntitlementDetails": { + "description": "The details of the line item to be entitled.", + "id": "GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionRequestLineItemEntitlementDetails", + "properties": { + "lineItemIndex": { + "description": "Required. The index of the line item to be entitled.", + "format": "int32", + "type": "integer" + }, + "products": { + "description": "Optional. Only applicable if the line item corresponds to a hard bundle. Product resource names that identify the bundle elements to be entitled in the line item. If unspecified, all bundle elements will be entitled. The format is 'partners/{partner_id}/products/{product_id}'.", + "items": { + "type": "string" + }, + "type": "array" + } + }, "type": "object" }, "GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionResponse": { + "description": "Response that contains the entitled subscription resource.", "id": "GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionResponse", "properties": { "subscription": { @@ -512,13 +587,14 @@ "description": "Required. Specifies details of the extension. Currently, the duration of the extension must be exactly one billing cycle of the original subscription." }, "requestId": { - "description": "Required. Restricted to 36 ASCII characters. A random UUID is recommended. The idempotency key for the request. The ID generation logic is controlled by the partner. request_id should be the same as on retries of the same request. A different request_id must be used for a extension of a different cycle. A random UUID is recommended.", + "description": "Required. Restricted to 36 ASCII characters. A random UUID is recommended. The idempotency key for the request. The ID generation logic is controlled by the partner. request_id should be the same as on retries of the same request. A different request_id must be used for a extension of a different cycle.", "type": "string" } }, "type": "object" }, "GoogleCloudPaymentsResellerSubscriptionV1ExtendSubscriptionResponse": { + "description": "Response that contains the timestamps after the extension.", "id": "GoogleCloudPaymentsResellerSubscriptionV1ExtendSubscriptionResponse", "properties": { "cycleEndTime": { @@ -546,7 +622,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\u2019s system.", @@ -556,10 +632,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": { @@ -592,6 +669,18 @@ }, "type": "object" }, + "GoogleCloudPaymentsResellerSubscriptionV1FiniteBillingCycleDetails": { + "description": "Details for a subscriptiin line item with finite billing cycles.", + "id": "GoogleCloudPaymentsResellerSubscriptionV1FiniteBillingCycleDetails", + "properties": { + "billingCycleCountLimit": { + "description": "Required. The number of a subscription line item billing cycles after which billing will stop automatically.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudPaymentsResellerSubscriptionV1GoogleOnePayload": { "description": "Payload specific to Google One products.", "id": "GoogleCloudPaymentsResellerSubscriptionV1GoogleOnePayload", @@ -647,6 +736,7 @@ "type": "object" }, "GoogleCloudPaymentsResellerSubscriptionV1ListProductsResponse": { + "description": "Response that contains the products.", "id": "GoogleCloudPaymentsResellerSubscriptionV1ListProductsResponse", "properties": { "nextPageToken": { @@ -664,6 +754,7 @@ "type": "object" }, "GoogleCloudPaymentsResellerSubscriptionV1ListPromotionsResponse": { + "description": "Response that contains the promotions.", "id": "GoogleCloudPaymentsResellerSubscriptionV1ListPromotionsResponse", "properties": { "nextPageToken": { @@ -699,9 +790,17 @@ "description": "A Product resource that defines a subscription service that can be resold.", "id": "GoogleCloudPaymentsResellerSubscriptionV1Product", "properties": { + "bundleDetails": { + "$ref": "ProductBundleDetails", + "description": "Output only. Output Only. Specifies the details for a bundle product.", + "readOnly": true + }, + "finiteBillingCycleDetails": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1FiniteBillingCycleDetails", + "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": { @@ -712,6 +811,21 @@ "readOnly": true, "type": "array" }, + "productType": { + "description": "Output only. Output Only. Specifies the type of the product.", + "enum": [ + "PRODUCT_TYPE_UNSPECIFIED", + "PRODUCT_TYPE_SUBSCRIPTION", + "PRODUCT_TYPE_BUNDLE_SUBSCRIPTION" + ], + "enumDescriptions": [ + "Unspecified. It's reserved as an unexpected value, should not be used.", + "The product is a subscription.", + "The product is a bundled subscription plan, which includes multiple subscription elements." + ], + "readOnly": true, + "type": "string" + }, "regionCodes": { "description": "Output only. 2-letter ISO region code where the product is available in. Ex. \"US\" Please refers to: https://en.wikipedia.org/wiki/ISO_3166-1", "items": { @@ -736,13 +850,25 @@ }, "type": "object" }, + "GoogleCloudPaymentsResellerSubscriptionV1ProductBundleDetailsBundleElement": { + "description": "The individual product that is included in the bundle.", + "id": "GoogleCloudPaymentsResellerSubscriptionV1ProductBundleDetailsBundleElement", + "properties": { + "product": { + "description": "Required. Output only. Product resource name that identifies the bundle element. The format is 'partners/{partner_id}/products/{product_id}'.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudPaymentsResellerSubscriptionV1ProductPayload": { "description": "Specifies product specific payload.", "id": "GoogleCloudPaymentsResellerSubscriptionV1ProductPayload", "properties": { "googleOnePayload": { "$ref": "GoogleCloudPaymentsResellerSubscriptionV1GoogleOnePayload", - "description": "Payload specific to Google One products." + "description": "Product-specific payloads. Payload specific to Google One products." }, "youtubePayload": { "$ref": "GoogleCloudPaymentsResellerSubscriptionV1YoutubePayload", @@ -794,8 +920,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": { @@ -842,10 +967,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" } }, @@ -898,7 +1024,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": { @@ -937,7 +1063,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": { @@ -960,7 +1086,7 @@ "type": "string" }, "products": { - "description": "Required. Deprecated: consider using `line_items` as the input. Required. Resource name that identifies the purchased products. The format will be 'partners/{partner_id}/products/{product_id}'.", + "description": "Optional. Deprecated: consider using `line_items` as the input. Required. Resource name that identifies the purchased products. The format will be 'partners/{partner_id}/products/{product_id}'.", "items": { "type": "string" }, @@ -1010,8 +1136,8 @@ "The state is unspecified.", "The subscription is created, a state before it is moved to STATE_ACTIVE.", "The subscription is active.", - "The subscription is cancelled.", - "The subscription has not been extended by the partner after the end of current cycle.", + "The subscription is cancelled. This is the final state of the subscription, as it can no longer be modified or reactivated.", + "The subscription is in grace period. It can happen: 1) in manual extend mode, the subscription is not extended by the partner at the end of current cycle. 2) for outbound authorization enabled partners, a renewal purchase order is rejected.", "The subscription is waiting to be cancelled by the next recurrence cycle.", "The subscription is suspended." ], @@ -1036,7 +1162,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", @@ -1046,6 +1172,8 @@ "CANCELLATION_REASON_ACCOUNT_CLOSED", "CANCELLATION_REASON_UPGRADE_DOWNGRADE", "CANCELLATION_REASON_USER_DELINQUENCY", + "CANCELLATION_REASON_SYSTEM_ERROR", + "CANCELLATION_REASON_SYSTEM_CANCEL", "CANCELLATION_REASON_OTHER" ], "enumDescriptions": [ @@ -1054,11 +1182,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", + "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" } }, @@ -1068,17 +1199,37 @@ "description": "Individual line item definition of a subscription.", "id": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItem", "properties": { + "amount": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1Amount", + "description": "Output only. The price of the product/service in this line item. The amount could be the wholesale price, or it can include a cost of sale based on the contract.", + "readOnly": true + }, + "bundleDetails": { + "$ref": "SubscriptionLineItemBundleDetails", + "description": "Output only. The bundle details for the line item. Only populated if the line item corresponds to a hard bundle.", + "readOnly": true + }, "description": { "description": "Output only. Description of this line item.", "readOnly": true, "type": "string" }, + "finiteBillingCycleDetails": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1FiniteBillingCycleDetails", + "description": "Optional. Details for a subscription line item with finite billing cycles. If unset, the line item will be charged indefinitely. Used only with LINE_ITEM_RECURRENCE_TYPE_PERIODIC." + }, "lineItemFreeTrialEndTime": { - "description": "Output only. It is set only if the line item has its own free trial applied. End time of the line item free trial period, in ISO 8061 format. For example, \"2019-08-31T17:28:54.564Z\". It will be set the same as createTime if no free trial promotion is specified.", + "description": "Output only. The free trial end time will be populated after the line item is successfully processed. End time of the line item free trial period, in ISO 8061 format. For example, \"2019-08-31T17:28:54.564Z\". It will be set the same as createTime if no free trial promotion is specified.", "format": "google-datetime", "readOnly": true, "type": "string" }, + "lineItemIndex": { + "description": "Output only. A unique index of the subscription line item.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, "lineItemPromotionSpecs": { "description": "Optional. The promotions applied on the line item. It can be: - a free trial promotion, which overrides the subscription-level free trial promotion. - an introductory pricing promotion. When used as input in Create or Provision API, specify its resource name only.", "items": { @@ -1123,16 +1274,18 @@ "LINE_ITEM_STATE_NEW", "LINE_ITEM_STATE_ACTIVATING", "LINE_ITEM_STATE_DEACTIVATING", - "LINE_ITEM_STATE_WAITING_TO_DEACTIVATE" + "LINE_ITEM_STATE_WAITING_TO_DEACTIVATE", + "LINE_ITEM_STATE_OFF_CYCLE_CHARGING" ], "enumDescriptions": [ "Unspecified state.", - "The line item is in ACTIVE state.", + "The line item is in ACTIVE state. If the subscription is cancelled or suspended, the line item will not be charged even if the line item is active.", "The line item is in INACTIVE state.", "The line item is new, and is not activated or charged yet.", "The line item is being activated in order to be charged. If a free trial applies to the line item, the line item is pending a prorated charge at the end of the free trial period, as indicated by `line_item_free_trial_end_time`.", "The line item is being deactivated, and a prorated refund in being processed.", - "The line item is scheduled to be deactivated at the end of the current cycle." + "The line item is scheduled to be deactivated at the end of the current cycle.", + "Line item is being charged off-cycle." ], "readOnly": true, "type": "string" @@ -1140,13 +1293,32 @@ }, "type": "object" }, + "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItemBundleDetailsBundleElementDetails": { + "description": "The details for an element in the hard bundle.", + "id": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItemBundleDetailsBundleElementDetails", + "properties": { + "product": { + "description": "Output only. Product resource name that identifies the bundle element. The format is 'partners/{partner_id}/products/{product_id}'.", + "readOnly": true, + "type": "string" + }, + "userAccountLinkedTime": { + "description": "Output only. The time when this product is linked to an end user.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItemOneTimeRecurrenceDetails": { "description": "Details for a ONE_TIME recurrence line item.", "id": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItemOneTimeRecurrenceDetails", "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" @@ -1233,12 +1405,34 @@ "description": "Payload specific to Youtube products.", "id": "GoogleCloudPaymentsResellerSubscriptionV1YoutubePayload", "properties": { + "accessEndTime": { + "description": "Output only. The access expiration time for this line item.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "partnerEligibilityIds": { "description": "The list of eligibility_ids which are applicable for the line item.", "items": { "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" @@ -1252,11 +1446,54 @@ "type": "string" }, "text": { - "description": "Localized string in the language corresponding to `language_code' below.", + "description": "Localized string in the language corresponding to language_code below.", "type": "string" } }, "type": "object" + }, + "ProductBundleDetails": { + "description": "Details for a bundle product.", + "id": "ProductBundleDetails", + "properties": { + "bundleElements": { + "description": "The individual products that are included in the bundle.", + "items": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1ProductBundleDetailsBundleElement" + }, + "type": "array" + }, + "entitlementMode": { + "description": "The entitlement mode of the bundle product.", + "enum": [ + "ENTITLEMENT_MODE_UNSPECIFIED", + "ENTITLEMENT_MODE_FULL", + "ENTITLEMENT_MODE_INCREMENTAL" + ], + "enumDescriptions": [ + "Unspecified. It's reserved as an unexpected value, should not be used.", + "All the bundle elements must be fully activated in a single request.", + "The bundle elements could be incrementally activated." + ], + "type": "string" + } + }, + "type": "object" + }, + "SubscriptionLineItemBundleDetails": { + "description": "The bundle details for a line item corresponding to a hard bundle.", + "id": "SubscriptionLineItemBundleDetails", + "properties": { + "bundleElementDetails": { + "description": "Output only. The details for each element in the hard bundle.", + "items": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItemBundleDetailsBundleElementDetails" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/people/v1/people-api.json b/etc/api/people/v1/people-api.json index e588c9e031..b1919e615a 100644 --- a/etc/api/people/v1/people-api.json +++ b/etc/api/people/v1/people-api.json @@ -1172,7 +1172,7 @@ } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://people.googleapis.com/", "schemas": { "Address": { @@ -1437,6 +1437,7 @@ "description": "Metadata about the birthday." }, "text": { + "deprecated": true, "description": "Prefer to use the `date` field if set. A free-form string representing the user's birthday. This value is not validated.", "type": "string" } @@ -1444,6 +1445,7 @@ "type": "object" }, "BraggingRights": { + "deprecated": true, "description": "**DEPRECATED**: No data will be returned A person's bragging rights.", "id": "BraggingRights", "properties": { @@ -1571,6 +1573,7 @@ "id": "ContactGroupMembership", "properties": { "contactGroupId": { + "deprecated": true, "description": "Output only. The contact group ID for the contact group membership.", "readOnly": true, "type": "string" @@ -1993,6 +1996,7 @@ "type": "integer" }, "totalPeople": { + "deprecated": true, "description": "**DEPRECATED** (Please use totalItems) The total number of people in the list without pagination.", "format": "int32", "type": "integer" @@ -2332,6 +2336,15 @@ "ALTERNATE_NAME", "SHORT_NAME" ], + "enumDeprecated": [ + false, + true, + true, + true, + true, + false, + true + ], "enumDescriptions": [ "Generic nickname.", "Maiden name or birth family name. Used when the person's family name has changed as a result of marriage.", @@ -2450,6 +2463,7 @@ "type": "array" }, "ageRange": { + "deprecated": true, "description": "Output only. **DEPRECATED** (Please use `person.ageRanges` instead) The person's age range.", "enum": [ "AGE_RANGE_UNSPECIFIED", @@ -2489,6 +2503,7 @@ "type": "array" }, "braggingRights": { + "deprecated": true, "description": "**DEPRECATED**: No data will be returned The person's bragging rights.", "items": { "$ref": "BraggingRights" @@ -2654,6 +2669,7 @@ "type": "array" }, "relationshipInterests": { + "deprecated": true, "description": "Output only. **DEPRECATED**: No data will be returned The person's relationship interests.", "items": { "$ref": "RelationshipInterest" @@ -2662,6 +2678,7 @@ "type": "array" }, "relationshipStatuses": { + "deprecated": true, "description": "Output only. **DEPRECATED**: No data will be returned The person's relationship statuses.", "items": { "$ref": "RelationshipStatus" @@ -2670,6 +2687,7 @@ "type": "array" }, "residences": { + "deprecated": true, "description": "**DEPRECATED**: (Please use `person.locations` instead) The person's residences.", "items": { "$ref": "Residence" @@ -2695,6 +2713,7 @@ "type": "array" }, "taglines": { + "deprecated": true, "description": "Output only. **DEPRECATED**: No data will be returned The person's taglines.", "items": { "$ref": "Tagline" @@ -2737,6 +2756,7 @@ "type": "array" }, "objectType": { + "deprecated": true, "description": "Output only. **DEPRECATED** (Please use `person.metadata.sources.profileMetadata.objectType` instead) The type of the person object.", "enum": [ "OBJECT_TYPE_UNSPECIFIED", @@ -2774,6 +2794,7 @@ "id": "PersonResponse", "properties": { "httpStatusCode": { + "deprecated": true, "description": "**DEPRECATED** (Please use status instead) [HTTP 1.1 status code] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html).", "format": "int32", "type": "integer" @@ -2908,6 +2929,7 @@ "type": "object" }, "RelationshipInterest": { + "deprecated": true, "description": "**DEPRECATED**: No data will be returned A person's relationship interest .", "id": "RelationshipInterest", "properties": { @@ -2928,6 +2950,7 @@ "type": "object" }, "RelationshipStatus": { + "deprecated": true, "description": "**DEPRECATED**: No data will be returned A person's relationship status.", "id": "RelationshipStatus", "properties": { @@ -2948,6 +2971,7 @@ "type": "object" }, "Residence": { + "deprecated": true, "description": "**DEPRECATED**: Please use `person.locations` instead. A person's past or current residence.", "id": "Residence", "properties": { @@ -3129,6 +3153,7 @@ "type": "object" }, "Tagline": { + "deprecated": true, "description": "**DEPRECATED**: No data will be returned A brief one-line description of the person.", "id": "Tagline", "properties": { diff --git a/etc/api/photoslibrary/v1/photoslibrary-api.json b/etc/api/photoslibrary/v1/photoslibrary-api.json index b620e4770f..efd3a6de43 100644 --- a/etc/api/photoslibrary/v1/photoslibrary-api.json +++ b/etc/api/photoslibrary/v1/photoslibrary-api.json @@ -641,7 +641,7 @@ } } }, - "revision": "20230117", + "revision": "20240223", "rootUrl": "https://photoslibrary.googleapis.com/", "schemas": { "AddEnrichmentToAlbumRequest": { @@ -1019,7 +1019,7 @@ "type": "object" }, "DateFilter": { - "description": "This filter defines the allowed dates or date ranges for the media returned. It's possible to pick a set of specific dates and a set of date ranges.", + "description": "This filter defines the allowed dates or date ranges for the media returned. It's possible to pick a set of specific dates and a set of date ranges. Media items uploaded without metadata specifying the date the media item was captured will not be returned in queries using date filters. Google Photos server upload time is not used as a fallback in this case.", "id": "DateFilter", "properties": { "dates": { diff --git a/etc/api/playcustomapp/v1/playcustomapp-api.json b/etc/api/playcustomapp/v1/playcustomapp-api.json index 59b335b188..cfe376f594 100644 --- a/etc/api/playcustomapp/v1/playcustomapp-api.json +++ b/etc/api/playcustomapp/v1/playcustomapp-api.json @@ -158,7 +158,7 @@ } } }, - "revision": "20230123", + "revision": "20240304", "rootUrl": "https://playcustomapp.googleapis.com/", "schemas": { "CustomApp": { diff --git a/etc/api/playintegrity/v1/playintegrity-api.json b/etc/api/playintegrity/v1/playintegrity-api.json index e64a29a53d..97a11d206b 100644 --- a/etc/api/playintegrity/v1/playintegrity-api.json +++ b/etc/api/playintegrity/v1/playintegrity-api.json @@ -138,11 +138,11 @@ } } }, - "revision": "20230123", + "revision": "20240304", "rootUrl": "https://playintegrity.googleapis.com/", "schemas": { "AccountActivity": { - "description": "Contains a signal helping apps differentiating between likely genuine users and likely non-genuine traffic (such as accounts being used for fraud, accounts used by automated traffic, or accounts used in device farms) based on the presence and volume of Play store activity.", + "description": "(Restricted Access) Contains a signal helping apps differentiating between likely genuine and likely non-genuine user traffic.", "id": "AccountActivity", "properties": { "activityLevel": { @@ -157,11 +157,11 @@ ], "enumDescriptions": [ "Activity level has not been set.", - "Account activity level is not evaluated because one of the prerequisite conditions is not met (e.g., device is not trusted, the user does not have Play app license)", - "Google Play store activity is unusual for at least one of the user accounts on the device. Google Play recommends checking that this is a real user.", - "Google Play does not have sufficient activity for the user account on the device. The account may be new, or it may lack activity on Google Play.", - "Google Play store activity is typical for the user account or accounts on the device.", - "Google Play store activity is typical for the user account or accounts on the device, with harder to replicate signals." + "Account activity level is not evaluated.", + "Unusual activity for at least one of the user accounts on the device.", + "Insufficient activity to verify the user account on the device.", + "Typical activity for the user account or accounts on the device.", + "Typical for the user account or accounts on the device, with harder to replicate signals." ], "type": "string" } @@ -174,7 +174,7 @@ "properties": { "accountActivity": { "$ref": "AccountActivity", - "description": "Details about the account activity for the user in the scope." + "description": "(Restricted Access) Details about the account activity for the user in the scope." }, "appLicensingVerdict": { "description": "Required. Details about the licensing status of the user for the app in the scope.", @@ -195,6 +195,53 @@ }, "type": "object" }, + "AppAccessRiskVerdict": { + "description": "Contains signals about others apps on the device which could be used to access or control the requesting app.", + "id": "AppAccessRiskVerdict", + "properties": { + "otherApps": { + "description": "Required. App access risk verdict related to apps that are not installed by Google Play, and are not preloaded on the system image by the device manufacturer.", + "enum": [ + "UNKNOWN", + "UNEVALUATED", + "NOT_INSTALLED", + "INSTALLED", + "CAPTURING", + "CONTROLLING" + ], + "enumDescriptions": [ + "Risk type is unknown.", + "App access risk was not evaluated because a requirement was missed, such as the device not being trusted enough.", + "No apps under this field are installed on the device. This is only valid for the other apps field.", + "One or more apps under this field are installed on the device.", + "Apps under this field are running that could be used to read or capture inputs and outputs of the requesting app, such as screen recording apps.", + "Apps under this field are running that could be used to control the device and inputs and outputs of the requesting app, such as remote controlling apps." + ], + "type": "string" + }, + "playOrSystemApps": { + "description": "Required. App access risk verdict related to apps that are not installed by the Google Play Store, and are not preloaded on the system image by the device manufacturer.", + "enum": [ + "UNKNOWN", + "UNEVALUATED", + "NOT_INSTALLED", + "INSTALLED", + "CAPTURING", + "CONTROLLING" + ], + "enumDescriptions": [ + "Risk type is unknown.", + "App access risk was not evaluated because a requirement was missed, such as the device not being trusted enough.", + "No apps under this field are installed on the device. This is only valid for the other apps field.", + "One or more apps under this field are installed on the device.", + "Apps under this field are running that could be used to read or capture inputs and outputs of the requesting app, such as screen recording apps.", + "Apps under this field are running that could be used to control the device and inputs and outputs of the requesting app, such as remote controlling apps." + ], + "type": "string" + } + }, + "type": "object" + }, "AppIntegrity": { "description": "Contains the application integrity information.", "id": "AppIntegrity", @@ -261,7 +308,7 @@ "id": "DeviceIntegrity", "properties": { "deviceRecognitionVerdict": { - "description": "Details about the integrity of the device the app is running on", + "description": "Details about the integrity of the device the app is running on.", "items": { "enum": [ "UNKNOWN", @@ -280,6 +327,70 @@ "type": "string" }, "type": "array" + }, + "recentDeviceActivity": { + "$ref": "RecentDeviceActivity", + "description": "Details about the device activity of the device the app is running on." + } + }, + "type": "object" + }, + "EnvironmentDetails": { + "description": "Contains information about the environment Play Integrity API runs in, e.g. Play Protect verdict.", + "id": "EnvironmentDetails", + "properties": { + "appAccessRiskVerdict": { + "$ref": "AppAccessRiskVerdict", + "description": "The evaluation of the App Access Risk verdicts." + }, + "playProtectVerdict": { + "description": "The evaluation of Play Protect verdict.", + "enum": [ + "PLAY_PROTECT_VERDICT_UNSPECIFIED", + "UNEVALUATED", + "NO_ISSUES", + "NO_DATA", + "MEDIUM_RISK", + "HIGH_RISK", + "POSSIBLE_RISK" + ], + "enumDescriptions": [ + "Play Protect verdict has not been set.", + "Play Protect state was not evaluated. Device may not be trusted.", + "Play Protect is on and no issues found.", + "Play Protect is on but no scan has been performed yet. The device or Play Store app may have been reset.", + "Play Protect is on and warnings found.", + "Play Protect is on and high severity issues found.", + "Play Protect is turned off. Turn on Play Protect." + ], + "type": "string" + } + }, + "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" @@ -335,6 +446,10 @@ "$ref": "DeviceIntegrity", "description": "Required. Details about the device integrity." }, + "environmentDetails": { + "$ref": "EnvironmentDetails", + "description": "Details of the environment Play Integrity API runs in." + }, "requestDetails": { "$ref": "RequestDetails", "description": "Required. Details about the integrity request." diff --git a/etc/api/policyanalyzer/v1/policyanalyzer-api.json b/etc/api/policyanalyzer/v1/policyanalyzer-api.json index f8594f792f..525b18a31e 100644 --- a/etc/api/policyanalyzer/v1/policyanalyzer-api.json +++ b/etc/api/policyanalyzer/v1/policyanalyzer-api.json @@ -163,7 +163,7 @@ } } }, - "revision": "20230122", + "revision": "20240303", "rootUrl": "https://policyanalyzer.googleapis.com/", "schemas": { "GoogleCloudPolicyanalyzerV1Activity": { diff --git a/etc/api/policyanalyzer/v1beta1/policyanalyzer-api.json b/etc/api/policyanalyzer/v1beta1/policyanalyzer-api.json index 9b2320910e..d5f7d3f337 100644 --- a/etc/api/policyanalyzer/v1beta1/policyanalyzer-api.json +++ b/etc/api/policyanalyzer/v1beta1/policyanalyzer-api.json @@ -163,7 +163,7 @@ } } }, - "revision": "20230122", + "revision": "20240303", "rootUrl": "https://policyanalyzer.googleapis.com/", "schemas": { "GoogleCloudPolicyanalyzerV1beta1Activity": { diff --git a/etc/api/policysimulator/v1/policysimulator-api.json b/etc/api/policysimulator/v1/policysimulator-api.json index b61760b540..1c1a834f65 100644 --- a/etc/api/policysimulator/v1/policysimulator-api.json +++ b/etc/api/policysimulator/v1/policysimulator-api.json @@ -109,6 +109,39 @@ "resources": { "locations": { "resources": { + "orgPolicyViolationsPreviews": { + "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/folders/{foldersId}/locations/{locationsId}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreviewsId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "policysimulator.folders.locations.orgPolicyViolationsPreviews.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^folders/[^/]+/locations/[^/]+/orgPolicyViolationsPreviews/[^/]+/operations/.*$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "replays": { "methods": { "create": { @@ -194,7 +227,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/folders/{foldersId}/locations/{locationsId}/replays/{replaysId}/operations", "httpMethod": "GET", "id": "policysimulator.folders.locations.replays.operations.list", @@ -310,7 +343,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/operations", "httpMethod": "GET", "id": "policysimulator.operations.list", @@ -356,6 +389,175 @@ "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": { + "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/organizations/{organizationsId}/locations/{locationsId}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreviewsId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "policysimulator.organizations.locations.orgPolicyViolationsPreviews.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/orgPolicyViolationsPreviews/[^/]+/operations/.*$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "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": { @@ -441,7 +643,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/replays/{replaysId}/operations", "httpMethod": "GET", "id": "policysimulator.organizations.locations.replays.operations.list", @@ -533,6 +735,39 @@ "resources": { "locations": { "resources": { + "orgPolicyViolationsPreviews": { + "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/projects/{projectsId}/locations/{locationsId}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreviewsId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "policysimulator.projects.locations.orgPolicyViolationsPreviews.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/orgPolicyViolationsPreviews/[^/]+/operations/.*$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "replays": { "methods": { "create": { @@ -618,7 +853,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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}/replays/{replaysId}/operations", "httpMethod": "GET", "id": "policysimulator.projects.locations.replays.operations.list", @@ -707,9 +942,201 @@ } } }, - "revision": "20230115", + "revision": "20240303", "rootUrl": "https://policysimulator.googleapis.com/", "schemas": { + "GoogleCloudOrgpolicyV2AlternatePolicySpec": { + "description": "Similar to PolicySpec but with an extra 'launch' field for launch reference. The PolicySpec here is specific for dry-run/darklaunch.", + "id": "GoogleCloudOrgpolicyV2AlternatePolicySpec", + "properties": { + "launch": { + "description": "Reference to the launch that will be used while audit logging and to control the launch. Should be set only in the alternate policy.", + "type": "string" + }, + "spec": { + "$ref": "GoogleCloudOrgpolicyV2PolicySpec", + "description": "Specify constraint for configurations of Google Cloud resources." + } + }, + "type": "object" + }, + "GoogleCloudOrgpolicyV2CustomConstraint": { + "description": "A custom constraint defined by customers which can *only* be applied to the given resource types and organization. By creating a custom constraint, customers can apply policies of this custom constraint. *Creating a custom constraint itself does NOT apply any policy enforcement*.", + "id": "GoogleCloudOrgpolicyV2CustomConstraint", + "properties": { + "actionType": { + "description": "Allow or deny type.", + "enum": [ + "ACTION_TYPE_UNSPECIFIED", + "ALLOW", + "DENY" + ], + "enumDescriptions": [ + "Unspecified. Results in an error.", + "Allowed action type.", + "Deny action type." + ], + "type": "string" + }, + "condition": { + "description": "Org policy condition/expression. For example: `resource.instanceName.matches(\"[production|test]_.*_(\\d)+\")` or, `resource.management.auto_upgrade == true` The max length of the condition is 1000 characters.", + "type": "string" + }, + "description": { + "description": "Detailed information about this custom policy constraint. The max length of the description is 2000 characters.", + "type": "string" + }, + "displayName": { + "description": "One line display name for the UI. The max length of the display_name is 200 characters.", + "type": "string" + }, + "methodTypes": { + "description": "All the operations being applied for this constraint.", + "items": { + "enum": [ + "METHOD_TYPE_UNSPECIFIED", + "CREATE", + "UPDATE", + "DELETE" + ], + "enumDescriptions": [ + "Unspecified. Results in an error.", + "Constraint applied when creating the resource.", + "Constraint applied when updating the resource.", + "Constraint applied when deleting the resource. Not supported yet." + ], + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Immutable. Name of the constraint. This is unique within the organization. Format of the name should be * `organizations/{organization_id}/customConstraints/{custom_constraint_id}` Example: `organizations/123/customConstraints/custom.createOnlyE2TypeVms` The max length is 70 characters and the minimum length is 1. Note that the prefix `organizations/{organization_id}/customConstraints/` is not counted.", + "type": "string" + }, + "resourceTypes": { + "description": "Immutable. The resource instance type on which this policy applies. Format will be of the form : `/` Example: * `compute.googleapis.com/Instance`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "updateTime": { + "description": "Output only. The last time this custom constraint was updated. This represents the last time that the `CreateCustomConstraint` or `UpdateCustomConstraint` RPC was called", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudOrgpolicyV2Policy": { + "description": "Defines an organization policy which is used to specify constraints for configurations of Google Cloud resources.", + "id": "GoogleCloudOrgpolicyV2Policy", + "properties": { + "alternate": { + "$ref": "GoogleCloudOrgpolicyV2AlternatePolicySpec", + "deprecated": true, + "description": "Deprecated." + }, + "dryRunSpec": { + "$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" + }, + "spec": { + "$ref": "GoogleCloudOrgpolicyV2PolicySpec", + "description": "Basic information about the Organization Policy." + } + }, + "type": "object" + }, + "GoogleCloudOrgpolicyV2PolicySpec": { + "description": "Defines a Google Cloud policy specification which is used to specify constraints for configurations of Google Cloud resources.", + "id": "GoogleCloudOrgpolicyV2PolicySpec", + "properties": { + "etag": { + "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": { + "description": "Determines the inheritance behavior for this policy. If `inherit_from_parent` is true, policy rules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this policy becomes the new root for evaluation. This field can be set only for policies which configure list constraints.", + "type": "boolean" + }, + "reset": { + "description": "Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific constraint at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.", + "type": "boolean" + }, + "rules": { + "description": "In policies for boolean constraints, the following requirements apply: - There must be one and only one policy rule where condition is unset. - Boolean policy rules with conditions must set `enforced` to the opposite of the policy rule without a condition. - During policy evaluation, policy rules with conditions that are true for a target resource take precedence.", + "items": { + "$ref": "GoogleCloudOrgpolicyV2PolicySpecPolicyRule" + }, + "type": "array" + }, + "updateTime": { + "description": "Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that policy.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudOrgpolicyV2PolicySpecPolicyRule": { + "description": "A rule used to express this policy.", + "id": "GoogleCloudOrgpolicyV2PolicySpecPolicyRule", + "properties": { + "allowAll": { + "description": "Setting this to true means that all values are allowed. This field can be set only in policies for list constraints.", + "type": "boolean" + }, + "condition": { + "$ref": "GoogleTypeExpr", + "description": "A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr' must include from 1 to 10 subexpressions, joined by the \"||\" or \"&&\" operators. Each subexpression must be of the form \"resource.matchTag('/tag_key_short_name, 'tag_value_short_name')\". or \"resource.matchTagId('tagKeys/key_id', 'tagValues/value_id')\". where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: \"resource.matchTag('123456789/environment, 'prod')\". or \"resource.matchTagId('tagKeys/123', 'tagValues/456')\"." + }, + "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" + }, + "enforce": { + "description": "If `true`, then the policy is enforced. If `false`, then any configuration is acceptable. This field can be set only in policies for boolean constraints.", + "type": "boolean" + }, + "values": { + "$ref": "GoogleCloudOrgpolicyV2PolicySpecPolicyRuleStringValues", + "description": "List of values to be used for this policy rule. This field can be set only in policies for list constraints." + } + }, + "type": "object" + }, + "GoogleCloudOrgpolicyV2PolicySpecPolicyRuleStringValues": { + "description": "A message that holds specific allowed and denied values. This message can define specific values and subtrees of the Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a \":\". Values prefixed with \"is:\" are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - `projects/` (for example, `projects/tokyo-rain-123`) - `folders/` (for example, `folders/1234`) - `organizations/` (for example, `organizations/1234`) The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used.", + "id": "GoogleCloudOrgpolicyV2PolicySpecPolicyRuleStringValues", + "properties": { + "allowedValues": { + "description": "List of values allowed at this resource.", + "items": { + "type": "string" + }, + "type": "array" + }, + "deniedValues": { + "description": "List of values denied at this resource.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudPolicysimulatorV1AccessStateDiff": { "description": "A summary and comparison of the principal's access under the current (baseline) policies and the proposed (simulated) policies for a single access tuple.", "id": "GoogleCloudPolicysimulatorV1AccessStateDiff", @@ -982,6 +1409,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", @@ -1000,6 +1463,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", @@ -1155,114 +1789,521 @@ }, "type": "object" }, - "GoogleCloudPolicysimulatorV1beta1Replay": { - "description": "A resource describing a `Replay`, or simulation.", - "id": "GoogleCloudPolicysimulatorV1beta1Replay", + "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": { - "config": { - "$ref": "GoogleCloudPolicysimulatorV1beta1ReplayConfig", - "description": "Required. The configuration used for the `Replay`." - }, - "name": { - "description": "Output only. The resource name of the `Replay`, which has the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`", - "readOnly": true, - "type": "string" - }, - "resultsSummary": { - "$ref": "GoogleCloudPolicysimulatorV1beta1ReplayResultsSummary", - "description": "Output only. Summary statistics about the replayed log entries.", - "readOnly": true - }, - "state": { - "description": "Output only. The current state of the `Replay`.", - "enum": [ - "STATE_UNSPECIFIED", - "PENDING", - "RUNNING", - "SUCCEEDED", - "FAILED" - ], - "enumDescriptions": [ - "The state is unspecified.", - "The `Replay` has not started yet.", - "The `Replay` is currently running.", - "The `Replay` has successfully completed.", - "The `Replay` has finished with an error." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudPolicysimulatorV1beta1ReplayConfig": { - "description": "The configuration used for a Replay.", - "id": "GoogleCloudPolicysimulatorV1beta1ReplayConfig", - "properties": { - "logSource": { - "description": "The logs to use as input for the Replay.", - "enum": [ - "LOG_SOURCE_UNSPECIFIED", - "RECENT_ACCESSES" - ], - "enumDescriptions": [ - "An unspecified log source. If the log source is unspecified, the Replay defaults to using `RECENT_ACCESSES`.", - "All access logs from the last 90 days. These logs may not include logs from the most recent 7 days." - ], - "type": "string" - }, - "policyOverlay": { - "additionalProperties": { - "$ref": "GoogleIamV1Policy" + "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" }, - "description": "A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay.", - "type": "object" + "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" }, - "GoogleCloudPolicysimulatorV1beta1ReplayOperationMetadata": { - "description": "Metadata about a Replay operation.", - "id": "GoogleCloudPolicysimulatorV1beta1ReplayOperationMetadata", + "GoogleCloudPolicysimulatorV1alphaCreateOrgPolicyViolationsPreviewOperationMetadata": { + "description": "CreateOrgPolicyViolationsPreviewOperationMetadata is metadata about an OrgPolicyViolationsPreview generations operation.", + "id": "GoogleCloudPolicysimulatorV1alphaCreateOrgPolicyViolationsPreviewOperationMetadata", "properties": { - "startTime": { + "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" }, - "GoogleCloudPolicysimulatorV1beta1ReplayResultsSummary": { - "description": "Summary statistics about the replayed log entries.", - "id": "GoogleCloudPolicysimulatorV1beta1ReplayResultsSummary", + "GoogleCloudPolicysimulatorV1alphaGenerateOrgPolicyViolationsPreviewOperationMetadata": { + "description": "GenerateOrgPolicyViolationsPreviewOperationMetadata is metadata about an OrgPolicyViolationsPreview generations operation.", + "id": "GoogleCloudPolicysimulatorV1alphaGenerateOrgPolicyViolationsPreviewOperationMetadata", "properties": { - "differenceCount": { - "description": "The number of replayed log entries with a difference between baseline and simulated policies.", + "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" }, - "errorCount": { - "description": "The number of log entries that could not be replayed.", + "resourcesPending": { + "description": "Number of resources still to scan.", "format": "int32", "type": "integer" }, - "logCount": { - "description": "The total number of log entries replayed.", + "resourcesScanned": { + "description": "Number of resources already scanned.", "format": "int32", "type": "integer" }, - "newestDate": { - "$ref": "GoogleTypeDate", - "description": "The date of the newest log entry replayed." + "startTime": { + "description": "Time when the request started processing, i.e. when the state was set to RUNNING.", + "format": "google-datetime", + "type": "string" }, - "oldestDate": { - "$ref": "GoogleTypeDate", - "description": "The date of the oldest log entry replayed." + "state": { + "description": "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." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlay": { + "description": "The proposed changes to OrgPolicy.", + "id": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlay", + "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": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayCustomConstraintOverlay" + }, + "type": "array" }, - "unchangedCount": { - "description": "The number of replayed log entries with no difference between baseline and simulated policies.", + "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": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayPolicyOverlay" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayCustomConstraintOverlay": { + "description": "A change to an OrgPolicy custom constraint.", + "id": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayCustomConstraintOverlay", + "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" + }, + "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayPolicyOverlay": { + "description": "A change to an OrgPolicy.", + "id": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayPolicyOverlay", + "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" + }, + "GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreview": { + "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": "GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreview", + "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": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlay", + "description": "Required. The proposed changes we are previewing violations for." + }, + "resourceCounts": { + "$ref": "GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreviewResourceCounts", + "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" + }, + "GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreviewResourceCounts": { + "description": "A summary of the state of all resources scanned for compliance with the changed OrgPolicy.", + "id": "GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreviewResourceCounts", + "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" + }, + "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" + }, + "GoogleCloudPolicysimulatorV1betaGenerateOrgPolicyViolationsPreviewOperationMetadata": { + "description": "GenerateOrgPolicyViolationsPreviewOperationMetadata is metadata about an OrgPolicyViolationsPreview generations operation.", + "id": "GoogleCloudPolicysimulatorV1betaGenerateOrgPolicyViolationsPreviewOperationMetadata", + "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": "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." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlay": { + "description": "The proposed changes to OrgPolicy.", + "id": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlay", + "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": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayCustomConstraintOverlay" + }, + "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": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayPolicyOverlay" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayCustomConstraintOverlay": { + "description": "A change to an OrgPolicy custom constraint.", + "id": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayCustomConstraintOverlay", + "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" + }, + "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayPolicyOverlay": { + "description": "A change to an OrgPolicy.", + "id": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayPolicyOverlay", + "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" + }, + "GoogleCloudPolicysimulatorV1betaOrgPolicyViolationsPreview": { + "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": "GoogleCloudPolicysimulatorV1betaOrgPolicyViolationsPreview", + "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": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlay", + "description": "Required. The proposed changes we are previewing violations for." + }, + "resourceCounts": { + "$ref": "GoogleCloudPolicysimulatorV1betaOrgPolicyViolationsPreviewResourceCounts", + "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" + }, + "GoogleCloudPolicysimulatorV1betaOrgPolicyViolationsPreviewResourceCounts": { + "description": "A summary of the state of all resources scanned for compliance with the changed OrgPolicy.", + "id": "GoogleCloudPolicysimulatorV1betaOrgPolicyViolationsPreviewResourceCounts", + "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" } }, @@ -1325,21 +2366,21 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, "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/).", + "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": { "auditConfigs": { @@ -1416,7 +2457,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/etc/api/policytroubleshooter/v1/policytroubleshooter-api.json b/etc/api/policytroubleshooter/v1/policytroubleshooter-api.json index 290d77a57f..0f250caf50 100644 --- a/etc/api/policytroubleshooter/v1/policytroubleshooter-api.json +++ b/etc/api/policytroubleshooter/v1/policytroubleshooter-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20230121", + "revision": "20240303", "rootUrl": "https://policytroubleshooter.googleapis.com/", "schemas": { "GoogleCloudPolicytroubleshooterV1AccessTuple": { @@ -434,21 +434,21 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, "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/).", + "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": { "auditConfigs": { diff --git a/etc/api/policytroubleshooter/v1beta/policytroubleshooter-api.json b/etc/api/policytroubleshooter/v1beta/policytroubleshooter-api.json index 25ec88f299..467f311822 100644 --- a/etc/api/policytroubleshooter/v1beta/policytroubleshooter-api.json +++ b/etc/api/policytroubleshooter/v1beta/policytroubleshooter-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20230121", + "revision": "20240303", "rootUrl": "https://policytroubleshooter.googleapis.com/", "schemas": { "GoogleCloudPolicytroubleshooterV1betaAccessTuple": { @@ -427,21 +427,21 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, "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/).", + "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": { "auditConfigs": { diff --git a/etc/api/privateca/v1/privateca-api.json b/etc/api/privateca/v1/privateca-api.json index ba6e298c08..406a79de75 100644 --- a/etc/api/privateca/v1/privateca-api.json +++ b/etc/api/privateca/v1/privateca-api.json @@ -201,7 +201,7 @@ "type": "string" }, "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. An ID to identify requests. Specify a unique 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" } @@ -226,6 +226,11 @@ "name" ], "parameters": { + "ignoreDependentResources": { + "description": "Optional. This field allows this pool to be deleted even if it's being depended on by another resource. However, doing so may result in unintended and unrecoverable effects on any dependent resource(s) since the pool will no longer be able to issue certificates.", + "location": "query", + "type": "boolean" + }, "name": { "description": "Required. The resource name for this CaPool in the format `projects/*/locations/*/caPools/*`.", "location": "path", @@ -234,7 +239,7 @@ "type": "string" }, "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. An ID to identify requests. Specify a unique 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" } @@ -248,7 +253,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", @@ -394,7 +399,7 @@ "type": "string" }, "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. An ID to identify requests. Specify a unique 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" }, @@ -526,7 +531,7 @@ "type": "string" }, "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. An ID to identify requests. Specify a unique 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" } @@ -556,6 +561,11 @@ "location": "query", "type": "boolean" }, + "ignoreDependentResources": { + "description": "Optional. This field allows this ca to be deleted even if it's being depended on by another resource. However, doing so may result in unintended and unrecoverable effects on any dependent resource(s) since the CA will no longer be able to issue certificates.", + "location": "query", + "type": "boolean" + }, "name": { "description": "Required. The resource name for this CertificateAuthority in the format `projects/*/locations/*/caPools/*/certificateAuthorities/*`.", "location": "path", @@ -564,7 +574,7 @@ "type": "string" }, "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. An ID to identify requests. Specify a unique 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" }, @@ -751,7 +761,7 @@ "type": "string" }, "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. An ID to identify requests. Specify a unique 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" }, @@ -924,7 +934,7 @@ "type": "string" }, "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. An ID to identify requests. Specify a unique 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" }, @@ -1144,7 +1154,7 @@ "type": "string" }, "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. An ID to identify requests. Specify a unique 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" }, @@ -1222,7 +1232,7 @@ "type": "string" }, "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. An ID to identify requests. Specify a unique 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" } @@ -1255,7 +1265,7 @@ "type": "string" }, "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. An ID to identify requests. Specify a unique 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" } @@ -1387,7 +1397,7 @@ "type": "string" }, "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. An ID to identify requests. Specify a unique 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" }, @@ -1548,7 +1558,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "privateca.projects.locations.operations.list", @@ -1595,7 +1605,7 @@ } } }, - "revision": "20230105", + "revision": "20240221", "rootUrl": "https://privateca.googleapis.com/", "schemas": { "AccessUrls": { @@ -1625,7 +1635,7 @@ "type": "string" }, "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. An ID to identify requests. Specify a unique 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).", "type": "string" }, "subordinateConfig": { @@ -1707,14 +1717,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1873,7 +1883,7 @@ "enumDescriptions": [ "Not specified.", "The default mode used in most cases. Indicates that the certificate's Subject and/or SubjectAltNames are specified in the certificate request. This mode requires the caller to have the `privateca.certificates.create` permission.", - "A mode reserved for special cases. Indicates that the certificate should have one or more SPIFFE SubjectAltNames set by the service based on the caller's identity. This mode will ignore any explicitly specified Subject and/or SubjectAltNames in the certificate request. This mode requires the caller to have the `privateca.certificates.createForSelf` permission." + "A mode reserved for special cases. Indicates that the certificate should have one SPIFFE SubjectAltNames set by the service based on the caller's identity. This mode will ignore any explicitly specified Subject and/or SubjectAltNames in the certificate request. This mode requires the caller to have the `privateca.certificates.createForSelf` permission." ], "type": "string" }, @@ -2033,6 +2043,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." @@ -2040,6 +2054,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", @@ -2105,7 +2130,8 @@ "EXTENDED_KEY_USAGE", "CA_OPTIONS", "POLICY_IDS", - "AIA_OCSP_SERVERS" + "AIA_OCSP_SERVERS", + "NAME_CONSTRAINTS" ], "enumDescriptions": [ "Not specified.", @@ -2113,7 +2139,8 @@ "Refers to a certificate's Extended Key Usage extension, as described in [RFC 5280 section 4.2.1.12](https://tools.ietf.org/html/rfc5280#section-4.2.1.12). This corresponds to the KeyUsage.extended_key_usage message.", "Refers to a certificate's Basic Constraints extension, as described in [RFC 5280 section 4.2.1.9](https://tools.ietf.org/html/rfc5280#section-4.2.1.9). This corresponds to the X509Parameters.ca_options field.", "Refers to a certificate's Policy object identifiers, as described in [RFC 5280 section 4.2.1.4](https://tools.ietf.org/html/rfc5280#section-4.2.1.4). This corresponds to the X509Parameters.policy_ids field.", - "Refers to OCSP servers in a certificate's Authority Information Access extension, as described in [RFC 5280 section 4.2.2.1](https://tools.ietf.org/html/rfc5280#section-4.2.2.1), This corresponds to the X509Parameters.aia_ocsp_servers field." + "Refers to OCSP servers in a certificate's Authority Information Access extension, as described in [RFC 5280 section 4.2.2.1](https://tools.ietf.org/html/rfc5280#section-4.2.2.1), This corresponds to the X509Parameters.aia_ocsp_servers field.", + "Refers to Name Constraints extension as described in [RFC 5280 section 4.2.1.10](https://tools.ietf.org/html/rfc5280#section-4.2.1.10)" ], "type": "string" }, @@ -2252,6 +2279,11 @@ "description": "Optional. Labels with user-defined metadata.", "type": "object" }, + "maximumLifetime": { + "description": "Optional. The maximum lifetime allowed for issued Certificates that use this template. If the issuing CaPool's IssuancePolicy specifies a maximum_lifetime the minimum of the two durations will be the maximum lifetime for issued Certificates. Note that if the issuing CertificateAuthority expires before a Certificate's requested maximum_lifetime, the effective lifetime will be explicitly truncated to match it.", + "format": "google-duration", + "type": "string" + }, "name": { "description": "Output only. The resource name for this CertificateTemplate in the format `projects/*/locations/*/certificateTemplates/*`.", "readOnly": true, @@ -2278,8 +2310,12 @@ "description": "Request message for CertificateAuthorityService.DisableCertificateAuthority.", "id": "DisableCertificateAuthorityRequest", "properties": { + "ignoreDependentResources": { + "description": "Optional. This field allows this CA to be disabled even if it's being depended on by another resource. However, doing so may result in unintended and unrecoverable effects on any dependent resource(s) since the CA will no longer be able to issue certificates.", + "type": "boolean" + }, "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. An ID to identify requests. Specify a unique 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).", "type": "string" } }, @@ -2319,7 +2355,7 @@ "id": "EnableCertificateAuthorityRequest", "properties": { "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. An ID to identify requests. Specify a unique 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).", "type": "string" } }, @@ -2384,7 +2420,7 @@ "id": "FetchCaCertsRequest", "properties": { "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. An ID to identify requests. Specify a unique 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).", "type": "string" } }, @@ -2395,7 +2431,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" }, @@ -2741,7 +2777,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -2774,6 +2810,73 @@ }, "type": "object" }, + "NameConstraints": { + "description": "Describes the X.509 name constraints extension, per https://tools.ietf.org/html/rfc5280#section-4.2.1.10", + "id": "NameConstraints", + "properties": { + "critical": { + "description": "Indicates whether or not the name constraints are marked critical.", + "type": "boolean" + }, + "excludedDnsNames": { + "description": "Contains excluded DNS names. Any DNS name that can be constructed by simply adding zero or more labels to the left-hand side of the name satisfies the name constraint. For example, `example.com`, `www.example.com`, `www.sub.example.com` would satisfy `example.com` while `example1.com` does not.", + "items": { + "type": "string" + }, + "type": "array" + }, + "excludedEmailAddresses": { + "description": "Contains the excluded email addresses. The value can be a particular email address, a hostname to indicate all email addresses on that host or a domain with a leading period (e.g. `.example.com`) to indicate all email addresses in that domain.", + "items": { + "type": "string" + }, + "type": "array" + }, + "excludedIpRanges": { + "description": "Contains the excluded IP ranges. For IPv4 addresses, the ranges are expressed using CIDR notation as specified in RFC 4632. For IPv6 addresses, the ranges are expressed in similar encoding as IPv4 addresses.", + "items": { + "type": "string" + }, + "type": "array" + }, + "excludedUris": { + "description": "Contains the excluded URIs that apply to the host part of the name. The value can be a hostname or a domain with a leading period (like `.example.com`)", + "items": { + "type": "string" + }, + "type": "array" + }, + "permittedDnsNames": { + "description": "Contains permitted DNS names. Any DNS name that can be constructed by simply adding zero or more labels to the left-hand side of the name satisfies the name constraint. For example, `example.com`, `www.example.com`, `www.sub.example.com` would satisfy `example.com` while `example1.com` does not.", + "items": { + "type": "string" + }, + "type": "array" + }, + "permittedEmailAddresses": { + "description": "Contains the permitted email addresses. The value can be a particular email address, a hostname to indicate all email addresses on that host or a domain with a leading period (e.g. `.example.com`) to indicate all email addresses in that domain.", + "items": { + "type": "string" + }, + "type": "array" + }, + "permittedIpRanges": { + "description": "Contains the permitted IP ranges. For IPv4 addresses, the ranges are expressed using CIDR notation as specified in RFC 4632. For IPv6 addresses, the ranges are expressed in similar encoding as IPv4 addresses.", + "items": { + "type": "string" + }, + "type": "array" + }, + "permittedUris": { + "description": "Contains the permitted URIs that apply to the host part of the name. The value can be a hostname or a domain with a leading period (like `.example.com`)", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ObjectId": { "description": "An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.", "id": "ObjectId", @@ -2818,7 +2921,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" } }, @@ -2869,7 +2972,7 @@ "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/).", + "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": { @@ -2927,6 +3030,20 @@ "description": "Options relating to the publication of each CertificateAuthority's CA certificate and CRLs and their inclusion as extensions in issued Certificates. The options set here apply to certificates issued by any CertificateAuthority in the CaPool.", "id": "PublishingOptions", "properties": { + "encodingFormat": { + "description": "Optional. Specifies the encoding format of each CertificateAuthority's CA certificate and CRLs. If this is omitted, CA certificates and CRLs will be published in PEM.", + "enum": [ + "ENCODING_FORMAT_UNSPECIFIED", + "PEM", + "DER" + ], + "enumDescriptions": [ + "Not specified. By default, PEM format will be used.", + "The CertificateAuthority's CA certificate and CRLs will be published in PEM format.", + "The CertificateAuthority's CA certificate and CRLs will be published in DER format." + ], + "type": "string" + }, "publishCaCert": { "description": "Optional. When true, publishes each CertificateAuthority's CA certificate and includes its URL in the \"Authority Information Access\" X.509 extension in all issued Certificates. If this is false, the CA certificate will not be published and the corresponding X.509 extension will not be written in issued certificates.", "type": "boolean" @@ -2943,6 +3060,7 @@ "id": "ReconciliationOperationMetadata", "properties": { "deleteResource": { + "deprecated": true, "description": "DEPRECATED. Use exclusive_action instead.", "type": "boolean" }, @@ -2953,9 +3071,14 @@ "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. For more information - go/ccfe-delete-on-upsert, go/ccfe-reconciliation-protocol-ug#apply_delete", + "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" @@ -3032,7 +3155,7 @@ "type": "string" }, "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. An ID to identify requests. Specify a unique 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).", "type": "string" } }, @@ -3226,7 +3349,7 @@ "properties": { "subject": { "$ref": "Subject", - "description": "Required. Contains distinguished name fields such as the common name, location and organization." + "description": "Optional. Contains distinguished name fields such as the common name, location and organization." }, "subjectAltName": { "$ref": "SubjectAltNames", @@ -3331,7 +3454,7 @@ "id": "UndeleteCertificateAuthorityRequest", "properties": { "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. An ID to identify requests. Specify a unique 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).", "type": "string" } }, @@ -3383,6 +3506,10 @@ "$ref": "KeyUsage", "description": "Optional. Indicates the intended use for keys that correspond to a certificate." }, + "nameConstraints": { + "$ref": "NameConstraints", + "description": "Optional. Describes the X.509 name constraints extension." + }, "policyIds": { "description": "Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.", "items": { diff --git a/etc/api/privateca/v1beta1/privateca-api.json b/etc/api/privateca/v1beta1/privateca-api.json index 64c78ef934..54ed9c3812 100644 --- a/etc/api/privateca/v1beta1/privateca-api.json +++ b/etc/api/privateca/v1beta1/privateca-api.json @@ -179,178 +179,6 @@ "resources": { "certificateAuthorities": { "methods": { - "activate": { - "description": "Activate a CertificateAuthority that is in state PENDING_ACTIVATION and is of type SUBORDINATE. After the parent Certificate Authority signs a certificate signing request from FetchCertificateAuthorityCsr, this method can complete the activation process.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}:activate", - "httpMethod": "POST", - "id": "privateca.projects.locations.certificateAuthorities.activate", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The resource name for this CertificateAuthority in the format `projects/*/locations/*/certificateAuthorities/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/certificateAuthorities/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+name}:activate", - "request": { - "$ref": "ActivateCertificateAuthorityRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "create": { - "description": "Create a new CertificateAuthority in a given Project and Location.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities", - "httpMethod": "POST", - "id": "privateca.projects.locations.certificateAuthorities.create", - "parameterOrder": [ - "parent" - ], - "parameters": { - "certificateAuthorityId": { - "description": "Required. It must be unique within a location and match the regular expression `[a-zA-Z0-9_-]{1,63}`", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The resource name of the location associated with the CertificateAuthorities, in the format `projects/*/locations/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - } - }, - "path": "v1beta1/{+parent}/certificateAuthorities", - "request": { - "$ref": "CertificateAuthority" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "disable": { - "description": "Disable a CertificateAuthority.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}:disable", - "httpMethod": "POST", - "id": "privateca.projects.locations.certificateAuthorities.disable", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The resource name for this CertificateAuthority in the format `projects/*/locations/*/certificateAuthorities/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/certificateAuthorities/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+name}:disable", - "request": { - "$ref": "DisableCertificateAuthorityRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "enable": { - "description": "Enable a CertificateAuthority.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}:enable", - "httpMethod": "POST", - "id": "privateca.projects.locations.certificateAuthorities.enable", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The resource name for this CertificateAuthority in the format `projects/*/locations/*/certificateAuthorities/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/certificateAuthorities/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+name}:enable", - "request": { - "$ref": "EnableCertificateAuthorityRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "fetch": { - "description": "Fetch a certificate signing request (CSR) from a CertificateAuthority that is in state PENDING_ACTIVATION and is of type SUBORDINATE. The CSR must then be signed by the desired parent Certificate Authority, which could be another CertificateAuthority resource, or could be an on-prem certificate authority. See also ActivateCertificateAuthority.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}:fetch", - "httpMethod": "GET", - "id": "privateca.projects.locations.certificateAuthorities.fetch", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The resource name for this CertificateAuthority in the format `projects/*/locations/*/certificateAuthorities/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/certificateAuthorities/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+name}:fetch", - "response": { - "$ref": "FetchCertificateAuthorityCsrResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "get": { - "description": "Returns a CertificateAuthority.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}", - "httpMethod": "GET", - "id": "privateca.projects.locations.certificateAuthorities.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the CertificateAuthority to get.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/certificateAuthorities/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+name}", - "response": { - "$ref": "CertificateAuthority" - }, - "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": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}:getIamPolicy", @@ -382,147 +210,6 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, - "list": { - "description": "Lists CertificateAuthorities.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities", - "httpMethod": "GET", - "id": "privateca.projects.locations.certificateAuthorities.list", - "parameterOrder": [ - "parent" - ], - "parameters": { - "filter": { - "description": "Optional. Only include resources that match the filter in the response.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Optional. Specify how the results should be sorted.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Optional. Limit on the number of CertificateAuthorities to include in the response. Further CertificateAuthorities can subsequently be obtained by including the ListCertificateAuthoritiesResponse.next_page_token in a subsequent request. If unspecified, the server will pick an appropriate default.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "Optional. Pagination token, returned earlier via ListCertificateAuthoritiesResponse.next_page_token.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The resource name of the location associated with the CertificateAuthorities, in the format `projects/*/locations/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+parent}/certificateAuthorities", - "response": { - "$ref": "ListCertificateAuthoritiesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "patch": { - "description": "Update a CertificateAuthority.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}", - "httpMethod": "PATCH", - "id": "privateca.projects.locations.certificateAuthorities.patch", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Output only. The resource name for this CertificateAuthority in the format `projects/*/locations/*/certificateAuthorities/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/certificateAuthorities/[^/]+$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "Required. A list of fields to be updated in this request.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1beta1/{+name}", - "request": { - "$ref": "CertificateAuthority" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "restore": { - "description": "Restore a CertificateAuthority that is scheduled for deletion.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}:restore", - "httpMethod": "POST", - "id": "privateca.projects.locations.certificateAuthorities.restore", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The resource name for this CertificateAuthority in the format `projects/*/locations/*/certificateAuthorities/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/certificateAuthorities/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+name}:restore", - "request": { - "$ref": "RestoreCertificateAuthorityRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "scheduleDelete": { - "description": "Schedule a CertificateAuthority for deletion.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}:scheduleDelete", - "httpMethod": "POST", - "id": "privateca.projects.locations.certificateAuthorities.scheduleDelete", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The resource name for this CertificateAuthority in the format `projects/*/locations/*/certificateAuthorities/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/certificateAuthorities/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+name}:scheduleDelete", - "request": { - "$ref": "ScheduleDeleteCertificateAuthorityRequest" - }, - "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": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}:setIamPolicy", @@ -583,31 +270,6 @@ "resources": { "certificateRevocationLists": { "methods": { - "get": { - "description": "Returns a CertificateRevocationList.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}/certificateRevocationLists/{certificateRevocationListsId}", - "httpMethod": "GET", - "id": "privateca.projects.locations.certificateAuthorities.certificateRevocationLists.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the CertificateRevocationList to get.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/certificateAuthorities/[^/]+/certificateRevocationLists/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+name}", - "response": { - "$ref": "CertificateRevocationList" - }, - "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": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}/certificateRevocationLists/{certificateRevocationListsId}:getIamPolicy", @@ -639,91 +301,6 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, - "list": { - "description": "Lists CertificateRevocationLists.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}/certificateRevocationLists", - "httpMethod": "GET", - "id": "privateca.projects.locations.certificateAuthorities.certificateRevocationLists.list", - "parameterOrder": [ - "parent" - ], - "parameters": { - "filter": { - "description": "Optional. Only include resources that match the filter in the response.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Optional. Specify how the results should be sorted.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Optional. Limit on the number of CertificateRevocationLists to include in the response. Further CertificateRevocationLists can subsequently be obtained by including the ListCertificateRevocationListsResponse.next_page_token in a subsequent request. If unspecified, the server will pick an appropriate default.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "Optional. Pagination token, returned earlier via ListCertificateRevocationListsResponse.next_page_token.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The resource name of the location associated with the CertificateRevocationLists, in the format `projects/*/locations/*/certificateauthorities/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/certificateAuthorities/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+parent}/certificateRevocationLists", - "response": { - "$ref": "ListCertificateRevocationListsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "patch": { - "description": "Update a CertificateRevocationList.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}/certificateRevocationLists/{certificateRevocationListsId}", - "httpMethod": "PATCH", - "id": "privateca.projects.locations.certificateAuthorities.certificateRevocationLists.patch", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Output only. The resource path for this CertificateRevocationList in the format `projects/*/locations/*/certificateAuthorities/*/ certificateRevocationLists/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/certificateAuthorities/[^/]+/certificateRevocationLists/[^/]+$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "Required. A list of fields to be updated in this request.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1beta1/{+name}", - "request": { - "$ref": "CertificateRevocationList" - }, - "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": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}/certificateRevocationLists/{certificateRevocationListsId}:setIamPolicy", @@ -781,186 +358,6 @@ ] } } - }, - "certificates": { - "methods": { - "create": { - "description": "Create a new Certificate in a given Project, Location from a particular CertificateAuthority.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}/certificates", - "httpMethod": "POST", - "id": "privateca.projects.locations.certificateAuthorities.certificates.create", - "parameterOrder": [ - "parent" - ], - "parameters": { - "certificateId": { - "description": "Optional. It must be unique within a location and match the regular expression `[a-zA-Z0-9_-]{1,63}`. This field is required when using a CertificateAuthority in the Enterprise CertificateAuthority.Tier, but is optional and its value is ignored otherwise.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The resource name of the location and CertificateAuthority associated with the Certificate, in the format `projects/*/locations/*/certificateAuthorities/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/certificateAuthorities/[^/]+$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - } - }, - "path": "v1beta1/{+parent}/certificates", - "request": { - "$ref": "Certificate" - }, - "response": { - "$ref": "Certificate" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "get": { - "description": "Returns a Certificate.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}/certificates/{certificatesId}", - "httpMethod": "GET", - "id": "privateca.projects.locations.certificateAuthorities.certificates.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the Certificate to get.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/certificateAuthorities/[^/]+/certificates/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+name}", - "response": { - "$ref": "Certificate" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "list": { - "description": "Lists Certificates.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}/certificates", - "httpMethod": "GET", - "id": "privateca.projects.locations.certificateAuthorities.certificates.list", - "parameterOrder": [ - "parent" - ], - "parameters": { - "filter": { - "description": "Optional. Only include resources that match the filter in the response. For details on supported filters and syntax, see [Certificates Filtering documentation](https://cloud.google.com/certificate-authority-service/docs/sorting-filtering-certificates#filtering_support).", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Optional. Specify how the results should be sorted. For details on supported fields and syntax, see [Certificates Sorting documentation](https://cloud.google.com/certificate-authority-service/docs/sorting-filtering-certificates#sorting_support).", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Optional. Limit on the number of Certificates to include in the response. Further Certificates can subsequently be obtained by including the ListCertificatesResponse.next_page_token in a subsequent request. If unspecified, the server will pick an appropriate default.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "Optional. Pagination token, returned earlier via ListCertificatesResponse.next_page_token.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The resource name of the location associated with the Certificates, in the format `projects/*/locations/*/certificateauthorities/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/certificateAuthorities/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+parent}/certificates", - "response": { - "$ref": "ListCertificatesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "patch": { - "description": "Update a Certificate. Currently, the only field you can update is the labels field.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}/certificates/{certificatesId}", - "httpMethod": "PATCH", - "id": "privateca.projects.locations.certificateAuthorities.certificates.patch", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Output only. The resource path for this Certificate in the format `projects/*/locations/*/certificateAuthorities/*/certificates/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/certificateAuthorities/[^/]+/certificates/[^/]+$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "Required. A list of fields to be updated in this request.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1beta1/{+name}", - "request": { - "$ref": "Certificate" - }, - "response": { - "$ref": "Certificate" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "revoke": { - "description": "Revoke a Certificate.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/certificateAuthorities/{certificateAuthoritiesId}/certificates/{certificatesId}:revoke", - "httpMethod": "POST", - "id": "privateca.projects.locations.certificateAuthorities.certificates.revoke", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The resource name for this Certificate in the format `projects/*/locations/*/certificateAuthorities/*/certificates/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/certificateAuthorities/[^/]+/certificates/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+name}:revoke", - "request": { - "$ref": "RevokeCertificateRequest" - }, - "response": { - "$ref": "Certificate" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - } } } }, @@ -1045,7 +442,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "privateca.projects.locations.operations.list", @@ -1089,31 +486,6 @@ }, "reusableConfigs": { "methods": { - "get": { - "description": "Returns a ReusableConfig.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/reusableConfigs/{reusableConfigsId}", - "httpMethod": "GET", - "id": "privateca.projects.locations.reusableConfigs.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the ReusableConfigs to get.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/reusableConfigs/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+name}", - "response": { - "$ref": "ReusableConfig" - }, - "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": "v1beta1/projects/{projectsId}/locations/{locationsId}/reusableConfigs/{reusableConfigsId}:getIamPolicy", @@ -1145,52 +517,6 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, - "list": { - "description": "Lists ReusableConfigs.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/reusableConfigs", - "httpMethod": "GET", - "id": "privateca.projects.locations.reusableConfigs.list", - "parameterOrder": [ - "parent" - ], - "parameters": { - "filter": { - "description": "Optional. Only include resources that match the filter in the response.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Optional. Specify how the results should be sorted.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Optional. Limit on the number of ReusableConfigs to include in the response. Further ReusableConfigs can subsequently be obtained by including the ListReusableConfigsResponse.next_page_token in a subsequent request. If unspecified, the server will pick an appropriate default.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "Optional. Pagination token, returned earlier via ListReusableConfigsResponse.next_page_token.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The resource name of the location associated with the ReusableConfigs, in the format `projects/*/locations/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+parent}/reusableConfigs", - "response": { - "$ref": "ListReusableConfigsResponse" - }, - "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": "v1beta1/projects/{projectsId}/locations/{locationsId}/reusableConfigs/{reusableConfigsId}:setIamPolicy", @@ -1254,99 +580,9 @@ } } }, - "revision": "20230105", + "revision": "20240221", "rootUrl": "https://privateca.googleapis.com/", "schemas": { - "AccessUrls": { - "description": "URLs where a CertificateAuthority will publish content.", - "id": "AccessUrls", - "properties": { - "caCertificateAccessUrl": { - "description": "The URL where this CertificateAuthority's CA certificate is published. This will only be set for CAs that have been activated.", - "type": "string" - }, - "crlAccessUrl": { - "description": "The URL where this CertificateAuthority's CRLs are published. This will only be set for CAs that have been activated.", - "type": "string" - } - }, - "type": "object" - }, - "ActivateCertificateAuthorityRequest": { - "description": "Request message for CertificateAuthorityService.ActivateCertificateAuthority.", - "id": "ActivateCertificateAuthorityRequest", - "properties": { - "pemCaCertificate": { - "description": "Required. The signed CA certificate issued from FetchCertificateAuthorityCsrResponse.pem_csr.", - "type": "string" - }, - "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", - "type": "string" - }, - "subordinateConfig": { - "$ref": "SubordinateConfig", - "description": "Required. Must include information about the issuer of 'pem_ca_certificate', and any further issuers until the self-signed CA." - } - }, - "type": "object" - }, - "AllowedConfigList": { - "id": "AllowedConfigList", - "properties": { - "allowedConfigValues": { - "description": "Required. All Certificates issued by the CertificateAuthority must match at least one listed ReusableConfigWrapper. If a ReusableConfigWrapper has an empty field, any value will be allowed for that field.", - "items": { - "$ref": "ReusableConfigWrapper" - }, - "type": "array" - } - }, - "type": "object" - }, - "AllowedSubjectAltNames": { - "description": "AllowedSubjectAltNames specifies the allowed values for SubjectAltNames by the CertificateAuthority when issuing Certificates.", - "id": "AllowedSubjectAltNames", - "properties": { - "allowCustomSans": { - "description": "Optional. Specifies if to allow custom X509Extension values.", - "type": "boolean" - }, - "allowGlobbingDnsWildcards": { - "description": "Optional. Specifies if glob patterns used for allowed_dns_names allow wildcard certificates. If this is set, certificate requests with wildcard domains will be permitted to match a glob pattern specified in allowed_dns_names. Otherwise, certificate requests with wildcard domains will be permitted only if allowed_dns_names contains a literal wildcard.", - "type": "boolean" - }, - "allowedDnsNames": { - "description": "Optional. Contains valid, fully-qualified host names. Glob patterns are also supported. To allow an explicit wildcard certificate, escape with backlash (i.e. `\\*`). E.g. for globbed entries: `*bar.com` will allow `foo.bar.com`, but not `*.bar.com`, unless the allow_globbing_dns_wildcards field is set. E.g. for wildcard entries: `\\*.bar.com` will allow `*.bar.com`, but not `foo.bar.com`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "allowedEmailAddresses": { - "description": "Optional. Contains valid RFC 2822 E-mail addresses. Glob patterns are also supported.", - "items": { - "type": "string" - }, - "type": "array" - }, - "allowedIps": { - "description": "Optional. Contains valid 32-bit IPv4 addresses and subnet ranges or RFC 4291 IPv6 addresses and subnet ranges. Subnet ranges are specified using the '/' notation (e.g. 10.0.0.0/8, 2001:700:300:1800::/64). Glob patterns are supported only for ip address entries (i.e. not for subnet ranges).", - "items": { - "type": "string" - }, - "type": "array" - }, - "allowedUris": { - "description": "Optional. Contains valid RFC 3986 URIs. Glob patterns are also supported. To match across path seperators (i.e. '/') use the double star glob pattern (i.e. '**').", - "items": { - "type": "string" - }, - "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", @@ -1404,457 +640,31 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, - "CaOptions": { - "description": "Describes values that are relevant in a CA certificate.", - "id": "CaOptions", - "properties": { - "isCa": { - "description": "Optional. Refers to the \"CA\" X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.", - "type": "boolean" - }, - "maxIssuerPathLength": { - "description": "Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, "CancelOperationRequest": { "description": "The request message for Operations.CancelOperation.", "id": "CancelOperationRequest", "properties": {}, "type": "object" }, - "Certificate": { - "description": "A Certificate corresponds to a signed X.509 certificate issued by a CertificateAuthority.", - "id": "Certificate", - "properties": { - "certificateDescription": { - "$ref": "CertificateDescription", - "description": "Output only. A structured description of the issued X.509 certificate.", - "readOnly": true - }, - "config": { - "$ref": "CertificateConfig", - "description": "Immutable. A description of the certificate and key that does not require X.509 or ASN.1." - }, - "createTime": { - "description": "Output only. The time at which this Certificate was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional. Labels with user-defined metadata.", - "type": "object" - }, - "lifetime": { - "description": "Required. Immutable. The desired lifetime of a certificate. Used to create the \"not_before_time\" and \"not_after_time\" fields inside an X.509 certificate. Note that the lifetime may be truncated if it would extend past the life of any certificate authority in the issuing chain.", - "format": "google-duration", - "type": "string" - }, - "name": { - "description": "Output only. The resource path for this Certificate in the format `projects/*/locations/*/certificateAuthorities/*/certificates/*`.", - "readOnly": true, - "type": "string" - }, - "pemCertificate": { - "description": "Output only. The pem-encoded, signed X.509 certificate.", - "readOnly": true, - "type": "string" - }, - "pemCertificateChain": { - "description": "Output only. The chain that may be used to verify the X.509 certificate. Expected to be in issuer-to-root order according to RFC 5246.", - "items": { - "type": "string" - }, - "readOnly": true, - "type": "array" - }, - "pemCsr": { - "description": "Immutable. A pem-encoded X.509 certificate signing request (CSR).", - "type": "string" - }, - "revocationDetails": { - "$ref": "RevocationDetails", - "description": "Output only. Details regarding the revocation of this Certificate. This Certificate is considered revoked if and only if this field is present.", - "readOnly": true - }, - "updateTime": { - "description": "Output only. The time at which this Certificate was updated.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "CertificateAuthority": { - "description": "A CertificateAuthority represents an individual Certificate Authority. A CertificateAuthority can be used to create Certificates.", - "id": "CertificateAuthority", - "properties": { - "accessUrls": { - "$ref": "AccessUrls", - "description": "Output only. URLs for accessing content published by this CA, such as the CA certificate and CRLs.", - "readOnly": true - }, - "caCertificateDescriptions": { - "description": "Output only. A structured description of this CertificateAuthority's CA certificate and its issuers. Ordered as self-to-root.", - "items": { - "$ref": "CertificateDescription" - }, - "readOnly": true, - "type": "array" - }, - "certificatePolicy": { - "$ref": "CertificateAuthorityPolicy", - "description": "Optional. The CertificateAuthorityPolicy to enforce when issuing Certificates from this CertificateAuthority." - }, - "config": { - "$ref": "CertificateConfig", - "description": "Required. Immutable. The config used to create a self-signed X.509 certificate or CSR." - }, - "createTime": { - "description": "Output only. The time at which this CertificateAuthority was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "deleteTime": { - "description": "Output only. The time at which this CertificateAuthority will be deleted, if scheduled for deletion.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "gcsBucket": { - "description": "Immutable. The name of a Cloud Storage bucket where this CertificateAuthority will publish content, such as the CA certificate and CRLs. This must be a bucket name, without any prefixes (such as `gs://`) or suffixes (such as `.googleapis.com`). For example, to use a bucket named `my-bucket`, you would simply specify `my-bucket`. If not specified, a managed bucket will be created.", - "type": "string" - }, - "issuingOptions": { - "$ref": "IssuingOptions", - "description": "Optional. The IssuingOptions to follow when issuing Certificates from this CertificateAuthority." - }, - "keySpec": { - "$ref": "KeyVersionSpec", - "description": "Required. Immutable. Used when issuing certificates for this CertificateAuthority. If this CertificateAuthority is a self-signed CertificateAuthority, this key is also used to sign the self-signed CA certificate. Otherwise, it is used to sign a CSR." - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional. Labels with user-defined metadata.", - "type": "object" - }, - "lifetime": { - "description": "Required. The desired lifetime of the CA certificate. Used to create the \"not_before_time\" and \"not_after_time\" fields inside an X.509 certificate.", - "format": "google-duration", - "type": "string" - }, - "name": { - "description": "Output only. The resource name for this CertificateAuthority in the format `projects/*/locations/*/certificateAuthorities/*`.", - "readOnly": true, - "type": "string" - }, - "pemCaCertificates": { - "description": "Output only. This CertificateAuthority's certificate chain, including the current CertificateAuthority's certificate. Ordered such that the root issuer is the final element (consistent with RFC 5246). For a self-signed CA, this will only list the current CertificateAuthority's certificate.", - "items": { - "type": "string" - }, - "readOnly": true, - "type": "array" - }, - "state": { - "description": "Output only. The State for this CertificateAuthority.", - "enum": [ - "STATE_UNSPECIFIED", - "ENABLED", - "DISABLED", - "PENDING_ACTIVATION", - "PENDING_DELETION" - ], - "enumDescriptions": [ - "Not specified.", - "Certificates can be issued from this CA. CRLs will be generated for this CA.", - "Certificates cannot be issued from this CA. CRLs will still be generated.", - "Certificates cannot be issued from this CA. CRLs will not be generated.", - "Certificates cannot be issued from this CA. CRLs will not be generated." - ], - "readOnly": true, - "type": "string" - }, - "subordinateConfig": { - "$ref": "SubordinateConfig", - "description": "Optional. If this is a subordinate CertificateAuthority, this field will be set with the subordinate configuration, which describes its issuers. This may be updated, but this CertificateAuthority must continue to validate." - }, - "tier": { - "description": "Required. Immutable. The Tier of this CertificateAuthority.", - "enum": [ - "TIER_UNSPECIFIED", - "ENTERPRISE", - "DEVOPS" - ], - "enumDescriptions": [ - "Not specified.", - "Enterprise tier.", - "DevOps tier." - ], - "type": "string" - }, - "type": { - "description": "Required. Immutable. The Type of this CertificateAuthority.", - "enum": [ - "TYPE_UNSPECIFIED", - "SELF_SIGNED", - "SUBORDINATE" - ], - "enumDescriptions": [ - "Not specified.", - "Self-signed CA.", - "Subordinate CA. Could be issued by a Private CA CertificateAuthority or an unmanaged CA." - ], - "type": "string" - }, - "updateTime": { - "description": "Output only. The time at which this CertificateAuthority was updated.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "CertificateAuthorityPolicy": { - "description": "The issuing policy for a CertificateAuthority. Certificates will not be successfully issued from this CertificateAuthority if they violate the policy.", - "id": "CertificateAuthorityPolicy", - "properties": { - "allowedCommonNames": { - "description": "Optional. If any value is specified here, then all Certificates issued by the CertificateAuthority must match at least one listed value. If no value is specified, all values will be allowed for this fied. Glob patterns are also supported.", - "items": { - "type": "string" - }, - "type": "array" - }, - "allowedConfigList": { - "$ref": "AllowedConfigList", - "description": "Optional. All Certificates issued by the CertificateAuthority must match at least one listed ReusableConfigWrapper in the list." - }, - "allowedIssuanceModes": { - "$ref": "IssuanceModes", - "description": "Optional. If specified, then only methods allowed in the IssuanceModes may be used to issue Certificates." - }, - "allowedLocationsAndOrganizations": { - "description": "Optional. If any Subject is specified here, then all Certificates issued by the CertificateAuthority must match at least one listed Subject. If a Subject has an empty field, any value will be allowed for that field.", - "items": { - "$ref": "Subject" - }, - "type": "array" - }, - "allowedSans": { - "$ref": "AllowedSubjectAltNames", - "description": "Optional. If a AllowedSubjectAltNames is specified here, then all Certificates issued by the CertificateAuthority must match AllowedSubjectAltNames. If no value or an empty value is specified, any value will be allowed for the SubjectAltNames field." - }, - "maximumLifetime": { - "description": "Optional. The maximum lifetime allowed by the CertificateAuthority. Note that if the any part if the issuing chain expires before a Certificate's requested maximum_lifetime, the effective lifetime will be explicitly truncated.", - "format": "google-duration", - "type": "string" - }, - "overwriteConfigValues": { - "$ref": "ReusableConfigWrapper", - "description": "Optional. All Certificates issued by the CertificateAuthority will use the provided configuration values, overwriting any requested configuration values." - } - }, - "type": "object" - }, - "CertificateConfig": { - "description": "A CertificateConfig describes an X.509 certificate or CSR that is to be created, as an alternative to using ASN.1.", - "id": "CertificateConfig", - "properties": { - "publicKey": { - "$ref": "PublicKey", - "description": "Optional. The public key that corresponds to this config. This is, for example, used when issuing Certificates, but not when creating a self-signed CertificateAuthority or CertificateAuthority CSR." - }, - "reusableConfig": { - "$ref": "ReusableConfigWrapper", - "description": "Required. Describes how some of the technical fields in a certificate should be populated." - }, - "subjectConfig": { - "$ref": "SubjectConfig", - "description": "Required. Specifies some of the values in a certificate that are related to the subject." - } - }, - "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", - "properties": { - "aiaIssuingCertificateUrls": { - "description": "Describes lists of issuer CA certificate URLs that appear in the \"Authority Information Access\" extension in the certificate.", - "items": { - "type": "string" - }, - "type": "array" - }, - "authorityKeyId": { - "$ref": "KeyId", - "description": "Identifies the subject_key_id of the parent certificate, per https://tools.ietf.org/html/rfc5280#section-4.2.1.1" - }, - "certFingerprint": { - "$ref": "CertificateFingerprint", - "description": "The hash of the x.509 certificate." - }, - "configValues": { - "$ref": "ReusableConfigValues", - "description": "Describes some of the technical fields in a certificate." - }, - "crlDistributionPoints": { - "description": "Describes a list of locations to obtain CRL information, i.e. the DistributionPoint.fullName described by https://tools.ietf.org/html/rfc5280#section-4.2.1.13", - "items": { - "type": "string" - }, - "type": "array" - }, - "publicKey": { - "$ref": "PublicKey", - "description": "The public key that corresponds to an issued certificate." - }, - "subjectDescription": { - "$ref": "SubjectDescription", - "description": "Describes some of the values in a certificate that are related to the subject and lifetime." - }, - "subjectKeyId": { - "$ref": "KeyId", - "description": "Provides a means of identifiying certificates that contain a particular public key, per https://tools.ietf.org/html/rfc5280#section-4.2.1.2." - } - }, - "type": "object" - }, - "CertificateFingerprint": { - "description": "A group of fingerprints for the x509 certificate.", - "id": "CertificateFingerprint", - "properties": { - "sha256Hash": { - "description": "The SHA 256 hash, encoded in hexadecimal, of the DER x509 certificate.", - "type": "string" - } - }, - "type": "object" - }, - "CertificateRevocationList": { - "description": "A CertificateRevocationList corresponds to a signed X.509 certificate Revocation List (CRL). A CRL contains the serial numbers of certificates that should no longer be trusted.", - "id": "CertificateRevocationList", - "properties": { - "accessUrl": { - "description": "Output only. The location where 'pem_crl' can be accessed.", - "readOnly": true, - "type": "string" - }, - "createTime": { - "description": "Output only. The time at which this CertificateRevocationList was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional. Labels with user-defined metadata.", - "type": "object" - }, - "name": { - "description": "Output only. The resource path for this CertificateRevocationList in the format `projects/*/locations/*/certificateAuthorities/*/ certificateRevocationLists/*`.", - "readOnly": true, - "type": "string" - }, - "pemCrl": { - "description": "Output only. The PEM-encoded X.509 CRL.", - "readOnly": true, - "type": "string" - }, - "revokedCertificates": { - "description": "Output only. The revoked serial numbers that appear in pem_crl.", - "items": { - "$ref": "RevokedCertificate" - }, - "readOnly": true, - "type": "array" - }, - "sequenceNumber": { - "description": "Output only. The CRL sequence number that appears in pem_crl.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "state": { - "description": "Output only. The State for this CertificateRevocationList.", - "enum": [ - "STATE_UNSPECIFIED", - "ACTIVE", - "SUPERSEDED" - ], - "enumDescriptions": [ - "Not specified.", - "The CertificateRevocationList is up to date.", - "The CertificateRevocationList is no longer current." - ], - "readOnly": true, - "type": "string" - }, - "updateTime": { - "description": "Output only. The time at which this CertificateRevocationList was updated.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "DisableCertificateAuthorityRequest": { - "description": "Request message for CertificateAuthorityService.DisableCertificateAuthority.", - "id": "DisableCertificateAuthorityRequest", - "properties": { - "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", - "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" }, - "EnableCertificateAuthorityRequest": { - "description": "Request message for CertificateAuthorityService.EnableCertificateAuthority.", - "id": "EnableCertificateAuthorityRequest", - "properties": { - "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", - "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", @@ -1878,267 +688,6 @@ }, "type": "object" }, - "ExtendedKeyUsageOptions": { - "description": "KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common OIDs that could be specified as an extended key usage value.", - "id": "ExtendedKeyUsageOptions", - "properties": { - "clientAuth": { - "description": "Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \"TLS WWW client authentication\", though regularly used for non-WWW TLS.", - "type": "boolean" - }, - "codeSigning": { - "description": "Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \"Signing of downloadable executable code client authentication\".", - "type": "boolean" - }, - "emailProtection": { - "description": "Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \"Email protection\".", - "type": "boolean" - }, - "ocspSigning": { - "description": "Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \"Signing OCSP responses\".", - "type": "boolean" - }, - "serverAuth": { - "description": "Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \"TLS WWW server authentication\", though regularly used for non-WWW TLS.", - "type": "boolean" - }, - "timeStamping": { - "description": "Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \"Binding the hash of an object to a time\".", - "type": "boolean" - } - }, - "type": "object" - }, - "FetchCertificateAuthorityCsrResponse": { - "description": "Response message for CertificateAuthorityService.FetchCertificateAuthorityCsr.", - "id": "FetchCertificateAuthorityCsrResponse", - "properties": { - "pemCsr": { - "description": "Output only. The PEM-encoded signed certificate signing request (CSR).", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "IssuanceModes": { - "description": "IssuanceModes specifies the allowed ways in which Certificates may be requested from this CertificateAuthority.", - "id": "IssuanceModes", - "properties": { - "allowConfigBasedIssuance": { - "description": "Required. When true, allows callers to create Certificates by specifying a CertificateConfig.", - "type": "boolean" - }, - "allowCsrBasedIssuance": { - "description": "Required. When true, allows callers to create Certificates by specifying a CSR.", - "type": "boolean" - } - }, - "type": "object" - }, - "IssuingOptions": { - "description": "Options that affect all certificates issued by a CertificateAuthority.", - "id": "IssuingOptions", - "properties": { - "includeCaCertUrl": { - "description": "Required. When true, includes a URL to the issuing CA certificate in the \"authority information access\" X.509 extension.", - "type": "boolean" - }, - "includeCrlAccessUrl": { - "description": "Required. When true, includes a URL to the CRL corresponding to certificates issued from a CertificateAuthority. CRLs will expire 7 days from their creation. However, we will rebuild daily. CRLs are also rebuilt shortly after a certificate is revoked.", - "type": "boolean" - } - }, - "type": "object" - }, - "KeyId": { - "description": "A KeyId identifies a specific public key, usually by hashing the public key.", - "id": "KeyId", - "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" - }, - "KeyUsage": { - "description": "A KeyUsage describes key usage values that may appear in an X.509 certificate.", - "id": "KeyUsage", - "properties": { - "baseKeyUsage": { - "$ref": "KeyUsageOptions", - "description": "Describes high-level ways in which a key may be used." - }, - "extendedKeyUsage": { - "$ref": "ExtendedKeyUsageOptions", - "description": "Detailed scenarios in which a key may be used." - }, - "unknownExtendedKeyUsages": { - "description": "Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.", - "items": { - "$ref": "ObjectId" - }, - "type": "array" - } - }, - "type": "object" - }, - "KeyUsageOptions": { - "description": "KeyUsage.KeyUsageOptions corresponds to the key usage values described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3.", - "id": "KeyUsageOptions", - "properties": { - "certSign": { - "description": "The key may be used to sign certificates.", - "type": "boolean" - }, - "contentCommitment": { - "description": "The key may be used for cryptographic commitments. Note that this may also be referred to as \"non-repudiation\".", - "type": "boolean" - }, - "crlSign": { - "description": "The key may be used sign certificate revocation lists.", - "type": "boolean" - }, - "dataEncipherment": { - "description": "The key may be used to encipher data.", - "type": "boolean" - }, - "decipherOnly": { - "description": "The key may be used to decipher only.", - "type": "boolean" - }, - "digitalSignature": { - "description": "The key may be used for digital signatures.", - "type": "boolean" - }, - "encipherOnly": { - "description": "The key may be used to encipher only.", - "type": "boolean" - }, - "keyAgreement": { - "description": "The key may be used in a key agreement protocol.", - "type": "boolean" - }, - "keyEncipherment": { - "description": "The key may be used to encipher other keys.", - "type": "boolean" - } - }, - "type": "object" - }, - "KeyVersionSpec": { - "description": "A Cloud KMS key configuration that a CertificateAuthority will use.", - "id": "KeyVersionSpec", - "properties": { - "algorithm": { - "description": "Required. The algorithm to use for creating a managed Cloud KMS key for a for a simplified experience. All managed keys will be have their ProtectionLevel as `HSM`.", - "enum": [ - "SIGN_HASH_ALGORITHM_UNSPECIFIED", - "RSA_PSS_2048_SHA256", - "RSA_PSS_3072_SHA256", - "RSA_PSS_4096_SHA256", - "RSA_PKCS1_2048_SHA256", - "RSA_PKCS1_3072_SHA256", - "RSA_PKCS1_4096_SHA256", - "EC_P256_SHA256", - "EC_P384_SHA384" - ], - "enumDescriptions": [ - "Not specified.", - "maps to CryptoKeyVersionAlgorithm.RSA_SIGN_PSS_2048_SHA256", - "maps to CryptoKeyVersionAlgorithm. RSA_SIGN_PSS_3072_SHA256", - "maps to CryptoKeyVersionAlgorithm.RSA_SIGN_PSS_4096_SHA256", - "maps to CryptoKeyVersionAlgorithm.RSA_SIGN_PKCS1_2048_SHA256", - "maps to CryptoKeyVersionAlgorithm.RSA_SIGN_PKCS1_3072_SHA256", - "maps to CryptoKeyVersionAlgorithm.RSA_SIGN_PKCS1_4096_SHA256", - "maps to CryptoKeyVersionAlgorithm.EC_SIGN_P256_SHA256", - "maps to CryptoKeyVersionAlgorithm.EC_SIGN_P384_SHA384" - ], - "type": "string" - }, - "cloudKmsKeyVersion": { - "description": "Required. The resource name for an existing Cloud KMS CryptoKeyVersion in the format `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`. This option enables full flexibility in the key's capabilities and properties.", - "type": "string" - } - }, - "type": "object" - }, - "ListCertificateAuthoritiesResponse": { - "description": "Response message for CertificateAuthorityService.ListCertificateAuthorities.", - "id": "ListCertificateAuthoritiesResponse", - "properties": { - "certificateAuthorities": { - "description": "The list of CertificateAuthorities.", - "items": { - "$ref": "CertificateAuthority" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve next page of results. Pass this value in ListCertificateAuthoritiesRequest.next_page_token to retrieve the next page of results.", - "type": "string" - }, - "unreachable": { - "description": "A list of locations (e.g. \"us-west1\") that could not be reached.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "ListCertificateRevocationListsResponse": { - "description": "Response message for CertificateAuthorityService.ListCertificateRevocationLists.", - "id": "ListCertificateRevocationListsResponse", - "properties": { - "certificateRevocationLists": { - "description": "The list of CertificateRevocationLists.", - "items": { - "$ref": "CertificateRevocationList" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve next page of results. Pass this value in ListCertificateRevocationListsRequest.next_page_token to retrieve the next page of results.", - "type": "string" - }, - "unreachable": { - "description": "A list of locations (e.g. \"us-west1\") that could not be reached.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "ListCertificatesResponse": { - "description": "Response message for CertificateAuthorityService.ListCertificates.", - "id": "ListCertificatesResponse", - "properties": { - "certificates": { - "description": "The list of Certificates.", - "items": { - "$ref": "Certificate" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve next page of results. Pass this value in ListCertificatesRequest.next_page_token to retrieve the next page of results.", - "type": "string" - }, - "unreachable": { - "description": "A list of locations (e.g. \"us-west1\") that could not be reached.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -2175,33 +724,8 @@ }, "type": "object" }, - "ListReusableConfigsResponse": { - "description": "Response message for CertificateAuthorityService.ListReusableConfigs.", - "id": "ListReusableConfigsResponse", - "properties": { - "nextPageToken": { - "description": "A token to retrieve next page of results. Pass this value in ListReusableConfigsRequest.next_page_token to retrieve the next page of results.", - "type": "string" - }, - "reusableConfigs": { - "description": "The list of ReusableConfigs.", - "items": { - "$ref": "ReusableConfig" - }, - "type": "array" - }, - "unreachable": { - "description": "A list of locations (e.g. \"us-west1\") that could not be reached.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -2234,21 +758,6 @@ }, "type": "object" }, - "ObjectId": { - "description": "An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.", - "id": "ObjectId", - "properties": { - "objectIdPath": { - "description": "Required. The parts of an OID path. The most significant parts of the path come first.", - "items": { - "format": "int32", - "type": "integer" - }, - "type": "array" - } - }, - "type": "object" - }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -2278,58 +787,14 @@ "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" } }, "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 successfully been cancelled 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/).", + "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": { @@ -2359,37 +824,12 @@ }, "type": "object" }, - "PublicKey": { - "description": "A PublicKey describes a public key.", - "id": "PublicKey", - "properties": { - "key": { - "description": "Required. A public key. When this is specified in a request, the padding and encoding can be any of the options described by the respective 'KeyType' value. When this is generated by the service, it will always be an RFC 5280 [SubjectPublicKeyInfo](https://tools.ietf.org/html/rfc5280#section-4.1) structure containing an algorithm identifier and a key.", - "format": "byte", - "type": "string" - }, - "type": { - "description": "Optional. The type of public key. If specified, it must match the public key used for the`key` field.", - "enum": [ - "KEY_TYPE_UNSPECIFIED", - "PEM_RSA_KEY", - "PEM_EC_KEY" - ], - "enumDescriptions": [ - "Default unspecified value.", - "A PEM-encoded PKCS#1/RFC 3447 RSAPublicKey structure, or an RFC 5280 [SubjectPublicKeyInfo](https://tools.ietf.org/html/rfc5280#section-4.1) structure containing the former.", - "An RFC 5280 [SubjectPublicKeyInfo](https://tools.ietf.org/html/rfc5280#section-4.1) structure containing a PEM-encoded compressed NIST P-256/secp256r1/prime256v1 or P-384 key." - ], - "type": "string" - } - }, - "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" }, @@ -2400,9 +840,14 @@ "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. For more information - go/ccfe-delete-on-upsert, go/ccfe-reconciliation-protocol-ug#apply_delete", + "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" @@ -2410,238 +855,6 @@ }, "type": "object" }, - "RestoreCertificateAuthorityRequest": { - "description": "Request message for CertificateAuthorityService.RestoreCertificateAuthority.", - "id": "RestoreCertificateAuthorityRequest", - "properties": { - "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", - "type": "string" - } - }, - "type": "object" - }, - "ReusableConfig": { - "description": "A ReusableConfig refers to a managed ReusableConfigValues. Those, in turn, are used to describe certain fields of an X.509 certificate, such as the key usage fields, fields specific to CA certificates, certificate policy extensions and custom extensions.", - "id": "ReusableConfig", - "properties": { - "createTime": { - "description": "Output only. The time at which this ReusableConfig was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "description": { - "description": "Optional. A human-readable description of scenarios these ReusableConfigValues may be compatible with.", - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional. Labels with user-defined metadata.", - "type": "object" - }, - "name": { - "description": "Output only. The resource path for this ReusableConfig in the format `projects/*/locations/*/reusableConfigs/*`.", - "readOnly": true, - "type": "string" - }, - "updateTime": { - "description": "Output only. The time at which this ReusableConfig was updated.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "values": { - "$ref": "ReusableConfigValues", - "description": "Required. The config values." - } - }, - "type": "object" - }, - "ReusableConfigValues": { - "description": "A ReusableConfigValues is used to describe certain fields of an X.509 certificate, such as the key usage fields, fields specific to CA certificates, certificate policy extensions and custom extensions.", - "id": "ReusableConfigValues", - "properties": { - "additionalExtensions": { - "description": "Optional. Describes custom X.509 extensions.", - "items": { - "$ref": "X509Extension" - }, - "type": "array" - }, - "aiaOcspServers": { - "description": "Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the \"Authority Information Access\" extension in the certificate.", - "items": { - "type": "string" - }, - "type": "array" - }, - "caOptions": { - "$ref": "CaOptions", - "description": "Optional. Describes options in this ReusableConfigValues that are relevant in a CA certificate." - }, - "keyUsage": { - "$ref": "KeyUsage", - "description": "Optional. Indicates the intended use for keys that correspond to a certificate." - }, - "policyIds": { - "description": "Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.", - "items": { - "$ref": "ObjectId" - }, - "type": "array" - } - }, - "type": "object" - }, - "ReusableConfigWrapper": { - "description": "A ReusableConfigWrapper describes values that may assist in creating an X.509 certificate, or a reference to a pre-defined set of values.", - "id": "ReusableConfigWrapper", - "properties": { - "reusableConfig": { - "description": "Required. A resource path to a ReusableConfig in the format `projects/*/locations/*/reusableConfigs/*`.", - "type": "string" - }, - "reusableConfigValues": { - "$ref": "ReusableConfigValues", - "description": "Required. A user-specified inline ReusableConfigValues." - } - }, - "type": "object" - }, - "RevocationDetails": { - "description": "Describes fields that are relavent to the revocation of a Certificate.", - "id": "RevocationDetails", - "properties": { - "revocationState": { - "description": "Indicates why a Certificate was revoked.", - "enum": [ - "REVOCATION_REASON_UNSPECIFIED", - "KEY_COMPROMISE", - "CERTIFICATE_AUTHORITY_COMPROMISE", - "AFFILIATION_CHANGED", - "SUPERSEDED", - "CESSATION_OF_OPERATION", - "CERTIFICATE_HOLD", - "PRIVILEGE_WITHDRAWN", - "ATTRIBUTE_AUTHORITY_COMPROMISE" - ], - "enumDescriptions": [ - "Default unspecified value. This value does indicate that a Certificate has been revoked, but that a reason has not been recorded.", - "Key material for this Certificate may have leaked.", - "The key material for a certificate authority in the issuing path may have leaked.", - "The subject or other attributes in this Certificate have changed.", - "This Certificate has been superseded.", - "This Certificate or entities in the issuing path have ceased to operate.", - "This Certificate should not be considered valid, it is expected that it may become valid in the future.", - "This Certificate no longer has permission to assert the listed attributes.", - "The authority which determines appropriate attributes for a Certificate may have been compromised." - ], - "type": "string" - }, - "revocationTime": { - "description": "The time at which this Certificate was revoked.", - "format": "google-datetime", - "type": "string" - } - }, - "type": "object" - }, - "RevokeCertificateRequest": { - "description": "Request message for CertificateAuthorityService.RevokeCertificate.", - "id": "RevokeCertificateRequest", - "properties": { - "reason": { - "description": "Required. The RevocationReason for revoking this certificate.", - "enum": [ - "REVOCATION_REASON_UNSPECIFIED", - "KEY_COMPROMISE", - "CERTIFICATE_AUTHORITY_COMPROMISE", - "AFFILIATION_CHANGED", - "SUPERSEDED", - "CESSATION_OF_OPERATION", - "CERTIFICATE_HOLD", - "PRIVILEGE_WITHDRAWN", - "ATTRIBUTE_AUTHORITY_COMPROMISE" - ], - "enumDescriptions": [ - "Default unspecified value. This value does indicate that a Certificate has been revoked, but that a reason has not been recorded.", - "Key material for this Certificate may have leaked.", - "The key material for a certificate authority in the issuing path may have leaked.", - "The subject or other attributes in this Certificate have changed.", - "This Certificate has been superseded.", - "This Certificate or entities in the issuing path have ceased to operate.", - "This Certificate should not be considered valid, it is expected that it may become valid in the future.", - "This Certificate no longer has permission to assert the listed attributes.", - "The authority which determines appropriate attributes for a Certificate may have been compromised." - ], - "type": "string" - }, - "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", - "type": "string" - } - }, - "type": "object" - }, - "RevokedCertificate": { - "description": "Describes a revoked Certificate.", - "id": "RevokedCertificate", - "properties": { - "certificate": { - "description": "The resource path for the Certificate in the format `projects/*/locations/*/certificateAuthorities/*/certificates/*`.", - "type": "string" - }, - "hexSerialNumber": { - "description": "The serial number of the Certificate.", - "type": "string" - }, - "revocationReason": { - "description": "The reason the Certificate was revoked.", - "enum": [ - "REVOCATION_REASON_UNSPECIFIED", - "KEY_COMPROMISE", - "CERTIFICATE_AUTHORITY_COMPROMISE", - "AFFILIATION_CHANGED", - "SUPERSEDED", - "CESSATION_OF_OPERATION", - "CERTIFICATE_HOLD", - "PRIVILEGE_WITHDRAWN", - "ATTRIBUTE_AUTHORITY_COMPROMISE" - ], - "enumDescriptions": [ - "Default unspecified value. This value does indicate that a Certificate has been revoked, but that a reason has not been recorded.", - "Key material for this Certificate may have leaked.", - "The key material for a certificate authority in the issuing path may have leaked.", - "The subject or other attributes in this Certificate have changed.", - "This Certificate has been superseded.", - "This Certificate or entities in the issuing path have ceased to operate.", - "This Certificate should not be considered valid, it is expected that it may become valid in the future.", - "This Certificate no longer has permission to assert the listed attributes.", - "The authority which determines appropriate attributes for a Certificate may have been compromised." - ], - "type": "string" - } - }, - "type": "object" - }, - "ScheduleDeleteCertificateAuthorityRequest": { - "description": "Request message for CertificateAuthorityService.ScheduleDeleteCertificateAuthority.", - "id": "ScheduleDeleteCertificateAuthorityRequest", - "properties": { - "ignoreActiveCertificates": { - "description": "Optional. This field allows the CA to be scheduled for deletion even if the CA has active certs. Active certs include both unrevoked and unexpired certs.", - "type": "boolean" - }, - "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", - "type": "string" - } - }, - "type": "object" - }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", @@ -2685,169 +898,6 @@ }, "type": "object" }, - "Subject": { - "description": "Subject describes parts of a distinguished name that, in turn, describes the subject of the certificate.", - "id": "Subject", - "properties": { - "countryCode": { - "description": "The country code of the subject.", - "type": "string" - }, - "locality": { - "description": "The locality or city of the subject.", - "type": "string" - }, - "organization": { - "description": "The organization of the subject.", - "type": "string" - }, - "organizationalUnit": { - "description": "The organizational_unit of the subject.", - "type": "string" - }, - "postalCode": { - "description": "The postal code of the subject.", - "type": "string" - }, - "province": { - "description": "The province, territory, or regional state of the subject.", - "type": "string" - }, - "streetAddress": { - "description": "The street address of the subject.", - "type": "string" - } - }, - "type": "object" - }, - "SubjectAltNames": { - "description": "SubjectAltNames corresponds to a more modern way of listing what the asserted identity is in a certificate (i.e., compared to the \"common name\" in the distinguished name).", - "id": "SubjectAltNames", - "properties": { - "customSans": { - "description": "Contains additional subject alternative name values.", - "items": { - "$ref": "X509Extension" - }, - "type": "array" - }, - "dnsNames": { - "description": "Contains only valid, fully-qualified host names.", - "items": { - "type": "string" - }, - "type": "array" - }, - "emailAddresses": { - "description": "Contains only valid RFC 2822 E-mail addresses.", - "items": { - "type": "string" - }, - "type": "array" - }, - "ipAddresses": { - "description": "Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.", - "items": { - "type": "string" - }, - "type": "array" - }, - "uris": { - "description": "Contains only valid RFC 3986 URIs.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "SubjectConfig": { - "description": "These values are used to create the distinguished name and subject alternative name fields in an X.509 certificate.", - "id": "SubjectConfig", - "properties": { - "commonName": { - "description": "Optional. The \"common name\" of the distinguished name.", - "type": "string" - }, - "subject": { - "$ref": "Subject", - "description": "Required. Contains distinguished name fields such as the location and organization." - }, - "subjectAltName": { - "$ref": "SubjectAltNames", - "description": "Optional. The subject alternative name fields." - } - }, - "type": "object" - }, - "SubjectDescription": { - "description": "These values describe fields in an issued X.509 certificate such as the distinguished name, subject alternative names, serial number, and lifetime.", - "id": "SubjectDescription", - "properties": { - "commonName": { - "description": "The \"common name\" of the distinguished name.", - "type": "string" - }, - "hexSerialNumber": { - "description": "The serial number encoded in lowercase hexadecimal.", - "type": "string" - }, - "lifetime": { - "description": "For convenience, the actual lifetime of an issued certificate. Corresponds to 'not_after_time' - 'not_before_time'.", - "format": "google-duration", - "type": "string" - }, - "notAfterTime": { - "description": "The time at which the certificate expires.", - "format": "google-datetime", - "type": "string" - }, - "notBeforeTime": { - "description": "The time at which the certificate becomes valid.", - "format": "google-datetime", - "type": "string" - }, - "subject": { - "$ref": "Subject", - "description": "Contains distinguished name fields such as the location and organization." - }, - "subjectAltName": { - "$ref": "SubjectAltNames", - "description": "The subject alternative name fields." - } - }, - "type": "object" - }, - "SubordinateConfig": { - "description": "Describes a subordinate CA's issuers. This is either a resource path to a known issuing CertificateAuthority, or a PEM issuer certificate chain.", - "id": "SubordinateConfig", - "properties": { - "certificateAuthority": { - "description": "Required. This can refer to a CertificateAuthority that was used to create a subordinate CertificateAuthority. This field is used for information and usability purposes only. The resource name is in the format `projects/*/locations/*/certificateAuthorities/*`.", - "type": "string" - }, - "pemIssuerChain": { - "$ref": "SubordinateConfigChain", - "description": "Required. Contains the PEM certificate chain for the issuers of this CertificateAuthority, but not pem certificate for this CA itself." - } - }, - "type": "object" - }, - "SubordinateConfigChain": { - "description": "This message describes a subordinate CA's issuer certificate chain. This wrapper exists for compatibility reasons.", - "id": "SubordinateConfigChain", - "properties": { - "pemCertificates": { - "description": "Required. Expected to be in leaf-to-root order according to RFC 5246.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", @@ -2875,26 +925,6 @@ } }, "type": "object" - }, - "X509Extension": { - "description": "An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.", - "id": "X509Extension", - "properties": { - "critical": { - "description": "Required. Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).", - "type": "boolean" - }, - "objectId": { - "$ref": "ObjectId", - "description": "Required. The OID for this X.509 extension." - }, - "value": { - "description": "Required. The value of this X.509 extension.", - "format": "byte", - "type": "string" - } - }, - "type": "object" } }, "servicePath": "", diff --git a/etc/api/prod_tt_sasportal/v1alpha1/prod_tt_sasportal-api.json b/etc/api/prod_tt_sasportal/v1alpha1/prod_tt_sasportal-api.json index 0b28d3b0c2..c933c8d824 100644 --- a/etc/api/prod_tt_sasportal/v1alpha1/prod_tt_sasportal-api.json +++ b/etc/api/prod_tt_sasportal/v1alpha1/prod_tt_sasportal-api.json @@ -2,6 +2,9 @@ "auth": { "oauth2": { "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." + }, "https://www.googleapis.com/auth/sasportal": { "description": "Read, create, update, and delete your SAS Portal data." } @@ -129,6 +132,7 @@ "$ref": "SasPortalCustomer" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -156,6 +160,58 @@ "$ref": "SasPortalListCustomersResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "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", + "httpMethod": "POST", + "id": "prod_tt_sasportal.customers.migrateOrganization", + "parameterOrder": [], + "parameters": {}, + "path": "v1alpha1/customers:migrateOrganization", + "request": { + "$ref": "SasPortalMigrateOrganizationRequest" + }, + "response": { + "$ref": "SasPortalOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -190,6 +246,45 @@ "$ref": "SasPortalCustomer" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sasportal" + ] + }, + "provisionDeployment": { + "description": "Creates a new SAS deployment through the GCP workflow. Creates a SAS organization if an organization match is not found.", + "flatPath": "v1alpha1/customers:provisionDeployment", + "httpMethod": "POST", + "id": "prod_tt_sasportal.customers.provisionDeployment", + "parameterOrder": [], + "parameters": {}, + "path": "v1alpha1/customers:provisionDeployment", + "request": { + "$ref": "SasPortalProvisionDeploymentRequest" + }, + "response": { + "$ref": "SasPortalProvisionDeploymentResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sasportal" + ] + }, + "setupSasAnalytics": { + "description": "Setups the a GCP Project to receive SAS Analytics messages via GCP Pub/Sub with a subscription to BigQuery. All the Pub/Sub topics and BigQuery tables are created automatically as part of this service.", + "flatPath": "v1alpha1/customers:setupSasAnalytics", + "httpMethod": "POST", + "id": "prod_tt_sasportal.customers.setupSasAnalytics", + "parameterOrder": [], + "parameters": {}, + "path": "v1alpha1/customers:setupSasAnalytics", + "request": { + "$ref": "SasPortalSetupSasAnalyticsRequest" + }, + "response": { + "$ref": "SasPortalOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -222,6 +317,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -247,6 +343,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -272,6 +369,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -313,6 +411,7 @@ "$ref": "SasPortalListDeploymentsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -341,6 +440,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -375,6 +475,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -407,6 +508,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -435,6 +537,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -476,6 +579,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -510,6 +614,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -538,6 +643,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -563,6 +669,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -588,6 +695,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -629,6 +737,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -657,6 +766,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -691,6 +801,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -719,6 +830,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -747,6 +859,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -779,6 +892,7 @@ "$ref": "SasPortalNode" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -804,6 +918,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -829,6 +944,7 @@ "$ref": "SasPortalNode" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -870,6 +986,7 @@ "$ref": "SasPortalListNodesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -898,6 +1015,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -932,6 +1050,7 @@ "$ref": "SasPortalNode" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -964,6 +1083,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1005,6 +1125,7 @@ "$ref": "SasPortalListDeploymentsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -1037,6 +1158,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1065,6 +1187,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1106,6 +1229,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -1138,6 +1262,7 @@ "$ref": "SasPortalNode" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1179,6 +1304,7 @@ "$ref": "SasPortalListNodesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -1212,6 +1338,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -1241,6 +1368,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1266,6 +1394,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1294,6 +1423,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1328,6 +1458,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1356,6 +1487,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1384,6 +1516,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -1408,6 +1541,7 @@ "$ref": "SasPortalGenerateSecretResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1426,6 +1560,7 @@ "$ref": "SasPortalValidateInstallerResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -1455,6 +1590,7 @@ "$ref": "SasPortalNode" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -1484,6 +1620,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1509,6 +1646,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1550,6 +1688,7 @@ "$ref": "SasPortalListDeploymentsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1578,6 +1717,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1612,6 +1752,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -1644,6 +1785,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1672,6 +1814,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1713,6 +1856,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -1747,6 +1891,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1775,6 +1920,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1800,6 +1946,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1825,6 +1972,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1866,6 +2014,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1894,6 +2043,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1928,6 +2078,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1956,6 +2107,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1984,6 +2136,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -2016,6 +2169,7 @@ "$ref": "SasPortalNode" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2041,6 +2195,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2066,6 +2221,7 @@ "$ref": "SasPortalNode" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2107,6 +2263,7 @@ "$ref": "SasPortalListNodesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2135,6 +2292,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2169,6 +2327,7 @@ "$ref": "SasPortalNode" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -2201,6 +2360,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2242,6 +2402,7 @@ "$ref": "SasPortalListDeploymentsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -2274,6 +2435,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2302,6 +2464,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2343,6 +2506,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -2375,6 +2539,7 @@ "$ref": "SasPortalNode" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2416,6 +2581,7 @@ "$ref": "SasPortalListNodesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -2442,6 +2608,7 @@ "$ref": "SasPortalPolicy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2460,6 +2627,7 @@ "$ref": "SasPortalPolicy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2478,13 +2646,14 @@ "$ref": "SasPortalTestPermissionsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } } } }, - "revision": "20230121", + "revision": "20240226", "rootUrl": "https://prod-tt-sasportal.googleapis.com/", "schemas": { "SasPortalAssignment": { @@ -2590,6 +2759,21 @@ }, "type": "object" }, + "SasPortalDeploymentAssociation": { + "description": "Association between a gcp project and a SAS user id.", + "id": "SasPortalDeploymentAssociation", + "properties": { + "gcpProjectId": { + "description": "GCP project id of the associated project.", + "type": "string" + }, + "userId": { + "description": "User id of the deployment.", + "type": "string" + } + }, + "type": "object" + }, "SasPortalDevice": { "id": "SasPortalDevice", "properties": { @@ -2598,6 +2782,7 @@ "description": "Output only. Current configuration of the device as registered to the SAS." }, "currentChannels": { + "deprecated": true, "description": "Output only. Current channels with scores.", "items": { "$ref": "SasPortalChannelWithScore" @@ -2614,7 +2799,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": { @@ -2875,6 +3060,7 @@ "type": "string" }, "nrqzValidated": { + "deprecated": true, "description": "Output only. Set to `true` if a CPI has validated that they have coordinated with the National Quiet Zone office.", "readOnly": true, "type": "boolean" @@ -2952,6 +3138,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", @@ -3004,11 +3205,6 @@ "format": "int32", "type": "integer" }, - "antennaGainNewField": { - "description": "As above, but as a DoubleValue.", - "format": "double", - "type": "number" - }, "antennaModel": { "description": "If an external antenna is used, the antenna model is optionally provided in this field. The string has a maximum length of 128 octets.", "type": "string" @@ -3022,11 +3218,6 @@ "format": "int32", "type": "integer" }, - "eirpCapabilityNewField": { - "description": "As above, but as a DoubleValue.", - "format": "double", - "type": "number" - }, "height": { "description": "Device antenna height in meters. When the `heightType` parameter value is \"AGL\", the antenna height should be given relative to ground level. When the `heightType` parameter value is \"AMSL\", it is given with respect to WGS84 datum.", "format": "double", @@ -3127,6 +3318,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", @@ -3145,6 +3364,58 @@ }, "type": "object" }, + "SasPortalMigrateOrganizationMetadata": { + "description": "Long-running operation metadata message returned by the MigrateOrganization.", + "id": "SasPortalMigrateOrganizationMetadata", + "properties": { + "operationState": { + "description": "Output only. Current operation state", + "enum": [ + "OPERATION_STATE_UNSPECIFIED", + "OPERATION_STATE_PENDING", + "OPERATION_STATE_RUNNING", + "OPERATION_STATE_SUCCEEDED", + "OPERATION_STATE_FAILED" + ], + "enumDescriptions": [ + "Unspecified.", + "Pending (Not started).", + "In-progress.", + "Done successfully.", + "Done with errors." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "SasPortalMigrateOrganizationRequest": { + "description": "Request for [MigrateOrganization]. [spectrum.sas.portal.v1alpha1.Provisioning.MigrateOrganization]. GCP Project, Organization Info, and caller's GAIA ID should be retrieved from the RPC handler, and used to check authorization on SAS Portal organization and to create GCP Projects.", + "id": "SasPortalMigrateOrganizationRequest", + "properties": { + "organizationId": { + "description": "Required. Id of the SAS organization to be migrated.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "SasPortalMigrateOrganizationResponse": { + "description": "Response for [MigrateOrganization]. [spectrum.sas.portal.v1alpha1.Provisioning.MigrateOrganization].", + "id": "SasPortalMigrateOrganizationResponse", + "properties": { + "deploymentAssociation": { + "description": "Optional. A list of deployment association that were created for the migration, or current associations if they already exist.", + "items": { + "$ref": "SasPortalDeploymentAssociation" + }, + "type": "array" + } + }, + "type": "object" + }, "SasPortalMoveDeploymentRequest": { "description": "Request for MoveDeployment.", "id": "SasPortalMoveDeploymentRequest", @@ -3268,12 +3539,28 @@ "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" } }, "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", @@ -3293,6 +3580,37 @@ }, "type": "object" }, + "SasPortalProvisionDeploymentRequest": { + "description": "Request for [ProvisionDeployment]. [spectrum.sas.portal.v1alpha1.Provisioning.ProvisionDeployment]. GCP Project, Organization Info, and caller\u2019s GAIA ID should be retrieved from the RPC handler, and used as inputs to create a new SAS organization (if not exists) and a new SAS deployment.", + "id": "SasPortalProvisionDeploymentRequest", + "properties": { + "newDeploymentDisplayName": { + "description": "Optional. If this field is set, and a new SAS Portal Deployment needs to be created, its display name will be set to the value of this field.", + "type": "string" + }, + "newOrganizationDisplayName": { + "description": "Optional. If this field is set, and a new SAS Portal Organization needs to be created, its display name will be set to the value of this field.", + "type": "string" + }, + "organizationId": { + "description": "Optional. If this field is set then a new deployment will be created under the organization specified by this id.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "SasPortalProvisionDeploymentResponse": { + "description": "Response for [ProvisionDeployment]. [spectrum.sas.portal.v1alpha1.Provisioning.ProvisionDeployment].", + "id": "SasPortalProvisionDeploymentResponse", + "properties": { + "errorMessage": { + "description": "Optional. Optional error message if the provisioning request is not successful.", + "type": "string" + } + }, + "type": "object" + }, "SasPortalSetPolicyRequest": { "description": "Request message for `SetPolicy` method.", "id": "SasPortalSetPolicyRequest", @@ -3312,6 +3630,29 @@ }, "type": "object" }, + "SasPortalSetupSasAnalyticsMetadata": { + "description": "Metadata returned by the long running operation for the SetupSasAnalytics rpc.", + "id": "SasPortalSetupSasAnalyticsMetadata", + "properties": {}, + "type": "object" + }, + "SasPortalSetupSasAnalyticsRequest": { + "description": "Request for the SetupSasAnalytics rpc.", + "id": "SasPortalSetupSasAnalyticsRequest", + "properties": { + "userId": { + "description": "Optional. User id to setup analytics for, if not provided the user id associated with the project is used. optional", + "type": "string" + } + }, + "type": "object" + }, + "SasPortalSetupSasAnalyticsResponse": { + "description": "Response returned by the long running operation for the SetupSasAnalytics rpc.", + "id": "SasPortalSetupSasAnalyticsResponse", + "properties": {}, + "type": "object" + }, "SasPortalSignDeviceRequest": { "description": "Request for SignDevice.", "id": "SasPortalSignDeviceRequest", diff --git a/etc/api/pubsub/v1/pubsub-api.json b/etc/api/pubsub/v1/pubsub-api.json index 11298ed871..9c69e7d2e7 100644 --- a/etc/api/pubsub/v1/pubsub-api.json +++ b/etc/api/pubsub/v1/pubsub-api.json @@ -18,6 +18,23 @@ "description": "Provides reliable, many-to-many, asynchronous messaging between applications. ", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/pubsub/docs", + "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://pubsub.me-central2.rep.googleapis.com/", + "location": "me-central2" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://pubsub.europe-west3.rep.googleapis.com/", + "location": "europe-west3" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://pubsub.europe-west9.rep.googleapis.com/", + "location": "europe-west9" + } + ], "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" @@ -157,7 +174,7 @@ "type": "string" }, "schemaId": { - "description": "The ID to use for the schema, which will become the final component of the schema's resource name. See https://cloud.google.com/pubsub/docs/admin#resource_names for resource name constraints.", + "description": "The ID to use for the schema, which will become the final component of the schema's resource name. See https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names for resource name constraints.", "location": "query", "type": "string" } @@ -210,14 +227,15 @@ ], "parameters": { "name": { - "description": "Required. The name of the schema revision to be deleted, with a revision ID explicitly included. Example: projects/123/schemas/my-schema@c7cfa2a8", + "description": "Required. The name of the schema revision to be deleted, with a revision ID explicitly included. Example: `projects/123/schemas/my-schema@c7cfa2a8`", "location": "path", "pattern": "^projects/[^/]+/schemas/[^/]+$", "required": true, "type": "string" }, "revisionId": { - "description": "Required. The revision ID to roll back to. It must be a revision of the same schema. Example: c7cfa2a8", + "deprecated": true, + "description": "Optional. This field is deprecated and should not be used for specifying the revision ID. The revision ID should be specified via the `name` parameter.", "location": "query", "type": "string" } @@ -558,7 +576,7 @@ "snapshots": { "methods": { "create": { - "description": "Creates a snapshot from the requested subscription. 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. If the snapshot already exists, returns `ALREADY_EXISTS`. If the requested subscription doesn't exist, returns `NOT_FOUND`. If the backlog in the subscription is too old -- and the resulting snapshot would expire in less than 1 hour -- then `FAILED_PRECONDITION` is returned. See also the `Snapshot.expire_time` field. If the name is not provided in the request, the server will assign a random name for this snapshot on the same project as the subscription, conforming to the [resource name format] (https://cloud.google.com/pubsub/docs/admin#resource_names). The generated name is populated in the returned Snapshot object. Note that for REST API requests, you must specify a name in the request.", + "description": "Creates a snapshot from the requested subscription. 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. If the snapshot already exists, returns `ALREADY_EXISTS`. If the requested subscription doesn't exist, returns `NOT_FOUND`. If the backlog in the subscription is too old -- and the resulting snapshot would expire in less than 1 hour -- then `FAILED_PRECONDITION` is returned. See also the `Snapshot.expire_time` field. If the name is not provided in the request, the server will assign a random name for this snapshot on the same project as the subscription, conforming to the [resource name format] (https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). The generated name is populated in the returned Snapshot object. Note that for REST API requests, you must specify a name in the request.", "flatPath": "v1/projects/{projectsId}/snapshots/{snapshotsId}", "httpMethod": "PUT", "id": "pubsub.projects.snapshots.create", @@ -567,7 +585,7 @@ ], "parameters": { "name": { - "description": "Required. User-provided name for this snapshot. If the name is not provided in the request, the server will assign a random name for this snapshot on the same project as the subscription. Note that for REST API requests, you must specify a name. See the [resource name rules](https://cloud.google.com/pubsub/docs/admin#resource_names). Format is `projects/{project}/snapshots/{snap}`.", + "description": "Required. User-provided name for this snapshot. If the name is not provided in the request, the server will assign a random name for this snapshot on the same project as the subscription. Note that for REST API requests, you must specify a name. See the [resource name rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). Format is `projects/{project}/snapshots/{snap}`.", "location": "path", "pattern": "^projects/[^/]+/snapshots/[^/]+$", "required": true, @@ -680,13 +698,13 @@ ], "parameters": { "pageSize": { - "description": "Maximum number of snapshots to return.", + "description": "Optional. Maximum number of snapshots to return.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "The value returned by the last `ListSnapshotsResponse`; indicates that this is a continuation of a prior `ListSnapshots` call, and that the system should return the next page of data.", + "description": "Optional. The value returned by the last `ListSnapshotsResponse`; indicates that this is a continuation of a prior `ListSnapshots` call, and that the system should return the next page of data.", "location": "query", "type": "string" }, @@ -708,7 +726,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", @@ -717,7 +735,7 @@ ], "parameters": { "name": { - "description": "The name of the snapshot.", + "description": "Optional. The name of the snapshot.", "location": "path", "pattern": "^projects/[^/]+/snapshots/[^/]+$", "required": true, @@ -828,7 +846,7 @@ ] }, "create": { - "description": "Creates a subscription to a given topic. See the [resource name rules] (https://cloud.google.com/pubsub/docs/admin#resource_names). If the subscription already exists, returns `ALREADY_EXISTS`. If the corresponding topic doesn't exist, returns `NOT_FOUND`. If the name is not provided in the request, the server will assign a random name for this subscription on the same project as the topic, conforming to the [resource name format] (https://cloud.google.com/pubsub/docs/admin#resource_names). The generated name is populated in the returned Subscription object. Note that for REST API requests, you must specify a name in the request.", + "description": "Creates a subscription to a given topic. See the [resource name rules] (https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). If the subscription already exists, returns `ALREADY_EXISTS`. If the corresponding topic doesn't exist, returns `NOT_FOUND`. If the name is not provided in the request, the server will assign a random name for this subscription on the same project as the topic, conforming to the [resource name format] (https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). The generated name is populated in the returned Subscription object. Note that for REST API requests, you must specify a name in the request.", "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}", "httpMethod": "PUT", "id": "pubsub.projects.subscriptions.create", @@ -976,13 +994,13 @@ ], "parameters": { "pageSize": { - "description": "Maximum number of subscriptions to return.", + "description": "Optional. Maximum number of subscriptions to return.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "The value returned by the last `ListSubscriptionsResponse`; indicates that this is a continuation of a prior `ListSubscriptions` call, and that the system should return the next page of data.", + "description": "Optional. The value returned by the last `ListSubscriptionsResponse`; indicates that this is a continuation of a prior `ListSubscriptions` call, and that the system should return the next page of data.", "location": "query", "type": "string" }, @@ -1062,7 +1080,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", @@ -1211,7 +1229,7 @@ "topics": { "methods": { "create": { - "description": "Creates the given topic with the given name. See the [resource name rules] (https://cloud.google.com/pubsub/docs/admin#resource_names).", + "description": "Creates the given topic with the given name. See the [resource name rules] (https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names).", "flatPath": "v1/projects/{projectsId}/topics/{topicsId}", "httpMethod": "PUT", "id": "pubsub.projects.topics.create", @@ -1333,13 +1351,13 @@ ], "parameters": { "pageSize": { - "description": "Maximum number of topics to return.", + "description": "Optional. Maximum number of topics to return.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "The value returned by the last `ListTopicsResponse`; indicates that this is a continuation of a prior `ListTopics` call, and that the system should return the next page of data.", + "description": "Optional. The value returned by the last `ListTopicsResponse`; indicates that this is a continuation of a prior `ListTopics` call, and that the system should return the next page of data.", "location": "query", "type": "string" }, @@ -1361,7 +1379,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", @@ -1490,13 +1508,13 @@ ], "parameters": { "pageSize": { - "description": "Maximum number of snapshot names to return.", + "description": "Optional. Maximum number of snapshot names to return.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "The value returned by the last `ListTopicSnapshotsResponse`; indicates that this is a continuation of a prior `ListTopicSnapshots` call, and that the system should return the next page of data.", + "description": "Optional. The value returned by the last `ListTopicSnapshotsResponse`; indicates that this is a continuation of a prior `ListTopicSnapshots` call, and that the system should return the next page of data.", "location": "query", "type": "string" }, @@ -1531,13 +1549,13 @@ ], "parameters": { "pageSize": { - "description": "Maximum number of subscription names to return.", + "description": "Optional. Maximum number of subscription names to return.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "The value returned by the last `ListTopicSubscriptionsResponse`; indicates that this is a continuation of a prior `ListTopicSubscriptions` call, and that the system should return the next page of data.", + "description": "Optional. The value returned by the last `ListTopicSubscriptionsResponse`; indicates that this is a continuation of a prior `ListTopicSubscriptions` call, and that the system should return the next page of data.", "location": "query", "type": "string" }, @@ -1565,7 +1583,7 @@ } } }, - "revision": "20230119", + "revision": "20240227", "rootUrl": "https://pubsub.googleapis.com/", "schemas": { "AcknowledgeRequest": { @@ -1582,14 +1600,73 @@ }, "type": "object" }, + "AvroConfig": { + "description": "Configuration for writing message data in Avro format. Message payloads and metadata will be written to files as an Avro binary.", + "id": "AvroConfig", + "properties": { + "writeMetadata": { + "description": "Optional. When true, write the subscription name, message_id, publish_time, attributes, and ordering_key as additional fields in the output. The subscription name, message_id, and publish_time fields are put in their own fields while all other message properties other than data (for example, an ordering_key, if present) are added as entries in the attributes map.", + "type": "boolean" + } + }, + "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", "properties": { "dropUnknownFields": { - "description": "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.", + "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": [ @@ -1597,28 +1674,34 @@ "ACTIVE", "PERMISSION_DENIED", "NOT_FOUND", - "SCHEMA_MISMATCH" + "SCHEMA_MISMATCH", + "IN_TRANSIT_LOCATION_RESTRICTION" ], "enumDescriptions": [ "Default value. This value is unused.", "The subscription can actively send messages to BigQuery", "Cannot write to the BigQuery table because of permission denied errors. This can happen if - Pub/Sub SA has not been granted the [appropriate BigQuery IAM permissions](https://cloud.google.com/pubsub/docs/create-subscription#assign_bigquery_service_account) - bigquery.googleapis.com API is not enabled for the project ([instructions](https://cloud.google.com/service-usage/docs/enable-disable))", "Cannot write to the BigQuery table because it does not exist.", - "Cannot write to the BigQuery table due to a schema mismatch." + "Cannot write to the BigQuery table due to a schema mismatch.", + "Cannot write to the destination because enforce_in_transit is set to true and the destination locations are not in the allowed regions." ], "readOnly": true, "type": "string" }, "table": { - "description": "The name of the table to which to write data, of the form {projectId}.{datasetId}.{tableId}", + "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": "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": { - "description": "When true, write the subscription name, message_id, publish_time, attributes, and ordering_key to additional columns in the table. The subscription name, message_id, and publish_time fields are put in their own columns while all other message properties (other than data) are written to a JSON object in the attributes column.", + "description": "Optional. When true, write the subscription name, message_id, publish_time, attributes, and ordering_key to additional columns in the table. The subscription name, message_id, and publish_time fields are put in their own columns while all other message properties (other than data) are written to a JSON object in the attributes column.", "type": "boolean" } }, @@ -1633,19 +1716,79 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, + "CloudStorageConfig": { + "description": "Configuration for a Cloud Storage subscription.", + "id": "CloudStorageConfig", + "properties": { + "avroConfig": { + "$ref": "AvroConfig", + "description": "Optional. If set, message data will be written to Cloud Storage in Avro format." + }, + "bucket": { + "description": "Required. User-provided name for the Cloud Storage bucket. The bucket must be created by the user. The bucket name must be without any prefix like \"gs://\". See the [bucket naming requirements] (https://cloud.google.com/storage/docs/buckets#naming).", + "type": "string" + }, + "filenamePrefix": { + "description": "Optional. User-provided prefix for Cloud Storage filename. See the [object naming requirements](https://cloud.google.com/storage/docs/objects#naming).", + "type": "string" + }, + "filenameSuffix": { + "description": "Optional. User-provided suffix for Cloud Storage filename. See the [object naming requirements](https://cloud.google.com/storage/docs/objects#naming). Must not end in \"/\".", + "type": "string" + }, + "maxBytes": { + "description": "Optional. The maximum bytes that can be written to a Cloud Storage file before a new file is created. Min 1 KB, max 10 GiB. The max_bytes limit may be exceeded in cases where messages are larger than the limit.", + "format": "int64", + "type": "string" + }, + "maxDuration": { + "description": "Optional. The maximum duration that can elapse before a new Cloud Storage file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed the subscription's acknowledgement deadline.", + "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": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "PERMISSION_DENIED", + "NOT_FOUND", + "IN_TRANSIT_LOCATION_RESTRICTION" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "The subscription can actively send messages to Cloud Storage.", + "Cannot write to the Cloud Storage bucket because of permission denied errors.", + "Cannot write to the Cloud Storage bucket because it does not exist.", + "Cannot write to the destination because enforce_in_transit is set to true and the destination locations are not in the allowed regions." + ], + "readOnly": true, + "type": "string" + }, + "textConfig": { + "$ref": "TextConfig", + "description": "Optional. If set, message data will be written to Cloud Storage in text format." + } + }, + "type": "object" + }, "CommitSchemaRequest": { "description": "Request for CommitSchema method.", "id": "CommitSchemaRequest", @@ -1665,7 +1808,7 @@ "additionalProperties": { "type": "string" }, - "description": "See [Creating and managing labels](https://cloud.google.com/pubsub/docs/labels).", + "description": "Optional. See [Creating and managing labels](https://cloud.google.com/pubsub/docs/labels).", "type": "object" }, "subscription": { @@ -1680,11 +1823,11 @@ "id": "DeadLetterPolicy", "properties": { "deadLetterTopic": { - "description": "The name of the topic to which dead letter messages should be published. Format is `projects/{project}/topics/{topic}`.The Cloud Pub/Sub service account associated with the enclosing subscription's parent project (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have permission to Publish() to this topic. The operation will fail if the topic does not exist. Users should ensure that there is a subscription attached to this topic since messages published to a topic with no subscriptions are lost.", + "description": "Optional. The name of the topic to which dead letter messages should be published. Format is `projects/{project}/topics/{topic}`.The Pub/Sub service account associated with the enclosing subscription's parent project (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have permission to Publish() to this topic. The operation will fail if the topic does not exist. Users should ensure that there is a subscription attached to this topic since messages published to a topic with no subscriptions are lost.", "type": "string" }, "maxDeliveryAttempts": { - "description": "The maximum number of delivery attempts for any message. The value must be between 5 and 100. The number of delivery attempts is defined as 1 + (the sum of number of NACKs and number of times the acknowledgement deadline has been exceeded for the message). A NACK is any call to ModifyAckDeadline with a 0 deadline. Note that client libraries may automatically extend ack_deadlines. This field will be honored on a best effort basis. If this parameter is 0, a default value of 5 is used.", + "description": "Optional. The maximum number of delivery attempts for any message. The value must be between 5 and 100. The number of delivery attempts is defined as 1 + (the sum of number of NACKs and number of times the acknowledgement deadline has been exceeded for the message). A NACK is any call to ModifyAckDeadline with a 0 deadline. Note that client libraries may automatically extend ack_deadlines. This field will be honored on a best effort basis. If this parameter is 0, a default value of 5 is used.", "format": "int32", "type": "integer" } @@ -1708,7 +1851,7 @@ "id": "ExpirationPolicy", "properties": { "ttl": { - "description": "Specifies the \"time-to-live\" duration for an associated resource. The resource expires if it is not active for a period of `ttl`. The definition of \"activity\" depends on the type of the associated resource. The minimum and maximum allowed values for `ttl` depend on the type of the associated resource, as well. If `ttl` is not set, the associated resource never expires.", + "description": "Optional. Specifies the \"time-to-live\" duration for an associated resource. The resource expires if it is not active for a period of `ttl`. The definition of \"activity\" depends on the type of the associated resource. The minimum and maximum allowed values for `ttl` depend on the type of the associated resource, as well. If `ttl` is not set, the associated resource never expires.", "format": "google-duration", "type": "string" } @@ -1738,6 +1881,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", @@ -1779,11 +1933,11 @@ "id": "ListSnapshotsResponse", "properties": { "nextPageToken": { - "description": "If not empty, indicates that there may be more snapshot that match the request; this value should be passed in a new `ListSnapshotsRequest`.", + "description": "Optional. If not empty, indicates that there may be more snapshot that match the request; this value should be passed in a new `ListSnapshotsRequest`.", "type": "string" }, "snapshots": { - "description": "The resulting snapshots.", + "description": "Optional. The resulting snapshots.", "items": { "$ref": "Snapshot" }, @@ -1797,11 +1951,11 @@ "id": "ListSubscriptionsResponse", "properties": { "nextPageToken": { - "description": "If not empty, indicates that there may be more subscriptions that match the request; this value should be passed in a new `ListSubscriptionsRequest` to get more subscriptions.", + "description": "Optional. If not empty, indicates that there may be more subscriptions that match the request; this value should be passed in a new `ListSubscriptionsRequest` to get more subscriptions.", "type": "string" }, "subscriptions": { - "description": "The subscriptions that match the request.", + "description": "Optional. The subscriptions that match the request.", "items": { "$ref": "Subscription" }, @@ -1815,11 +1969,11 @@ "id": "ListTopicSnapshotsResponse", "properties": { "nextPageToken": { - "description": "If not empty, indicates that there may be more snapshots that match the request; this value should be passed in a new `ListTopicSnapshotsRequest` to get more snapshots.", + "description": "Optional. If not empty, indicates that there may be more snapshots that match the request; this value should be passed in a new `ListTopicSnapshotsRequest` to get more snapshots.", "type": "string" }, "snapshots": { - "description": "The names of the snapshots that match the request.", + "description": "Optional. The names of the snapshots that match the request.", "items": { "type": "string" }, @@ -1833,11 +1987,11 @@ "id": "ListTopicSubscriptionsResponse", "properties": { "nextPageToken": { - "description": "If not empty, indicates that there may be more subscriptions that match the request; this value should be passed in a new `ListTopicSubscriptionsRequest` to get more subscriptions.", + "description": "Optional. If not empty, indicates that there may be more subscriptions that match the request; this value should be passed in a new `ListTopicSubscriptionsRequest` to get more subscriptions.", "type": "string" }, "subscriptions": { - "description": "The names of subscriptions attached to the topic specified in the request.", + "description": "Optional. The names of subscriptions attached to the topic specified in the request.", "items": { "type": "string" }, @@ -1851,11 +2005,11 @@ "id": "ListTopicsResponse", "properties": { "nextPageToken": { - "description": "If not empty, indicates that there may be more topics that match the request; this value should be passed in a new `ListTopicsRequest`.", + "description": "Optional. If not empty, indicates that there may be more topics that match the request; this value should be passed in a new `ListTopicsRequest`.", "type": "string" }, "topics": { - "description": "The resulting topics.", + "description": "Optional. The resulting topics.", "items": { "$ref": "Topic" }, @@ -1869,11 +2023,15 @@ "id": "MessageStoragePolicy", "properties": { "allowedPersistenceRegions": { - "description": "A list of IDs of GCP regions where messages that are published to the topic may be persisted in storage. Messages published by publishers running in non-allowed GCP regions (or running outside of GCP altogether) will be routed for storage in one of the allowed regions. An empty list means that no regions are allowed, and is not a valid configuration.", + "description": "Optional. A list of IDs of Google Cloud regions where messages that are published to the topic may be persisted in storage. Messages published by publishers running in non-allowed Google Cloud regions (or running outside of Google Cloud altogether) are routed for storage in one of the allowed regions. An empty list means that no regions are allowed, and is not a valid configuration.", "items": { "type": "string" }, "type": "array" + }, + "enforceInTransit": { + "description": "Optional. If true, `allowed_persistence_regions` is also used to enforce in-transit guarantees for messages. That is, Pub/Sub will fail Publish operations on this topic and subscribe operations on any subscription attached to this topic in any region that is not in `allowed_persistence_regions`.", + "type": "boolean" } }, "type": "object" @@ -1883,7 +2041,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" }, @@ -1908,22 +2066,34 @@ }, "type": "object" }, + "NoWrapper": { + "description": "Sets the `data` field as the HTTP body for delivery.", + "id": "NoWrapper", + "properties": { + "writeMetadata": { + "description": "Optional. When true, writes the Pub/Sub message metadata to `x-goog-pubsub-:` headers of the HTTP request. Writes the Pub/Sub message attributes to `:` headers of the HTTP request.", + "type": "boolean" + } + }, + "type": "object" + }, "OidcToken": { - "description": "Contains information needed for generating an [OpenID Connect token](https://developers.google.com/identity/protocols/OpenIDConnect). [Service account email](https://cloud.google.com/iam/docs/service-accounts) used for generating the OIDC token. For more information on setting up authentication, see [Push subscriptions](https://cloud.google.com/pubsub/docs/push).", + "description": "Contains information needed for generating an [OpenID Connect token](https://developers.google.com/identity/protocols/OpenIDConnect).", "id": "OidcToken", "properties": { "audience": { - "description": "Audience to be used when generating OIDC token. The audience claim identifies the recipients that the JWT is intended for. The audience value is a single case-sensitive string. Having multiple values (array) for the audience field is not supported. More info about the OIDC JWT token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified, the Push endpoint URL will be used.", + "description": "Optional. Audience to be used when generating OIDC token. The audience claim identifies the recipients that the JWT is intended for. The audience value is a single case-sensitive string. Having multiple values (array) for the audience field is not supported. More info about the OIDC JWT token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified, the Push endpoint URL will be used.", "type": "string" }, "serviceAccountEmail": { + "description": "Optional. [Service account email](https://cloud.google.com/iam/docs/service-accounts) used for generating the OIDC token. For more information on setting up authentication, see [Push subscriptions](https://cloud.google.com/pubsub/docs/push).", "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/).", + "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": { "bindings": { @@ -1965,7 +2135,7 @@ "id": "PublishResponse", "properties": { "messageIds": { - "description": "The server-assigned ID of each published message, in the same order as the messages in the request. IDs are guaranteed to be unique within the topic.", + "description": "Optional. The server-assigned ID of each published message, in the same order as the messages in the request. IDs are guaranteed to be unique within the topic.", "items": { "type": "string" }, @@ -1982,11 +2152,11 @@ "additionalProperties": { "type": "string" }, - "description": "Attributes for this message. If this field is empty, the message must contain non-empty data. This can be used to filter messages on the subscription.", + "description": "Optional. Attributes for this message. If this field is empty, the message must contain non-empty data. This can be used to filter messages on the subscription.", "type": "object" }, "data": { - "description": "The message data field. If this field is empty, the message must contain at least one attribute.", + "description": "Optional. The message data field. If this field is empty, the message must contain at least one attribute.", "format": "byte", "type": "string" }, @@ -1995,7 +2165,7 @@ "type": "string" }, "orderingKey": { - "description": "If non-empty, identifies related messages for which publish order should be respected. If a `Subscription` has `enable_message_ordering` set to `true`, messages published with the same non-empty `ordering_key` value will be delivered to subscribers in the order in which they are received by the Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest` must specify the same `ordering_key` value. For more information, see [ordering messages](https://cloud.google.com/pubsub/docs/ordering).", + "description": "Optional. If non-empty, identifies related messages for which publish order should be respected. If a `Subscription` has `enable_message_ordering` set to `true`, messages published with the same non-empty `ordering_key` value will be delivered to subscribers in the order in which they are received by the Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest` must specify the same `ordering_key` value. For more information, see [ordering messages](https://cloud.google.com/pubsub/docs/ordering).", "type": "string" }, "publishTime": { @@ -2006,6 +2176,12 @@ }, "type": "object" }, + "PubsubWrapper": { + "description": "The payload to the push endpoint is in the form of the JSON representation of a PubsubMessage (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage).", + "id": "PubsubWrapper", + "properties": {}, + "type": "object" + }, "PullRequest": { "description": "Request for the `Pull` method.", "id": "PullRequest", @@ -2016,6 +2192,7 @@ "type": "integer" }, "returnImmediately": { + "deprecated": true, "description": "Optional. If this field set to true, the system will respond immediately even if it there are no messages available to return in the `Pull` response. Otherwise, the system may wait (for a bounded amount of time) until at least one message is available, rather than returning no messages. Warning: setting this field to `true` is discouraged because it adversely impacts the performance of `Pull` operations. We recommend that users do not set this field.", "type": "boolean" } @@ -2027,7 +2204,7 @@ "id": "PullResponse", "properties": { "receivedMessages": { - "description": "Received Pub/Sub messages. The list will be empty if there are no more messages available in the backlog, or if no messages could be returned before the request timeout. For JSON, the response can be entirely empty. The Pub/Sub system may return fewer than the `maxMessages` requested even if there are more messages available in the backlog.", + "description": "Optional. Received Pub/Sub messages. The list will be empty if there are no more messages available in the backlog, or if no messages could be returned before the request timeout. For JSON, the response can be entirely empty. The Pub/Sub system may return fewer than the `maxMessages` requested even if there are more messages available in the backlog.", "items": { "$ref": "ReceivedMessage" }, @@ -2044,15 +2221,23 @@ "additionalProperties": { "type": "string" }, - "description": "Endpoint configuration attributes that can be used to control different aspects of the message delivery. The only currently supported attribute is `x-goog-version`, which you can use to change the format of the pushed message. This attribute indicates the version of the data expected by the endpoint. This controls the shape of the pushed message (i.e., its fields and metadata). If not present during the `CreateSubscription` call, it will default to the version of the Pub/Sub API used to make such call. If not present in a `ModifyPushConfig` call, its value will not be changed. `GetSubscription` calls will always return a valid version, even if the subscription was created without this attribute. The only supported values for the `x-goog-version` attribute are: * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API. * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API. For example: `attributes { \"x-goog-version\": \"v1\" }`", + "description": "Optional. Endpoint configuration attributes that can be used to control different aspects of the message delivery. The only currently supported attribute is `x-goog-version`, which you can use to change the format of the pushed message. This attribute indicates the version of the data expected by the endpoint. This controls the shape of the pushed message (i.e., its fields and metadata). If not present during the `CreateSubscription` call, it will default to the version of the Pub/Sub API used to make such call. If not present in a `ModifyPushConfig` call, its value will not be changed. `GetSubscription` calls will always return a valid version, even if the subscription was created without this attribute. The only supported values for the `x-goog-version` attribute are: * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API. * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API. For example: `attributes { \"x-goog-version\": \"v1\" }`", "type": "object" }, + "noWrapper": { + "$ref": "NoWrapper", + "description": "Optional. When set, the payload to the push endpoint is not wrapped." + }, "oidcToken": { "$ref": "OidcToken", - "description": "If specified, Pub/Sub will generate and attach an OIDC JWT token as an `Authorization` header in the HTTP request for every pushed message." + "description": "Optional. If specified, Pub/Sub will generate and attach an OIDC JWT token as an `Authorization` header in the HTTP request for every pushed message." + }, + "pubsubWrapper": { + "$ref": "PubsubWrapper", + "description": "Optional. When set, the payload to the push endpoint is in the form of the JSON representation of a PubsubMessage (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage)." }, "pushEndpoint": { - "description": "A URL locating the endpoint to which messages should be pushed. For example, a Webhook endpoint might use `https://example.com/push`.", + "description": "Optional. A URL locating the endpoint to which messages should be pushed. For example, a Webhook endpoint might use `https://example.com/push`.", "type": "string" } }, @@ -2063,32 +2248,32 @@ "id": "ReceivedMessage", "properties": { "ackId": { - "description": "This ID can be used to acknowledge the received message.", + "description": "Optional. This ID can be used to acknowledge the received message.", "type": "string" }, "deliveryAttempt": { - "description": "The approximate number of times that Cloud Pub/Sub has attempted to deliver the associated message to a subscriber. More precisely, this is 1 + (number of NACKs) + (number of ack_deadline exceeds) for this message. A NACK is any call to ModifyAckDeadline with a 0 deadline. An ack_deadline exceeds event is whenever a message is not acknowledged within ack_deadline. Note that ack_deadline is initially Subscription.ackDeadlineSeconds, but may get extended automatically by the client library. Upon the first delivery of a given message, `delivery_attempt` will have a value of 1. The value is calculated at best effort and is approximate. If a DeadLetterPolicy is not set on the subscription, this will be 0.", + "description": "Optional. The approximate number of times that Pub/Sub has attempted to deliver the associated message to a subscriber. More precisely, this is 1 + (number of NACKs) + (number of ack_deadline exceeds) for this message. A NACK is any call to ModifyAckDeadline with a 0 deadline. An ack_deadline exceeds event is whenever a message is not acknowledged within ack_deadline. Note that ack_deadline is initially Subscription.ackDeadlineSeconds, but may get extended automatically by the client library. Upon the first delivery of a given message, `delivery_attempt` will have a value of 1. The value is calculated at best effort and is approximate. If a DeadLetterPolicy is not set on the subscription, this will be 0.", "format": "int32", "type": "integer" }, "message": { "$ref": "PubsubMessage", - "description": "The message." + "description": "Optional. The message." } }, "type": "object" }, "RetryPolicy": { - "description": "A policy that specifies how Cloud Pub/Sub retries message delivery. Retry delay will be exponential based on provided minimum and maximum backoffs. https://en.wikipedia.org/wiki/Exponential_backoff. RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message. Retry Policy is implemented on a best effort basis. At times, the delay between consecutive deliveries may not match the configuration. That is, delay can be more or less than configured backoff.", + "description": "A policy that specifies how Pub/Sub retries message delivery. Retry delay will be exponential based on provided minimum and maximum backoffs. https://en.wikipedia.org/wiki/Exponential_backoff. RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message. Retry Policy is implemented on a best effort basis. At times, the delay between consecutive deliveries may not match the configuration. That is, delay can be more or less than configured backoff.", "id": "RetryPolicy", "properties": { "maximumBackoff": { - "description": "The maximum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 600 seconds.", + "description": "Optional. The maximum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 600 seconds.", "format": "google-duration", "type": "string" }, "minimumBackoff": { - "description": "The minimum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.", + "description": "Optional. The minimum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.", "format": "google-duration", "type": "string" } @@ -2151,7 +2336,7 @@ "id": "SchemaSettings", "properties": { "encoding": { - "description": "The encoding of messages validated against `schema`.", + "description": "Optional. The encoding of messages validated against `schema`.", "enum": [ "ENCODING_UNSPECIFIED", "JSON", @@ -2165,11 +2350,11 @@ "type": "string" }, "firstRevisionId": { - "description": "The minimum (inclusive) revision allowed for validating messages. If empty or not present, allow any revision to be validated against last_revision or any revision created before.", + "description": "Optional. The minimum (inclusive) revision allowed for validating messages. If empty or not present, allow any revision to be validated against last_revision or any revision created before.", "type": "string" }, "lastRevisionId": { - "description": "The maximum (inclusive) revision allowed for validating messages. If empty or not present, allow any revision to be validated against first_revision or any revision created after.", + "description": "Optional. The maximum (inclusive) revision allowed for validating messages. If empty or not present, allow any revision to be validated against first_revision or any revision created after.", "type": "string" }, "schema": { @@ -2184,11 +2369,11 @@ "id": "SeekRequest", "properties": { "snapshot": { - "description": "The snapshot to seek to. The snapshot's topic must be the same as that of the provided subscription. Format is `projects/{project}/snapshots/{snap}`.", + "description": "Optional. The snapshot to seek to. The snapshot's topic must be the same as that of the provided subscription. Format is `projects/{project}/snapshots/{snap}`.", "type": "string" }, "time": { - "description": "The time to seek to. Messages retained in the subscription that were published before this time are marked as acknowledged, and messages retained in the subscription that were published after this time are marked as unacknowledged. Note that this operation affects only those messages retained in the subscription (configured by the combination of `message_retention_duration` and `retain_acked_messages`). For example, if `time` corresponds to a point before the message retention window (or to a point before the system's notion of the subscription creation time), only retained messages will be marked as unacknowledged, and already-expunged messages will not be restored.", + "description": "Optional. The time to seek to. Messages retained in the subscription that were published before this time are marked as acknowledged, and messages retained in the subscription that were published after this time are marked as unacknowledged. Note that this operation affects only those messages retained in the subscription (configured by the combination of `message_retention_duration` and `retain_acked_messages`). For example, if `time` corresponds to a point before the message retention window (or to a point before the system's notion of the subscription creation time), only retained messages will be marked as unacknowledged, and already-expunged messages will not be restored.", "format": "google-datetime", "type": "string" } @@ -2217,7 +2402,7 @@ "id": "Snapshot", "properties": { "expireTime": { - "description": "The snapshot is guaranteed to exist up until this time. A newly-created snapshot expires no later than 7 days from the time of its creation. Its exact lifetime is determined at creation by the existing backlog in the source subscription. Specifically, the lifetime of the snapshot is `7 days - (age of oldest unacked message in the subscription)`. For example, consider a subscription whose oldest unacked message is 3 days old. If a snapshot is created from this subscription, the snapshot -- which will always capture this 3-day-old backlog as long as the snapshot exists -- will expire in 4 days. The service will refuse to create a snapshot that would expire in less than 1 hour after creation.", + "description": "Optional. The snapshot is guaranteed to exist up until this time. A newly-created snapshot expires no later than 7 days from the time of its creation. Its exact lifetime is determined at creation by the existing backlog in the source subscription. Specifically, the lifetime of the snapshot is `7 days - (age of oldest unacked message in the subscription)`. For example, consider a subscription whose oldest unacked message is 3 days old. If a snapshot is created from this subscription, the snapshot -- which will always capture this 3-day-old backlog as long as the snapshot exists -- will expire in 4 days. The service will refuse to create a snapshot that would expire in less than 1 hour after creation.", "format": "google-datetime", "type": "string" }, @@ -2225,66 +2410,70 @@ "additionalProperties": { "type": "string" }, - "description": "See [Creating and managing labels] (https://cloud.google.com/pubsub/docs/labels).", + "description": "Optional. See [Creating and managing labels] (https://cloud.google.com/pubsub/docs/labels).", "type": "object" }, "name": { - "description": "The name of the snapshot.", + "description": "Optional. The name of the snapshot.", "type": "string" }, "topic": { - "description": "The name of the topic from which this snapshot is retaining messages.", + "description": "Optional. The name of the topic from which this snapshot is retaining messages.", "type": "string" } }, "type": "object" }, "Subscription": { - "description": "A subscription resource. If none of `push_config` or `bigquery_config` is set, then the subscriber will pull and ack messages using API methods. At most one of these fields may be set.", + "description": "A subscription resource. If none of `push_config`, `bigquery_config`, or `cloud_storage_config` is set, then the subscriber will pull and ack messages using API methods. At most one of these fields may be set.", "id": "Subscription", "properties": { "ackDeadlineSeconds": { - "description": "The approximate amount of time (on a best-effort basis) Pub/Sub waits for the subscriber to acknowledge receipt before resending the message. In the interval after the message is delivered and before it is acknowledged, it is considered to be _outstanding_. During that time period, the message will not be redelivered (on a best-effort basis). For pull subscriptions, this value is used as the initial value for the ack deadline. To override this value for a given message, call `ModifyAckDeadline` with the corresponding `ack_id` if using non-streaming pull or send the `ack_id` in a `StreamingModifyAckDeadlineRequest` if using streaming pull. The minimum custom deadline you can specify is 10 seconds. The maximum custom deadline you can specify is 600 seconds (10 minutes). If this parameter is 0, a default value of 10 seconds is used. For push delivery, this value is also used to set the request timeout for the call to the push endpoint. If the subscriber never acknowledges the message, the Pub/Sub system will eventually redeliver the message.", + "description": "Optional. The approximate amount of time (on a best-effort basis) Pub/Sub waits for the subscriber to acknowledge receipt before resending the message. In the interval after the message is delivered and before it is acknowledged, it is considered to be _outstanding_. During that time period, the message will not be redelivered (on a best-effort basis). For pull subscriptions, this value is used as the initial value for the ack deadline. To override this value for a given message, call `ModifyAckDeadline` with the corresponding `ack_id` if using non-streaming pull or send the `ack_id` in a `StreamingModifyAckDeadlineRequest` if using streaming pull. The minimum custom deadline you can specify is 10 seconds. The maximum custom deadline you can specify is 600 seconds (10 minutes). If this parameter is 0, a default value of 10 seconds is used. For push delivery, this value is also used to set the request timeout for the call to the push endpoint. If the subscriber never acknowledges the message, the Pub/Sub system will eventually redeliver the message.", "format": "int32", "type": "integer" }, "bigqueryConfig": { "$ref": "BigQueryConfig", - "description": "If delivery to BigQuery is used with this subscription, this field is used to configure it." + "description": "Optional. If delivery to BigQuery is used with this subscription, this field is used to configure it." + }, + "cloudStorageConfig": { + "$ref": "CloudStorageConfig", + "description": "Optional. If delivery to Google Cloud Storage is used with this subscription, this field is used to configure it." }, "deadLetterPolicy": { "$ref": "DeadLetterPolicy", - "description": "A policy that specifies the conditions for dead lettering messages in this subscription. If dead_letter_policy is not set, dead lettering is disabled. The Cloud Pub/Sub service account associated with this subscriptions's parent project (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have permission to Acknowledge() messages on this subscription." + "description": "Optional. A policy that specifies the conditions for dead lettering messages in this subscription. If dead_letter_policy is not set, dead lettering is disabled. The Pub/Sub service account associated with this subscriptions's parent project (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have permission to Acknowledge() messages on this subscription." }, "detached": { - "description": "Indicates whether the subscription is detached from its topic. Detached subscriptions don't receive messages from their topic and don't retain any backlog. `Pull` and `StreamingPull` requests will return FAILED_PRECONDITION. If the subscription is a push subscription, pushes to the endpoint will not be made.", + "description": "Optional. Indicates whether the subscription is detached from its topic. Detached subscriptions don't receive messages from their topic and don't retain any backlog. `Pull` and `StreamingPull` requests will return FAILED_PRECONDITION. If the subscription is a push subscription, pushes to the endpoint will not be made.", "type": "boolean" }, "enableExactlyOnceDelivery": { - "description": "If true, Pub/Sub provides the following guarantees for the delivery of a message with a given value of `message_id` on this subscription: * The message sent to a subscriber is guaranteed not to be resent before the message's acknowledgement deadline expires. * An acknowledged message will not be resent to a subscriber. Note that subscribers may still receive multiple copies of a message when `enable_exactly_once_delivery` is true if the message was published multiple times by a publisher client. These copies are considered distinct by Pub/Sub and have distinct `message_id` values.", + "description": "Optional. If true, Pub/Sub provides the following guarantees for the delivery of a message with a given value of `message_id` on this subscription: * The message sent to a subscriber is guaranteed not to be resent before the message's acknowledgement deadline expires. * An acknowledged message will not be resent to a subscriber. Note that subscribers may still receive multiple copies of a message when `enable_exactly_once_delivery` is true if the message was published multiple times by a publisher client. These copies are considered distinct by Pub/Sub and have distinct `message_id` values.", "type": "boolean" }, "enableMessageOrdering": { - "description": "If true, messages published with the same `ordering_key` in `PubsubMessage` will be delivered to the subscribers in the order in which they are received by the Pub/Sub system. Otherwise, they may be delivered in any order.", + "description": "Optional. If true, messages published with the same `ordering_key` in `PubsubMessage` will be delivered to the subscribers in the order in which they are received by the Pub/Sub system. Otherwise, they may be delivered in any order.", "type": "boolean" }, "expirationPolicy": { "$ref": "ExpirationPolicy", - "description": "A policy that specifies the conditions for this subscription's expiration. A subscription is considered active as long as any connected subscriber is successfully consuming messages from the subscription or is issuing operations on the subscription. If `expiration_policy` is not set, a *default policy* with `ttl` of 31 days will be used. The minimum allowed value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set, but `expiration_policy.ttl` is not set, the subscription never expires." + "description": "Optional. A policy that specifies the conditions for this subscription's expiration. A subscription is considered active as long as any connected subscriber is successfully consuming messages from the subscription or is issuing operations on the subscription. If `expiration_policy` is not set, a *default policy* with `ttl` of 31 days will be used. The minimum allowed value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set, but `expiration_policy.ttl` is not set, the subscription never expires." }, "filter": { - "description": "An expression written in the Pub/Sub [filter language](https://cloud.google.com/pubsub/docs/filtering). If non-empty, then only `PubsubMessage`s whose `attributes` field matches the filter are delivered on this subscription. If empty, then no messages are filtered out.", + "description": "Optional. An expression written in the Pub/Sub [filter language](https://cloud.google.com/pubsub/docs/filtering). If non-empty, then only `PubsubMessage`s whose `attributes` field matches the filter are delivered on this subscription. If empty, then no messages are filtered out.", "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, - "description": "See [Creating and managing labels](https://cloud.google.com/pubsub/docs/labels).", + "description": "Optional. See [Creating and managing labels](https://cloud.google.com/pubsub/docs/labels).", "type": "object" }, "messageRetentionDuration": { - "description": "How long to retain unacknowledged messages in the subscription's backlog, from the moment a message is published. If `retain_acked_messages` is true, then this also configures the retention of acknowledged messages, and thus configures how far back in time a `Seek` can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10 minutes.", + "description": "Optional. How long to retain unacknowledged messages in the subscription's backlog, from the moment a message is published. If `retain_acked_messages` is true, then this also configures the retention of acknowledged messages, and thus configures how far back in time a `Seek` can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10 minutes.", "format": "google-duration", "type": "string" }, @@ -2294,15 +2483,15 @@ }, "pushConfig": { "$ref": "PushConfig", - "description": "If push delivery is used with this subscription, this field is used to configure it." + "description": "Optional. If push delivery is used with this subscription, this field is used to configure it." }, "retainAckedMessages": { - "description": "Indicates whether to retain acknowledged messages. If true, then messages are not expunged from the subscription's backlog, even if they are acknowledged, until they fall out of the `message_retention_duration` window. This must be true if you would like to [`Seek` to a timestamp] (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) in the past to replay previously-acknowledged messages.", + "description": "Optional. Indicates whether to retain acknowledged messages. If true, then messages are not expunged from the subscription's backlog, even if they are acknowledged, until they fall out of the `message_retention_duration` window. This must be true if you would like to [`Seek` to a timestamp] (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) in the past to replay previously-acknowledged messages.", "type": "boolean" }, "retryPolicy": { "$ref": "RetryPolicy", - "description": "A policy that specifies how Pub/Sub retries message delivery for this subscription. If not set, the default retry policy is applied. This generally implies that messages will be retried as soon as possible for healthy subscribers. RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message." + "description": "Optional. A policy that specifies how Pub/Sub retries message delivery for this subscription. If not set, the default retry policy is applied. This generally implies that messages will be retried as soon as possible for healthy subscribers. RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message." }, "state": { "description": "Output only. An output-only field indicating whether or not the subscription can receive messages.", @@ -2360,41 +2549,66 @@ }, "type": "object" }, + "TextConfig": { + "description": "Configuration for writing message data in text format. Message payloads will be written to files as raw text, separated by a newline.", + "id": "TextConfig", + "properties": {}, + "type": "object" + }, "Topic": { "description": "A topic resource.", "id": "Topic", "properties": { + "ingestionDataSourceSettings": { + "$ref": "IngestionDataSourceSettings", + "description": "Optional. Settings for ingestion from a data source into this topic." + }, "kmsKeyName": { - "description": "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/*`.", + "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" }, "labels": { "additionalProperties": { "type": "string" }, - "description": "See [Creating and managing labels] (https://cloud.google.com/pubsub/docs/labels).", + "description": "Optional. See [Creating and managing labels] (https://cloud.google.com/pubsub/docs/labels).", "type": "object" }, "messageRetentionDuration": { - "description": "Indicates the minimum duration to retain a message after it is published to the topic. If this field is set, messages published to the topic in the last `message_retention_duration` are always available to subscribers. For instance, it allows any attached subscription to [seek to a timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) that is up to `message_retention_duration` in the past. If this field is not set, message retention is controlled by settings on individual subscriptions. Cannot be more than 31 days or less than 10 minutes.", + "description": "Optional. Indicates the minimum duration to retain a message after it is published to the topic. If this field is set, messages published to the topic in the last `message_retention_duration` are always available to subscribers. For instance, it allows any attached subscription to [seek to a timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) that is up to `message_retention_duration` in the past. If this field is not set, message retention is controlled by settings on individual subscriptions. Cannot be more than 31 days or less than 10 minutes.", "format": "google-duration", "type": "string" }, "messageStoragePolicy": { "$ref": "MessageStoragePolicy", - "description": "Policy constraining the set of Google Cloud Platform regions where messages published to the topic may be stored. If not present, then no constraints are in effect." + "description": "Optional. Policy constraining the set of Google Cloud Platform regions where messages published to the topic may be stored. If not present, then no constraints are in effect." }, "name": { "description": "Required. The name of the topic. It must have the format `\"projects/{project}/topics/{topic}\"`. `{topic}` must start with a letter, and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters in length, and it must not start with `\"goog\"`.", "type": "string" }, "satisfiesPzs": { - "description": "Reserved for future use. This field is set only in responses from the server; it is ignored if it is set in any requests.", + "description": "Optional. Reserved for future use. This field is set only in responses from the server; it is ignored if it is set in any requests.", "type": "boolean" }, "schemaSettings": { "$ref": "SchemaSettings", - "description": "Settings for validating messages published against a schema." + "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/etc/api/pubsub/v1beta1a/pubsub-api.json b/etc/api/pubsub/v1beta1a/pubsub-api.json index b1a8485500..25738b1bd2 100644 --- a/etc/api/pubsub/v1beta1a/pubsub-api.json +++ b/etc/api/pubsub/v1beta1a/pubsub-api.json @@ -18,6 +18,23 @@ "description": "Provides reliable, many-to-many, asynchronous messaging between applications. ", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/pubsub/docs", + "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://pubsub.me-central2.rep.googleapis.com/", + "location": "me-central2" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://pubsub.europe-west3.rep.googleapis.com/", + "location": "europe-west3" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://pubsub.europe-west9.rep.googleapis.com/", + "location": "europe-west9" + } + ], "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" @@ -457,7 +474,7 @@ } } }, - "revision": "20230119", + "revision": "20240227", "rootUrl": "https://pubsub.googleapis.com/", "schemas": { "AcknowledgeRequest": { @@ -550,6 +567,7 @@ "type": "integer" }, "ackId": { + "deprecated": true, "description": "The acknowledgment ID. Either this or ack_ids must be populated, not both.", "type": "string" }, diff --git a/etc/api/pubsub/v1beta2/pubsub-api.json b/etc/api/pubsub/v1beta2/pubsub-api.json index af4fb3df49..20bbe5ac56 100644 --- a/etc/api/pubsub/v1beta2/pubsub-api.json +++ b/etc/api/pubsub/v1beta2/pubsub-api.json @@ -18,6 +18,23 @@ "description": "Provides reliable, many-to-many, asynchronous messaging between applications. ", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/pubsub/docs", + "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://pubsub.me-central2.rep.googleapis.com/", + "location": "me-central2" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://pubsub.europe-west3.rep.googleapis.com/", + "location": "europe-west3" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://pubsub.europe-west9.rep.googleapis.com/", + "location": "europe-west9" + } + ], "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" @@ -724,7 +741,7 @@ } } }, - "revision": "20230119", + "revision": "20240227", "rootUrl": "https://pubsub.googleapis.com/", "schemas": { "AcknowledgeRequest": { @@ -750,14 +767,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -896,7 +913,7 @@ "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/).", + "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": { "bindings": { @@ -985,6 +1002,7 @@ "type": "integer" }, "returnImmediately": { + "deprecated": true, "description": "Optional. If this is specified as true the system will respond immediately even if it is not able to return a message in the `Pull` response. Otherwise the system is allowed to wait until at least one message is available rather than returning no messages. The client may cancel the request if it does not wish to wait any longer for the response. Warning: setting this field to `true` is discouraged because it adversely impacts the performance of `Pull` operations. We recommend that users do not set this field.", "type": "boolean" } diff --git a/etc/api/pubsublite/v1/pubsublite-api.json b/etc/api/pubsublite/v1/pubsublite-api.json index ac5dc8cede..6b49807745 100644 --- a/etc/api/pubsublite/v1/pubsublite-api.json +++ b/etc/api/pubsublite/v1/pubsublite-api.json @@ -192,7 +192,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/admin/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "pubsublite.admin.projects.locations.operations.list", @@ -1040,7 +1040,7 @@ } } }, - "revision": "20230114", + "revision": "20240224", "rootUrl": "https://pubsublite.googleapis.com/", "schemas": { "CancelOperationRequest": { @@ -1431,7 +1431,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" } }, @@ -1476,6 +1476,7 @@ "type": "string" }, "scale": { + "deprecated": true, "description": "DEPRECATED: Use capacity instead which can express a superset of configurations. Every partition in the topic is allocated throughput equivalent to `scale` times the standard partition throughput (4 MiB/s). This is also reflected in the cost of this topic; a topic with `scale` of 2 and count of 10 is charged for 20 partitions. This value must be in the range [1,4].", "format": "int32", "type": "integer" diff --git a/etc/api/realtimebidding/v1/realtimebidding-api.json b/etc/api/realtimebidding/v1/realtimebidding-api.json index 61d2d04bc8..706c542731 100644 --- a/etc/api/realtimebidding/v1/realtimebidding-api.json +++ b/etc/api/realtimebidding/v1/realtimebidding-api.json @@ -885,7 +885,7 @@ ] }, "getRemarketingTag": { - "description": "Gets remarketing tag for a buyer. A remarketing tag is a piece of JavaScript code that can be placed on a web page. When a user visits a page containing a remarketing tag, Google adds the user to a user list.", + "description": "This has been sunset as of October 2023, and will return an error response if called. For more information, see the release notes: https://developers.google.com/authorized-buyers/apis/relnotes#real-time-bidding-api Gets remarketing tag for a buyer. A remarketing tag is a piece of JavaScript code that can be placed on a web page. When a user visits a page containing a remarketing tag, Google adds the user to a user list.", "flatPath": "v1/buyers/{buyersId}:getRemarketingTag", "httpMethod": "GET", "id": "realtimebidding.buyers.getRemarketingTag", @@ -894,7 +894,7 @@ ], "parameters": { "name": { - "description": "Required. To fetch remarketing tag for an account, name must follow the pattern `buyers/{accountId}` where `{accountId}` represents ID of a buyer that owns the remarketing tag. For a bidder accessing remarketing tag on behalf of a child seat buyer, `{accountId}` should represent the ID of the child seat buyer. To fetch remarketing tag for a specific user list, name must follow the pattern `buyers/{accountId}/userLists/{userListId}`. See UserList.name.", + "description": "Required. To fetch the remarketing tag for an account, the name must follow the pattern `buyers/{accountId}`, where `{accountId}` represents the ID of the buyer that owns the remarketing tag. For a bidder accessing the remarketing tag on behalf of a child seat buyer, `{accountId}` should represent the ID of the child seat buyer. To fetch the remarketing tag for a specific user list, the name must follow the pattern `buyers/{accountId}/userLists/{userListId}`. See UserList.name.", "location": "path", "pattern": "^buyers/[^/]+$", "required": true, @@ -1103,7 +1103,7 @@ "userLists": { "methods": { "close": { - "description": "Change the status of a user list to CLOSED. This prevents new users from being added to the user list.", + "description": "Changes the status of a user list to CLOSED. This prevents new users from being added to the user list.", "flatPath": "v1/buyers/{buyersId}/userLists/{userListsId}:close", "httpMethod": "POST", "id": "realtimebidding.buyers.userLists.close", @@ -1131,7 +1131,7 @@ ] }, "create": { - "description": "Create a new user list.", + "description": "Creates a new user list.", "flatPath": "v1/buyers/{buyersId}/userLists", "httpMethod": "POST", "id": "realtimebidding.buyers.userLists.create", @@ -1140,7 +1140,7 @@ ], "parameters": { "parent": { - "description": "Required. The name of the parent buyer of the user list to be retrieved that must follow the pattern `buyers/{buyerAccountId}`, where `{buyerAccountId}` represents the account ID of the buyer who owns user lists. For a bidder accessing user lists on behalf of a child seat buyer , `{buyerAccountId}` should represent the account ID of the child seat buyer.", + "description": "Required. The name of the parent buyer of the user list to be retrieved, which must follow the pattern `buyers/{buyerAccountId}`, where `{buyerAccountId}` represents the account ID of the buyer who owns the user list. For a bidder accessing user lists on behalf of a child seat buyer, `{buyerAccountId}` should represent the account ID of the child seat buyer.", "location": "path", "pattern": "^buyers/[^/]+$", "required": true, @@ -1184,7 +1184,7 @@ ] }, "getRemarketingTag": { - "description": "Gets remarketing tag for a buyer. A remarketing tag is a piece of JavaScript code that can be placed on a web page. When a user visits a page containing a remarketing tag, Google adds the user to a user list.", + "description": "This has been sunset as of October 2023, and will return an error response if called. For more information, see the release notes: https://developers.google.com/authorized-buyers/apis/relnotes#real-time-bidding-api Gets remarketing tag for a buyer. A remarketing tag is a piece of JavaScript code that can be placed on a web page. When a user visits a page containing a remarketing tag, Google adds the user to a user list.", "flatPath": "v1/buyers/{buyersId}/userLists/{userListsId}:getRemarketingTag", "httpMethod": "GET", "id": "realtimebidding.buyers.userLists.getRemarketingTag", @@ -1193,7 +1193,7 @@ ], "parameters": { "name": { - "description": "Required. To fetch remarketing tag for an account, name must follow the pattern `buyers/{accountId}` where `{accountId}` represents ID of a buyer that owns the remarketing tag. For a bidder accessing remarketing tag on behalf of a child seat buyer, `{accountId}` should represent the ID of the child seat buyer. To fetch remarketing tag for a specific user list, name must follow the pattern `buyers/{accountId}/userLists/{userListId}`. See UserList.name.", + "description": "Required. To fetch the remarketing tag for an account, the name must follow the pattern `buyers/{accountId}`, where `{accountId}` represents the ID of the buyer that owns the remarketing tag. For a bidder accessing the remarketing tag on behalf of a child seat buyer, `{accountId}` should represent the ID of the child seat buyer. To fetch the remarketing tag for a specific user list, the name must follow the pattern `buyers/{accountId}/userLists/{userListId}`. See UserList.name.", "location": "path", "pattern": "^buyers/[^/]+/userLists/[^/]+$", "required": true, @@ -1224,7 +1224,7 @@ "type": "integer" }, "pageToken": { - "description": "Continuation page token (as received from a previous response).", + "description": "Continuation page token as received from a previous response.", "location": "query", "type": "string" }, @@ -1245,7 +1245,7 @@ ] }, "open": { - "description": "Change the status of a user list to OPEN. This allows new users to be added to the user list.", + "description": "Changes the status of a user list to OPEN. This allows new users to be added to the user list.", "flatPath": "v1/buyers/{buyersId}/userLists/{userListsId}:open", "httpMethod": "POST", "id": "realtimebidding.buyers.userLists.open", @@ -1273,7 +1273,7 @@ ] }, "update": { - "description": "Update the given user list. Only user lists with URLRestrictions can be updated.", + "description": "Updates the given user list. Only user lists with URLRestrictions can be updated.", "flatPath": "v1/buyers/{buyersId}/userLists/{userListsId}", "httpMethod": "PUT", "id": "realtimebidding.buyers.userLists.update", @@ -1305,7 +1305,7 @@ } } }, - "revision": "20230124", + "revision": "20240305", "rootUrl": "https://realtimebidding.googleapis.com/", "schemas": { "ActivatePretargetingConfigRequest": { @@ -1708,7 +1708,8 @@ "NON_INTERSTITIAL", "IN_BANNER_VIDEO", "RENDERING_SIZELESS_ADX", - "OMSDK_1_0" + "OMSDK_1_0", + "RENDERING_PLAYABLE" ], "enumDescriptions": [ "Do not use. This is a placeholder value only.", @@ -1748,7 +1749,8 @@ "The creative has an interstitial size of non interstitial. For pretargeting.", "The video type is in-banner video.", "The creative can dynamically resize to fill a variety of slot sizes.", - "The open measurement SDK is supported." + "The open measurement SDK is supported.", + "The creative is considered a playable display creative." ], "type": "string" }, @@ -1805,10 +1807,11 @@ "description": "A native creative." }, "renderUrl": { - "description": "Experimental field that can be used during the [FLEDGE Origin Trial](/authorized-buyers/rtb/fledge-origin-trial). The URL to fetch an interest group ad used in [TURTLEDOVE on-device auction](https://github.com/WICG/turtledove/blob/main/FLEDGE.md#1-browsers-record-interest-groups\"). This should be unique among all creatives for a given `accountId`.", + "description": "Experimental field that can be used during the [FLEDGE Origin Trial](/authorized-buyers/rtb/fledge-origin-trial). The URL to fetch an interest group ad used in [TURTLEDOVE on-device auction](https://github.com/WICG/turtledove/blob/main/FLEDGE.md#1-browsers-record-interest-groups\"). This should be unique among all creatives for a given `accountId`. This URL should be the same as the URL returned by [generateBid()](https://github.com/WICG/turtledove/blob/main/FLEDGE.md#32-on-device-bidding).", "type": "string" }, "restrictedCategories": { + "deprecated": true, "description": "All restricted categories for the ads that may be shown from this creative.", "items": { "enum": [ @@ -1824,6 +1827,7 @@ "type": "array" }, "version": { + "deprecated": true, "description": "Output only. The version of the creative. Version for a new creative is 1 and it increments during subsequent creative updates.", "format": "int32", "readOnly": true, @@ -1917,7 +1921,8 @@ "NON_INTERSTITIAL", "IN_BANNER_VIDEO", "RENDERING_SIZELESS_ADX", - "OMSDK_1_0" + "OMSDK_1_0", + "RENDERING_PLAYABLE" ], "enumDescriptions": [ "Do not use. This is a placeholder value only.", @@ -1957,7 +1962,8 @@ "The creative has an interstitial size of non interstitial. For pretargeting.", "The video type is in-banner video.", "The creative can dynamically resize to fill a variety of slot sizes.", - "The open measurement SDK is supported." + "The open measurement SDK is supported.", + "The creative is considered a playable display creative." ], "type": "string" }, @@ -2262,27 +2268,13 @@ "BID_PROTOCOL_UNSPECIFIED", "GOOGLE_RTB", "OPENRTB_JSON", - "OPENRTB_PROTOBUF", - "OPENRTB_2_2", - "OPENRTB_2_3", - "OPENRTB_PROTOBUF_2_3", - "OPENRTB_2_4", - "OPENRTB_PROTOBUF_2_4", - "OPENRTB_2_5", - "OPENRTB_PROTOBUF_2_5" + "OPENRTB_PROTOBUF" ], "enumDescriptions": [ "Placeholder for undefined bid protocol. This value should not be used.", "Google RTB protocol / Protobuf encoding.", "OpenRTB / JSON encoding (unversioned/latest).", - "OpenRTB / Protobuf encoding (unversioned/latest).", - "Deprecated: Use OPENRTB_JSON.", - "Deprecated: Use OPENRTB_JSON.", - "Deprecated: Use OPENRTB_PROTOBUF.", - "Deprecated: Use OPENRTB_JSON.", - "Deprecated: Use OPENRTB_PROTOBUF.", - "Deprecated: Use OPENRTB_JSON.", - "Deprecated: Use OPENRTB_PROTOBUF." + "OpenRTB / Protobuf encoding (unversioned/latest)." ], "type": "string" }, @@ -2323,11 +2315,11 @@ "type": "object" }, "GetRemarketingTagResponse": { - "description": "Response for a request to get remarketing tag.", + "description": "This has been sunset as of October 2023, and will return an error response if called. For more information, see the release notes: https://developers.google.com/authorized-buyers/apis/relnotes#real-time-bidding-api Response for a request to get remarketing tag.", "id": "GetRemarketingTagResponse", "properties": { "snippet": { - "description": "A HTML tag that can be placed on the advertiser's page to add users to a user list. For more information and code samples on using snippet on your website refer to [Tag your site for remarketing]( https://support.google.com/google-ads/answer/2476688).", + "description": "An HTML tag that can be placed on the advertiser's page to add users to a user list. For more information and code samples on using snippets on your website, refer to [Tag your site for remarketing](https://support.google.com/google-ads/answer/2476688).", "type": "string" } }, @@ -2521,7 +2513,7 @@ "id": "ListUserListsResponse", "properties": { "nextPageToken": { - "description": "The continuation page token to send back to the server in a subsequent request. Due to a currently known issue, it is recommended that the caller keep invoking the list method till the time a next page token is not returned (even if the result set is empty).", + "description": "The continuation page token to send back to the server in a subsequent request. Due to a currently known issue, it is recommended that the caller keep invoking the list method until the time a next page token is not returned, even if the result set is empty.", "type": "string" }, "userLists": { @@ -2726,6 +2718,10 @@ "description": "URL of the help center article describing this policy topic.", "type": "string" }, + "missingCertificate": { + "description": "Whether or not the policy topic is missing a certificate. Some policy topics require a certificate to unblock serving in some regions. For more information about creative certification, refer to: https://support.google.com/authorizedbuyers/answer/7450776", + "type": "boolean" + }, "policyTopic": { "description": "Policy topic this entry refers to. For example, \"ALCOHOL\", \"TRADEMARKS_IN_AD_TEXT\", or \"DESTINATION_NOT_WORKING\". The set of possible policy topics is not fixed for a particular API version and may change at any time. Can be used to filter the response of the creatives.list method", "type": "string" @@ -3132,7 +3128,7 @@ "type": "object" }, "UrlRestriction": { - "description": "Represents the URL restriction (for the URL captured by the pixel callback) for a user list.", + "description": "Deprecated. This will be removed in October 2023. For more information, see the release notes: https://developers.google.com/authorized-buyers/apis/relnotes#real-time-bidding-api Represents the URL restriction (for the URL captured by the pixel callback) for a user list.", "id": "UrlRestriction", "properties": { "endDate": { @@ -3215,7 +3211,7 @@ }, "urlRestriction": { "$ref": "UrlRestriction", - "description": "Required. The URL restriction for the user list." + "description": "Required. Deprecated. This will be removed in October 2023. For more information, see the release notes: https://developers.google.com/authorized-buyers/apis/relnotes#real-time-bidding-api The URL restriction for the user list." } }, "type": "object" diff --git a/etc/api/recaptchaenterprise/v1/recaptchaenterprise-api.json b/etc/api/recaptchaenterprise/v1/recaptchaenterprise-api.json index 4db325fd73..e4d4218c29 100644 --- a/etc/api/recaptchaenterprise/v1/recaptchaenterprise-api.json +++ b/etc/api/recaptchaenterprise/v1/recaptchaenterprise-api.json @@ -119,7 +119,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the Assessment, in the format \"projects/{project}/assessments/{assessment}\".", + "description": "Required. The resource name of the Assessment, in the format `projects/{project}/assessments/{assessment}`.", "location": "path", "pattern": "^projects/[^/]+/assessments/[^/]+$", "required": true, @@ -147,7 +147,7 @@ ], "parameters": { "parent": { - "description": "Required. The name of the project in which the assessment will be created, in the format \"projects/{project}\".", + "description": "Required. The name of the project in which the assessment will be created, in the format `projects/{project}`.", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -167,6 +167,186 @@ } } }, + "firewallpolicies": { + "methods": { + "create": { + "description": "Creates a new FirewallPolicy, specifying conditions at which reCAPTCHA Enterprise actions can be executed. A project may have a maximum of 1000 policies.", + "flatPath": "v1/projects/{projectsId}/firewallpolicies", + "httpMethod": "POST", + "id": "recaptchaenterprise.projects.firewallpolicies.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The name of the project this policy will apply to, in the format `projects/{project}`.", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/firewallpolicies", + "request": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FirewallPolicy" + }, + "response": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FirewallPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes the specified firewall policy.", + "flatPath": "v1/projects/{projectsId}/firewallpolicies/{firewallpoliciesId}", + "httpMethod": "DELETE", + "id": "recaptchaenterprise.projects.firewallpolicies.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the policy to be deleted, in the format `projects/{project}/firewallpolicies/{firewallpolicy}`.", + "location": "path", + "pattern": "^projects/[^/]+/firewallpolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns the specified firewall policy.", + "flatPath": "v1/projects/{projectsId}/firewallpolicies/{firewallpoliciesId}", + "httpMethod": "GET", + "id": "recaptchaenterprise.projects.firewallpolicies.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the requested policy, in the format `projects/{project}/firewallpolicies/{firewallpolicy}`.", + "location": "path", + "pattern": "^projects/[^/]+/firewallpolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FirewallPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Returns the list of all firewall policies that belong to a project.", + "flatPath": "v1/projects/{projectsId}/firewallpolicies", + "httpMethod": "GET", + "id": "recaptchaenterprise.projects.firewallpolicies.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of policies to return. Default is 10. Max limit is 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. The next_page_token value returned from a previous. ListFirewallPoliciesRequest, if any.", + "location": "query", + "type": "string" + }, + "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", + "response": { + "$ref": "GoogleCloudRecaptchaenterpriseV1ListFirewallPoliciesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the specified firewall policy.", + "flatPath": "v1/projects/{projectsId}/firewallpolicies/{firewallpoliciesId}", + "httpMethod": "PATCH", + "id": "recaptchaenterprise.projects.firewallpolicies.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Identifier. The resource name for the FirewallPolicy in the format `projects/{project}/firewallpolicies/{firewallpolicy}`.", + "location": "path", + "pattern": "^projects/[^/]+/firewallpolicies/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. The mask to control which fields of the policy get updated. If the mask is not present, all fields will be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FirewallPolicy" + }, + "response": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FirewallPolicy" + }, + "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" + ] + } + } + }, "keys": { "methods": { "create": { @@ -179,7 +359,7 @@ ], "parameters": { "parent": { - "description": "Required. The name of the project in which the key will be created, in the format \"projects/{project}\".", + "description": "Required. The name of the project in which the key will be created, in the format `projects/{project}`.", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -207,7 +387,7 @@ ], "parameters": { "name": { - "description": "Required. The name of the key to be deleted, in the format \"projects/{project}/keys/{key}\".", + "description": "Required. The name of the key to be deleted, in the format `projects/{project}/keys/{key}`.", "location": "path", "pattern": "^projects/[^/]+/keys/[^/]+$", "required": true, @@ -232,7 +412,7 @@ ], "parameters": { "name": { - "description": "Required. The name of the requested key, in the format \"projects/{project}/keys/{key}\".", + "description": "Required. The name of the requested key, in the format `projects/{project}/keys/{key}`.", "location": "path", "pattern": "^projects/[^/]+/keys/[^/]+$", "required": true, @@ -257,7 +437,7 @@ ], "parameters": { "name": { - "description": "Required. The name of the requested metrics, in the format \"projects/{project}/keys/{key}/metrics\".", + "description": "Required. The name of the requested metrics, in the format `projects/{project}/keys/{key}/metrics`.", "location": "path", "pattern": "^projects/[^/]+/keys/[^/]+/metrics$", "required": true, @@ -293,7 +473,7 @@ "type": "string" }, "parent": { - "description": "Required. The name of the project that contains the keys that will be listed, in the format \"projects/{project}\".", + "description": "Required. The name of the project that contains the keys that will be listed, in the format `projects/{project}`.", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -309,7 +489,7 @@ ] }, "migrate": { - "description": "Migrates an existing key from reCAPTCHA to reCAPTCHA Enterprise. Once a key is migrated, it can be used from either product. SiteVerify requests are billed as CreateAssessment calls. You must be authenticated as one of the current owners of the reCAPTCHA Site Key, and your user must have the reCAPTCHA Enterprise Admin IAM role in the destination project.", + "description": "Migrates an existing key from reCAPTCHA to reCAPTCHA Enterprise. Once a key is migrated, it can be used from either product. SiteVerify requests are billed as CreateAssessment calls. You must be authenticated as one of the current owners of the reCAPTCHA Key, and your user must have the reCAPTCHA Enterprise Admin IAM role in the destination project.", "flatPath": "v1/projects/{projectsId}/keys/{keysId}:migrate", "httpMethod": "POST", "id": "recaptchaenterprise.projects.keys.migrate", @@ -318,7 +498,7 @@ ], "parameters": { "name": { - "description": "Required. The name of the key to be migrated, in the format \"projects/{project}/keys/{key}\".", + "description": "Required. The name of the key to be migrated, in the format `projects/{project}/keys/{key}`.", "location": "path", "pattern": "^projects/[^/]+/keys/[^/]+$", "required": true, @@ -346,7 +526,7 @@ ], "parameters": { "name": { - "description": "The resource name for the Key in the format \"projects/{project}/keys/{key}\".", + "description": "Identifier. The resource name for the Key in the format `projects/{project}/keys/{key}`.", "location": "path", "pattern": "^projects/[^/]+/keys/[^/]+$", "required": true, @@ -380,7 +560,7 @@ ], "parameters": { "key": { - "description": "Required. The public key name linked to the requested secret key in the format \"projects/{project}/keys/{key}\".", + "description": "Required. The public key name linked to the requested secret key in the format `projects/{project}/keys/{key}`.", "location": "path", "pattern": "^projects/[^/]+/keys/[^/]+$", "required": true, @@ -409,7 +589,7 @@ ], "parameters": { "project": { - "description": "Required. The name of the project to search related account group memberships from. Specify the project name in the following format: \"projects/{project}\".", + "description": "Required. The name of the project to search related account group memberships from. Specify the project name in the following format: `projects/{project}`.", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -452,7 +632,7 @@ "type": "string" }, "parent": { - "description": "Required. The name of the project to list related account groups from, in the format \"projects/{project}\".", + "description": "Required. The name of the project to list related account groups from, in the format `projects/{project}`.", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -514,7 +694,7 @@ } } }, - "revision": "20230115", + "revision": "20240303", "rootUrl": "https://recaptchaenterprise.googleapis.com/", "schemas": { "GoogleCloudRecaptchaenterpriseV1AccountDefenderAssessment": { @@ -522,7 +702,7 @@ "id": "GoogleCloudRecaptchaenterpriseV1AccountDefenderAssessment", "properties": { "labels": { - "description": "Labels for this request.", + "description": "Output only. Labels for this request.", "items": { "enum": [ "ACCOUNT_DEFENDER_LABEL_UNSPECIFIED", @@ -540,6 +720,7 @@ ], "type": "string" }, + "readOnly": true, "type": "array" } }, @@ -550,14 +731,14 @@ "id": "GoogleCloudRecaptchaenterpriseV1AccountVerificationInfo", "properties": { "endpoints": { - "description": "Endpoints that can be used for identity verification.", + "description": "Optional. Endpoints that can be used for identity verification.", "items": { "$ref": "GoogleCloudRecaptchaenterpriseV1EndpointVerificationInfo" }, "type": "array" }, "languageCode": { - "description": "Language code preference for the verification message, set as a IETF BCP 47 language code.", + "description": "Optional. Language code preference for the verification message, set as a IETF BCP 47 language code.", "type": "string" }, "latestVerificationResult": { @@ -590,7 +771,8 @@ "type": "string" }, "username": { - "description": "Username of the account that is being verified. Deprecated. Customers should now provide the hashed account ID field in Event.", + "deprecated": true, + "description": "Username of the account that is being verified. Deprecated. Customers should now provide the `account_id` field in `event.user_info`.", "type": "string" } }, @@ -601,15 +783,19 @@ "id": "GoogleCloudRecaptchaenterpriseV1AndroidKeySettings", "properties": { "allowAllPackageNames": { - "description": "If set to true, allowed_package_names are not enforced.", + "description": "Optional. If set to true, allowed_package_names are not enforced.", "type": "boolean" }, "allowedPackageNames": { - "description": "Android package names of apps allowed to use the key. Example: 'com.companyname.appname'", + "description": "Optional. Android package names of apps allowed to use the key. Example: 'com.companyname.appname'", "items": { "type": "string" }, "type": "array" + }, + "supportNonGoogleAppStoreDistribution": { + "description": "Optional. Set to true for keys that are used in an Android application that is available for download in app stores in addition to the Google Play Store.", + "type": "boolean" } }, "type": "object" @@ -618,6 +804,10 @@ "description": "The request message to annotate an Assessment.", "id": "GoogleCloudRecaptchaenterpriseV1AnnotateAssessmentRequest", "properties": { + "accountId": { + "description": "Optional. A stable account identifier to apply to the assessment. This is an alternative to setting `account_id` in `CreateAssessment`, for example when a stable account identifier is not yet known in the initial request.", + "type": "string" + }, "annotation": { "description": "Optional. The annotation that will be assigned to the Event. This field can be left empty to provide reasons that apply to an event without concluding whether the event is legitimate or fraudulent.", "enum": [ @@ -627,6 +817,13 @@ "PASSWORD_CORRECT", "PASSWORD_INCORRECT" ], + "enumDeprecated": [ + false, + false, + false, + true, + true + ], "enumDescriptions": [ "Default unspecified type.", "Provides information that the event turned out to be legitimate.", @@ -637,12 +834,12 @@ "type": "string" }, "hashedAccountId": { - "description": "Optional. Unique stable hashed user identifier to apply to the assessment. This is an alternative to setting the hashed_account_id in CreateAssessment, for example when the account identifier is not yet known in the initial request. It is recommended that the identifier is hashed using hmac-sha256 with stable secret.", + "description": "Optional. A stable hashed account identifier to apply to the assessment. This is an alternative to setting `hashed_account_id` in `CreateAssessment`, for example when a stable account identifier is not yet known in the initial request.", "format": "byte", "type": "string" }, "reasons": { - "description": "Optional. Optional reasons for the annotation that will be assigned to the Event.", + "description": "Optional. Reasons for the annotation that are assigned to the event.", "items": { "enum": [ "REASON_UNSPECIFIED", @@ -681,6 +878,10 @@ "type": "string" }, "type": "array" + }, + "transactionEvent": { + "$ref": "GoogleCloudRecaptchaenterpriseV1TransactionEvent", + "description": "Optional. If the assessment is part of a payment transaction, provide details on payment lifecycle events that occur in the transaction." } }, "type": "object" @@ -691,30 +892,65 @@ "properties": {}, "type": "object" }, + "GoogleCloudRecaptchaenterpriseV1AppleDeveloperId": { + "description": "Contains fields that are required to perform Apple-specific integrity checks.", + "id": "GoogleCloudRecaptchaenterpriseV1AppleDeveloperId", + "properties": { + "keyId": { + "description": "Required. The Apple developer key ID (10-character string).", + "type": "string" + }, + "privateKey": { + "description": "Required. Input only. A private key (downloaded as a text file with a .p8 file extension) generated for your Apple Developer account. Ensure that Apple DeviceCheck is enabled for the private key.", + "type": "string" + }, + "teamId": { + "description": "Required. The Apple team ID (10-character string) owning the provisioning profile used to build your application.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRecaptchaenterpriseV1Assessment": { - "description": "A recaptcha assessment resource.", + "description": "A reCAPTCHA Enterprise assessment resource.", "id": "GoogleCloudRecaptchaenterpriseV1Assessment", "properties": { "accountDefenderAssessment": { "$ref": "GoogleCloudRecaptchaenterpriseV1AccountDefenderAssessment", - "description": "Assessment returned by account defender when a hashed_account_id is provided." + "description": "Output only. Assessment returned by account defender when an account identifier is provided.", + "readOnly": true }, "accountVerification": { "$ref": "GoogleCloudRecaptchaenterpriseV1AccountVerificationInfo", - "description": "Account verification information for identity verification. The assessment event must include a token and site key to use this feature." + "description": "Optional. Account verification information for identity verification. The assessment event must include a token and site key to use this feature." }, "event": { "$ref": "GoogleCloudRecaptchaenterpriseV1Event", - "description": "The event being assessed." + "description": "Optional. The event being assessed." + }, + "firewallPolicyAssessment": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FirewallPolicyAssessment", + "description": "Output only. Assessment returned when firewall policies belonging to the project are evaluated using the field firewall_policy_evaluation.", + "readOnly": true + }, + "fraudPreventionAssessment": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FraudPreventionAssessment", + "description": "Output only. Assessment returned by Fraud Prevention when TransactionData is provided.", + "readOnly": true + }, + "fraudSignals": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FraudSignals", + "description": "Output only. Fraud Signals specific to the users involved in a payment transaction.", + "readOnly": true }, "name": { - "description": "Output only. The resource name for the Assessment in the format \"projects/{project}/assessments/{assessment}\".", + "description": "Output only. Identifier. The resource name for the Assessment in the format `projects/{project}/assessments/{assessment}`.", "readOnly": true, "type": "string" }, "privatePasswordLeakVerification": { "$ref": "GoogleCloudRecaptchaenterpriseV1PrivatePasswordLeakVerification", - "description": "The private password leak verification field contains the parameters that are used to to check for leaks privately without sharing user credentials." + "description": "Optional. The private password leak verification field contains the parameters that are used to to check for leaks privately without sharing user credentials." }, "riskAnalysis": { "$ref": "GoogleCloudRecaptchaenterpriseV1RiskAnalysis", @@ -783,32 +1019,327 @@ "type": "object" }, "GoogleCloudRecaptchaenterpriseV1Event": { + "description": "The event being assessed.", "id": "GoogleCloudRecaptchaenterpriseV1Event", "properties": { "expectedAction": { "description": "Optional. The expected action for this type of event. This should be the same action provided at token generation time on client-side platforms already integrated with recaptcha enterprise.", "type": "string" }, + "express": { + "description": "Optional. Flag for a reCAPTCHA express request for an assessment without a token. If enabled, `site_key` must reference a SCORE key with WAF feature set to EXPRESS.", + "type": "boolean" + }, + "firewallPolicyEvaluation": { + "description": "Optional. Flag for enabling firewall policy config assessment. If this flag is enabled, the firewall policy will be evaluated and a suggested firewall action will be returned in the response.", + "type": "boolean" + }, "hashedAccountId": { - "description": "Optional. Unique stable hashed user identifier for the request. The identifier must be hashed using hmac-sha256 with stable secret.", + "deprecated": true, + "description": "Optional. Deprecated: use `user_info.account_id` instead. Unique stable hashed user identifier for the request. The identifier must be hashed using hmac-sha256 with stable secret.", "format": "byte", "type": "string" }, + "headers": { + "description": "Optional. HTTP header information about the request.", + "items": { + "type": "string" + }, + "type": "array" + }, + "ja3": { + "description": "Optional. JA3 fingerprint for SSL clients.", + "type": "string" + }, + "requestedUri": { + "description": "Optional. The URI resource the user requested that triggered an assessment.", + "type": "string" + }, "siteKey": { - "description": "Optional. The site key that was used to invoke reCAPTCHA on your site and generate the token.", + "description": "Optional. The site key that was used to invoke reCAPTCHA Enterprise on your site and generate the token.", "type": "string" }, "token": { - "description": "Optional. The user response token provided by the reCAPTCHA client-side integration on your site.", + "description": "Optional. The user response token provided by the reCAPTCHA Enterprise client-side integration on your site.", "type": "string" }, + "transactionData": { + "$ref": "GoogleCloudRecaptchaenterpriseV1TransactionData", + "description": "Optional. Data describing a payment transaction to be assessed. Sending this data enables reCAPTCHA Enterprise Fraud Prevention and the FraudPreventionAssessment component in the response." + }, "userAgent": { "description": "Optional. The user agent present in the request from the user's device related to this event.", "type": "string" }, + "userInfo": { + "$ref": "GoogleCloudRecaptchaenterpriseV1UserInfo", + "description": "Optional. Information about the user that generates this event, when they can be identified. They are often identified through the use of an account for logged-in requests or login/registration requests, or by providing user identifiers for guest actions like checkout." + }, "userIpAddress": { "description": "Optional. The IP address in the request from the user's device related to this event.", "type": "string" + }, + "wafTokenAssessment": { + "description": "Optional. Flag for running WAF token assessment. If enabled, the token must be specified, and have been created by a WAF-enabled key.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1FirewallAction": { + "description": "An individual action. Each action represents what to do if a policy matches.", + "id": "GoogleCloudRecaptchaenterpriseV1FirewallAction", + "properties": { + "allow": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FirewallActionAllowAction", + "description": "The user request did not match any policy and should be allowed access to the requested resource." + }, + "block": { + "$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." + }, + "setHeader": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FirewallActionSetHeaderAction", + "description": "This action will set a custom header but allow the request to continue to the customer backend." + }, + "substitute": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FirewallActionSubstituteAction", + "description": "This action will transparently serve a different page to an offending user." + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1FirewallActionAllowAction": { + "description": "An allow action continues processing a request unimpeded.", + "id": "GoogleCloudRecaptchaenterpriseV1FirewallActionAllowAction", + "properties": {}, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1FirewallActionBlockAction": { + "description": "A block action serves an HTTP error code a prevents the request from hitting the backend.", + "id": "GoogleCloudRecaptchaenterpriseV1FirewallActionBlockAction", + "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", + "properties": {}, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1FirewallActionSetHeaderAction": { + "description": "A set header action sets a header and forwards the request to the backend. This can be used to trigger custom protection implemented on the backend.", + "id": "GoogleCloudRecaptchaenterpriseV1FirewallActionSetHeaderAction", + "properties": { + "key": { + "description": "Optional. The header key to set in the request to the backend server.", + "type": "string" + }, + "value": { + "description": "Optional. The header value to set in the request to the backend server.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1FirewallActionSubstituteAction": { + "description": "A substitute action transparently serves a different page than the one requested.", + "id": "GoogleCloudRecaptchaenterpriseV1FirewallActionSubstituteAction", + "properties": { + "path": { + "description": "Optional. The address to redirect to. The target is a relative path in the current host. Example: \"/blog/404.html\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1FirewallPolicy": { + "description": "A FirewallPolicy represents a single matching pattern and resulting actions to take.", + "id": "GoogleCloudRecaptchaenterpriseV1FirewallPolicy", + "properties": { + "actions": { + "description": "Optional. The actions that the caller should take regarding user access. There should be at most one terminal action. A terminal action is any action that forces a response, such as `AllowAction`, `BlockAction` or `SubstituteAction`. Zero or more non-terminal actions such as `SetHeader` might be specified. A single policy can contain up to 16 actions.", + "items": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FirewallAction" + }, + "type": "array" + }, + "condition": { + "description": "Optional. A CEL (Common Expression Language) conditional expression that specifies if this policy applies to an incoming user request. If this condition evaluates to true and the requested path matched the path pattern, the associated actions should be executed by the caller. The condition string is checked for CEL syntax correctness on creation. For more information, see the [CEL spec](https://github.com/google/cel-spec) and its [language definition](https://github.com/google/cel-spec/blob/master/doc/langdef.md). A condition has a max length of 500 characters.", + "type": "string" + }, + "description": { + "description": "Optional. A description of what this policy aims to achieve, for convenience purposes. The description can at most include 256 UTF-8 characters.", + "type": "string" + }, + "name": { + "description": "Identifier. The resource name for the FirewallPolicy in the format `projects/{project}/firewallpolicies/{firewallpolicy}`.", + "type": "string" + }, + "path": { + "description": "Optional. The path for which this policy applies, specified as a glob pattern. For more information on glob, see the [manual page](https://man7.org/linux/man-pages/man7/glob.7.html). A path has a max length of 200 characters.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1FirewallPolicyAssessment": { + "description": "Policy config assessment.", + "id": "GoogleCloudRecaptchaenterpriseV1FirewallPolicyAssessment", + "properties": { + "error": { + "$ref": "GoogleRpcStatus", + "description": "Output only. If the processing of a policy config fails, an error will be populated and the firewall_policy will be left empty.", + "readOnly": true + }, + "firewallPolicy": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FirewallPolicy", + "description": "Output only. The policy that matched the request. If more than one policy may match, this is the first match. If no policy matches the incoming request, the policy field will be left empty.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1FraudPreventionAssessment": { + "description": "Assessment for Fraud Prevention.", + "id": "GoogleCloudRecaptchaenterpriseV1FraudPreventionAssessment", + "properties": { + "behavioralTrustVerdict": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FraudPreventionAssessmentBehavioralTrustVerdict", + "description": "Output only. Assessment of this transaction for behavioral trust.", + "readOnly": true + }, + "cardTestingVerdict": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FraudPreventionAssessmentCardTestingVerdict", + "description": "Output only. Assessment of this transaction for risk of being part of a card testing attack.", + "readOnly": true + }, + "stolenInstrumentVerdict": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FraudPreventionAssessmentStolenInstrumentVerdict", + "description": "Output only. Assessment of this transaction for risk of a stolen instrument.", + "readOnly": true + }, + "transactionRisk": { + "description": "Output only. Probability of this transaction being fraudulent. Summarizes the combined risk of attack vectors below. Values are from 0.0 (lowest) to 1.0 (highest).", + "format": "float", + "readOnly": true, + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1FraudPreventionAssessmentBehavioralTrustVerdict": { + "description": "Information about behavioral trust of the transaction.", + "id": "GoogleCloudRecaptchaenterpriseV1FraudPreventionAssessmentBehavioralTrustVerdict", + "properties": { + "trust": { + "description": "Output only. Probability of this transaction attempt being executed in a behaviorally trustworthy way. Values are from 0.0 (lowest) to 1.0 (highest).", + "format": "float", + "readOnly": true, + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1FraudPreventionAssessmentCardTestingVerdict": { + "description": "Information about card testing fraud, where an adversary is testing fraudulently obtained cards or brute forcing their details.", + "id": "GoogleCloudRecaptchaenterpriseV1FraudPreventionAssessmentCardTestingVerdict", + "properties": { + "risk": { + "description": "Output only. Probability of this transaction attempt being part of a card testing attack. Values are from 0.0 (lowest) to 1.0 (highest).", + "format": "float", + "readOnly": true, + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1FraudPreventionAssessmentStolenInstrumentVerdict": { + "description": "Information about stolen instrument fraud, where the user is not the legitimate owner of the instrument being used for the purchase.", + "id": "GoogleCloudRecaptchaenterpriseV1FraudPreventionAssessmentStolenInstrumentVerdict", + "properties": { + "risk": { + "description": "Output only. Probability of this transaction being executed with a stolen instrument. Values are from 0.0 (lowest) to 1.0 (highest).", + "format": "float", + "readOnly": true, + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1FraudSignals": { + "description": "Fraud signals describing users and cards involved in the transaction.", + "id": "GoogleCloudRecaptchaenterpriseV1FraudSignals", + "properties": { + "cardSignals": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FraudSignalsCardSignals", + "description": "Output only. Signals describing the payment card or cards used in this transaction.", + "readOnly": true + }, + "userSignals": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FraudSignalsUserSignals", + "description": "Output only. Signals describing the end user in this transaction.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1FraudSignalsCardSignals": { + "description": "Signals describing the payment card used in this transaction.", + "id": "GoogleCloudRecaptchaenterpriseV1FraudSignalsCardSignals", + "properties": { + "cardLabels": { + "description": "Output only. The labels for the payment card in this transaction.", + "items": { + "enum": [ + "CARD_LABEL_UNSPECIFIED", + "PREPAID", + "VIRTUAL", + "UNEXPECTED_LOCATION" + ], + "enumDescriptions": [ + "No label specified.", + "This card has been detected as prepaid.", + "This card has been detected as virtual, such as a card number generated for a single transaction or merchant.", + "This card has been detected as being used in an unexpected geographic location." + ], + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1FraudSignalsUserSignals": { + "description": "Signals describing the user involved in this transaction.", + "id": "GoogleCloudRecaptchaenterpriseV1FraudSignalsUserSignals", + "properties": { + "activeDaysLowerBound": { + "description": "Output only. This user (based on email, phone, and other identifiers) has been seen on the internet for at least this number of days.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "syntheticRisk": { + "description": "Output only. Likelihood (from 0.0 to 1.0) this user includes synthetic components in their identity, such as a randomly generated email address, temporary phone number, or fake shipping address.", + "format": "float", + "readOnly": true, + "type": "number" } }, "type": "object" @@ -818,15 +1349,19 @@ "id": "GoogleCloudRecaptchaenterpriseV1IOSKeySettings", "properties": { "allowAllBundleIds": { - "description": "If set to true, allowed_bundle_ids are not enforced.", + "description": "Optional. If set to true, allowed_bundle_ids are not enforced.", "type": "boolean" }, "allowedBundleIds": { - "description": "iOS bundle ids of apps allowed to use the key. Example: 'com.companyname.productname.appname'", + "description": "Optional. iOS bundle ids of apps allowed to use the key. Example: 'com.companyname.productname.appname'", "items": { "type": "string" }, "type": "array" + }, + "appleDeveloperId": { + "$ref": "GoogleCloudRecaptchaenterpriseV1AppleDeveloperId", + "description": "Optional. Apple Developer account details for the app that is protected by the reCAPTCHA Key. reCAPTCHA Enterprise leverages platform-specific checks like Apple App Attest and Apple DeviceCheck to protect your app from abuse. Providing these fields allows reCAPTCHA Enterprise to get a better assessment of the integrity of your app." } }, "type": "object" @@ -840,12 +1375,13 @@ "description": "Settings for keys that can be used by Android apps." }, "createTime": { - "description": "The timestamp corresponding to the creation of this Key.", + "description": "Output only. The timestamp corresponding to the creation of this key.", "format": "google-datetime", + "readOnly": true, "type": "string" }, "displayName": { - "description": "Human-readable display name of this key. Modifiable by user.", + "description": "Required. Human-readable display name of this key. Modifiable by user.", "type": "string" }, "iosSettings": { @@ -856,20 +1392,20 @@ "additionalProperties": { "type": "string" }, - "description": "See Creating and managing labels.", + "description": "Optional. See [Creating and managing labels] (https://cloud.google.com/recaptcha-enterprise/docs/labels).", "type": "object" }, "name": { - "description": "The resource name for the Key in the format \"projects/{project}/keys/{key}\".", + "description": "Identifier. The resource name for the Key in the format `projects/{project}/keys/{key}`.", "type": "string" }, "testingOptions": { "$ref": "GoogleCloudRecaptchaenterpriseV1TestingOptions", - "description": "Options for user acceptance testing." + "description": "Optional. Options for user acceptance testing." }, "wafSettings": { "$ref": "GoogleCloudRecaptchaenterpriseV1WafSettings", - "description": "Settings for WAF" + "description": "Optional. Settings for WAF" }, "webSettings": { "$ref": "GoogleCloudRecaptchaenterpriseV1WebKeySettings", @@ -878,6 +1414,24 @@ }, "type": "object" }, + "GoogleCloudRecaptchaenterpriseV1ListFirewallPoliciesResponse": { + "description": "Response to request to list firewall policies belonging to a key.", + "id": "GoogleCloudRecaptchaenterpriseV1ListFirewallPoliciesResponse", + "properties": { + "firewallPolicies": { + "description": "Policy details.", + "items": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FirewallPolicy" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Token to retrieve the next page of results. It is set to empty if no policies remain in results.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRecaptchaenterpriseV1ListKeysResponse": { "description": "Response to request to list keys in a project.", "id": "GoogleCloudRecaptchaenterpriseV1ListKeysResponse", @@ -944,7 +1498,7 @@ "type": "array" }, "name": { - "description": "Output only. The name of the metrics, in the format \"projects/{project}/keys/{key}/metrics\".", + "description": "Output only. Identifier. The name of the metrics, in the format `projects/{project}/keys/{key}/metrics`.", "readOnly": true, "type": "string" }, @@ -993,7 +1547,7 @@ "type": "string" }, "lookupHashPrefix": { - "description": "Optional. Exactly 26-bit prefix of the SHA-256 hash of the canonicalized username. It is used to look up password leaks associated with that hash prefix.", + "description": "Required. Exactly 26-bit prefix of the SHA-256 hash of the canonicalized username. It is used to look up password leaks associated with that hash prefix.", "format": "byte", "type": "string" }, @@ -1011,7 +1565,7 @@ "id": "GoogleCloudRecaptchaenterpriseV1RelatedAccountGroup", "properties": { "name": { - "description": "Required. The resource name for the related account group in the format `projects/{project}/relatedaccountgroups/{related_account_group}`.", + "description": "Required. Identifier. The resource name for the related account group in the format `projects/{project}/relatedaccountgroups/{related_account_group}`.", "type": "string" } }, @@ -1021,18 +1575,43 @@ "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" }, "name": { - "description": "Required. The resource name for this membership in the format `projects/{project}/relatedaccountgroups/{relatedaccountgroup}/memberships/{membership}`.", + "description": "Required. Identifier. The resource name for this membership in the format `projects/{project}/relatedaccountgroups/{relatedaccountgroup}/memberships/{membership}`.", "type": "string" } }, "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", @@ -1048,8 +1627,16 @@ "description": "Risk analysis result for an event.", "id": "GoogleCloudRecaptchaenterpriseV1RiskAnalysis", "properties": { + "extendedVerdictReasons": { + "description": "Output only. Extended verdict reasons to be used for experimentation only. The set of possible reasons is subject to change.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "reasons": { - "description": "Reasons contributing to the risk analysis verdict.", + "description": "Output only. Reasons contributing to the risk analysis verdict.", "items": { "enum": [ "CLASSIFICATION_REASON_UNSPECIFIED", @@ -1057,7 +1644,9 @@ "UNEXPECTED_ENVIRONMENT", "TOO_MUCH_TRAFFIC", "UNEXPECTED_USAGE_PATTERNS", - "LOW_CONFIDENCE_SCORE" + "LOW_CONFIDENCE_SCORE", + "SUSPECTED_CARDING", + "SUSPECTED_CHARGEBACK" ], "enumDescriptions": [ "Default unspecified type.", @@ -1065,15 +1654,19 @@ "The event originated from an illegitimate environment.", "Traffic volume from the event source is higher than normal.", "Interactions with the site were significantly different than expected patterns.", - "Too little traffic has been received from this site thus far to generate quality risk analysis." + "Too little traffic has been received from this site thus far to generate quality risk analysis.", + "The request matches behavioral characteristics of a carding attack.", + "The request matches behavioral characteristics of chargebacks for fraud." ], "type": "string" }, + "readOnly": true, "type": "array" }, "score": { - "description": "Legitimate event score from 0.0 to 1.0. (1.0 means very likely legitimate traffic while 0.0 means very likely non-legitimate traffic).", + "description": "Output only. Legitimate event score from 0.0 to 1.0. (1.0 means very likely legitimate traffic while 0.0 means very likely non-legitimate traffic).", "format": "float", + "readOnly": true, "type": "number" } }, @@ -1116,8 +1709,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 we should search connections to. 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" }, @@ -1156,7 +1754,7 @@ "id": "GoogleCloudRecaptchaenterpriseV1TestingOptions", "properties": { "testingChallenge": { - "description": "For challenge-based keys only (CHECKBOX, INVISIBLE), all challenge requests for this site will return nocaptcha if NOCAPTCHA, or an unsolvable challenge if CHALLENGE.", + "description": "Optional. For challenge-based keys only (CHECKBOX, INVISIBLE), all challenge requests for this site will return nocaptcha if NOCAPTCHA, or an unsolvable challenge if CHALLENGE.", "enum": [ "TESTING_CHALLENGE_UNSPECIFIED", "NOCAPTCHA", @@ -1170,7 +1768,7 @@ "type": "string" }, "testingScore": { - "description": "All assessments for this Key will return this score. Must be between 0 (likely not legitimate) and 1 (likely legitimate) inclusive.", + "description": "Optional. All assessments for this Key will return this score. Must be between 0 (likely not legitimate) and 1 (likely legitimate) inclusive.", "format": "float", "type": "number" } @@ -1178,27 +1776,32 @@ "type": "object" }, "GoogleCloudRecaptchaenterpriseV1TokenProperties": { + "description": "Properties of the provided event token.", "id": "GoogleCloudRecaptchaenterpriseV1TokenProperties", "properties": { "action": { - "description": "Action name provided at token generation.", + "description": "Output only. Action name provided at token generation.", + "readOnly": true, "type": "string" }, "androidPackageName": { - "description": "The name of the Android package with which the token was generated (Android keys only).", + "description": "Output only. The name of the Android package with which the token was generated (Android keys only).", + "readOnly": true, "type": "string" }, "createTime": { - "description": "The timestamp corresponding to the generation of the token.", + "description": "Output only. The timestamp corresponding to the generation of the token.", "format": "google-datetime", + "readOnly": true, "type": "string" }, "hostname": { - "description": "The hostname of the page on which the token was generated (Web keys only).", + "description": "Output only. The hostname of the page on which the token was generated (Web keys only).", + "readOnly": true, "type": "string" }, "invalidReason": { - "description": "Reason associated with the response when valid = false.", + "description": "Output only. Reason associated with the response when valid = false.", "enum": [ "INVALID_REASON_UNSPECIFIED", "UNKNOWN_INVALID_REASON", @@ -1217,19 +1820,312 @@ "The user verification token was not present.", "A retriable error (such as network failure) occurred on the browser. Could easily be simulated by an attacker." ], + "readOnly": true, "type": "string" }, "iosBundleId": { - "description": "The ID of the iOS bundle with which the token was generated (iOS keys only).", + "description": "Output only. The ID of the iOS bundle with which the token was generated (iOS keys only).", + "readOnly": true, "type": "string" }, "valid": { - "description": "Whether the provided user response token is valid. When valid = false, the reason could be specified in invalid_reason or it could also be due to a user failing to solve a challenge or a sitekey mismatch (i.e the sitekey used to generate the token was different than the one specified in the assessment).", + "description": "Output only. Whether the provided user response token is valid. When valid = false, the reason could be specified in invalid_reason or it could also be due to a user failing to solve a challenge or a sitekey mismatch (i.e the sitekey used to generate the token was different than the one specified in the assessment).", + "readOnly": true, "type": "boolean" } }, "type": "object" }, + "GoogleCloudRecaptchaenterpriseV1TransactionData": { + "description": "Transaction data associated with a payment protected by reCAPTCHA Enterprise.", + "id": "GoogleCloudRecaptchaenterpriseV1TransactionData", + "properties": { + "billingAddress": { + "$ref": "GoogleCloudRecaptchaenterpriseV1TransactionDataAddress", + "description": "Optional. Address associated with the payment method when applicable." + }, + "cardBin": { + "description": "Optional. The Bank Identification Number - generally the first 6 or 8 digits of the card.", + "type": "string" + }, + "cardLastFour": { + "description": "Optional. The last four digits of the card.", + "type": "string" + }, + "currencyCode": { + "description": "Optional. The currency code in ISO-4217 format.", + "type": "string" + }, + "gatewayInfo": { + "$ref": "GoogleCloudRecaptchaenterpriseV1TransactionDataGatewayInfo", + "description": "Optional. Information about the payment gateway's response to the transaction." + }, + "items": { + "description": "Optional. Items purchased in this transaction.", + "items": { + "$ref": "GoogleCloudRecaptchaenterpriseV1TransactionDataItem" + }, + "type": "array" + }, + "merchants": { + "description": "Optional. Information about the user or users fulfilling the transaction.", + "items": { + "$ref": "GoogleCloudRecaptchaenterpriseV1TransactionDataUser" + }, + "type": "array" + }, + "paymentMethod": { + "description": "Optional. The payment method for the transaction. The allowed values are: * credit-card * debit-card * gift-card * processor-{name} (If a third-party is used, for example, processor-paypal) * custom-{name} (If an alternative method is used, for example, custom-crypto)", + "type": "string" + }, + "shippingAddress": { + "$ref": "GoogleCloudRecaptchaenterpriseV1TransactionDataAddress", + "description": "Optional. Destination address if this transaction involves shipping a physical item." + }, + "shippingValue": { + "description": "Optional. The value of shipping in the specified currency. 0 for free or no shipping.", + "format": "double", + "type": "number" + }, + "transactionId": { + "description": "Unique identifier for the transaction. This custom identifier can be used to reference this transaction in the future, for example, labeling a refund or chargeback event. Two attempts at the same transaction should use the same transaction id.", + "type": "string" + }, + "user": { + "$ref": "GoogleCloudRecaptchaenterpriseV1TransactionDataUser", + "description": "Optional. Information about the user paying/initiating the transaction." + }, + "value": { + "description": "Optional. The decimal value of the transaction in the specified currency.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1TransactionDataAddress": { + "description": "Structured address format for billing and shipping addresses.", + "id": "GoogleCloudRecaptchaenterpriseV1TransactionDataAddress", + "properties": { + "address": { + "description": "Optional. The first lines of the address. The first line generally contains the street name and number, and further lines may include information such as an apartment number.", + "items": { + "type": "string" + }, + "type": "array" + }, + "administrativeArea": { + "description": "Optional. The state, province, or otherwise administrative area of the address.", + "type": "string" + }, + "locality": { + "description": "Optional. The town/city of the address.", + "type": "string" + }, + "postalCode": { + "description": "Optional. The postal or ZIP code of the address.", + "type": "string" + }, + "recipient": { + "description": "Optional. The recipient name, potentially including information such as \"care of\".", + "type": "string" + }, + "regionCode": { + "description": "Optional. The CLDR country/region of the address.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1TransactionDataGatewayInfo": { + "description": "Details about the transaction from the gateway.", + "id": "GoogleCloudRecaptchaenterpriseV1TransactionDataGatewayInfo", + "properties": { + "avsResponseCode": { + "description": "Optional. AVS response code from the gateway (available only when reCAPTCHA Enterprise is called after authorization).", + "type": "string" + }, + "cvvResponseCode": { + "description": "Optional. CVV response code from the gateway (available only when reCAPTCHA Enterprise is called after authorization).", + "type": "string" + }, + "gatewayResponseCode": { + "description": "Optional. Gateway response code describing the state of the transaction.", + "type": "string" + }, + "name": { + "description": "Optional. Name of the gateway service (for example, stripe, square, paypal).", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1TransactionDataItem": { + "description": "Line items being purchased in this transaction.", + "id": "GoogleCloudRecaptchaenterpriseV1TransactionDataItem", + "properties": { + "merchantAccountId": { + "description": "Optional. When a merchant is specified, its corresponding account_id. Necessary to populate marketplace-style transactions.", + "type": "string" + }, + "name": { + "description": "Optional. The full name of the item.", + "type": "string" + }, + "quantity": { + "description": "Optional. The quantity of this item that is being purchased.", + "format": "int64", + "type": "string" + }, + "value": { + "description": "Optional. The value per item that the user is paying, in the transaction currency, after discounts.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1TransactionDataUser": { + "description": "Details about a user's account involved in the transaction.", + "id": "GoogleCloudRecaptchaenterpriseV1TransactionDataUser", + "properties": { + "accountId": { + "description": "Optional. Unique account identifier for this user. If using account defender, this should match the hashed_account_id field. Otherwise, a unique and persistent identifier for this account.", + "type": "string" + }, + "creationMs": { + "description": "Optional. The epoch milliseconds of the user's account creation.", + "format": "int64", + "type": "string" + }, + "email": { + "description": "Optional. The email address of the user.", + "type": "string" + }, + "emailVerified": { + "description": "Optional. Whether the email has been verified to be accessible by the user (OTP or similar).", + "type": "boolean" + }, + "phoneNumber": { + "description": "Optional. The phone number of the user, with country code.", + "type": "string" + }, + "phoneVerified": { + "description": "Optional. Whether the phone number has been verified to be accessible by the user (OTP or similar).", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1TransactionEvent": { + "description": "Describes an event in the lifecycle of a payment transaction.", + "id": "GoogleCloudRecaptchaenterpriseV1TransactionEvent", + "properties": { + "eventTime": { + "description": "Optional. Timestamp when this transaction event occurred; otherwise assumed to be the time of the API call.", + "format": "google-datetime", + "type": "string" + }, + "eventType": { + "description": "Optional. The type of this transaction event.", + "enum": [ + "TRANSACTION_EVENT_TYPE_UNSPECIFIED", + "MERCHANT_APPROVE", + "MERCHANT_DENY", + "MANUAL_REVIEW", + "AUTHORIZATION", + "AUTHORIZATION_DECLINE", + "PAYMENT_CAPTURE", + "PAYMENT_CAPTURE_DECLINE", + "CANCEL", + "CHARGEBACK_INQUIRY", + "CHARGEBACK_ALERT", + "FRAUD_NOTIFICATION", + "CHARGEBACK", + "CHARGEBACK_REPRESENTMENT", + "CHARGEBACK_REVERSE", + "REFUND_REQUEST", + "REFUND_DECLINE", + "REFUND", + "REFUND_REVERSE" + ], + "enumDescriptions": [ + "Default, unspecified event type.", + "Indicates that the transaction is approved by the merchant. The accompanying reasons can include terms such as 'INHOUSE', 'ACCERTIFY', 'CYBERSOURCE', or 'MANUAL_REVIEW'.", + "Indicates that the transaction is denied and concluded due to risks detected by the merchant. The accompanying reasons can include terms such as 'INHOUSE', 'ACCERTIFY', 'CYBERSOURCE', or 'MANUAL_REVIEW'.", + "Indicates that the transaction is being evaluated by a human, due to suspicion or risk.", + "Indicates that the authorization attempt with the card issuer succeeded.", + "Indicates that the authorization attempt with the card issuer failed. The accompanying reasons can include Visa's '54' indicating that the card is expired, or '82' indicating that the CVV is incorrect.", + "Indicates that the transaction is completed because the funds were settled.", + "Indicates that the transaction could not be completed because the funds were not settled.", + "Indicates that the transaction has been canceled. Specify the reason for the cancellation. For example, 'INSUFFICIENT_INVENTORY'.", + "Indicates that the merchant has received a chargeback inquiry due to fraud for the transaction, requesting additional information before a fraud chargeback is officially issued and a formal chargeback notification is sent.", + "Indicates that the merchant has received a chargeback alert due to fraud for the transaction. The process of resolving the dispute without involving the payment network is started.", + "Indicates that a fraud notification is issued for the transaction, sent by the payment instrument's issuing bank because the transaction appears to be fraudulent. We recommend including TC40 or SAFE data in the `reason` field for this event type. For partial chargebacks, we recommend that you include an amount in the `value` field.", + "Indicates that the merchant is informed by the payment network that the transaction has entered the chargeback process due to fraud. Reason code examples include Discover's '6005' and '6041'. For partial chargebacks, we recommend that you include an amount in the `value` field.", + "Indicates that the transaction has entered the chargeback process due to fraud, and that the merchant has chosen to enter representment. Reason examples include Discover's '6005' and '6041'. For partial chargebacks, we recommend that you include an amount in the `value` field.", + "Indicates that the transaction has had a fraud chargeback which was illegitimate and was reversed as a result. For partial chargebacks, we recommend that you include an amount in the `value` field.", + "Indicates that the merchant has received a refund for a completed transaction. For partial refunds, we recommend that you include an amount in the `value` field. Reason example: 'TAX_EXEMPT' (partial refund of exempt tax)", + "Indicates that the merchant has received a refund request for this transaction, but that they have declined it. For partial refunds, we recommend that you include an amount in the `value` field. Reason example: 'TAX_EXEMPT' (partial refund of exempt tax)", + "Indicates that the completed transaction was refunded by the merchant. For partial refunds, we recommend that you include an amount in the `value` field. Reason example: 'TAX_EXEMPT' (partial refund of exempt tax)", + "Indicates that the completed transaction was refunded by the merchant, and that this refund was reversed. For partial refunds, we recommend that you include an amount in the `value` field." + ], + "type": "string" + }, + "reason": { + "description": "Optional. The reason or standardized code that corresponds with this transaction event, if one exists. For example, a CHARGEBACK event with code 6005.", + "type": "string" + }, + "value": { + "description": "Optional. The value that corresponds with this transaction event, if one exists. For example, a refund event where $5.00 was refunded. Currency is obtained from the original transaction data.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1UserId": { + "description": "An identifier associated with a user.", + "id": "GoogleCloudRecaptchaenterpriseV1UserId", + "properties": { + "email": { + "description": "Optional. An email address.", + "type": "string" + }, + "phoneNumber": { + "description": "Optional. A phone number. Should use the E.164 format.", + "type": "string" + }, + "username": { + "description": "Optional. A unique username, if different from all the other identifiers and `account_id` that are provided. Can be a unique login handle or display name for a user.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1UserInfo": { + "description": "User information associated with a request protected by reCAPTCHA Enterprise.", + "id": "GoogleCloudRecaptchaenterpriseV1UserInfo", + "properties": { + "accountId": { + "description": "Optional. For logged-in requests or login/registration requests, the unique account identifier associated with this user. You can use the username if it is stable (meaning it is the same for every request associated with the same user), or any stable user ID of your choice. Leave blank for non logged-in actions or guest checkout.", + "type": "string" + }, + "createAccountTime": { + "description": "Optional. Creation time for this account associated with this user. Leave blank for non logged-in actions, guest checkout, or when there is no account associated with the current user.", + "format": "google-datetime", + "type": "string" + }, + "userIds": { + "description": "Optional. Identifiers associated with this user or request.", + "items": { + "$ref": "GoogleCloudRecaptchaenterpriseV1UserId" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRecaptchaenterpriseV1WafSettings": { "description": "Settings specific to keys that can be used for WAF (Web Application Firewall).", "id": "GoogleCloudRecaptchaenterpriseV1WafSettings", @@ -1240,13 +2136,15 @@ "WAF_FEATURE_UNSPECIFIED", "CHALLENGE_PAGE", "SESSION_TOKEN", - "ACTION_TOKEN" + "ACTION_TOKEN", + "EXPRESS" ], "enumDescriptions": [ "Undefined feature.", "Redirects suspicious traffic to reCAPTCHA.", "Use reCAPTCHA session-tokens to protect the whole user session on the site's domain.", - "Use reCAPTCHA action-tokens to protect user actions." + "Use reCAPTCHA action-tokens to protect user actions.", + "Use reCAPTCHA WAF express protection to protect any content other than web pages, like APIs and IoT devices." ], "type": "string" }, @@ -1254,11 +2152,15 @@ "description": "Required. The WAF service that uses this key.", "enum": [ "WAF_SERVICE_UNSPECIFIED", - "CA" + "CA", + "FASTLY", + "CLOUDFLARE" ], "enumDescriptions": [ "Undefined WAF", - "Cloud Armor" + "Cloud Armor", + "Fastly", + "Cloudflare" ], "type": "string" } @@ -1270,22 +2172,22 @@ "id": "GoogleCloudRecaptchaenterpriseV1WebKeySettings", "properties": { "allowAllDomains": { - "description": "If set to true, it means allowed_domains will not be enforced.", + "description": "Optional. If set to true, it means allowed_domains will not be enforced.", "type": "boolean" }, "allowAmpTraffic": { - "description": "If set to true, the key can be used on AMP (Accelerated Mobile Pages) websites. This is supported only for the SCORE integration type.", + "description": "Optional. If set to true, the key can be used on AMP (Accelerated Mobile Pages) websites. This is supported only for the SCORE integration type.", "type": "boolean" }, "allowedDomains": { - "description": "Domains or subdomains of websites allowed to use the key. All subdomains of an allowed domain are automatically allowed. A valid domain requires a host and must not include any path, port, query or fragment. Examples: 'example.com' or 'subdomain.example.com'", + "description": "Optional. Domains or subdomains of websites allowed to use the key. All subdomains of an allowed domain are automatically allowed. A valid domain requires a host and must not include any path, port, query or fragment. Examples: 'example.com' or 'subdomain.example.com'", "items": { "type": "string" }, "type": "array" }, "challengeSecurityPreference": { - "description": "Settings for the frequency and difficulty at which this key triggers captcha challenges. This should only be specified for IntegrationTypes CHECKBOX and INVISIBLE.", + "description": "Optional. Settings for the frequency and difficulty at which this key triggers captcha challenges. This should only be specified for IntegrationTypes CHECKBOX and INVISIBLE.", "enum": [ "CHALLENGE_SECURITY_PREFERENCE_UNSPECIFIED", "USABILITY", @@ -1324,6 +2226,33 @@ "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" } }, "servicePath": "", diff --git a/etc/api/recommendationengine/v1beta1/recommendationengine-api.json b/etc/api/recommendationengine/v1beta1/recommendationengine-api.json index d1c26ce0a6..233ba93071 100644 --- a/etc/api/recommendationengine/v1beta1/recommendationengine-api.json +++ b/etc/api/recommendationengine/v1beta1/recommendationengine-api.json @@ -398,7 +398,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/eventStores/{eventStoresId}/operations", "httpMethod": "GET", "id": "recommendationengine.projects.locations.catalogs.eventStores.operations.list", @@ -792,7 +792,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/operations", "httpMethod": "GET", "id": "recommendationengine.projects.locations.catalogs.operations.list", @@ -841,7 +841,7 @@ } } }, - "revision": "20230105", + "revision": "20240229", "rootUrl": "https://recommendationengine.googleapis.com/", "schemas": { "GoogleApiHttpBody": { @@ -2001,7 +2001,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/etc/api/recommender/v1/recommender-api.json b/etc/api/recommender/v1/recommender-api.json index 78e6808600..031807923a 100644 --- a/etc/api/recommender/v1/recommender-api.json +++ b/etc/api/recommender/v1/recommender-api.json @@ -214,7 +214,7 @@ ], "parameters": { "filter": { - "description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` (These expressions are based on the filter language described at https://google.aip.dev/160)", + "description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", "location": "query", "type": "string" }, @@ -382,7 +382,7 @@ ], "parameters": { "filter": { - "description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` (These expressions are based on the filter language described at https://google.aip.dev/160)", + "description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", "location": "query", "type": "string" }, @@ -451,7 +451,7 @@ ], "parameters": { "name": { - "description": "Name of the recommendation.", + "description": "Required. Name of the recommendation.", "location": "path", "pattern": "^billingAccounts/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", "required": true, @@ -576,7 +576,7 @@ ], "parameters": { "filter": { - "description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` (These expressions are based on the filter language described at https://google.aip.dev/160)", + "description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", "location": "query", "type": "string" }, @@ -678,7 +678,7 @@ ], "parameters": { "filter": { - "description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` (These expressions are based on the filter language described at https://google.aip.dev/160)", + "description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", "location": "query", "type": "string" }, @@ -747,7 +747,7 @@ ], "parameters": { "name": { - "description": "Name of the recommendation.", + "description": "Required. Name of the recommendation.", "location": "path", "pattern": "^folders/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", "required": true, @@ -938,7 +938,7 @@ ], "parameters": { "filter": { - "description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` (These expressions are based on the filter language described at https://google.aip.dev/160)", + "description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", "location": "query", "type": "string" }, @@ -1106,7 +1106,7 @@ ], "parameters": { "filter": { - "description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` (These expressions are based on the filter language described at https://google.aip.dev/160)", + "description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", "location": "query", "type": "string" }, @@ -1175,7 +1175,7 @@ ], "parameters": { "name": { - "description": "Name of the recommendation.", + "description": "Required. Name of the recommendation.", "location": "path", "pattern": "^organizations/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", "required": true, @@ -1366,7 +1366,7 @@ ], "parameters": { "filter": { - "description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` (These expressions are based on the filter language described at https://google.aip.dev/160)", + "description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", "location": "query", "type": "string" }, @@ -1534,7 +1534,7 @@ ], "parameters": { "filter": { - "description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` (These expressions are based on the filter language described at https://google.aip.dev/160)", + "description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", "location": "query", "type": "string" }, @@ -1603,7 +1603,7 @@ ], "parameters": { "name": { - "description": "Name of the recommendation.", + "description": "Required. Name of the recommendation.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", "required": true, @@ -1686,7 +1686,7 @@ } } }, - "revision": "20230108", + "revision": "20240226", "rootUrl": "https://recommender.googleapis.com/", "schemas": { "GoogleCloudRecommenderV1CostProjection": { @@ -1697,6 +1697,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", @@ -1737,7 +1741,7 @@ }, "reliabilityProjection": { "$ref": "GoogleCloudRecommenderV1ReliabilityProjection", - "description": "Use with CategoryType.RELAIBILITY" + "description": "Use with CategoryType.RELIABILITY" }, "securityProjection": { "$ref": "GoogleCloudRecommenderV1SecurityProjection", @@ -2200,6 +2204,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/etc/api/recommender/v1beta1/recommender-api.json b/etc/api/recommender/v1beta1/recommender-api.json index a5945fc8bc..4f3bca19ea 100644 --- a/etc/api/recommender/v1beta1/recommender-api.json +++ b/etc/api/recommender/v1beta1/recommender-api.json @@ -108,6 +108,49 @@ "billingAccounts": { "resources": { "locations": { + "methods": { + "list": { + "description": "Lists locations with recommendations or insights.", + "flatPath": "v1beta1/billingAccounts/{billingAccountsId}/locations", + "httpMethod": "GET", + "id": "recommender.billingAccounts.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": "^billingAccounts/[^/]+$", + "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": "v1beta1/{+name}/locations", + "response": { + "$ref": "GoogleCloudLocationListLocationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "insightTypes": { "methods": { @@ -214,7 +257,7 @@ ], "parameters": { "filter": { - "description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` (These expressions are based on the filter language described at https://google.aip.dev/160)", + "description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", "location": "query", "type": "string" }, @@ -382,7 +425,7 @@ ], "parameters": { "filter": { - "description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` (These expressions are based on the filter language described at https://google.aip.dev/160)", + "description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", "location": "query", "type": "string" }, @@ -451,7 +494,7 @@ ], "parameters": { "name": { - "description": "Name of the recommendation.", + "description": "Required. Name of the recommendation.", "location": "path", "pattern": "^billingAccounts/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", "required": true, @@ -536,6 +579,49 @@ "folders": { "resources": { "locations": { + "methods": { + "list": { + "description": "Lists locations with recommendations or insights.", + "flatPath": "v1beta1/folders/{foldersId}/locations", + "httpMethod": "GET", + "id": "recommender.folders.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": "^folders/[^/]+$", + "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": "v1beta1/{+name}/locations", + "response": { + "$ref": "GoogleCloudLocationListLocationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "insightTypes": { "resources": { @@ -576,7 +662,7 @@ ], "parameters": { "filter": { - "description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` (These expressions are based on the filter language described at https://google.aip.dev/160)", + "description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", "location": "query", "type": "string" }, @@ -678,7 +764,7 @@ ], "parameters": { "filter": { - "description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` (These expressions are based on the filter language described at https://google.aip.dev/160)", + "description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", "location": "query", "type": "string" }, @@ -747,7 +833,7 @@ ], "parameters": { "name": { - "description": "Name of the recommendation.", + "description": "Required. Name of the recommendation.", "location": "path", "pattern": "^folders/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", "required": true, @@ -829,9 +915,83 @@ } } }, + "insightTypes": { + "methods": { + "list": { + "description": "Lists available InsightTypes. No IAM permissions are required.", + "flatPath": "v1beta1/insightTypes", + "httpMethod": "GET", + "id": "recommender.insightTypes.list", + "parameterOrder": [], + "parameters": { + "pageSize": { + "description": "Optional. The number of InsightTypes to return per page. The service may return fewer than this value.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListRecommenders` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/insightTypes", + "response": { + "$ref": "GoogleCloudRecommenderV1beta1ListInsightTypesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "organizations": { "resources": { "locations": { + "methods": { + "list": { + "description": "Lists locations with recommendations or insights.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations", + "httpMethod": "GET", + "id": "recommender.organizations.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": "^organizations/[^/]+$", + "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": "v1beta1/{+name}/locations", + "response": { + "$ref": "GoogleCloudLocationListLocationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "insightTypes": { "methods": { @@ -938,7 +1098,7 @@ ], "parameters": { "filter": { - "description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` (These expressions are based on the filter language described at https://google.aip.dev/160)", + "description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", "location": "query", "type": "string" }, @@ -1106,7 +1266,7 @@ ], "parameters": { "filter": { - "description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` (These expressions are based on the filter language described at https://google.aip.dev/160)", + "description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", "location": "query", "type": "string" }, @@ -1175,7 +1335,7 @@ ], "parameters": { "name": { - "description": "Name of the recommendation.", + "description": "Required. Name of the recommendation.", "location": "path", "pattern": "^organizations/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", "required": true, @@ -1260,6 +1420,49 @@ "projects": { "resources": { "locations": { + "methods": { + "list": { + "description": "Lists locations with recommendations or insights.", + "flatPath": "v1beta1/projects/{projectsId}/locations", + "httpMethod": "GET", + "id": "recommender.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": "v1beta1/{+name}/locations", + "response": { + "$ref": "GoogleCloudLocationListLocationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "insightTypes": { "methods": { @@ -1366,7 +1569,7 @@ ], "parameters": { "filter": { - "description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` (These expressions are based on the filter language described at https://google.aip.dev/160)", + "description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", "location": "query", "type": "string" }, @@ -1534,7 +1737,7 @@ ], "parameters": { "filter": { - "description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` (These expressions are based on the filter language described at https://google.aip.dev/160)", + "description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", "location": "query", "type": "string" }, @@ -1603,7 +1806,7 @@ ], "parameters": { "name": { - "description": "Name of the recommendation.", + "description": "Required. Name of the recommendation.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", "required": true, @@ -1684,11 +1887,94 @@ } } } + }, + "recommenders": { + "methods": { + "list": { + "description": "Lists all available Recommenders. No IAM permissions are required.", + "flatPath": "v1beta1/recommenders", + "httpMethod": "GET", + "id": "recommender.recommenders.list", + "parameterOrder": [], + "parameters": { + "pageSize": { + "description": "Optional. The number of RecommenderTypes to return per page. The service may return fewer than this value.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListRecommenders` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/recommenders", + "response": { + "$ref": "GoogleCloudRecommenderV1beta1ListRecommendersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } }, - "revision": "20230108", + "revision": "20240226", "rootUrl": "https://recommender.googleapis.com/", "schemas": { + "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" + }, "GoogleCloudRecommenderV1beta1CostProjection": { "description": "Contains metadata about how much money a recommendation can save or incur.", "id": "GoogleCloudRecommenderV1beta1CostProjection", @@ -1697,10 +1983,28 @@ "$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", "type": "string" + }, + "pricingType": { + "description": "How the cost is calculated.", + "enum": [ + "PRICING_TYPE_UNSPECIFIED", + "LIST_PRICE", + "CUSTOM_PRICE" + ], + "enumDescriptions": [ + "Default pricing type.", + "The price listed by GCP for all customers.", + "A price derived from past usage and billing." + ], + "type": "string" } }, "type": "object" @@ -1890,6 +2194,17 @@ }, "type": "object" }, + "GoogleCloudRecommenderV1beta1InsightType": { + "description": "The type of insight.", + "id": "GoogleCloudRecommenderV1beta1InsightType", + "properties": { + "name": { + "description": "The insight_type's name in format insightTypes/{insight_type} eg: insightTypes/google.iam.policy.Insight", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRecommenderV1beta1InsightTypeConfig": { "description": "Configuration for an InsightType.", "id": "GoogleCloudRecommenderV1beta1InsightTypeConfig", @@ -1945,6 +2260,24 @@ }, "type": "object" }, + "GoogleCloudRecommenderV1beta1ListInsightTypesResponse": { + "description": "Response for the `ListInsightTypes` method. Next ID: 3", + "id": "GoogleCloudRecommenderV1beta1ListInsightTypesResponse", + "properties": { + "insightTypes": { + "description": "The set of recommenders available", + "items": { + "$ref": "GoogleCloudRecommenderV1beta1InsightType" + }, + "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" + }, "GoogleCloudRecommenderV1beta1ListInsightsResponse": { "description": "Response to the `ListInsights` method.", "id": "GoogleCloudRecommenderV1beta1ListInsightsResponse", @@ -1981,6 +2314,24 @@ }, "type": "object" }, + "GoogleCloudRecommenderV1beta1ListRecommendersResponse": { + "description": "Response for the `ListRecommender` method. Next ID: 3", + "id": "GoogleCloudRecommenderV1beta1ListRecommendersResponse", + "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" + }, + "recommenders": { + "description": "The set of recommenders available", + "items": { + "$ref": "GoogleCloudRecommenderV1beta1RecommenderType" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRecommenderV1beta1MarkInsightAcceptedRequest": { "description": "Request for the `MarkInsightAccepted` method.", "id": "GoogleCloudRecommenderV1beta1MarkInsightAcceptedRequest", @@ -2200,6 +2551,13 @@ "$ref": "GoogleCloudRecommenderV1beta1RecommendationStateInfo", "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" @@ -2329,6 +2687,17 @@ }, "type": "object" }, + "GoogleCloudRecommenderV1beta1RecommenderType": { + "description": "The type of a recommender.", + "id": "GoogleCloudRecommenderV1beta1RecommenderType", + "properties": { + "name": { + "description": "The recommender's name in format RecommenderTypes/{recommender_type} eg: recommenderTypes/google.iam.policy.Recommender", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRecommenderV1beta1ReliabilityProjection": { "description": "Contains information on the impact of a reliability recommendation.", "id": "GoogleCloudRecommenderV1beta1ReliabilityProjection", diff --git a/etc/api/redis/v1/redis-api.json b/etc/api/redis/v1/redis-api.json index 6a6fa33e44..4e0f250cb4 100644 --- a/etc/api/redis/v1/redis-api.json +++ b/etc/api/redis/v1/redis-api.json @@ -177,6 +177,203 @@ } }, "resources": { + "clusters": { + "methods": { + "create": { + "description": "Creates a Redis cluster based on the specified properties. The creation is executed asynchronously and callers may check the returned operation to track its progress. Once the operation is completed the Redis cluster will be fully functional. The completed longrunning.Operation will contain the new cluster object in the response field. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters", + "httpMethod": "POST", + "id": "redis.projects.locations.clusters.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "clusterId": { + "description": "Required. The logical name of the Redis cluster in the customer project with the following restrictions: * Must contain only lowercase letters, numbers, and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the customer project / location", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the cluster location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Idempotent request UUID.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/clusters", + "request": { + "$ref": "Cluster" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a specific Redis cluster. Cluster stops serving and data is deleted.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", + "httpMethod": "DELETE", + "id": "redis.projects.locations.clusters.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Redis cluster resource name using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` where `location_id` refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Idempotent request UUID.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets the details of a specific Redis cluster.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", + "httpMethod": "GET", + "id": "redis.projects.locations.clusters.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Redis cluster resource name using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` where `location_id` refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Cluster" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getCertificateAuthority": { + "description": "Gets the details of certificate authority information for Redis cluster.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/certificateAuthority", + "httpMethod": "GET", + "id": "redis.projects.locations.clusters.getCertificateAuthority", + "parameterOrder": [ + "name" + ], + "parameters": { + "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/[^/]+/certificateAuthority$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "CertificateAuthority" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all Redis clusters owned by a project in either the specified location (region) or all locations. The location should have the following format: * `projects/{project_id}/locations/{location_id}` If `location_id` is specified as `-` (wildcard), then all regions available to the project are queried, and the results are aggregated.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters", + "httpMethod": "GET", + "id": "redis.projects.locations.clusters.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of items to return. If not specified, a default value of 1000 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's `next_page_token` to determine if there are more clusters left to be queried.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The `next_page_token` value returned from a previous ListClusters request, if any.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the cluster location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/clusters", + "response": { + "$ref": "ListClustersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the metadata and configuration of a specific Redis cluster. Completed longrunning.Operation will contain the new cluster object in the response field. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", + "httpMethod": "PATCH", + "id": "redis.projects.locations.clusters.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Unique name of the resource in this scope including project and location using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Idempotent request UUID.", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "Required. Mask of fields to update. At least one path must be supplied in this field. The elements of the repeated paths field may only include these fields from Cluster: * `size_gb` * `replica_count`", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Cluster" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "instances": { "methods": { "create": { @@ -577,7 +774,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "redis.projects.locations.operations.list", @@ -624,15 +821,1136 @@ } } }, - "revision": "20230111", + "revision": "20240226", "rootUrl": "https://redis.googleapis.com/", "schemas": { + "AvailabilityConfiguration": { + "description": "Configuration for availability of database instance", + "id": "AvailabilityConfiguration", + "properties": { + "availabilityType": { + "description": "Availability type. Potential values: * `ZONAL`: The instance serves data from only one zone. Outages in that zone affect data accessibility. * `REGIONAL`: The instance can serve data from more than one zone in a region (it is highly available).", + "enum": [ + "AVAILABILITY_TYPE_UNSPECIFIED", + "ZONAL", + "REGIONAL", + "MULTI_REGIONAL", + "AVAILABILITY_TYPE_OTHER" + ], + "enumDescriptions": [ + "", + "Zonal available instance.", + "Regional available instance.", + "Multi regional instance", + "For rest of the other category" + ], + "type": "string" + }, + "externalReplicaConfigured": { + "type": "boolean" + }, + "promotableReplicaConfigured": { + "type": "boolean" + } + }, + "type": "object" + }, + "BackupConfiguration": { + "description": "Configuration for automatic backups", + "id": "BackupConfiguration", + "properties": { + "automatedBackupEnabled": { + "description": "Whether customer visible automated backups are enabled on the instance.", + "type": "boolean" + }, + "backupRetentionSettings": { + "$ref": "RetentionSettings", + "description": "Backup retention settings." + }, + "pointInTimeRecoveryEnabled": { + "description": "Whether point-in-time recovery is enabled. This is optional field, if the database service does not have this feature or metadata is not available in control plane, this can be omitted.", + "type": "boolean" + } + }, + "type": "object" + }, + "BackupRun": { + "description": "A backup run.", + "id": "BackupRun", + "properties": { + "endTime": { + "description": "The time the backup operation completed. REQUIRED", + "format": "google-datetime", + "type": "string" + }, + "error": { + "$ref": "OperationError", + "description": "Information about why the backup operation failed. This is only present if the run has the FAILED status. OPTIONAL" + }, + "startTime": { + "description": "The time the backup operation started. REQUIRED", + "format": "google-datetime", + "type": "string" + }, + "status": { + "description": "The status of this run. REQUIRED", + "enum": [ + "STATUS_UNSPECIFIED", + "SUCCESSFUL", + "FAILED" + ], + "enumDescriptions": [ + "", + "The backup was successful.", + "The backup was unsuccessful." + ], + "type": "string" + } + }, + "type": "object" + }, + "CertChain": { + "id": "CertChain", + "properties": { + "certificates": { + "description": "The certificates that form the CA chain, from leaf to root order.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CertificateAuthority": { + "description": "Redis cluster certificate authority", + "id": "CertificateAuthority", + "properties": { + "managedServerCa": { + "$ref": "ManagedCertificateAuthority" + }, + "name": { + "description": "Identifier. Unique name of the resource in this scope including project, location and cluster using the form: `projects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority`", + "type": "string" + } + }, + "type": "object" + }, + "Cluster": { + "description": "A cluster instance.", + "id": "Cluster", + "properties": { + "authorizationMode": { + "description": "Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster.", + "enum": [ + "AUTH_MODE_UNSPECIFIED", + "AUTH_MODE_IAM_AUTH", + "AUTH_MODE_DISABLED" + ], + "enumDescriptions": [ + "Not set.", + "IAM basic authorization mode", + "Authorization disabled mode" + ], + "type": "string" + }, + "createTime": { + "description": "Output only. The timestamp associated with the cluster creation request.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "discoveryEndpoints": { + "description": "Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one discovery endpoint is supported.", + "items": { + "$ref": "DiscoveryEndpoint" + }, + "readOnly": true, + "type": "array" + }, + "name": { + "description": "Required. Unique name of the resource in this scope including project and location using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}`", + "type": "string" + }, + "pscConfigs": { + "description": "Required. Each PscConfig configures the consumer network where IPs will be designated to the cluster for client access through Private Service Connect Automation. Currently, only one PscConfig is supported.", + "items": { + "$ref": "PscConfig" + }, + "type": "array" + }, + "pscConnections": { + "description": "Output only. PSC connections for discovery of the cluster topology and accessing the cluster.", + "items": { + "$ref": "PscConnection" + }, + "readOnly": true, + "type": "array" + }, + "replicaCount": { + "description": "Optional. The number of replica nodes per shard.", + "format": "int32", + "type": "integer" + }, + "shardCount": { + "description": "Required. Number of shards for the Redis cluster.", + "format": "int32", + "type": "integer" + }, + "sizeGb": { + "description": "Output only. Redis memory size in GB for the entire cluster rounded up to the next integer.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "state": { + "description": "Output only. The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING" + ], + "enumDescriptions": [ + "Not set.", + "Redis cluster is being created.", + "Redis cluster has been created and is fully usable.", + "Redis cluster configuration is being updated.", + "Redis cluster is being deleted." + ], + "readOnly": true, + "type": "string" + }, + "stateInfo": { + "$ref": "StateInfo", + "description": "Output only. Additional information about the current state of the cluster.", + "readOnly": true + }, + "transitEncryptionMode": { + "description": "Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster.", + "enum": [ + "TRANSIT_ENCRYPTION_MODE_UNSPECIFIED", + "TRANSIT_ENCRYPTION_MODE_DISABLED", + "TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION" + ], + "enumDescriptions": [ + "In-transit encryption not set.", + "In-transit encryption disabled.", + "Use server managed encryption for in-transit encryption." + ], + "type": "string" + }, + "uid": { + "description": "Output only. System assigned, unique identifier for the cluster.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "Compliance": { + "description": "Contains compliance information about a security standard indicating unmet recommendations.", + "id": "Compliance", + "properties": { + "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" + }, + "CustomMetadataData": { + "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": "CustomMetadataData", + "properties": { + "databaseMetadata": { + "items": { + "$ref": "DatabaseMetadata" + }, + "type": "array" + } + }, + "type": "object" + }, + "DatabaseMetadata": { + "description": "Metadata for individual databases created in an instance. i.e. spanner instance can have multiple databases with unique configuration settings.", + "id": "DatabaseMetadata", + "properties": { + "backupConfiguration": { + "$ref": "BackupConfiguration", + "description": "Backup configuration for this database" + }, + "backupRun": { + "$ref": "BackupRun", + "description": "Information about the last backup attempt for this database" + }, + "product": { + "$ref": "Product" + }, + "resourceId": { + "$ref": "DatabaseResourceId" + }, + "resourceName": { + "description": "Required. Database name. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", + "type": "string" + } + }, + "type": "object" + }, + "DatabaseResourceFeed": { + "description": "DatabaseResourceFeed is the top level proto to be used to ingest different database resource level events into Condor platform.", + "id": "DatabaseResourceFeed", + "properties": { + "feedTimestamp": { + "description": "Required. Timestamp when feed is generated.", + "format": "google-datetime", + "type": "string" + }, + "feedType": { + "description": "Required. Type feed to be ingested into condor", + "enum": [ + "FEEDTYPE_UNSPECIFIED", + "RESOURCE_METADATA", + "OBSERVABILITY_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 recommendation signal data" + ], + "type": "string" + }, + "recommendationSignalData": { + "$ref": "DatabaseResourceRecommendationSignalData", + "description": "More feed data would be added in subsequent CLs" + }, + "resourceHealthSignalData": { + "$ref": "DatabaseResourceHealthSignalData" + }, + "resourceId": { + "$ref": "DatabaseResourceId", + "deprecated": true, + "description": "Primary key associated with the Resource. resource_id is available in individual feed level as well." + }, + "resourceMetadata": { + "$ref": "DatabaseResourceMetadata" + } + }, + "type": "object" + }, + "DatabaseResourceHealthSignalData": { + "description": "Common model for database resource health signal data.", + "id": "DatabaseResourceHealthSignalData", + "properties": { + "additionalMetadata": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Any other additional metadata", + "type": "object" + }, + "compliance": { + "description": "Industry standards associated with this signal; if this signal is an issue, that could be a violation of the associated industry standard(s). For example, AUTO_BACKUP_DISABLED signal is associated with CIS GCP 1.1, CIS GCP 1.2, CIS GCP 1.3, NIST 800-53 and ISO-27001 compliance standards. If a database resource does not have automated backup enable, it will violate these following industry standards.", + "items": { + "$ref": "Compliance" + }, + "type": "array" + }, + "description": { + "description": "Description associated with signal", + "type": "string" + }, + "eventTime": { + "description": "Required. The last time at which the event described by this signal took place", + "format": "google-datetime", + "type": "string" + }, + "externalUri": { + "description": "The external-uri of the signal, using which more information about this signal can be obtained. In GCP, this will take user to SCC page to get more details about signals.", + "type": "string" + }, + "name": { + "description": "Required. The name of the signal, ex: PUBLIC_SQL_INSTANCE, SQL_LOG_ERROR_VERBOSITY etc.", + "type": "string" + }, + "provider": { + "description": "Cloud provider name. Ex: GCP/AWS/Azure/OnPrem/SelfManaged", + "enum": [ + "PROVIDER_UNSPECIFIED", + "GCP", + "AWS", + "AZURE", + "ONPREM", + "SELFMANAGED", + "PROVIDER_OTHER" + ], + "enumDescriptions": [ + "", + "Google cloud platform provider", + "Amazon web service", + "Azure web service", + "On-prem database resources.", + "Self-managed database provider. These are resources on a cloud platform, e.g., database resource installed in a GCE VM, but not a managed database service.", + "For the rest of the other categories. Other refers to the rest of other database service providers, this could be smaller cloud provider. This needs to be provided when the provider is known, but it is not present in the existing set of enum values." + ], + "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 \"projects/123\". For GCP provided resources, number should be project number.", + "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" + }, + "signalClass": { + "description": "Required. The class of the signal, such as if it's a THREAT or VULNERABILITY.", + "enum": [ + "CLASS_UNSPECIFIED", + "THREAT", + "VULNERABILITY", + "MISCONFIGURATION", + "OBSERVATION", + "ERROR" + ], + "enumDescriptions": [ + "Unspecified signal 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." + ], + "type": "string" + }, + "signalId": { + "description": "Required. Unique identifier for the signal. This is an unique id which would be mainatined by partner to identify a signal.", + "type": "string" + }, + "signalType": { + "description": "Required. Type of signal, for example, `AVAILABLE_IN_MULTIPLE_ZONES`, `LOGGING_MOST_ERRORS`, 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" + }, + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "RESOLVED", + "MUTED" + ], + "enumDescriptions": [ + "Unspecified state.", + "The signal requires attention and has not been addressed yet.", + "The signal has been fixed, triaged as a non-issue or otherwise addressed and is no longer active.", + "The signal has been muted." + ], + "type": "string" + } + }, + "type": "object" + }, + "DatabaseResourceId": { + "description": "DatabaseResourceId will serve as primary key for any resource ingestion event.", + "id": "DatabaseResourceId", + "properties": { + "provider": { + "description": "Required. Cloud provider name. Ex: GCP/AWS/Azure/OnPrem/SelfManaged", + "enum": [ + "PROVIDER_UNSPECIFIED", + "GCP", + "AWS", + "AZURE", + "ONPREM", + "SELFMANAGED", + "PROVIDER_OTHER" + ], + "enumDescriptions": [ + "", + "Google cloud platform provider", + "Amazon web service", + "Azure web service", + "On-prem database resources.", + "Self-managed database provider. These are resources on a cloud platform, e.g., database resource installed in a GCE VM, but not a managed database service.", + "For the rest of the other categories. Other refers to the rest of other database service providers, this could be smaller cloud provider. This needs to be provided when the provider is known, but it is not present in the existing set of enum values." + ], + "type": "string" + }, + "providerDescription": { + "description": "Optional. Needs to be used only when the provider is PROVIDER_OTHER.", + "type": "string" + }, + "resourceType": { + "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": { + "description": "Required. A service-local token that distinguishes this resource from other resources within the same service.", + "type": "string" + } + }, + "type": "object" + }, + "DatabaseResourceMetadata": { + "description": "Common model for database resource instance metadata.", + "id": "DatabaseResourceMetadata", + "properties": { + "availabilityConfiguration": { + "$ref": "AvailabilityConfiguration", + "description": "Availability configuration for this instance" + }, + "backupConfiguration": { + "$ref": "BackupConfiguration", + "description": "Backup configuration for this instance" + }, + "backupRun": { + "$ref": "BackupRun", + "description": "Latest backup run information for this instance" + }, + "creationTime": { + "description": "The creation time of the resource, i.e. the time when resource is created and recorded in partner service.", + "format": "google-datetime", + "type": "string" + }, + "currentState": { + "description": "Current state of the instance.", + "enum": [ + "STATE_UNSPECIFIED", + "HEALTHY", + "UNHEALTHY", + "SUSPENDED", + "DELETED", + "STATE_OTHER" + ], + "enumDescriptions": [ + "", + "The instance is running.", + "Instance being created, updated, deleted or under maintenance", + "When instance is suspended", + "Instance is deleted.", + "For rest of the other category" + ], + "type": "string" + }, + "customMetadata": { + "$ref": "CustomMetadataData", + "description": "Any custom metadata associated with the resource" + }, + "entitlements": { + "description": "Entitlements associated with the resource", + "items": { + "$ref": "Entitlement" + }, + "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.", + "enum": [ + "STATE_UNSPECIFIED", + "HEALTHY", + "UNHEALTHY", + "SUSPENDED", + "DELETED", + "STATE_OTHER" + ], + "enumDescriptions": [ + "", + "The instance is running.", + "Instance being created, updated, deleted or under maintenance", + "When instance is suspended", + "Instance is deleted.", + "For rest of the other category" + ], + "type": "string" + }, + "id": { + "$ref": "DatabaseResourceId", + "description": "Required. Unique identifier for a Database resource" + }, + "instanceType": { + "description": "The type of the instance. Specified at creation time.", + "enum": [ + "INSTANCE_TYPE_UNSPECIFIED", + "SUB_RESOURCE_TYPE_UNSPECIFIED", + "PRIMARY", + "SECONDARY", + "READ_REPLICA", + "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.", + "For rest of the other categories." + ], + "type": "string" + }, + "location": { + "description": "The resource location. REQUIRED", + "type": "string" + }, + "primaryResourceId": { + "$ref": "DatabaseResourceId", + "description": "Identifier for this resource's immediate parent/primary resource if the current resource is a replica or derived form of another Database resource. Else it would be NULL. REQUIRED if the immediate parent exists when first time resource is getting ingested" + }, + "product": { + "$ref": "Product", + "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 \"/\", such as \"projects/123\". For GCP provided resources, number should be project number.", + "type": "string" + }, + "resourceName": { + "description": "Required. Different from DatabaseResourceId.unique_id, a resource name can be reused over time. That is, after a resource named \"ABC\" is deleted, the name \"ABC\" can be used to to create a new resource within the same source. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", + "type": "string" + }, + "updationTime": { + "description": "The time at which the resource was updated and recorded at partner service.", + "format": "google-datetime", + "type": "string" + }, + "userLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "User-provided labels, represented as a dictionary where each label is a single key value pair.", + "type": "object" + } + }, + "type": "object" + }, + "DatabaseResourceRecommendationSignalData": { + "description": "Common model for database resource recommendation signal data.", + "id": "DatabaseResourceRecommendationSignalData", + "properties": { + "additionalMetadata": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Optional. 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" + }, + "DiscoveryEndpoint": { + "description": "Endpoints on each network, for Redis clients to connect to the cluster.", + "id": "DiscoveryEndpoint", + "properties": { + "address": { + "description": "Output only. Address of the exposed Redis endpoint used by clients to connect to the service. The address could be either IP or hostname.", + "readOnly": true, + "type": "string" + }, + "port": { + "description": "Output only. The port number of the exposed Redis endpoint.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "pscConfig": { + "$ref": "PscConfig", + "description": "Output only. Customer configuration for where the endpoint is created and accessed from.", + "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" }, + "Entitlement": { + "description": "Proto representing the access that a user has to a specific feature/service. NextId: 3.", + "id": "Entitlement", + "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" + }, "ExportInstanceRequest": { "description": "Request for Export.", "id": "ExportInstanceRequest", @@ -783,6 +2101,13 @@ "description": "Optional. The full name of the Google Compute Engine [network](https://cloud.google.com/vpc/docs/vpc) to which the instance is connected. If left unspecified, the `default` network will be used.", "type": "string" }, + "availableMaintenanceVersions": { + "description": "Optional. The available maintenance versions that an instance could update to.", + "items": { + "type": "string" + }, + "type": "array" + }, "connectMode": { "description": "Optional. The network connect mode of the Redis instance. If not provided, the connect mode defaults to DIRECT_PEERING.", "enum": [ @@ -841,6 +2166,10 @@ "description": "Output only. Date and time of upcoming maintenance events which have been scheduled.", "readOnly": true }, + "maintenanceVersion": { + "description": "Optional. The self service update maintenance version. The version is date based such as \"20210712_00_00\".", + "type": "string" + }, "memorySizeGb": { "description": "Required. Redis memory size in GiB.", "format": "int32", @@ -906,7 +2235,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": { @@ -918,6 +2247,16 @@ "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.", + "readOnly": true, + "type": "boolean" + }, "secondaryIpRange": { "description": "Optional. Additional IP range for node placement. Required when enabling read replicas on an existing instance. For DIRECT_PEERING mode value must be a CIDR range of size /28, or \"auto\". For PRIVATE_SERVICE_ACCESS mode value must be the name of an allocated address range associated with the private service access connection, or \"auto\".", "type": "string" @@ -1019,6 +2358,31 @@ }, "type": "object" }, + "ListClustersResponse": { + "description": "Response for ListClusters.", + "id": "ListClustersResponse", + "properties": { + "clusters": { + "description": "A list of Redis clusters in the project in the specified location, or across all locations. If the `location_id` in the parent field of the request is \"-\", all regions available to the project are queried, and the results aggregated. If in such an aggregated query a location is unavailable, a placeholder Redis entry is included in the response with the `name` field set to a value of the form `projects/{project_id}/locations/{location_id}/clusters/`- and the `status` field set to ERROR and `status_message` field set to \"location not available for ListClusters\".", + "items": { + "$ref": "Cluster" + }, + "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" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListInstancesResponse": { "description": "Response for ListInstances.", "id": "ListInstancesResponse", @@ -1081,7 +2445,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1149,6 +2513,7 @@ "id": "MaintenanceSchedule", "properties": { "canReschedule": { + "deprecated": true, "description": "If the scheduled maintenance can be rescheduled, default is true.", "type": "boolean" }, @@ -1173,6 +2538,19 @@ }, "type": "object" }, + "ManagedCertificateAuthority": { + "id": "ManagedCertificateAuthority", + "properties": { + "caCerts": { + "description": "The PEM encoded CA certificate chains for redis managed server authentication", + "items": { + "$ref": "CertChain" + }, + "type": "array" + } + }, + "type": "object" + }, "NodeInfo": { "description": "Node specific properties.", "id": "NodeInfo", @@ -1219,12 +2597,92 @@ "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" } }, "type": "object" }, + "OperationError": { + "description": "An error that occurred during a backup creation operation.", + "id": "OperationError", + "properties": { + "code": { + "description": "Identifies the specific error that occurred. REQUIRED", + "type": "string" + }, + "errorType": { + "enum": [ + "OPERATION_ERROR_TYPE_UNSPECIFIED", + "KMS_KEY_ERROR", + "DATABASE_ERROR", + "STOCKOUT_ERROR", + "CANCELLATION_ERROR", + "SQLSERVER_ERROR", + "INTERNAL_ERROR" + ], + "enumDescriptions": [ + "UNSPECIFIED means product type is not known or available.", + "key destroyed, expired, not found, unreachable or permission denied.", + "Database is not accessible", + "The zone or region does not have sufficient resources to handle the request at the moment", + "User initiated cancellation", + "SQL server specific error", + "Any other internal error." + ], + "type": "string" + }, + "message": { + "description": "Additional information about the error encountered. REQUIRED", + "type": "string" + } + }, + "type": "object" + }, + "OperationMetadata": { + "description": "Pre-defined metadata fields.", + "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 successfully been cancelled 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" + }, "OutputConfig": { "description": "The output content", "id": "OutputConfig", @@ -1286,11 +2744,156 @@ }, "type": "object" }, + "Product": { + "description": "Product specification for Condor resources.", + "id": "Product", + "properties": { + "engine": { + "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", + "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 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" + }, + "type": { + "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", + "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" + }, + "version": { + "description": "Version of the underlying database engine. Example values: For MySQL, it could be \"8.0\", \"5.7\" etc.. For Postgres, it could be \"14\", \"15\" etc..", + "type": "string" + } + }, + "type": "object" + }, + "PscConfig": { + "id": "PscConfig", + "properties": { + "network": { + "description": "Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}.", + "type": "string" + } + }, + "type": "object" + }, + "PscConnection": { + "description": "Details of consumer resources in a PSC connection.", + "id": "PscConnection", + "properties": { + "address": { + "description": "Output only. The IP allocated on the consumer network for the PSC forwarding rule.", + "readOnly": true, + "type": "string" + }, + "forwardingRule": { + "description": "Output only. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.", + "readOnly": true, + "type": "string" + }, + "network": { + "description": "The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}.", + "type": "string" + }, + "projectId": { + "description": "Output only. The consumer project_id where the forwarding rule is created from.", + "readOnly": true, + "type": "string" + }, + "pscConnectionId": { + "description": "Output only. The PSC connection id of the forwarding rule connected to the service attachment.", + "readOnly": true, + "type": "string" + } + }, + "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" }, @@ -1301,9 +2904,14 @@ "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. For more information - go/ccfe-delete-on-upsert, go/ccfe-reconciliation-protocol-ug#apply_delete", + "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" @@ -1339,6 +2947,47 @@ }, "type": "object" }, + "RetentionSettings": { + "id": "RetentionSettings", + "properties": { + "quantityBasedRetention": { + "format": "int32", + "type": "integer" + }, + "retentionUnit": { + "description": "The unit that 'retained_backups' represents.", + "enum": [ + "RETENTION_UNIT_UNSPECIFIED", + "COUNT", + "TIME", + "RETENTION_UNIT_OTHER" + ], + "enumDescriptions": [ + "Backup retention unit is unspecified, will be treated as COUNT.", + "Retention will be by count, eg. \"retain the most recent 7 backups\".", + "Retention will be by Time, eg. \"retain the last 7 days backups\".", + "For rest of the other category" + ], + "type": "string" + }, + "timeBasedRetention": { + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "StateInfo": { + "description": "Represents additional information about the state of the cluster.", + "id": "StateInfo", + "properties": { + "updateInfo": { + "$ref": "UpdateInfo", + "description": "Describes ongoing update on the cluster when cluster state is UPDATING." + } + }, + "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", @@ -1424,6 +3073,23 @@ }, "type": "object" }, + "UpdateInfo": { + "description": "Represents information about an updating cluster.", + "id": "UpdateInfo", + "properties": { + "targetReplicaCount": { + "description": "Target number of replica nodes per shard.", + "format": "int32", + "type": "integer" + }, + "targetShardCount": { + "description": "Target number of shards for redis cluster", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "UpgradeInstanceRequest": { "description": "Request for UpgradeInstance.", "id": "UpgradeInstanceRequest", diff --git a/etc/api/redis/v1beta1/redis-api.json b/etc/api/redis/v1beta1/redis-api.json index 81203e734b..2dd0fd7276 100644 --- a/etc/api/redis/v1beta1/redis-api.json +++ b/etc/api/redis/v1beta1/redis-api.json @@ -177,6 +177,203 @@ } }, "resources": { + "clusters": { + "methods": { + "create": { + "description": "Creates a Redis cluster based on the specified properties. The creation is executed asynchronously and callers may check the returned operation to track its progress. Once the operation is completed the Redis cluster will be fully functional. The completed longrunning.Operation will contain the new cluster object in the response field. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters", + "httpMethod": "POST", + "id": "redis.projects.locations.clusters.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "clusterId": { + "description": "Required. The logical name of the Redis cluster in the customer project with the following restrictions: * Must contain only lowercase letters, numbers, and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the customer project / location", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the cluster location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Idempotent request UUID.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+parent}/clusters", + "request": { + "$ref": "Cluster" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a specific Redis cluster. Cluster stops serving and data is deleted.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", + "httpMethod": "DELETE", + "id": "redis.projects.locations.clusters.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Redis cluster resource name using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` where `location_id` refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Idempotent request UUID.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets the details of a specific Redis cluster.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", + "httpMethod": "GET", + "id": "redis.projects.locations.clusters.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Redis cluster resource name using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` where `location_id` refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Cluster" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getCertificateAuthority": { + "description": "Gets the details of certificate authority information for Redis cluster.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/certificateAuthority", + "httpMethod": "GET", + "id": "redis.projects.locations.clusters.getCertificateAuthority", + "parameterOrder": [ + "name" + ], + "parameters": { + "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/[^/]+/certificateAuthority$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "CertificateAuthority" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all Redis clusters owned by a project in either the specified location (region) or all locations. The location should have the following format: * `projects/{project_id}/locations/{location_id}` If `location_id` is specified as `-` (wildcard), then all regions available to the project are queried, and the results are aggregated.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters", + "httpMethod": "GET", + "id": "redis.projects.locations.clusters.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of items to return. If not specified, a default value of 1000 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's `next_page_token` to determine if there are more clusters left to be queried.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The `next_page_token` value returned from a previous ListClusters request, if any.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the cluster location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/clusters", + "response": { + "$ref": "ListClustersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the metadata and configuration of a specific Redis cluster. Completed longrunning.Operation will contain the new cluster object in the response field. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", + "httpMethod": "PATCH", + "id": "redis.projects.locations.clusters.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Unique name of the resource in this scope including project and location using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Idempotent request UUID.", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "Required. Mask of fields to update. At least one path must be supplied in this field. The elements of the repeated paths field may only include these fields from Cluster: * `size_gb` * `replica_count`", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "request": { + "$ref": "Cluster" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "instances": { "methods": { "create": { @@ -577,7 +774,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "redis.projects.locations.operations.list", @@ -624,15 +821,1136 @@ } } }, - "revision": "20230111", + "revision": "20240226", "rootUrl": "https://redis.googleapis.com/", "schemas": { + "AvailabilityConfiguration": { + "description": "Configuration for availability of database instance", + "id": "AvailabilityConfiguration", + "properties": { + "availabilityType": { + "description": "Availability type. Potential values: * `ZONAL`: The instance serves data from only one zone. Outages in that zone affect data accessibility. * `REGIONAL`: The instance can serve data from more than one zone in a region (it is highly available).", + "enum": [ + "AVAILABILITY_TYPE_UNSPECIFIED", + "ZONAL", + "REGIONAL", + "MULTI_REGIONAL", + "AVAILABILITY_TYPE_OTHER" + ], + "enumDescriptions": [ + "", + "Zonal available instance.", + "Regional available instance.", + "Multi regional instance", + "For rest of the other category" + ], + "type": "string" + }, + "externalReplicaConfigured": { + "type": "boolean" + }, + "promotableReplicaConfigured": { + "type": "boolean" + } + }, + "type": "object" + }, + "BackupConfiguration": { + "description": "Configuration for automatic backups", + "id": "BackupConfiguration", + "properties": { + "automatedBackupEnabled": { + "description": "Whether customer visible automated backups are enabled on the instance.", + "type": "boolean" + }, + "backupRetentionSettings": { + "$ref": "RetentionSettings", + "description": "Backup retention settings." + }, + "pointInTimeRecoveryEnabled": { + "description": "Whether point-in-time recovery is enabled. This is optional field, if the database service does not have this feature or metadata is not available in control plane, this can be omitted.", + "type": "boolean" + } + }, + "type": "object" + }, + "BackupRun": { + "description": "A backup run.", + "id": "BackupRun", + "properties": { + "endTime": { + "description": "The time the backup operation completed. REQUIRED", + "format": "google-datetime", + "type": "string" + }, + "error": { + "$ref": "OperationError", + "description": "Information about why the backup operation failed. This is only present if the run has the FAILED status. OPTIONAL" + }, + "startTime": { + "description": "The time the backup operation started. REQUIRED", + "format": "google-datetime", + "type": "string" + }, + "status": { + "description": "The status of this run. REQUIRED", + "enum": [ + "STATUS_UNSPECIFIED", + "SUCCESSFUL", + "FAILED" + ], + "enumDescriptions": [ + "", + "The backup was successful.", + "The backup was unsuccessful." + ], + "type": "string" + } + }, + "type": "object" + }, + "CertChain": { + "id": "CertChain", + "properties": { + "certificates": { + "description": "The certificates that form the CA chain, from leaf to root order.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CertificateAuthority": { + "description": "Redis cluster certificate authority", + "id": "CertificateAuthority", + "properties": { + "managedServerCa": { + "$ref": "ManagedCertificateAuthority" + }, + "name": { + "description": "Identifier. Unique name of the resource in this scope including project, location and cluster using the form: `projects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority`", + "type": "string" + } + }, + "type": "object" + }, + "Cluster": { + "description": "A cluster instance.", + "id": "Cluster", + "properties": { + "authorizationMode": { + "description": "Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster.", + "enum": [ + "AUTH_MODE_UNSPECIFIED", + "AUTH_MODE_IAM_AUTH", + "AUTH_MODE_DISABLED" + ], + "enumDescriptions": [ + "Not set.", + "IAM basic authorization mode", + "Authorization disabled mode" + ], + "type": "string" + }, + "createTime": { + "description": "Output only. The timestamp associated with the cluster creation request.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "discoveryEndpoints": { + "description": "Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one discovery endpoint is supported.", + "items": { + "$ref": "DiscoveryEndpoint" + }, + "readOnly": true, + "type": "array" + }, + "name": { + "description": "Required. Unique name of the resource in this scope including project and location using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}`", + "type": "string" + }, + "pscConfigs": { + "description": "Required. Each PscConfig configures the consumer network where IPs will be designated to the cluster for client access through Private Service Connect Automation. Currently, only one PscConfig is supported.", + "items": { + "$ref": "PscConfig" + }, + "type": "array" + }, + "pscConnections": { + "description": "Output only. PSC connections for discovery of the cluster topology and accessing the cluster.", + "items": { + "$ref": "PscConnection" + }, + "readOnly": true, + "type": "array" + }, + "replicaCount": { + "description": "Optional. The number of replica nodes per shard.", + "format": "int32", + "type": "integer" + }, + "shardCount": { + "description": "Required. Number of shards for the Redis cluster.", + "format": "int32", + "type": "integer" + }, + "sizeGb": { + "description": "Output only. Redis memory size in GB for the entire cluster rounded up to the next integer.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "state": { + "description": "Output only. The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING" + ], + "enumDescriptions": [ + "Not set.", + "Redis cluster is being created.", + "Redis cluster has been created and is fully usable.", + "Redis cluster configuration is being updated.", + "Redis cluster is being deleted." + ], + "readOnly": true, + "type": "string" + }, + "stateInfo": { + "$ref": "StateInfo", + "description": "Output only. Additional information about the current state of the cluster.", + "readOnly": true + }, + "transitEncryptionMode": { + "description": "Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster.", + "enum": [ + "TRANSIT_ENCRYPTION_MODE_UNSPECIFIED", + "TRANSIT_ENCRYPTION_MODE_DISABLED", + "TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION" + ], + "enumDescriptions": [ + "In-transit encryption not set.", + "In-transit encryption disabled.", + "Use server managed encryption for in-transit encryption." + ], + "type": "string" + }, + "uid": { + "description": "Output only. System assigned, unique identifier for the cluster.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "Compliance": { + "description": "Contains compliance information about a security standard indicating unmet recommendations.", + "id": "Compliance", + "properties": { + "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" + }, + "CustomMetadataData": { + "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": "CustomMetadataData", + "properties": { + "databaseMetadata": { + "items": { + "$ref": "DatabaseMetadata" + }, + "type": "array" + } + }, + "type": "object" + }, + "DatabaseMetadata": { + "description": "Metadata for individual databases created in an instance. i.e. spanner instance can have multiple databases with unique configuration settings.", + "id": "DatabaseMetadata", + "properties": { + "backupConfiguration": { + "$ref": "BackupConfiguration", + "description": "Backup configuration for this database" + }, + "backupRun": { + "$ref": "BackupRun", + "description": "Information about the last backup attempt for this database" + }, + "product": { + "$ref": "Product" + }, + "resourceId": { + "$ref": "DatabaseResourceId" + }, + "resourceName": { + "description": "Required. Database name. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", + "type": "string" + } + }, + "type": "object" + }, + "DatabaseResourceFeed": { + "description": "DatabaseResourceFeed is the top level proto to be used to ingest different database resource level events into Condor platform.", + "id": "DatabaseResourceFeed", + "properties": { + "feedTimestamp": { + "description": "Required. Timestamp when feed is generated.", + "format": "google-datetime", + "type": "string" + }, + "feedType": { + "description": "Required. Type feed to be ingested into condor", + "enum": [ + "FEEDTYPE_UNSPECIFIED", + "RESOURCE_METADATA", + "OBSERVABILITY_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 recommendation signal data" + ], + "type": "string" + }, + "recommendationSignalData": { + "$ref": "DatabaseResourceRecommendationSignalData", + "description": "More feed data would be added in subsequent CLs" + }, + "resourceHealthSignalData": { + "$ref": "DatabaseResourceHealthSignalData" + }, + "resourceId": { + "$ref": "DatabaseResourceId", + "deprecated": true, + "description": "Primary key associated with the Resource. resource_id is available in individual feed level as well." + }, + "resourceMetadata": { + "$ref": "DatabaseResourceMetadata" + } + }, + "type": "object" + }, + "DatabaseResourceHealthSignalData": { + "description": "Common model for database resource health signal data.", + "id": "DatabaseResourceHealthSignalData", + "properties": { + "additionalMetadata": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Any other additional metadata", + "type": "object" + }, + "compliance": { + "description": "Industry standards associated with this signal; if this signal is an issue, that could be a violation of the associated industry standard(s). For example, AUTO_BACKUP_DISABLED signal is associated with CIS GCP 1.1, CIS GCP 1.2, CIS GCP 1.3, NIST 800-53 and ISO-27001 compliance standards. If a database resource does not have automated backup enable, it will violate these following industry standards.", + "items": { + "$ref": "Compliance" + }, + "type": "array" + }, + "description": { + "description": "Description associated with signal", + "type": "string" + }, + "eventTime": { + "description": "Required. The last time at which the event described by this signal took place", + "format": "google-datetime", + "type": "string" + }, + "externalUri": { + "description": "The external-uri of the signal, using which more information about this signal can be obtained. In GCP, this will take user to SCC page to get more details about signals.", + "type": "string" + }, + "name": { + "description": "Required. The name of the signal, ex: PUBLIC_SQL_INSTANCE, SQL_LOG_ERROR_VERBOSITY etc.", + "type": "string" + }, + "provider": { + "description": "Cloud provider name. Ex: GCP/AWS/Azure/OnPrem/SelfManaged", + "enum": [ + "PROVIDER_UNSPECIFIED", + "GCP", + "AWS", + "AZURE", + "ONPREM", + "SELFMANAGED", + "PROVIDER_OTHER" + ], + "enumDescriptions": [ + "", + "Google cloud platform provider", + "Amazon web service", + "Azure web service", + "On-prem database resources.", + "Self-managed database provider. These are resources on a cloud platform, e.g., database resource installed in a GCE VM, but not a managed database service.", + "For the rest of the other categories. Other refers to the rest of other database service providers, this could be smaller cloud provider. This needs to be provided when the provider is known, but it is not present in the existing set of enum values." + ], + "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 \"projects/123\". For GCP provided resources, number should be project number.", + "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" + }, + "signalClass": { + "description": "Required. The class of the signal, such as if it's a THREAT or VULNERABILITY.", + "enum": [ + "CLASS_UNSPECIFIED", + "THREAT", + "VULNERABILITY", + "MISCONFIGURATION", + "OBSERVATION", + "ERROR" + ], + "enumDescriptions": [ + "Unspecified signal 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." + ], + "type": "string" + }, + "signalId": { + "description": "Required. Unique identifier for the signal. This is an unique id which would be mainatined by partner to identify a signal.", + "type": "string" + }, + "signalType": { + "description": "Required. Type of signal, for example, `AVAILABLE_IN_MULTIPLE_ZONES`, `LOGGING_MOST_ERRORS`, 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" + }, + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "RESOLVED", + "MUTED" + ], + "enumDescriptions": [ + "Unspecified state.", + "The signal requires attention and has not been addressed yet.", + "The signal has been fixed, triaged as a non-issue or otherwise addressed and is no longer active.", + "The signal has been muted." + ], + "type": "string" + } + }, + "type": "object" + }, + "DatabaseResourceId": { + "description": "DatabaseResourceId will serve as primary key for any resource ingestion event.", + "id": "DatabaseResourceId", + "properties": { + "provider": { + "description": "Required. Cloud provider name. Ex: GCP/AWS/Azure/OnPrem/SelfManaged", + "enum": [ + "PROVIDER_UNSPECIFIED", + "GCP", + "AWS", + "AZURE", + "ONPREM", + "SELFMANAGED", + "PROVIDER_OTHER" + ], + "enumDescriptions": [ + "", + "Google cloud platform provider", + "Amazon web service", + "Azure web service", + "On-prem database resources.", + "Self-managed database provider. These are resources on a cloud platform, e.g., database resource installed in a GCE VM, but not a managed database service.", + "For the rest of the other categories. Other refers to the rest of other database service providers, this could be smaller cloud provider. This needs to be provided when the provider is known, but it is not present in the existing set of enum values." + ], + "type": "string" + }, + "providerDescription": { + "description": "Optional. Needs to be used only when the provider is PROVIDER_OTHER.", + "type": "string" + }, + "resourceType": { + "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": { + "description": "Required. A service-local token that distinguishes this resource from other resources within the same service.", + "type": "string" + } + }, + "type": "object" + }, + "DatabaseResourceMetadata": { + "description": "Common model for database resource instance metadata.", + "id": "DatabaseResourceMetadata", + "properties": { + "availabilityConfiguration": { + "$ref": "AvailabilityConfiguration", + "description": "Availability configuration for this instance" + }, + "backupConfiguration": { + "$ref": "BackupConfiguration", + "description": "Backup configuration for this instance" + }, + "backupRun": { + "$ref": "BackupRun", + "description": "Latest backup run information for this instance" + }, + "creationTime": { + "description": "The creation time of the resource, i.e. the time when resource is created and recorded in partner service.", + "format": "google-datetime", + "type": "string" + }, + "currentState": { + "description": "Current state of the instance.", + "enum": [ + "STATE_UNSPECIFIED", + "HEALTHY", + "UNHEALTHY", + "SUSPENDED", + "DELETED", + "STATE_OTHER" + ], + "enumDescriptions": [ + "", + "The instance is running.", + "Instance being created, updated, deleted or under maintenance", + "When instance is suspended", + "Instance is deleted.", + "For rest of the other category" + ], + "type": "string" + }, + "customMetadata": { + "$ref": "CustomMetadataData", + "description": "Any custom metadata associated with the resource" + }, + "entitlements": { + "description": "Entitlements associated with the resource", + "items": { + "$ref": "Entitlement" + }, + "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.", + "enum": [ + "STATE_UNSPECIFIED", + "HEALTHY", + "UNHEALTHY", + "SUSPENDED", + "DELETED", + "STATE_OTHER" + ], + "enumDescriptions": [ + "", + "The instance is running.", + "Instance being created, updated, deleted or under maintenance", + "When instance is suspended", + "Instance is deleted.", + "For rest of the other category" + ], + "type": "string" + }, + "id": { + "$ref": "DatabaseResourceId", + "description": "Required. Unique identifier for a Database resource" + }, + "instanceType": { + "description": "The type of the instance. Specified at creation time.", + "enum": [ + "INSTANCE_TYPE_UNSPECIFIED", + "SUB_RESOURCE_TYPE_UNSPECIFIED", + "PRIMARY", + "SECONDARY", + "READ_REPLICA", + "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.", + "For rest of the other categories." + ], + "type": "string" + }, + "location": { + "description": "The resource location. REQUIRED", + "type": "string" + }, + "primaryResourceId": { + "$ref": "DatabaseResourceId", + "description": "Identifier for this resource's immediate parent/primary resource if the current resource is a replica or derived form of another Database resource. Else it would be NULL. REQUIRED if the immediate parent exists when first time resource is getting ingested" + }, + "product": { + "$ref": "Product", + "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 \"/\", such as \"projects/123\". For GCP provided resources, number should be project number.", + "type": "string" + }, + "resourceName": { + "description": "Required. Different from DatabaseResourceId.unique_id, a resource name can be reused over time. That is, after a resource named \"ABC\" is deleted, the name \"ABC\" can be used to to create a new resource within the same source. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", + "type": "string" + }, + "updationTime": { + "description": "The time at which the resource was updated and recorded at partner service.", + "format": "google-datetime", + "type": "string" + }, + "userLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "User-provided labels, represented as a dictionary where each label is a single key value pair.", + "type": "object" + } + }, + "type": "object" + }, + "DatabaseResourceRecommendationSignalData": { + "description": "Common model for database resource recommendation signal data.", + "id": "DatabaseResourceRecommendationSignalData", + "properties": { + "additionalMetadata": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Optional. 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" + }, + "DiscoveryEndpoint": { + "description": "Endpoints on each network, for Redis clients to connect to the cluster.", + "id": "DiscoveryEndpoint", + "properties": { + "address": { + "description": "Output only. Address of the exposed Redis endpoint used by clients to connect to the service. The address could be either IP or hostname.", + "readOnly": true, + "type": "string" + }, + "port": { + "description": "Output only. The port number of the exposed Redis endpoint.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "pscConfig": { + "$ref": "PscConfig", + "description": "Output only. Customer configuration for where the endpoint is created and accessed from.", + "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" }, + "Entitlement": { + "description": "Proto representing the access that a user has to a specific feature/service. NextId: 3.", + "id": "Entitlement", + "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" + }, "ExportInstanceRequest": { "description": "Request for Export.", "id": "ExportInstanceRequest", @@ -924,7 +2242,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": { @@ -936,6 +2254,16 @@ "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.", + "readOnly": true, + "type": "boolean" + }, "secondaryIpRange": { "description": "Optional. Additional IP range for node placement. Required when enabling read replicas on an existing instance. For DIRECT_PEERING mode value must be a CIDR range of size /28, or \"auto\". For PRIVATE_SERVICE_ACCESS mode value must be the name of an allocated address range associated with the private service access connection, or \"auto\".", "type": "string" @@ -1037,6 +2365,31 @@ }, "type": "object" }, + "ListClustersResponse": { + "description": "Response for ListClusters.", + "id": "ListClustersResponse", + "properties": { + "clusters": { + "description": "A list of Redis clusters in the project in the specified location, or across all locations. If the `location_id` in the parent field of the request is \"-\", all regions available to the project are queried, and the results aggregated. If in such an aggregated query a location is unavailable, a placeholder Redis entry is included in the response with the `name` field set to a value of the form `projects/{project_id}/locations/{location_id}/clusters/`- and the `status` field set to ERROR and `status_message` field set to \"location not available for ListClusters\".", + "items": { + "$ref": "Cluster" + }, + "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" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListInstancesResponse": { "description": "Response for ListInstances.", "id": "ListInstancesResponse", @@ -1099,7 +2452,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1167,6 +2520,7 @@ "id": "MaintenanceSchedule", "properties": { "canReschedule": { + "deprecated": true, "description": "If the scheduled maintenance can be rescheduled, default is true.", "type": "boolean" }, @@ -1191,6 +2545,19 @@ }, "type": "object" }, + "ManagedCertificateAuthority": { + "id": "ManagedCertificateAuthority", + "properties": { + "caCerts": { + "description": "The PEM encoded CA certificate chains for redis managed server authentication", + "items": { + "$ref": "CertChain" + }, + "type": "array" + } + }, + "type": "object" + }, "NodeInfo": { "description": "Node specific properties.", "id": "NodeInfo", @@ -1237,12 +2604,92 @@ "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" } }, "type": "object" }, + "OperationError": { + "description": "An error that occurred during a backup creation operation.", + "id": "OperationError", + "properties": { + "code": { + "description": "Identifies the specific error that occurred. REQUIRED", + "type": "string" + }, + "errorType": { + "enum": [ + "OPERATION_ERROR_TYPE_UNSPECIFIED", + "KMS_KEY_ERROR", + "DATABASE_ERROR", + "STOCKOUT_ERROR", + "CANCELLATION_ERROR", + "SQLSERVER_ERROR", + "INTERNAL_ERROR" + ], + "enumDescriptions": [ + "UNSPECIFIED means product type is not known or available.", + "key destroyed, expired, not found, unreachable or permission denied.", + "Database is not accessible", + "The zone or region does not have sufficient resources to handle the request at the moment", + "User initiated cancellation", + "SQL server specific error", + "Any other internal error." + ], + "type": "string" + }, + "message": { + "description": "Additional information about the error encountered. REQUIRED", + "type": "string" + } + }, + "type": "object" + }, + "OperationMetadata": { + "description": "Pre-defined metadata fields.", + "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 successfully been cancelled 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" + }, "OutputConfig": { "description": "The output content", "id": "OutputConfig", @@ -1304,11 +2751,156 @@ }, "type": "object" }, + "Product": { + "description": "Product specification for Condor resources.", + "id": "Product", + "properties": { + "engine": { + "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", + "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 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" + }, + "type": { + "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", + "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" + }, + "version": { + "description": "Version of the underlying database engine. Example values: For MySQL, it could be \"8.0\", \"5.7\" etc.. For Postgres, it could be \"14\", \"15\" etc..", + "type": "string" + } + }, + "type": "object" + }, + "PscConfig": { + "id": "PscConfig", + "properties": { + "network": { + "description": "Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}.", + "type": "string" + } + }, + "type": "object" + }, + "PscConnection": { + "description": "Details of consumer resources in a PSC connection.", + "id": "PscConnection", + "properties": { + "address": { + "description": "Output only. The IP allocated on the consumer network for the PSC forwarding rule.", + "readOnly": true, + "type": "string" + }, + "forwardingRule": { + "description": "Output only. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.", + "readOnly": true, + "type": "string" + }, + "network": { + "description": "The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}.", + "type": "string" + }, + "projectId": { + "description": "Output only. The consumer project_id where the forwarding rule is created from.", + "readOnly": true, + "type": "string" + }, + "pscConnectionId": { + "description": "Output only. The PSC connection id of the forwarding rule connected to the service attachment.", + "readOnly": true, + "type": "string" + } + }, + "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" }, @@ -1319,9 +2911,14 @@ "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. For more information - go/ccfe-delete-on-upsert, go/ccfe-reconciliation-protocol-ug#apply_delete", + "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" @@ -1357,6 +2954,47 @@ }, "type": "object" }, + "RetentionSettings": { + "id": "RetentionSettings", + "properties": { + "quantityBasedRetention": { + "format": "int32", + "type": "integer" + }, + "retentionUnit": { + "description": "The unit that 'retained_backups' represents.", + "enum": [ + "RETENTION_UNIT_UNSPECIFIED", + "COUNT", + "TIME", + "RETENTION_UNIT_OTHER" + ], + "enumDescriptions": [ + "Backup retention unit is unspecified, will be treated as COUNT.", + "Retention will be by count, eg. \"retain the most recent 7 backups\".", + "Retention will be by Time, eg. \"retain the last 7 days backups\".", + "For rest of the other category" + ], + "type": "string" + }, + "timeBasedRetention": { + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "StateInfo": { + "description": "Represents additional information about the state of the cluster.", + "id": "StateInfo", + "properties": { + "updateInfo": { + "$ref": "UpdateInfo", + "description": "Describes ongoing update on the cluster when cluster state is UPDATING." + } + }, + "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", @@ -1442,6 +3080,23 @@ }, "type": "object" }, + "UpdateInfo": { + "description": "Represents information about an updating cluster.", + "id": "UpdateInfo", + "properties": { + "targetReplicaCount": { + "description": "Target number of replica nodes per shard.", + "format": "int32", + "type": "integer" + }, + "targetShardCount": { + "description": "Target number of shards for redis cluster", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "UpgradeInstanceRequest": { "description": "Request for UpgradeInstance.", "id": "UpgradeInstanceRequest", diff --git a/etc/api/reseller/v1/reseller-api.json b/etc/api/reseller/v1/reseller-api.json index 7e0f54da11..ca98d41547 100644 --- a/etc/api/reseller/v1/reseller-api.json +++ b/etc/api/reseller/v1/reseller-api.json @@ -498,6 +498,21 @@ "customerId" ], "parameters": { + "action": { + "description": "The intented insert action. The usage of this field is governed by certain policies which are being developed & tested currently. Hence, these might not work as intended. Once this is fully tested & available to consume, we will share more information about its usage, limitations and policy documentation.", + "enum": [ + "actionUnspecified", + "buy", + "switch" + ], + "enumDescriptions": [ + "Auto determines whether to create new subscription, upgrade or downagrade existing subscription or transfer the existing subscription", + "Create new subscription", + "Switch existing subscription to another sku (upgrade/downgrade)" + ], + "location": "query", + "type": "string" + }, "customerAuthToken": { "description": "The `customerAuthToken` query string is required when creating a resold account that transfers a direct customer's subscription or transfers another reseller customer's subscription to your reseller management. This is a hexadecimal authentication token needed to complete the subscription transfer. For more information, see the administrator help center.", "location": "query", @@ -508,6 +523,11 @@ "location": "path", "required": true, "type": "string" + }, + "sourceSkuId": { + "description": "The sku_id of the existing subscription to be upgraded or downgraded. This is required when action is SWITCH. The usage of this field is governed by certain policies which are being developed & tested currently. Hence, these might not work as intended. Once this is fully tested & available to consume, we will share more information about its usage, limitations and policy documentation.", + "location": "query", + "type": "string" } }, "path": "apps/reseller/v1/customers/{customerId}/subscriptions", @@ -631,7 +651,7 @@ } } }, - "revision": "20230122", + "revision": "20240303", "rootUrl": "https://reseller.googleapis.com/", "schemas": { "Address": { diff --git a/etc/api/resourcesettings/v1/resourcesettings-api.json b/etc/api/resourcesettings/v1/resourcesettings-api.json index df2db252cc..2674476c67 100644 --- a/etc/api/resourcesettings/v1/resourcesettings-api.json +++ b/etc/api/resourcesettings/v1/resourcesettings-api.json @@ -499,7 +499,7 @@ } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://resourcesettings.googleapis.com/", "schemas": { "GoogleCloudResourcesettingsV1ListSettingsResponse": { diff --git a/etc/api/retail/v2/retail-api.json b/etc/api/retail/v2/retail-api.json index 7985fd4169..222e79d585 100644 --- a/etc/api/retail/v2/retail-api.json +++ b/etc/api/retail/v2/retail-api.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", "fullyEncodeReservedExpansion": true, @@ -137,6 +137,11 @@ "location": "query", "type": "string" }, + "entity": { + "description": "The entity for customers who run multiple entities, domains, sites, or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it must be an exact match with UserEvent.entity to get per-entity autocomplete results.", + "location": "query", + "type": "string" + }, "languageCodes": { "description": "Note that this field applies for `user-data` dataset only. For requests with `cloud-retail` dataset, setting this field has no effect. The language filters applied to the output suggestions. If set, it should contain the language of the query. If not set, suggestions are returned without considering language restrictions. This is the BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum number of language codes is 3.", "location": "query", @@ -168,6 +173,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", @@ -533,7 +566,7 @@ "products": { "methods": { "addFulfillmentPlaces": { - "description": "Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", + "description": "We recommend that you use the ProductService.AddLocalInventories method instead of the ProductService.AddFulfillmentPlaces method. ProductService.AddLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addFulfillmentPlaces", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.addFulfillmentPlaces", @@ -561,7 +594,7 @@ ] }, "addLocalInventories": { - "description": "Updates local inventory information for a Product at a list of places, while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating inventory information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. Local inventory information can only be modified using this method. ProductService.CreateProduct and ProductService.UpdateProduct has no effect on local inventories. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", + "description": "Updates local inventory information for a Product at a list of places, while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating inventory information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. Local inventory information can only be modified using this method. ProductService.CreateProduct and ProductService.UpdateProduct has no effect on local inventories. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addLocalInventories", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.addLocalInventories", @@ -785,8 +818,36 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "purge": { + "description": "Permanently deletes all selected Products under a branch. This process is asynchronous. If the request is valid, the removal will be enqueued and processed offline. Depending on the number of Products, this operation could take hours to complete. Before the operation completes, some Products may still be returned by ProductService.GetProduct or ProductService.ListProducts. Depending on the number of Products, this operation could take hours to complete. To get a sample of Products that would be deleted, set PurgeProductsRequest.force to false.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products:purge", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.branches.products.purge", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The resource name of the branch under which the products are created. The format is `projects/${projectId}/locations/global/catalogs/${catalogId}/branches/${branchId}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/products:purge", + "request": { + "$ref": "GoogleCloudRetailV2PurgeProductsRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "removeFulfillmentPlaces": { - "description": "Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", + "description": "We recommend that you use the ProductService.RemoveLocalInventories method instead of the ProductService.RemoveFulfillmentPlaces method. ProductService.RemoveLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeFulfillmentPlaces", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.removeFulfillmentPlaces", @@ -814,7 +875,7 @@ ] }, "removeLocalInventories": { - "description": "Remove local inventory information for a Product at a list of places at a removal timestamp. This process is asynchronous. If the request is valid, the removal will be enqueued and processed downstream. As a consequence, when a response is returned, removals are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. Local inventory information can only be removed using this method. ProductService.CreateProduct and ProductService.UpdateProduct has no effect on local inventories. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", + "description": "Remove local inventory information for a Product at a list of places at a removal timestamp. This process is asynchronous. If the request is valid, the removal will be enqueued and processed downstream. As a consequence, when a response is returned, removals are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. Local inventory information can only be removed using this method. ProductService.CreateProduct and ProductService.UpdateProduct has no effect on local inventories. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeLocalInventories", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.removeLocalInventories", @@ -842,7 +903,7 @@ ] }, "setInventory": { - "description": "Updates inventory information for a Product while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update is enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. When inventory is updated with ProductService.CreateProduct and ProductService.UpdateProduct, the specified inventory field value(s) overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update times for the specified inventory fields are overwritten by the times of the ProductService.CreateProduct or ProductService.UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product is used. If no inventory fields are set in SetInventoryRequest.set_mask, then any existing inventory information is preserved. Pre-existing inventory information can only be updated with ProductService.SetInventory, ProductService.AddFulfillmentPlaces, and ProductService.RemoveFulfillmentPlaces. The returned Operations is obsolete after one day, and the GetOperation API returns `NOT_FOUND` afterwards. If conflicting updates are issued, the Operations associated with the stale updates are not marked as done until they are obsolete. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", + "description": "Updates inventory information for a Product while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update is enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. When inventory is updated with ProductService.CreateProduct and ProductService.UpdateProduct, the specified inventory field value(s) overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update times for the specified inventory fields are overwritten by the times of the ProductService.CreateProduct or ProductService.UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product is used. If no inventory fields are set in SetInventoryRequest.set_mask, then any existing inventory information is preserved. Pre-existing inventory information can only be updated with ProductService.SetInventory, ProductService.AddFulfillmentPlaces, and ProductService.RemoveFulfillmentPlaces. The returned Operations is obsolete after one day, and the GetOperation API returns `NOT_FOUND` afterwards. If conflicting updates are issued, the Operations associated with the stale updates are not marked as done until they are obsolete.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:setInventory", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.setInventory", @@ -1067,6 +1128,247 @@ } } }, + "models": { + "methods": { + "create": { + "description": "Creates a new model.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.models.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "dryRun": { + "description": "Optional. Whether to run a dry run to validate the request (without actually creating the model).", + "location": "query", + "type": "boolean" + }, + "parent": { + "description": "Required. The parent resource under which to create the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/models", + "request": { + "$ref": "GoogleCloudRetailV2Model" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an existing model.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}", + "httpMethod": "DELETE", + "id": "retail.projects.locations.catalogs.models.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the Model to delete. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a model.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.models.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the Model to get. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog}/models/{model_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleCloudRetailV2Model" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all the models linked to this event store.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.models.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. Maximum number of results to return. If unspecified, defaults to 50. Max allowed value is 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListModels` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent for which to list models. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/models", + "response": { + "$ref": "GoogleCloudRetailV2ListModelsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Update of model metadata. Only fields that currently can be updated are: `filtering_option` and `periodic_tuning_state`. If other values are provided, this API method ignores them.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}", + "httpMethod": "PATCH", + "id": "retail.projects.locations.catalogs.models.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Indicates which fields in the provided 'model' to update. If not set, by default updates all fields.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+name}", + "request": { + "$ref": "GoogleCloudRetailV2Model" + }, + "response": { + "$ref": "GoogleCloudRetailV2Model" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "pause": { + "description": "Pauses the training of an existing model.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}:pause", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.models.pause", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the model to pause. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:pause", + "request": { + "$ref": "GoogleCloudRetailV2PauseModelRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2Model" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "resume": { + "description": "Resumes the training of an existing model.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}:resume", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.models.resume", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the model to resume. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:resume", + "request": { + "$ref": "GoogleCloudRetailV2ResumeModelRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2Model" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "tune": { + "description": "Tunes an existing model.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}:tune", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.models.tune", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the model to tune. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:tune", + "request": { + "$ref": "GoogleCloudRetailV2TuneModelRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "operations": { "methods": { "get": { @@ -1095,7 +1397,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/operations", "httpMethod": "GET", "id": "retail.projects.locations.catalogs.operations.list", @@ -1177,7 +1479,7 @@ ], "parameters": { "placement": { - "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that will be used to make the search.", + "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", "required": true, @@ -1446,7 +1748,7 @@ ], "parameters": { "placement": { - "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that will be used to make the search.", + "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", "required": true, @@ -1668,7 +1970,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "retail.projects.locations.operations.list", @@ -1740,7 +2042,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v2/projects/{projectsId}/operations", "httpMethod": "GET", "id": "retail.projects.operations.list", @@ -1785,7 +2087,7 @@ } } }, - "revision": "20230117", + "revision": "20240222", "rootUrl": "https://retail.googleapis.com/", "schemas": { "GoogleApiHttpBody": { @@ -2093,12 +2395,27 @@ }, "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", "properties": { "dataSchema": { - "description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: The schema is available here: https://support.google.com/analytics/answer/3437719. * `user_event_ga4`: The schema is available here: https://support.google.com/analytics/answer/7029846. Supported values for auto-completion imports: * `suggestions` (default): One JSON completion suggestion per line. * `denylist`: One JSON deny suggestion per line. * `allowlist`: One JSON allow suggestion per line.", + "description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: The schema is available here: https://support.google.com/analytics/answer/3437719. * `user_event_ga4`: The schema is available here: https://support.google.com/analytics/answer/7029846. Supported values for autocomplete imports: * `suggestions` (default): One JSON completion suggestion per line. * `denylist`: One JSON deny suggestion per line. * `allowlist`: One JSON allow suggestion per line.", "type": "string" }, "datasetId": { @@ -2175,13 +2492,17 @@ ], "type": "string" }, + "facetConfig": { + "$ref": "GoogleCloudRetailV2CatalogAttributeFacetConfig", + "description": "Contains facet options." + }, "inUse": { "description": "Output only. Indicates whether this attribute has been used by any products. `True` if at least one Product is using this attribute in Product.attributes. Otherwise, this field is `False`. CatalogAttribute can be pre-loaded by using CatalogService.AddCatalogAttribute, CatalogService.ImportCatalogAttributes, or CatalogService.UpdateAttributesConfig APIs. This field is `False` for pre-loaded CatalogAttributes. Only pre-loaded catalog attributes that are neither in use by products nor predefined can be deleted. Catalog attributes that are either in use by products or are predefined attributes cannot be deleted; however, their configuration properties will reset to default values upon removal request. After catalog changes, it takes about 10 minutes for this field to update.", "readOnly": true, "type": "boolean" }, "indexableOption": { - "description": "When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if INDEXABLE_ENABLED attribute values are indexed so that it can be filtered, faceted, or boosted in SearchService.Search. Must be specified, otherwise throws INVALID_FORMAT error.", + "description": "When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if INDEXABLE_ENABLED attribute values are indexed so that it can be filtered, faceted, or boosted in SearchService.Search. Must be specified when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.", "enum": [ "INDEXABLE_OPTION_UNSPECIFIED", "INDEXABLE_ENABLED", @@ -2213,7 +2534,7 @@ "type": "string" }, "searchableOption": { - "description": "When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if SEARCHABLE_ENABLED, attribute values are searchable by text queries in SearchService.Search. If SEARCHABLE_ENABLED but attribute type is numerical, attribute values will not be searchable by text queries in SearchService.Search, as there are no text values associated to numerical attributes. Must be specified, otherwise throws INVALID_FORMAT error.", + "description": "When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if SEARCHABLE_ENABLED, attribute values are searchable by text queries in SearchService.Search. If SEARCHABLE_ENABLED but attribute type is numerical, attribute values will not be searchable by text queries in SearchService.Search, as there are no text values associated to numerical attributes. Must be specified, when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.", "enum": [ "SEARCHABLE_OPTION_UNSPECIFIED", "SEARCHABLE_ENABLED", @@ -2244,6 +2565,121 @@ }, "type": "object" }, + "GoogleCloudRetailV2CatalogAttributeFacetConfig": { + "description": "Possible options for the facet that corresponds to the current attribute config.", + "id": "GoogleCloudRetailV2CatalogAttributeFacetConfig", + "properties": { + "facetIntervals": { + "description": "If you don't set the facet SearchRequest.FacetSpec.FacetKey.intervals in the request to a numerical attribute, then we use the computed intervals with rounded bounds obtained from all its product numerical attribute values. The computed intervals might not be ideal for some attributes. Therefore, we give you the option to overwrite them with the facet_intervals field. The maximum of facet intervals per CatalogAttribute is 40. Each interval must have a lower bound or an upper bound. If both bounds are provided, then the lower bound must be smaller or equal than the upper bound.", + "items": { + "$ref": "GoogleCloudRetailV2Interval" + }, + "type": "array" + }, + "ignoredFacetValues": { + "description": "Each instance represents a list of attribute values to ignore as facet values for a specific time range. The maximum number of instances per CatalogAttribute is 25.", + "items": { + "$ref": "GoogleCloudRetailV2CatalogAttributeFacetConfigIgnoredFacetValues" + }, + "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" + }, + "GoogleCloudRetailV2CatalogAttributeFacetConfigIgnoredFacetValues": { + "description": "Facet values to ignore on facets during the specified time range for the given SearchResponse.Facet.key attribute.", + "id": "GoogleCloudRetailV2CatalogAttributeFacetConfigIgnoredFacetValues", + "properties": { + "endTime": { + "description": "If start time is empty and end time is not empty, then ignore these facet values before end time.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "Time range for the current list of facet values to ignore. If multiple time ranges are specified for an facet value for the current attribute, consider all of them. If both are empty, ignore always. If start time and end time are set, then start time must be before end time. If start time is not empty and end time is empty, then will ignore these facet values after the start time.", + "format": "google-datetime", + "type": "string" + }, + "values": { + "description": "List of facet values to ignore for the following time range. The facet values are the same as the attribute values. There is a limit of 10 values per instance of IgnoredFacetValues. Each value can have at most 128 characters.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "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", + "properties": { + "mergedValue": { + "description": "All the previous values are replaced by this merged facet value. This merged_value must be non-empty and can have up to 128 characters.", + "type": "string" + }, + "values": { + "description": "All the facet values that are replaces by the same merged_value that follows. The maximum number of values per MergedFacetValue is 25. Each value can have up to 128 characters.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "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", @@ -2266,7 +2702,7 @@ "type": "object" }, "GoogleCloudRetailV2CompleteQueryResponse": { - "description": "Response of the auto-complete query.", + "description": "Response of the autocomplete query.", "id": "GoogleCloudRetailV2CompleteQueryResponse", "properties": { "attributionToken": { @@ -2281,7 +2717,8 @@ "type": "array" }, "recentSearchResults": { - "description": "Matched recent searches of this user. The maximum number of recent searches is 10. This field is a restricted feature. Contact Retail Search support team if you are interested in enabling it. This feature is only available when CompleteQueryRequest.visitor_id field is set and UserEvent is imported. The recent searches satisfy the follow rules: * They are ordered from latest to oldest. * They are matched with CompleteQueryRequest.query case insensitively. * They are transformed to lower case. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", + "deprecated": true, + "description": "Deprecated. Matched recent searches of this user. The maximum number of recent searches is 10. This field is a restricted feature. If you want to enable it, contact Retail Search support. This feature is only available when CompleteQueryRequest.visitor_id field is set and UserEvent is imported. The recent searches satisfy the follow rules: * They are ordered from latest to oldest. * They are matched with CompleteQueryRequest.query case insensitively. * They are transformed to lower case. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", "items": { "$ref": "GoogleCloudRetailV2CompleteQueryResponseRecentSearchResult" }, @@ -2309,6 +2746,7 @@ "type": "object" }, "GoogleCloudRetailV2CompleteQueryResponseRecentSearchResult": { + "deprecated": true, "description": "Recent search of this user.", "id": "GoogleCloudRetailV2CompleteQueryResponseRecentSearchResult", "properties": { @@ -2348,7 +2786,7 @@ "type": "string" }, "lastSuggestionsImportOperation": { - "description": "Output only. Name of the LRO corresponding to the latest suggestion terms list import. Can use GetOperation API to retrieve the latest state of the Long Running Operation.", + "description": "Output only. Name of the LRO corresponding to the latest suggestion terms list import. Can use GetOperation API method to retrieve the latest state of the Long Running Operation.", "readOnly": true, "type": "string" }, @@ -2420,6 +2858,13 @@ }, "type": "array" }, + "pageCategories": { + "description": "Used to support browse uses cases. A list (up to 10 entries) of categories or departments. The format should be the same as UserEvent.page_categories;", + "items": { + "type": "string" + }, + "type": "array" + }, "queryTerms": { "description": "A list (up to 10 entries) of terms to match the query on. If not specified, match all queries. If many query terms are specified, the condition is matched if any of the terms is a match (i.e. using the OR operator).", "items": { @@ -2523,11 +2968,23 @@ }, "type": "object" }, + "GoogleCloudRetailV2CreateModelMetadata": { + "description": "Metadata associated with a create operation.", + "id": "GoogleCloudRetailV2CreateModelMetadata", + "properties": { + "model": { + "description": "The resource name of the model that this create applies to. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2CustomAttribute": { "description": "A custom attribute that is not explicitly modeled in Product.", "id": "GoogleCloudRetailV2CustomAttribute", "properties": { "indexable": { + "deprecated": true, "description": "This field is normally ignored unless AttributesConfig.attribute_config_level of the Catalog is set to the deprecated 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level attribute configuration, see [Configuration modes](https://cloud.google.com/retail/docs/attribute-config#config-modes). If true, custom attribute values are indexed, so that they can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.", "type": "boolean" }, @@ -2540,6 +2997,7 @@ "type": "array" }, "searchable": { + "deprecated": true, "description": "This field is normally ignored unless AttributesConfig.attribute_config_level of the Catalog is set to the deprecated 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level attribute configuration, see [Configuration modes](https://cloud.google.com/retail/docs/attribute-config#config-modes). If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.", "type": "boolean" }, @@ -2553,6 +3011,101 @@ }, "type": "object" }, + "GoogleCloudRetailV2ExperimentInfo": { + "description": "Metadata for active A/B testing Experiment.", + "id": "GoogleCloudRetailV2ExperimentInfo", + "properties": { + "experiment": { + "description": "The fully qualified resource name of the experiment that provides the serving config under test, should an active experiment exist. For example: `projects/*/locations/global/catalogs/default_catalog/experiments/experiment_id`", + "type": "string" + }, + "servingConfigExperiment": { + "$ref": "GoogleCloudRetailV2ExperimentInfoServingConfigExperiment", + "description": "A/B test between existing Cloud Retail Search ServingConfigs." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ExperimentInfoServingConfigExperiment": { + "description": "Metadata for active serving config A/B tests.", + "id": "GoogleCloudRetailV2ExperimentInfoServingConfigExperiment", + "properties": { + "experimentServingConfig": { + "description": "The fully qualified resource name of the serving config VariantArm.serving_config_id responsible for generating the search response. For example: `projects/*/locations/*/catalogs/*/servingConfigs/*`.", + "type": "string" + }, + "originalServingConfig": { + "description": "The fully qualified resource name of the original SearchRequest.placement in the search request prior to reassignment by experiment API. For example: `projects/*/locations/*/catalogs/*/servingConfigs/*`.", + "type": "string" + } + }, + "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", @@ -2571,6 +3124,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", @@ -2689,6 +3253,7 @@ "type": "string" }, "requestId": { + "deprecated": true, "description": "Deprecated. This field is never set.", "type": "string" }, @@ -2718,7 +3283,7 @@ "description": "Required. The desired input location of the data." }, "notificationPubsubTopic": { - "description": "Full Pub/Sub topic name for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has to be within the same project as ImportProductsRequest.parent. Make sure that `service-@gcp-sa-retail.iam.gserviceaccount.com` has the `pubsub.topics.publish` IAM permission on the topic.", + "description": "Full Pub/Sub topic name for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has to be within the same project as ImportProductsRequest.parent. Make sure that both `cloud-retail-customer-data-access@system.gserviceaccount.com` and `service-@gcp-sa-retail.iam.gserviceaccount.com` have the `pubsub.topics.publish` IAM permission on the topic. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", "type": "string" }, "reconciliationMode": { @@ -2736,11 +3301,12 @@ "type": "string" }, "requestId": { + "deprecated": true, "description": "Deprecated. This field has no effect.", "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" } @@ -2865,6 +3431,24 @@ }, "type": "object" }, + "GoogleCloudRetailV2ListModelsResponse": { + "description": "Response to a ListModelRequest.", + "id": "GoogleCloudRetailV2ListModelsResponse", + "properties": { + "models": { + "description": "List of Models.", + "items": { + "$ref": "GoogleCloudRetailV2Model" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Pagination token, if not returned indicates the last page.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2ListProductsResponse": { "description": "Response message for ProductService.ListProducts method.", "id": "GoogleCloudRetailV2ListProductsResponse", @@ -2930,12 +3514,264 @@ }, "type": "object" }, + "GoogleCloudRetailV2Model": { + "description": "Metadata that describes the training and serving parameters of a Model. A Model can be associated with a ServingConfig and then queried through the Predict API.", + "id": "GoogleCloudRetailV2Model", + "properties": { + "createTime": { + "description": "Output only. Timestamp the Recommendation Model was created at.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "dataState": { + "description": "Output only. The state of data requirements for this model: `DATA_OK` and `DATA_ERROR`. Recommendation model cannot be trained if the data is in `DATA_ERROR` state. Recommendation model can have `DATA_ERROR` state even if serving state is `ACTIVE`: models were trained successfully before, but cannot be refreshed because model no longer has sufficient data for training.", + "enum": [ + "DATA_STATE_UNSPECIFIED", + "DATA_OK", + "DATA_ERROR" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set.", + "The model has sufficient training data.", + "The model does not have sufficient training data. Error messages can be queried via Stackdriver." + ], + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Required. The display name of the model. Should be human readable, used to display Recommendation Models in the Retail Cloud Console Dashboard. UTF-8 encoded string with limit of 1024 characters.", + "type": "string" + }, + "filteringOption": { + "description": "Optional. If `RECOMMENDATIONS_FILTERING_ENABLED`, recommendation filtering by attributes is enabled for the model.", + "enum": [ + "RECOMMENDATIONS_FILTERING_OPTION_UNSPECIFIED", + "RECOMMENDATIONS_FILTERING_DISABLED", + "RECOMMENDATIONS_FILTERING_ENABLED" + ], + "enumDescriptions": [ + "Value used when unset. In this case, server behavior defaults to RECOMMENDATIONS_FILTERING_DISABLED.", + "Recommendation filtering is disabled.", + "Recommendation filtering is enabled." + ], + "type": "string" + }, + "lastTuneTime": { + "description": "Output only. The timestamp when the latest successful tune finished.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "modelFeaturesConfig": { + "$ref": "GoogleCloudRetailV2ModelModelFeaturesConfig", + "description": "Optional. Additional model features config." + }, + "name": { + "description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", + "type": "string" + }, + "optimizationObjective": { + "description": "Optional. The optimization objective e.g. `cvr`. Currently supported values: `ctr`, `cvr`, `revenue-per-order`. If not specified, we choose default based on model type. Default depends on type of recommendation: `recommended-for-you` => `ctr` `others-you-may-like` => `ctr` `frequently-bought-together` => `revenue_per_order` This field together with optimization_objective describe model metadata to use to control model training and serving. See https://cloud.google.com/retail/docs/models for more details on what the model metadata control and which combination of parameters are valid. For invalid combinations of parameters (e.g. type = `frequently-bought-together` and optimization_objective = `ctr`), you receive an error 400 if you try to create/update a recommendation with this set of knobs.", + "type": "string" + }, + "periodicTuningState": { + "description": "Optional. The state of periodic tuning. The period we use is 3 months - to do a one-off tune earlier use the `TuneModel` method. Default value is `PERIODIC_TUNING_ENABLED`.", + "enum": [ + "PERIODIC_TUNING_STATE_UNSPECIFIED", + "PERIODIC_TUNING_DISABLED", + "ALL_TUNING_DISABLED", + "PERIODIC_TUNING_ENABLED" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set.", + "The model has periodic tuning disabled. Tuning can be reenabled by calling the `EnableModelPeriodicTuning` method or by calling the `TuneModel` method.", + "The model cannot be tuned with periodic tuning OR the `TuneModel` method. Hide the options in customer UI and reject any requests through the backend self serve API.", + "The model has periodic tuning enabled. Tuning can be disabled by calling the `DisableModelPeriodicTuning` method." + ], + "type": "string" + }, + "servingConfigLists": { + "description": "Output only. The list of valid serving configs associated with the PageOptimizationConfig.", + "items": { + "$ref": "GoogleCloudRetailV2ModelServingConfigList" + }, + "readOnly": true, + "type": "array" + }, + "servingState": { + "description": "Output only. The serving state of the model: `ACTIVE`, `NOT_ACTIVE`.", + "enum": [ + "SERVING_STATE_UNSPECIFIED", + "INACTIVE", + "ACTIVE", + "TUNED" + ], + "enumDescriptions": [ + "Unspecified serving state.", + "The model is not serving.", + "The model is serving and can be queried.", + "The model is trained on tuned hyperparameters and can be queried." + ], + "readOnly": true, + "type": "string" + }, + "trainingState": { + "description": "Optional. The training state that the model is in (e.g. `TRAINING` or `PAUSED`). Since part of the cost of running the service is frequency of training - this can be used to determine when to train model in order to control cost. If not specified: the default value for `CreateModel` method is `TRAINING`. The default value for `UpdateModel` method is to keep the state the same as before.", + "enum": [ + "TRAINING_STATE_UNSPECIFIED", + "PAUSED", + "TRAINING" + ], + "enumDescriptions": [ + "Unspecified training state.", + "The model training is paused.", + "The model is training." + ], + "type": "string" + }, + "tuningOperation": { + "description": "Output only. The tune operation associated with the model. Can be used to determine if there is an ongoing tune for this recommendation. Empty field implies no tune is goig on.", + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Required. The type of model e.g. `home-page`. Currently supported values: `recommended-for-you`, `others-you-may-like`, `frequently-bought-together`, `page-optimization`, `similar-items`, `buy-it-again`, `on-sale-items`, and `recently-viewed`(readonly value). This field together with optimization_objective describe model metadata to use to control model training and serving. See https://cloud.google.com/retail/docs/models for more details on what the model metadata control and which combination of parameters are valid. For invalid combinations of parameters (e.g. type = `frequently-bought-together` and optimization_objective = `ctr`), you receive an error 400 if you try to create/update a recommendation with this set of knobs.", + "type": "string" + }, + "updateTime": { + "description": "Output only. Timestamp the Recommendation Model was last updated. E.g. if a Recommendation Model was paused - this would be the time the pause was initiated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig": { + "description": "Additional configs for the frequently-bought-together model type.", + "id": "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig", + "properties": { + "contextProductsType": { + "description": "Optional. Specifies the context of the model when it is used in predict requests. Can only be set for the `frequently-bought-together` type. If it isn't specified, it defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "enum": [ + "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", + "SINGLE_CONTEXT_PRODUCT", + "MULTIPLE_CONTEXT_PRODUCTS" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", + "Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ModelModelFeaturesConfig": { + "description": "Additional model features config.", + "id": "GoogleCloudRetailV2ModelModelFeaturesConfig", + "properties": { + "frequentlyBoughtTogetherConfig": { + "$ref": "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig", + "description": "Additional configs for frequently-bought-together models." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ModelServingConfigList": { + "description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", + "id": "GoogleCloudRetailV2ModelServingConfigList", + "properties": { + "servingConfigIds": { + "description": "Optional. A set of valid serving configs that may be used for `PAGE_OPTIMIZATION`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "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", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2PredictRequest": { "description": "Request message for Predict method.", "id": "GoogleCloudRetailV2PredictRequest", "properties": { "filter": { - "description": "Filter for restricting prediction results with a length limit of 5,000 characters. Accepts values for tags and the `filterOutOfStockItems` flag. * Tag expressions. Restricts predictions to products that match all of the specified tags. Boolean operators `OR` and `NOT` are supported if the expression is enclosed in parentheses, and must be separated from the tag values by a space. `-\"tagA\"` is also supported and is equivalent to `NOT \"tagA\"`. Tag values must be double quoted UTF-8 encoded strings with a size limit of 1,000 characters. Note: \"Recently viewed\" models don't support tag filtering at the moment. * filterOutOfStockItems. Restricts predictions to products that do not have a stockState value of OUT_OF_STOCK. Examples: * tag=(\"Red\" OR \"Blue\") tag=\"New-Arrival\" tag=(NOT \"promotional\") * filterOutOfStockItems tag=(-\"promotional\") * filterOutOfStockItems If your filter blocks all prediction results, the API will return *no* results. If instead you want empty result sets to return generic (unfiltered) popular products, set `strictFiltering` to False in `PredictRequest.params`. Note that the API will never return items with storageStatus of \"EXPIRED\" or \"DELETED\" regardless of filter choices. If `filterSyntaxV2` is set to true under the `params` field, then attribute-based expressions are expected instead of the above described tag-based syntax. Examples: * (colors: ANY(\"Red\", \"Blue\")) AND NOT (categories: ANY(\"Phones\")) * (availability: ANY(\"IN_STOCK\")) AND (colors: ANY(\"Red\") OR categories: ANY(\"Phones\"))", + "description": "Filter for restricting prediction results with a length limit of 5,000 characters. Accepts values for tags and the `filterOutOfStockItems` flag. * Tag expressions. Restricts predictions to products that match all of the specified tags. Boolean operators `OR` and `NOT` are supported if the expression is enclosed in parentheses, and must be separated from the tag values by a space. `-\"tagA\"` is also supported and is equivalent to `NOT \"tagA\"`. Tag values must be double quoted UTF-8 encoded strings with a size limit of 1,000 characters. Note: \"Recently viewed\" models don't support tag filtering at the moment. * filterOutOfStockItems. Restricts predictions to products that do not have a stockState value of OUT_OF_STOCK. Examples: * tag=(\"Red\" OR \"Blue\") tag=\"New-Arrival\" tag=(NOT \"promotional\") * filterOutOfStockItems tag=(-\"promotional\") * filterOutOfStockItems If your filter blocks all prediction results, the API will return *no* results. If instead you want empty result sets to return generic (unfiltered) popular products, set `strictFiltering` to False in `PredictRequest.params`. Note that the API will never return items with storageStatus of \"EXPIRED\" or \"DELETED\" regardless of filter choices. If `filterSyntaxV2` is set to true under the `params` field, then attribute-based expressions are expected instead of the above described tag-based syntax. Examples: * (colors: ANY(\"Red\", \"Blue\")) AND NOT (categories: ANY(\"Phones\")) * (availability: ANY(\"IN_STOCK\")) AND (colors: ANY(\"Red\") OR categories: ANY(\"Phones\")) For more information, see [Filter recommendations](https://cloud.google.com/retail/docs/filter-recs).", "type": "string" }, "labels": { @@ -2951,6 +3787,7 @@ "type": "integer" }, "pageToken": { + "deprecated": true, "description": "This field is not used; leave it unset.", "type": "string" }, @@ -3119,14 +3956,14 @@ "type": "string" }, "brands": { - "description": "The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).", + "description": "The brands of the product. A maximum of 30 brands are allowed unless overridden through the Google Cloud console. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).", "items": { "type": "string" }, "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" }, @@ -3155,7 +3992,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" }, @@ -3186,7 +4023,7 @@ "type": "string" }, "localInventories": { - "description": "Output only. A list of local inventories specific to different places. This is only available for users who have Retail Search enabled, and it can be managed by ProductService.AddLocalInventories and ProductService.RemoveLocalInventories APIs.", + "description": "Output only. A list of local inventories specific to different places. This field can be managed by ProductService.AddLocalInventories and ProductService.RemoveLocalInventories APIs if fine-grained, high-volume updates are necessary.", "items": { "$ref": "GoogleCloudRetailV2LocalInventory" }, @@ -3236,6 +4073,7 @@ "description": "The rating of this product." }, "retrievableFields": { + "deprecated": true, "description": "Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form \"attributes.key\" where \"key\" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is returned. Note: Returning more fields in SearchResponse can increase response payload size and serving latency. This field is deprecated. Use the retrievable site-wide control instead.", "format": "google-fieldmask", "type": "string" @@ -3405,6 +4243,67 @@ "properties": {}, "type": "object" }, + "GoogleCloudRetailV2PurgeProductsMetadata": { + "description": "Metadata related to the progress of the PurgeProducts operation. This will be returned by the google.longrunning.Operation.metadata field.", + "id": "GoogleCloudRetailV2PurgeProductsMetadata", + "properties": { + "createTime": { + "description": "Operation create time.", + "format": "google-datetime", + "type": "string" + }, + "failureCount": { + "description": "Count of entries that encountered errors while processing.", + "format": "int64", + "type": "string" + }, + "successCount": { + "description": "Count of entries that were deleted successfully.", + "format": "int64", + "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" + }, + "GoogleCloudRetailV2PurgeProductsRequest": { + "description": "Request message for PurgeProducts method.", + "id": "GoogleCloudRetailV2PurgeProductsRequest", + "properties": { + "filter": { + "description": "Required. The filter string to specify the products to be deleted with a length limit of 5,000 characters. Empty string filter is not allowed. \"*\" implies delete all items in a branch. The eligible fields for filtering are: * `availability`: Double quoted Product.availability string. * `create_time` : in ISO 8601 \"zulu\" format. Supported syntax: * Comparators (\">\", \"<\", \">=\", \"<=\", \"=\"). Examples: * create_time <= \"2015-02-13T17:05:46Z\" * availability = \"IN_STOCK\" * Conjunctions (\"AND\") Examples: * create_time <= \"2015-02-13T17:05:46Z\" AND availability = \"PREORDER\" * Disjunctions (\"OR\") Examples: * create_time <= \"2015-02-13T17:05:46Z\" OR availability = \"IN_STOCK\" * Can support nested queries. Examples: * (create_time <= \"2015-02-13T17:05:46Z\" AND availability = \"PREORDER\") OR (create_time >= \"2015-02-14T13:03:32Z\" AND availability = \"IN_STOCK\") * Filter Limits: * Filter should not contain more than 6 conditions. * Max nesting depth should not exceed 2 levels. Examples queries: * Delete back order products created before a timestamp. create_time <= \"2015-02-13T17:05:46Z\" OR availability = \"BACKORDER\"", + "type": "string" + }, + "force": { + "description": "Actually perform the purge. If `force` is set to false, the method will return the expected purge count without deleting any products.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2PurgeProductsResponse": { + "description": "Response of the PurgeProductsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", + "id": "GoogleCloudRetailV2PurgeProductsResponse", + "properties": { + "purgeCount": { + "description": "The total count of products purged as a result of the operation.", + "format": "int64", + "type": "string" + }, + "purgeSample": { + "description": "A sample of the product names that will be deleted. Only populated if `force` is set to false. A max of 100 names will be returned and the names are chosen at random.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2PurgeUserEventsRequest": { "description": "Request message for PurgeUserEvents method.", "id": "GoogleCloudRetailV2PurgeUserEventsRequest", @@ -3608,6 +4507,12 @@ }, "type": "object" }, + "GoogleCloudRetailV2ResumeModelRequest": { + "description": "Request for resuming training of a model.", + "id": "GoogleCloudRetailV2ResumeModelRequest", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2Rule": { "description": "A rule is a condition-action pair * A condition defines when a rule is to be triggered. * An action specifies what occurs on that trigger. Currently rules only work for controls with SOLUTION_TYPE_SEARCH.", "id": "GoogleCloudRetailV2Rule", @@ -3628,6 +4533,10 @@ "$ref": "GoogleCloudRetailV2RuleFilterAction", "description": "Filters results." }, + "forceReturnFacetAction": { + "$ref": "GoogleCloudRetailV2RuleForceReturnFacetAction", + "description": "Force returns an attribute as a facet in the request." + }, "ignoreAction": { "$ref": "GoogleCloudRetailV2RuleIgnoreAction", "description": "Ignores specific terms from query during search." @@ -3640,6 +4549,10 @@ "$ref": "GoogleCloudRetailV2RuleRedirectAction", "description": "Redirects a shopper to a specific page." }, + "removeFacetAction": { + "$ref": "GoogleCloudRetailV2RuleRemoveFacetAction", + "description": "Remove an attribute as a facet in the request (if present)." + }, "replacementAction": { "$ref": "GoogleCloudRetailV2RuleReplacementAction", "description": "Replaces specific terms in the query." @@ -3700,12 +4613,42 @@ "id": "GoogleCloudRetailV2RuleFilterAction", "properties": { "filter": { - "description": "A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. See more details at the Retail Search [user guide](/retail/search/docs/filter-and-order#filter). * To filter products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", + "description": "A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. For more information, see [Filter](/retail/docs/filter-and-order#filter). * To filter products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", "type": "string" } }, "type": "object" }, + "GoogleCloudRetailV2RuleForceReturnFacetAction": { + "description": "Force returns an attribute/facet in the request around a certain position or above. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Inputs: attribute name, position * Action Result: Will force return a facet key around a certain position or above if the condition is satisfied. Example: Suppose the query is \"shoes\", the Condition.query_terms is \"shoes\", the ForceReturnFacetAction.FacetPositionAdjustment.attribute_name is \"size\" and the ForceReturnFacetAction.FacetPositionAdjustment.position is 8. Two cases: a) The facet key \"size\" is not already in the top 8 slots, then the facet \"size\" will appear at a position close to 8. b) The facet key \"size\" in among the top 8 positions in the request, then it will stay at its current rank.", + "id": "GoogleCloudRetailV2RuleForceReturnFacetAction", + "properties": { + "facetPositionAdjustments": { + "description": "Each instance corresponds to a force return attribute for the given condition. There can't be more 3 instances here.", + "items": { + "$ref": "GoogleCloudRetailV2RuleForceReturnFacetActionFacetPositionAdjustment" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2RuleForceReturnFacetActionFacetPositionAdjustment": { + "description": "Each facet position adjustment consists of a single attribute name (i.e. facet key) along with a specified position.", + "id": "GoogleCloudRetailV2RuleForceReturnFacetActionFacetPositionAdjustment", + "properties": { + "attributeName": { + "description": "The attribute name to force return as a facet. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters long.", + "type": "string" + }, + "position": { + "description": "This is the position in the request as explained above. It should be strictly positive be at most 100.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudRetailV2RuleIgnoreAction": { "description": "Prevents a term in the query from being used in search. Example: Don't search for \"shoddy\".", "id": "GoogleCloudRetailV2RuleIgnoreAction", @@ -3749,7 +4692,7 @@ "type": "object" }, "GoogleCloudRetailV2RuleRedirectAction": { - "description": "Redirects a shopper to a specific page. * Rule Condition: - Must specify Condition.query_terms. * Action Input: Request Query * Action Result: Redirects shopper to provided uri.", + "description": "Redirects a shopper to a specific page. * Rule Condition: Must specify Condition.query_terms. * Action Input: Request Query * Action Result: Redirects shopper to provided uri.", "id": "GoogleCloudRetailV2RuleRedirectAction", "properties": { "redirectUri": { @@ -3759,6 +4702,20 @@ }, "type": "object" }, + "GoogleCloudRetailV2RuleRemoveFacetAction": { + "description": "Removes an attribute/facet in the request if is present. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: attribute name * Action Result: Will remove the attribute (as a facet) from the request if it is present. Example: Suppose the query is \"shoes\", the Condition.query_terms is \"shoes\" and the attribute name \"size\", then facet key \"size\" will be removed from the request (if it is present).", + "id": "GoogleCloudRetailV2RuleRemoveFacetAction", + "properties": { + "attributeNames": { + "description": "The attribute names (i.e. facet keys) to remove from the dynamic facets (if present in the request). There can't be more 3 attribute names. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2RuleReplacementAction": { "description": "Replaces a term in the query. Multiple replacement candidates can be specified. All `query_terms` will be replaced with the replacement term. Example: Replace \"gShoe\" with \"google shoe\".", "id": "GoogleCloudRetailV2RuleReplacementAction", @@ -3801,36 +4758,41 @@ "properties": { "boostSpec": { "$ref": "GoogleCloudRetailV2SearchRequestBoostSpec", - "description": "Boost specification to boost certain products. See more details at this [user guide](https://cloud.google.com/retail/docs/boosting). Notice that if both ServingConfig.boost_control_ids and SearchRequest.boost_spec are set, the boost conditions from both places are evaluated. If a search request matches multiple boost conditions, the final boost score is equal to the sum of the boost scores from all matched boost conditions." + "description": "Boost specification to boost certain products. For more information, see [Boost results](https://cloud.google.com/retail/docs/boosting). Notice that if both ServingConfig.boost_control_ids and SearchRequest.boost_spec are set, the boost conditions from both places are evaluated. If a search request matches multiple boost conditions, the final boost score is equal to the sum of the boost scores from all matched boost conditions." }, "branch": { "description": "The branch resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use \"default_branch\" as the branch ID or leave this field empty, to search products under the default branch.", "type": "string" }, "canonicalFilter": { - "description": "The default filter that is applied when a user performs a search without checking any filters on the search page. The filter applied to every search request when quality improvement such as query expansion is needed. For example, if a query does not have enough results, an expanded query with SearchRequest.canonical_filter will be returned as a supplement of the original query. This field is strongly recommended to achieve high search quality. See SearchRequest.filter for more details about filter syntax.", + "description": "The default filter that is applied when a user performs a search without checking any filters on the search page. The filter applied to every search request when quality improvement such as query expansion is needed. In the case a query does not have a sufficient amount of results this filter will be used to determine whether or not to enable the query expansion flow. The original filter will still be used for the query expanded search. This field is strongly recommended to achieve high search quality. For more information about filter syntax, see SearchRequest.filter.", "type": "string" }, "dynamicFacetSpec": { "$ref": "GoogleCloudRetailV2SearchRequestDynamicFacetSpec", + "deprecated": true, "description": "Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic to enable dynamic facets. Do not set this field. The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated." }, + "entity": { + "description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it should be exactly matched with UserEvent.entity to get search results boosted by entity.", + "type": "string" + }, "facetSpecs": { - "description": "Facet specifications for faceted search. If empty, no facets are returned. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "Facet specifications for faceted search. If empty, no facets are returned. A maximum of 200 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", "items": { "$ref": "GoogleCloudRetailV2SearchRequestFacetSpec" }, "type": "array" }, "filter": { - "description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. Filter expression is case-sensitive. See more details at this [user guide](https://cloud.google.com/retail/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", + "description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. Filter expression is case-sensitive. For more information, see [Filter](https://cloud.google.com/retail/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, - "description": "The labels applied to a resource must meet the following requirements: * Each resource can have multiple labels, up to a maximum of 64. * Each label must be a key-value pair. * Keys have a minimum length of 1 character and a maximum length of 63 characters and cannot be empty. Values can be empty and have a maximum length of 63 characters. * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. All characters must use UTF-8 encoding, and international characters are allowed. * The key portion of a label must be unique. However, you can use the same key with multiple resources. * Keys must start with a lowercase letter or international character. See [Google Cloud Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) for more details.", + "description": "The labels applied to a resource must meet the following requirements: * Each resource can have multiple labels, up to a maximum of 64. * Each label must be a key-value pair. * Keys have a minimum length of 1 character and a maximum length of 63 characters and cannot be empty. Values can be empty and have a maximum length of 63 characters. * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. All characters must use UTF-8 encoding, and international characters are allowed. * The key portion of a label must be unique. However, you can use the same key with multiple resources. * Keys must start with a lowercase letter or international character. For more information, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) in the Resource Manager documentation.", "type": "object" }, "offset": { @@ -3839,11 +4801,11 @@ "type": "integer" }, "orderBy": { - "description": "The order in which products are returned. Products can be ordered by a field in an Product object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. See more details at this [user guide](https://cloud.google.com/retail/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", + "description": "The order in which products are returned. Products can be ordered by a field in an Product object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. For more information, see [Order](https://cloud.google.com/retail/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", "type": "string" }, "pageCategories": { - "description": "The categories associated with a category page. Required for category navigation queries to achieve good search quality. The format should be the same as UserEvent.page_categories; 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). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: \"pageCategories\" : [\"Sales > 2017 Black Friday Deals\"].", + "description": "The categories associated with a category page. Must be set for category navigation queries to achieve good search quality. The format should be the same as UserEvent.page_categories; 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). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: \"pageCategories\" : [\"Sales > 2017 Black Friday Deals\"].", "items": { "type": "string" }, @@ -3868,7 +4830,7 @@ }, "queryExpansionSpec": { "$ref": "GoogleCloudRetailV2SearchRequestQueryExpansionSpec", - "description": "The query expansion specification that specifies the conditions under which query expansion will occur. See more details at this [user guide](https://cloud.google.com/retail/docs/result-size#query_expansion)." + "description": "The query expansion specification that specifies the conditions under which query expansion occurs. For more information, see [Query expansion](https://cloud.google.com/retail/docs/result-size#query_expansion)." }, "searchMode": { "description": "The search mode of the search request. If not specified, a single search request triggers both product search and faceted search.", @@ -3966,7 +4928,7 @@ "id": "GoogleCloudRetailV2SearchRequestFacetSpec", "properties": { "enableDynamicPosition": { - "description": "Enables dynamic position for this facet. If set to true, the position of this facet among all facets in the response is determined by Google Retail Search. It will be ordered together with dynamic facets if dynamic facets is enabled. If set to false, the position of this facet in the response will be the same as in the request, and it will be ranked before the facets with dynamic position enable and all dynamic facets. For example, you may always want to have rating facet returned in the response, but it's not necessarily to always display the rating facet at the top. In that case, you can set enable_dynamic_position to true so that the position of rating facet in response will be determined by Google Retail Search. Another example, assuming you have the following facets in the request: * \"rating\", enable_dynamic_position = true * \"price\", enable_dynamic_position = false * \"brands\", enable_dynamic_position = false And also you have a dynamic facets enable, which will generate a facet 'gender'. Then the final order of the facets in the response can be (\"price\", \"brands\", \"rating\", \"gender\") or (\"price\", \"brands\", \"gender\", \"rating\") depends on how Google Retail Search orders \"gender\" and \"rating\" facets. However, notice that \"price\" and \"brands\" will always be ranked at 1st and 2nd position since their enable_dynamic_position are false.", + "description": "Enables dynamic position for this facet. If set to true, the position of this facet among all facets in the response is determined by Google Retail Search. It is ordered together with dynamic facets if dynamic facets is enabled. If set to false, the position of this facet in the response is the same as in the request, and it is ranked before the facets with dynamic position enable and all dynamic facets. For example, you may always want to have rating facet returned in the response, but it's not necessarily to always display the rating facet at the top. In that case, you can set enable_dynamic_position to true so that the position of rating facet in response is determined by Google Retail Search. Another example, assuming you have the following facets in the request: * \"rating\", enable_dynamic_position = true * \"price\", enable_dynamic_position = false * \"brands\", enable_dynamic_position = false And also you have a dynamic facets enable, which generates a facet \"gender\". Then, the final order of the facets in the response can be (\"price\", \"brands\", \"rating\", \"gender\") or (\"price\", \"brands\", \"gender\", \"rating\") depends on how Google Retail Search orders \"gender\" and \"rating\" facets. However, notice that \"price\" and \"brands\" are always ranked at first and second position because their enable_dynamic_position values are false.", "type": "boolean" }, "excludedFilterKeys": { @@ -3997,14 +4959,14 @@ "type": "boolean" }, "contains": { - "description": "Only get facet values that contains the given strings. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"contains\" to \"Shoe\", the \"categories\" facet will give only \"Women > Shoe\" and \"Men > Shoe\". Only supported on textual fields. Maximum is 10.", + "description": "Only get facet values that contains the given strings. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"contains\" to \"Shoe\", the \"categories\" facet gives only \"Women > Shoe\" and \"Men > Shoe\". Only supported on textual fields. Maximum is 10.", "items": { "type": "string" }, "type": "array" }, "intervals": { - "description": "Set only if values should be bucketized into intervals. Must be set for facets with numerical values. Must not be set for facet with text values. Maximum number of intervals is 30.", + "description": "Set only if values should be bucketized into intervals. Must be set for facets with numerical values. Must not be set for facet with text values. Maximum number of intervals is 40. For all numerical facet keys that appear in the list of products from the catalog, the percentiles 0, 10, 30, 50, 70, 90, and 100 are computed from their distribution weekly. If the model assigns a high score to a numerical facet key and its intervals are not specified in the search request, these percentiles become the bounds for its intervals and are returned in the response. If the facet key intervals are specified in the request, then the specified intervals are returned instead.", "items": { "$ref": "GoogleCloudRetailV2Interval" }, @@ -4019,14 +4981,14 @@ "type": "string" }, "prefixes": { - "description": "Only get facet values that start with the given string prefix. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"prefixes\" to \"Women\", the \"categories\" facet will give only \"Women > Shoe\" and \"Women > Dress\". Only supported on textual fields. Maximum is 10.", + "description": "Only get facet values that start with the given string prefix. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"prefixes\" to \"Women\", the \"categories\" facet gives only \"Women > Shoe\" and \"Women > Dress\". Only supported on textual fields. Maximum is 10.", "items": { "type": "string" }, "type": "array" }, "query": { - "description": "The query that is used to compute facet for the given facet key. When provided, it will override the default behavior of facet computation. The query syntax is the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Notice that there is no limitation on FacetKey.key when query is specified. In the response, SearchResponse.Facet.values.value will be always \"1\" and SearchResponse.Facet.values.count will be the number of results that match the query. For example, you can set a customized facet for \"shipToStore\", where FacetKey.key is \"customizedShipToStore\", and FacetKey.query is \"availability: ANY(\\\"IN_STOCK\\\") AND shipToStore: ANY(\\\"123\\\")\". Then the facet will count the products that are both in stock and ship to store \"123\".", + "description": "The query that is used to compute facet for the given facet key. When provided, it overrides the default behavior of facet computation. The query syntax is the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Notice that there is no limitation on FacetKey.key when query is specified. In the response, SearchResponse.Facet.values.value is always \"1\" and SearchResponse.Facet.values.count is the number of results that match the query. For example, you can set a customized facet for \"shipToStore\", where FacetKey.key is \"customizedShipToStore\", and FacetKey.query is \"availability: ANY(\\\"IN_STOCK\\\") AND shipToStore: ANY(\\\"123\\\")\". Then the facet counts the products that are both in stock and ship to store \"123\".", "type": "string" }, "restrictedValues": { @@ -4129,6 +5091,13 @@ "description": "Contains the spell corrected query, if found. If the spell correction type is AUTOMATIC, then the search results are based on corrected_query. Otherwise the original query is used for search.", "type": "string" }, + "experimentInfo": { + "description": "Metadata related to A/B testing Experiment associated with this response. Only exists when an experiment is triggered.", + "items": { + "$ref": "GoogleCloudRetailV2ExperimentInfo" + }, + "type": "array" + }, "facets": { "description": "Results of facets requested by user.", "items": { @@ -4469,6 +5438,29 @@ "properties": {}, "type": "object" }, + "GoogleCloudRetailV2TuneModelMetadata": { + "description": "Metadata associated with a tune operation.", + "id": "GoogleCloudRetailV2TuneModelMetadata", + "properties": { + "model": { + "description": "The resource name of the model that this tune applies to. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2TuneModelRequest": { + "description": "Request to manually start a tuning process now (instead of waiting for the periodically scheduled tuning to happen).", + "id": "GoogleCloudRetailV2TuneModelRequest", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2TuneModelResponse": { + "description": "Response associated with a tune operation.", + "id": "GoogleCloudRetailV2TuneModelResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2UserEvent": { "description": "UserEvent captures all metadata information Retail API needs to know about how end users interact with customers' website.", "id": "GoogleCloudRetailV2UserEvent", @@ -4492,6 +5484,10 @@ "$ref": "GoogleCloudRetailV2CompletionDetail", "description": "The main auto-completion details related to the event. This field should be set for `search` event when autocomplete function is enabled and the user clicks a suggestion for search." }, + "entity": { + "description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. We recommend that you set this field to get better per-entity search, completion, and prediction results.", + "type": "string" + }, "eventTime": { "description": "Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.", "format": "google-datetime", @@ -4682,6 +5678,23 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaCreateMerchantCenterAccountLinkMetadata": { + "description": "Common metadata related to the progress of the operations.", + "id": "GoogleCloudRetailV2alphaCreateMerchantCenterAccountLinkMetadata", + "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" + }, "GoogleCloudRetailV2alphaCreateModelMetadata": { "description": "Metadata associated with a create operation.", "id": "GoogleCloudRetailV2alphaCreateModelMetadata", @@ -4693,6 +5706,55 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaEnrollSolutionMetadata": { + "description": "Metadata related to the EnrollSolution method. This will be returned by the google.longrunning.Operation.metadata field.", + "id": "GoogleCloudRetailV2alphaEnrollSolutionMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2alphaEnrollSolutionResponse": { + "description": "Response for EnrollSolution method.", + "id": "GoogleCloudRetailV2alphaEnrollSolutionResponse", + "properties": { + "enrolledSolution": { + "description": "Retail API solution that the project has enrolled.", + "enum": [ + "SOLUTION_TYPE_UNSPECIFIED", + "SOLUTION_TYPE_RECOMMENDATION", + "SOLUTION_TYPE_SEARCH" + ], + "enumDescriptions": [ + "Default value.", + "Used for Recommendations AI.", + "Used for Retail Search." + ], + "type": "string" + } + }, + "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", @@ -4820,6 +5882,7 @@ "type": "string" }, "requestId": { + "deprecated": true, "description": "Deprecated. This field is never set.", "type": "string" }, @@ -4880,6 +5943,89 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaMerchantCenterAccountLink": { + "description": "Represents a link between a Merchant Center account and a branch. After a link is established, products from the linked Merchant Center account are streamed to the linked branch.", + "id": "GoogleCloudRetailV2alphaMerchantCenterAccountLink", + "properties": { + "branchId": { + "description": "Required. The branch ID (e.g. 0/1/2) within the catalog that products from merchant_center_account_id are streamed to. When updating this field, an empty value will use the currently configured default branch. However, changing the default branch later on won't change the linked branch here. A single branch ID can only have one linked Merchant Center account ID.", + "type": "string" + }, + "feedFilters": { + "description": "Criteria for the Merchant Center feeds to be ingested via the link. All offers will be ingested if the list is empty. Otherwise the offers will be ingested from selected feeds.", + "items": { + "$ref": "GoogleCloudRetailV2alphaMerchantCenterAccountLinkMerchantCenterFeedFilter" + }, + "type": "array" + }, + "feedLabel": { + "description": "The FeedLabel used to perform filtering. Note: this replaces [region_id](https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.feed_label). Example value: `US`. Example value: `FeedLabel1`.", + "type": "string" + }, + "id": { + "description": "Output only. Immutable. MerchantCenterAccountLink identifier, which is the final component of name. This field is auto generated and follows the convention: `BranchId_MerchantCenterAccountId`. `projects/*/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/id_1`.", + "readOnly": true, + "type": "string" + }, + "languageCode": { + "description": "Language of the title/description and other string attributes. Use language tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). ISO 639-1. This specifies the language of offers in Merchant Center that will be accepted. If empty, no language filtering will be performed. Example value: `en`.", + "type": "string" + }, + "merchantCenterAccountId": { + "description": "Required. The linked [Merchant center account id](https://developers.google.com/shopping-content/guides/accountstatuses). The account must be a standalone account or a sub-account of a MCA.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Output only. Immutable. Full resource name of the Merchant Center Account Link, such as `projects/*/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/merchant_center_account_link`.", + "readOnly": true, + "type": "string" + }, + "projectId": { + "description": "Output only. Google Cloud project ID.", + "readOnly": true, + "type": "string" + }, + "source": { + "description": "Optional. An optional arbitrary string that could be used as a tag for tracking link source.", + "type": "string" + }, + "state": { + "description": "Output only. Represents the state of the link.", + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "ACTIVE", + "FAILED" + ], + "enumDescriptions": [ + "Default value.", + "Link is created and LRO is not complete.", + "Link is active.", + "Link creation failed." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaMerchantCenterAccountLinkMerchantCenterFeedFilter": { + "description": "Merchant Center Feed filter criterion.", + "id": "GoogleCloudRetailV2alphaMerchantCenterAccountLinkMerchantCenterFeedFilter", + "properties": { + "primaryFeedId": { + "description": "Merchant Center primary feed ID.", + "format": "int64", + "type": "string" + }, + "primaryFeedName": { + "description": "Merchant Center primary feed name. The name is used for the display purposes only.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaModel": { "description": "Metadata that describes the training and serving parameters of a Model. A Model can be associated with a ServingConfig and then queried through the Predict API.", "id": "GoogleCloudRetailV2alphaModel", @@ -4929,6 +6075,10 @@ "readOnly": true, "type": "string" }, + "modelFeaturesConfig": { + "$ref": "GoogleCloudRetailV2alphaModelModelFeaturesConfig", + "description": "Optional. Additional model features config." + }, "name": { "description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", "type": "string" @@ -5014,6 +6164,38 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig": { + "description": "Additional configs for the frequently-bought-together model type.", + "id": "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig", + "properties": { + "contextProductsType": { + "description": "Optional. Specifies the context of the model when it is used in predict requests. Can only be set for the `frequently-bought-together` type. If it isn't specified, it defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "enum": [ + "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", + "SINGLE_CONTEXT_PRODUCT", + "MULTIPLE_CONTEXT_PRODUCTS" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", + "Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaModelModelFeaturesConfig": { + "description": "Additional model features config.", + "id": "GoogleCloudRetailV2alphaModelModelFeaturesConfig", + "properties": { + "frequentlyBoughtTogetherConfig": { + "$ref": "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig", + "description": "Additional configs for frequently-bought-together models." + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaModelPageOptimizationConfig": { "description": "The PageOptimizationConfig for model training. This determines how many panels to optimize for, and which serving configs to consider for each panel. The purpose of this model is to optimize which ServingConfig to show on which panels in way that optimizes the visitors shopping journey.", "id": "GoogleCloudRetailV2alphaModelPageOptimizationConfig", @@ -5326,6 +6508,23 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaCreateMerchantCenterAccountLinkMetadata": { + "description": "Common metadata related to the progress of the operations.", + "id": "GoogleCloudRetailV2betaCreateMerchantCenterAccountLinkMetadata", + "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" + }, "GoogleCloudRetailV2betaCreateModelMetadata": { "description": "Metadata associated with a create operation.", "id": "GoogleCloudRetailV2betaCreateModelMetadata", @@ -5337,6 +6536,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", @@ -5464,6 +6685,7 @@ "type": "string" }, "requestId": { + "deprecated": true, "description": "Deprecated. This field is never set.", "type": "string" }, @@ -5520,6 +6742,89 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaMerchantCenterAccountLink": { + "description": "Represents a link between a Merchant Center account and a branch. After a link is established, products from the linked Merchant Center account are streamed to the linked branch.", + "id": "GoogleCloudRetailV2betaMerchantCenterAccountLink", + "properties": { + "branchId": { + "description": "Required. The branch ID (e.g. 0/1/2) within the catalog that products from merchant_center_account_id are streamed to. When updating this field, an empty value will use the currently configured default branch. However, changing the default branch later on won't change the linked branch here. A single branch ID can only have one linked Merchant Center account ID.", + "type": "string" + }, + "feedFilters": { + "description": "Criteria for the Merchant Center feeds to be ingested via the link. All offers will be ingested if the list is empty. Otherwise the offers will be ingested from selected feeds.", + "items": { + "$ref": "GoogleCloudRetailV2betaMerchantCenterAccountLinkMerchantCenterFeedFilter" + }, + "type": "array" + }, + "feedLabel": { + "description": "The FeedLabel used to perform filtering. Note: this replaces [region_id](https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.feed_label). Example value: `US`. Example value: `FeedLabel1`.", + "type": "string" + }, + "id": { + "description": "Output only. Immutable. MerchantCenterAccountLink identifier, which is the final component of name. This field is auto generated and follows the convention: `BranchId_MerchantCenterAccountId`. `projects/*/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/id_1`.", + "readOnly": true, + "type": "string" + }, + "languageCode": { + "description": "Language of the title/description and other string attributes. Use language tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). ISO 639-1. This specifies the language of offers in Merchant Center that will be accepted. If empty, no language filtering will be performed. Example value: `en`.", + "type": "string" + }, + "merchantCenterAccountId": { + "description": "Required. The linked [Merchant center account id](https://developers.google.com/shopping-content/guides/accountstatuses). The account must be a standalone account or a sub-account of a MCA.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Output only. Immutable. Full resource name of the Merchant Center Account Link, such as `projects/*/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/merchant_center_account_link`.", + "readOnly": true, + "type": "string" + }, + "projectId": { + "description": "Output only. Google Cloud project ID.", + "readOnly": true, + "type": "string" + }, + "source": { + "description": "Optional. An optional arbitrary string that could be used as a tag for tracking link source.", + "type": "string" + }, + "state": { + "description": "Output only. Represents the state of the link.", + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "ACTIVE", + "FAILED" + ], + "enumDescriptions": [ + "Default value.", + "Link is created and LRO is not complete.", + "Link is active.", + "Link creation failed." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaMerchantCenterAccountLinkMerchantCenterFeedFilter": { + "description": "Merchant Center Feed filter criterion.", + "id": "GoogleCloudRetailV2betaMerchantCenterAccountLinkMerchantCenterFeedFilter", + "properties": { + "primaryFeedId": { + "description": "Merchant Center primary feed ID.", + "format": "int64", + "type": "string" + }, + "primaryFeedName": { + "description": "Merchant Center primary feed name. The name is used for the display purposes only.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaModel": { "description": "Metadata that describes the training and serving parameters of a Model. A Model can be associated with a ServingConfig and then queried through the Predict API.", "id": "GoogleCloudRetailV2betaModel", @@ -5569,6 +6874,10 @@ "readOnly": true, "type": "string" }, + "modelFeaturesConfig": { + "$ref": "GoogleCloudRetailV2betaModelModelFeaturesConfig", + "description": "Optional. Additional model features config." + }, "name": { "description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", "type": "string" @@ -5650,6 +6959,38 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig": { + "description": "Additional configs for the frequently-bought-together model type.", + "id": "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig", + "properties": { + "contextProductsType": { + "description": "Optional. Specifies the context of the model when it is used in predict requests. Can only be set for the `frequently-bought-together` type. If it isn't specified, it defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "enum": [ + "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", + "SINGLE_CONTEXT_PRODUCT", + "MULTIPLE_CONTEXT_PRODUCTS" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", + "Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaModelModelFeaturesConfig": { + "description": "Additional model features config.", + "id": "GoogleCloudRetailV2betaModelModelFeaturesConfig", + "properties": { + "frequentlyBoughtTogetherConfig": { + "$ref": "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig", + "description": "Additional configs for frequently-bought-together models." + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaModelServingConfigList": { "description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", "id": "GoogleCloudRetailV2betaModelServingConfigList", @@ -5691,6 +7032,52 @@ "properties": {}, "type": "object" }, + "GoogleCloudRetailV2betaPurgeProductsMetadata": { + "description": "Metadata related to the progress of the PurgeProducts operation. This will be returned by the google.longrunning.Operation.metadata field.", + "id": "GoogleCloudRetailV2betaPurgeProductsMetadata", + "properties": { + "createTime": { + "description": "Operation create time.", + "format": "google-datetime", + "type": "string" + }, + "failureCount": { + "description": "Count of entries that encountered errors while processing.", + "format": "int64", + "type": "string" + }, + "successCount": { + "description": "Count of entries that were deleted successfully.", + "format": "int64", + "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" + }, + "GoogleCloudRetailV2betaPurgeProductsResponse": { + "description": "Response of the PurgeProductsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", + "id": "GoogleCloudRetailV2betaPurgeProductsResponse", + "properties": { + "purgeCount": { + "description": "The total count of products purged as a result of the operation.", + "format": "int64", + "type": "string" + }, + "purgeSample": { + "description": "A sample of the product names that will be deleted. Only populated if `force` is set to false. A max of 100 names will be returned and the names are chosen at random.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaPurgeUserEventsResponse": { "description": "Response of the PurgeUserEventsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", "id": "GoogleCloudRetailV2betaPurgeUserEventsResponse", @@ -5838,7 +7225,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" } }, @@ -5901,7 +7288,7 @@ } }, "servicePath": "", - "title": "Retail API", + "title": "Vertex AI Search for Retail API", "version": "v2", "version_module": true } \ No newline at end of file diff --git a/etc/api/retail/v2alpha/retail-api.json b/etc/api/retail/v2alpha/retail-api.json index 9f3d933750..04bd9575d1 100644 --- a/etc/api/retail/v2alpha/retail-api.json +++ b/etc/api/retail/v2alpha/retail-api.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", "fullyEncodeReservedExpansion": true, @@ -106,6 +106,145 @@ "protocol": "rest", "resources": { "projects": { + "methods": { + "enrollSolution": { + "description": "The method enrolls a solution of type Retail Search into a project. The Recommendations AI solution type is enrolled by default when your project enables Retail API, so you don't need to call the enrollSolution method for recommendations.", + "flatPath": "v2alpha/projects/{projectsId}:enrollSolution", + "httpMethod": "POST", + "id": "retail.projects.enrollSolution", + "parameterOrder": [ + "project" + ], + "parameters": { + "project": { + "description": "Required. Full resource name of parent. Format: `projects/{project_number_or_id}`", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+project}:enrollSolution", + "request": { + "$ref": "GoogleCloudRetailV2alphaEnrollSolutionRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getLoggingConfig": { + "description": "Gets the LoggingConfig of the requested project.", + "flatPath": "v2alpha/projects/{projectsId}/loggingConfig", + "httpMethod": "GET", + "id": "retail.projects.getLoggingConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Full LoggingConfig resource name. Format: projects/{project_number}/loggingConfig", + "location": "path", + "pattern": "^projects/[^/]+/loggingConfig$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+name}", + "response": { + "$ref": "GoogleCloudRetailV2alphaLoggingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getRetailProject": { + "description": "Gets the project. Throws `NOT_FOUND` if the project wasn't initialized for the Retail API service.", + "flatPath": "v2alpha/projects/{projectsId}/retailProject", + "httpMethod": "GET", + "id": "retail.projects.getRetailProject", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Full resource name of the project. Format: `projects/{project_number_or_id}/retailProject`", + "location": "path", + "pattern": "^projects/[^/]+/retailProject$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+name}", + "response": { + "$ref": "GoogleCloudRetailV2alphaProject" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "listEnrolledSolutions": { + "description": "Lists all the retail API solutions the project has enrolled.", + "flatPath": "v2alpha/projects/{projectsId}:enrolledSolutions", + "httpMethod": "GET", + "id": "retail.projects.listEnrolledSolutions", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Full resource name of parent. Format: `projects/{project_number_or_id}`", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+parent}:enrolledSolutions", + "response": { + "$ref": "GoogleCloudRetailV2alphaListEnrolledSolutionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "updateLoggingConfig": { + "description": "Updates the LoggingConfig of the requested project.", + "flatPath": "v2alpha/projects/{projectsId}/loggingConfig", + "httpMethod": "PATCH", + "id": "retail.projects.updateLoggingConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Immutable. The name of the LoggingConfig singleton resource. Format: projects/*/loggingConfig", + "location": "path", + "pattern": "^projects/[^/]+/loggingConfig$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Indicates which fields in the provided LoggingConfig to update. The following are the only supported fields: * default_log_generation_rule * per_service_log_generation_rules If not set, all supported fields are updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2alpha/{+name}", + "request": { + "$ref": "GoogleCloudRetailV2alphaLoggingConfig" + }, + "response": { + "$ref": "GoogleCloudRetailV2alphaLoggingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "locations": { "resources": { @@ -142,6 +281,11 @@ "location": "query", "type": "boolean" }, + "entity": { + "description": "The entity for customers who run multiple entities, domains, sites, or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it must be an exact match with UserEvent.entity to get per-entity autocomplete results.", + "location": "query", + "type": "string" + }, "languageCodes": { "description": "Note that this field applies for `user-data` dataset only. For requests with `cloud-retail` dataset, setting this field has no effect. The language filters applied to the output suggestions. If set, it should contain the language of the query. If not set, suggestions are returned without considering language restrictions. This is the BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum number of language codes is 3.", "location": "query", @@ -173,6 +317,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": "v2alpha/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": "v2alpha/{+catalog}:exportAnalyticsMetrics", + "request": { + "$ref": "GoogleCloudRetailV2alphaExportAnalyticsMetricsRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getAttributesConfig": { "description": "Gets an AttributesConfig.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig", @@ -599,7 +771,7 @@ "products": { "methods": { "addFulfillmentPlaces": { - "description": "Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", + "description": "We recommend that you use the ProductService.AddLocalInventories method instead of the ProductService.AddFulfillmentPlaces method. ProductService.AddLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addFulfillmentPlaces", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.addFulfillmentPlaces", @@ -627,7 +799,7 @@ ] }, "addLocalInventories": { - "description": "Updates local inventory information for a Product at a list of places, while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating inventory information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. Local inventory information can only be modified using this method. ProductService.CreateProduct and ProductService.UpdateProduct has no effect on local inventories. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", + "description": "Updates local inventory information for a Product at a list of places, while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating inventory information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. Local inventory information can only be modified using this method. ProductService.CreateProduct and ProductService.UpdateProduct has no effect on local inventories. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addLocalInventories", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.addLocalInventories", @@ -696,6 +868,11 @@ "name" ], "parameters": { + "force": { + "description": "This value only applies to the case when the target product is of type PRIMARY. When deleting a product of VARIANT/COLLECTION type, this value will be ignored. When set to true, the subsequent variant products will be deleted. When set to false, if the primary product has active variant products, an error will be returned.", + "location": "query", + "type": "boolean" + }, "name": { "description": "Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to delete the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to delete does not exist, a NOT_FOUND error is returned. The Product to delete can neither be a Product.Type.COLLECTION Product member nor a Product.Type.PRIMARY Product with more than one variants. Otherwise, an INVALID_ARGUMENT error is returned. All inventory information for the named Product will be deleted.", "location": "path", @@ -885,7 +1062,7 @@ ] }, "removeFulfillmentPlaces": { - "description": "Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", + "description": "We recommend that you use the ProductService.RemoveLocalInventories method instead of the ProductService.RemoveFulfillmentPlaces method. ProductService.RemoveLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeFulfillmentPlaces", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.removeFulfillmentPlaces", @@ -913,7 +1090,7 @@ ] }, "removeLocalInventories": { - "description": "Remove local inventory information for a Product at a list of places at a removal timestamp. This process is asynchronous. If the request is valid, the removal will be enqueued and processed downstream. As a consequence, when a response is returned, removals are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. Local inventory information can only be removed using this method. ProductService.CreateProduct and ProductService.UpdateProduct has no effect on local inventories. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", + "description": "Remove local inventory information for a Product at a list of places at a removal timestamp. This process is asynchronous. If the request is valid, the removal will be enqueued and processed downstream. As a consequence, when a response is returned, removals are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. Local inventory information can only be removed using this method. ProductService.CreateProduct and ProductService.UpdateProduct has no effect on local inventories. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeLocalInventories", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.removeLocalInventories", @@ -941,7 +1118,7 @@ ] }, "setInventory": { - "description": "Updates inventory information for a Product while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update is enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. When inventory is updated with ProductService.CreateProduct and ProductService.UpdateProduct, the specified inventory field value(s) overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update times for the specified inventory fields are overwritten by the times of the ProductService.CreateProduct or ProductService.UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product is used. If no inventory fields are set in SetInventoryRequest.set_mask, then any existing inventory information is preserved. Pre-existing inventory information can only be updated with ProductService.SetInventory, ProductService.AddFulfillmentPlaces, and ProductService.RemoveFulfillmentPlaces. The returned Operations is obsolete after one day, and the GetOperation API returns `NOT_FOUND` afterwards. If conflicting updates are issued, the Operations associated with the stale updates are not marked as done until they are obsolete. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", + "description": "Updates inventory information for a Product while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update is enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. When inventory is updated with ProductService.CreateProduct and ProductService.UpdateProduct, the specified inventory field value(s) overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update times for the specified inventory fields are overwritten by the times of the ProductService.CreateProduct or ProductService.UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product is used. If no inventory fields are set in SetInventoryRequest.set_mask, then any existing inventory information is preserved. Pre-existing inventory information can only be updated with ProductService.SetInventory, ProductService.AddFulfillmentPlaces, and ProductService.RemoveFulfillmentPlaces. The returned Operations is obsolete after one day, and the GetOperation API returns `NOT_FOUND` afterwards. If conflicting updates are issued, the Operations associated with the stale updates are not marked as done until they are obsolete.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:setInventory", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.setInventory", @@ -1166,6 +1343,88 @@ } } }, + "merchantCenterAccountLinks": { + "methods": { + "create": { + "description": "Creates a MerchantCenterAccountLink.", + "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/merchantCenterAccountLinks", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.merchantCenterAccountLinks.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The branch resource where this MerchantCenterAccountLink will be created. Format: `projects/{PROJECT_NUMBER}/locations/global/catalogs/{CATALOG_ID}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+parent}/merchantCenterAccountLinks", + "request": { + "$ref": "GoogleCloudRetailV2alphaMerchantCenterAccountLink" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a MerchantCenterAccountLink. If the MerchantCenterAccountLink to delete does not exist, a NOT_FOUND error is returned.", + "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/merchantCenterAccountLinks/{merchantCenterAccountLinksId}", + "httpMethod": "DELETE", + "id": "retail.projects.locations.catalogs.merchantCenterAccountLinks.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Full resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/merchantCenterAccountLinks/{merchant_center_account_link_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/merchantCenterAccountLinks/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all MerchantCenterAccountLinks under the specified parent Catalog.", + "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/merchantCenterAccountLinks", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.merchantCenterAccountLinks.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent Catalog of the resource. It must match this format: `projects/{PROJECT_NUMBER}/locations/global/catalogs/{CATALOG_ID}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+parent}/merchantCenterAccountLinks", + "response": { + "$ref": "GoogleCloudRetailV2alphaListMerchantCenterAccountLinksResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "models": { "methods": { "create": { @@ -1226,6 +1485,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "get": { + "description": "Gets a model.", + "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.models.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the Model to get. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog}/models/{model_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+name}", + "response": { + "$ref": "GoogleCloudRetailV2alphaModel" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists all the models linked to this event store.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models", @@ -1410,7 +1694,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/operations", "httpMethod": "GET", "id": "retail.projects.locations.catalogs.operations.list", @@ -1492,7 +1776,7 @@ ], "parameters": { "placement": { - "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that will be used to make the search.", + "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", "required": true, @@ -1761,7 +2045,7 @@ ], "parameters": { "placement": { - "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that will be used to make the search.", + "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", "required": true, @@ -1983,7 +2267,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "retail.projects.locations.operations.list", @@ -2055,7 +2339,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v2alpha/projects/{projectsId}/operations", "httpMethod": "GET", "id": "retail.projects.operations.list", @@ -2096,11 +2380,43 @@ ] } } + }, + "retailProject": { + "methods": { + "acceptTerms": { + "description": "Accepts service terms for this project. By making requests to this API, you agree to the terms of service linked below. https://cloud.google.com/retail/data-use-terms", + "flatPath": "v2alpha/projects/{projectsId}/retailProject:acceptTerms", + "httpMethod": "POST", + "id": "retail.projects.retailProject.acceptTerms", + "parameterOrder": [ + "project" + ], + "parameters": { + "project": { + "description": "Required. Full resource name of the project. Format: `projects/{project_number_or_id}/retailProject`", + "location": "path", + "pattern": "^projects/[^/]+/retailProject$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+project}:acceptTerms", + "request": { + "$ref": "GoogleCloudRetailV2alphaAcceptTermsRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2alphaProject" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } } }, - "revision": "20230117", + "revision": "20240222", "rootUrl": "https://retail.googleapis.com/", "schemas": { "GoogleApiHttpBody": { @@ -2277,6 +2593,93 @@ "properties": {}, "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" + }, + "GoogleCloudRetailV2CreateModelMetadata": { + "description": "Metadata associated with a create operation.", + "id": "GoogleCloudRetailV2CreateModelMetadata", + "properties": { + "model": { + "description": "The resource name of the model that this create applies to. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", + "type": "string" + } + }, + "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" + }, + "GoogleCloudRetailV2GcsOutputResult": { + "description": "A Gcs output result.", + "id": "GoogleCloudRetailV2GcsOutputResult", + "properties": { + "outputUri": { + "description": "The uri of Gcs output", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2ImportCompletionDataResponse": { "description": "Response of the ImportCompletionDataRequest. If the long running operation is done, this message is returned by the google.longrunning.Operations.response field if the operation is successful.", "id": "GoogleCloudRetailV2ImportCompletionDataResponse", @@ -2321,6 +2724,7 @@ "type": "string" }, "requestId": { + "deprecated": true, "description": "Deprecated. This field is never set.", "type": "string" }, @@ -2377,12 +2781,259 @@ }, "type": "object" }, + "GoogleCloudRetailV2Model": { + "description": "Metadata that describes the training and serving parameters of a Model. A Model can be associated with a ServingConfig and then queried through the Predict API.", + "id": "GoogleCloudRetailV2Model", + "properties": { + "createTime": { + "description": "Output only. Timestamp the Recommendation Model was created at.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "dataState": { + "description": "Output only. The state of data requirements for this model: `DATA_OK` and `DATA_ERROR`. Recommendation model cannot be trained if the data is in `DATA_ERROR` state. Recommendation model can have `DATA_ERROR` state even if serving state is `ACTIVE`: models were trained successfully before, but cannot be refreshed because model no longer has sufficient data for training.", + "enum": [ + "DATA_STATE_UNSPECIFIED", + "DATA_OK", + "DATA_ERROR" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set.", + "The model has sufficient training data.", + "The model does not have sufficient training data. Error messages can be queried via Stackdriver." + ], + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Required. The display name of the model. Should be human readable, used to display Recommendation Models in the Retail Cloud Console Dashboard. UTF-8 encoded string with limit of 1024 characters.", + "type": "string" + }, + "filteringOption": { + "description": "Optional. If `RECOMMENDATIONS_FILTERING_ENABLED`, recommendation filtering by attributes is enabled for the model.", + "enum": [ + "RECOMMENDATIONS_FILTERING_OPTION_UNSPECIFIED", + "RECOMMENDATIONS_FILTERING_DISABLED", + "RECOMMENDATIONS_FILTERING_ENABLED" + ], + "enumDescriptions": [ + "Value used when unset. In this case, server behavior defaults to RECOMMENDATIONS_FILTERING_DISABLED.", + "Recommendation filtering is disabled.", + "Recommendation filtering is enabled." + ], + "type": "string" + }, + "lastTuneTime": { + "description": "Output only. The timestamp when the latest successful tune finished.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "modelFeaturesConfig": { + "$ref": "GoogleCloudRetailV2ModelModelFeaturesConfig", + "description": "Optional. Additional model features config." + }, + "name": { + "description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", + "type": "string" + }, + "optimizationObjective": { + "description": "Optional. The optimization objective e.g. `cvr`. Currently supported values: `ctr`, `cvr`, `revenue-per-order`. If not specified, we choose default based on model type. Default depends on type of recommendation: `recommended-for-you` => `ctr` `others-you-may-like` => `ctr` `frequently-bought-together` => `revenue_per_order` This field together with optimization_objective describe model metadata to use to control model training and serving. See https://cloud.google.com/retail/docs/models for more details on what the model metadata control and which combination of parameters are valid. For invalid combinations of parameters (e.g. type = `frequently-bought-together` and optimization_objective = `ctr`), you receive an error 400 if you try to create/update a recommendation with this set of knobs.", + "type": "string" + }, + "periodicTuningState": { + "description": "Optional. The state of periodic tuning. The period we use is 3 months - to do a one-off tune earlier use the `TuneModel` method. Default value is `PERIODIC_TUNING_ENABLED`.", + "enum": [ + "PERIODIC_TUNING_STATE_UNSPECIFIED", + "PERIODIC_TUNING_DISABLED", + "ALL_TUNING_DISABLED", + "PERIODIC_TUNING_ENABLED" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set.", + "The model has periodic tuning disabled. Tuning can be reenabled by calling the `EnableModelPeriodicTuning` method or by calling the `TuneModel` method.", + "The model cannot be tuned with periodic tuning OR the `TuneModel` method. Hide the options in customer UI and reject any requests through the backend self serve API.", + "The model has periodic tuning enabled. Tuning can be disabled by calling the `DisableModelPeriodicTuning` method." + ], + "type": "string" + }, + "servingConfigLists": { + "description": "Output only. The list of valid serving configs associated with the PageOptimizationConfig.", + "items": { + "$ref": "GoogleCloudRetailV2ModelServingConfigList" + }, + "readOnly": true, + "type": "array" + }, + "servingState": { + "description": "Output only. The serving state of the model: `ACTIVE`, `NOT_ACTIVE`.", + "enum": [ + "SERVING_STATE_UNSPECIFIED", + "INACTIVE", + "ACTIVE", + "TUNED" + ], + "enumDescriptions": [ + "Unspecified serving state.", + "The model is not serving.", + "The model is serving and can be queried.", + "The model is trained on tuned hyperparameters and can be queried." + ], + "readOnly": true, + "type": "string" + }, + "trainingState": { + "description": "Optional. The training state that the model is in (e.g. `TRAINING` or `PAUSED`). Since part of the cost of running the service is frequency of training - this can be used to determine when to train model in order to control cost. If not specified: the default value for `CreateModel` method is `TRAINING`. The default value for `UpdateModel` method is to keep the state the same as before.", + "enum": [ + "TRAINING_STATE_UNSPECIFIED", + "PAUSED", + "TRAINING" + ], + "enumDescriptions": [ + "Unspecified training state.", + "The model training is paused.", + "The model is training." + ], + "type": "string" + }, + "tuningOperation": { + "description": "Output only. The tune operation associated with the model. Can be used to determine if there is an ongoing tune for this recommendation. Empty field implies no tune is goig on.", + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Required. The type of model e.g. `home-page`. Currently supported values: `recommended-for-you`, `others-you-may-like`, `frequently-bought-together`, `page-optimization`, `similar-items`, `buy-it-again`, `on-sale-items`, and `recently-viewed`(readonly value). This field together with optimization_objective describe model metadata to use to control model training and serving. See https://cloud.google.com/retail/docs/models for more details on what the model metadata control and which combination of parameters are valid. For invalid combinations of parameters (e.g. type = `frequently-bought-together` and optimization_objective = `ctr`), you receive an error 400 if you try to create/update a recommendation with this set of knobs.", + "type": "string" + }, + "updateTime": { + "description": "Output only. Timestamp the Recommendation Model was last updated. E.g. if a Recommendation Model was paused - this would be the time the pause was initiated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig": { + "description": "Additional configs for the frequently-bought-together model type.", + "id": "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig", + "properties": { + "contextProductsType": { + "description": "Optional. Specifies the context of the model when it is used in predict requests. Can only be set for the `frequently-bought-together` type. If it isn't specified, it defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "enum": [ + "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", + "SINGLE_CONTEXT_PRODUCT", + "MULTIPLE_CONTEXT_PRODUCTS" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", + "Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ModelModelFeaturesConfig": { + "description": "Additional model features config.", + "id": "GoogleCloudRetailV2ModelModelFeaturesConfig", + "properties": { + "frequentlyBoughtTogetherConfig": { + "$ref": "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig", + "description": "Additional configs for frequently-bought-together models." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ModelServingConfigList": { + "description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", + "id": "GoogleCloudRetailV2ModelServingConfigList", + "properties": { + "servingConfigIds": { + "description": "Optional. A set of valid serving configs that may be used for `PAGE_OPTIMIZATION`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "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" + }, "GoogleCloudRetailV2PurgeMetadata": { "description": "Metadata related to the progress of the Purge operation. This will be returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2PurgeMetadata", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2PurgeProductsMetadata": { + "description": "Metadata related to the progress of the PurgeProducts operation. This will be returned by the google.longrunning.Operation.metadata field.", + "id": "GoogleCloudRetailV2PurgeProductsMetadata", + "properties": { + "createTime": { + "description": "Operation create time.", + "format": "google-datetime", + "type": "string" + }, + "failureCount": { + "description": "Count of entries that encountered errors while processing.", + "format": "int64", + "type": "string" + }, + "successCount": { + "description": "Count of entries that were deleted successfully.", + "format": "int64", + "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" + }, + "GoogleCloudRetailV2PurgeProductsResponse": { + "description": "Response of the PurgeProductsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", + "id": "GoogleCloudRetailV2PurgeProductsResponse", + "properties": { + "purgeCount": { + "description": "The total count of products purged as a result of the operation.", + "format": "int64", + "type": "string" + }, + "purgeSample": { + "description": "A sample of the product names that will be deleted. Only populated if `force` is set to false. A max of 100 names will be returned and the names are chosen at random.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2PurgeUserEventsResponse": { "description": "Response of the PurgeUserEventsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", "id": "GoogleCloudRetailV2PurgeUserEventsResponse", @@ -2449,6 +3100,23 @@ "properties": {}, "type": "object" }, + "GoogleCloudRetailV2TuneModelMetadata": { + "description": "Metadata associated with a tune operation.", + "id": "GoogleCloudRetailV2TuneModelMetadata", + "properties": { + "model": { + "description": "The resource name of the model that this tune applies to. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2TuneModelResponse": { + "description": "Response associated with a tune operation.", + "id": "GoogleCloudRetailV2TuneModelResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2UserEventImportSummary": { "description": "A summary of import result. The UserEventImportSummary summarizes the import status for user events.", "id": "GoogleCloudRetailV2UserEventImportSummary", @@ -2466,6 +3134,12 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaAcceptTermsRequest": { + "description": "Request for AcceptTerms method.", + "id": "GoogleCloudRetailV2alphaAcceptTermsRequest", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2alphaAddCatalogAttributeRequest": { "description": "Request for CatalogService.AddCatalogAttribute method.", "id": "GoogleCloudRetailV2alphaAddCatalogAttributeRequest", @@ -2676,7 +3350,7 @@ "id": "GoogleCloudRetailV2alphaBigQuerySource", "properties": { "dataSchema": { - "description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: The schema is available here: https://support.google.com/analytics/answer/3437719. * `user_event_ga4`: The schema is available here: https://support.google.com/analytics/answer/7029846. Supported values for auto-completion imports: * `suggestions` (default): One JSON completion suggestion per line. * `denylist`: One JSON deny suggestion per line. * `allowlist`: One JSON allow suggestion per line.", + "description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: The schema is available here: https://support.google.com/analytics/answer/3437719. * `user_event_ga4`: The schema is available here: https://support.google.com/analytics/answer/7029846. Supported values for autocomplete imports: * `suggestions` (default): One JSON completion suggestion per line. * `denylist`: One JSON deny suggestion per line. * `allowlist`: One JSON allow suggestion per line.", "type": "string" }, "datasetId": { @@ -2712,7 +3386,7 @@ }, "merchantCenterLinkingConfig": { "$ref": "GoogleCloudRetailV2alphaMerchantCenterLinkingConfig", - "description": "The Merchant Center linking configuration. Once a link is added, the data stream from Merchant Center to Cloud Retail will be enabled automatically. The requester must have access to the merchant center account in order to make changes to this field." + "description": "The Merchant Center linking configuration. After a link is added, the data stream from Merchant Center to Cloud Retail will be enabled automatically. The requester must have access to the Merchant Center account in order to make changes to this field." }, "name": { "description": "Required. Immutable. The fully qualified resource name of the catalog.", @@ -2757,13 +3431,17 @@ ], "type": "string" }, + "facetConfig": { + "$ref": "GoogleCloudRetailV2alphaCatalogAttributeFacetConfig", + "description": "Contains facet options." + }, "inUse": { "description": "Output only. Indicates whether this attribute has been used by any products. `True` if at least one Product is using this attribute in Product.attributes. Otherwise, this field is `False`. CatalogAttribute can be pre-loaded by using CatalogService.AddCatalogAttribute, CatalogService.ImportCatalogAttributes, or CatalogService.UpdateAttributesConfig APIs. This field is `False` for pre-loaded CatalogAttributes. Only pre-loaded catalog attributes that are neither in use by products nor predefined can be deleted. Catalog attributes that are either in use by products or are predefined attributes cannot be deleted; however, their configuration properties will reset to default values upon removal request. After catalog changes, it takes about 10 minutes for this field to update.", "readOnly": true, "type": "boolean" }, "indexableOption": { - "description": "When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if INDEXABLE_ENABLED attribute values are indexed so that it can be filtered, faceted, or boosted in SearchService.Search. Must be specified, otherwise throws INVALID_FORMAT error.", + "description": "When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if INDEXABLE_ENABLED attribute values are indexed so that it can be filtered, faceted, or boosted in SearchService.Search. Must be specified when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.", "enum": [ "INDEXABLE_OPTION_UNSPECIFIED", "INDEXABLE_ENABLED", @@ -2809,7 +3487,7 @@ "type": "string" }, "searchableOption": { - "description": "When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if SEARCHABLE_ENABLED, attribute values are searchable by text queries in SearchService.Search. If SEARCHABLE_ENABLED but attribute type is numerical, attribute values will not be searchable by text queries in SearchService.Search, as there are no text values associated to numerical attributes. Must be specified, otherwise throws INVALID_FORMAT error.", + "description": "When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if SEARCHABLE_ENABLED, attribute values are searchable by text queries in SearchService.Search. If SEARCHABLE_ENABLED but attribute type is numerical, attribute values will not be searchable by text queries in SearchService.Search, as there are no text values associated to numerical attributes. Must be specified, when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.", "enum": [ "SEARCHABLE_OPTION_UNSPECIFIED", "SEARCHABLE_ENABLED", @@ -2840,6 +3518,121 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaCatalogAttributeFacetConfig": { + "description": "Possible options for the facet that corresponds to the current attribute config.", + "id": "GoogleCloudRetailV2alphaCatalogAttributeFacetConfig", + "properties": { + "facetIntervals": { + "description": "If you don't set the facet SearchRequest.FacetSpec.FacetKey.intervals in the request to a numerical attribute, then we use the computed intervals with rounded bounds obtained from all its product numerical attribute values. The computed intervals might not be ideal for some attributes. Therefore, we give you the option to overwrite them with the facet_intervals field. The maximum of facet intervals per CatalogAttribute is 40. Each interval must have a lower bound or an upper bound. If both bounds are provided, then the lower bound must be smaller or equal than the upper bound.", + "items": { + "$ref": "GoogleCloudRetailV2alphaInterval" + }, + "type": "array" + }, + "ignoredFacetValues": { + "description": "Each instance represents a list of attribute values to ignore as facet values for a specific time range. The maximum number of instances per CatalogAttribute is 25.", + "items": { + "$ref": "GoogleCloudRetailV2alphaCatalogAttributeFacetConfigIgnoredFacetValues" + }, + "type": "array" + }, + "mergedFacet": { + "$ref": "GoogleCloudRetailV2alphaCatalogAttributeFacetConfigMergedFacet", + "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": "GoogleCloudRetailV2alphaCatalogAttributeFacetConfigMergedFacetValue" + }, + "type": "array" + }, + "rerankConfig": { + "$ref": "GoogleCloudRetailV2alphaCatalogAttributeFacetConfigRerankConfig", + "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" + }, + "GoogleCloudRetailV2alphaCatalogAttributeFacetConfigIgnoredFacetValues": { + "description": "Facet values to ignore on facets during the specified time range for the given SearchResponse.Facet.key attribute.", + "id": "GoogleCloudRetailV2alphaCatalogAttributeFacetConfigIgnoredFacetValues", + "properties": { + "endTime": { + "description": "If start time is empty and end time is not empty, then ignore these facet values before end time.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "Time range for the current list of facet values to ignore. If multiple time ranges are specified for an facet value for the current attribute, consider all of them. If both are empty, ignore always. If start time and end time are set, then start time must be before end time. If start time is not empty and end time is empty, then will ignore these facet values after the start time.", + "format": "google-datetime", + "type": "string" + }, + "values": { + "description": "List of facet values to ignore for the following time range. The facet values are the same as the attribute values. There is a limit of 10 values per instance of IgnoredFacetValues. Each value can have at most 128 characters.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaCatalogAttributeFacetConfigMergedFacet": { + "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": "GoogleCloudRetailV2alphaCatalogAttributeFacetConfigMergedFacet", + "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": "GoogleCloudRetailV2alphaCatalogAttributeFacetConfigMergedFacetValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaCatalogAttributeFacetConfigMergedFacetValue": { + "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": "GoogleCloudRetailV2alphaCatalogAttributeFacetConfigMergedFacetValue", + "properties": { + "mergedValue": { + "description": "All the previous values are replaced by this merged facet value. This merged_value must be non-empty and can have up to 128 characters.", + "type": "string" + }, + "values": { + "description": "All the facet values that are replaces by the same merged_value that follows. The maximum number of values per MergedFacetValue is 25. Each value can have up to 128 characters.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaCatalogAttributeFacetConfigRerankConfig": { + "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": "GoogleCloudRetailV2alphaCatalogAttributeFacetConfigRerankConfig", + "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" + }, "GoogleCloudRetailV2alphaColorInfo": { "description": "The color information of a Product.", "id": "GoogleCloudRetailV2alphaColorInfo", @@ -2862,7 +3655,7 @@ "type": "object" }, "GoogleCloudRetailV2alphaCompleteQueryResponse": { - "description": "Response of the auto-complete query.", + "description": "Response of the autocomplete query.", "id": "GoogleCloudRetailV2alphaCompleteQueryResponse", "properties": { "attributeResults": { @@ -2884,7 +3677,8 @@ "type": "array" }, "recentSearchResults": { - "description": "Matched recent searches of this user. The maximum number of recent searches is 10. This field is a restricted feature. Contact Retail Search support team if you are interested in enabling it. This feature is only available when CompleteQueryRequest.visitor_id field is set and UserEvent is imported. The recent searches satisfy the follow rules: * They are ordered from latest to oldest. * They are matched with CompleteQueryRequest.query case insensitively. * They are transformed to lower case. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", + "deprecated": true, + "description": "Deprecated. Matched recent searches of this user. The maximum number of recent searches is 10. This field is a restricted feature. If you want to enable it, contact Retail Search support. This feature is only available when CompleteQueryRequest.visitor_id field is set and UserEvent is imported. The recent searches satisfy the follow rules: * They are ordered from latest to oldest. * They are matched with CompleteQueryRequest.query case insensitively. * They are transformed to lower case. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", "items": { "$ref": "GoogleCloudRetailV2alphaCompleteQueryResponseRecentSearchResult" }, @@ -2918,14 +3712,27 @@ "description": "Custom attributes for the suggestion term. * For \"user-data\", the attributes are additional custom attributes ingested through BigQuery. * For \"cloud-retail\", the attributes are product attributes generated by Cloud Retail. It requires UserEvent.product_details is imported properly.", "type": "object" }, + "facets": { + "description": "Facet information for the suggestion term. Gives the number of items resulting from a search with this suggestion term for each facet. This is an experimental feature for limited customers. If you want to receive this facet information, reach out to the Retail support team.", + "items": { + "$ref": "GoogleCloudRetailV2alphaSearchResponseFacet" + }, + "type": "array" + }, "suggestion": { "description": "The suggestion for the query.", "type": "string" + }, + "totalProductCount": { + "description": "Total number of products associated with a search with this suggestion. This is an experimental feature for limited customers. If you want to receive this product count information, reach out to the Retail support team.", + "format": "int32", + "type": "integer" } }, "type": "object" }, "GoogleCloudRetailV2alphaCompleteQueryResponseRecentSearchResult": { + "deprecated": true, "description": "Recent search of this user.", "id": "GoogleCloudRetailV2alphaCompleteQueryResponseRecentSearchResult", "properties": { @@ -2965,7 +3772,7 @@ "type": "string" }, "lastSuggestionsImportOperation": { - "description": "Output only. Name of the LRO corresponding to the latest suggestion terms list import. Can use GetOperation API to retrieve the latest state of the Long Running Operation.", + "description": "Output only. Name of the LRO corresponding to the latest suggestion terms list import. Can use GetOperation API method to retrieve the latest state of the Long Running Operation.", "readOnly": true, "type": "string" }, @@ -3037,6 +3844,13 @@ }, "type": "array" }, + "pageCategories": { + "description": "Used to support browse uses cases. A list (up to 10 entries) of categories or departments. The format should be the same as UserEvent.page_categories;", + "items": { + "type": "string" + }, + "type": "array" + }, "queryTerms": { "description": "A list (up to 10 entries) of terms to match the query on. If not specified, match all queries. If many query terms are specified, the condition is matched if any of the terms is a match (i.e. using the OR operator).", "items": { @@ -3097,6 +3911,7 @@ }, "facetSpec": { "$ref": "GoogleCloudRetailV2alphaSearchRequestFacetSpec", + "deprecated": true, "description": "A facet specification to perform faceted search. Note that this field is deprecated and will throw NOT_IMPLEMENTED if used for creating a control." }, "name": { @@ -3144,6 +3959,23 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaCreateMerchantCenterAccountLinkMetadata": { + "description": "Common metadata related to the progress of the operations.", + "id": "GoogleCloudRetailV2alphaCreateMerchantCenterAccountLinkMetadata", + "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" + }, "GoogleCloudRetailV2alphaCreateModelMetadata": { "description": "Metadata associated with a create operation.", "id": "GoogleCloudRetailV2alphaCreateModelMetadata", @@ -3160,6 +3992,7 @@ "id": "GoogleCloudRetailV2alphaCustomAttribute", "properties": { "indexable": { + "deprecated": true, "description": "This field is normally ignored unless AttributesConfig.attribute_config_level of the Catalog is set to the deprecated 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level attribute configuration, see [Configuration modes](https://cloud.google.com/retail/docs/attribute-config#config-modes). If true, custom attribute values are indexed, so that they can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.", "type": "boolean" }, @@ -3172,6 +4005,7 @@ "type": "array" }, "searchable": { + "deprecated": true, "description": "This field is normally ignored unless AttributesConfig.attribute_config_level of the Catalog is set to the deprecated 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level attribute configuration, see [Configuration modes](https://cloud.google.com/retail/docs/attribute-config#config-modes). If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.", "type": "boolean" }, @@ -3185,6 +4019,121 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaEnrollSolutionMetadata": { + "description": "Metadata related to the EnrollSolution method. This will be returned by the google.longrunning.Operation.metadata field.", + "id": "GoogleCloudRetailV2alphaEnrollSolutionMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2alphaEnrollSolutionRequest": { + "description": "Request for EnrollSolution method.", + "id": "GoogleCloudRetailV2alphaEnrollSolutionRequest", + "properties": { + "solution": { + "description": "Required. Solution to enroll.", + "enum": [ + "SOLUTION_TYPE_UNSPECIFIED", + "SOLUTION_TYPE_RECOMMENDATION", + "SOLUTION_TYPE_SEARCH" + ], + "enumDescriptions": [ + "Default value.", + "Used for Recommendations AI.", + "Used for Retail Search." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaEnrollSolutionResponse": { + "description": "Response for EnrollSolution method.", + "id": "GoogleCloudRetailV2alphaEnrollSolutionResponse", + "properties": { + "enrolledSolution": { + "description": "Retail API solution that the project has enrolled.", + "enum": [ + "SOLUTION_TYPE_UNSPECIFIED", + "SOLUTION_TYPE_RECOMMENDATION", + "SOLUTION_TYPE_SEARCH" + ], + "enumDescriptions": [ + "Default value.", + "Used for Recommendations AI.", + "Used for Retail Search." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaExperimentInfo": { + "description": "Metadata for active A/B testing Experiment.", + "id": "GoogleCloudRetailV2alphaExperimentInfo", + "properties": { + "experiment": { + "description": "The fully qualified resource name of the experiment that provides the serving config under test, should an active experiment exist. For example: `projects/*/locations/global/catalogs/default_catalog/experiments/experiment_id`", + "type": "string" + }, + "servingConfigExperiment": { + "$ref": "GoogleCloudRetailV2alphaExperimentInfoServingConfigExperiment", + "description": "A/B test between existing Cloud Retail Search ServingConfigs." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaExperimentInfoServingConfigExperiment": { + "description": "Metadata for active serving config A/B tests.", + "id": "GoogleCloudRetailV2alphaExperimentInfoServingConfigExperiment", + "properties": { + "experimentServingConfig": { + "description": "The fully qualified resource name of the serving config VariantArm.serving_config_id responsible for generating the search response. For example: `projects/*/locations/*/catalogs/*/servingConfigs/*`.", + "type": "string" + }, + "originalServingConfig": { + "description": "The fully qualified resource name of the original SearchRequest.placement in the search request prior to reassignment by experiment API. For example: `projects/*/locations/*/catalogs/*/servingConfigs/*`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaExportAnalyticsMetricsRequest": { + "description": "Request message for the `ExportAnalyticsMetrics` method.", + "id": "GoogleCloudRetailV2alphaExportAnalyticsMetricsRequest", + "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": "GoogleCloudRetailV2alphaOutputConfig", + "description": "Required. The output location of the data." + } + }, + "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", @@ -3404,6 +4353,7 @@ "type": "string" }, "requestId": { + "deprecated": true, "description": "Deprecated. This field is never set.", "type": "string" }, @@ -3437,7 +4387,7 @@ "description": "Required. The desired input location of the data." }, "notificationPubsubTopic": { - "description": "Full Pub/Sub topic name for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has to be within the same project as ImportProductsRequest.parent. Make sure that `service-@gcp-sa-retail.iam.gserviceaccount.com` has the `pubsub.topics.publish` IAM permission on the topic.", + "description": "Full Pub/Sub topic name for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has to be within the same project as ImportProductsRequest.parent. Make sure that both `cloud-retail-customer-data-access@system.gserviceaccount.com` and `service-@gcp-sa-retail.iam.gserviceaccount.com` have the `pubsub.topics.publish` IAM permission on the topic. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", "type": "string" }, "reconciliationMode": { @@ -3455,6 +4405,7 @@ "type": "string" }, "requestId": { + "deprecated": true, "description": "Deprecated. This field has no effect.", "type": "string" }, @@ -3463,7 +4414,7 @@ "type": "boolean" }, "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" } @@ -3588,6 +4539,44 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaListEnrolledSolutionsResponse": { + "description": "Response for ListEnrolledSolutions method.", + "id": "GoogleCloudRetailV2alphaListEnrolledSolutionsResponse", + "properties": { + "enrolledSolutions": { + "description": "Retail API solutions that the project has enrolled.", + "items": { + "enum": [ + "SOLUTION_TYPE_UNSPECIFIED", + "SOLUTION_TYPE_RECOMMENDATION", + "SOLUTION_TYPE_SEARCH" + ], + "enumDescriptions": [ + "Default value.", + "Used for Recommendations AI.", + "Used for Retail Search." + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaListMerchantCenterAccountLinksResponse": { + "description": "Response for MerchantCenterAccountLinkService.ListMerchantCenterAccountLinks method.", + "id": "GoogleCloudRetailV2alphaListMerchantCenterAccountLinksResponse", + "properties": { + "merchantCenterAccountLinks": { + "description": "The links.", + "items": { + "$ref": "GoogleCloudRetailV2alphaMerchantCenterAccountLink" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaListModelsResponse": { "description": "Response to a ListModelRequest.", "id": "GoogleCloudRetailV2alphaListModelsResponse", @@ -3676,6 +4665,156 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaLoggingConfig": { + "description": "Project level logging config to control what level of log will be generated and written to Cloud Logging.", + "id": "GoogleCloudRetailV2alphaLoggingConfig", + "properties": { + "defaultLogGenerationRule": { + "$ref": "GoogleCloudRetailV2alphaLoggingConfigLogGenerationRule", + "description": "The log generation rule that applies by default to all services supporting log generation. It can be overridden by ServiceLogGenerationRule for service level control." + }, + "name": { + "description": "Required. Immutable. The name of the LoggingConfig singleton resource. Format: projects/*/loggingConfig", + "type": "string" + }, + "serviceLogGenerationRules": { + "description": "Controls logging configurations more granularly for each supported service. This overrides the default_log_generation_rule for the services specified. For those not mentioned, they will fallback to the default log generation rule.", + "items": { + "$ref": "GoogleCloudRetailV2alphaLoggingConfigServiceLogGenerationRule" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaLoggingConfigLogGenerationRule": { + "description": "The logging configurations for services supporting log generation.", + "id": "GoogleCloudRetailV2alphaLoggingConfigLogGenerationRule", + "properties": { + "infoLogSampleRate": { + "description": "The log sample rate for INFO level log entries. You can use this to reduce the number of entries generated for INFO level logs. DO NOT set this field if the logging_level is not LoggingLevel.LOG_ALL. Otherwise, an INVALID_ARGUMENT error is returned. Sample rate for INFO logs defaults to 1 when unset (generate and send all INFO logs to Cloud Logging). Its value must be greater than 0 and less than or equal to 1.", + "format": "float", + "type": "number" + }, + "loggingLevel": { + "description": "The logging level. By default it is set to `LOG_WARNINGS_AND_ABOVE`.", + "enum": [ + "LOGGING_LEVEL_UNSPECIFIED", + "LOGGING_DISABLED", + "LOG_ERRORS_AND_ABOVE", + "LOG_WARNINGS_AND_ABOVE", + "LOG_ALL" + ], + "enumDescriptions": [ + "Default value. Defaults to `LOG_FOR_WARNINGS_AND_ABOVE` if unset.", + "No log will be generated and sent to Cloud Logging.", + "Log for operations resulted in fatal error.", + "In addition to `LOG_ERRORS_AND_ABOVE`, also log for operations that have soft errors, quality suggestions.", + "Log all operations, including successful ones." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaLoggingConfigServiceLogGenerationRule": { + "description": "The granular logging configurations for supported services.", + "id": "GoogleCloudRetailV2alphaLoggingConfigServiceLogGenerationRule", + "properties": { + "logGenerationRule": { + "$ref": "GoogleCloudRetailV2alphaLoggingConfigLogGenerationRule", + "description": "The log generation rule that applies to this service." + }, + "serviceName": { + "description": "Required. Supported service names: \"CatalogService\", \"CompletionService\", \"ControlService\", \"MerchantCenterStreaming\", \"ModelService\", \"PredictionService\", \"ProductService\", \"ServingConfigService\", \"UserEventService\",", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaMerchantCenterAccountLink": { + "description": "Represents a link between a Merchant Center account and a branch. After a link is established, products from the linked Merchant Center account are streamed to the linked branch.", + "id": "GoogleCloudRetailV2alphaMerchantCenterAccountLink", + "properties": { + "branchId": { + "description": "Required. The branch ID (e.g. 0/1/2) within the catalog that products from merchant_center_account_id are streamed to. When updating this field, an empty value will use the currently configured default branch. However, changing the default branch later on won't change the linked branch here. A single branch ID can only have one linked Merchant Center account ID.", + "type": "string" + }, + "feedFilters": { + "description": "Criteria for the Merchant Center feeds to be ingested via the link. All offers will be ingested if the list is empty. Otherwise the offers will be ingested from selected feeds.", + "items": { + "$ref": "GoogleCloudRetailV2alphaMerchantCenterAccountLinkMerchantCenterFeedFilter" + }, + "type": "array" + }, + "feedLabel": { + "description": "The FeedLabel used to perform filtering. Note: this replaces [region_id](https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.feed_label). Example value: `US`. Example value: `FeedLabel1`.", + "type": "string" + }, + "id": { + "description": "Output only. Immutable. MerchantCenterAccountLink identifier, which is the final component of name. This field is auto generated and follows the convention: `BranchId_MerchantCenterAccountId`. `projects/*/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/id_1`.", + "readOnly": true, + "type": "string" + }, + "languageCode": { + "description": "Language of the title/description and other string attributes. Use language tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). ISO 639-1. This specifies the language of offers in Merchant Center that will be accepted. If empty, no language filtering will be performed. Example value: `en`.", + "type": "string" + }, + "merchantCenterAccountId": { + "description": "Required. The linked [Merchant center account id](https://developers.google.com/shopping-content/guides/accountstatuses). The account must be a standalone account or a sub-account of a MCA.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Output only. Immutable. Full resource name of the Merchant Center Account Link, such as `projects/*/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/merchant_center_account_link`.", + "readOnly": true, + "type": "string" + }, + "projectId": { + "description": "Output only. Google Cloud project ID.", + "readOnly": true, + "type": "string" + }, + "source": { + "description": "Optional. An optional arbitrary string that could be used as a tag for tracking link source.", + "type": "string" + }, + "state": { + "description": "Output only. Represents the state of the link.", + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "ACTIVE", + "FAILED" + ], + "enumDescriptions": [ + "Default value.", + "Link is created and LRO is not complete.", + "Link is active.", + "Link creation failed." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaMerchantCenterAccountLinkMerchantCenterFeedFilter": { + "description": "Merchant Center Feed filter criterion.", + "id": "GoogleCloudRetailV2alphaMerchantCenterAccountLinkMerchantCenterFeedFilter", + "properties": { + "primaryFeedId": { + "description": "Merchant Center primary feed ID.", + "format": "int64", + "type": "string" + }, + "primaryFeedName": { + "description": "Merchant Center primary feed name. The name is used for the display purposes only.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaMerchantCenterFeedFilter": { "description": "Merchant Center Feed filter criterion.", "id": "GoogleCloudRetailV2alphaMerchantCenterFeedFilter", @@ -3693,11 +4832,11 @@ "type": "object" }, "GoogleCloudRetailV2alphaMerchantCenterLink": { - "description": "Represents a link between a Merchant Center account and a branch. Once a link is established, products from the linked merchant center account will be streamed to the linked branch.", + "description": "Represents a link between a Merchant Center account and a branch. After a link is established, products from the linked Merchant Center account are streamed to the linked branch.", "id": "GoogleCloudRetailV2alphaMerchantCenterLink", "properties": { "branchId": { - "description": "The branch ID (e.g. 0/1/2) within this catalog that products from merchant_center_account_id are streamed to. When updating this field, an empty value will use the currently configured default branch. However, changing the default branch later on won't change the linked branch here. A single branch ID can only have one linked merchant center account ID.", + "description": "The branch ID (e.g. 0/1/2) within this catalog that products from merchant_center_account_id are streamed to. When updating this field, an empty value will use the currently configured default branch. However, changing the default branch later on won't change the linked branch here. A single branch ID can only have one linked Merchant Center account ID.", "type": "string" }, "destinations": { @@ -3719,7 +4858,7 @@ "type": "string" }, "merchantCenterAccountId": { - "description": "Required. The linked [Merchant center account ID](https://developers.google.com/shopping-content/guides/accountstatuses). The account must be a standalone account or a sub-account of a MCA.", + "description": "Required. The linked [Merchant Center account ID](https://developers.google.com/shopping-content/guides/accountstatuses). The account must be a standalone account or a sub-account of a MCA.", "format": "int64", "type": "string" }, @@ -3793,6 +4932,10 @@ "readOnly": true, "type": "string" }, + "modelFeaturesConfig": { + "$ref": "GoogleCloudRetailV2alphaModelModelFeaturesConfig", + "description": "Optional. Additional model features config." + }, "name": { "description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", "type": "string" @@ -3878,6 +5021,38 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig": { + "description": "Additional configs for the frequently-bought-together model type.", + "id": "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig", + "properties": { + "contextProductsType": { + "description": "Optional. Specifies the context of the model when it is used in predict requests. Can only be set for the `frequently-bought-together` type. If it isn't specified, it defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "enum": [ + "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", + "SINGLE_CONTEXT_PRODUCT", + "MULTIPLE_CONTEXT_PRODUCTS" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", + "Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaModelModelFeaturesConfig": { + "description": "Additional model features config.", + "id": "GoogleCloudRetailV2alphaModelModelFeaturesConfig", + "properties": { + "frequentlyBoughtTogetherConfig": { + "$ref": "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig", + "description": "Additional configs for frequently-bought-together models." + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaModelPageOptimizationConfig": { "description": "The PageOptimizationConfig for model training. This determines how many panels to optimize for, and which serving configs to consider for each panel. The purpose of this model is to optimize which ServingConfig to show on which panels in way that optimizes the visitors shopping journey.", "id": "GoogleCloudRetailV2alphaModelPageOptimizationConfig", @@ -3961,6 +5136,51 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaOutputConfig": { + "description": "The output configuration setting.", + "id": "GoogleCloudRetailV2alphaOutputConfig", + "properties": { + "bigqueryDestination": { + "$ref": "GoogleCloudRetailV2alphaOutputConfigBigQueryDestination", + "description": "The BigQuery location where the output is to be written to." + }, + "gcsDestination": { + "$ref": "GoogleCloudRetailV2alphaOutputConfigGcsDestination", + "description": "The Google Cloud Storage location where the output is to be written to." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaOutputConfigBigQueryDestination": { + "description": "The BigQuery output destination configuration.", + "id": "GoogleCloudRetailV2alphaOutputConfigBigQueryDestination", + "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" + }, + "GoogleCloudRetailV2alphaOutputConfigGcsDestination": { + "description": "The Google Cloud Storage output destination configuration.", + "id": "GoogleCloudRetailV2alphaOutputConfigGcsDestination", + "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" + }, "GoogleCloudRetailV2alphaOutputResult": { "description": "Output result that stores the information about where the exported data is stored.", "id": "GoogleCloudRetailV2alphaOutputResult", @@ -3993,7 +5213,7 @@ "id": "GoogleCloudRetailV2alphaPredictRequest", "properties": { "filter": { - "description": "Filter for restricting prediction results with a length limit of 5,000 characters. Accepts values for tags and the `filterOutOfStockItems` flag. * Tag expressions. Restricts predictions to products that match all of the specified tags. Boolean operators `OR` and `NOT` are supported if the expression is enclosed in parentheses, and must be separated from the tag values by a space. `-\"tagA\"` is also supported and is equivalent to `NOT \"tagA\"`. Tag values must be double quoted UTF-8 encoded strings with a size limit of 1,000 characters. Note: \"Recently viewed\" models don't support tag filtering at the moment. * filterOutOfStockItems. Restricts predictions to products that do not have a stockState value of OUT_OF_STOCK. Examples: * tag=(\"Red\" OR \"Blue\") tag=\"New-Arrival\" tag=(NOT \"promotional\") * filterOutOfStockItems tag=(-\"promotional\") * filterOutOfStockItems If your filter blocks all prediction results, the API will return *no* results. If instead you want empty result sets to return generic (unfiltered) popular products, set `strictFiltering` to False in `PredictRequest.params`. Note that the API will never return items with storageStatus of \"EXPIRED\" or \"DELETED\" regardless of filter choices. If `filterSyntaxV2` is set to true under the `params` field, then attribute-based expressions are expected instead of the above described tag-based syntax. Examples: * (colors: ANY(\"Red\", \"Blue\")) AND NOT (categories: ANY(\"Phones\")) * (availability: ANY(\"IN_STOCK\")) AND (colors: ANY(\"Red\") OR categories: ANY(\"Phones\"))", + "description": "Filter for restricting prediction results with a length limit of 5,000 characters. Accepts values for tags and the `filterOutOfStockItems` flag. * Tag expressions. Restricts predictions to products that match all of the specified tags. Boolean operators `OR` and `NOT` are supported if the expression is enclosed in parentheses, and must be separated from the tag values by a space. `-\"tagA\"` is also supported and is equivalent to `NOT \"tagA\"`. Tag values must be double quoted UTF-8 encoded strings with a size limit of 1,000 characters. Note: \"Recently viewed\" models don't support tag filtering at the moment. * filterOutOfStockItems. Restricts predictions to products that do not have a stockState value of OUT_OF_STOCK. Examples: * tag=(\"Red\" OR \"Blue\") tag=\"New-Arrival\" tag=(NOT \"promotional\") * filterOutOfStockItems tag=(-\"promotional\") * filterOutOfStockItems If your filter blocks all prediction results, the API will return *no* results. If instead you want empty result sets to return generic (unfiltered) popular products, set `strictFiltering` to False in `PredictRequest.params`. Note that the API will never return items with storageStatus of \"EXPIRED\" or \"DELETED\" regardless of filter choices. If `filterSyntaxV2` is set to true under the `params` field, then attribute-based expressions are expected instead of the above described tag-based syntax. Examples: * (colors: ANY(\"Red\", \"Blue\")) AND NOT (categories: ANY(\"Phones\")) * (availability: ANY(\"IN_STOCK\")) AND (colors: ANY(\"Red\") OR categories: ANY(\"Phones\")) For more information, see [Filter recommendations](https://cloud.google.com/retail/docs/filter-recs).", "type": "string" }, "labels": { @@ -4009,6 +5229,7 @@ "type": "integer" }, "pageToken": { + "deprecated": true, "description": "This field is not used; leave it unset.", "type": "string" }, @@ -4177,14 +5398,14 @@ "type": "string" }, "brands": { - "description": "The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).", + "description": "The brands of the product. A maximum of 30 brands are allowed unless overridden through the Google Cloud console. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).", "items": { "type": "string" }, "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" }, @@ -4213,7 +5434,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" }, @@ -4244,7 +5465,7 @@ "type": "string" }, "localInventories": { - "description": "Output only. A list of local inventories specific to different places. This is only available for users who have Retail Search enabled, and it can be managed by ProductService.AddLocalInventories and ProductService.RemoveLocalInventories APIs.", + "description": "Output only. A list of local inventories specific to different places. This field can be managed by ProductService.AddLocalInventories and ProductService.RemoveLocalInventories APIs if fine-grained, high-volume updates are necessary.", "items": { "$ref": "GoogleCloudRetailV2alphaLocalInventory" }, @@ -4294,6 +5515,7 @@ "description": "The rating of this product." }, "retrievableFields": { + "deprecated": true, "description": "Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form \"attributes.key\" where \"key\" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is returned. Note: Returning more fields in SearchResponse can increase response payload size and serving latency. This field is deprecated. Use the retrievable site-wide control instead.", "format": "google-fieldmask", "type": "string" @@ -4416,6 +5638,36 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaProject": { + "description": "Metadata that describes a Cloud Retail Project.", + "id": "GoogleCloudRetailV2alphaProject", + "properties": { + "enrolledSolutions": { + "description": "Output only. Retail API solutions that the project has enrolled.", + "items": { + "enum": [ + "SOLUTION_TYPE_UNSPECIFIED", + "SOLUTION_TYPE_RECOMMENDATION", + "SOLUTION_TYPE_SEARCH" + ], + "enumDescriptions": [ + "Default value.", + "Used for Recommendations AI.", + "Used for Retail Search." + ], + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "name": { + "description": "Output only. Full resource name of the retail project, such as `projects/{project_id_or_number}/retailProject`.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaPromotion": { "description": "Promotion specification.", "id": "GoogleCloudRetailV2alphaPromotion", @@ -4753,6 +6005,10 @@ "$ref": "GoogleCloudRetailV2alphaRuleFilterAction", "description": "Filters results." }, + "forceReturnFacetAction": { + "$ref": "GoogleCloudRetailV2alphaRuleForceReturnFacetAction", + "description": "Force returns an attribute as a facet in the request." + }, "ignoreAction": { "$ref": "GoogleCloudRetailV2alphaRuleIgnoreAction", "description": "Ignores specific terms from query during search." @@ -4765,6 +6021,10 @@ "$ref": "GoogleCloudRetailV2alphaRuleRedirectAction", "description": "Redirects a shopper to a specific page." }, + "removeFacetAction": { + "$ref": "GoogleCloudRetailV2alphaRuleRemoveFacetAction", + "description": "Remove an attribute as a facet in the request (if present)." + }, "replacementAction": { "$ref": "GoogleCloudRetailV2alphaRuleReplacementAction", "description": "Replaces specific terms in the query." @@ -4825,12 +6085,42 @@ "id": "GoogleCloudRetailV2alphaRuleFilterAction", "properties": { "filter": { - "description": "A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. See more details at the Retail Search [user guide](/retail/search/docs/filter-and-order#filter). * To filter products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", + "description": "A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. For more information, see [Filter](/retail/docs/filter-and-order#filter). * To filter products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", "type": "string" } }, "type": "object" }, + "GoogleCloudRetailV2alphaRuleForceReturnFacetAction": { + "description": "Force returns an attribute/facet in the request around a certain position or above. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Inputs: attribute name, position * Action Result: Will force return a facet key around a certain position or above if the condition is satisfied. Example: Suppose the query is \"shoes\", the Condition.query_terms is \"shoes\", the ForceReturnFacetAction.FacetPositionAdjustment.attribute_name is \"size\" and the ForceReturnFacetAction.FacetPositionAdjustment.position is 8. Two cases: a) The facet key \"size\" is not already in the top 8 slots, then the facet \"size\" will appear at a position close to 8. b) The facet key \"size\" in among the top 8 positions in the request, then it will stay at its current rank.", + "id": "GoogleCloudRetailV2alphaRuleForceReturnFacetAction", + "properties": { + "facetPositionAdjustments": { + "description": "Each instance corresponds to a force return attribute for the given condition. There can't be more 3 instances here.", + "items": { + "$ref": "GoogleCloudRetailV2alphaRuleForceReturnFacetActionFacetPositionAdjustment" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaRuleForceReturnFacetActionFacetPositionAdjustment": { + "description": "Each facet position adjustment consists of a single attribute name (i.e. facet key) along with a specified position.", + "id": "GoogleCloudRetailV2alphaRuleForceReturnFacetActionFacetPositionAdjustment", + "properties": { + "attributeName": { + "description": "The attribute name to force return as a facet. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters long.", + "type": "string" + }, + "position": { + "description": "This is the position in the request as explained above. It should be strictly positive be at most 100.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaRuleIgnoreAction": { "description": "Prevents a term in the query from being used in search. Example: Don't search for \"shoddy\".", "id": "GoogleCloudRetailV2alphaRuleIgnoreAction", @@ -4874,7 +6164,7 @@ "type": "object" }, "GoogleCloudRetailV2alphaRuleRedirectAction": { - "description": "Redirects a shopper to a specific page. * Rule Condition: - Must specify Condition.query_terms. * Action Input: Request Query * Action Result: Redirects shopper to provided uri.", + "description": "Redirects a shopper to a specific page. * Rule Condition: Must specify Condition.query_terms. * Action Input: Request Query * Action Result: Redirects shopper to provided uri.", "id": "GoogleCloudRetailV2alphaRuleRedirectAction", "properties": { "redirectUri": { @@ -4884,6 +6174,20 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaRuleRemoveFacetAction": { + "description": "Removes an attribute/facet in the request if is present. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: attribute name * Action Result: Will remove the attribute (as a facet) from the request if it is present. Example: Suppose the query is \"shoes\", the Condition.query_terms is \"shoes\" and the attribute name \"size\", then facet key \"size\" will be removed from the request (if it is present).", + "id": "GoogleCloudRetailV2alphaRuleRemoveFacetAction", + "properties": { + "attributeNames": { + "description": "The attribute names (i.e. facet keys) to remove from the dynamic facets (if present in the request). There can't be more 3 attribute names. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaRuleReplacementAction": { "description": "Replaces a term in the query. Multiple replacement candidates can be specified. All `query_terms` will be replaced with the replacement term. Example: Replace \"gShoe\" with \"google shoe\".", "id": "GoogleCloudRetailV2alphaRuleReplacementAction", @@ -4926,36 +6230,41 @@ "properties": { "boostSpec": { "$ref": "GoogleCloudRetailV2alphaSearchRequestBoostSpec", - "description": "Boost specification to boost certain products. See more details at this [user guide](https://cloud.google.com/retail/docs/boosting). Notice that if both ServingConfig.boost_control_ids and SearchRequest.boost_spec are set, the boost conditions from both places are evaluated. If a search request matches multiple boost conditions, the final boost score is equal to the sum of the boost scores from all matched boost conditions." + "description": "Boost specification to boost certain products. For more information, see [Boost results](https://cloud.google.com/retail/docs/boosting). Notice that if both ServingConfig.boost_control_ids and SearchRequest.boost_spec are set, the boost conditions from both places are evaluated. If a search request matches multiple boost conditions, the final boost score is equal to the sum of the boost scores from all matched boost conditions." }, "branch": { "description": "The branch resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use \"default_branch\" as the branch ID or leave this field empty, to search products under the default branch.", "type": "string" }, "canonicalFilter": { - "description": "The default filter that is applied when a user performs a search without checking any filters on the search page. The filter applied to every search request when quality improvement such as query expansion is needed. For example, if a query does not have enough results, an expanded query with SearchRequest.canonical_filter will be returned as a supplement of the original query. This field is strongly recommended to achieve high search quality. See SearchRequest.filter for more details about filter syntax.", + "description": "The default filter that is applied when a user performs a search without checking any filters on the search page. The filter applied to every search request when quality improvement such as query expansion is needed. In the case a query does not have a sufficient amount of results this filter will be used to determine whether or not to enable the query expansion flow. The original filter will still be used for the query expanded search. This field is strongly recommended to achieve high search quality. For more information about filter syntax, see SearchRequest.filter.", "type": "string" }, "dynamicFacetSpec": { "$ref": "GoogleCloudRetailV2alphaSearchRequestDynamicFacetSpec", + "deprecated": true, "description": "Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic to enable dynamic facets. Do not set this field. The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated." }, + "entity": { + "description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it should be exactly matched with UserEvent.entity to get search results boosted by entity.", + "type": "string" + }, "facetSpecs": { - "description": "Facet specifications for faceted search. If empty, no facets are returned. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "Facet specifications for faceted search. If empty, no facets are returned. A maximum of 200 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", "items": { "$ref": "GoogleCloudRetailV2alphaSearchRequestFacetSpec" }, "type": "array" }, "filter": { - "description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. Filter expression is case-sensitive. See more details at this [user guide](https://cloud.google.com/retail/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", + "description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. Filter expression is case-sensitive. For more information, see [Filter](https://cloud.google.com/retail/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, - "description": "The labels applied to a resource must meet the following requirements: * Each resource can have multiple labels, up to a maximum of 64. * Each label must be a key-value pair. * Keys have a minimum length of 1 character and a maximum length of 63 characters and cannot be empty. Values can be empty and have a maximum length of 63 characters. * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. All characters must use UTF-8 encoding, and international characters are allowed. * The key portion of a label must be unique. However, you can use the same key with multiple resources. * Keys must start with a lowercase letter or international character. See [Google Cloud Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) for more details.", + "description": "The labels applied to a resource must meet the following requirements: * Each resource can have multiple labels, up to a maximum of 64. * Each label must be a key-value pair. * Keys have a minimum length of 1 character and a maximum length of 63 characters and cannot be empty. Values can be empty and have a maximum length of 63 characters. * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. All characters must use UTF-8 encoding, and international characters are allowed. * The key portion of a label must be unique. However, you can use the same key with multiple resources. * Keys must start with a lowercase letter or international character. For more information, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) in the Resource Manager documentation.", "type": "object" }, "offset": { @@ -4964,11 +6273,11 @@ "type": "integer" }, "orderBy": { - "description": "The order in which products are returned. Products can be ordered by a field in an Product object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. See more details at this [user guide](https://cloud.google.com/retail/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", + "description": "The order in which products are returned. Products can be ordered by a field in an Product object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. For more information, see [Order](https://cloud.google.com/retail/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", "type": "string" }, "pageCategories": { - "description": "The categories associated with a category page. Required for category navigation queries to achieve good search quality. The format should be the same as UserEvent.page_categories; 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). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: \"pageCategories\" : [\"Sales > 2017 Black Friday Deals\"].", + "description": "The categories associated with a category page. Must be set for category navigation queries to achieve good search quality. The format should be the same as UserEvent.page_categories; 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). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: \"pageCategories\" : [\"Sales > 2017 Black Friday Deals\"].", "items": { "type": "string" }, @@ -4993,10 +6302,10 @@ }, "queryExpansionSpec": { "$ref": "GoogleCloudRetailV2alphaSearchRequestQueryExpansionSpec", - "description": "The query expansion specification that specifies the conditions under which query expansion will occur. See more details at this [user guide](https://cloud.google.com/retail/docs/result-size#query_expansion)." + "description": "The query expansion specification that specifies the conditions under which query expansion occurs. For more information, see [Query expansion](https://cloud.google.com/retail/docs/result-size#query_expansion)." }, "relevanceThreshold": { - "description": "The relevance threshold of the search results. Defaults to RelevanceThreshold.HIGH, which means only the most relevant results are shown, and the least number of results are returned. See more details at this [user guide](https://cloud.google.com/retail/docs/result-size#relevance_thresholding).", + "description": "The relevance threshold of the search results. Defaults to RelevanceThreshold.HIGH, which means only the most relevant results are shown, and the least number of results are returned. For more information, see [Adjust result size](https://cloud.google.com/retail/docs/result-size#relevance_thresholding).", "enum": [ "RELEVANCE_THRESHOLD_UNSPECIFIED", "HIGH", @@ -5109,7 +6418,7 @@ "id": "GoogleCloudRetailV2alphaSearchRequestFacetSpec", "properties": { "enableDynamicPosition": { - "description": "Enables dynamic position for this facet. If set to true, the position of this facet among all facets in the response is determined by Google Retail Search. It will be ordered together with dynamic facets if dynamic facets is enabled. If set to false, the position of this facet in the response will be the same as in the request, and it will be ranked before the facets with dynamic position enable and all dynamic facets. For example, you may always want to have rating facet returned in the response, but it's not necessarily to always display the rating facet at the top. In that case, you can set enable_dynamic_position to true so that the position of rating facet in response will be determined by Google Retail Search. Another example, assuming you have the following facets in the request: * \"rating\", enable_dynamic_position = true * \"price\", enable_dynamic_position = false * \"brands\", enable_dynamic_position = false And also you have a dynamic facets enable, which will generate a facet 'gender'. Then the final order of the facets in the response can be (\"price\", \"brands\", \"rating\", \"gender\") or (\"price\", \"brands\", \"gender\", \"rating\") depends on how Google Retail Search orders \"gender\" and \"rating\" facets. However, notice that \"price\" and \"brands\" will always be ranked at 1st and 2nd position since their enable_dynamic_position are false.", + "description": "Enables dynamic position for this facet. If set to true, the position of this facet among all facets in the response is determined by Google Retail Search. It is ordered together with dynamic facets if dynamic facets is enabled. If set to false, the position of this facet in the response is the same as in the request, and it is ranked before the facets with dynamic position enable and all dynamic facets. For example, you may always want to have rating facet returned in the response, but it's not necessarily to always display the rating facet at the top. In that case, you can set enable_dynamic_position to true so that the position of rating facet in response is determined by Google Retail Search. Another example, assuming you have the following facets in the request: * \"rating\", enable_dynamic_position = true * \"price\", enable_dynamic_position = false * \"brands\", enable_dynamic_position = false And also you have a dynamic facets enable, which generates a facet \"gender\". Then, the final order of the facets in the response can be (\"price\", \"brands\", \"rating\", \"gender\") or (\"price\", \"brands\", \"gender\", \"rating\") depends on how Google Retail Search orders \"gender\" and \"rating\" facets. However, notice that \"price\" and \"brands\" are always ranked at first and second position because their enable_dynamic_position values are false.", "type": "boolean" }, "excludedFilterKeys": { @@ -5140,14 +6449,14 @@ "type": "boolean" }, "contains": { - "description": "Only get facet values that contains the given strings. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"contains\" to \"Shoe\", the \"categories\" facet will give only \"Women > Shoe\" and \"Men > Shoe\". Only supported on textual fields. Maximum is 10.", + "description": "Only get facet values that contains the given strings. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"contains\" to \"Shoe\", the \"categories\" facet gives only \"Women > Shoe\" and \"Men > Shoe\". Only supported on textual fields. Maximum is 10.", "items": { "type": "string" }, "type": "array" }, "intervals": { - "description": "Set only if values should be bucketized into intervals. Must be set for facets with numerical values. Must not be set for facet with text values. Maximum number of intervals is 30.", + "description": "Set only if values should be bucketized into intervals. Must be set for facets with numerical values. Must not be set for facet with text values. Maximum number of intervals is 40. For all numerical facet keys that appear in the list of products from the catalog, the percentiles 0, 10, 30, 50, 70, 90, and 100 are computed from their distribution weekly. If the model assigns a high score to a numerical facet key and its intervals are not specified in the search request, these percentiles become the bounds for its intervals and are returned in the response. If the facet key intervals are specified in the request, then the specified intervals are returned instead.", "items": { "$ref": "GoogleCloudRetailV2alphaInterval" }, @@ -5162,14 +6471,14 @@ "type": "string" }, "prefixes": { - "description": "Only get facet values that start with the given string prefix. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"prefixes\" to \"Women\", the \"categories\" facet will give only \"Women > Shoe\" and \"Women > Dress\". Only supported on textual fields. Maximum is 10.", + "description": "Only get facet values that start with the given string prefix. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"prefixes\" to \"Women\", the \"categories\" facet gives only \"Women > Shoe\" and \"Women > Dress\". Only supported on textual fields. Maximum is 10.", "items": { "type": "string" }, "type": "array" }, "query": { - "description": "The query that is used to compute facet for the given facet key. When provided, it will override the default behavior of facet computation. The query syntax is the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Notice that there is no limitation on FacetKey.key when query is specified. In the response, SearchResponse.Facet.values.value will be always \"1\" and SearchResponse.Facet.values.count will be the number of results that match the query. For example, you can set a customized facet for \"shipToStore\", where FacetKey.key is \"customizedShipToStore\", and FacetKey.query is \"availability: ANY(\\\"IN_STOCK\\\") AND shipToStore: ANY(\\\"123\\\")\". Then the facet will count the products that are both in stock and ship to store \"123\".", + "description": "The query that is used to compute facet for the given facet key. When provided, it overrides the default behavior of facet computation. The query syntax is the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Notice that there is no limitation on FacetKey.key when query is specified. In the response, SearchResponse.Facet.values.value is always \"1\" and SearchResponse.Facet.values.count is the number of results that match the query. For example, you can set a customized facet for \"shipToStore\", where FacetKey.key is \"customizedShipToStore\", and FacetKey.query is \"availability: ANY(\\\"IN_STOCK\\\") AND shipToStore: ANY(\\\"123\\\")\". Then the facet counts the products that are both in stock and ship to store \"123\".", "type": "string" }, "restrictedValues": { @@ -5272,6 +6581,13 @@ "description": "Contains the spell corrected query, if found. If the spell correction type is AUTOMATIC, then the search results are based on corrected_query. Otherwise the original query is used for search.", "type": "string" }, + "experimentInfo": { + "description": "Metadata related to A/B testing Experiment associated with this response. Only exists when an experiment is triggered.", + "items": { + "$ref": "GoogleCloudRetailV2alphaExperimentInfo" + }, + "type": "array" + }, "facets": { "description": "Results of facets requested by user.", "items": { @@ -5675,6 +6991,10 @@ "$ref": "GoogleCloudRetailV2alphaCompletionDetail", "description": "The main auto-completion details related to the event. This field should be set for `search` event when autocomplete function is enabled and the user clicks a suggestion for search." }, + "entity": { + "description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. We recommend that you set this field to get better per-entity search, completion, and prediction results.", + "type": "string" + }, "eventTime": { "description": "Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.", "format": "google-datetime", @@ -5865,6 +7185,23 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaCreateMerchantCenterAccountLinkMetadata": { + "description": "Common metadata related to the progress of the operations.", + "id": "GoogleCloudRetailV2betaCreateMerchantCenterAccountLinkMetadata", + "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" + }, "GoogleCloudRetailV2betaCreateModelMetadata": { "description": "Metadata associated with a create operation.", "id": "GoogleCloudRetailV2betaCreateModelMetadata", @@ -5876,6 +7213,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", @@ -6003,6 +7362,7 @@ "type": "string" }, "requestId": { + "deprecated": true, "description": "Deprecated. This field is never set.", "type": "string" }, @@ -6059,6 +7419,89 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaMerchantCenterAccountLink": { + "description": "Represents a link between a Merchant Center account and a branch. After a link is established, products from the linked Merchant Center account are streamed to the linked branch.", + "id": "GoogleCloudRetailV2betaMerchantCenterAccountLink", + "properties": { + "branchId": { + "description": "Required. The branch ID (e.g. 0/1/2) within the catalog that products from merchant_center_account_id are streamed to. When updating this field, an empty value will use the currently configured default branch. However, changing the default branch later on won't change the linked branch here. A single branch ID can only have one linked Merchant Center account ID.", + "type": "string" + }, + "feedFilters": { + "description": "Criteria for the Merchant Center feeds to be ingested via the link. All offers will be ingested if the list is empty. Otherwise the offers will be ingested from selected feeds.", + "items": { + "$ref": "GoogleCloudRetailV2betaMerchantCenterAccountLinkMerchantCenterFeedFilter" + }, + "type": "array" + }, + "feedLabel": { + "description": "The FeedLabel used to perform filtering. Note: this replaces [region_id](https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.feed_label). Example value: `US`. Example value: `FeedLabel1`.", + "type": "string" + }, + "id": { + "description": "Output only. Immutable. MerchantCenterAccountLink identifier, which is the final component of name. This field is auto generated and follows the convention: `BranchId_MerchantCenterAccountId`. `projects/*/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/id_1`.", + "readOnly": true, + "type": "string" + }, + "languageCode": { + "description": "Language of the title/description and other string attributes. Use language tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). ISO 639-1. This specifies the language of offers in Merchant Center that will be accepted. If empty, no language filtering will be performed. Example value: `en`.", + "type": "string" + }, + "merchantCenterAccountId": { + "description": "Required. The linked [Merchant center account id](https://developers.google.com/shopping-content/guides/accountstatuses). The account must be a standalone account or a sub-account of a MCA.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Output only. Immutable. Full resource name of the Merchant Center Account Link, such as `projects/*/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/merchant_center_account_link`.", + "readOnly": true, + "type": "string" + }, + "projectId": { + "description": "Output only. Google Cloud project ID.", + "readOnly": true, + "type": "string" + }, + "source": { + "description": "Optional. An optional arbitrary string that could be used as a tag for tracking link source.", + "type": "string" + }, + "state": { + "description": "Output only. Represents the state of the link.", + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "ACTIVE", + "FAILED" + ], + "enumDescriptions": [ + "Default value.", + "Link is created and LRO is not complete.", + "Link is active.", + "Link creation failed." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaMerchantCenterAccountLinkMerchantCenterFeedFilter": { + "description": "Merchant Center Feed filter criterion.", + "id": "GoogleCloudRetailV2betaMerchantCenterAccountLinkMerchantCenterFeedFilter", + "properties": { + "primaryFeedId": { + "description": "Merchant Center primary feed ID.", + "format": "int64", + "type": "string" + }, + "primaryFeedName": { + "description": "Merchant Center primary feed name. The name is used for the display purposes only.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaModel": { "description": "Metadata that describes the training and serving parameters of a Model. A Model can be associated with a ServingConfig and then queried through the Predict API.", "id": "GoogleCloudRetailV2betaModel", @@ -6108,6 +7551,10 @@ "readOnly": true, "type": "string" }, + "modelFeaturesConfig": { + "$ref": "GoogleCloudRetailV2betaModelModelFeaturesConfig", + "description": "Optional. Additional model features config." + }, "name": { "description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", "type": "string" @@ -6189,6 +7636,38 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig": { + "description": "Additional configs for the frequently-bought-together model type.", + "id": "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig", + "properties": { + "contextProductsType": { + "description": "Optional. Specifies the context of the model when it is used in predict requests. Can only be set for the `frequently-bought-together` type. If it isn't specified, it defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "enum": [ + "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", + "SINGLE_CONTEXT_PRODUCT", + "MULTIPLE_CONTEXT_PRODUCTS" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", + "Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaModelModelFeaturesConfig": { + "description": "Additional model features config.", + "id": "GoogleCloudRetailV2betaModelModelFeaturesConfig", + "properties": { + "frequentlyBoughtTogetherConfig": { + "$ref": "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig", + "description": "Additional configs for frequently-bought-together models." + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaModelServingConfigList": { "description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", "id": "GoogleCloudRetailV2betaModelServingConfigList", @@ -6230,6 +7709,52 @@ "properties": {}, "type": "object" }, + "GoogleCloudRetailV2betaPurgeProductsMetadata": { + "description": "Metadata related to the progress of the PurgeProducts operation. This will be returned by the google.longrunning.Operation.metadata field.", + "id": "GoogleCloudRetailV2betaPurgeProductsMetadata", + "properties": { + "createTime": { + "description": "Operation create time.", + "format": "google-datetime", + "type": "string" + }, + "failureCount": { + "description": "Count of entries that encountered errors while processing.", + "format": "int64", + "type": "string" + }, + "successCount": { + "description": "Count of entries that were deleted successfully.", + "format": "int64", + "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" + }, + "GoogleCloudRetailV2betaPurgeProductsResponse": { + "description": "Response of the PurgeProductsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", + "id": "GoogleCloudRetailV2betaPurgeProductsResponse", + "properties": { + "purgeCount": { + "description": "The total count of products purged as a result of the operation.", + "format": "int64", + "type": "string" + }, + "purgeSample": { + "description": "A sample of the product names that will be deleted. Only populated if `force` is set to false. A max of 100 names will be returned and the names are chosen at random.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaPurgeUserEventsResponse": { "description": "Response of the PurgeUserEventsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", "id": "GoogleCloudRetailV2betaPurgeUserEventsResponse", @@ -6377,7 +7902,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" } }, @@ -6440,7 +7965,7 @@ } }, "servicePath": "", - "title": "Retail API", + "title": "Vertex AI Search for Retail API", "version": "v2alpha", "version_module": true } \ No newline at end of file diff --git a/etc/api/retail/v2beta/retail-api.json b/etc/api/retail/v2beta/retail-api.json index 6086ad8652..9448dec32d 100644 --- a/etc/api/retail/v2beta/retail-api.json +++ b/etc/api/retail/v2beta/retail-api.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", "fullyEncodeReservedExpansion": true, @@ -137,6 +137,11 @@ "location": "query", "type": "string" }, + "entity": { + "description": "The entity for customers who run multiple entities, domains, sites, or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it must be an exact match with UserEvent.entity to get per-entity autocomplete results.", + "location": "query", + "type": "string" + }, "languageCodes": { "description": "Note that this field applies for `user-data` dataset only. For requests with `cloud-retail` dataset, setting this field has no effect. The language filters applied to the output suggestions. If set, it should contain the language of the query. If not set, suggestions are returned without considering language restrictions. This is the BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum number of language codes is 3.", "location": "query", @@ -168,6 +173,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": "v2beta/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": "v2beta/{+catalog}:exportAnalyticsMetrics", + "request": { + "$ref": "GoogleCloudRetailV2betaExportAnalyticsMetricsRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getAttributesConfig": { "description": "Gets an AttributesConfig.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig", @@ -561,7 +594,7 @@ "products": { "methods": { "addFulfillmentPlaces": { - "description": "Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", + "description": "We recommend that you use the ProductService.AddLocalInventories method instead of the ProductService.AddFulfillmentPlaces method. ProductService.AddLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addFulfillmentPlaces", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.addFulfillmentPlaces", @@ -589,7 +622,7 @@ ] }, "addLocalInventories": { - "description": "Updates local inventory information for a Product at a list of places, while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating inventory information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. Local inventory information can only be modified using this method. ProductService.CreateProduct and ProductService.UpdateProduct has no effect on local inventories. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", + "description": "Updates local inventory information for a Product at a list of places, while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating inventory information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. Local inventory information can only be modified using this method. ProductService.CreateProduct and ProductService.UpdateProduct has no effect on local inventories. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addLocalInventories", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.addLocalInventories", @@ -813,8 +846,36 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "purge": { + "description": "Permanently deletes all selected Products under a branch. This process is asynchronous. If the request is valid, the removal will be enqueued and processed offline. Depending on the number of Products, this operation could take hours to complete. Before the operation completes, some Products may still be returned by ProductService.GetProduct or ProductService.ListProducts. Depending on the number of Products, this operation could take hours to complete. To get a sample of Products that would be deleted, set PurgeProductsRequest.force to false.", + "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products:purge", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.branches.products.purge", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The resource name of the branch under which the products are created. The format is `projects/${projectId}/locations/global/catalogs/${catalogId}/branches/${branchId}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2beta/{+parent}/products:purge", + "request": { + "$ref": "GoogleCloudRetailV2betaPurgeProductsRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "removeFulfillmentPlaces": { - "description": "Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", + "description": "We recommend that you use the ProductService.RemoveLocalInventories method instead of the ProductService.RemoveFulfillmentPlaces method. ProductService.RemoveLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeFulfillmentPlaces", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.removeFulfillmentPlaces", @@ -842,7 +903,7 @@ ] }, "removeLocalInventories": { - "description": "Remove local inventory information for a Product at a list of places at a removal timestamp. This process is asynchronous. If the request is valid, the removal will be enqueued and processed downstream. As a consequence, when a response is returned, removals are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. Local inventory information can only be removed using this method. ProductService.CreateProduct and ProductService.UpdateProduct has no effect on local inventories. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", + "description": "Remove local inventory information for a Product at a list of places at a removal timestamp. This process is asynchronous. If the request is valid, the removal will be enqueued and processed downstream. As a consequence, when a response is returned, removals are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. Local inventory information can only be removed using this method. ProductService.CreateProduct and ProductService.UpdateProduct has no effect on local inventories. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeLocalInventories", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.removeLocalInventories", @@ -870,7 +931,7 @@ ] }, "setInventory": { - "description": "Updates inventory information for a Product while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update is enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. When inventory is updated with ProductService.CreateProduct and ProductService.UpdateProduct, the specified inventory field value(s) overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update times for the specified inventory fields are overwritten by the times of the ProductService.CreateProduct or ProductService.UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product is used. If no inventory fields are set in SetInventoryRequest.set_mask, then any existing inventory information is preserved. Pre-existing inventory information can only be updated with ProductService.SetInventory, ProductService.AddFulfillmentPlaces, and ProductService.RemoveFulfillmentPlaces. The returned Operations is obsolete after one day, and the GetOperation API returns `NOT_FOUND` afterwards. If conflicting updates are issued, the Operations associated with the stale updates are not marked as done until they are obsolete. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", + "description": "Updates inventory information for a Product while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update is enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. When inventory is updated with ProductService.CreateProduct and ProductService.UpdateProduct, the specified inventory field value(s) overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update times for the specified inventory fields are overwritten by the times of the ProductService.CreateProduct or ProductService.UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product is used. If no inventory fields are set in SetInventoryRequest.set_mask, then any existing inventory information is preserved. Pre-existing inventory information can only be updated with ProductService.SetInventory, ProductService.AddFulfillmentPlaces, and ProductService.RemoveFulfillmentPlaces. The returned Operations is obsolete after one day, and the GetOperation API returns `NOT_FOUND` afterwards. If conflicting updates are issued, the Operations associated with the stale updates are not marked as done until they are obsolete.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:setInventory", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.setInventory", @@ -1155,6 +1216,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "get": { + "description": "Gets a model.", + "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.models.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the Model to get. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog}/models/{model_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2beta/{+name}", + "response": { + "$ref": "GoogleCloudRetailV2betaModel" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists all the models linked to this event store.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models", @@ -1339,7 +1425,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/operations", "httpMethod": "GET", "id": "retail.projects.locations.catalogs.operations.list", @@ -1421,7 +1507,7 @@ ], "parameters": { "placement": { - "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that will be used to make the search.", + "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", "required": true, @@ -1690,7 +1776,7 @@ ], "parameters": { "placement": { - "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that will be used to make the search.", + "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", "required": true, @@ -1912,7 +1998,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "retail.projects.locations.operations.list", @@ -1984,7 +2070,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v2beta/projects/{projectsId}/operations", "httpMethod": "GET", "id": "retail.projects.operations.list", @@ -2029,7 +2115,7 @@ } } }, - "revision": "20230117", + "revision": "20240222", "rootUrl": "https://retail.googleapis.com/", "schemas": { "GoogleApiHttpBody": { @@ -2206,6 +2292,93 @@ "properties": {}, "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" + }, + "GoogleCloudRetailV2CreateModelMetadata": { + "description": "Metadata associated with a create operation.", + "id": "GoogleCloudRetailV2CreateModelMetadata", + "properties": { + "model": { + "description": "The resource name of the model that this create applies to. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", + "type": "string" + } + }, + "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" + }, + "GoogleCloudRetailV2GcsOutputResult": { + "description": "A Gcs output result.", + "id": "GoogleCloudRetailV2GcsOutputResult", + "properties": { + "outputUri": { + "description": "The uri of Gcs output", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2ImportCompletionDataResponse": { "description": "Response of the ImportCompletionDataRequest. If the long running operation is done, this message is returned by the google.longrunning.Operations.response field if the operation is successful.", "id": "GoogleCloudRetailV2ImportCompletionDataResponse", @@ -2250,6 +2423,7 @@ "type": "string" }, "requestId": { + "deprecated": true, "description": "Deprecated. This field is never set.", "type": "string" }, @@ -2306,12 +2480,259 @@ }, "type": "object" }, + "GoogleCloudRetailV2Model": { + "description": "Metadata that describes the training and serving parameters of a Model. A Model can be associated with a ServingConfig and then queried through the Predict API.", + "id": "GoogleCloudRetailV2Model", + "properties": { + "createTime": { + "description": "Output only. Timestamp the Recommendation Model was created at.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "dataState": { + "description": "Output only. The state of data requirements for this model: `DATA_OK` and `DATA_ERROR`. Recommendation model cannot be trained if the data is in `DATA_ERROR` state. Recommendation model can have `DATA_ERROR` state even if serving state is `ACTIVE`: models were trained successfully before, but cannot be refreshed because model no longer has sufficient data for training.", + "enum": [ + "DATA_STATE_UNSPECIFIED", + "DATA_OK", + "DATA_ERROR" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set.", + "The model has sufficient training data.", + "The model does not have sufficient training data. Error messages can be queried via Stackdriver." + ], + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Required. The display name of the model. Should be human readable, used to display Recommendation Models in the Retail Cloud Console Dashboard. UTF-8 encoded string with limit of 1024 characters.", + "type": "string" + }, + "filteringOption": { + "description": "Optional. If `RECOMMENDATIONS_FILTERING_ENABLED`, recommendation filtering by attributes is enabled for the model.", + "enum": [ + "RECOMMENDATIONS_FILTERING_OPTION_UNSPECIFIED", + "RECOMMENDATIONS_FILTERING_DISABLED", + "RECOMMENDATIONS_FILTERING_ENABLED" + ], + "enumDescriptions": [ + "Value used when unset. In this case, server behavior defaults to RECOMMENDATIONS_FILTERING_DISABLED.", + "Recommendation filtering is disabled.", + "Recommendation filtering is enabled." + ], + "type": "string" + }, + "lastTuneTime": { + "description": "Output only. The timestamp when the latest successful tune finished.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "modelFeaturesConfig": { + "$ref": "GoogleCloudRetailV2ModelModelFeaturesConfig", + "description": "Optional. Additional model features config." + }, + "name": { + "description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", + "type": "string" + }, + "optimizationObjective": { + "description": "Optional. The optimization objective e.g. `cvr`. Currently supported values: `ctr`, `cvr`, `revenue-per-order`. If not specified, we choose default based on model type. Default depends on type of recommendation: `recommended-for-you` => `ctr` `others-you-may-like` => `ctr` `frequently-bought-together` => `revenue_per_order` This field together with optimization_objective describe model metadata to use to control model training and serving. See https://cloud.google.com/retail/docs/models for more details on what the model metadata control and which combination of parameters are valid. For invalid combinations of parameters (e.g. type = `frequently-bought-together` and optimization_objective = `ctr`), you receive an error 400 if you try to create/update a recommendation with this set of knobs.", + "type": "string" + }, + "periodicTuningState": { + "description": "Optional. The state of periodic tuning. The period we use is 3 months - to do a one-off tune earlier use the `TuneModel` method. Default value is `PERIODIC_TUNING_ENABLED`.", + "enum": [ + "PERIODIC_TUNING_STATE_UNSPECIFIED", + "PERIODIC_TUNING_DISABLED", + "ALL_TUNING_DISABLED", + "PERIODIC_TUNING_ENABLED" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set.", + "The model has periodic tuning disabled. Tuning can be reenabled by calling the `EnableModelPeriodicTuning` method or by calling the `TuneModel` method.", + "The model cannot be tuned with periodic tuning OR the `TuneModel` method. Hide the options in customer UI and reject any requests through the backend self serve API.", + "The model has periodic tuning enabled. Tuning can be disabled by calling the `DisableModelPeriodicTuning` method." + ], + "type": "string" + }, + "servingConfigLists": { + "description": "Output only. The list of valid serving configs associated with the PageOptimizationConfig.", + "items": { + "$ref": "GoogleCloudRetailV2ModelServingConfigList" + }, + "readOnly": true, + "type": "array" + }, + "servingState": { + "description": "Output only. The serving state of the model: `ACTIVE`, `NOT_ACTIVE`.", + "enum": [ + "SERVING_STATE_UNSPECIFIED", + "INACTIVE", + "ACTIVE", + "TUNED" + ], + "enumDescriptions": [ + "Unspecified serving state.", + "The model is not serving.", + "The model is serving and can be queried.", + "The model is trained on tuned hyperparameters and can be queried." + ], + "readOnly": true, + "type": "string" + }, + "trainingState": { + "description": "Optional. The training state that the model is in (e.g. `TRAINING` or `PAUSED`). Since part of the cost of running the service is frequency of training - this can be used to determine when to train model in order to control cost. If not specified: the default value for `CreateModel` method is `TRAINING`. The default value for `UpdateModel` method is to keep the state the same as before.", + "enum": [ + "TRAINING_STATE_UNSPECIFIED", + "PAUSED", + "TRAINING" + ], + "enumDescriptions": [ + "Unspecified training state.", + "The model training is paused.", + "The model is training." + ], + "type": "string" + }, + "tuningOperation": { + "description": "Output only. The tune operation associated with the model. Can be used to determine if there is an ongoing tune for this recommendation. Empty field implies no tune is goig on.", + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Required. The type of model e.g. `home-page`. Currently supported values: `recommended-for-you`, `others-you-may-like`, `frequently-bought-together`, `page-optimization`, `similar-items`, `buy-it-again`, `on-sale-items`, and `recently-viewed`(readonly value). This field together with optimization_objective describe model metadata to use to control model training and serving. See https://cloud.google.com/retail/docs/models for more details on what the model metadata control and which combination of parameters are valid. For invalid combinations of parameters (e.g. type = `frequently-bought-together` and optimization_objective = `ctr`), you receive an error 400 if you try to create/update a recommendation with this set of knobs.", + "type": "string" + }, + "updateTime": { + "description": "Output only. Timestamp the Recommendation Model was last updated. E.g. if a Recommendation Model was paused - this would be the time the pause was initiated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig": { + "description": "Additional configs for the frequently-bought-together model type.", + "id": "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig", + "properties": { + "contextProductsType": { + "description": "Optional. Specifies the context of the model when it is used in predict requests. Can only be set for the `frequently-bought-together` type. If it isn't specified, it defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "enum": [ + "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", + "SINGLE_CONTEXT_PRODUCT", + "MULTIPLE_CONTEXT_PRODUCTS" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", + "Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ModelModelFeaturesConfig": { + "description": "Additional model features config.", + "id": "GoogleCloudRetailV2ModelModelFeaturesConfig", + "properties": { + "frequentlyBoughtTogetherConfig": { + "$ref": "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig", + "description": "Additional configs for frequently-bought-together models." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ModelServingConfigList": { + "description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", + "id": "GoogleCloudRetailV2ModelServingConfigList", + "properties": { + "servingConfigIds": { + "description": "Optional. A set of valid serving configs that may be used for `PAGE_OPTIMIZATION`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "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" + }, "GoogleCloudRetailV2PurgeMetadata": { "description": "Metadata related to the progress of the Purge operation. This will be returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2PurgeMetadata", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2PurgeProductsMetadata": { + "description": "Metadata related to the progress of the PurgeProducts operation. This will be returned by the google.longrunning.Operation.metadata field.", + "id": "GoogleCloudRetailV2PurgeProductsMetadata", + "properties": { + "createTime": { + "description": "Operation create time.", + "format": "google-datetime", + "type": "string" + }, + "failureCount": { + "description": "Count of entries that encountered errors while processing.", + "format": "int64", + "type": "string" + }, + "successCount": { + "description": "Count of entries that were deleted successfully.", + "format": "int64", + "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" + }, + "GoogleCloudRetailV2PurgeProductsResponse": { + "description": "Response of the PurgeProductsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", + "id": "GoogleCloudRetailV2PurgeProductsResponse", + "properties": { + "purgeCount": { + "description": "The total count of products purged as a result of the operation.", + "format": "int64", + "type": "string" + }, + "purgeSample": { + "description": "A sample of the product names that will be deleted. Only populated if `force` is set to false. A max of 100 names will be returned and the names are chosen at random.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2PurgeUserEventsResponse": { "description": "Response of the PurgeUserEventsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", "id": "GoogleCloudRetailV2PurgeUserEventsResponse", @@ -2378,6 +2799,23 @@ "properties": {}, "type": "object" }, + "GoogleCloudRetailV2TuneModelMetadata": { + "description": "Metadata associated with a tune operation.", + "id": "GoogleCloudRetailV2TuneModelMetadata", + "properties": { + "model": { + "description": "The resource name of the model that this tune applies to. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2TuneModelResponse": { + "description": "Response associated with a tune operation.", + "id": "GoogleCloudRetailV2TuneModelResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2UserEventImportSummary": { "description": "A summary of import result. The UserEventImportSummary summarizes the import status for user events.", "id": "GoogleCloudRetailV2UserEventImportSummary", @@ -2434,6 +2872,23 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaCreateMerchantCenterAccountLinkMetadata": { + "description": "Common metadata related to the progress of the operations.", + "id": "GoogleCloudRetailV2alphaCreateMerchantCenterAccountLinkMetadata", + "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" + }, "GoogleCloudRetailV2alphaCreateModelMetadata": { "description": "Metadata associated with a create operation.", "id": "GoogleCloudRetailV2alphaCreateModelMetadata", @@ -2445,6 +2900,55 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaEnrollSolutionMetadata": { + "description": "Metadata related to the EnrollSolution method. This will be returned by the google.longrunning.Operation.metadata field.", + "id": "GoogleCloudRetailV2alphaEnrollSolutionMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2alphaEnrollSolutionResponse": { + "description": "Response for EnrollSolution method.", + "id": "GoogleCloudRetailV2alphaEnrollSolutionResponse", + "properties": { + "enrolledSolution": { + "description": "Retail API solution that the project has enrolled.", + "enum": [ + "SOLUTION_TYPE_UNSPECIFIED", + "SOLUTION_TYPE_RECOMMENDATION", + "SOLUTION_TYPE_SEARCH" + ], + "enumDescriptions": [ + "Default value.", + "Used for Recommendations AI.", + "Used for Retail Search." + ], + "type": "string" + } + }, + "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", @@ -2572,6 +3076,7 @@ "type": "string" }, "requestId": { + "deprecated": true, "description": "Deprecated. This field is never set.", "type": "string" }, @@ -2632,6 +3137,89 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaMerchantCenterAccountLink": { + "description": "Represents a link between a Merchant Center account and a branch. After a link is established, products from the linked Merchant Center account are streamed to the linked branch.", + "id": "GoogleCloudRetailV2alphaMerchantCenterAccountLink", + "properties": { + "branchId": { + "description": "Required. The branch ID (e.g. 0/1/2) within the catalog that products from merchant_center_account_id are streamed to. When updating this field, an empty value will use the currently configured default branch. However, changing the default branch later on won't change the linked branch here. A single branch ID can only have one linked Merchant Center account ID.", + "type": "string" + }, + "feedFilters": { + "description": "Criteria for the Merchant Center feeds to be ingested via the link. All offers will be ingested if the list is empty. Otherwise the offers will be ingested from selected feeds.", + "items": { + "$ref": "GoogleCloudRetailV2alphaMerchantCenterAccountLinkMerchantCenterFeedFilter" + }, + "type": "array" + }, + "feedLabel": { + "description": "The FeedLabel used to perform filtering. Note: this replaces [region_id](https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.feed_label). Example value: `US`. Example value: `FeedLabel1`.", + "type": "string" + }, + "id": { + "description": "Output only. Immutable. MerchantCenterAccountLink identifier, which is the final component of name. This field is auto generated and follows the convention: `BranchId_MerchantCenterAccountId`. `projects/*/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/id_1`.", + "readOnly": true, + "type": "string" + }, + "languageCode": { + "description": "Language of the title/description and other string attributes. Use language tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). ISO 639-1. This specifies the language of offers in Merchant Center that will be accepted. If empty, no language filtering will be performed. Example value: `en`.", + "type": "string" + }, + "merchantCenterAccountId": { + "description": "Required. The linked [Merchant center account id](https://developers.google.com/shopping-content/guides/accountstatuses). The account must be a standalone account or a sub-account of a MCA.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Output only. Immutable. Full resource name of the Merchant Center Account Link, such as `projects/*/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/merchant_center_account_link`.", + "readOnly": true, + "type": "string" + }, + "projectId": { + "description": "Output only. Google Cloud project ID.", + "readOnly": true, + "type": "string" + }, + "source": { + "description": "Optional. An optional arbitrary string that could be used as a tag for tracking link source.", + "type": "string" + }, + "state": { + "description": "Output only. Represents the state of the link.", + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "ACTIVE", + "FAILED" + ], + "enumDescriptions": [ + "Default value.", + "Link is created and LRO is not complete.", + "Link is active.", + "Link creation failed." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaMerchantCenterAccountLinkMerchantCenterFeedFilter": { + "description": "Merchant Center Feed filter criterion.", + "id": "GoogleCloudRetailV2alphaMerchantCenterAccountLinkMerchantCenterFeedFilter", + "properties": { + "primaryFeedId": { + "description": "Merchant Center primary feed ID.", + "format": "int64", + "type": "string" + }, + "primaryFeedName": { + "description": "Merchant Center primary feed name. The name is used for the display purposes only.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaModel": { "description": "Metadata that describes the training and serving parameters of a Model. A Model can be associated with a ServingConfig and then queried through the Predict API.", "id": "GoogleCloudRetailV2alphaModel", @@ -2681,6 +3269,10 @@ "readOnly": true, "type": "string" }, + "modelFeaturesConfig": { + "$ref": "GoogleCloudRetailV2alphaModelModelFeaturesConfig", + "description": "Optional. Additional model features config." + }, "name": { "description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", "type": "string" @@ -2766,6 +3358,38 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig": { + "description": "Additional configs for the frequently-bought-together model type.", + "id": "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig", + "properties": { + "contextProductsType": { + "description": "Optional. Specifies the context of the model when it is used in predict requests. Can only be set for the `frequently-bought-together` type. If it isn't specified, it defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "enum": [ + "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", + "SINGLE_CONTEXT_PRODUCT", + "MULTIPLE_CONTEXT_PRODUCTS" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", + "Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaModelModelFeaturesConfig": { + "description": "Additional model features config.", + "id": "GoogleCloudRetailV2alphaModelModelFeaturesConfig", + "properties": { + "frequentlyBoughtTogetherConfig": { + "$ref": "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig", + "description": "Additional configs for frequently-bought-together models." + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaModelPageOptimizationConfig": { "description": "The PageOptimizationConfig for model training. This determines how many panels to optimize for, and which serving configs to consider for each panel. The purpose of this model is to optimize which ServingConfig to show on which panels in way that optimizes the visitors shopping journey.", "id": "GoogleCloudRetailV2alphaModelPageOptimizationConfig", @@ -3249,7 +3873,7 @@ "id": "GoogleCloudRetailV2betaBigQuerySource", "properties": { "dataSchema": { - "description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: The schema is available here: https://support.google.com/analytics/answer/3437719. * `user_event_ga4`: The schema is available here: https://support.google.com/analytics/answer/7029846. Supported values for auto-completion imports: * `suggestions` (default): One JSON completion suggestion per line. * `denylist`: One JSON deny suggestion per line. * `allowlist`: One JSON allow suggestion per line.", + "description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: The schema is available here: https://support.google.com/analytics/answer/3437719. * `user_event_ga4`: The schema is available here: https://support.google.com/analytics/answer/7029846. Supported values for autocomplete imports: * `suggestions` (default): One JSON completion suggestion per line. * `denylist`: One JSON deny suggestion per line. * `allowlist`: One JSON allow suggestion per line.", "type": "string" }, "datasetId": { @@ -3285,7 +3909,7 @@ }, "merchantCenterLinkingConfig": { "$ref": "GoogleCloudRetailV2betaMerchantCenterLinkingConfig", - "description": "The Merchant Center linking configuration. Once a link is added, the data stream from Merchant Center to Cloud Retail will be enabled automatically. The requester must have access to the merchant center account in order to make changes to this field." + "description": "The Merchant Center linking configuration. After a link is added, the data stream from Merchant Center to Cloud Retail will be enabled automatically. The requester must have access to the Merchant Center account in order to make changes to this field." }, "name": { "description": "Required. Immutable. The fully qualified resource name of the catalog.", @@ -3330,13 +3954,17 @@ ], "type": "string" }, + "facetConfig": { + "$ref": "GoogleCloudRetailV2betaCatalogAttributeFacetConfig", + "description": "Contains facet options." + }, "inUse": { "description": "Output only. Indicates whether this attribute has been used by any products. `True` if at least one Product is using this attribute in Product.attributes. Otherwise, this field is `False`. CatalogAttribute can be pre-loaded by using CatalogService.AddCatalogAttribute, CatalogService.ImportCatalogAttributes, or CatalogService.UpdateAttributesConfig APIs. This field is `False` for pre-loaded CatalogAttributes. Only pre-loaded catalog attributes that are neither in use by products nor predefined can be deleted. Catalog attributes that are either in use by products or are predefined attributes cannot be deleted; however, their configuration properties will reset to default values upon removal request. After catalog changes, it takes about 10 minutes for this field to update.", "readOnly": true, "type": "boolean" }, "indexableOption": { - "description": "When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if INDEXABLE_ENABLED attribute values are indexed so that it can be filtered, faceted, or boosted in SearchService.Search. Must be specified, otherwise throws INVALID_FORMAT error.", + "description": "When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if INDEXABLE_ENABLED attribute values are indexed so that it can be filtered, faceted, or boosted in SearchService.Search. Must be specified when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.", "enum": [ "INDEXABLE_OPTION_UNSPECIFIED", "INDEXABLE_ENABLED", @@ -3382,7 +4010,7 @@ "type": "string" }, "searchableOption": { - "description": "When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if SEARCHABLE_ENABLED, attribute values are searchable by text queries in SearchService.Search. If SEARCHABLE_ENABLED but attribute type is numerical, attribute values will not be searchable by text queries in SearchService.Search, as there are no text values associated to numerical attributes. Must be specified, otherwise throws INVALID_FORMAT error.", + "description": "When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if SEARCHABLE_ENABLED, attribute values are searchable by text queries in SearchService.Search. If SEARCHABLE_ENABLED but attribute type is numerical, attribute values will not be searchable by text queries in SearchService.Search, as there are no text values associated to numerical attributes. Must be specified, when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.", "enum": [ "SEARCHABLE_OPTION_UNSPECIFIED", "SEARCHABLE_ENABLED", @@ -3413,6 +4041,121 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaCatalogAttributeFacetConfig": { + "description": "Possible options for the facet that corresponds to the current attribute config.", + "id": "GoogleCloudRetailV2betaCatalogAttributeFacetConfig", + "properties": { + "facetIntervals": { + "description": "If you don't set the facet SearchRequest.FacetSpec.FacetKey.intervals in the request to a numerical attribute, then we use the computed intervals with rounded bounds obtained from all its product numerical attribute values. The computed intervals might not be ideal for some attributes. Therefore, we give you the option to overwrite them with the facet_intervals field. The maximum of facet intervals per CatalogAttribute is 40. Each interval must have a lower bound or an upper bound. If both bounds are provided, then the lower bound must be smaller or equal than the upper bound.", + "items": { + "$ref": "GoogleCloudRetailV2betaInterval" + }, + "type": "array" + }, + "ignoredFacetValues": { + "description": "Each instance represents a list of attribute values to ignore as facet values for a specific time range. The maximum number of instances per CatalogAttribute is 25.", + "items": { + "$ref": "GoogleCloudRetailV2betaCatalogAttributeFacetConfigIgnoredFacetValues" + }, + "type": "array" + }, + "mergedFacet": { + "$ref": "GoogleCloudRetailV2betaCatalogAttributeFacetConfigMergedFacet", + "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": "GoogleCloudRetailV2betaCatalogAttributeFacetConfigMergedFacetValue" + }, + "type": "array" + }, + "rerankConfig": { + "$ref": "GoogleCloudRetailV2betaCatalogAttributeFacetConfigRerankConfig", + "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" + }, + "GoogleCloudRetailV2betaCatalogAttributeFacetConfigIgnoredFacetValues": { + "description": "Facet values to ignore on facets during the specified time range for the given SearchResponse.Facet.key attribute.", + "id": "GoogleCloudRetailV2betaCatalogAttributeFacetConfigIgnoredFacetValues", + "properties": { + "endTime": { + "description": "If start time is empty and end time is not empty, then ignore these facet values before end time.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "Time range for the current list of facet values to ignore. If multiple time ranges are specified for an facet value for the current attribute, consider all of them. If both are empty, ignore always. If start time and end time are set, then start time must be before end time. If start time is not empty and end time is empty, then will ignore these facet values after the start time.", + "format": "google-datetime", + "type": "string" + }, + "values": { + "description": "List of facet values to ignore for the following time range. The facet values are the same as the attribute values. There is a limit of 10 values per instance of IgnoredFacetValues. Each value can have at most 128 characters.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaCatalogAttributeFacetConfigMergedFacet": { + "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": "GoogleCloudRetailV2betaCatalogAttributeFacetConfigMergedFacet", + "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": "GoogleCloudRetailV2betaCatalogAttributeFacetConfigMergedFacetValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaCatalogAttributeFacetConfigMergedFacetValue": { + "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": "GoogleCloudRetailV2betaCatalogAttributeFacetConfigMergedFacetValue", + "properties": { + "mergedValue": { + "description": "All the previous values are replaced by this merged facet value. This merged_value must be non-empty and can have up to 128 characters.", + "type": "string" + }, + "values": { + "description": "All the facet values that are replaces by the same merged_value that follows. The maximum number of values per MergedFacetValue is 25. Each value can have up to 128 characters.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaCatalogAttributeFacetConfigRerankConfig": { + "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": "GoogleCloudRetailV2betaCatalogAttributeFacetConfigRerankConfig", + "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" + }, "GoogleCloudRetailV2betaColorInfo": { "description": "The color information of a Product.", "id": "GoogleCloudRetailV2betaColorInfo", @@ -3435,7 +4178,7 @@ "type": "object" }, "GoogleCloudRetailV2betaCompleteQueryResponse": { - "description": "Response of the auto-complete query.", + "description": "Response of the autocomplete query.", "id": "GoogleCloudRetailV2betaCompleteQueryResponse", "properties": { "attributionToken": { @@ -3450,7 +4193,8 @@ "type": "array" }, "recentSearchResults": { - "description": "Matched recent searches of this user. The maximum number of recent searches is 10. This field is a restricted feature. Contact Retail Search support team if you are interested in enabling it. This feature is only available when CompleteQueryRequest.visitor_id field is set and UserEvent is imported. The recent searches satisfy the follow rules: * They are ordered from latest to oldest. * They are matched with CompleteQueryRequest.query case insensitively. * They are transformed to lower case. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", + "deprecated": true, + "description": "Deprecated. Matched recent searches of this user. The maximum number of recent searches is 10. This field is a restricted feature. If you want to enable it, contact Retail Search support. This feature is only available when CompleteQueryRequest.visitor_id field is set and UserEvent is imported. The recent searches satisfy the follow rules: * They are ordered from latest to oldest. * They are matched with CompleteQueryRequest.query case insensitively. * They are transformed to lower case. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", "items": { "$ref": "GoogleCloudRetailV2betaCompleteQueryResponseRecentSearchResult" }, @@ -3478,6 +4222,7 @@ "type": "object" }, "GoogleCloudRetailV2betaCompleteQueryResponseRecentSearchResult": { + "deprecated": true, "description": "Recent search of this user.", "id": "GoogleCloudRetailV2betaCompleteQueryResponseRecentSearchResult", "properties": { @@ -3517,7 +4262,7 @@ "type": "string" }, "lastSuggestionsImportOperation": { - "description": "Output only. Name of the LRO corresponding to the latest suggestion terms list import. Can use GetOperation API to retrieve the latest state of the Long Running Operation.", + "description": "Output only. Name of the LRO corresponding to the latest suggestion terms list import. Can use GetOperation API method to retrieve the latest state of the Long Running Operation.", "readOnly": true, "type": "string" }, @@ -3589,6 +4334,13 @@ }, "type": "array" }, + "pageCategories": { + "description": "Used to support browse uses cases. A list (up to 10 entries) of categories or departments. The format should be the same as UserEvent.page_categories;", + "items": { + "type": "string" + }, + "type": "array" + }, "queryTerms": { "description": "A list (up to 10 entries) of terms to match the query on. If not specified, match all queries. If many query terms are specified, the condition is matched if any of the terms is a match (i.e. using the OR operator).", "items": { @@ -3649,6 +4401,7 @@ }, "facetSpec": { "$ref": "GoogleCloudRetailV2betaSearchRequestFacetSpec", + "deprecated": true, "description": "A facet specification to perform faceted search. Note that this field is deprecated and will throw NOT_IMPLEMENTED if used for creating a control." }, "name": { @@ -3696,6 +4449,23 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaCreateMerchantCenterAccountLinkMetadata": { + "description": "Common metadata related to the progress of the operations.", + "id": "GoogleCloudRetailV2betaCreateMerchantCenterAccountLinkMetadata", + "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" + }, "GoogleCloudRetailV2betaCreateModelMetadata": { "description": "Metadata associated with a create operation.", "id": "GoogleCloudRetailV2betaCreateModelMetadata", @@ -3712,6 +4482,7 @@ "id": "GoogleCloudRetailV2betaCustomAttribute", "properties": { "indexable": { + "deprecated": true, "description": "This field is normally ignored unless AttributesConfig.attribute_config_level of the Catalog is set to the deprecated 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level attribute configuration, see [Configuration modes](https://cloud.google.com/retail/docs/attribute-config#config-modes). If true, custom attribute values are indexed, so that they can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.", "type": "boolean" }, @@ -3724,6 +4495,7 @@ "type": "array" }, "searchable": { + "deprecated": true, "description": "This field is normally ignored unless AttributesConfig.attribute_config_level of the Catalog is set to the deprecated 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level attribute configuration, see [Configuration modes](https://cloud.google.com/retail/docs/attribute-config#config-modes). If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.", "type": "boolean" }, @@ -3737,6 +4509,73 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaExperimentInfo": { + "description": "Metadata for active A/B testing Experiment.", + "id": "GoogleCloudRetailV2betaExperimentInfo", + "properties": { + "experiment": { + "description": "The fully qualified resource name of the experiment that provides the serving config under test, should an active experiment exist. For example: `projects/*/locations/global/catalogs/default_catalog/experiments/experiment_id`", + "type": "string" + }, + "servingConfigExperiment": { + "$ref": "GoogleCloudRetailV2betaExperimentInfoServingConfigExperiment", + "description": "A/B test between existing Cloud Retail Search ServingConfigs." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaExperimentInfoServingConfigExperiment": { + "description": "Metadata for active serving config A/B tests.", + "id": "GoogleCloudRetailV2betaExperimentInfoServingConfigExperiment", + "properties": { + "experimentServingConfig": { + "description": "The fully qualified resource name of the serving config VariantArm.serving_config_id responsible for generating the search response. For example: `projects/*/locations/*/catalogs/*/servingConfigs/*`.", + "type": "string" + }, + "originalServingConfig": { + "description": "The fully qualified resource name of the original SearchRequest.placement in the search request prior to reassignment by experiment API. For example: `projects/*/locations/*/catalogs/*/servingConfigs/*`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaExportAnalyticsMetricsRequest": { + "description": "Request message for the `ExportAnalyticsMetrics` method.", + "id": "GoogleCloudRetailV2betaExportAnalyticsMetricsRequest", + "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": "GoogleCloudRetailV2betaOutputConfig", + "description": "Required. The output location of the data." + } + }, + "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", @@ -3956,6 +4795,7 @@ "type": "string" }, "requestId": { + "deprecated": true, "description": "Deprecated. This field is never set.", "type": "string" }, @@ -3985,7 +4825,7 @@ "description": "Required. The desired input location of the data." }, "notificationPubsubTopic": { - "description": "Full Pub/Sub topic name for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has to be within the same project as ImportProductsRequest.parent. Make sure that `service-@gcp-sa-retail.iam.gserviceaccount.com` has the `pubsub.topics.publish` IAM permission on the topic.", + "description": "Full Pub/Sub topic name for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has to be within the same project as ImportProductsRequest.parent. Make sure that both `cloud-retail-customer-data-access@system.gserviceaccount.com` and `service-@gcp-sa-retail.iam.gserviceaccount.com` have the `pubsub.topics.publish` IAM permission on the topic. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", "type": "string" }, "reconciliationMode": { @@ -4003,11 +4843,12 @@ "type": "string" }, "requestId": { + "deprecated": true, "description": "Deprecated. This field has no effect.", "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" } @@ -4215,6 +5056,89 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaMerchantCenterAccountLink": { + "description": "Represents a link between a Merchant Center account and a branch. After a link is established, products from the linked Merchant Center account are streamed to the linked branch.", + "id": "GoogleCloudRetailV2betaMerchantCenterAccountLink", + "properties": { + "branchId": { + "description": "Required. The branch ID (e.g. 0/1/2) within the catalog that products from merchant_center_account_id are streamed to. When updating this field, an empty value will use the currently configured default branch. However, changing the default branch later on won't change the linked branch here. A single branch ID can only have one linked Merchant Center account ID.", + "type": "string" + }, + "feedFilters": { + "description": "Criteria for the Merchant Center feeds to be ingested via the link. All offers will be ingested if the list is empty. Otherwise the offers will be ingested from selected feeds.", + "items": { + "$ref": "GoogleCloudRetailV2betaMerchantCenterAccountLinkMerchantCenterFeedFilter" + }, + "type": "array" + }, + "feedLabel": { + "description": "The FeedLabel used to perform filtering. Note: this replaces [region_id](https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.feed_label). Example value: `US`. Example value: `FeedLabel1`.", + "type": "string" + }, + "id": { + "description": "Output only. Immutable. MerchantCenterAccountLink identifier, which is the final component of name. This field is auto generated and follows the convention: `BranchId_MerchantCenterAccountId`. `projects/*/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/id_1`.", + "readOnly": true, + "type": "string" + }, + "languageCode": { + "description": "Language of the title/description and other string attributes. Use language tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). ISO 639-1. This specifies the language of offers in Merchant Center that will be accepted. If empty, no language filtering will be performed. Example value: `en`.", + "type": "string" + }, + "merchantCenterAccountId": { + "description": "Required. The linked [Merchant center account id](https://developers.google.com/shopping-content/guides/accountstatuses). The account must be a standalone account or a sub-account of a MCA.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Output only. Immutable. Full resource name of the Merchant Center Account Link, such as `projects/*/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/merchant_center_account_link`.", + "readOnly": true, + "type": "string" + }, + "projectId": { + "description": "Output only. Google Cloud project ID.", + "readOnly": true, + "type": "string" + }, + "source": { + "description": "Optional. An optional arbitrary string that could be used as a tag for tracking link source.", + "type": "string" + }, + "state": { + "description": "Output only. Represents the state of the link.", + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "ACTIVE", + "FAILED" + ], + "enumDescriptions": [ + "Default value.", + "Link is created and LRO is not complete.", + "Link is active.", + "Link creation failed." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaMerchantCenterAccountLinkMerchantCenterFeedFilter": { + "description": "Merchant Center Feed filter criterion.", + "id": "GoogleCloudRetailV2betaMerchantCenterAccountLinkMerchantCenterFeedFilter", + "properties": { + "primaryFeedId": { + "description": "Merchant Center primary feed ID.", + "format": "int64", + "type": "string" + }, + "primaryFeedName": { + "description": "Merchant Center primary feed name. The name is used for the display purposes only.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaMerchantCenterFeedFilter": { "description": "Merchant Center Feed filter criterion.", "id": "GoogleCloudRetailV2betaMerchantCenterFeedFilter", @@ -4232,11 +5156,11 @@ "type": "object" }, "GoogleCloudRetailV2betaMerchantCenterLink": { - "description": "Represents a link between a Merchant Center account and a branch. Once a link is established, products from the linked merchant center account will be streamed to the linked branch.", + "description": "Represents a link between a Merchant Center account and a branch. After a link is established, products from the linked Merchant Center account are streamed to the linked branch.", "id": "GoogleCloudRetailV2betaMerchantCenterLink", "properties": { "branchId": { - "description": "The branch ID (e.g. 0/1/2) within this catalog that products from merchant_center_account_id are streamed to. When updating this field, an empty value will use the currently configured default branch. However, changing the default branch later on won't change the linked branch here. A single branch ID can only have one linked merchant center account ID.", + "description": "The branch ID (e.g. 0/1/2) within this catalog that products from merchant_center_account_id are streamed to. When updating this field, an empty value will use the currently configured default branch. However, changing the default branch later on won't change the linked branch here. A single branch ID can only have one linked Merchant Center account ID.", "type": "string" }, "destinations": { @@ -4258,7 +5182,7 @@ "type": "string" }, "merchantCenterAccountId": { - "description": "Required. The linked [Merchant center account ID](https://developers.google.com/shopping-content/guides/accountstatuses). The account must be a standalone account or a sub-account of a MCA.", + "description": "Required. The linked [Merchant Center account ID](https://developers.google.com/shopping-content/guides/accountstatuses). The account must be a standalone account or a sub-account of a MCA.", "format": "int64", "type": "string" }, @@ -4332,6 +5256,10 @@ "readOnly": true, "type": "string" }, + "modelFeaturesConfig": { + "$ref": "GoogleCloudRetailV2betaModelModelFeaturesConfig", + "description": "Optional. Additional model features config." + }, "name": { "description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", "type": "string" @@ -4413,6 +5341,38 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig": { + "description": "Additional configs for the frequently-bought-together model type.", + "id": "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig", + "properties": { + "contextProductsType": { + "description": "Optional. Specifies the context of the model when it is used in predict requests. Can only be set for the `frequently-bought-together` type. If it isn't specified, it defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "enum": [ + "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", + "SINGLE_CONTEXT_PRODUCT", + "MULTIPLE_CONTEXT_PRODUCTS" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", + "Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaModelModelFeaturesConfig": { + "description": "Additional model features config.", + "id": "GoogleCloudRetailV2betaModelModelFeaturesConfig", + "properties": { + "frequentlyBoughtTogetherConfig": { + "$ref": "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig", + "description": "Additional configs for frequently-bought-together models." + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaModelServingConfigList": { "description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", "id": "GoogleCloudRetailV2betaModelServingConfigList", @@ -4427,6 +5387,51 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaOutputConfig": { + "description": "The output configuration setting.", + "id": "GoogleCloudRetailV2betaOutputConfig", + "properties": { + "bigqueryDestination": { + "$ref": "GoogleCloudRetailV2betaOutputConfigBigQueryDestination", + "description": "The BigQuery location where the output is to be written to." + }, + "gcsDestination": { + "$ref": "GoogleCloudRetailV2betaOutputConfigGcsDestination", + "description": "The Google Cloud Storage location where the output is to be written to." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaOutputConfigBigQueryDestination": { + "description": "The BigQuery output destination configuration.", + "id": "GoogleCloudRetailV2betaOutputConfigBigQueryDestination", + "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" + }, + "GoogleCloudRetailV2betaOutputConfigGcsDestination": { + "description": "The Google Cloud Storage output destination configuration.", + "id": "GoogleCloudRetailV2betaOutputConfigGcsDestination", + "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" + }, "GoogleCloudRetailV2betaOutputResult": { "description": "Output result that stores the information about where the exported data is stored.", "id": "GoogleCloudRetailV2betaOutputResult", @@ -4459,7 +5464,7 @@ "id": "GoogleCloudRetailV2betaPredictRequest", "properties": { "filter": { - "description": "Filter for restricting prediction results with a length limit of 5,000 characters. Accepts values for tags and the `filterOutOfStockItems` flag. * Tag expressions. Restricts predictions to products that match all of the specified tags. Boolean operators `OR` and `NOT` are supported if the expression is enclosed in parentheses, and must be separated from the tag values by a space. `-\"tagA\"` is also supported and is equivalent to `NOT \"tagA\"`. Tag values must be double quoted UTF-8 encoded strings with a size limit of 1,000 characters. Note: \"Recently viewed\" models don't support tag filtering at the moment. * filterOutOfStockItems. Restricts predictions to products that do not have a stockState value of OUT_OF_STOCK. Examples: * tag=(\"Red\" OR \"Blue\") tag=\"New-Arrival\" tag=(NOT \"promotional\") * filterOutOfStockItems tag=(-\"promotional\") * filterOutOfStockItems If your filter blocks all prediction results, the API will return *no* results. If instead you want empty result sets to return generic (unfiltered) popular products, set `strictFiltering` to False in `PredictRequest.params`. Note that the API will never return items with storageStatus of \"EXPIRED\" or \"DELETED\" regardless of filter choices. If `filterSyntaxV2` is set to true under the `params` field, then attribute-based expressions are expected instead of the above described tag-based syntax. Examples: * (colors: ANY(\"Red\", \"Blue\")) AND NOT (categories: ANY(\"Phones\")) * (availability: ANY(\"IN_STOCK\")) AND (colors: ANY(\"Red\") OR categories: ANY(\"Phones\"))", + "description": "Filter for restricting prediction results with a length limit of 5,000 characters. Accepts values for tags and the `filterOutOfStockItems` flag. * Tag expressions. Restricts predictions to products that match all of the specified tags. Boolean operators `OR` and `NOT` are supported if the expression is enclosed in parentheses, and must be separated from the tag values by a space. `-\"tagA\"` is also supported and is equivalent to `NOT \"tagA\"`. Tag values must be double quoted UTF-8 encoded strings with a size limit of 1,000 characters. Note: \"Recently viewed\" models don't support tag filtering at the moment. * filterOutOfStockItems. Restricts predictions to products that do not have a stockState value of OUT_OF_STOCK. Examples: * tag=(\"Red\" OR \"Blue\") tag=\"New-Arrival\" tag=(NOT \"promotional\") * filterOutOfStockItems tag=(-\"promotional\") * filterOutOfStockItems If your filter blocks all prediction results, the API will return *no* results. If instead you want empty result sets to return generic (unfiltered) popular products, set `strictFiltering` to False in `PredictRequest.params`. Note that the API will never return items with storageStatus of \"EXPIRED\" or \"DELETED\" regardless of filter choices. If `filterSyntaxV2` is set to true under the `params` field, then attribute-based expressions are expected instead of the above described tag-based syntax. Examples: * (colors: ANY(\"Red\", \"Blue\")) AND NOT (categories: ANY(\"Phones\")) * (availability: ANY(\"IN_STOCK\")) AND (colors: ANY(\"Red\") OR categories: ANY(\"Phones\")) For more information, see [Filter recommendations](https://cloud.google.com/retail/docs/filter-recs).", "type": "string" }, "labels": { @@ -4475,6 +5480,7 @@ "type": "integer" }, "pageToken": { + "deprecated": true, "description": "This field is not used; leave it unset.", "type": "string" }, @@ -4643,14 +5649,14 @@ "type": "string" }, "brands": { - "description": "The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).", + "description": "The brands of the product. A maximum of 30 brands are allowed unless overridden through the Google Cloud console. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).", "items": { "type": "string" }, "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" }, @@ -4679,7 +5685,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" }, @@ -4710,7 +5716,7 @@ "type": "string" }, "localInventories": { - "description": "Output only. A list of local inventories specific to different places. This is only available for users who have Retail Search enabled, and it can be managed by ProductService.AddLocalInventories and ProductService.RemoveLocalInventories APIs.", + "description": "Output only. A list of local inventories specific to different places. This field can be managed by ProductService.AddLocalInventories and ProductService.RemoveLocalInventories APIs if fine-grained, high-volume updates are necessary.", "items": { "$ref": "GoogleCloudRetailV2betaLocalInventory" }, @@ -4760,6 +5766,7 @@ "description": "The rating of this product." }, "retrievableFields": { + "deprecated": true, "description": "Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form \"attributes.key\" where \"key\" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is returned. Note: Returning more fields in SearchResponse can increase response payload size and serving latency. This field is deprecated. Use the retrievable site-wide control instead.", "format": "google-fieldmask", "type": "string" @@ -4929,6 +5936,67 @@ "properties": {}, "type": "object" }, + "GoogleCloudRetailV2betaPurgeProductsMetadata": { + "description": "Metadata related to the progress of the PurgeProducts operation. This will be returned by the google.longrunning.Operation.metadata field.", + "id": "GoogleCloudRetailV2betaPurgeProductsMetadata", + "properties": { + "createTime": { + "description": "Operation create time.", + "format": "google-datetime", + "type": "string" + }, + "failureCount": { + "description": "Count of entries that encountered errors while processing.", + "format": "int64", + "type": "string" + }, + "successCount": { + "description": "Count of entries that were deleted successfully.", + "format": "int64", + "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" + }, + "GoogleCloudRetailV2betaPurgeProductsRequest": { + "description": "Request message for PurgeProducts method.", + "id": "GoogleCloudRetailV2betaPurgeProductsRequest", + "properties": { + "filter": { + "description": "Required. The filter string to specify the products to be deleted with a length limit of 5,000 characters. Empty string filter is not allowed. \"*\" implies delete all items in a branch. The eligible fields for filtering are: * `availability`: Double quoted Product.availability string. * `create_time` : in ISO 8601 \"zulu\" format. Supported syntax: * Comparators (\">\", \"<\", \">=\", \"<=\", \"=\"). Examples: * create_time <= \"2015-02-13T17:05:46Z\" * availability = \"IN_STOCK\" * Conjunctions (\"AND\") Examples: * create_time <= \"2015-02-13T17:05:46Z\" AND availability = \"PREORDER\" * Disjunctions (\"OR\") Examples: * create_time <= \"2015-02-13T17:05:46Z\" OR availability = \"IN_STOCK\" * Can support nested queries. Examples: * (create_time <= \"2015-02-13T17:05:46Z\" AND availability = \"PREORDER\") OR (create_time >= \"2015-02-14T13:03:32Z\" AND availability = \"IN_STOCK\") * Filter Limits: * Filter should not contain more than 6 conditions. * Max nesting depth should not exceed 2 levels. Examples queries: * Delete back order products created before a timestamp. create_time <= \"2015-02-13T17:05:46Z\" OR availability = \"BACKORDER\"", + "type": "string" + }, + "force": { + "description": "Actually perform the purge. If `force` is set to false, the method will return the expected purge count without deleting any products.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaPurgeProductsResponse": { + "description": "Response of the PurgeProductsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", + "id": "GoogleCloudRetailV2betaPurgeProductsResponse", + "properties": { + "purgeCount": { + "description": "The total count of products purged as a result of the operation.", + "format": "int64", + "type": "string" + }, + "purgeSample": { + "description": "A sample of the product names that will be deleted. Only populated if `force` is set to false. A max of 100 names will be returned and the names are chosen at random.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaPurgeUserEventsRequest": { "description": "Request message for PurgeUserEvents method.", "id": "GoogleCloudRetailV2betaPurgeUserEventsRequest", @@ -5158,6 +6226,10 @@ "$ref": "GoogleCloudRetailV2betaRuleFilterAction", "description": "Filters results." }, + "forceReturnFacetAction": { + "$ref": "GoogleCloudRetailV2betaRuleForceReturnFacetAction", + "description": "Force returns an attribute as a facet in the request." + }, "ignoreAction": { "$ref": "GoogleCloudRetailV2betaRuleIgnoreAction", "description": "Ignores specific terms from query during search." @@ -5170,6 +6242,10 @@ "$ref": "GoogleCloudRetailV2betaRuleRedirectAction", "description": "Redirects a shopper to a specific page." }, + "removeFacetAction": { + "$ref": "GoogleCloudRetailV2betaRuleRemoveFacetAction", + "description": "Remove an attribute as a facet in the request (if present)." + }, "replacementAction": { "$ref": "GoogleCloudRetailV2betaRuleReplacementAction", "description": "Replaces specific terms in the query." @@ -5230,12 +6306,42 @@ "id": "GoogleCloudRetailV2betaRuleFilterAction", "properties": { "filter": { - "description": "A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. See more details at the Retail Search [user guide](/retail/search/docs/filter-and-order#filter). * To filter products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", + "description": "A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. For more information, see [Filter](/retail/docs/filter-and-order#filter). * To filter products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", "type": "string" } }, "type": "object" }, + "GoogleCloudRetailV2betaRuleForceReturnFacetAction": { + "description": "Force returns an attribute/facet in the request around a certain position or above. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Inputs: attribute name, position * Action Result: Will force return a facet key around a certain position or above if the condition is satisfied. Example: Suppose the query is \"shoes\", the Condition.query_terms is \"shoes\", the ForceReturnFacetAction.FacetPositionAdjustment.attribute_name is \"size\" and the ForceReturnFacetAction.FacetPositionAdjustment.position is 8. Two cases: a) The facet key \"size\" is not already in the top 8 slots, then the facet \"size\" will appear at a position close to 8. b) The facet key \"size\" in among the top 8 positions in the request, then it will stay at its current rank.", + "id": "GoogleCloudRetailV2betaRuleForceReturnFacetAction", + "properties": { + "facetPositionAdjustments": { + "description": "Each instance corresponds to a force return attribute for the given condition. There can't be more 3 instances here.", + "items": { + "$ref": "GoogleCloudRetailV2betaRuleForceReturnFacetActionFacetPositionAdjustment" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaRuleForceReturnFacetActionFacetPositionAdjustment": { + "description": "Each facet position adjustment consists of a single attribute name (i.e. facet key) along with a specified position.", + "id": "GoogleCloudRetailV2betaRuleForceReturnFacetActionFacetPositionAdjustment", + "properties": { + "attributeName": { + "description": "The attribute name to force return as a facet. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters long.", + "type": "string" + }, + "position": { + "description": "This is the position in the request as explained above. It should be strictly positive be at most 100.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaRuleIgnoreAction": { "description": "Prevents a term in the query from being used in search. Example: Don't search for \"shoddy\".", "id": "GoogleCloudRetailV2betaRuleIgnoreAction", @@ -5279,7 +6385,7 @@ "type": "object" }, "GoogleCloudRetailV2betaRuleRedirectAction": { - "description": "Redirects a shopper to a specific page. * Rule Condition: - Must specify Condition.query_terms. * Action Input: Request Query * Action Result: Redirects shopper to provided uri.", + "description": "Redirects a shopper to a specific page. * Rule Condition: Must specify Condition.query_terms. * Action Input: Request Query * Action Result: Redirects shopper to provided uri.", "id": "GoogleCloudRetailV2betaRuleRedirectAction", "properties": { "redirectUri": { @@ -5289,6 +6395,20 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaRuleRemoveFacetAction": { + "description": "Removes an attribute/facet in the request if is present. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: attribute name * Action Result: Will remove the attribute (as a facet) from the request if it is present. Example: Suppose the query is \"shoes\", the Condition.query_terms is \"shoes\" and the attribute name \"size\", then facet key \"size\" will be removed from the request (if it is present).", + "id": "GoogleCloudRetailV2betaRuleRemoveFacetAction", + "properties": { + "attributeNames": { + "description": "The attribute names (i.e. facet keys) to remove from the dynamic facets (if present in the request). There can't be more 3 attribute names. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaRuleReplacementAction": { "description": "Replaces a term in the query. Multiple replacement candidates can be specified. All `query_terms` will be replaced with the replacement term. Example: Replace \"gShoe\" with \"google shoe\".", "id": "GoogleCloudRetailV2betaRuleReplacementAction", @@ -5331,36 +6451,41 @@ "properties": { "boostSpec": { "$ref": "GoogleCloudRetailV2betaSearchRequestBoostSpec", - "description": "Boost specification to boost certain products. See more details at this [user guide](https://cloud.google.com/retail/docs/boosting). Notice that if both ServingConfig.boost_control_ids and SearchRequest.boost_spec are set, the boost conditions from both places are evaluated. If a search request matches multiple boost conditions, the final boost score is equal to the sum of the boost scores from all matched boost conditions." + "description": "Boost specification to boost certain products. For more information, see [Boost results](https://cloud.google.com/retail/docs/boosting). Notice that if both ServingConfig.boost_control_ids and SearchRequest.boost_spec are set, the boost conditions from both places are evaluated. If a search request matches multiple boost conditions, the final boost score is equal to the sum of the boost scores from all matched boost conditions." }, "branch": { "description": "The branch resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use \"default_branch\" as the branch ID or leave this field empty, to search products under the default branch.", "type": "string" }, "canonicalFilter": { - "description": "The default filter that is applied when a user performs a search without checking any filters on the search page. The filter applied to every search request when quality improvement such as query expansion is needed. For example, if a query does not have enough results, an expanded query with SearchRequest.canonical_filter will be returned as a supplement of the original query. This field is strongly recommended to achieve high search quality. See SearchRequest.filter for more details about filter syntax.", + "description": "The default filter that is applied when a user performs a search without checking any filters on the search page. The filter applied to every search request when quality improvement such as query expansion is needed. In the case a query does not have a sufficient amount of results this filter will be used to determine whether or not to enable the query expansion flow. The original filter will still be used for the query expanded search. This field is strongly recommended to achieve high search quality. For more information about filter syntax, see SearchRequest.filter.", "type": "string" }, "dynamicFacetSpec": { "$ref": "GoogleCloudRetailV2betaSearchRequestDynamicFacetSpec", + "deprecated": true, "description": "Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic to enable dynamic facets. Do not set this field. The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated." }, + "entity": { + "description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it should be exactly matched with UserEvent.entity to get search results boosted by entity.", + "type": "string" + }, "facetSpecs": { - "description": "Facet specifications for faceted search. If empty, no facets are returned. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "Facet specifications for faceted search. If empty, no facets are returned. A maximum of 200 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", "items": { "$ref": "GoogleCloudRetailV2betaSearchRequestFacetSpec" }, "type": "array" }, "filter": { - "description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. Filter expression is case-sensitive. See more details at this [user guide](https://cloud.google.com/retail/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", + "description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. Filter expression is case-sensitive. For more information, see [Filter](https://cloud.google.com/retail/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, - "description": "The labels applied to a resource must meet the following requirements: * Each resource can have multiple labels, up to a maximum of 64. * Each label must be a key-value pair. * Keys have a minimum length of 1 character and a maximum length of 63 characters and cannot be empty. Values can be empty and have a maximum length of 63 characters. * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. All characters must use UTF-8 encoding, and international characters are allowed. * The key portion of a label must be unique. However, you can use the same key with multiple resources. * Keys must start with a lowercase letter or international character. See [Google Cloud Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) for more details.", + "description": "The labels applied to a resource must meet the following requirements: * Each resource can have multiple labels, up to a maximum of 64. * Each label must be a key-value pair. * Keys have a minimum length of 1 character and a maximum length of 63 characters and cannot be empty. Values can be empty and have a maximum length of 63 characters. * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. All characters must use UTF-8 encoding, and international characters are allowed. * The key portion of a label must be unique. However, you can use the same key with multiple resources. * Keys must start with a lowercase letter or international character. For more information, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) in the Resource Manager documentation.", "type": "object" }, "offset": { @@ -5369,11 +6494,11 @@ "type": "integer" }, "orderBy": { - "description": "The order in which products are returned. Products can be ordered by a field in an Product object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. See more details at this [user guide](https://cloud.google.com/retail/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", + "description": "The order in which products are returned. Products can be ordered by a field in an Product object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. For more information, see [Order](https://cloud.google.com/retail/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", "type": "string" }, "pageCategories": { - "description": "The categories associated with a category page. Required for category navigation queries to achieve good search quality. The format should be the same as UserEvent.page_categories; 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). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: \"pageCategories\" : [\"Sales > 2017 Black Friday Deals\"].", + "description": "The categories associated with a category page. Must be set for category navigation queries to achieve good search quality. The format should be the same as UserEvent.page_categories; 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). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: \"pageCategories\" : [\"Sales > 2017 Black Friday Deals\"].", "items": { "type": "string" }, @@ -5398,7 +6523,7 @@ }, "queryExpansionSpec": { "$ref": "GoogleCloudRetailV2betaSearchRequestQueryExpansionSpec", - "description": "The query expansion specification that specifies the conditions under which query expansion will occur. See more details at this [user guide](https://cloud.google.com/retail/docs/result-size#query_expansion)." + "description": "The query expansion specification that specifies the conditions under which query expansion occurs. For more information, see [Query expansion](https://cloud.google.com/retail/docs/result-size#query_expansion)." }, "searchMode": { "description": "The search mode of the search request. If not specified, a single search request triggers both product search and faceted search.", @@ -5496,7 +6621,7 @@ "id": "GoogleCloudRetailV2betaSearchRequestFacetSpec", "properties": { "enableDynamicPosition": { - "description": "Enables dynamic position for this facet. If set to true, the position of this facet among all facets in the response is determined by Google Retail Search. It will be ordered together with dynamic facets if dynamic facets is enabled. If set to false, the position of this facet in the response will be the same as in the request, and it will be ranked before the facets with dynamic position enable and all dynamic facets. For example, you may always want to have rating facet returned in the response, but it's not necessarily to always display the rating facet at the top. In that case, you can set enable_dynamic_position to true so that the position of rating facet in response will be determined by Google Retail Search. Another example, assuming you have the following facets in the request: * \"rating\", enable_dynamic_position = true * \"price\", enable_dynamic_position = false * \"brands\", enable_dynamic_position = false And also you have a dynamic facets enable, which will generate a facet 'gender'. Then the final order of the facets in the response can be (\"price\", \"brands\", \"rating\", \"gender\") or (\"price\", \"brands\", \"gender\", \"rating\") depends on how Google Retail Search orders \"gender\" and \"rating\" facets. However, notice that \"price\" and \"brands\" will always be ranked at 1st and 2nd position since their enable_dynamic_position are false.", + "description": "Enables dynamic position for this facet. If set to true, the position of this facet among all facets in the response is determined by Google Retail Search. It is ordered together with dynamic facets if dynamic facets is enabled. If set to false, the position of this facet in the response is the same as in the request, and it is ranked before the facets with dynamic position enable and all dynamic facets. For example, you may always want to have rating facet returned in the response, but it's not necessarily to always display the rating facet at the top. In that case, you can set enable_dynamic_position to true so that the position of rating facet in response is determined by Google Retail Search. Another example, assuming you have the following facets in the request: * \"rating\", enable_dynamic_position = true * \"price\", enable_dynamic_position = false * \"brands\", enable_dynamic_position = false And also you have a dynamic facets enable, which generates a facet \"gender\". Then, the final order of the facets in the response can be (\"price\", \"brands\", \"rating\", \"gender\") or (\"price\", \"brands\", \"gender\", \"rating\") depends on how Google Retail Search orders \"gender\" and \"rating\" facets. However, notice that \"price\" and \"brands\" are always ranked at first and second position because their enable_dynamic_position values are false.", "type": "boolean" }, "excludedFilterKeys": { @@ -5527,14 +6652,14 @@ "type": "boolean" }, "contains": { - "description": "Only get facet values that contains the given strings. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"contains\" to \"Shoe\", the \"categories\" facet will give only \"Women > Shoe\" and \"Men > Shoe\". Only supported on textual fields. Maximum is 10.", + "description": "Only get facet values that contains the given strings. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"contains\" to \"Shoe\", the \"categories\" facet gives only \"Women > Shoe\" and \"Men > Shoe\". Only supported on textual fields. Maximum is 10.", "items": { "type": "string" }, "type": "array" }, "intervals": { - "description": "Set only if values should be bucketized into intervals. Must be set for facets with numerical values. Must not be set for facet with text values. Maximum number of intervals is 30.", + "description": "Set only if values should be bucketized into intervals. Must be set for facets with numerical values. Must not be set for facet with text values. Maximum number of intervals is 40. For all numerical facet keys that appear in the list of products from the catalog, the percentiles 0, 10, 30, 50, 70, 90, and 100 are computed from their distribution weekly. If the model assigns a high score to a numerical facet key and its intervals are not specified in the search request, these percentiles become the bounds for its intervals and are returned in the response. If the facet key intervals are specified in the request, then the specified intervals are returned instead.", "items": { "$ref": "GoogleCloudRetailV2betaInterval" }, @@ -5549,14 +6674,14 @@ "type": "string" }, "prefixes": { - "description": "Only get facet values that start with the given string prefix. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"prefixes\" to \"Women\", the \"categories\" facet will give only \"Women > Shoe\" and \"Women > Dress\". Only supported on textual fields. Maximum is 10.", + "description": "Only get facet values that start with the given string prefix. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"prefixes\" to \"Women\", the \"categories\" facet gives only \"Women > Shoe\" and \"Women > Dress\". Only supported on textual fields. Maximum is 10.", "items": { "type": "string" }, "type": "array" }, "query": { - "description": "The query that is used to compute facet for the given facet key. When provided, it will override the default behavior of facet computation. The query syntax is the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Notice that there is no limitation on FacetKey.key when query is specified. In the response, SearchResponse.Facet.values.value will be always \"1\" and SearchResponse.Facet.values.count will be the number of results that match the query. For example, you can set a customized facet for \"shipToStore\", where FacetKey.key is \"customizedShipToStore\", and FacetKey.query is \"availability: ANY(\\\"IN_STOCK\\\") AND shipToStore: ANY(\\\"123\\\")\". Then the facet will count the products that are both in stock and ship to store \"123\".", + "description": "The query that is used to compute facet for the given facet key. When provided, it overrides the default behavior of facet computation. The query syntax is the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Notice that there is no limitation on FacetKey.key when query is specified. In the response, SearchResponse.Facet.values.value is always \"1\" and SearchResponse.Facet.values.count is the number of results that match the query. For example, you can set a customized facet for \"shipToStore\", where FacetKey.key is \"customizedShipToStore\", and FacetKey.query is \"availability: ANY(\\\"IN_STOCK\\\") AND shipToStore: ANY(\\\"123\\\")\". Then the facet counts the products that are both in stock and ship to store \"123\".", "type": "string" }, "restrictedValues": { @@ -5659,6 +6784,13 @@ "description": "Contains the spell corrected query, if found. If the spell correction type is AUTOMATIC, then the search results are based on corrected_query. Otherwise the original query is used for search.", "type": "string" }, + "experimentInfo": { + "description": "Metadata related to A/B testing Experiment associated with this response. Only exists when an experiment is triggered.", + "items": { + "$ref": "GoogleCloudRetailV2betaExperimentInfo" + }, + "type": "array" + }, "facets": { "description": "Results of facets requested by user.", "items": { @@ -6045,6 +7177,10 @@ "$ref": "GoogleCloudRetailV2betaCompletionDetail", "description": "The main auto-completion details related to the event. This field should be set for `search` event when autocomplete function is enabled and the user clicks a suggestion for search." }, + "entity": { + "description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. We recommend that you set this field to get better per-entity search, completion, and prediction results.", + "type": "string" + }, "eventTime": { "description": "Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.", "format": "google-datetime", @@ -6243,7 +7379,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" } }, @@ -6306,7 +7442,7 @@ } }, "servicePath": "", - "title": "Retail API", + "title": "Vertex AI Search for Retail API", "version": "v2beta", "version_module": true } \ No newline at end of file diff --git a/etc/api/run/v1/run-api.json b/etc/api/run/v1/run-api.json index 1f3cbfddca..11aed0b4aa 100644 --- a/etc/api/run/v1/run-api.json +++ b/etc/api/run/v1/run-api.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" + } + ], "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -254,7 +456,7 @@ "type": "string" }, "parent": { - "description": "The namespace in which the domain mapping should be created. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", + "description": "Required. The namespace in which the domain mapping should be created. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", "location": "path", "pattern": "^namespaces/[^/]+$", "required": true, @@ -297,7 +499,7 @@ "type": "string" }, "name": { - "description": "The name of the domain mapping to delete. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", + "description": "Required. The name of the domain mapping to delete. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", "location": "path", "pattern": "^namespaces/[^/]+/domainmappings/[^/]+$", "required": true, @@ -327,7 +529,7 @@ ], "parameters": { "name": { - "description": "The name of the domain mapping to retrieve. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", + "description": "Required. The name of the domain mapping to retrieve. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", "location": "path", "pattern": "^namespaces/[^/]+/domainmappings/[^/]+$", "required": true, @@ -378,7 +580,7 @@ "type": "integer" }, "parent": { - "description": "The namespace from which the domain mappings should be listed. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", + "description": "Required. The namespace from which the domain mappings should be listed. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", "location": "path", "pattern": "^namespaces/[^/]+$", "required": true, @@ -462,7 +664,7 @@ "type": "string" }, "propagationPolicy": { - "description": "Optional. Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/ for more information.", + "description": "Optional. Specifies the propagation policy of delete. Cloud Run currently ignores this setting.", "location": "query", "type": "string" } @@ -811,7 +1013,7 @@ "type": "string" }, "propagationPolicy": { - "description": "Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see https://kubernetes.io/docs/concepts/architecture/garbage-collection/ for more information.", + "description": "Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background.", "location": "query", "type": "string" } @@ -1529,7 +1731,7 @@ "type": "string" }, "parent": { - "description": "The namespace in which the domain mapping should be created. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", + "description": "Required. The namespace in which the domain mapping should be created. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -1572,7 +1774,7 @@ "type": "string" }, "name": { - "description": "The name of the domain mapping to delete. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", + "description": "Required. The name of the domain mapping to delete. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/domainmappings/[^/]+$", "required": true, @@ -1602,7 +1804,7 @@ ], "parameters": { "name": { - "description": "The name of the domain mapping to retrieve. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", + "description": "Required. The name of the domain mapping to retrieve. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/domainmappings/[^/]+$", "required": true, @@ -1653,7 +1855,7 @@ "type": "integer" }, "parent": { - "description": "The namespace from which the domain mappings should be listed. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", + "description": "Required. The namespace from which the domain mappings should be listed. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -1771,6 +1973,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": { @@ -1805,7 +2130,7 @@ "type": "string" }, "propagationPolicy": { - "description": "Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see https://kubernetes.io/docs/concepts/architecture/garbage-collection/ for more information.", + "description": "Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background.", "location": "query", "type": "string" } @@ -2289,7 +2614,7 @@ } } }, - "revision": "20230113", + "revision": "20240225", "rootUrl": "https://run.googleapis.com/", "schemas": { "Addressable": { @@ -2351,7 +2676,7 @@ "type": "object" }, "AuthorizedDomain": { - "description": "A domain that a user has been authorized to administer. To authorize use of a domain, verify ownership via [Webmaster Central](https://www.google.com/webmasters/verification/home).", + "description": "A domain that a user has been authorized to administer. To authorize use of a domain, verify ownership via [Search Console](https://search.google.com/search-console/welcome).", "id": "AuthorizedDomain", "properties": { "id": { @@ -2359,6 +2684,7 @@ "type": "string" }, "name": { + "deprecated": true, "description": "Deprecated Read only. Full path to the `AuthorizedDomain` resource in the API. Example: `projects/myproject/authorizedDomains/example.com`.", "type": "string" } @@ -2374,19 +2700,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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", @@ -2399,6 +2747,7 @@ "properties": { "localObjectReference": { "$ref": "LocalObjectReference", + "deprecated": true, "description": "This field should not be used directly as it is meant to be inlined directly into the message. Use the \"name\" field instead." }, "name": { @@ -2422,6 +2771,7 @@ }, "localObjectReference": { "$ref": "LocalObjectReference", + "deprecated": true, "description": "Not supported by Cloud Run." }, "name": { @@ -2463,7 +2813,7 @@ "type": "object" }, "Configuration": { - "description": "Configuration represents the \"floating HEAD\" of a linear history of Revisions, and optionally how the containers those revisions reference are built. Users create new Revisions by updating the Configuration's spec. The \"latest created\" revision's name is available under status, as is the \"latest ready\" revision's name. See also: https://github.com/knative/specs/blob/main/specs/serving/overview.md#configuration", + "description": "Configuration represents the \"floating HEAD\" of a linear history of Revisions, and optionally how the containers those revisions reference are built. Users create new Revisions by updating the Configuration's spec. The \"latest created\" revision's name is available under status, as is the \"latest ready\" revision's name.", "id": "Configuration", "properties": { "apiVersion": { @@ -2560,19 +2910,19 @@ "type": "array" }, "image": { - "description": "Required. URL of the Container image in Google Container Registry or Google Artifact Registry. More info: https://kubernetes.io/docs/concepts/containers/images", + "description": "Required. Name of the container image in Dockerhub, Google Artifact Registry, or Google Container Registry. If the host is not provided, Dockerhub is assumed.", "type": "string" }, "imagePullPolicy": { - "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", + "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", "type": "string" }, "livenessProbe": { "$ref": "Probe", - "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" + "description": "Periodic probe of container liveness. Container will be restarted if the probe fails." }, "name": { - "description": "Name of the container specified as a DNS_LABEL (RFC 1123). More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names", + "description": "Name of the container specified as a DNS_LABEL (RFC 1123).", "type": "string" }, "ports": { @@ -2588,7 +2938,7 @@ }, "resources": { "$ref": "ResourceRequirements", - "description": "Compute Resources required by this container. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" + "description": "Compute Resources required by this container." }, "securityContext": { "$ref": "SecurityContext", @@ -2596,7 +2946,7 @@ }, "startupProbe": { "$ref": "Probe", - "description": "Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not receive traffic if the probe fails. If not provided, a default startup probe with TCP socket action is used. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" + "description": "Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not receive traffic if the probe fails. If not provided, a default startup probe with TCP socket action is used." }, "terminationMessagePath": { "description": "Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.", @@ -2620,12 +2970,41 @@ }, "type": "object" }, + "ContainerOverride": { + "description": "Per container override specification.", + "id": "ContainerOverride", + "properties": { + "args": { + "description": "Arguments to the entrypoint. The specified arguments replace and override any existing entrypoint arguments. Must be empty if `clear_args` is set to true.", + "items": { + "type": "string" + }, + "type": "array" + }, + "clearArgs": { + "description": "Optional. Set to True to clear all existing arguments.", + "type": "boolean" + }, + "env": { + "description": "List of environment variables to set in the container. All specified environment variables are merged with existing environment variables. When the specified environment variables exist, these values override any existing values.", + "items": { + "$ref": "EnvVar" + }, + "type": "array" + }, + "name": { + "description": "The name of the container specified as a DNS_LABEL.", + "type": "string" + } + }, + "type": "object" + }, "ContainerPort": { "description": "ContainerPort represents a network port in a single container.", "id": "ContainerPort", "properties": { "containerPort": { - "description": "Port number the container listens on. This must be a valid port number, 0 < x < 65536.", + "description": "Port number the container listens on. If present, this must be a valid port number, 0 < x < 65536. If not present, it will default to port 8080. For more information, see https://cloud.google.com/run/docs/container-contract#port", "format": "int32", "type": "integer" }, @@ -2730,6 +3109,27 @@ }, "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", + "properties": { + "medium": { + "description": "The medium on which the data is stored. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", + "type": "string" + }, + "sizeLimit": { + "description": "Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers. The default is nil which means that the limit is undefined. More info: https://cloud.google.com/run/docs/configuring/in-memory-volumes#configure-volume. Info in Kubernetes: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir", + "type": "string" + } + }, + "type": "object" + }, "EnvFromSource": { "description": "Not supported by Cloud Run. EnvFromSource represents the source of a set of ConfigMaps", "id": "EnvFromSource", @@ -2754,7 +3154,7 @@ "id": "EnvVar", "properties": { "name": { - "description": "Required. Name of the environment variable. Must be a C_IDENTIFIER.", + "description": "Required. Name of the environment variable.", "type": "string" }, "value": { @@ -2802,24 +3202,24 @@ "id": "Execution", "properties": { "apiVersion": { - "description": "Optional. APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "description": "Optional. APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values.", "type": "string" }, "kind": { - "description": "Optional. Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "description": "Optional. Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase.", "type": "string" }, "metadata": { "$ref": "ObjectMeta", - "description": "Optional. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + "description": "Optional. Standard object's metadata." }, "spec": { "$ref": "ExecutionSpec", - "description": "Optional. Specification of the desired behavior of an execution. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + "description": "Optional. Specification of the desired behavior of an execution." }, "status": { "$ref": "ExecutionStatus", - "description": "Output only. Current status of an execution. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", + "description": "Output only. Current status of an execution.", "readOnly": true } }, @@ -2856,7 +3256,7 @@ "type": "integer" }, "taskCount": { - "description": "Optional. Specifies the desired number of tasks the execution should run. Setting to 1 means that parallelism is limited to 1 and the success of that task signals the success of the execution.", + "description": "Optional. Specifies the desired number of tasks the execution should run. Setting to 1 means that parallelism is limited to 1 and the success of that task signals the success of the execution. Defaults to 1.", "format": "int32", "type": "integer" }, @@ -2926,7 +3326,7 @@ "type": "object" }, "ExecutionTemplateSpec": { - "description": "ExecutionTemplateSpec describes the metadata and spec an Execution should have when created from a job. Based on: https://github.com/kubernetes/api/blob/e771f807/core/v1/types.go#L3179-L3190", + "description": "ExecutionTemplateSpec describes the metadata and spec an Execution should have when created from a job.", "id": "ExecutionTemplateSpec", "properties": { "metadata": { @@ -2973,7 +3373,7 @@ "type": "integer" }, "service": { - "description": "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", + "description": "Service is the name of the service to place in the gRPC HealthCheckRequest. If this is not specified, the default behavior is defined by gRPC.", "type": "string" } }, @@ -3005,7 +3405,72 @@ "type": "string" }, "type": { - "description": "type is used to communicate the status of the reconciliation process. See also: https://github.com/knative/serving/blob/main/docs/spec/errors.md#error-conditions-and-reporting Types common to all resources include: * \"Ready\" or \"Completed\": True when the Resource is ready.", + "description": "type is used to communicate the status of the reconciliation process. Types common to all resources include: * \"Ready\" or \"Completed\": True when the Resource is ready.", + "type": "string" + } + }, + "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" } }, @@ -3057,6 +3522,11 @@ "description": "Path to access on the HTTP server.", "type": "string" }, + "port": { + "description": "Port number to access on the container. Number must be in the range 1 to 65535.", + "format": "int32", + "type": "integer" + }, "scheme": { "description": "Not supported by Cloud Run.", "type": "string" @@ -3084,24 +3554,24 @@ "id": "Job", "properties": { "apiVersion": { - "description": "Optional. APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "description": "Optional. APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values.", "type": "string" }, "kind": { - "description": "Optional. Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "description": "Optional. Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase.", "type": "string" }, "metadata": { "$ref": "ObjectMeta", - "description": "Optional. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + "description": "Optional. Standard object's metadata." }, "spec": { "$ref": "JobSpec", - "description": "Optional. Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + "description": "Optional. Specification of the desired behavior of a job." }, "status": { "$ref": "JobStatus", - "description": "Output only. Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", + "description": "Output only. Current status of a job.", "readOnly": true } }, @@ -3343,7 +3813,7 @@ "type": "string" }, "resourceVersion": { - "description": "Opaque string that identifies the server's internal version of this object. It can be used by clients to determine when objects have changed. If the message is passed back to the server, it must be left unmodified. https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency", + "description": "Opaque string that identifies the server's internal version of this object. It can be used by clients to determine when objects have changed. If the message is passed back to the server, it must be left unmodified.", "type": "string" }, "selfLink": { @@ -3490,14 +3960,14 @@ "id": "LocalObjectReference", "properties": { "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "Name of the referent.", "type": "string" } }, "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -3530,15 +4000,34 @@ }, "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": "k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", + "description": "google.cloud.run.meta.v1.ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "id": "ObjectMeta", "properties": { "annotations": { "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/cpu-throttling`: Revision. * `run.googleapis.com/custom-audiences`: 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/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. Execution. More info: https://kubernetes.io/docs/user-guide/annotations", + "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": { @@ -3546,7 +4035,7 @@ "type": "string" }, "creationTimestamp": { - "description": "UTC timestamp representing the server time when this object was created. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "description": "UTC timestamp representing the server time when this object was created.", "format": "google-datetime", "type": "string" }, @@ -3580,11 +4069,11 @@ "additionalProperties": { "type": "string" }, - "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and routes. More info: https://kubernetes.io/docs/user-guide/labels", + "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and routes.", "type": "object" }, "name": { - "description": "Required. The name of the resource. In Cloud Run, name is required when creating top-level resources (Service, Job), must be unique within a Cloud Run project/region, and cannot be changed once created. More info: https://kubernetes.io/docs/user-guide/identifiers#names", + "description": "Required. The name of the resource. Name is required when creating top-level resources (Service, Job), must be unique within a Cloud Run project/region, and cannot be changed once created.", "type": "string" }, "namespace": { @@ -3599,7 +4088,7 @@ "type": "array" }, "resourceVersion": { - "description": "Opaque, system-generated value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", + "description": "Opaque, system-generated value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection.", "type": "string" }, "selfLink": { @@ -3607,12 +4096,36 @@ "type": "string" }, "uid": { - "description": "Unique, system-generated identifier for this resource. More info: https://kubernetes.io/docs/user-guide/identifiers#uids", + "description": "Unique, system-generated identifier for this resource.", "type": "string" } }, "type": "object" }, + "Overrides": { + "description": "RunJob Overrides that contains Execution fields to be overridden on the go.", + "id": "Overrides", + "properties": { + "containerOverrides": { + "description": "Per container override specification.", + "items": { + "$ref": "ContainerOverride" + }, + "type": "array" + }, + "taskCount": { + "description": "The desired number of tasks the execution should run. Will replace existing task_count value.", + "format": "int32", + "type": "integer" + }, + "timeoutSeconds": { + "description": "Duration in seconds the task may be active before the system will actively try to mark it failed and kill associated containers. Will replace existing timeout_seconds value.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "OwnerReference": { "description": "This is not supported or used by Cloud Run.", "id": "OwnerReference", @@ -3645,7 +4158,7 @@ "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/).", + "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": { @@ -3697,7 +4210,7 @@ "description": "HTTPGet specifies the http request to perform." }, "initialDelaySeconds": { - "description": "Number of seconds after the container has started before the probe is initiated. Defaults to 0 seconds. Minimum value is 0. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + "description": "Number of seconds after the container has started before the probe is initiated. Defaults to 0 seconds. Minimum value is 0. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240.", "format": "int32", "type": "integer" }, @@ -3716,7 +4229,7 @@ "description": "TCPSocket specifies an action involving a TCP port." }, "timeoutSeconds": { - "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 3600. Must be smaller than period_seconds. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 3600. Must be smaller than period_seconds; if period_seconds is not set, must be less or equal than 10.", "format": "int32", "type": "integer" } @@ -3762,14 +4275,14 @@ "additionalProperties": { "type": "string" }, - "description": "Only memory and CPU are supported. Limits describes the maximum amount of compute resources allowed. The values of the map is string form of the 'quantity' k8s type: https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go", + "description": "Limits describes the maximum amount of compute resources allowed. Only 'cpu' and 'memory' keys are supported. * For supported 'cpu' values, 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" }, "requests": { "additionalProperties": { "type": "string" }, - "description": "Only memory and CPU are supported. Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. The values of the map is string form of the 'quantity' k8s type: https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go", + "description": "Requests describes the minimum amount of compute resources required. Only `cpu` and `memory` are supported. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. * For supported 'cpu' values, 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" } }, @@ -3812,7 +4325,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. The runtime contract is documented here: https://github.com/knative/specs/blob/main/specs/serving/runtime-contract.md", + "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" }, @@ -3858,6 +4371,12 @@ }, "type": "array" }, + "desiredReplicas": { + "description": "Output only. The configured number of instances running this revision. For Cloud Run, this only includes instances provisioned using the minScale annotation. It does not include instances created by autoscaling.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, "imageDigest": { "description": "ImageDigest holds the resolved digest for the image specified within .Spec.Container.Image. The digest is resolved during the creation of Revision. This field holds the digest value regardless of whether a tag or digest was originally specified in the Container object.", "type": "string" @@ -3879,7 +4398,7 @@ "type": "object" }, "RevisionTemplate": { - "description": "RevisionTemplateSpec describes the data a revision should have when created from a template. Based on: https://github.com/kubernetes/api/blob/e771f807/core/v1/types.go#L3179-L3190", + "description": "RevisionTemplateSpec describes the data a revision should have when created from a template.", "id": "RevisionTemplate", "properties": { "metadata": { @@ -3894,7 +4413,7 @@ "type": "object" }, "Route": { - "description": "Route is responsible for configuring ingress over a collection of Revisions. Some of the Revisions a Route distributes traffic over may be specified by referencing the Configuration responsible for creating them; in these cases the Route is additionally responsible for monitoring the Configuration for \"latest ready\" revision changes, and smoothly rolling out latest revisions. See also: https://github.com/knative/specs/blob/main/specs/serving/overview.md#route Cloud Run currently supports referencing a single Configuration to automatically deploy the \"latest ready\" Revision from that Configuration.", + "description": "Route is responsible for configuring ingress over a collection of Revisions. Some of the Revisions a Route distributes traffic over may be specified by referencing the Configuration responsible for creating them; in these cases the Route is additionally responsible for monitoring the Configuration for \"latest ready\" revision changes, and smoothly rolling out latest revisions. Cloud Run currently supports referencing a single Configuration to automatically deploy the \"latest ready\" Revision from that Configuration.", "id": "Route", "properties": { "apiVersion": { @@ -3962,7 +4481,7 @@ "type": "array" }, "url": { - "description": "URL holds the url that will distribute traffic over the provided traffic targets. It generally has the form: https://{route-hash}-{project-hash}-{cluster-level-suffix}.a.run.app", + "description": "URL holds the url that will distribute traffic over the provided traffic targets. It generally has the form: `https://{route-hash}-{project-hash}-{cluster-level-suffix}.a.run.app`", "type": "string" } }, @@ -3971,7 +4490,12 @@ "RunJobRequest": { "description": "Request message for creating a new execution of a job.", "id": "RunJobRequest", - "properties": {}, + "properties": { + "overrides": { + "$ref": "Overrides", + "description": "Optional. Overrides existing job configuration for one specific new job execution only, using the specified values to update the job configuration for the new execution." + } + }, "type": "object" }, "SecretEnvSource": { @@ -3980,6 +4504,7 @@ "properties": { "localObjectReference": { "$ref": "LocalObjectReference", + "deprecated": true, "description": "This field should not be used directly as it is meant to be inlined directly into the message. Use the \"name\" field instead." }, "name": { @@ -4003,6 +4528,7 @@ }, "localObjectReference": { "$ref": "LocalObjectReference", + "deprecated": true, "description": "This field should not be used directly as it is meant to be inlined directly into the message. Use the \"name\" field instead." }, "name": { @@ -4056,7 +4582,7 @@ "type": "object" }, "Service": { - "description": "Service acts as a top-level container that manages a set of Routes and Configurations which implement a network service. Service exists to provide a singular abstraction which can be access controlled, reasoned about, and which encapsulates software lifecycle decisions such as rollout policy and team resource ownership. Service acts only as an orchestrator of the underlying Routes and Configurations (much as a kubernetes Deployment orchestrates ReplicaSets). The Service's controller will track the statuses of its owned Configuration and Route, reflecting their statuses and conditions as its own. See also: https://github.com/knative/serving/blob/main/docs/spec/overview.md#service", + "description": "Service acts as a top-level container that manages a set of Routes and Configurations which implement a network service. Service exists to provide a singular abstraction which can be access controlled, reasoned about, and which encapsulates software lifecycle decisions such as rollout policy and team resource ownership. Service acts only as an orchestrator of the underlying Routes and Configurations (much as a kubernetes Deployment orchestrates ReplicaSets). The Service's controller will track the statuses of its owned Configuration and Route, reflecting their statuses and conditions as its own.", "id": "Service", "properties": { "apiVersion": { @@ -4069,7 +4595,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/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", @@ -4124,7 +4650,7 @@ "type": "string" }, "observedGeneration": { - "description": "Returns the generation last fully processed by the system. This will only match metadata.generation when reconciliation is complete. Clients polling for completed reconciliation should poll until observedGeneration = metadata.generation and the Ready condition's status is True or False.", + "description": "Returns the generation last seen by the system. Clients polling for completed reconciliation should poll until observedGeneration = metadata.generation and the Ready condition's status is True or False.", "format": "int32", "type": "integer" }, @@ -4136,7 +4662,7 @@ "type": "array" }, "url": { - "description": "URL that will distribute traffic over the provided traffic targets. It generally has the form https://{route-hash}-{project-hash}-{cluster-level-suffix}.a.run.app", + "description": "URL that will distribute traffic over the provided traffic targets. It generally has the form `https://{route-hash}-{project-hash}-{cluster-level-suffix}.a.run.app`", "type": "string" } }, @@ -4177,14 +4703,14 @@ }, "metadata": { "$ref": "ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + "description": "Standard list metadata." }, "reason": { "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.", "type": "string" }, "status": { - "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", + "description": "Status of the operation. One of: \"Success\" or \"Failure\".", "type": "string" } }, @@ -4225,7 +4751,7 @@ "type": "string" }, "kind": { - "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind.", "type": "string" }, "name": { @@ -4238,7 +4764,7 @@ "type": "integer" }, "uid": { - "description": "UID of the resource. (when there is a single resource which can be described). More info: https://kubernetes.io/docs/user-guide/identifiers#uids", + "description": "UID of the resource. (when there is a single resource which can be described).", "type": "string" } }, @@ -4265,24 +4791,24 @@ "id": "Task", "properties": { "apiVersion": { - "description": "Optional. APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "description": "Optional. APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values.", "type": "string" }, "kind": { - "description": "Optional. Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "description": "Optional. Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase.", "type": "string" }, "metadata": { "$ref": "ObjectMeta", - "description": "Optional. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + "description": "Optional. Standard object's metadata." }, "spec": { "$ref": "TaskSpec", - "description": "Optional. Specification of the desired behavior of a task. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + "description": "Optional. Specification of the desired behavior of a task." }, "status": { "$ref": "TaskStatus", - "description": "Output only. Current status of a task. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", + "description": "Output only. Current status of a task.", "readOnly": true } }, @@ -4309,14 +4835,14 @@ "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" }, "type": "array" }, "maxRetries": { - "description": "Optional. Number of retries allowed per task, before marking this job failed.", + "description": "Optional. Number of retries allowed per task, before marking this job failed. Defaults to 3.", "format": "int32", "type": "integer" }, @@ -4325,12 +4851,12 @@ "type": "string" }, "timeoutSeconds": { - "description": "Optional. Duration in seconds the task may be active before the system will actively try to mark it failed and kill associated containers. This applies per attempt of a task, meaning each retry can run for the full timeout.", + "description": "Optional. Duration in seconds the task may be active before the system will actively try to mark it failed and kill associated containers. This applies per attempt of a task, meaning each retry can run for the full timeout. Defaults to 600 seconds.", "format": "int64", "type": "string" }, "volumes": { - "description": "Optional. List of volumes that can be mounted by containers belonging to the task. More info: https://kubernetes.io/docs/concepts/storage/volumes", + "description": "Optional. List of volumes that can be mounted by containers belonging to the task.", "items": { "$ref": "Volume" }, @@ -4392,7 +4918,7 @@ "properties": { "spec": { "$ref": "TaskSpec", - "description": "Optional. Specification of the desired behavior of the task. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + "description": "Optional. Specification of the desired behavior of the task." } }, "type": "object" @@ -4430,6 +4956,7 @@ "id": "TrafficTarget", "properties": { "configurationName": { + "deprecated": true, "description": "[Deprecated] Not supported in Cloud Run. It must be empty.", "type": "string" }, @@ -4466,10 +4993,21 @@ "$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." + }, "name": { "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." @@ -4490,7 +5028,7 @@ "type": "string" }, "readOnly": { - "description": "Only true is accepted for Secret Volumes. Defaults to true for Secrets Volumes.", + "description": "Sets the mount to be read-only or read-write. Not used by Cloud Run.", "type": "boolean" }, "subPath": { diff --git a/etc/api/run/v2/run-api.json b/etc/api/run/v2/run-api.json index 1a43cef75e..95d183b7e0 100644 --- a/etc/api/run/v2/run-api.json +++ b/etc/api/run/v2/run-api.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" + } + ], "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -407,6 +609,34 @@ "resources": { "executions": { "methods": { + "cancel": { + "description": "Cancels an Execution.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}/executions/{executionsId}:cancel", + "httpMethod": "POST", + "id": "run.projects.locations.jobs.executions.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the Execution to cancel. Format: `projects/{project}/locations/{location}/jobs/{job}/executions/{execution}`, where `{project}` can be project id or number.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+/executions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:cancel", + "request": { + "$ref": "GoogleCloudRunV2CancelExecutionRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "delete": { "description": "Deletes an Execution.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}/executions/{executionsId}", @@ -422,7 +652,7 @@ "type": "string" }, "name": { - "description": "Required. The name of the Execution to delete. Format: projects/{project}/locations/{location}/jobs/{job}/executions/{execution}, where {project} can be project id or number.", + "description": "Required. The name of the Execution to delete. Format: `projects/{project}/locations/{location}/jobs/{job}/executions/{execution}`, where `{project}` can be project id or number.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+/executions/[^/]+$", "required": true, @@ -452,7 +682,7 @@ ], "parameters": { "name": { - "description": "Required. The full name of the Execution. Format: projects/{project}/locations/{location}/jobs/{job}/executions/{execution}, where {project} can be project id or number.", + "description": "Required. The full name of the Execution. Format: `projects/{project}/locations/{location}/jobs/{job}/executions/{execution}`, where `{project}` can be project id or number.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+/executions/[^/]+$", "required": true, @@ -488,7 +718,7 @@ "type": "string" }, "parent": { - "description": "Required. The Execution from which the Executions should be listed. To list all Executions across Jobs, use \"-\" instead of Job name. Format: projects/{project}/locations/{location}/jobs/{job}, where {project} can be project id or number.", + "description": "Required. The Execution from which the Executions should be listed. To list all Executions across Jobs, use \"-\" instead of Job name. Format: `projects/{project}/locations/{location}/jobs/{job}`, where `{project}` can be project id or number.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+$", "required": true, @@ -637,7 +867,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "run.projects.locations.operations.list", @@ -889,7 +1119,7 @@ ], "parameters": { "allowMissing": { - "description": "If set to true, and if the Service does not exist, it will create a new one. Caller must have both create and update permissions for this call if this is set to true.", + "description": "If set to true, and if the Service does not exist, it will create a new one. The caller must have 'run.services.create' permissions if this is set to true and the Service does not exist.", "location": "query", "type": "boolean" }, @@ -1087,7 +1317,7 @@ } } }, - "revision": "20230113", + "revision": "20240225", "rootUrl": "https://run.googleapis.com/", "schemas": { "GoogleCloudRunV2BinaryAuthorization": { @@ -1105,6 +1335,21 @@ }, "type": "object" }, + "GoogleCloudRunV2CancelExecutionRequest": { + "description": "Request message for deleting an Execution.", + "id": "GoogleCloudRunV2CancelExecutionRequest", + "properties": { + "etag": { + "description": "A system-generated fingerprint for this version of the resource. This may be used to detect modification conflict during updates.", + "type": "string" + }, + "validateOnly": { + "description": "Indicates that the request should be validated without actually cancelling any resources.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudRunV2CloudSqlInstance": { "description": "Represents a set of Cloud SQL instances. Each one will be available under /cloudsql/[instance]. Visit https://cloud.google.com/sql/docs/mysql/connect-run for more information on how to connect Cloud SQL and Cloud Run.", "id": "GoogleCloudRunV2CloudSqlInstance", @@ -1129,13 +1374,17 @@ "EXECUTION_REASON_UNDEFINED", "JOB_STATUS_SERVICE_POLLING_ERROR", "NON_ZERO_EXIT_CODE", - "CANCELLED" + "CANCELLED", + "CANCELLING", + "DELETED" ], "enumDescriptions": [ "Default value.", "Internal system error getting execution status. System will retry.", "A task reached its retry limit and the last attempt failed due to the user container exiting with a non-zero exit code.", - "The execution was cancelled by users." + "The execution was cancelled by users.", + "The execution is in the process of being cancelled.", + "The execution was deleted." ], "type": "string" }, @@ -1262,18 +1511,25 @@ "type": "object" }, "GoogleCloudRunV2Container": { - "description": "A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime.", + "description": "A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments can be supplied by the system to the container at runtime.", "id": "GoogleCloudRunV2Container", "properties": { "args": { - "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", + "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided.", "items": { "type": "string" }, "type": "array" }, "command": { - "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", + "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided.", + "items": { + "type": "string" + }, + "type": "array" + }, + "dependsOn": { + "description": "Names of the containers that must start before this container.", "items": { "type": "string" }, @@ -1287,12 +1543,12 @@ "type": "array" }, "image": { - "description": "Required. URL of the Container image in Google Container Registry or Google Artifact Registry. More info: https://kubernetes.io/docs/concepts/containers/images", + "description": "Required. Name of the container image in Dockerhub, Google Artifact Registry, or Google Container Registry. If the host is not provided, Dockerhub is assumed.", "type": "string" }, "livenessProbe": { "$ref": "GoogleCloudRunV2Probe", - "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" + "description": "Periodic probe of container liveness. Container will be restarted if the probe fails." }, "name": { "description": "Name of the container specified as a DNS_LABEL (RFC 1123).", @@ -1307,11 +1563,11 @@ }, "resources": { "$ref": "GoogleCloudRunV2ResourceRequirements", - "description": "Compute Resource requirements by this container. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" + "description": "Compute Resource requirements by this container." }, "startupProbe": { "$ref": "GoogleCloudRunV2Probe", - "description": "Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" + "description": "Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails." }, "volumeMounts": { "description": "Volume to mount into the container's filesystem.", @@ -1327,6 +1583,35 @@ }, "type": "object" }, + "GoogleCloudRunV2ContainerOverride": { + "description": "Per-container override specification.", + "id": "GoogleCloudRunV2ContainerOverride", + "properties": { + "args": { + "description": "Optional. Arguments to the entrypoint. Will replace existing args for override.", + "items": { + "type": "string" + }, + "type": "array" + }, + "clearArgs": { + "description": "Optional. True if the intention is to clear out existing args list.", + "type": "boolean" + }, + "env": { + "description": "List of environment variables to set in the container. Will be merged with existing env for override.", + "items": { + "$ref": "GoogleCloudRunV2EnvVar" + }, + "type": "array" + }, + "name": { + "description": "The name of the container specified as a DNS_LABEL.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRunV2ContainerPort": { "description": "ContainerPort represents a network port in a single container.", "id": "GoogleCloudRunV2ContainerPort", @@ -1343,12 +1628,35 @@ }, "type": "object" }, + "GoogleCloudRunV2EmptyDirVolumeSource": { + "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": "GoogleCloudRunV2EmptyDirVolumeSource", + "properties": { + "medium": { + "description": "The medium on which the data is stored. Acceptable values today is only MEMORY or none. When none, the default will currently be backed by memory but could change over time. +optional", + "enum": [ + "MEDIUM_UNSPECIFIED", + "MEMORY" + ], + "enumDescriptions": [ + "When not specified, falls back to the default implementation which is currently in memory (this may change over time).", + "Explicitly set the EmptyDir to be in memory. Uses tmpfs." + ], + "type": "string" + }, + "sizeLimit": { + "description": "Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers. The default is nil which means that the limit is undefined. More info: https://cloud.google.com/run/docs/configuring/in-memory-volumes#configure-volume. Info in Kubernetes: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRunV2EnvVar": { "description": "EnvVar represents an environment variable present in a Container.", "id": "GoogleCloudRunV2EnvVar", "properties": { "name": { - "description": "Required. Name of the environment variable. Must be a C_IDENTIFIER, and mnay not exceed 32768 characters.", + "description": "Required. Name of the environment variable. Must not exceed 32768 characters.", "type": "string" }, "value": { @@ -1381,7 +1689,8 @@ "additionalProperties": { "type": "string" }, - "description": "KRM-style annotations for the resource.", + "description": "Output only. 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.", + "readOnly": true, "type": "object" }, "cancelledCount": { @@ -1448,11 +1757,12 @@ "additionalProperties": { "type": "string" }, - "description": "KRM-style labels for the resource. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc. For more information, visit https://cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels", + "description": "Output only. Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc. For more information, visit https://cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels", + "readOnly": true, "type": "object" }, "launchStage": { - "description": "Set the launch stage to a preview stage on write to allow use of preview features in that stage. On read, describes whether the resource uses preview features. Launch Stages are defined at [Google Cloud Platform Launch Stages](https://cloud.google.com/terms/launch-stages).", + "description": "The least stable launch stage needed to create this resource, as defined by [Google Cloud Platform Launch Stages](https://cloud.google.com/terms/launch-stages). Cloud Run supports `ALPHA`, `BETA`, and `GA`. Note that this value might not be what was used as input. For example, if ALPHA was provided as input in the parent resource, but only BETA and GA-level features are were, this field will be BETA.", "enum": [ "LAUNCH_STAGE_UNSPECIFIED", "UNIMPLEMENTED", @@ -1492,7 +1802,7 @@ "type": "string" }, "parallelism": { - "description": "Output only. Specifies the maximum desired number of tasks the execution should run at any given time. Must be <= task_count. The actual number of tasks running in steady state will be less than this number when ((.spec.task_count - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", + "description": "Output only. Specifies the maximum desired number of tasks the execution should run at any given time. Must be <= task_count. The actual number of tasks running in steady state will be less than this number when ((.spec.task_count - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism.", "format": "int32", "readOnly": true, "type": "integer" @@ -1514,6 +1824,11 @@ "readOnly": true, "type": "integer" }, + "satisfiesPzs": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "startTime": { "description": "Output only. Represents time when the execution started to run. It is not guaranteed to be set in happens-before order across separate operations.", "format": "google-datetime", @@ -1527,7 +1842,7 @@ "type": "integer" }, "taskCount": { - "description": "Output only. Specifies the desired number of tasks the execution should run. Setting to 1 means that parallelism is limited to 1 and the success of that task signals the success of the execution. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", + "description": "Output only. Specifies the desired number of tasks the execution should run. Setting to 1 means that parallelism is limited to 1 and the success of that task signals the success of the execution.", "format": "int32", "readOnly": true, "type": "integer" @@ -1580,14 +1895,14 @@ "additionalProperties": { "type": "string" }, - "description": "KRM-style annotations for the resource. 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. All system annotations in v1 now have a corresponding field in v2 ExecutionTemplate.", + "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. All system annotations in v1 now have a corresponding field in v2 ExecutionTemplate. This field follows Kubernetes annotations' namespacing, limits, and rules.", "type": "object" }, "labels": { "additionalProperties": { "type": "string" }, - "description": "KRM-style labels for the resource. 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 ExecutionTemplate.", + "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 ExecutionTemplate.", "type": "object" }, "parallelism": { @@ -1596,7 +1911,7 @@ "type": "integer" }, "taskCount": { - "description": "Specifies the desired number of tasks the execution should run. Setting to 1 means that parallelism is limited to 1 and the success of that task signals the success of the execution. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", + "description": "Specifies the desired number of tasks the execution should run. Setting to 1 means that parallelism is limited to 1 and the success of that task signals the success of the execution. Defaults to 1.", "format": "int32", "type": "integer" }, @@ -1607,17 +1922,32 @@ }, "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", "properties": { "port": { - "description": "Port number of the gRPC service. Number must be in the range 1 to 65535. If not specified, defaults to 8080.", + "description": "Port number of the gRPC service. Number must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.", "format": "int32", "type": "integer" }, "service": { - "description": "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", + "description": "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md ). If this is not specified, the default behavior is defined by gRPC.", "type": "string" } }, @@ -1637,6 +1967,11 @@ "path": { "description": "Path to access on the HTTP server. Defaults to '/'.", "type": "string" + }, + "port": { + "description": "Port number to access on the container. Must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -1664,7 +1999,7 @@ "additionalProperties": { "type": "string" }, - "description": "KRM-style annotations for the resource. 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. All system annotations in v1 now have a corresponding field in v2 Job. This field follows Kubernetes annotations' namespacing, limits, and rules. More info: https://kubernetes.io/docs/user-guide/annotations", + "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 on new resources. All system annotations in v1 now have a corresponding field in v2 Job. This field follows Kubernetes annotations' namespacing, limits, and rules.", "type": "object" }, "binaryAuthorization": { @@ -1731,7 +2066,7 @@ "additionalProperties": { "type": "string" }, - "description": "KRM-style labels for the resource. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc. For more information, visit https://cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels Cloud Run 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 Job.", + "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 Job.", "type": "object" }, "lastModifier": { @@ -1745,7 +2080,7 @@ "readOnly": true }, "launchStage": { - "description": "The launch stage as defined by [Google Cloud Platform Launch Stages](https://cloud.google.com/terms/launch-stages). Cloud Run supports `ALPHA`, `BETA`, and `GA`. If no value is specified, GA is assumed.", + "description": "The launch stage as defined by [Google Cloud Platform Launch Stages](https://cloud.google.com/terms/launch-stages). Cloud Run supports `ALPHA`, `BETA`, and `GA`. If no value is specified, GA is assumed. Set the launch stage to a preview stage on input to allow use of preview features in that stage. On read (or output), describes whether the resource uses preview features. For example, if ALPHA is provided as input, but only BETA and GA-level features are used, this field will be BETA on output.", "enum": [ "LAUNCH_STAGE_UNSPECIFIED", "UNIMPLEMENTED", @@ -1783,6 +2118,11 @@ "readOnly": true, "type": "boolean" }, + "satisfiesPzs": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "template": { "$ref": "GoogleCloudRunV2ExecutionTemplate", "description": "Required. The template used to create executions for this Job." @@ -1896,6 +2236,71 @@ }, "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", + "properties": { + "network": { + "description": "The VPC network that the Cloud Run resource will be able to send traffic to. At least one of network or subnetwork must be specified. If both network and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If network is not specified, it will be looked up from the subnetwork.", + "type": "string" + }, + "subnetwork": { + "description": "The VPC subnetwork that the Cloud Run resource will get IPs from. At least one of network or subnetwork must be specified. If both network and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If subnetwork is not specified, the subnetwork with the same name with the network will be used.", + "type": "string" + }, + "tags": { + "description": "Network tags applied to this Cloud Run resource.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRunV2Overrides": { + "description": "RunJob Overrides that contains Execution fields to be overridden.", + "id": "GoogleCloudRunV2Overrides", + "properties": { + "containerOverrides": { + "description": "Per container override specification.", + "items": { + "$ref": "GoogleCloudRunV2ContainerOverride" + }, + "type": "array" + }, + "taskCount": { + "description": "Optional. The desired number of tasks the execution should run. Will replace existing task_count value.", + "format": "int32", + "type": "integer" + }, + "timeout": { + "description": "Duration in seconds the task may be active before the system will actively try to mark it failed and kill associated containers. Will replace existing timeout_seconds value.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRunV2Probe": { "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", "id": "GoogleCloudRunV2Probe", @@ -1914,7 +2319,7 @@ "description": "HTTPGet specifies the http request to perform. Exactly one of httpGet, tcpSocket, or grpc must be specified." }, "initialDelaySeconds": { - "description": "Number of seconds after the container has started before the probe is initiated. Defaults to 0 seconds. Minimum value is 0. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + "description": "Number of seconds after the container has started before the probe is initiated. Defaults to 0 seconds. Minimum value is 0. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240.", "format": "int32", "type": "integer" }, @@ -1928,7 +2333,7 @@ "description": "TCPSocket specifies an action involving a TCP port. Exactly one of httpGet, tcpSocket, or grpc must be specified." }, "timeoutSeconds": { - "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 3600. Must be smaller than period_seconds. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 3600. Must be smaller than period_seconds.", "format": "int32", "type": "integer" } @@ -1940,15 +2345,19 @@ "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. Note: The only supported values for CPU are '1', '2', '4', and '8'. Setting 4 CPU requires at least 2Gi of memory. The values of the map is string form of the 'quantity' k8s type: https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go", + "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": { + "description": "Determines whether CPU should be boosted on startup of a new container instance above the requested CPU threshold, this can help reduce cold-start latency.", + "type": "boolean" } }, "type": "object" @@ -1961,7 +2370,8 @@ "additionalProperties": { "type": "string" }, - "description": "KRM-style annotations for the resource.", + "description": "Output only. 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.", + "readOnly": true, "type": "object" }, "conditions": { @@ -2049,11 +2459,12 @@ "additionalProperties": { "type": "string" }, - "description": "KRM-style labels for the resource. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc. For more information, visit https://cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels", + "description": "Output only. Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc. For more information, visit https://cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels.", + "readOnly": true, "type": "object" }, "launchStage": { - "description": "Set the launch stage to a preview stage on write to allow use of preview features in that stage. On read, describes whether the resource uses preview features. Launch Stages are defined at [Google Cloud Platform Launch Stages](https://cloud.google.com/terms/launch-stages).", + "description": "The least stable launch stage needed to create this resource, as defined by [Google Cloud Platform Launch Stages](https://cloud.google.com/terms/launch-stages). Cloud Run supports `ALPHA`, `BETA`, and `GA`. Note that this value might not be what was used as input. For example, if ALPHA was provided as input in the parent resource, but only BETA and GA-level features are were, this field will be BETA.", "enum": [ "LAUNCH_STAGE_UNSPECIFIED", "UNIMPLEMENTED", @@ -2102,10 +2513,20 @@ "readOnly": true, "type": "boolean" }, + "satisfiesPzs": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "scaling": { "$ref": "GoogleCloudRunV2RevisionScaling", "description": "Scaling settings for this revision." }, + "scalingStatus": { + "$ref": "GoogleCloudRunV2RevisionScalingStatus", + "description": "Output only. The current effective scaling settings for the revision.", + "readOnly": true + }, "service": { "description": "Output only. The name of the parent service.", "readOnly": true, @@ -2115,6 +2536,10 @@ "description": "Email address of the IAM service account associated with the revision of the service. The service account represents the identity of the running revision, and determines what permissions the revision has.", "type": "string" }, + "sessionAffinity": { + "description": "Enable session affinity.", + "type": "boolean" + }, "timeout": { "description": "Max allowed time for an instance to respond to a request.", "format": "google-duration", @@ -2162,6 +2587,18 @@ }, "type": "object" }, + "GoogleCloudRunV2RevisionScalingStatus": { + "description": "Effective settings for the current revision", + "id": "GoogleCloudRunV2RevisionScalingStatus", + "properties": { + "desiredMinInstanceCount": { + "description": "The current number of min instances provisioned for this revision.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudRunV2RevisionTemplate": { "description": "RevisionTemplate describes the data a revision should have when created from a template.", "id": "GoogleCloudRunV2RevisionTemplate", @@ -2170,7 +2607,7 @@ "additionalProperties": { "type": "string" }, - "description": "KRM-style annotations for the resource. 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. All system annotations in v1 now have a corresponding field in v2 RevisionTemplate.", + "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. All system annotations in v1 now have a corresponding field in v2 RevisionTemplate. This field follows Kubernetes annotations' namespacing, limits, and rules.", "type": "object" }, "containers": { @@ -2198,11 +2635,15 @@ ], "type": "string" }, + "healthCheckDisabled": { + "description": "Optional. Disables health checking containers during deployment.", + "type": "boolean" + }, "labels": { "additionalProperties": { "type": "string" }, - "description": "KRM-style labels for the resource. 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 RevisionTemplate.", + "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 RevisionTemplate.", "type": "object" }, "maxInstanceRequestConcurrency": { @@ -2222,6 +2663,10 @@ "description": "Email address of the IAM service account associated with the revision of the service. The service account represents the identity of the running revision, and determines what permissions the revision has. If not provided, the revision will use the project's default service account.", "type": "string" }, + "sessionAffinity": { + "description": "Optional. Enable session affinity.", + "type": "boolean" + }, "timeout": { "description": "Max allowed time for an instance to respond to a request.", "format": "google-duration", @@ -2249,6 +2694,10 @@ "description": "A system-generated fingerprint for this version of the resource. May be used to detect modification conflict during updates.", "type": "string" }, + "overrides": { + "$ref": "GoogleCloudRunV2Overrides", + "description": "Overrides specification for a given execution of a job. If provided, overrides will be applied to update the execution or task spec." + }, "validateOnly": { "description": "Indicates that the request should be validated without actually deleting any resources.", "type": "boolean" @@ -2302,7 +2751,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. All system annotations in v1 now have a corresponding field in v2 Service. This field follows Kubernetes annotations' namespacing, limits, and rules. More info: https://kubernetes.io/docs/user-guide/annotations", + "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": { @@ -2336,6 +2785,17 @@ "readOnly": true, "type": "string" }, + "customAudiences": { + "description": "One or more custom audiences that you want this service to support. Specify each custom audience as the full URL in a string. The custom audiences are encoded in the token and used to authenticate requests. For more information, see https://cloud.google.com/run/docs/configuring/custom-audiences.", + "items": { + "type": "string" + }, + "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", @@ -2383,7 +2843,7 @@ "additionalProperties": { "type": "string" }, - "description": "Map of string keys and values that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc. For more information, visit https://cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels Cloud Run 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": { @@ -2402,7 +2862,7 @@ "type": "string" }, "launchStage": { - "description": "The launch stage as defined by [Google Cloud Platform Launch Stages](https://cloud.google.com/terms/launch-stages). Cloud Run supports `ALPHA`, `BETA`, and `GA`. If no value is specified, GA is assumed.", + "description": "The launch stage as defined by [Google Cloud Platform Launch Stages](https://cloud.google.com/terms/launch-stages). Cloud Run supports `ALPHA`, `BETA`, and `GA`. If no value is specified, GA is assumed. Set the launch stage to a preview stage on input to allow use of preview features in that stage. On read (or output), describes whether the resource uses preview features. For example, if ALPHA is provided as input, but only BETA and GA-level features are used, this field will be BETA on output.", "enum": [ "LAUNCH_STAGE_UNSPECIFIED", "UNIMPLEMENTED", @@ -2440,6 +2900,15 @@ "readOnly": true, "type": "boolean" }, + "satisfiesPzs": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, + "scaling": { + "$ref": "GoogleCloudRunV2ServiceScaling", + "description": "Optional. Specifies service-level scaling settings" + }, "template": { "$ref": "GoogleCloudRunV2RevisionTemplate", "description": "Required. The template used to create revisions for this Service." @@ -2483,12 +2952,24 @@ }, "type": "object" }, + "GoogleCloudRunV2ServiceScaling": { + "description": "Scaling settings applied at the service level rather than at the revision level.", + "id": "GoogleCloudRunV2ServiceScaling", + "properties": { + "minInstanceCount": { + "description": "total min instances for the service. This number of instances is divided among all revisions with specified traffic based on the percent of traffic they are receiving. (ALPHA)", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudRunV2TCPSocketAction": { "description": "TCPSocketAction describes an action based on opening a socket", "id": "GoogleCloudRunV2TCPSocketAction", "properties": { "port": { - "description": "Port number to access on the container. Must be in the range 1 to 65535. If not specified, defaults to 8080.", + "description": "Port number to access on the container. Must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.", "format": "int32", "type": "integer" } @@ -2503,7 +2984,8 @@ "additionalProperties": { "type": "string" }, - "description": "KRM-style annotations for the resource.", + "description": "Output only. 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.", + "readOnly": true, "type": "object" }, "completionTime": { @@ -2528,7 +3010,7 @@ "type": "array" }, "createTime": { - "description": "Output only. Represents time when the task was created by the job controller. It is not guaranteed to be set in happens-before order across separate operations.", + "description": "Output only. Represents time when the task was created by the system. It is not guaranteed to be set in happens-before order across separate operations.", "format": "google-datetime", "readOnly": true, "type": "string" @@ -2595,7 +3077,8 @@ "additionalProperties": { "type": "string" }, - "description": "KRM-style labels for the resource. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc. For more information, visit https://cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels", + "description": "Output only. Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc. For more information, visit https://cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels", + "readOnly": true, "type": "object" }, "lastAttemptResult": { @@ -2635,6 +3118,17 @@ "readOnly": true, "type": "integer" }, + "satisfiesPzs": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, + "scheduledTime": { + "description": "Output only. Represents time when the task was scheduled to run by the system. It is not guaranteed to be set in happens-before order across separate operations.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "serviceAccount": { "description": "Email address of the IAM service account associated with the Task of a Job. The service account represents the identity of the running task, and determines what permissions the task has. If not provided, the task will use the project's default service account.", "type": "string" @@ -2724,7 +3218,7 @@ "type": "string" }, "maxRetries": { - "description": "Number of retries allowed per Task, before marking this Task failed.", + "description": "Number of retries allowed per Task, before marking this Task failed. Defaults to 3.", "format": "int32", "type": "integer" }, @@ -2733,7 +3227,7 @@ "type": "string" }, "timeout": { - "description": "Max allowed time duration the Task may be active before the system will actively try to mark it failed and kill associated containers. This applies per attempt of a task, meaning each retry can run for the full timeout.", + "description": "Max allowed time duration the Task may be active before the system will actively try to mark it failed and kill associated containers. This applies per attempt of a task, meaning each retry can run for the full timeout. Defaults to 600 seconds.", "format": "google-duration", "type": "string" }, @@ -2851,13 +3345,25 @@ "$ref": "GoogleCloudRunV2CloudSqlInstance", "description": "For Cloud SQL volumes, contains the specific instances that should be mounted. Visit https://cloud.google.com/sql/docs/mysql/connect-run for more information on how to connect Cloud SQL and Cloud Run." }, + "emptyDir": { + "$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. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + "description": "Secret represents a secret that should populate this volume." } }, "type": "object" @@ -2878,15 +3384,15 @@ "type": "object" }, "GoogleCloudRunV2VpcAccess": { - "description": "VPC Access settings. For more information on creating a VPC Connector, visit https://cloud.google.com/vpc/docs/configure-serverless-vpc-access For information on how to configure Cloud Run with an existing VPC Connector, visit https://cloud.google.com/run/docs/configuring/connecting-vpc", + "description": "VPC Access settings. For more information on sending traffic to a VPC network, visit https://cloud.google.com/run/docs/configuring/connecting-vpc.", "id": "GoogleCloudRunV2VpcAccess", "properties": { "connector": { - "description": "VPC Access connector name. Format: projects/{project}/locations/{location}/connectors/{connector}, where {project} can be project id or number.", + "description": "VPC Access connector name. Format: projects/{project}/locations/{location}/connectors/{connector}, where {project} can be project id or number. For more information on sending traffic to a VPC network via a connector, visit https://cloud.google.com/run/docs/configuring/vpc-connectors.", "type": "string" }, "egress": { - "description": "Traffic VPC egress settings.", + "description": "Traffic VPC egress settings. If not provided, it defaults to PRIVATE_RANGES_ONLY.", "enum": [ "VPC_EGRESS_UNSPECIFIED", "ALL_TRAFFIC", @@ -2898,6 +3404,13 @@ "Only private IP ranges are routed through the VPC connector." ], "type": "string" + }, + "networkInterfaces": { + "description": "Direct VPC egress settings. Currently only single network interface is supported.", + "items": { + "$ref": "GoogleCloudRunV2NetworkInterface" + }, + "type": "array" } }, "type": "object" @@ -2959,21 +3472,21 @@ "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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" }, "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/).", + "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": { "auditConfigs": { @@ -3094,7 +3607,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/etc/api/runtimeconfig/v1/runtimeconfig-api.json b/etc/api/runtimeconfig/v1/runtimeconfig-api.json index 33966ba8dd..d1a1fcc635 100644 --- a/etc/api/runtimeconfig/v1/runtimeconfig-api.json +++ b/etc/api/runtimeconfig/v1/runtimeconfig-api.json @@ -166,7 +166,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/operations", "httpMethod": "GET", "id": "runtimeconfig.operations.list", @@ -210,7 +210,7 @@ } } }, - "revision": "20230109", + "revision": "20240227", "rootUrl": "https://runtimeconfig.googleapis.com/", "schemas": { "CancelOperationRequest": { @@ -272,7 +272,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/etc/api/runtimeconfig/v1beta1/runtimeconfig-api.json b/etc/api/runtimeconfig/v1beta1/runtimeconfig-api.json index b825b049d1..a636dbd40c 100644 --- a/etc/api/runtimeconfig/v1beta1/runtimeconfig-api.json +++ b/etc/api/runtimeconfig/v1beta1/runtimeconfig-api.json @@ -805,7 +805,7 @@ } } }, - "revision": "20230123", + "revision": "20240227", "rootUrl": "https://runtimeconfig.googleapis.com/", "schemas": { "Binding": { @@ -817,14 +817,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" } }, @@ -969,14 +969,14 @@ "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" } }, "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/).", + "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": { "bindings": { diff --git a/etc/api/safebrowsing/v4/safebrowsing-api.json b/etc/api/safebrowsing/v4/safebrowsing-api.json index 3313b848e8..bd57441376 100644 --- a/etc/api/safebrowsing/v4/safebrowsing-api.json +++ b/etc/api/safebrowsing/v4/safebrowsing-api.json @@ -261,7 +261,7 @@ } } }, - "revision": "20230108", + "revision": "20240225", "rootUrl": "https://safebrowsing.googleapis.com/", "schemas": { "GoogleProtobufEmpty": { @@ -396,8 +396,7 @@ "SUSPICIOUS", "TRICK_TO_BILL", "HIGH_CONFIDENCE_ALLOWLIST", - "ACCURACY_TIPS", - "SOCIAL_ENGINEERING_LOWER_PRECISION" + "ACCURACY_TIPS" ], "enumDescriptions": [ "Unknown.", @@ -411,14 +410,13 @@ "Client side detection whitelist threat type.", "Client side download detection whitelist threat type.", "Client incident threat type.", - "Whitelist used when detecting client incident threats. This enum was never launched and should be re-used for the next list.", + "Whitelist used when detecting client incident threats.", "List used for offline APK checks in PAM.", - "Patterns to be used for activating the subresource filter. Interstitial will not be shown for patterns from this list.", + "Patterns to be used for activating the subresource filter.", "Entities that are suspected to present a threat.", - "Trick-to-bill threat list.", - "Safe list to ship hashes of known safe URL expressions.", - "List from the Jigsaw team to show accuracy tips in Chrome. See go/sb-accuracytips.", - "Lower precision phishing list for WebRisk. See go/lower-precision-blocklists-enterprise." + "Trick-to-bill threat type.", + "URL expressions that are very likely to be safe.", + "An experimental threat type related to Jigsaw. See https://jigsaw.google.com/." ], "type": "string" } @@ -598,8 +596,7 @@ "SUSPICIOUS", "TRICK_TO_BILL", "HIGH_CONFIDENCE_ALLOWLIST", - "ACCURACY_TIPS", - "SOCIAL_ENGINEERING_LOWER_PRECISION" + "ACCURACY_TIPS" ], "enumDescriptions": [ "Unknown.", @@ -613,14 +610,13 @@ "Client side detection whitelist threat type.", "Client side download detection whitelist threat type.", "Client incident threat type.", - "Whitelist used when detecting client incident threats. This enum was never launched and should be re-used for the next list.", + "Whitelist used when detecting client incident threats.", "List used for offline APK checks in PAM.", - "Patterns to be used for activating the subresource filter. Interstitial will not be shown for patterns from this list.", + "Patterns to be used for activating the subresource filter.", "Entities that are suspected to present a threat.", - "Trick-to-bill threat list.", - "Safe list to ship hashes of known safe URL expressions.", - "List from the Jigsaw team to show accuracy tips in Chrome. See go/sb-accuracytips.", - "Lower precision phishing list for WebRisk. See go/lower-precision-blocklists-enterprise." + "Trick-to-bill threat type.", + "URL expressions that are very likely to be safe.", + "An experimental threat type related to Jigsaw. See https://jigsaw.google.com/." ], "type": "string" } @@ -930,8 +926,7 @@ "SUSPICIOUS", "TRICK_TO_BILL", "HIGH_CONFIDENCE_ALLOWLIST", - "ACCURACY_TIPS", - "SOCIAL_ENGINEERING_LOWER_PRECISION" + "ACCURACY_TIPS" ], "enumDescriptions": [ "Unknown.", @@ -945,14 +940,13 @@ "Client side detection whitelist threat type.", "Client side download detection whitelist threat type.", "Client incident threat type.", - "Whitelist used when detecting client incident threats. This enum was never launched and should be re-used for the next list.", + "Whitelist used when detecting client incident threats.", "List used for offline APK checks in PAM.", - "Patterns to be used for activating the subresource filter. Interstitial will not be shown for patterns from this list.", + "Patterns to be used for activating the subresource filter.", "Entities that are suspected to present a threat.", - "Trick-to-bill threat list.", - "Safe list to ship hashes of known safe URL expressions.", - "List from the Jigsaw team to show accuracy tips in Chrome. See go/sb-accuracytips.", - "Lower precision phishing list for WebRisk. See go/lower-precision-blocklists-enterprise." + "Trick-to-bill threat type.", + "URL expressions that are very likely to be safe.", + "An experimental threat type related to Jigsaw. See https://jigsaw.google.com/." ], "type": "string" }, @@ -1102,8 +1096,7 @@ "SUSPICIOUS", "TRICK_TO_BILL", "HIGH_CONFIDENCE_ALLOWLIST", - "ACCURACY_TIPS", - "SOCIAL_ENGINEERING_LOWER_PRECISION" + "ACCURACY_TIPS" ], "enumDescriptions": [ "Unknown.", @@ -1117,14 +1110,13 @@ "Client side detection whitelist threat type.", "Client side download detection whitelist threat type.", "Client incident threat type.", - "Whitelist used when detecting client incident threats. This enum was never launched and should be re-used for the next list.", + "Whitelist used when detecting client incident threats.", "List used for offline APK checks in PAM.", - "Patterns to be used for activating the subresource filter. Interstitial will not be shown for patterns from this list.", + "Patterns to be used for activating the subresource filter.", "Entities that are suspected to present a threat.", - "Trick-to-bill threat list.", - "Safe list to ship hashes of known safe URL expressions.", - "List from the Jigsaw team to show accuracy tips in Chrome. See go/sb-accuracytips.", - "Lower precision phishing list for WebRisk. See go/lower-precision-blocklists-enterprise." + "Trick-to-bill threat type.", + "URL expressions that are very likely to be safe.", + "An experimental threat type related to Jigsaw. See https://jigsaw.google.com/." ], "type": "string" }, @@ -1205,8 +1197,7 @@ "SUSPICIOUS", "TRICK_TO_BILL", "HIGH_CONFIDENCE_ALLOWLIST", - "ACCURACY_TIPS", - "SOCIAL_ENGINEERING_LOWER_PRECISION" + "ACCURACY_TIPS" ], "enumDescriptions": [ "Unknown.", @@ -1220,14 +1211,13 @@ "Client side detection whitelist threat type.", "Client side download detection whitelist threat type.", "Client incident threat type.", - "Whitelist used when detecting client incident threats. This enum was never launched and should be re-used for the next list.", + "Whitelist used when detecting client incident threats.", "List used for offline APK checks in PAM.", - "Patterns to be used for activating the subresource filter. Interstitial will not be shown for patterns from this list.", + "Patterns to be used for activating the subresource filter.", "Entities that are suspected to present a threat.", - "Trick-to-bill threat list.", - "Safe list to ship hashes of known safe URL expressions.", - "List from the Jigsaw team to show accuracy tips in Chrome. See go/sb-accuracytips.", - "Lower precision phishing list for WebRisk. See go/lower-precision-blocklists-enterprise." + "Trick-to-bill threat type.", + "URL expressions that are very likely to be safe.", + "An experimental threat type related to Jigsaw. See https://jigsaw.google.com/." ], "type": "string" } @@ -1319,8 +1309,7 @@ "SUSPICIOUS", "TRICK_TO_BILL", "HIGH_CONFIDENCE_ALLOWLIST", - "ACCURACY_TIPS", - "SOCIAL_ENGINEERING_LOWER_PRECISION" + "ACCURACY_TIPS" ], "enumDescriptions": [ "Unknown.", @@ -1334,14 +1323,13 @@ "Client side detection whitelist threat type.", "Client side download detection whitelist threat type.", "Client incident threat type.", - "Whitelist used when detecting client incident threats. This enum was never launched and should be re-used for the next list.", + "Whitelist used when detecting client incident threats.", "List used for offline APK checks in PAM.", - "Patterns to be used for activating the subresource filter. Interstitial will not be shown for patterns from this list.", + "Patterns to be used for activating the subresource filter.", "Entities that are suspected to present a threat.", - "Trick-to-bill threat list.", - "Safe list to ship hashes of known safe URL expressions.", - "List from the Jigsaw team to show accuracy tips in Chrome. See go/sb-accuracytips.", - "Lower precision phishing list for WebRisk. See go/lower-precision-blocklists-enterprise." + "Trick-to-bill threat type.", + "URL expressions that are very likely to be safe.", + "An experimental threat type related to Jigsaw. See https://jigsaw.google.com/." ], "type": "string" } diff --git a/etc/api/sasportal/v1alpha1/sasportal-api.json b/etc/api/sasportal/v1alpha1/sasportal-api.json index 14ff3cc82a..6252cf3bab 100644 --- a/etc/api/sasportal/v1alpha1/sasportal-api.json +++ b/etc/api/sasportal/v1alpha1/sasportal-api.json @@ -2,6 +2,9 @@ "auth": { "oauth2": { "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." + }, "https://www.googleapis.com/auth/sasportal": { "description": "Read, create, update, and delete your SAS Portal data." } @@ -128,6 +131,7 @@ "$ref": "SasPortalCustomer" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -155,6 +159,58 @@ "$ref": "SasPortalListCustomersResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "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", + "httpMethod": "POST", + "id": "sasportal.customers.migrateOrganization", + "parameterOrder": [], + "parameters": {}, + "path": "v1alpha1/customers:migrateOrganization", + "request": { + "$ref": "SasPortalMigrateOrganizationRequest" + }, + "response": { + "$ref": "SasPortalOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -189,6 +245,45 @@ "$ref": "SasPortalCustomer" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sasportal" + ] + }, + "provisionDeployment": { + "description": "Creates a new SAS deployment through the GCP workflow. Creates a SAS organization if an organization match is not found.", + "flatPath": "v1alpha1/customers:provisionDeployment", + "httpMethod": "POST", + "id": "sasportal.customers.provisionDeployment", + "parameterOrder": [], + "parameters": {}, + "path": "v1alpha1/customers:provisionDeployment", + "request": { + "$ref": "SasPortalProvisionDeploymentRequest" + }, + "response": { + "$ref": "SasPortalProvisionDeploymentResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sasportal" + ] + }, + "setupSasAnalytics": { + "description": "Setups the a GCP Project to receive SAS Analytics messages via GCP Pub/Sub with a subscription to BigQuery. All the Pub/Sub topics and BigQuery tables are created automatically as part of this service.", + "flatPath": "v1alpha1/customers:setupSasAnalytics", + "httpMethod": "POST", + "id": "sasportal.customers.setupSasAnalytics", + "parameterOrder": [], + "parameters": {}, + "path": "v1alpha1/customers:setupSasAnalytics", + "request": { + "$ref": "SasPortalSetupSasAnalyticsRequest" + }, + "response": { + "$ref": "SasPortalOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -221,6 +316,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -246,6 +342,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -271,6 +368,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -312,6 +410,7 @@ "$ref": "SasPortalListDeploymentsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -340,6 +439,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -374,6 +474,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -406,6 +507,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -434,6 +536,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -475,6 +578,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -509,6 +613,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -537,6 +642,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -562,6 +668,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -587,6 +694,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -628,6 +736,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -656,6 +765,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -690,6 +800,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -718,6 +829,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -746,6 +858,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -778,6 +891,7 @@ "$ref": "SasPortalNode" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -803,6 +917,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -828,6 +943,7 @@ "$ref": "SasPortalNode" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -869,6 +985,7 @@ "$ref": "SasPortalListNodesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -897,6 +1014,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -931,6 +1049,7 @@ "$ref": "SasPortalNode" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -963,6 +1082,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1004,6 +1124,7 @@ "$ref": "SasPortalListDeploymentsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -1036,6 +1157,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1064,6 +1186,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1105,6 +1228,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -1137,6 +1261,7 @@ "$ref": "SasPortalNode" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1178,6 +1303,7 @@ "$ref": "SasPortalListNodesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -1211,6 +1337,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -1240,6 +1367,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1265,6 +1393,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1293,6 +1422,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1327,6 +1457,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1355,6 +1486,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1383,6 +1515,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -1407,6 +1540,7 @@ "$ref": "SasPortalGenerateSecretResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1425,6 +1559,7 @@ "$ref": "SasPortalValidateInstallerResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -1454,6 +1589,7 @@ "$ref": "SasPortalNode" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -1483,6 +1619,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1508,6 +1645,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1549,6 +1687,7 @@ "$ref": "SasPortalListDeploymentsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1577,6 +1716,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1611,6 +1751,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -1643,6 +1784,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1671,6 +1813,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1712,6 +1855,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -1746,6 +1890,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1774,6 +1919,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1799,6 +1945,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1824,6 +1971,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1865,6 +2013,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1893,6 +2042,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1927,6 +2077,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1955,6 +2106,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -1983,6 +2135,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -2015,6 +2168,7 @@ "$ref": "SasPortalNode" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2040,6 +2194,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2065,6 +2220,7 @@ "$ref": "SasPortalNode" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2106,6 +2262,7 @@ "$ref": "SasPortalListNodesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2134,6 +2291,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2168,6 +2326,7 @@ "$ref": "SasPortalNode" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -2200,6 +2359,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2241,6 +2401,7 @@ "$ref": "SasPortalListDeploymentsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -2273,6 +2434,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2301,6 +2463,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2342,6 +2505,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -2374,6 +2538,7 @@ "$ref": "SasPortalNode" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2415,6 +2580,7 @@ "$ref": "SasPortalListNodesResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } @@ -2441,6 +2607,7 @@ "$ref": "SasPortalPolicy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2459,6 +2626,7 @@ "$ref": "SasPortalPolicy" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] }, @@ -2477,13 +2645,14 @@ "$ref": "SasPortalTestPermissionsResponse" }, "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sasportal" ] } } } }, - "revision": "20230121", + "revision": "20240226", "rootUrl": "https://sasportal.googleapis.com/", "schemas": { "SasPortalAssignment": { @@ -2589,6 +2758,21 @@ }, "type": "object" }, + "SasPortalDeploymentAssociation": { + "description": "Association between a gcp project and a SAS user id.", + "id": "SasPortalDeploymentAssociation", + "properties": { + "gcpProjectId": { + "description": "GCP project id of the associated project.", + "type": "string" + }, + "userId": { + "description": "User id of the deployment.", + "type": "string" + } + }, + "type": "object" + }, "SasPortalDevice": { "id": "SasPortalDevice", "properties": { @@ -2597,6 +2781,7 @@ "description": "Output only. Current configuration of the device as registered to the SAS." }, "currentChannels": { + "deprecated": true, "description": "Output only. Current channels with scores.", "items": { "$ref": "SasPortalChannelWithScore" @@ -2613,7 +2798,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": { @@ -2874,6 +3059,7 @@ "type": "string" }, "nrqzValidated": { + "deprecated": true, "description": "Output only. Set to `true` if a CPI has validated that they have coordinated with the National Quiet Zone office.", "readOnly": true, "type": "boolean" @@ -2951,6 +3137,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", @@ -3003,11 +3204,6 @@ "format": "int32", "type": "integer" }, - "antennaGainNewField": { - "description": "As above, but as a DoubleValue.", - "format": "double", - "type": "number" - }, "antennaModel": { "description": "If an external antenna is used, the antenna model is optionally provided in this field. The string has a maximum length of 128 octets.", "type": "string" @@ -3021,11 +3217,6 @@ "format": "int32", "type": "integer" }, - "eirpCapabilityNewField": { - "description": "As above, but as a DoubleValue.", - "format": "double", - "type": "number" - }, "height": { "description": "Device antenna height in meters. When the `heightType` parameter value is \"AGL\", the antenna height should be given relative to ground level. When the `heightType` parameter value is \"AMSL\", it is given with respect to WGS84 datum.", "format": "double", @@ -3126,6 +3317,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", @@ -3144,6 +3363,58 @@ }, "type": "object" }, + "SasPortalMigrateOrganizationMetadata": { + "description": "Long-running operation metadata message returned by the MigrateOrganization.", + "id": "SasPortalMigrateOrganizationMetadata", + "properties": { + "operationState": { + "description": "Output only. Current operation state", + "enum": [ + "OPERATION_STATE_UNSPECIFIED", + "OPERATION_STATE_PENDING", + "OPERATION_STATE_RUNNING", + "OPERATION_STATE_SUCCEEDED", + "OPERATION_STATE_FAILED" + ], + "enumDescriptions": [ + "Unspecified.", + "Pending (Not started).", + "In-progress.", + "Done successfully.", + "Done with errors." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "SasPortalMigrateOrganizationRequest": { + "description": "Request for [MigrateOrganization]. [spectrum.sas.portal.v1alpha1.Provisioning.MigrateOrganization]. GCP Project, Organization Info, and caller's GAIA ID should be retrieved from the RPC handler, and used to check authorization on SAS Portal organization and to create GCP Projects.", + "id": "SasPortalMigrateOrganizationRequest", + "properties": { + "organizationId": { + "description": "Required. Id of the SAS organization to be migrated.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "SasPortalMigrateOrganizationResponse": { + "description": "Response for [MigrateOrganization]. [spectrum.sas.portal.v1alpha1.Provisioning.MigrateOrganization].", + "id": "SasPortalMigrateOrganizationResponse", + "properties": { + "deploymentAssociation": { + "description": "Optional. A list of deployment association that were created for the migration, or current associations if they already exist.", + "items": { + "$ref": "SasPortalDeploymentAssociation" + }, + "type": "array" + } + }, + "type": "object" + }, "SasPortalMoveDeploymentRequest": { "description": "Request for MoveDeployment.", "id": "SasPortalMoveDeploymentRequest", @@ -3267,12 +3538,28 @@ "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" } }, "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", @@ -3292,6 +3579,37 @@ }, "type": "object" }, + "SasPortalProvisionDeploymentRequest": { + "description": "Request for [ProvisionDeployment]. [spectrum.sas.portal.v1alpha1.Provisioning.ProvisionDeployment]. GCP Project, Organization Info, and caller\u2019s GAIA ID should be retrieved from the RPC handler, and used as inputs to create a new SAS organization (if not exists) and a new SAS deployment.", + "id": "SasPortalProvisionDeploymentRequest", + "properties": { + "newDeploymentDisplayName": { + "description": "Optional. If this field is set, and a new SAS Portal Deployment needs to be created, its display name will be set to the value of this field.", + "type": "string" + }, + "newOrganizationDisplayName": { + "description": "Optional. If this field is set, and a new SAS Portal Organization needs to be created, its display name will be set to the value of this field.", + "type": "string" + }, + "organizationId": { + "description": "Optional. If this field is set then a new deployment will be created under the organization specified by this id.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "SasPortalProvisionDeploymentResponse": { + "description": "Response for [ProvisionDeployment]. [spectrum.sas.portal.v1alpha1.Provisioning.ProvisionDeployment].", + "id": "SasPortalProvisionDeploymentResponse", + "properties": { + "errorMessage": { + "description": "Optional. Optional error message if the provisioning request is not successful.", + "type": "string" + } + }, + "type": "object" + }, "SasPortalSetPolicyRequest": { "description": "Request message for `SetPolicy` method.", "id": "SasPortalSetPolicyRequest", @@ -3311,6 +3629,29 @@ }, "type": "object" }, + "SasPortalSetupSasAnalyticsMetadata": { + "description": "Metadata returned by the long running operation for the SetupSasAnalytics rpc.", + "id": "SasPortalSetupSasAnalyticsMetadata", + "properties": {}, + "type": "object" + }, + "SasPortalSetupSasAnalyticsRequest": { + "description": "Request for the SetupSasAnalytics rpc.", + "id": "SasPortalSetupSasAnalyticsRequest", + "properties": { + "userId": { + "description": "Optional. User id to setup analytics for, if not provided the user id associated with the project is used. optional", + "type": "string" + } + }, + "type": "object" + }, + "SasPortalSetupSasAnalyticsResponse": { + "description": "Response returned by the long running operation for the SetupSasAnalytics rpc.", + "id": "SasPortalSetupSasAnalyticsResponse", + "properties": {}, + "type": "object" + }, "SasPortalSignDeviceRequest": { "description": "Request for SignDevice.", "id": "SasPortalSignDeviceRequest", diff --git a/etc/api/script/v1/script-api.json b/etc/api/script/v1/script-api.json index 528f3c3c30..d701a8a195 100644 --- a/etc/api/script/v1/script-api.json +++ b/etc/api/script/v1/script-api.json @@ -219,7 +219,8 @@ "FAILED", "TIMED_OUT", "UNKNOWN", - "DELAYED" + "DELAYED", + "EXECUTION_DISABLED" ], "enumDescriptions": [ "Unspecified status.", @@ -230,7 +231,8 @@ "The process failed.", "The process timed out.", "Process status unknown.", - "The process is delayed, waiting for quota." + "The process is delayed, waiting for quota.", + "AppsScript executions are disabled by Admin." ], "location": "query", "repeated": true, @@ -351,7 +353,8 @@ "FAILED", "TIMED_OUT", "UNKNOWN", - "DELAYED" + "DELAYED", + "EXECUTION_DISABLED" ], "enumDescriptions": [ "Unspecified status.", @@ -362,7 +365,8 @@ "The process failed.", "The process timed out.", "Process status unknown.", - "The process is delayed, waiting for quota." + "The process is delayed, waiting for quota.", + "AppsScript executions are disabled by Admin." ], "location": "query", "repeated": true, @@ -856,7 +860,7 @@ ], "parameters": { "scriptId": { - "description": "The script ID of the script to be executed. Find the script ID on the **Project settings** page under \"IDs.\"", + "description": "The script ID of the script to be executed. Find the script ID on the **Project settings** page under \"IDs.\" As multiple executable APIs can be deployed in new IDE for same script, this field should be populated with DeploymentID generated while deploying in new IDE instead of script ID.", "location": "path", "required": true, "type": "string" @@ -887,7 +891,7 @@ } } }, - "revision": "20230124", + "revision": "20240225", "rootUrl": "https://script.googleapis.com/", "schemas": { "Content": { @@ -1267,7 +1271,8 @@ "FAILED", "TIMED_OUT", "UNKNOWN", - "DELAYED" + "DELAYED", + "EXECUTION_DISABLED" ], "enumDescriptions": [ "Unspecified status.", @@ -1278,7 +1283,8 @@ "The process failed.", "The process timed out.", "Process status unknown.", - "The process is delayed, waiting for quota." + "The process is delayed, waiting for quota.", + "AppsScript executions are disabled by Admin." ], "type": "string" }, @@ -1314,6 +1320,20 @@ "description": "Name of the script being executed.", "type": "string" }, + "runtimeVersion": { + "description": "Which version of maestro to use to execute the script.", + "enum": [ + "RUNTIME_VERSION_UNSPECIFIED", + "DEPRECATED_ES5", + "V8" + ], + "enumDescriptions": [ + "Runtime version unset / unknown.", + "Legacy rhino version of the Apps script runtime", + "Current default V8 version of the apps script runtime." + ], + "type": "string" + }, "startTime": { "description": "Time the execution started.", "format": "google-datetime", diff --git a/etc/api/searchconsole/v1/searchconsole-api.json b/etc/api/searchconsole/v1/searchconsole-api.json index 5e6eb0b2a7..ce3af4b94a 100644 --- a/etc/api/searchconsole/v1/searchconsole-api.json +++ b/etc/api/searchconsole/v1/searchconsole-api.json @@ -400,7 +400,7 @@ } } }, - "revision": "20230123", + "revision": "20240304", "rootUrl": "https://searchconsole.googleapis.com/", "schemas": { "AmpInspectionResult": { @@ -1114,9 +1114,11 @@ "enum": [ "AUTO", "BY_PROPERTY", - "BY_PAGE" + "BY_PAGE", + "BY_NEWS_SHOWCASE_PANEL" ], "enumDescriptions": [ + "", "", "", "" @@ -1237,9 +1239,11 @@ "enum": [ "AUTO", "BY_PROPERTY", - "BY_PAGE" + "BY_PAGE", + "BY_NEWS_SHOWCASE_PANEL" ], "enumDescriptions": [ + "", "", "", "" @@ -1416,6 +1420,15 @@ "PATTERN_SITEMAP", "OCEANFRONT" ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + true, + true + ], "enumDescriptions": [ "", "", @@ -1440,6 +1453,7 @@ "id": "WmxSitemapContent", "properties": { "indexed": { + "deprecated": true, "description": "*Deprecated; do not use.*", "format": "int64", "type": "string" @@ -1462,6 +1476,17 @@ "IOS_APP", "DATA_FEED_ELEMENT" ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", diff --git a/etc/api/secretmanager/v1/secretmanager-api.json b/etc/api/secretmanager/v1/secretmanager-api.json index dd1160759c..93a9f1a72c 100644 --- a/etc/api/secretmanager/v1/secretmanager-api.json +++ b/etc/api/secretmanager/v1/secretmanager-api.json @@ -175,6 +175,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": { @@ -189,7 +654,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, @@ -217,7 +682,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, @@ -280,7 +745,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, @@ -352,7 +817,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, @@ -471,7 +936,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, @@ -496,7 +961,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, @@ -524,7 +989,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, @@ -552,7 +1017,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, @@ -580,7 +1045,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, @@ -621,7 +1086,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, @@ -643,7 +1108,7 @@ } } }, - "revision": "20230114", + "revision": "20240223", "rootUrl": "https://secretmanager.googleapis.com/", "schemas": { "AccessSecretVersionResponse": { @@ -651,7 +1116,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": { @@ -752,14 +1217,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -914,7 +1379,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -948,7 +1413,7 @@ "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/).", + "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": { @@ -1097,7 +1562,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", @@ -1120,7 +1585,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" } }, @@ -1247,7 +1712,7 @@ "id": "Topic", "properties": { "name": { - "description": "Required. The resource name of the Pub/Sub topic that will be published to, in the following format: `projects/*/topics/*`. For publication to succeed, the Secret Manager P4SA must have `pubsub.publisher` permissions on the topic.", + "description": "Required. The resource name of the Pub/Sub topic that will be published to, in the following format: `projects/*/topics/*`. For publication to succeed, the Secret Manager service agent must have the `pubsub.topic.publish` permission on the topic. The Pub/Sub Publisher role (`roles/pubsub.publisher`) includes this permission.", "type": "string" } }, diff --git a/etc/api/secretmanager/v1beta1/secretmanager-api.json b/etc/api/secretmanager/v1beta1/secretmanager-api.json index c1f5dbbdbe..544a943336 100644 --- a/etc/api/secretmanager/v1beta1/secretmanager-api.json +++ b/etc/api/secretmanager/v1beta1/secretmanager-api.json @@ -628,7 +628,7 @@ } } }, - "revision": "20230114", + "revision": "20240223", "rootUrl": "https://secretmanager.googleapis.com/", "schemas": { "AccessSecretVersionResponse": { @@ -720,14 +720,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -845,7 +845,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -879,7 +879,7 @@ "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/).", + "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": { diff --git a/etc/api/securitycenter/v1/securitycenter-api.json b/etc/api/securitycenter/v1/securitycenter-api.json index f98a611907..c5ddc98179 100644 --- a/etc/api/securitycenter/v1/securitycenter-api.json +++ b/etc/api/securitycenter/v1/securitycenter-api.json @@ -110,6 +110,7 @@ "assets": { "methods": { "group": { + "deprecated": true, "description": "Filters an organization's assets and groups them by their specified properties.", "flatPath": "v1/folders/{foldersId}/assets:group", "httpMethod": "POST", @@ -138,6 +139,7 @@ ] }, "list": { + "deprecated": true, "description": "Lists an organization's assets.", "flatPath": "v1/folders/{foldersId}/assets", "httpMethod": "GET", @@ -255,7 +257,7 @@ ], "parameters": { "bigQueryExportId": { - "description": "Required. Unique identifier provided by the client within the parent scope. It must consist of lower case letters, numbers, and hyphen, with the first character a letter, the last a letter or a number, and a 63 character maximum.", + "description": "Required. Unique identifier provided by the client within the parent scope. It must consist of only lowercase letters, numbers, and hyphens, must start with a letter, must end with either a letter or a number, and must be 63 characters or less.", "location": "query", "type": "string" }, @@ -400,6 +402,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": { @@ -432,6 +721,98 @@ } } }, + "locations": { + "resources": { + "muteConfigs": { + "methods": { + "delete": { + "description": "Deletes an existing mute config.", + "flatPath": "v1/folders/{foldersId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", + "httpMethod": "DELETE", + "id": "securitycenter.folders.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": "^folders/[^/]+/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/folders/{foldersId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", + "httpMethod": "GET", + "id": "securitycenter.folders.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": "^folders/[^/]+/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/folders/{foldersId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", + "httpMethod": "PATCH", + "id": "securitycenter.folders.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": "^folders/[^/]+/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": { @@ -444,7 +825,7 @@ ], "parameters": { "muteConfigId": { - "description": "Required. Unique identifier provided by the client within the parent scope. It must consist of lower case letters, numbers, and hyphen, with the first character a letter, the last a letter or a number, and a 63 character maximum.", + "description": "Required. Unique identifier provided by the client within the parent scope. It must consist of only lowercase letters, numbers, and hyphens, must start with a letter, must end with either a letter or a number, and must be 63 characters or less.", "location": "query", "type": "string" }, @@ -477,7 +858,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the mute config to delete. Its format is organizations/{organization}/muteConfigs/{config_id}, folders/{folder}/muteConfigs/{config_id}, or projects/{project}/muteConfigs/{config_id}", + "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": "^folders/[^/]+/muteConfigs/[^/]+$", "required": true, @@ -502,7 +883,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the mute config to retrieve. Its format is organizations/{organization}/muteConfigs/{config_id}, folders/{folder}/muteConfigs/{config_id}, or projects/{project}/muteConfigs/{config_id}", + "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": "^folders/[^/]+/muteConfigs/[^/]+$", "required": true, @@ -563,7 +944,7 @@ ], "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}\"", + "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": "^folders/[^/]+/muteConfigs/[^/]+$", "required": true, @@ -746,6 +1127,291 @@ } } }, + "securityHealthAnalyticsSettings": { + "resources": { + "customModules": { + "methods": { + "create": { + "description": "Creates a resident SecurityHealthAnalyticsCustomModule at the scope of the given CRM parent, and also creates inherited SecurityHealthAnalyticsCustomModules for all CRM descendants of the given parent. These modules are enabled by default.", + "flatPath": "v1/folders/{foldersId}/securityHealthAnalyticsSettings/customModules", + "httpMethod": "POST", + "id": "securitycenter.folders.securityHealthAnalyticsSettings.customModules.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Resource name of the new custom module's parent. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings\", \"folders/{folder}/securityHealthAnalyticsSettings\", or \"projects/{project}/securityHealthAnalyticsSettings\"", + "location": "path", + "pattern": "^folders/[^/]+/securityHealthAnalyticsSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customModules", + "request": { + "$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" + }, + "response": { + "$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes the specified SecurityHealthAnalyticsCustomModule and all of its descendants in the CRM hierarchy. This method is only supported for resident custom modules.", + "flatPath": "v1/folders/{foldersId}/securityHealthAnalyticsSettings/customModules/{customModulesId}", + "httpMethod": "DELETE", + "id": "securitycenter.folders.securityHealthAnalyticsSettings.customModules.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the custom module to delete. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}\", \"folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}\"", + "location": "path", + "pattern": "^folders/[^/]+/securityHealthAnalyticsSettings/customModules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Retrieves a SecurityHealthAnalyticsCustomModule.", + "flatPath": "v1/folders/{foldersId}/securityHealthAnalyticsSettings/customModules/{customModulesId}", + "httpMethod": "GET", + "id": "securitycenter.folders.securityHealthAnalyticsSettings.customModules.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the custom module to get. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}\", \"folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}\"", + "location": "path", + "pattern": "^folders/[^/]+/securityHealthAnalyticsSettings/customModules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Returns a list of all SecurityHealthAnalyticsCustomModules for the given parent. This includes resident modules defined at the scope of the parent, and inherited modules, inherited from CRM ancestors.", + "flatPath": "v1/folders/{foldersId}/securityHealthAnalyticsSettings/customModules", + "httpMethod": "GET", + "id": "securitycenter.folders.securityHealthAnalyticsSettings.customModules.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last call indicating a continuation", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of parent to list custom modules. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings\", \"folders/{folder}/securityHealthAnalyticsSettings\", or \"projects/{project}/securityHealthAnalyticsSettings\"", + "location": "path", + "pattern": "^folders/[^/]+/securityHealthAnalyticsSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customModules", + "response": { + "$ref": "ListSecurityHealthAnalyticsCustomModulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "listDescendant": { + "description": "Returns a list of all resident SecurityHealthAnalyticsCustomModules under the given CRM parent and all of the parent\u2019s CRM descendants.", + "flatPath": "v1/folders/{foldersId}/securityHealthAnalyticsSettings/customModules:listDescendant", + "httpMethod": "GET", + "id": "securitycenter.folders.securityHealthAnalyticsSettings.customModules.listDescendant", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last call indicating a continuation", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of parent to list descendant custom modules. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings\", \"folders/{folder}/securityHealthAnalyticsSettings\", or \"projects/{project}/securityHealthAnalyticsSettings\"", + "location": "path", + "pattern": "^folders/[^/]+/securityHealthAnalyticsSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customModules:listDescendant", + "response": { + "$ref": "ListDescendantSecurityHealthAnalyticsCustomModulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the SecurityHealthAnalyticsCustomModule under the given name based on the given update mask. Updating the enablement state is supported on both resident and inherited modules (though resident modules cannot have an enablement state of \"inherited\"). Updating the display name and custom config of a module is supported on resident modules only.", + "flatPath": "v1/folders/{foldersId}/securityHealthAnalyticsSettings/customModules/{customModulesId}", + "httpMethod": "PATCH", + "id": "securitycenter.folders.securityHealthAnalyticsSettings.customModules.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. The resource name of the custom module. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}\" The id {customModule} is server-generated and is not user settable. It will be a numeric id containing 1-20 digits.", + "location": "path", + "pattern": "^folders/[^/]+/securityHealthAnalyticsSettings/customModules/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "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" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" + }, + "response": { + "$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "simulate": { + "description": "Simulates a given SecurityHealthAnalyticsCustomModule and Resource.", + "flatPath": "v1/folders/{foldersId}/securityHealthAnalyticsSettings/customModules:simulate", + "httpMethod": "POST", + "id": "securitycenter.folders.securityHealthAnalyticsSettings.customModules.simulate", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "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, + "type": "string" + } + }, + "path": "v1/{+parent}/customModules:simulate", + "request": { + "$ref": "SimulateSecurityHealthAnalyticsCustomModuleRequest" + }, + "response": { + "$ref": "SimulateSecurityHealthAnalyticsCustomModuleResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "effectiveCustomModules": { + "methods": { + "get": { + "description": "Retrieves an EffectiveSecurityHealthAnalyticsCustomModule.", + "flatPath": "v1/folders/{foldersId}/securityHealthAnalyticsSettings/effectiveCustomModules/{effectiveCustomModulesId}", + "httpMethod": "GET", + "id": "securitycenter.folders.securityHealthAnalyticsSettings.effectiveCustomModules.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the effective custom module to get. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\", \"folders/{folder}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\"", + "location": "path", + "pattern": "^folders/[^/]+/securityHealthAnalyticsSettings/effectiveCustomModules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Returns a list of all EffectiveSecurityHealthAnalyticsCustomModules for the given parent. This includes resident modules defined at the scope of the parent, and inherited modules, inherited from CRM ancestors.", + "flatPath": "v1/folders/{foldersId}/securityHealthAnalyticsSettings/effectiveCustomModules", + "httpMethod": "GET", + "id": "securitycenter.folders.securityHealthAnalyticsSettings.effectiveCustomModules.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last call indicating a continuation", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of parent to list effective custom modules. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings\", \"folders/{folder}/securityHealthAnalyticsSettings\", or \"projects/{project}/securityHealthAnalyticsSettings\"", + "location": "path", + "pattern": "^folders/[^/]+/securityHealthAnalyticsSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/effectiveCustomModules", + "response": { + "$ref": "ListEffectiveSecurityHealthAnalyticsCustomModulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "sources": { "methods": { "list": { @@ -890,7 +1556,7 @@ ], "parameters": { "name": { - "description": "The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\"", + "description": "The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\", \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}\", \"projects/{project_id}/sources/{source_id}/findings/{finding_id}\".", "location": "path", "pattern": "^folders/[^/]+/sources/[^/]+/findings/[^/]+$", "required": true, @@ -1122,6 +1788,7 @@ "assets": { "methods": { "group": { + "deprecated": true, "description": "Filters an organization's assets and groups them by their specified properties.", "flatPath": "v1/organizations/{organizationsId}/assets:group", "httpMethod": "POST", @@ -1150,6 +1817,7 @@ ] }, "list": { + "deprecated": true, "description": "Lists an organization's assets.", "flatPath": "v1/organizations/{organizationsId}/assets", "httpMethod": "GET", @@ -1214,6 +1882,7 @@ ] }, "runDiscovery": { + "deprecated": true, "description": "Runs asset discovery. The discovery is tracked with a long-running operation. This API can only be called with limited frequency for an organization. If it is called too frequently the caller will receive a TOO_MANY_REQUESTS error.", "flatPath": "v1/organizations/{organizationsId}/assets:runDiscovery", "httpMethod": "POST", @@ -1295,7 +1964,7 @@ ], "parameters": { "bigQueryExportId": { - "description": "Required. Unique identifier provided by the client within the parent scope. It must consist of lower case letters, numbers, and hyphen, with the first character a letter, the last a letter or a number, and a 63 character maximum.", + "description": "Required. Unique identifier provided by the client within the parent scope. It must consist of only lowercase letters, numbers, and hyphens, must start with a letter, must end with either a letter or a number, and must be 63 characters or less.", "location": "query", "type": "string" }, @@ -1440,6 +2109,293 @@ } } }, + "eventThreatDetectionSettings": { + "methods": { + "validateCustomModule": { + "description": "Validates the given Event Threat Detection custom module.", + "flatPath": "v1/organizations/{organizationsId}/eventThreatDetectionSettings:validateCustomModule", + "httpMethod": "POST", + "id": "securitycenter.organizations.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": "^organizations/[^/]+/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/organizations/{organizationsId}/eventThreatDetectionSettings/customModules", + "httpMethod": "POST", + "id": "securitycenter.organizations.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": "^organizations/[^/]+/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/organizations/{organizationsId}/eventThreatDetectionSettings/customModules/{customModulesId}", + "httpMethod": "DELETE", + "id": "securitycenter.organizations.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": "^organizations/[^/]+/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/organizations/{organizationsId}/eventThreatDetectionSettings/customModules/{customModulesId}", + "httpMethod": "GET", + "id": "securitycenter.organizations.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": "^organizations/[^/]+/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/organizations/{organizationsId}/eventThreatDetectionSettings/customModules", + "httpMethod": "GET", + "id": "securitycenter.organizations.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": "^organizations/[^/]+/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/organizations/{organizationsId}/eventThreatDetectionSettings/customModules:listDescendant", + "httpMethod": "GET", + "id": "securitycenter.organizations.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": "^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", + "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/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" + ] + } + } + } + } + }, "findings": { "methods": { "bulkMute": { @@ -1472,6 +2428,98 @@ } } }, + "locations": { + "resources": { + "muteConfigs": { + "methods": { + "delete": { + "description": "Deletes an existing mute config.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", + "httpMethod": "DELETE", + "id": "securitycenter.organizations.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": "^organizations/[^/]+/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/organizations/{organizationsId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", + "httpMethod": "GET", + "id": "securitycenter.organizations.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": "^organizations/[^/]+/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/organizations/{organizationsId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", + "httpMethod": "PATCH", + "id": "securitycenter.organizations.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": "^organizations/[^/]+/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": { @@ -1484,7 +2532,7 @@ ], "parameters": { "muteConfigId": { - "description": "Required. Unique identifier provided by the client within the parent scope. It must consist of lower case letters, numbers, and hyphen, with the first character a letter, the last a letter or a number, and a 63 character maximum.", + "description": "Required. Unique identifier provided by the client within the parent scope. It must consist of only lowercase letters, numbers, and hyphens, must start with a letter, must end with either a letter or a number, and must be 63 characters or less.", "location": "query", "type": "string" }, @@ -1517,7 +2565,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the mute config to delete. Its format is organizations/{organization}/muteConfigs/{config_id}, folders/{folder}/muteConfigs/{config_id}, or projects/{project}/muteConfigs/{config_id}", + "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": "^organizations/[^/]+/muteConfigs/[^/]+$", "required": true, @@ -1542,7 +2590,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the mute config to retrieve. Its format is organizations/{organization}/muteConfigs/{config_id}, folders/{folder}/muteConfigs/{config_id}, or projects/{project}/muteConfigs/{config_id}", + "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": "^organizations/[^/]+/muteConfigs/[^/]+$", "required": true, @@ -1603,7 +2651,7 @@ ], "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}\"", + "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": "^organizations/[^/]+/muteConfigs/[^/]+$", "required": true, @@ -1864,7 +2912,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/organizations/{organizationsId}/operations", "httpMethod": "GET", "id": "securitycenter.organizations.operations.list", @@ -1906,6 +2954,740 @@ } } }, + "resourceValueConfigs": { + "methods": { + "batchCreate": { + "description": "Creates a ResourceValueConfig for an organization. Maps user's tags to difference resource values for use by the attack path simulation.", + "flatPath": "v1/organizations/{organizationsId}/resourceValueConfigs:batchCreate", + "httpMethod": "POST", + "id": "securitycenter.organizations.resourceValueConfigs.batchCreate", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Resource name of the new ResourceValueConfig's parent. The parent field in the CreateResourceValueConfigRequest messages must either be empty or match this field.", + "location": "path", + "pattern": "^organizations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/resourceValueConfigs:batchCreate", + "request": { + "$ref": "BatchCreateResourceValueConfigsRequest" + }, + "response": { + "$ref": "BatchCreateResourceValueConfigsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a ResourceValueConfig.", + "flatPath": "v1/organizations/{organizationsId}/resourceValueConfigs/{resourceValueConfigsId}", + "httpMethod": "DELETE", + "id": "securitycenter.organizations.resourceValueConfigs.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the ResourceValueConfig to delete", + "location": "path", + "pattern": "^organizations/[^/]+/resourceValueConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a ResourceValueConfig.", + "flatPath": "v1/organizations/{organizationsId}/resourceValueConfigs/{resourceValueConfigsId}", + "httpMethod": "GET", + "id": "securitycenter.organizations.resourceValueConfigs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource value config to retrieve. Its format is organizations/{organization}/resourceValueConfigs/{config_id}.", + "location": "path", + "pattern": "^organizations/[^/]+/resourceValueConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudSecuritycenterV1ResourceValueConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all ResourceValueConfigs.", + "flatPath": "v1/organizations/{organizationsId}/resourceValueConfigs", + "httpMethod": "GET", + "id": "securitycenter.organizations.resourceValueConfigs.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The number of results to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListResourceValueConfigs` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListResourceValueConfigs` must match the call that provided the page token. page_size can be specified, and the new page_size will be used.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent, which owns the collection of resource value configs. Its format is \"organizations/[organization_id]\"", + "location": "path", + "pattern": "^organizations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/resourceValueConfigs", + "response": { + "$ref": "ListResourceValueConfigsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates an existing ResourceValueConfigs with new rules.", + "flatPath": "v1/organizations/{organizationsId}/resourceValueConfigs/{resourceValueConfigsId}", + "httpMethod": "PATCH", + "id": "securitycenter.organizations.resourceValueConfigs.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name for the resource value config", + "location": "path", + "pattern": "^organizations/[^/]+/resourceValueConfigs/[^/]+$", + "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": "GoogleCloudSecuritycenterV1ResourceValueConfig" + }, + "response": { + "$ref": "GoogleCloudSecuritycenterV1ResourceValueConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "securityHealthAnalyticsSettings": { + "resources": { + "customModules": { + "methods": { + "create": { + "description": "Creates a resident SecurityHealthAnalyticsCustomModule at the scope of the given CRM parent, and also creates inherited SecurityHealthAnalyticsCustomModules for all CRM descendants of the given parent. These modules are enabled by default.", + "flatPath": "v1/organizations/{organizationsId}/securityHealthAnalyticsSettings/customModules", + "httpMethod": "POST", + "id": "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Resource name of the new custom module's parent. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings\", \"folders/{folder}/securityHealthAnalyticsSettings\", or \"projects/{project}/securityHealthAnalyticsSettings\"", + "location": "path", + "pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customModules", + "request": { + "$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" + }, + "response": { + "$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes the specified SecurityHealthAnalyticsCustomModule and all of its descendants in the CRM hierarchy. This method is only supported for resident custom modules.", + "flatPath": "v1/organizations/{organizationsId}/securityHealthAnalyticsSettings/customModules/{customModulesId}", + "httpMethod": "DELETE", + "id": "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the custom module to delete. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}\", \"folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}\"", + "location": "path", + "pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings/customModules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Retrieves a SecurityHealthAnalyticsCustomModule.", + "flatPath": "v1/organizations/{organizationsId}/securityHealthAnalyticsSettings/customModules/{customModulesId}", + "httpMethod": "GET", + "id": "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the custom module to get. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}\", \"folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}\"", + "location": "path", + "pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings/customModules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Returns a list of all SecurityHealthAnalyticsCustomModules for the given parent. This includes resident modules defined at the scope of the parent, and inherited modules, inherited from CRM ancestors.", + "flatPath": "v1/organizations/{organizationsId}/securityHealthAnalyticsSettings/customModules", + "httpMethod": "GET", + "id": "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last call indicating a continuation", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of parent to list custom modules. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings\", \"folders/{folder}/securityHealthAnalyticsSettings\", or \"projects/{project}/securityHealthAnalyticsSettings\"", + "location": "path", + "pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customModules", + "response": { + "$ref": "ListSecurityHealthAnalyticsCustomModulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "listDescendant": { + "description": "Returns a list of all resident SecurityHealthAnalyticsCustomModules under the given CRM parent and all of the parent\u2019s CRM descendants.", + "flatPath": "v1/organizations/{organizationsId}/securityHealthAnalyticsSettings/customModules:listDescendant", + "httpMethod": "GET", + "id": "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.listDescendant", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last call indicating a continuation", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of parent to list descendant custom modules. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings\", \"folders/{folder}/securityHealthAnalyticsSettings\", or \"projects/{project}/securityHealthAnalyticsSettings\"", + "location": "path", + "pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customModules:listDescendant", + "response": { + "$ref": "ListDescendantSecurityHealthAnalyticsCustomModulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the SecurityHealthAnalyticsCustomModule under the given name based on the given update mask. Updating the enablement state is supported on both resident and inherited modules (though resident modules cannot have an enablement state of \"inherited\"). Updating the display name and custom config of a module is supported on resident modules only.", + "flatPath": "v1/organizations/{organizationsId}/securityHealthAnalyticsSettings/customModules/{customModulesId}", + "httpMethod": "PATCH", + "id": "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. The resource name of the custom module. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}\" The id {customModule} is server-generated and is not user settable. It will be a numeric id containing 1-20 digits.", + "location": "path", + "pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings/customModules/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "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" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" + }, + "response": { + "$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "simulate": { + "description": "Simulates a given SecurityHealthAnalyticsCustomModule and Resource.", + "flatPath": "v1/organizations/{organizationsId}/securityHealthAnalyticsSettings/customModules:simulate", + "httpMethod": "POST", + "id": "securitycenter.organizations.securityHealthAnalyticsSettings.customModules.simulate", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "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, + "type": "string" + } + }, + "path": "v1/{+parent}/customModules:simulate", + "request": { + "$ref": "SimulateSecurityHealthAnalyticsCustomModuleRequest" + }, + "response": { + "$ref": "SimulateSecurityHealthAnalyticsCustomModuleResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "effectiveCustomModules": { + "methods": { + "get": { + "description": "Retrieves an EffectiveSecurityHealthAnalyticsCustomModule.", + "flatPath": "v1/organizations/{organizationsId}/securityHealthAnalyticsSettings/effectiveCustomModules/{effectiveCustomModulesId}", + "httpMethod": "GET", + "id": "securitycenter.organizations.securityHealthAnalyticsSettings.effectiveCustomModules.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the effective custom module to get. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\", \"folders/{folder}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\"", + "location": "path", + "pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings/effectiveCustomModules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Returns a list of all EffectiveSecurityHealthAnalyticsCustomModules for the given parent. This includes resident modules defined at the scope of the parent, and inherited modules, inherited from CRM ancestors.", + "flatPath": "v1/organizations/{organizationsId}/securityHealthAnalyticsSettings/effectiveCustomModules", + "httpMethod": "GET", + "id": "securitycenter.organizations.securityHealthAnalyticsSettings.effectiveCustomModules.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last call indicating a continuation", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of parent to list effective custom modules. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings\", \"folders/{folder}/securityHealthAnalyticsSettings\", or \"projects/{project}/securityHealthAnalyticsSettings\"", + "location": "path", + "pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/effectiveCustomModules", + "response": { + "$ref": "ListEffectiveSecurityHealthAnalyticsCustomModulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, + "simulations": { + "methods": { + "get": { + "description": "Get the simulation by name or the latest simulation for the given organization.", + "flatPath": "v1/organizations/{organizationsId}/simulations/{simulationsId}", + "httpMethod": "GET", + "id": "securitycenter.organizations.simulations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The organization name or simulation name of this simulation Valid format: \"organizations/{organization}/simulations/latest\" \"organizations/{organization}/simulations/{simulation}\"", + "location": "path", + "pattern": "^organizations/[^/]+/simulations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Simulation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "attackExposureResults": { + "resources": { + "attackPaths": { + "methods": { + "list": { + "description": "Lists the attack paths for a set of simulation results or valued resources and filter.", + "flatPath": "v1/organizations/{organizationsId}/simulations/{simulationsId}/attackExposureResults/{attackExposureResultsId}/attackPaths", + "httpMethod": "GET", + "id": "securitycenter.organizations.simulations.attackExposureResults.attackPaths.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "The filter expression that filters the attack path in the response. Supported fields: * `valued_resources` supports =", + "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", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListAttackPathsResponse`; indicates that this is a continuation of a prior `ListAttackPaths` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of parent to list attack paths. Valid formats: \"organizations/{organization}\", \"organizations/{organization}/simulations/{simulation}\" \"organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}\" \"organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}\"", + "location": "path", + "pattern": "^organizations/[^/]+/simulations/[^/]+/attackExposureResults/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/attackPaths", + "response": { + "$ref": "ListAttackPathsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "valuedResources": { + "methods": { + "list": { + "description": "Lists the valued resources for a set of simulation results and filter.", + "flatPath": "v1/organizations/{organizationsId}/simulations/{simulationsId}/attackExposureResults/{attackExposureResultsId}/valuedResources", + "httpMethod": "GET", + "id": "securitycenter.organizations.simulations.attackExposureResults.valuedResources.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "The filter expression that filters the valued resources in the response. Supported fields: * `resource_value` supports = * `resource_type` supports =", + "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", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListValuedResourcesResponse`; indicates that this is a continuation of a prior `ListValuedResources` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of parent to list valued resources. Valid formats: \"organizations/{organization}\", \"organizations/{organization}/simulations/{simulation}\" \"organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}\"", + "location": "path", + "pattern": "^organizations/[^/]+/simulations/[^/]+/attackExposureResults/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/valuedResources", + "response": { + "$ref": "ListValuedResourcesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, + "attackPaths": { + "methods": { + "list": { + "description": "Lists the attack paths for a set of simulation results or valued resources and filter.", + "flatPath": "v1/organizations/{organizationsId}/simulations/{simulationsId}/attackPaths", + "httpMethod": "GET", + "id": "securitycenter.organizations.simulations.attackPaths.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "The filter expression that filters the attack path in the response. Supported fields: * `valued_resources` supports =", + "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", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListAttackPathsResponse`; indicates that this is a continuation of a prior `ListAttackPaths` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of parent to list attack paths. Valid formats: \"organizations/{organization}\", \"organizations/{organization}/simulations/{simulation}\" \"organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}\" \"organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}\"", + "location": "path", + "pattern": "^organizations/[^/]+/simulations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/attackPaths", + "response": { + "$ref": "ListAttackPathsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "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", + "httpMethod": "GET", + "id": "securitycenter.organizations.simulations.valuedResources.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "The filter expression that filters the valued resources in the response. Supported fields: * `resource_value` supports = * `resource_type` supports =", + "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", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListValuedResourcesResponse`; indicates that this is a continuation of a prior `ListValuedResources` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of parent to list valued resources. Valid formats: \"organizations/{organization}\", \"organizations/{organization}/simulations/{simulation}\" \"organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}\"", + "location": "path", + "pattern": "^organizations/[^/]+/simulations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/valuedResources", + "response": { + "$ref": "ListValuedResourcesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "attackPaths": { + "methods": { + "list": { + "description": "Lists the attack paths for a set of simulation results or valued resources and filter.", + "flatPath": "v1/organizations/{organizationsId}/simulations/{simulationsId}/valuedResources/{valuedResourcesId}/attackPaths", + "httpMethod": "GET", + "id": "securitycenter.organizations.simulations.valuedResources.attackPaths.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "The filter expression that filters the attack path in the response. Supported fields: * `valued_resources` supports =", + "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", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListAttackPathsResponse`; indicates that this is a continuation of a prior `ListAttackPaths` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of parent to list attack paths. Valid formats: \"organizations/{organization}\", \"organizations/{organization}/simulations/{simulation}\" \"organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}\" \"organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}\"", + "location": "path", + "pattern": "^organizations/[^/]+/simulations/[^/]+/valuedResources/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/attackPaths", + "response": { + "$ref": "ListAttackPathsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + } + }, "sources": { "methods": { "create": { @@ -2254,7 +4036,7 @@ ], "parameters": { "name": { - "description": "The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\"", + "description": "The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\", \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}\", \"projects/{project_id}/sources/{source_id}/findings/{finding_id}\".", "location": "path", "pattern": "^organizations/[^/]+/sources/[^/]+/findings/[^/]+$", "required": true, @@ -2425,6 +4207,7 @@ "assets": { "methods": { "group": { + "deprecated": true, "description": "Filters an organization's assets and groups them by their specified properties.", "flatPath": "v1/projects/{projectsId}/assets:group", "httpMethod": "POST", @@ -2453,6 +4236,7 @@ ] }, "list": { + "deprecated": true, "description": "Lists an organization's assets.", "flatPath": "v1/projects/{projectsId}/assets", "httpMethod": "GET", @@ -2570,7 +4354,7 @@ ], "parameters": { "bigQueryExportId": { - "description": "Required. Unique identifier provided by the client within the parent scope. It must consist of lower case letters, numbers, and hyphen, with the first character a letter, the last a letter or a number, and a 63 character maximum.", + "description": "Required. Unique identifier provided by the client within the parent scope. It must consist of only lowercase letters, numbers, and hyphens, must start with a letter, must end with either a letter or a number, and must be 63 characters or less.", "location": "query", "type": "string" }, @@ -2715,6 +4499,293 @@ } } }, + "eventThreatDetectionSettings": { + "methods": { + "validateCustomModule": { + "description": "Validates the given Event Threat Detection custom module.", + "flatPath": "v1/projects/{projectsId}/eventThreatDetectionSettings:validateCustomModule", + "httpMethod": "POST", + "id": "securitycenter.projects.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": "^projects/[^/]+/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/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 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.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": "^projects/[^/]+/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/projects/{projectsId}/eventThreatDetectionSettings/customModules/{customModulesId}", + "httpMethod": "GET", + "id": "securitycenter.projects.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": "^projects/[^/]+/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/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 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.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": "^projects/[^/]+/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/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": { @@ -2747,6 +4818,98 @@ } } }, + "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": { @@ -2759,7 +4922,7 @@ ], "parameters": { "muteConfigId": { - "description": "Required. Unique identifier provided by the client within the parent scope. It must consist of lower case letters, numbers, and hyphen, with the first character a letter, the last a letter or a number, and a 63 character maximum.", + "description": "Required. Unique identifier provided by the client within the parent scope. It must consist of only lowercase letters, numbers, and hyphens, must start with a letter, must end with either a letter or a number, and must be 63 characters or less.", "location": "query", "type": "string" }, @@ -2792,7 +4955,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the mute config to delete. Its format is organizations/{organization}/muteConfigs/{config_id}, folders/{folder}/muteConfigs/{config_id}, or projects/{project}/muteConfigs/{config_id}", + "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/[^/]+/muteConfigs/[^/]+$", "required": true, @@ -2817,7 +4980,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the mute config to retrieve. Its format is organizations/{organization}/muteConfigs/{config_id}, folders/{folder}/muteConfigs/{config_id}, or projects/{project}/muteConfigs/{config_id}", + "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/[^/]+/muteConfigs/[^/]+$", "required": true, @@ -2878,7 +5041,7 @@ ], "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}\"", + "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/[^/]+/muteConfigs/[^/]+$", "required": true, @@ -3061,6 +5224,291 @@ } } }, + "securityHealthAnalyticsSettings": { + "resources": { + "customModules": { + "methods": { + "create": { + "description": "Creates a resident SecurityHealthAnalyticsCustomModule at the scope of the given CRM parent, and also creates inherited SecurityHealthAnalyticsCustomModules for all CRM descendants of the given parent. These modules are enabled by default.", + "flatPath": "v1/projects/{projectsId}/securityHealthAnalyticsSettings/customModules", + "httpMethod": "POST", + "id": "securitycenter.projects.securityHealthAnalyticsSettings.customModules.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Resource name of the new custom module's parent. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings\", \"folders/{folder}/securityHealthAnalyticsSettings\", or \"projects/{project}/securityHealthAnalyticsSettings\"", + "location": "path", + "pattern": "^projects/[^/]+/securityHealthAnalyticsSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customModules", + "request": { + "$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" + }, + "response": { + "$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes the specified SecurityHealthAnalyticsCustomModule and all of its descendants in the CRM hierarchy. This method is only supported for resident custom modules.", + "flatPath": "v1/projects/{projectsId}/securityHealthAnalyticsSettings/customModules/{customModulesId}", + "httpMethod": "DELETE", + "id": "securitycenter.projects.securityHealthAnalyticsSettings.customModules.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the custom module to delete. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}\", \"folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}\"", + "location": "path", + "pattern": "^projects/[^/]+/securityHealthAnalyticsSettings/customModules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Retrieves a SecurityHealthAnalyticsCustomModule.", + "flatPath": "v1/projects/{projectsId}/securityHealthAnalyticsSettings/customModules/{customModulesId}", + "httpMethod": "GET", + "id": "securitycenter.projects.securityHealthAnalyticsSettings.customModules.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the custom module to get. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}\", \"folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}\"", + "location": "path", + "pattern": "^projects/[^/]+/securityHealthAnalyticsSettings/customModules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Returns a list of all SecurityHealthAnalyticsCustomModules for the given parent. This includes resident modules defined at the scope of the parent, and inherited modules, inherited from CRM ancestors.", + "flatPath": "v1/projects/{projectsId}/securityHealthAnalyticsSettings/customModules", + "httpMethod": "GET", + "id": "securitycenter.projects.securityHealthAnalyticsSettings.customModules.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last call indicating a continuation", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of parent to list custom modules. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings\", \"folders/{folder}/securityHealthAnalyticsSettings\", or \"projects/{project}/securityHealthAnalyticsSettings\"", + "location": "path", + "pattern": "^projects/[^/]+/securityHealthAnalyticsSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customModules", + "response": { + "$ref": "ListSecurityHealthAnalyticsCustomModulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "listDescendant": { + "description": "Returns a list of all resident SecurityHealthAnalyticsCustomModules under the given CRM parent and all of the parent\u2019s CRM descendants.", + "flatPath": "v1/projects/{projectsId}/securityHealthAnalyticsSettings/customModules:listDescendant", + "httpMethod": "GET", + "id": "securitycenter.projects.securityHealthAnalyticsSettings.customModules.listDescendant", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last call indicating a continuation", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of parent to list descendant custom modules. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings\", \"folders/{folder}/securityHealthAnalyticsSettings\", or \"projects/{project}/securityHealthAnalyticsSettings\"", + "location": "path", + "pattern": "^projects/[^/]+/securityHealthAnalyticsSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customModules:listDescendant", + "response": { + "$ref": "ListDescendantSecurityHealthAnalyticsCustomModulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the SecurityHealthAnalyticsCustomModule under the given name based on the given update mask. Updating the enablement state is supported on both resident and inherited modules (though resident modules cannot have an enablement state of \"inherited\"). Updating the display name and custom config of a module is supported on resident modules only.", + "flatPath": "v1/projects/{projectsId}/securityHealthAnalyticsSettings/customModules/{customModulesId}", + "httpMethod": "PATCH", + "id": "securitycenter.projects.securityHealthAnalyticsSettings.customModules.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. The resource name of the custom module. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}\" The id {customModule} is server-generated and is not user settable. It will be a numeric id containing 1-20 digits.", + "location": "path", + "pattern": "^projects/[^/]+/securityHealthAnalyticsSettings/customModules/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "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" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" + }, + "response": { + "$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "simulate": { + "description": "Simulates a given SecurityHealthAnalyticsCustomModule and Resource.", + "flatPath": "v1/projects/{projectsId}/securityHealthAnalyticsSettings/customModules:simulate", + "httpMethod": "POST", + "id": "securitycenter.projects.securityHealthAnalyticsSettings.customModules.simulate", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "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, + "type": "string" + } + }, + "path": "v1/{+parent}/customModules:simulate", + "request": { + "$ref": "SimulateSecurityHealthAnalyticsCustomModuleRequest" + }, + "response": { + "$ref": "SimulateSecurityHealthAnalyticsCustomModuleResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "effectiveCustomModules": { + "methods": { + "get": { + "description": "Retrieves an EffectiveSecurityHealthAnalyticsCustomModule.", + "flatPath": "v1/projects/{projectsId}/securityHealthAnalyticsSettings/effectiveCustomModules/{effectiveCustomModulesId}", + "httpMethod": "GET", + "id": "securitycenter.projects.securityHealthAnalyticsSettings.effectiveCustomModules.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the effective custom module to get. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\", \"folders/{folder}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\"", + "location": "path", + "pattern": "^projects/[^/]+/securityHealthAnalyticsSettings/effectiveCustomModules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Returns a list of all EffectiveSecurityHealthAnalyticsCustomModules for the given parent. This includes resident modules defined at the scope of the parent, and inherited modules, inherited from CRM ancestors.", + "flatPath": "v1/projects/{projectsId}/securityHealthAnalyticsSettings/effectiveCustomModules", + "httpMethod": "GET", + "id": "securitycenter.projects.securityHealthAnalyticsSettings.effectiveCustomModules.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last call indicating a continuation", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of parent to list effective custom modules. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings\", \"folders/{folder}/securityHealthAnalyticsSettings\", or \"projects/{project}/securityHealthAnalyticsSettings\"", + "location": "path", + "pattern": "^projects/[^/]+/securityHealthAnalyticsSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/effectiveCustomModules", + "response": { + "$ref": "ListEffectiveSecurityHealthAnalyticsCustomModulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "sources": { "methods": { "list": { @@ -3205,7 +5653,7 @@ ], "parameters": { "name": { - "description": "The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\"", + "description": "The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\", \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}\", \"projects/{project_id}/sources/{source_id}/findings/{finding_id}\".", "location": "path", "pattern": "^projects/[^/]+/sources/[^/]+/findings/[^/]+$", "required": true, @@ -3372,7 +5820,7 @@ } } }, - "revision": "20230123", + "revision": "20240302", "rootUrl": "https://securitycenter.googleapis.com/", "schemas": { "Access": { @@ -3392,49 +5840,53 @@ "type": "string" }, "principalEmail": { - "description": "Associated email, such as \"foo@google.com\". The email address of the authenticated user (or service account on behalf of third party principal) making the request. For third party identity callers, the `principal_subject` field is populated instead of this field. For privacy reasons, the principal email address is sometimes redacted. For more information, see [Caller identities in audit logs](https://cloud.google.com/logging/docs/audit#user-id).", + "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" }, "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}]`", + "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" }, "serviceAccountDelegationInfo": { - "description": "Identity delegation history of an authenticated service account that makes the request. It contains information on the real authorities that try to access GCP resources by delegating on a service account. When multiple authorities are present, they are guaranteed to be sorted based on the original ordering of the identity delegation events.", + "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": "ServiceAccountDelegationInfo" }, "type": "array" }, "serviceAccountKeyName": { - "description": "The name of the service account key used to create or exchange credentials for authenticating the service account making the request. This is a scheme-less URI full resource name. For example: \"//iam.googleapis.com/projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}\" ", + "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" }, "serviceName": { "description": "This is the API service that the service account made a call to, e.g. \"iam.googleapis.com\"", "type": "string" }, + "userAgent": { + "description": "The caller's user agent string associated with the finding.", + "type": "string" + }, "userAgentFamily": { - "description": "What kind of user agent is associated, for example operating system shells, embedded or stand-alone applications, etc.", + "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 the username of a user, user account, or other entity involved in the access event. What the entity is and what its role in the access event is depends on the finding that this field appears in. The entity is likely not an IAM principal, but could be a user that is logged into an operating system, if the finding is VM-related, or a user that is logged into some type of application that is involved in the access event.", + "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" }, "AccessReview": { - "description": "Conveys information about a Kubernetes access review (e.g. kubectl auth can-i ...) that was involved in a finding.", + "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": "AccessReview", "properties": { "group": { - "description": "Group is the API Group of the Resource. \"*\" means all.", + "description": "The API group of the resource. \"*\" means all.", "type": "string" }, "name": { - "description": "Name is the name of the resource being requested. Empty means all.", + "description": "The name of the resource being requested. Empty means all.", "type": "string" }, "ns": { @@ -3442,19 +5894,34 @@ "type": "string" }, "resource": { - "description": "Resource is the optional resource type requested. \"*\" means all.", + "description": "The optional resource type requested. \"*\" means all.", "type": "string" }, "subresource": { - "description": "Subresource is the optional subresource type.", + "description": "The optional subresource type.", "type": "string" }, "verb": { - "description": "Verb is a Kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", + "description": "A Kubernetes resource API verb, like get, list, watch, create, update, delete, proxy. \"*\" means all.", "type": "string" }, "version": { - "description": "Version is the API Version of the Resource. \"*\" means all.", + "description": "The API version of the resource. \"*\" means all.", + "type": "string" + } + }, + "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" } }, @@ -3539,20 +6006,172 @@ }, "type": "object" }, - "AssociatedFinding": { - "description": "A finding that is associated with this node in the exposure path.", - "id": "AssociatedFinding", + "AttackExposure": { + "description": "An attack exposure contains the results of an attack path simulation run.", + "id": "AttackExposure", "properties": { - "canonicalFindingName": { - "description": "Canonical name of the associated findings. Example: organizations/123/sources/456/findings/789", + "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" }, - "findingCategory": { - "description": "The additional taxonomy group within findings from a given source.", + "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": "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." + ], + "type": "string" + } + }, + "type": "object" + }, + "AttackPath": { + "description": "A path that an attacker could take to reach an exposed resource.", + "id": "AttackPath", + "properties": { + "edges": { + "description": "A list of the edges between nodes in this attack path.", + "items": { + "$ref": "AttackPathEdge" + }, + "type": "array" + }, "name": { - "description": "Full resource name of the finding.", + "description": "The attack path name, for example, `organizations/12/simulation/34/valuedResources/56/attackPaths/78`", + "type": "string" + }, + "pathNodes": { + "description": "A list of nodes that exist in this attack path.", + "items": { + "$ref": "AttackPathNode" + }, + "type": "array" + } + }, + "type": "object" + }, + "AttackPathEdge": { + "description": "Represents a connection between a source node and a destination node in this attack path.", + "id": "AttackPathEdge", + "properties": { + "destination": { + "description": "The attack node uuid of the destination node.", + "type": "string" + }, + "source": { + "description": "The attack node uuid of the source node.", + "type": "string" + } + }, + "type": "object" + }, + "AttackPathNode": { + "description": "Represents one point that an attacker passes through in this attack path.", + "id": "AttackPathNode", + "properties": { + "associatedFindings": { + "description": "The findings associated with this node in the attack path.", + "items": { + "$ref": "PathNodeAssociatedFinding" + }, + "type": "array" + }, + "attackSteps": { + "description": "A list of attack step nodes that exist in this attack path node.", + "items": { + "$ref": "AttackStepNode" + }, + "type": "array" + }, + "displayName": { + "description": "Human-readable name of this resource.", + "type": "string" + }, + "resource": { + "description": "The name of the resource at this point in the attack path. The format of the name follows the Cloud Asset Inventory [resource name format](\"https://cloud.google.com/asset-inventory/docs/resource-name-format\")", + "type": "string" + }, + "resourceType": { + "description": "The [supported resource type](https://cloud.google.com/asset-inventory/docs/supported-asset-types\")", + "type": "string" + }, + "uuid": { + "description": "Unique id of the attack path node.", + "type": "string" + } + }, + "type": "object" + }, + "AttackStepNode": { + "description": "Detailed steps the attack can take between path nodes.", + "id": "AttackStepNode", + "properties": { + "description": { + "description": "Attack step description", + "type": "string" + }, + "displayName": { + "description": "User friendly name of the attack step", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Attack step labels for metadata", + "type": "object" + }, + "type": { + "description": "Attack step type. Can be either AND, OR or DEFENSE", + "enum": [ + "NODE_TYPE_UNSPECIFIED", + "NODE_TYPE_AND", + "NODE_TYPE_OR", + "NODE_TYPE_DEFENSE", + "NODE_TYPE_ATTACKER" + ], + "enumDescriptions": [ + "Type not specified", + "Incoming edge joined with AND", + "Incoming edge joined with OR", + "Incoming edge is defense", + "Incoming edge is attacker" + ], + "type": "string" + }, + "uuid": { + "description": "Unique ID for one Node", "type": "string" } }, @@ -3606,6 +6225,91 @@ }, "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", + "properties": { + "requests": { + "description": "Required. The resource value configs to be created.", + "items": { + "$ref": "CreateResourceValueConfigRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchCreateResourceValueConfigsResponse": { + "description": "Response message for BatchCreateResourceValueConfigs", + "id": "BatchCreateResourceValueConfigsResponse", + "properties": { + "resourceValueConfigs": { + "description": "The resource value configs created", + "items": { + "$ref": "GoogleCloudSecuritycenterV1ResourceValueConfig" + }, + "type": "array" + } + }, + "type": "object" + }, "Binding": { "description": "Associates `members`, or principals, with a `role`.", "id": "Binding", @@ -3615,14 +6319,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -3637,29 +6341,144 @@ "type": "string" }, "muteAnnotation": { + "deprecated": true, "description": "This can be a mute configuration name or any identifier for mute/unmute of findings based on the filter.", "type": "string" } }, "type": "object" }, + "CloudDlpDataProfile": { + "description": "The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated with the finding.", + "id": "CloudDlpDataProfile", + "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" + }, + "CloudDlpInspection": { + "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": "CloudDlpInspection", + "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" + }, + "CloudLoggingEntry": { + "description": "Metadata taken from a [Cloud Logging LogEntry](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry)", + "id": "CloudLoggingEntry", + "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 the `LOG_ID` field 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" + }, "Compliance": { "description": "Contains compliance information about a security standard indicating unmet recommendations.", "id": "Compliance", "properties": { "ids": { - "description": "Policies within the standard/benchmark e.g. A.12.4.1", + "description": "Policies within the standard or benchmark, for example, A.12.4.1", "items": { "type": "string" }, "type": "array" }, "standard": { - "description": "Refers to industry wide standards or benchmarks e.g. \"cis\", \"pci\", \"owasp\", etc.", + "description": "Industry-wide compliance standards or benchmarks, such as CIS, PCI, and OWASP.", "type": "string" }, "version": { - "description": "Version of the standard/benchmark e.g. 1.1", + "description": "Version of the standard or benchmark, for example, 1.1", + "type": "string" + } + }, + "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" } }, @@ -3722,7 +6541,7 @@ "type": "object" }, "ContactDetails": { - "description": "The details pertaining to specific contacts", + "description": "Details about specific contacts", "id": "ContactDetails", "properties": { "contacts": { @@ -3739,8 +6558,13 @@ "description": "Container associated with the finding.", "id": "Container", "properties": { + "createTime": { + "description": "The time that the container was created.", + "format": "google-datetime", + "type": "string" + }, "imageId": { - "description": "Optional container image id, when provided by the container runtime. Uniquely identifies the container image launched using a container image digest.", + "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": { @@ -3751,28 +6575,121 @@ "type": "array" }, "name": { - "description": "Container name.", + "description": "Name of the container.", "type": "string" }, "uri": { - "description": "Container image URI provided when configuring a pod/container. May identify a container image version using mutable tags.", + "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" }, + "CreateResourceValueConfigRequest": { + "description": "Request message to create single resource value config", + "id": "CreateResourceValueConfigRequest", + "properties": { + "parent": { + "description": "Required. Resource name of the new ResourceValueConfig's parent.", + "type": "string" + }, + "resourceValueConfig": { + "$ref": "GoogleCloudSecuritycenterV1ResourceValueConfig", + "description": "Required. The resource value config being created." + } + }, + "type": "object" + }, + "CustomModuleValidationError": { + "description": "An error encountered while validating the uploaded configuration of an Event Threat Detection Custom Module.", + "id": "CustomModuleValidationError", + "properties": { + "description": { + "description": "A description of the error, suitable for human consumption. Required.", + "type": "string" + }, + "end": { + "$ref": "Position", + "description": "The end position of the error in the uploaded text version of the module. This field may be omitted if no specific position applies, or if one could not be computed.." + }, + "fieldPath": { + "description": "The path, in RFC 8901 JSON Pointer format, to the field that failed validation. This may be left empty if no specific field is affected.", + "type": "string" + }, + "start": { + "$ref": "Position", + "description": "The initial position of the error in the uploaded text version of the module. This field may be omitted if no specific position applies, or if one could not be computed." + } + }, + "type": "object" + }, + "CustomModuleValidationErrors": { + "description": "A list of zero or more errors encountered while validating the uploaded configuration of an Event Threat Detection Custom Module.", + "id": "CustomModuleValidationErrors", + "properties": { + "errors": { + "items": { + "$ref": "CustomModuleValidationError" + }, + "type": "array" + } + }, + "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" }, + "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": { @@ -3783,6 +6700,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" @@ -3924,30 +6845,34 @@ "type": "object" }, "Database": { - "description": "Represents database access information, such as queries. A database may be a sub-resource of an instance (as in the case of CloudSQL instances or Cloud Spanner instances), or the database instance itself. Some database resources may not have the full resource name populated because these resource types are not yet supported by Cloud Asset Inventory (e.g. CloudSQL databases). In these cases only the display name will be provided.", + "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": "Database", "properties": { "displayName": { - "description": "The human readable name of the database the user connected to.", + "description": "The human-readable name of the database that the user connected to.", "type": "string" }, "grantees": { - "description": "The target usernames/roles/groups of a SQL privilege grant (not an IAM policy change).", + "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": "The full resource name of the database the user connected to, if it is supported by CAI. (https://google.aip.dev/122#full-resource-names)", + "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 associated with the relevant access.", + "description": "The SQL statement that is associated with the database access.", "type": "string" }, "userName": { - "description": "The username used to connect to the DB. This may not necessarily be an IAM principal, and has no required format.", + "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" } }, @@ -3969,16 +6894,67 @@ }, "type": "object" }, - "Edge": { - "description": "Represents a connection between a source node and a destination node in this exposure path.", - "id": "Edge", + "DiskPath": { + "description": "Path of the file in terms of underlying disk/partition identifiers.", + "id": "DiskPath", "properties": { - "destination": { - "description": "This is the resource name of the destination node.", + "partitionUuid": { + "description": "UUID of the partition (format https://wiki.archlinux.org/title/persistent_block_device_naming#by-uuid)", "type": "string" }, - "source": { - "description": "This is the resource name of the source node.", + "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" } }, @@ -3991,7 +6967,7 @@ "type": "object" }, "EnvironmentVariable": { - "description": "EnvironmentVariable is a name-value pair to store environment variables for Process.", + "description": "A name-value pair representing an environment variable used in an operating system process.", "id": "EnvironmentVariable", "properties": { "name": { @@ -4005,26 +6981,89 @@ }, "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, 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.", + "type": "any" + }, + "description": "Config for the module. For the resident module, its config value is defined at this level. For the inherited module, its config value is inherited from the ancestor module.", + "type": "object" + }, + "description": { + "description": "The description for the module.", + "type": "string" + }, + "displayName": { + "description": "The human readable name to be displayed for the module.", + "type": "string" + }, + "enablementState": { + "description": "The state of enablement for the module at the given level of the hierarchy.", + "enum": [ + "ENABLEMENT_STATE_UNSPECIFIED", + "ENABLED", + "DISABLED", + "INHERITED" + ], + "enumDescriptions": [ + "Unspecified enablement state.", + "The module is enabled at the given level.", + "The module is disabled at the given level.", + "When the enablement state is inherited." + ], + "type": "string" + }, + "lastEditor": { + "description": "Output only. The editor the module was last updated by.", + "readOnly": true, + "type": "string" + }, + "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}\".", + "type": "string" + }, + "type": { + "description": "Type for the module. e.g. CONFIGURABLE_BAD_IP.", + "type": "string" + }, + "updateTime": { + "description": "Output only. The time the module was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "ExfilResource": { - "description": "Resource that has been exfiltrated or exfiltrated_to.", + "description": "Resource where data was exfiltrated from or exfiltrated to.", "id": "ExfilResource", "properties": { "components": { - "description": "Subcomponents of the asset that is exfiltrated - these could be URIs used during exfiltration, table names, databases, filenames, etc. For example, multiple tables may be exfiltrated from the same CloudSQL instance, or multiple files from the same Cloud Storage bucket.", + "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": "Resource's URI (https://google.aip.dev/122#full-resource-names)", + "description": "The resource's [full resource name](https://cloud.google.com/apis/design/resource_names#full_resource_name).", "type": "string" } }, "type": "object" }, "Exfiltration": { - "description": "Exfiltration represents a data exfiltration attempt of one or more sources to one or more targets. Sources represent the source of data that is exfiltrated, and Targets represents the destination the data was copied to.", + "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": "Exfiltration", "properties": { "sources": { @@ -4040,6 +7079,11 @@ "$ref": "ExfilResource" }, "type": "array" + }, + "totalExfiltratedBytes": { + "description": "Total exfiltrated bytes processed for the entire job.", + "format": "int64", + "type": "string" } }, "type": "object" @@ -4072,9 +7116,13 @@ "id": "File", "properties": { "contents": { - "description": "Prefix of the file contents as a JSON encoded string. (Currently only populated for Malicious Script Executed findings.)", + "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", @@ -4106,7 +7154,19 @@ "properties": { "access": { "$ref": "Access", - "description": "Access details associated to the Finding, such as more information on the caller, which method was accessed, from where, etc." + "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.", @@ -4116,6 +7176,14 @@ "description": "The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: \"XSS_FLASH_INJECTION\"", "type": "string" }, + "cloudDlpDataProfile": { + "$ref": "CloudDlpDataProfile", + "description": "Cloud DLP data profile that is associated with the finding." + }, + "cloudDlpInspection": { + "$ref": "CloudDlpInspection", + "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": { @@ -4139,7 +7207,7 @@ "type": "object" }, "containers": { - "description": "Containers associated with the finding. containers provides information for both Kubernetes and non-Kubernetes containers.", + "description": "Containers associated with the finding. This field provides information for both Kubernetes and non-Kubernetes containers.", "items": { "$ref": "Container" }, @@ -4155,7 +7223,7 @@ "description": "Database associated with the finding." }, "description": { - "description": "Contains more detail about the finding.", + "description": "Contains more details about the finding.", "type": "string" }, "eventTime": { @@ -4165,7 +7233,7 @@ }, "exfiltration": { "$ref": "Exfiltration", - "description": "Represents exfiltration associated with the Finding." + "description": "Represents exfiltrations associated with the finding." }, "externalSystems": { "additionalProperties": { @@ -4194,7 +7262,8 @@ "VULNERABILITY", "MISCONFIGURATION", "OBSERVATION", - "SCC_ERROR" + "SCC_ERROR", + "POSTURE_VIOLATION" ], "enumDescriptions": [ "Unspecified finding class.", @@ -4202,12 +7271,13 @@ "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 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.", + "description": "Represents IAM bindings associated with the finding.", "items": { "$ref": "IamBinding" }, @@ -4215,20 +7285,38 @@ }, "indicator": { "$ref": "Indicator", - "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. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise" + "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": "KernelRootkit", - "description": "Kernel Rootkit signature." + "description": "Signature of the kernel rootkit." }, "kubernetes": { "$ref": "Kubernetes", "description": "Kubernetes resources associated with the finding." }, + "loadBalancers": { + "description": "The load balancers associated with the finding.", + "items": { + "$ref": "LoadBalancer" + }, + "type": "array" + }, + "logEntries": { + "description": "Log entries that are relevant to the finding.", + "items": { + "$ref": "LogEntry" + }, + "type": "array" + }, "mitreAttack": { "$ref": "MitreAttack", "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": [ @@ -4246,7 +7334,7 @@ "type": "string" }, "muteInitiator": { - "description": "First known as mute_annotation. Records additional information about the mute operation e.g. mute config that muted the finding, user who muted the finding, etc. Unlike other attributes of a finding, a finding provider shouldn't set the value of mute.", + "description": "Records additional information about the mute operation, for example, the [mute configuration](/security-command-center/docs/how-to-mute-findings) that muted the finding and the user who muted the finding.", "type": "string" }, "muteUpdateTime": { @@ -4256,13 +7344,20 @@ "type": "string" }, "name": { - "description": "The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\"", + "description": "The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\", \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}\", \"projects/{project_id}/sources/{source_id}/findings/{finding_id}\".", "type": "string" }, "nextSteps": { - "description": "Next steps associate to the finding.", + "description": "Steps to address the finding.", "type": "string" }, + "orgPolicies": { + "description": "Contains information about the org policies associated with the finding.", + "items": { + "$ref": "OrgPolicy" + }, + "type": "array" + }, "parent": { "description": "The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: \"organizations/{organization_id}/sources/{source_id}\"", "type": "string" @@ -4288,6 +7383,10 @@ "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": "SecurityPosture", + "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": [ @@ -4299,7 +7398,7 @@ ], "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, public SSH access with weak or no passwords, etc. Threat: Indicates a threat that is able to access, modify, or delete data or execute unauthorized code within existing resources.", + "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." @@ -4433,11 +7532,11 @@ "id": "GoogleCloudSecuritycenterV1Binding", "properties": { "name": { - "description": "Name for binding.", + "description": "Name for the binding.", "type": "string" }, "ns": { - "description": "Namespace for binding.", + "description": "Namespace for the binding.", "type": "string" }, "role": { @@ -4460,77 +7559,98 @@ "properties": {}, "type": "object" }, - "GoogleCloudSecuritycenterV1ExposedResource": { - "description": "A resource that is exposed as a result of a finding.", - "id": "GoogleCloudSecuritycenterV1ExposedResource", + "GoogleCloudSecuritycenterV1CustomConfig": { + "description": "Defines the properties in a custom module configuration for Security Health Analytics. Use the custom module configuration to create custom detectors that generate custom findings for resources that you specify.", + "id": "GoogleCloudSecuritycenterV1CustomConfig", "properties": { - "displayName": { - "description": "Human readable name of the resource that is exposed.", + "customOutput": { + "$ref": "GoogleCloudSecuritycenterV1CustomOutputSpec", + "description": "Custom output properties." + }, + "description": { + "description": "Text that describes the vulnerability or misconfiguration that the custom module detects. This explanation is returned with each finding instance to help investigators understand the detected issue. The text must be enclosed in quotation marks.", "type": "string" }, - "methods": { - "description": "The ways in which this resource is exposed. Examples: Read, Write", - "items": { - "type": "string" - }, - "type": "array" + "predicate": { + "$ref": "Expr", + "description": "The CEL expression to evaluate to produce findings. When the expression evaluates to true against a resource, a finding is generated." }, - "name": { - "description": "Exposed Resource Name e.g.: `organizations/123/attackExposureResults/456/exposedResources/789`", + "recommendation": { + "description": "An explanation of the recommended steps that security teams can take to resolve the detected issue. This explanation is returned with each finding generated by this module in the `nextSteps` property of the finding JSON.", "type": "string" }, - "resource": { - "description": "The name of the resource that is exposed. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", - "type": "string" + "resourceSelector": { + "$ref": "GoogleCloudSecuritycenterV1ResourceSelector", + "description": "The resource types that the custom module operates on. Each custom module can specify up to 5 resource types." }, - "resourceType": { - "description": "The resource type of the exposed resource. See: https://cloud.google.com/asset-inventory/docs/supported-asset-types", - "type": "string" - }, - "resourceValue": { - "description": "How valuable this resource is.", + "severity": { + "description": "The severity to assign to findings generated by the module.", "enum": [ - "RESOURCE_VALUE_UNSPECIFIED", - "RESOURCE_VALUE_LOW", - "RESOURCE_VALUE_MEDIUM", - "RESOURCE_VALUE_HIGH" + "SEVERITY_UNSPECIFIED", + "CRITICAL", + "HIGH", + "MEDIUM", + "LOW" ], "enumDescriptions": [ - "The resource value isn't specified.", - "This is a low value resource.", - "This is a medium value resource.", - "This is a high value resource." + "Unspecified severity.", + "Critical severity.", + "High severity.", + "Medium severity.", + "Low severity." ], "type": "string" } }, "type": "object" }, - "GoogleCloudSecuritycenterV1ExposurePath": { - "description": "A path that an attacker could take to reach an exposed resource.", - "id": "GoogleCloudSecuritycenterV1ExposurePath", + "GoogleCloudSecuritycenterV1CustomOutputSpec": { + "description": "A set of optional name-value pairs that define custom source properties to return with each finding that is generated by the custom module. The custom source properties that are defined here are included in the finding JSON under `sourceProperties`.", + "id": "GoogleCloudSecuritycenterV1CustomOutputSpec", "properties": { - "edges": { - "description": "A list of the edges between nodes in this exposure path.", + "properties": { + "description": "A list of custom output properties to add to the finding.", "items": { - "$ref": "Edge" + "$ref": "GoogleCloudSecuritycenterV1Property" }, "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule": { + "description": "An EffectiveSecurityHealthAnalyticsCustomModule is the representation of a Security Health Analytics 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 `enablementState` property in EffectiveSecurityHealthAnalyticsCustomModule 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`. EffectiveSecurityHealthAnalyticsCustomModule is read-only.", + "id": "GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule", + "properties": { + "customConfig": { + "$ref": "GoogleCloudSecuritycenterV1CustomConfig", + "description": "Output only. The user-specified configuration for the module.", + "readOnly": true }, - "exposedResource": { - "$ref": "GoogleCloudSecuritycenterV1ExposedResource", - "description": "The leaf node of this exposure path." - }, - "name": { - "description": "Exposure Path Name e.g.: `organizations/123/attackExposureResults/456/exposurePaths/789`", + "displayName": { + "description": "Output only. The display name for the custom module. The name must be between 1 and 128 characters, start with a lowercase letter, and contain alphanumeric characters or underscores only.", + "readOnly": true, "type": "string" }, - "pathNodes": { - "description": "A list of nodes that exist in this exposure path.", - "items": { - "$ref": "PathNode" - }, - "type": "array" + "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 custom module. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\", or \"folders/{folder}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\"", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -4546,13 +7666,36 @@ }, "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 most recent time when the corresponding finding's ticket/tracker was updated in the external system.", + "description": "The time when the case was last updated, as reported by the external system.", "format": "google-datetime", "type": "string" }, "externalUid": { - "description": "Identifier that's used to track the given finding in the external system.", + "description": "The identifier that's used to track the finding's corresponding case in the external system.", "type": "string" }, "name": { @@ -4560,8 +7703,12 @@ "type": "string" }, "status": { - "description": "Most recent status of the corresponding finding's ticket/tracker in the external system.", + "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" @@ -4581,6 +7728,7 @@ "type": "string" }, "displayName": { + "deprecated": true, "description": "The human readable name to be displayed for the mute config.", "type": "string" }, @@ -4594,7 +7742,7 @@ "type": "string" }, "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}\"", + "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}\"", "type": "string" }, "updateTime": { @@ -4625,6 +7773,21 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV1Property": { + "description": "An individual name-value pair that defines a custom source property.", + "id": "GoogleCloudSecuritycenterV1Property", + "properties": { + "name": { + "description": "Name of the property for the custom output.", + "type": "string" + }, + "valueExpression": { + "$ref": "Expr", + "description": "The CEL expression for the custom output. A resource property can be specified to return the value of the property or a text string enclosed in quotation marks." + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV1Resource": { "description": "Information related to the Google Cloud resource.", "id": "GoogleCloudSecuritycenterV1Resource", @@ -4668,14 +7831,45 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV1ResourceSelector": { + "description": "Resource for selecting resource type.", + "id": "GoogleCloudSecuritycenterV1ResourceSelector", + "properties": { + "resourceTypes": { + "description": "The resource types to run the detector on.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV1ResourceValueConfig": { - "description": "A resource value config is a mapping configuration of user's tag values to resource values. Used by the attack path simulation.", + "description": "A resource value config (RVC) is a mapping configuration of user's resources to resource values. Used in Attack path simulations.", "id": "GoogleCloudSecuritycenterV1ResourceValueConfig", "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" @@ -4702,12 +7896,22 @@ "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": { "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" @@ -4740,6 +7944,100 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule": { + "description": "Represents an instance of a Security Health Analytics 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 the child folders and projects.", + "id": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule", + "properties": { + "ancestorModule": { + "description": "Output only. If empty, indicates that the custom module was created in the organization, folder, or project in which you are viewing the custom module. Otherwise, `ancestor_module` specifies the organization or folder from which the custom module is inherited.", + "readOnly": true, + "type": "string" + }, + "customConfig": { + "$ref": "GoogleCloudSecuritycenterV1CustomConfig", + "description": "The user specified custom configuration for the module." + }, + "displayName": { + "description": "The display name of the Security Health Analytics custom module. This display name becomes the finding category for all findings that are returned by this custom module. The display name must be between 1 and 128 characters, start with a lowercase letter, and contain alphanumeric characters or underscores only.", + "type": "string" + }, + "enablementState": { + "description": "The enablement state of the custom module.", + "enum": [ + "ENABLEMENT_STATE_UNSPECIFIED", + "ENABLED", + "DISABLED", + "INHERITED" + ], + "enumDescriptions": [ + "Unspecified enablement state.", + "The module is enabled at the given CRM resource.", + "The module is disabled at the given CRM resource.", + "State is inherited from an ancestor module. The module will either be effectively ENABLED or DISABLED based on its closest non-inherited ancestor module in the CRM hierarchy." + ], + "type": "string" + }, + "lastEditor": { + "description": "Output only. The editor that last updated the custom module.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Immutable. The resource name of the custom module. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}\" The id {customModule} is server-generated and is not user settable. It will be a numeric id containing 1-20 digits.", + "type": "string" + }, + "updateTime": { + "description": "Output only. The time at which the custom module was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "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", @@ -4972,6 +8270,2451 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2Access": { + "description": "Represents an access event.", + "id": "GoogleCloudSecuritycenterV2Access", + "properties": { + "callerIp": { + "description": "Caller's IP address, such as \"1.1.1.1\".", + "type": "string" + }, + "callerIpGeo": { + "$ref": "GoogleCloudSecuritycenterV2Geolocation", + "description": "The caller IP's geolocation, which identifies where the call came from." + }, + "methodName": { + "description": "The method that the service account called, e.g. \"SetIamPolicy\".", + "type": "string" + }, + "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" + }, + "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" + }, + "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": "GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo" + }, + "type": "array" + }, + "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" + }, + "serviceName": { + "description": "This is the API service that the service account made a call to, e.g. \"iam.googleapis.com\"", + "type": "string" + }, + "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" + }, + "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": { + "group": { + "description": "The API group of the resource. \"*\" means all.", + "type": "string" + }, + "name": { + "description": "The name of the resource being requested. Empty means all.", + "type": "string" + }, + "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" + }, + "resource": { + "description": "The optional resource type requested. \"*\" means all.", + "type": "string" + }, + "subresource": { + "description": "The optional subresource type.", + "type": "string" + }, + "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" + }, + "GoogleCloudSecuritycenterV2Application": { + "description": "Represents an application associated with a finding.", + "id": "GoogleCloudSecuritycenterV2Application", + "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 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", @@ -5134,7 +10877,7 @@ "type": "string" }, "member": { - "description": "A single identity requesting access for a Cloud Platform resource, e.g. \"foo@google.com\".", + "description": "A single identity requesting access for a Cloud Platform resource, for example, \"foo@google.com\".", "type": "string" }, "role": { @@ -5195,39 +10938,39 @@ "id": "KernelRootkit", "properties": { "name": { - "description": "Rootkit name when available.", + "description": "Rootkit name, when available.", "type": "string" }, "unexpectedCodeModification": { - "description": "True when unexpected modifications of kernel code memory are present.", + "description": "True if unexpected modifications of kernel code memory are present.", "type": "boolean" }, "unexpectedFtraceHandler": { - "description": "True when `ftrace` points are present with callbacks pointing to regions that are not in the expected kernel or module code range.", + "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 when interrupt handlers that are are not in the expected kernel or module code regions are present.", + "description": "True if interrupt handlers that are are not in the expected kernel or module code regions are present.", "type": "boolean" }, "unexpectedKernelCodePages": { - "description": "True when kernel code pages that are not in the expected kernel or module code regions are present.", + "description": "True if kernel code pages that are not in the expected kernel or module code regions are present.", "type": "boolean" }, "unexpectedKprobeHandler": { - "description": "True when `kprobe` points are present with callbacks pointing to regions that are not in the expected kernel or module code range.", + "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 when unexpected processes in the scheduler run queue are present. Such processes are in the run queue, but not in the process task list.", + "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 when unexpected modifications of kernel read-only data memory are present.", + "description": "True if unexpected modifications of kernel read-only data memory are present.", "type": "boolean" }, "unexpectedSystemCallHandler": { - "description": "True when system call handlers that are are not in the expected kernel or module code regions are present.", + "description": "True if system call handlers that are are not in the expected kernel or module code regions are present.", "type": "boolean" } }, @@ -5238,42 +10981,49 @@ "id": "Kubernetes", "properties": { "accessReviews": { - "description": "Provides information on any Kubernetes access reviews (i.e. privilege checks) relevant to the finding.", + "description": "Provides information on any Kubernetes access reviews (privilege checks) relevant to the finding.", "items": { "$ref": "AccessReview" }, "type": "array" }, "bindings": { - "description": "Provides Kubernetes role binding information for findings that involve RoleBindings or ClusterRoleBindings.", + "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": "GoogleCloudSecuritycenterV1Binding" }, "type": "array" }, "nodePools": { - "description": "GKE Node Pools associated with the finding. This field will contain NodePool information for each Node, when it is available.", + "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": "NodePool" }, "type": "array" }, "nodes": { - "description": "Provides Kubernetes Node information.", + "description": "Provides Kubernetes [node](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-architecture#nodes) information.", "items": { "$ref": "Node" }, "type": "array" }, + "objects": { + "description": "Kubernetes objects related to the finding.", + "items": { + "$ref": "Object" + }, + "type": "array" + }, "pods": { - "description": "Kubernetes Pods associated with the finding. This field will contain Pod records for each container that is owned by a Pod.", + "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": "Pod" }, "type": "array" }, "roles": { - "description": "Provides Kubernetes role information for findings that involve Roles or ClusterRoles.", + "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": "Role" }, @@ -5283,15 +11033,15 @@ "type": "object" }, "Label": { - "description": "Label represents a generic name=value label. Label has separate name and value fields to support filtering with contains().", + "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": "Label", "properties": { "name": { - "description": "Label name.", + "description": "Name of the label.", "type": "string" }, "value": { - "description": "Label value.", + "description": "Value that corresponds to the label's name.", "type": "string" } }, @@ -5352,6 +11102,24 @@ }, "type": "object" }, + "ListAttackPathsResponse": { + "description": "Response message for listing the attack paths for a given simulation or valued resource.", + "id": "ListAttackPathsResponse", + "properties": { + "attackPaths": { + "description": "The attack paths that the attack path simulation identified.", + "items": { + "$ref": "AttackPath" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Token to retrieve the next page of results, or empty if there are no more results.", + "type": "string" + } + }, + "type": "object" + }, "ListBigQueryExportsResponse": { "description": "Response message for listing BigQuery exports.", "id": "ListBigQueryExportsResponse", @@ -5370,6 +11138,96 @@ }, "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", + "properties": { + "nextPageToken": { + "description": "If not empty, indicates that there may be more custom modules to be returned.", + "type": "string" + }, + "securityHealthAnalyticsCustomModules": { + "description": "Custom modules belonging to the requested parent and its descendants.", + "items": { + "$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" + }, + "type": "array" + } + }, + "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", + "properties": { + "effectiveSecurityHealthAnalyticsCustomModules": { + "description": "Effective custom modules belonging to the requested parent.", + "items": { + "$ref": "GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule" + }, + "type": "array" + }, + "nextPageToken": { + "description": "If not empty, indicates that there may be more effective custom modules to be returned.", + "type": "string" + } + }, + "type": "object" + }, + "ListEventThreatDetectionCustomModulesResponse": { + "description": "Response for listing Event Threat Detection custom modules.", + "id": "ListEventThreatDetectionCustomModulesResponse", + "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" + }, "ListFindingsResponse": { "description": "Response message for listing findings.", "id": "ListFindingsResponse", @@ -5486,6 +11344,42 @@ }, "type": "object" }, + "ListResourceValueConfigsResponse": { + "description": "Response message to list resource value configs", + "id": "ListResourceValueConfigsResponse", + "properties": { + "nextPageToken": { + "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is empty, there are no subsequent pages.", + "type": "string" + }, + "resourceValueConfigs": { + "description": "The resource value configs from the specified parent.", + "items": { + "$ref": "GoogleCloudSecuritycenterV1ResourceValueConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListSecurityHealthAnalyticsCustomModulesResponse": { + "description": "Response message for listing Security Health Analytics custom modules.", + "id": "ListSecurityHealthAnalyticsCustomModulesResponse", + "properties": { + "nextPageToken": { + "description": "If not empty, indicates that there may be more custom modules to be returned.", + "type": "string" + }, + "securityHealthAnalyticsCustomModules": { + "description": "Custom modules belonging to the requested parent.", + "items": { + "$ref": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule" + }, + "type": "array" + } + }, + "type": "object" + }, "ListSourcesResponse": { "description": "Response message for listing sources.", "id": "ListSourcesResponse", @@ -5504,6 +11398,51 @@ }, "type": "object" }, + "ListValuedResourcesResponse": { + "description": "Response message for listing the valued resources for a given simulation.", + "id": "ListValuedResourcesResponse", + "properties": { + "nextPageToken": { + "description": "Token to retrieve the next page of results, or empty if there are no more results.", + "type": "string" + }, + "totalSize": { + "description": "The estimated total number of results matching the query.", + "format": "int32", + "type": "integer" + }, + "valuedResources": { + "description": "The valued resources that the attack path simulation identified.", + "items": { + "$ref": "ValuedResource" + }, + "type": "array" + } + }, + "type": "object" + }, + "LoadBalancer": { + "description": "Contains information related to the load balancer associated with the finding.", + "id": "LoadBalancer", + "properties": { + "name": { + "description": "The name of the load balancer associated with the finding.", + "type": "string" + } + }, + "type": "object" + }, + "LogEntry": { + "description": "An individual entry in a log.", + "id": "LogEntry", + "properties": { + "cloudLoggingEntry": { + "$ref": "CloudLoggingEntry", + "description": "An individual entry in a log stored in Cloud Logging." + } + }, + "type": "object" + }, "MemoryHashSignature": { "description": "A signature corresponding to memory page hashes.", "id": "MemoryHashSignature", @@ -5572,79 +11511,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", + "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", - "DYNAMIC_RESOLUTION", - "UNSECURED_CREDENTIALS", - "VALID_ACCOUNTS", - "LOCAL_ACCOUNTS", - "CLOUD_ACCOUNTS", + "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", - "PERMISSION_GROUPS_DISCOVERY", - "CLOUD_GROUPS", + "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", - "ACCOUNT_MANIPULATION", - "SSH_AUTHORIZED_KEYS", - "CREATE_OR_MODIFY_SYSTEM_PROCESS", - "STEAL_WEB_SESSION_COOKIE", + "DYNAMIC_RESOLUTION", + "LATERAL_TOOL_TRANSFER", "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", - "EXPLOIT_PUBLIC_FACING_APPLICATION", - "MODIFY_AUTHENTICATION_PROCESS", - "DATA_DESTRUCTION", - "DOMAIN_POLICY_MODIFICATION", - "IMPAIR_DEFENSES", - "NETWORK_SERVICE_DISCOVERY", - "ACCESS_TOKEN_MANIPULATION", - "ABUSE_ELEVATION_CONTROL_MECHANISM", - "DEFAULT_ACCOUNTS" + "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", + "T1069", + "T1069.003", + "T1071", + "T1071.004", + "T1072", + "T1078", + "T1078.001", + "T1078.003", + "T1078.004", "T1090", "T1090.002", "T1090.003", - "T1568", - "T1552", - "T1078", - "T1078.003", - "T1078.004", + "T1098", + "T1098.001", + "T1098.004", + "T1098.006", + "T1105", + "T1106", + "T1110", + "T1129", + "T1134", + "T1134.001", + "T1190", + "T1484", + "T1485", + "T1489", + "T1490", + "T1496", "T1498", - "T1069", - "T1069.003", + "T1526", + "T1528", + "T1531", + "T1539", + "T1543", + "T1548", + "T1552", + "T1556", + "T1562", + "T1562.001", "T1567", "T1567.002", - "T1098", - "T1098.004", - "T1543", - "T1539", + "T1568", + "T1570", "T1578", - "T1190", - "T1556", - "T1485", - "T1484", - "T1562", - "T1046", - "T1134", - "T1548", - "T1078.001" + "T1578.001", + "T1580", + "T1588", + "T1595", + "T1595.001", + "T1613" ], "type": "string" }, @@ -5693,79 +11678,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", + "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", - "DYNAMIC_RESOLUTION", - "UNSECURED_CREDENTIALS", - "VALID_ACCOUNTS", - "LOCAL_ACCOUNTS", - "CLOUD_ACCOUNTS", + "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", - "PERMISSION_GROUPS_DISCOVERY", - "CLOUD_GROUPS", + "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", - "ACCOUNT_MANIPULATION", - "SSH_AUTHORIZED_KEYS", - "CREATE_OR_MODIFY_SYSTEM_PROCESS", - "STEAL_WEB_SESSION_COOKIE", + "DYNAMIC_RESOLUTION", + "LATERAL_TOOL_TRANSFER", "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", - "EXPLOIT_PUBLIC_FACING_APPLICATION", - "MODIFY_AUTHENTICATION_PROCESS", - "DATA_DESTRUCTION", - "DOMAIN_POLICY_MODIFICATION", - "IMPAIR_DEFENSES", - "NETWORK_SERVICE_DISCOVERY", - "ACCESS_TOKEN_MANIPULATION", - "ABUSE_ELEVATION_CONTROL_MECHANISM", - "DEFAULT_ACCOUNTS" + "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", + "T1069", + "T1069.003", + "T1071", + "T1071.004", + "T1072", + "T1078", + "T1078.001", + "T1078.003", + "T1078.004", "T1090", "T1090.002", "T1090.003", - "T1568", - "T1552", - "T1078", - "T1078.003", - "T1078.004", + "T1098", + "T1098.001", + "T1098.004", + "T1098.006", + "T1105", + "T1106", + "T1110", + "T1129", + "T1134", + "T1134.001", + "T1190", + "T1484", + "T1485", + "T1489", + "T1490", + "T1496", "T1498", - "T1069", - "T1069.003", + "T1526", + "T1528", + "T1531", + "T1539", + "T1543", + "T1548", + "T1552", + "T1556", + "T1562", + "T1562.001", "T1567", "T1567.002", - "T1098", - "T1098.004", - "T1543", - "T1539", + "T1568", + "T1570", "T1578", - "T1190", - "T1556", - "T1485", - "T1484", - "T1562", - "T1046", - "T1134", - "T1548", - "T1078.001" + "T1578.001", + "T1580", + "T1588", + "T1595", + "T1595.001", + "T1613" ], "type": "string" }, @@ -5779,22 +11810,22 @@ "type": "object" }, "Node": { - "description": "Kubernetes Nodes associated with the finding.", + "description": "Kubernetes nodes associated with the finding.", "id": "Node", "properties": { "name": { - "description": "Full Resource name of the Compute Engine VM running the cluster node.", + "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" }, "NodePool": { - "description": "Provides GKE Node Pool information.", + "description": "Provides GKE node pool information.", "id": "NodePool", "properties": { "name": { - "description": "Kubernetes Node pool name.", + "description": "Kubernetes node pool name.", "type": "string" }, "nodes": { @@ -5835,6 +11866,36 @@ }, "type": "object" }, + "Object": { + "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": "Object", + "properties": { + "containers": { + "description": "Pod containers associated with this finding, if any.", + "items": { + "$ref": "Container" + }, + "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" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -5864,12 +11925,23 @@ "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" } }, "type": "object" }, + "OrgPolicy": { + "description": "Contains information about the org policies associated with the finding.", + "id": "OrgPolicy", + "properties": { + "name": { + "description": "The resource name of the org policy. Example: \"organizations/{organization_id}/policies/{constraint_name}\"", + "type": "string" + } + }, + "type": "object" + }, "OrganizationSettings": { "description": "User specified settings that are attached to the Security Command Center organization.", "id": "OrganizationSettings", @@ -5879,7 +11951,7 @@ "description": "The configuration used for Asset Discovery runs." }, "enableAssetDiscovery": { - "description": "A flag that indicates if Asset Discovery should be enabled. If the flag is set to `true`, then discovery of assets will occur. If it is set to `false, all historical assets will remain, but discovery of future assets will not occur.", + "description": "A flag that indicates if Asset Discovery should be enabled. If the flag is set to `true`, then discovery of assets will occur. If it is set to `false`, all historical assets will remain, but discovery of future assets will not occur.", "type": "boolean" }, "name": { @@ -5889,34 +11961,50 @@ }, "type": "object" }, - "PathNode": { - "description": "Represents one point that an attacker passes through in this exposure path.", - "id": "PathNode", + "Package": { + "description": "Package is a generic definition of a package.", + "id": "Package", "properties": { - "associatedFindings": { - "description": "The findings associated with this node in the exposure path.", - "items": { - "$ref": "AssociatedFinding" - }, - "type": "array" - }, - "displayName": { - "description": "Human readable name of this resource.", + "cpeUri": { + "description": "The CPE URI where the vulnerability was detected.", "type": "string" }, - "resource": { - "description": "The name of the resource at this point in the exposure path. The format of the name is: https://cloud.google.com/apis/design/resource_names#full_resource_name", + "packageName": { + "description": "The name of the package where the vulnerability was detected.", "type": "string" }, - "resourceType": { - "description": "The resource type of this resource. See: https://cloud.google.com/asset-inventory/docs/supported-asset-types", + "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", + "properties": { + "canonicalFinding": { + "description": "Canonical name of the associated findings. Example: organizations/123/sources/456/findings/789", + "type": "string" + }, + "findingCategory": { + "description": "The additional taxonomy group within findings from a given source.", + "type": "string" + }, + "name": { + "description": "Full resource name of the finding.", "type": "string" } }, "type": "object" }, "Pod": { - "description": "Kubernetes Pod.", + "description": "A Kubernetes Pod.", "id": "Pod", "properties": { "containers": { @@ -5945,7 +12033,7 @@ "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/).", + "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": { @@ -5975,6 +12063,40 @@ }, "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", + "properties": { + "columnNumber": { + "format": "int32", + "type": "integer" + }, + "lineNumber": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "Process": { "description": "Represents an operating system process.", "id": "Process", @@ -6013,22 +12135,22 @@ "type": "array" }, "name": { - "description": "The process name visible in utilities like `top` and `ps`; it can be accessed via `/proc/[pid]/comm` and changed with `prctl(PR_SET_NAME)`.", + "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.", + "description": "The parent process ID.", "format": "int64", "type": "string" }, "pid": { - "description": "The process id.", + "description": "The process ID.", "format": "int64", "type": "string" }, "script": { "$ref": "File", - "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." + "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" @@ -6041,6 +12163,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." @@ -6105,6 +12241,17 @@ }, "type": "object" }, + "ResourceValueConfigMetadata": { + "description": "Metadata about a ResourceValueConfig. For example, id and name.", + "id": "ResourceValueConfigMetadata", + "properties": { + "name": { + "description": "Resource value config name", + "type": "string" + } + }, + "type": "object" + }, "Role": { "description": "Kubernetes Role or ClusterRole.", "id": "Role", @@ -6140,6 +12287,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", @@ -6211,6 +12378,48 @@ }, "type": "object" }, + "SecurityPosture": { + "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": "SecurityPosture", + "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": "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, `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" + }, "ServiceAccountDelegationInfo": { "description": "Identity delegation history of an authenticated service account.", "id": "ServiceAccountDelegationInfo", @@ -6291,12 +12500,104 @@ }, "type": "object" }, + "SimulateSecurityHealthAnalyticsCustomModuleRequest": { + "description": "Request message to simulate a CustomConfig against a given test resource. Maximum size of the request is 4 MB by default.", + "id": "SimulateSecurityHealthAnalyticsCustomModuleRequest", + "properties": { + "customConfig": { + "$ref": "GoogleCloudSecuritycenterV1CustomConfig", + "description": "Required. The custom configuration that you need to test." + }, + "resource": { + "$ref": "SimulatedResource", + "description": "Required. Resource data to simulate custom module against." + } + }, + "type": "object" + }, + "SimulateSecurityHealthAnalyticsCustomModuleResponse": { + "description": "Response message for simulating a `SecurityHealthAnalyticsCustomModule` against a given resource.", + "id": "SimulateSecurityHealthAnalyticsCustomModuleResponse", + "properties": { + "result": { + "$ref": "SimulatedResult", + "description": "Result for test case in the corresponding request." + } + }, + "type": "object" + }, + "SimulatedResource": { + "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": { + "$ref": "Policy", + "description": "Optional. A representation of the IAM policy." + }, + "resourceData": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "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, for example, `compute.googleapis.com/Disk`.", + "type": "string" + } + }, + "type": "object" + }, + "SimulatedResult": { + "description": "Possible test result.", + "id": "SimulatedResult", + "properties": { + "error": { + "$ref": "Status", + "description": "Error encountered during the test." + }, + "finding": { + "$ref": "Finding", + "description": "Finding that would be published for the test case, if a violation is detected." + }, + "noViolation": { + "$ref": "Empty", + "description": "Indicates that the test case does not trigger any violation." + } + }, + "type": "object" + }, + "Simulation": { + "description": "Attack path simulation", + "id": "Simulation", + "properties": { + "createTime": { + "description": "Output only. Time simulation was created", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Full resource name of the Simulation: organizations/123/simulations/456", + "type": "string" + }, + "resourceValueConfigsMetadata": { + "description": "Resource value configurations' metadata used in this simulation. Maximum of 100.", + "items": { + "$ref": "ResourceValueConfigMetadata" + }, + "type": "array" + } + }, + "type": "object" + }, "Source": { "description": "Security Command Center finding source. A finding source is an entity or a mechanism that can produce a finding. A source is like a container of findings that come from the same scanner, logger, monitor, and other tools.", "id": "Source", "properties": { "canonicalName": { - "description": "The canonical name of the finding. It's either \"organizations/{organization_id}/sources/{source_id}\", \"folders/{folder_id}/sources/{source_id}\" or \"projects/{project_number}/sources/{source_id}\", depending on the closest CRM ancestor of the resource associated with the finding.", + "description": "The canonical name of the finding source. It's either \"organizations/{organization_id}/sources/{source_id}\", \"folders/{folder_id}/sources/{source_id}\", or \"projects/{project_number}/sources/{source_id}\", depending on the closest CRM ancestor of the resource associated with the finding.", "type": "string" }, "description": { @@ -6353,11 +12654,11 @@ "type": "object" }, "Subject": { - "description": "Represents a Kubernetes Subject.", + "description": "Represents a Kubernetes subject.", "id": "Subject", "properties": { "kind": { - "description": "Authentication type for subject.", + "description": "Authentication type for the subject.", "enum": [ "AUTH_TYPE_UNSPECIFIED", "USER", @@ -6367,17 +12668,17 @@ "enumDescriptions": [ "Authentication is not specified.", "User with valid certificate.", - "Users managed by Kubernetes API with credentials stored as Secrets.", + "Users managed by Kubernetes API with credentials stored as secrets.", "Collection of users." ], "type": "string" }, "name": { - "description": "Name for subject.", + "description": "Name for the subject.", "type": "string" }, "ns": { - "description": "Namespace for subject.", + "description": "Namespace for the subject.", "type": "string" } }, @@ -6411,6 +12712,115 @@ }, "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", + "properties": { + "rawText": { + "description": "Required. The raw text of the module's contents. Used to generate error messages.", + "type": "string" + }, + "type": { + "description": "Required. The type of the module (e.g. CONFIGURABLE_BAD_IP).", + "type": "string" + } + }, + "type": "object" + }, + "ValidateEventThreatDetectionCustomModuleResponse": { + "description": "Response to validating an Event Threat Detection custom module.", + "id": "ValidateEventThreatDetectionCustomModuleResponse", + "properties": { + "errors": { + "$ref": "CustomModuleValidationErrors", + "description": "A list of errors returned by the validator. If the list is empty, there were no errors." + } + }, + "type": "object" + }, + "ValuedResource": { + "description": "A resource that is determined to have value to a user's system", + "id": "ValuedResource", + "properties": { + "displayName": { + "description": "Human-readable name of the valued resource.", + "type": "string" + }, + "exposedScore": { + "description": "Exposed score for this valued resource. A value of 0 means no exposure was detected exposure.", + "format": "double", + "type": "number" + }, + "name": { + "description": "Valued resource name, for example, e.g.: `organizations/123/simulations/456/valuedResources/789`", + "type": "string" + }, + "resource": { + "description": "The [full resource name](https://cloud.google.com/apis/design/resource_names#full_resource_name) of the valued resource.", + "type": "string" + }, + "resourceType": { + "description": "The [resource type](https://cloud.google.com/asset-inventory/docs/supported-asset-types) of the valued resource.", + "type": "string" + }, + "resourceValue": { + "description": "How valuable this resource is.", + "enum": [ + "RESOURCE_VALUE_UNSPECIFIED", + "RESOURCE_VALUE_LOW", + "RESOURCE_VALUE_MEDIUM", + "RESOURCE_VALUE_HIGH" + ], + "enumDescriptions": [ + "The resource value isn't specified.", + "This is a low-value resource.", + "This is a medium-value resource.", + "This is a high-value resource." + ], + "type": "string" + }, + "resourceValueConfigsUsed": { + "description": "List of resource value configurations' metadata used to determine the value of this resource. Maximum of 100.", + "items": { + "$ref": "ResourceValueConfigMetadata" + }, + "type": "array" + } + }, + "type": "object" + }, "Vulnerability": { "description": "Refers to common vulnerability fields e.g. cve, cvss, cwe etc.", "id": "Vulnerability", @@ -6418,6 +12828,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/etc/api/securitycenter/v1beta1/securitycenter-api.json b/etc/api/securitycenter/v1beta1/securitycenter-api.json index 81db483007..a4064c10b6 100644 --- a/etc/api/securitycenter/v1beta1/securitycenter-api.json +++ b/etc/api/securitycenter/v1beta1/securitycenter-api.json @@ -413,7 +413,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/organizations/{organizationsId}/operations", "httpMethod": "GET", "id": "securitycenter.organizations.operations.list", @@ -896,7 +896,7 @@ } } }, - "revision": "20230123", + "revision": "20240302", "rootUrl": "https://securitycenter.googleapis.com/", "schemas": { "Access": { @@ -916,49 +916,53 @@ "type": "string" }, "principalEmail": { - "description": "Associated email, such as \"foo@google.com\". The email address of the authenticated user (or service account on behalf of third party principal) making the request. For third party identity callers, the `principal_subject` field is populated instead of this field. For privacy reasons, the principal email address is sometimes redacted. For more information, see [Caller identities in audit logs](https://cloud.google.com/logging/docs/audit#user-id).", + "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" }, "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}]`", + "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" }, "serviceAccountDelegationInfo": { - "description": "Identity delegation history of an authenticated service account that makes the request. It contains information on the real authorities that try to access GCP resources by delegating on a service account. When multiple authorities are present, they are guaranteed to be sorted based on the original ordering of the identity delegation events.", + "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": "ServiceAccountDelegationInfo" }, "type": "array" }, "serviceAccountKeyName": { - "description": "The name of the service account key used to create or exchange credentials for authenticating the service account making the request. This is a scheme-less URI full resource name. For example: \"//iam.googleapis.com/projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}\" ", + "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" }, "serviceName": { "description": "This is the API service that the service account made a call to, e.g. \"iam.googleapis.com\"", "type": "string" }, + "userAgent": { + "description": "The caller's user agent string associated with the finding.", + "type": "string" + }, "userAgentFamily": { - "description": "What kind of user agent is associated, for example operating system shells, embedded or stand-alone applications, etc.", + "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 the username of a user, user account, or other entity involved in the access event. What the entity is and what its role in the access event is depends on the finding that this field appears in. The entity is likely not an IAM principal, but could be a user that is logged into an operating system, if the finding is VM-related, or a user that is logged into some type of application that is involved in the access event.", + "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" }, "AccessReview": { - "description": "Conveys information about a Kubernetes access review (e.g. kubectl auth can-i ...) that was involved in a finding.", + "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": "AccessReview", "properties": { "group": { - "description": "Group is the API Group of the Resource. \"*\" means all.", + "description": "The API group of the resource. \"*\" means all.", "type": "string" }, "name": { - "description": "Name is the name of the resource being requested. Empty means all.", + "description": "The name of the resource being requested. Empty means all.", "type": "string" }, "ns": { @@ -966,19 +970,34 @@ "type": "string" }, "resource": { - "description": "Resource is the optional resource type requested. \"*\" means all.", + "description": "The optional resource type requested. \"*\" means all.", "type": "string" }, "subresource": { - "description": "Subresource is the optional subresource type.", + "description": "The optional subresource type.", "type": "string" }, "verb": { - "description": "Verb is a Kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", + "description": "A Kubernetes resource API verb, like get, list, watch, create, update, delete, proxy. \"*\" means all.", "type": "string" }, "version": { - "description": "Version is the API Version of the Resource. \"*\" means all.", + "description": "The API version of the resource. \"*\" means all.", + "type": "string" + } + }, + "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" } }, @@ -1048,20 +1067,51 @@ }, "type": "object" }, - "AssociatedFinding": { - "description": "A finding that is associated with this node in the exposure path.", - "id": "AssociatedFinding", + "AttackExposure": { + "description": "An attack exposure contains the results of an attack path simulation run.", + "id": "AttackExposure", "properties": { - "canonicalFindingName": { - "description": "Canonical name of the associated findings. Example: organizations/123/sources/456/findings/789", + "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" }, - "findingCategory": { - "description": "The additional taxonomy group within findings from a given source.", + "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" }, - "name": { - "description": "Full resource name of the finding.", + "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": "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." + ], "type": "string" } }, @@ -1115,6 +1165,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" + }, "Binding": { "description": "Associates `members`, or principals, with a `role`.", "id": "Binding", @@ -1124,14 +1231,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1143,23 +1250,137 @@ "properties": {}, "type": "object" }, + "CloudDlpDataProfile": { + "description": "The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated with the finding.", + "id": "CloudDlpDataProfile", + "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" + }, + "CloudDlpInspection": { + "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": "CloudDlpInspection", + "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" + }, + "CloudLoggingEntry": { + "description": "Metadata taken from a [Cloud Logging LogEntry](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry)", + "id": "CloudLoggingEntry", + "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 the `LOG_ID` field 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" + }, "Compliance": { "description": "Contains compliance information about a security standard indicating unmet recommendations.", "id": "Compliance", "properties": { "ids": { - "description": "Policies within the standard/benchmark e.g. A.12.4.1", + "description": "Policies within the standard or benchmark, for example, A.12.4.1", "items": { "type": "string" }, "type": "array" }, "standard": { - "description": "Refers to industry wide standards or benchmarks e.g. \"cis\", \"pci\", \"owasp\", etc.", + "description": "Industry-wide compliance standards or benchmarks, such as CIS, PCI, and OWASP.", "type": "string" }, "version": { - "description": "Version of the standard/benchmark e.g. 1.1", + "description": "Version of the standard or benchmark, for example, 1.1", + "type": "string" + } + }, + "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" } }, @@ -1222,7 +1443,7 @@ "type": "object" }, "ContactDetails": { - "description": "The details pertaining to specific contacts", + "description": "Details about specific contacts", "id": "ContactDetails", "properties": { "contacts": { @@ -1239,8 +1460,13 @@ "description": "Container associated with the finding.", "id": "Container", "properties": { + "createTime": { + "description": "The time that the container was created.", + "format": "google-datetime", + "type": "string" + }, "imageId": { - "description": "Optional container image id, when provided by the container runtime. Uniquely identifies the container image launched using a container image digest.", + "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": { @@ -1251,28 +1477,70 @@ "type": "array" }, "name": { - "description": "Container name.", + "description": "Name of the container.", "type": "string" }, "uri": { - "description": "Container image URI provided when configuring a pod/container. May identify a container image version using mutable tags.", + "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" }, "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" }, + "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": { @@ -1283,6 +1551,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" @@ -1424,30 +1696,34 @@ "type": "object" }, "Database": { - "description": "Represents database access information, such as queries. A database may be a sub-resource of an instance (as in the case of CloudSQL instances or Cloud Spanner instances), or the database instance itself. Some database resources may not have the full resource name populated because these resource types are not yet supported by Cloud Asset Inventory (e.g. CloudSQL databases). In these cases only the display name will be provided.", + "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": "Database", "properties": { "displayName": { - "description": "The human readable name of the database the user connected to.", + "description": "The human-readable name of the database that the user connected to.", "type": "string" }, "grantees": { - "description": "The target usernames/roles/groups of a SQL privilege grant (not an IAM policy change).", + "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": "The full resource name of the database the user connected to, if it is supported by CAI. (https://google.aip.dev/122#full-resource-names)", + "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 associated with the relevant access.", + "description": "The SQL statement that is associated with the database access.", "type": "string" }, "userName": { - "description": "The username used to connect to the DB. This may not necessarily be an IAM principal, and has no required format.", + "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" } }, @@ -1469,16 +1745,16 @@ }, "type": "object" }, - "Edge": { - "description": "Represents a connection between a source node and a destination node in this exposure path.", - "id": "Edge", + "DiskPath": { + "description": "Path of the file in terms of underlying disk/partition identifiers.", + "id": "DiskPath", "properties": { - "destination": { - "description": "This is the resource name of the destination node.", + "partitionUuid": { + "description": "UUID of the partition (format https://wiki.archlinux.org/title/persistent_block_device_naming#by-uuid)", "type": "string" }, - "source": { - "description": "This is the resource name of the source node.", + "relativePath": { + "description": "Relative path of the file in the partition as a JSON encoded string. Example: /home/user1/executable_file.sh", "type": "string" } }, @@ -1491,7 +1767,7 @@ "type": "object" }, "EnvironmentVariable": { - "description": "EnvironmentVariable is a name-value pair to store environment variables for Process.", + "description": "A name-value pair representing an environment variable used in an operating system process.", "id": "EnvironmentVariable", "properties": { "name": { @@ -1506,25 +1782,25 @@ "type": "object" }, "ExfilResource": { - "description": "Resource that has been exfiltrated or exfiltrated_to.", + "description": "Resource where data was exfiltrated from or exfiltrated to.", "id": "ExfilResource", "properties": { "components": { - "description": "Subcomponents of the asset that is exfiltrated - these could be URIs used during exfiltration, table names, databases, filenames, etc. For example, multiple tables may be exfiltrated from the same CloudSQL instance, or multiple files from the same Cloud Storage bucket.", + "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": "Resource's URI (https://google.aip.dev/122#full-resource-names)", + "description": "The resource's [full resource name](https://cloud.google.com/apis/design/resource_names#full_resource_name).", "type": "string" } }, "type": "object" }, "Exfiltration": { - "description": "Exfiltration represents a data exfiltration attempt of one or more sources to one or more targets. Sources represent the source of data that is exfiltrated, and Targets represents the destination the data was copied to.", + "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": "Exfiltration", "properties": { "sources": { @@ -1540,6 +1816,11 @@ "$ref": "ExfilResource" }, "type": "array" + }, + "totalExfiltratedBytes": { + "description": "Total exfiltrated bytes processed for the entire job.", + "format": "int64", + "type": "string" } }, "type": "object" @@ -1572,9 +1853,13 @@ "id": "File", "properties": { "contents": { - "description": "Prefix of the file contents as a JSON encoded string. (Currently only populated for Malicious Script Executed findings.)", + "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", @@ -1606,7 +1891,19 @@ "properties": { "access": { "$ref": "Access", - "description": "Access details associated to the Finding, such as more information on the caller, which method was accessed, from where, etc." + "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.", @@ -1616,6 +1913,14 @@ "description": "The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: \"XSS_FLASH_INJECTION\"", "type": "string" }, + "cloudDlpDataProfile": { + "$ref": "CloudDlpDataProfile", + "description": "Cloud DLP data profile that is associated with the finding." + }, + "cloudDlpInspection": { + "$ref": "CloudDlpInspection", + "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": { @@ -1639,7 +1944,7 @@ "type": "object" }, "containers": { - "description": "Containers associated with the finding. containers provides information for both Kubernetes and non-Kubernetes containers.", + "description": "Containers associated with the finding. This field provides information for both Kubernetes and non-Kubernetes containers.", "items": { "$ref": "Container" }, @@ -1655,7 +1960,7 @@ "description": "Database associated with the finding." }, "description": { - "description": "Contains more detail about the finding.", + "description": "Contains more details about the finding.", "type": "string" }, "eventTime": { @@ -1665,7 +1970,7 @@ }, "exfiltration": { "$ref": "Exfiltration", - "description": "Represents exfiltration associated with the Finding." + "description": "Represents exfiltrations associated with the finding." }, "externalSystems": { "additionalProperties": { @@ -1694,7 +1999,8 @@ "VULNERABILITY", "MISCONFIGURATION", "OBSERVATION", - "SCC_ERROR" + "SCC_ERROR", + "POSTURE_VIOLATION" ], "enumDescriptions": [ "Unspecified finding class.", @@ -1702,12 +2008,13 @@ "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 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.", + "description": "Represents IAM bindings associated with the finding.", "items": { "$ref": "IamBinding" }, @@ -1715,20 +2022,38 @@ }, "indicator": { "$ref": "Indicator", - "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. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise" + "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": "KernelRootkit", - "description": "Kernel Rootkit signature." + "description": "Signature of the kernel rootkit." }, "kubernetes": { "$ref": "Kubernetes", "description": "Kubernetes resources associated with the finding." }, + "loadBalancers": { + "description": "The load balancers associated with the finding.", + "items": { + "$ref": "LoadBalancer" + }, + "type": "array" + }, + "logEntries": { + "description": "Log entries that are relevant to the finding.", + "items": { + "$ref": "LogEntry" + }, + "type": "array" + }, "mitreAttack": { "$ref": "MitreAttack", "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": [ @@ -1746,7 +2071,7 @@ "type": "string" }, "muteInitiator": { - "description": "First known as mute_annotation. Records additional information about the mute operation e.g. mute config that muted the finding, user who muted the finding, etc. Unlike other attributes of a finding, a finding provider shouldn't set the value of mute.", + "description": "Records additional information about the mute operation, for example, the [mute configuration](/security-command-center/docs/how-to-mute-findings) that muted the finding and the user who muted the finding.", "type": "string" }, "muteUpdateTime": { @@ -1756,13 +2081,20 @@ "type": "string" }, "name": { - "description": "The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\"", + "description": "The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\", \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}\", \"projects/{project_id}/sources/{source_id}/findings/{finding_id}\".", "type": "string" }, "nextSteps": { - "description": "Next steps associate to the finding.", + "description": "Steps to address the finding.", "type": "string" }, + "orgPolicies": { + "description": "Contains information about the org policies associated with the finding.", + "items": { + "$ref": "OrgPolicy" + }, + "type": "array" + }, "parent": { "description": "The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: \"organizations/{organization_id}/sources/{source_id}\"", "type": "string" @@ -1788,6 +2120,10 @@ "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": "SecurityPosture", + "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": [ @@ -1799,7 +2135,7 @@ ], "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, public SSH access with weak or no passwords, etc. Threat: Indicates a threat that is able to access, modify, or delete data or execute unauthorized code within existing resources.", + "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." @@ -1933,11 +2269,11 @@ "id": "GoogleCloudSecuritycenterV1Binding", "properties": { "name": { - "description": "Name for binding.", + "description": "Name for the binding.", "type": "string" }, "ns": { - "description": "Namespace for binding.", + "description": "Namespace for the binding.", "type": "string" }, "role": { @@ -1960,77 +2296,98 @@ "properties": {}, "type": "object" }, - "GoogleCloudSecuritycenterV1ExposedResource": { - "description": "A resource that is exposed as a result of a finding.", - "id": "GoogleCloudSecuritycenterV1ExposedResource", + "GoogleCloudSecuritycenterV1CustomConfig": { + "description": "Defines the properties in a custom module configuration for Security Health Analytics. Use the custom module configuration to create custom detectors that generate custom findings for resources that you specify.", + "id": "GoogleCloudSecuritycenterV1CustomConfig", "properties": { - "displayName": { - "description": "Human readable name of the resource that is exposed.", + "customOutput": { + "$ref": "GoogleCloudSecuritycenterV1CustomOutputSpec", + "description": "Custom output properties." + }, + "description": { + "description": "Text that describes the vulnerability or misconfiguration that the custom module detects. This explanation is returned with each finding instance to help investigators understand the detected issue. The text must be enclosed in quotation marks.", "type": "string" }, - "methods": { - "description": "The ways in which this resource is exposed. Examples: Read, Write", - "items": { - "type": "string" - }, - "type": "array" + "predicate": { + "$ref": "Expr", + "description": "The CEL expression to evaluate to produce findings. When the expression evaluates to true against a resource, a finding is generated." }, - "name": { - "description": "Exposed Resource Name e.g.: `organizations/123/attackExposureResults/456/exposedResources/789`", + "recommendation": { + "description": "An explanation of the recommended steps that security teams can take to resolve the detected issue. This explanation is returned with each finding generated by this module in the `nextSteps` property of the finding JSON.", "type": "string" }, - "resource": { - "description": "The name of the resource that is exposed. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", - "type": "string" + "resourceSelector": { + "$ref": "GoogleCloudSecuritycenterV1ResourceSelector", + "description": "The resource types that the custom module operates on. Each custom module can specify up to 5 resource types." }, - "resourceType": { - "description": "The resource type of the exposed resource. See: https://cloud.google.com/asset-inventory/docs/supported-asset-types", - "type": "string" - }, - "resourceValue": { - "description": "How valuable this resource is.", + "severity": { + "description": "The severity to assign to findings generated by the module.", "enum": [ - "RESOURCE_VALUE_UNSPECIFIED", - "RESOURCE_VALUE_LOW", - "RESOURCE_VALUE_MEDIUM", - "RESOURCE_VALUE_HIGH" + "SEVERITY_UNSPECIFIED", + "CRITICAL", + "HIGH", + "MEDIUM", + "LOW" ], "enumDescriptions": [ - "The resource value isn't specified.", - "This is a low value resource.", - "This is a medium value resource.", - "This is a high value resource." + "Unspecified severity.", + "Critical severity.", + "High severity.", + "Medium severity.", + "Low severity." ], "type": "string" } }, "type": "object" }, - "GoogleCloudSecuritycenterV1ExposurePath": { - "description": "A path that an attacker could take to reach an exposed resource.", - "id": "GoogleCloudSecuritycenterV1ExposurePath", + "GoogleCloudSecuritycenterV1CustomOutputSpec": { + "description": "A set of optional name-value pairs that define custom source properties to return with each finding that is generated by the custom module. The custom source properties that are defined here are included in the finding JSON under `sourceProperties`.", + "id": "GoogleCloudSecuritycenterV1CustomOutputSpec", "properties": { - "edges": { - "description": "A list of the edges between nodes in this exposure path.", + "properties": { + "description": "A list of custom output properties to add to the finding.", "items": { - "$ref": "Edge" + "$ref": "GoogleCloudSecuritycenterV1Property" }, "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule": { + "description": "An EffectiveSecurityHealthAnalyticsCustomModule is the representation of a Security Health Analytics 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 `enablementState` property in EffectiveSecurityHealthAnalyticsCustomModule 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`. EffectiveSecurityHealthAnalyticsCustomModule is read-only.", + "id": "GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule", + "properties": { + "customConfig": { + "$ref": "GoogleCloudSecuritycenterV1CustomConfig", + "description": "Output only. The user-specified configuration for the module.", + "readOnly": true }, - "exposedResource": { - "$ref": "GoogleCloudSecuritycenterV1ExposedResource", - "description": "The leaf node of this exposure path." - }, - "name": { - "description": "Exposure Path Name e.g.: `organizations/123/attackExposureResults/456/exposurePaths/789`", + "displayName": { + "description": "Output only. The display name for the custom module. The name must be between 1 and 128 characters, start with a lowercase letter, and contain alphanumeric characters or underscores only.", + "readOnly": true, "type": "string" }, - "pathNodes": { - "description": "A list of nodes that exist in this exposure path.", - "items": { - "$ref": "PathNode" - }, - "type": "array" + "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 custom module. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\", or \"folders/{folder}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\"", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -2046,13 +2403,36 @@ }, "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 most recent time when the corresponding finding's ticket/tracker was updated in the external system.", + "description": "The time when the case was last updated, as reported by the external system.", "format": "google-datetime", "type": "string" }, "externalUid": { - "description": "Identifier that's used to track the given finding in the external system.", + "description": "The identifier that's used to track the finding's corresponding case in the external system.", "type": "string" }, "name": { @@ -2060,8 +2440,12 @@ "type": "string" }, "status": { - "description": "Most recent status of the corresponding finding's ticket/tracker in the external system.", + "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" @@ -2081,6 +2465,7 @@ "type": "string" }, "displayName": { + "deprecated": true, "description": "The human readable name to be displayed for the mute config.", "type": "string" }, @@ -2094,7 +2479,7 @@ "type": "string" }, "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}\"", + "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}\"", "type": "string" }, "updateTime": { @@ -2125,6 +2510,21 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV1Property": { + "description": "An individual name-value pair that defines a custom source property.", + "id": "GoogleCloudSecuritycenterV1Property", + "properties": { + "name": { + "description": "Name of the property for the custom output.", + "type": "string" + }, + "valueExpression": { + "$ref": "Expr", + "description": "The CEL expression for the custom output. A resource property can be specified to return the value of the property or a text string enclosed in quotation marks." + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV1Resource": { "description": "Information related to the Google Cloud resource.", "id": "GoogleCloudSecuritycenterV1Resource", @@ -2168,14 +2568,45 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV1ResourceSelector": { + "description": "Resource for selecting resource type.", + "id": "GoogleCloudSecuritycenterV1ResourceSelector", + "properties": { + "resourceTypes": { + "description": "The resource types to run the detector on.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV1ResourceValueConfig": { - "description": "A resource value config is a mapping configuration of user's tag values to resource values. Used by the attack path simulation.", + "description": "A resource value config (RVC) is a mapping configuration of user's resources to resource values. Used in Attack path simulations.", "id": "GoogleCloudSecuritycenterV1ResourceValueConfig", "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" @@ -2202,12 +2633,22 @@ "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": { "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" @@ -2240,6 +2681,100 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule": { + "description": "Represents an instance of a Security Health Analytics 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 the child folders and projects.", + "id": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule", + "properties": { + "ancestorModule": { + "description": "Output only. If empty, indicates that the custom module was created in the organization, folder, or project in which you are viewing the custom module. Otherwise, `ancestor_module` specifies the organization or folder from which the custom module is inherited.", + "readOnly": true, + "type": "string" + }, + "customConfig": { + "$ref": "GoogleCloudSecuritycenterV1CustomConfig", + "description": "The user specified custom configuration for the module." + }, + "displayName": { + "description": "The display name of the Security Health Analytics custom module. This display name becomes the finding category for all findings that are returned by this custom module. The display name must be between 1 and 128 characters, start with a lowercase letter, and contain alphanumeric characters or underscores only.", + "type": "string" + }, + "enablementState": { + "description": "The enablement state of the custom module.", + "enum": [ + "ENABLEMENT_STATE_UNSPECIFIED", + "ENABLED", + "DISABLED", + "INHERITED" + ], + "enumDescriptions": [ + "Unspecified enablement state.", + "The module is enabled at the given CRM resource.", + "The module is disabled at the given CRM resource.", + "State is inherited from an ancestor module. The module will either be effectively ENABLED or DISABLED based on its closest non-inherited ancestor module in the CRM hierarchy." + ], + "type": "string" + }, + "lastEditor": { + "description": "Output only. The editor that last updated the custom module.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Immutable. The resource name of the custom module. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}\" The id {customModule} is server-generated and is not user settable. It will be a numeric id containing 1-20 digits.", + "type": "string" + }, + "updateTime": { + "description": "Output only. The time at which the custom module was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "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" + }, "GoogleCloudSecuritycenterV1beta1Finding": { "description": "Security Command Center finding. A finding is a record of assessment data (security, risk, health or privacy) ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, an XSS vulnerability in an App Engine application is a finding.", "id": "GoogleCloudSecuritycenterV1beta1Finding", @@ -2553,6 +3088,2451 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2Access": { + "description": "Represents an access event.", + "id": "GoogleCloudSecuritycenterV2Access", + "properties": { + "callerIp": { + "description": "Caller's IP address, such as \"1.1.1.1\".", + "type": "string" + }, + "callerIpGeo": { + "$ref": "GoogleCloudSecuritycenterV2Geolocation", + "description": "The caller IP's geolocation, which identifies where the call came from." + }, + "methodName": { + "description": "The method that the service account called, e.g. \"SetIamPolicy\".", + "type": "string" + }, + "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" + }, + "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" + }, + "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": "GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo" + }, + "type": "array" + }, + "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" + }, + "serviceName": { + "description": "This is the API service that the service account made a call to, e.g. \"iam.googleapis.com\"", + "type": "string" + }, + "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" + }, + "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": { + "group": { + "description": "The API group of the resource. \"*\" means all.", + "type": "string" + }, + "name": { + "description": "The name of the resource being requested. Empty means all.", + "type": "string" + }, + "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" + }, + "resource": { + "description": "The optional resource type requested. \"*\" means all.", + "type": "string" + }, + "subresource": { + "description": "The optional subresource type.", + "type": "string" + }, + "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" + }, + "GoogleCloudSecuritycenterV2Application": { + "description": "Represents an application associated with a finding.", + "id": "GoogleCloudSecuritycenterV2Application", + "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 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", @@ -2700,7 +5680,7 @@ "type": "string" }, "member": { - "description": "A single identity requesting access for a Cloud Platform resource, e.g. \"foo@google.com\".", + "description": "A single identity requesting access for a Cloud Platform resource, for example, \"foo@google.com\".", "type": "string" }, "role": { @@ -2750,39 +5730,39 @@ "id": "KernelRootkit", "properties": { "name": { - "description": "Rootkit name when available.", + "description": "Rootkit name, when available.", "type": "string" }, "unexpectedCodeModification": { - "description": "True when unexpected modifications of kernel code memory are present.", + "description": "True if unexpected modifications of kernel code memory are present.", "type": "boolean" }, "unexpectedFtraceHandler": { - "description": "True when `ftrace` points are present with callbacks pointing to regions that are not in the expected kernel or module code range.", + "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 when interrupt handlers that are are not in the expected kernel or module code regions are present.", + "description": "True if interrupt handlers that are are not in the expected kernel or module code regions are present.", "type": "boolean" }, "unexpectedKernelCodePages": { - "description": "True when kernel code pages that are not in the expected kernel or module code regions are present.", + "description": "True if kernel code pages that are not in the expected kernel or module code regions are present.", "type": "boolean" }, "unexpectedKprobeHandler": { - "description": "True when `kprobe` points are present with callbacks pointing to regions that are not in the expected kernel or module code range.", + "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 when unexpected processes in the scheduler run queue are present. Such processes are in the run queue, but not in the process task list.", + "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 when unexpected modifications of kernel read-only data memory are present.", + "description": "True if unexpected modifications of kernel read-only data memory are present.", "type": "boolean" }, "unexpectedSystemCallHandler": { - "description": "True when system call handlers that are are not in the expected kernel or module code regions are present.", + "description": "True if system call handlers that are are not in the expected kernel or module code regions are present.", "type": "boolean" } }, @@ -2793,42 +5773,49 @@ "id": "Kubernetes", "properties": { "accessReviews": { - "description": "Provides information on any Kubernetes access reviews (i.e. privilege checks) relevant to the finding.", + "description": "Provides information on any Kubernetes access reviews (privilege checks) relevant to the finding.", "items": { "$ref": "AccessReview" }, "type": "array" }, "bindings": { - "description": "Provides Kubernetes role binding information for findings that involve RoleBindings or ClusterRoleBindings.", + "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": "GoogleCloudSecuritycenterV1Binding" }, "type": "array" }, "nodePools": { - "description": "GKE Node Pools associated with the finding. This field will contain NodePool information for each Node, when it is available.", + "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": "NodePool" }, "type": "array" }, "nodes": { - "description": "Provides Kubernetes Node information.", + "description": "Provides Kubernetes [node](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-architecture#nodes) information.", "items": { "$ref": "Node" }, "type": "array" }, + "objects": { + "description": "Kubernetes objects related to the finding.", + "items": { + "$ref": "Object" + }, + "type": "array" + }, "pods": { - "description": "Kubernetes Pods associated with the finding. This field will contain Pod records for each container that is owned by a Pod.", + "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": "Pod" }, "type": "array" }, "roles": { - "description": "Provides Kubernetes role information for findings that involve Roles or ClusterRoles.", + "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": "Role" }, @@ -2838,15 +5825,15 @@ "type": "object" }, "Label": { - "description": "Label represents a generic name=value label. Label has separate name and value fields to support filtering with contains().", + "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": "Label", "properties": { "name": { - "description": "Label name.", + "description": "Name of the label.", "type": "string" }, "value": { - "description": "Label value.", + "description": "Value that corresponds to the label's name.", "type": "string" } }, @@ -2973,6 +5960,28 @@ }, "type": "object" }, + "LoadBalancer": { + "description": "Contains information related to the load balancer associated with the finding.", + "id": "LoadBalancer", + "properties": { + "name": { + "description": "The name of the load balancer associated with the finding.", + "type": "string" + } + }, + "type": "object" + }, + "LogEntry": { + "description": "An individual entry in a log.", + "id": "LogEntry", + "properties": { + "cloudLoggingEntry": { + "$ref": "CloudLoggingEntry", + "description": "An individual entry in a log stored in Cloud Logging." + } + }, + "type": "object" + }, "MemoryHashSignature": { "description": "A signature corresponding to memory page hashes.", "id": "MemoryHashSignature", @@ -3041,79 +6050,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", + "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", - "DYNAMIC_RESOLUTION", - "UNSECURED_CREDENTIALS", - "VALID_ACCOUNTS", - "LOCAL_ACCOUNTS", - "CLOUD_ACCOUNTS", + "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", - "PERMISSION_GROUPS_DISCOVERY", - "CLOUD_GROUPS", + "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", - "ACCOUNT_MANIPULATION", - "SSH_AUTHORIZED_KEYS", - "CREATE_OR_MODIFY_SYSTEM_PROCESS", - "STEAL_WEB_SESSION_COOKIE", + "DYNAMIC_RESOLUTION", + "LATERAL_TOOL_TRANSFER", "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", - "EXPLOIT_PUBLIC_FACING_APPLICATION", - "MODIFY_AUTHENTICATION_PROCESS", - "DATA_DESTRUCTION", - "DOMAIN_POLICY_MODIFICATION", - "IMPAIR_DEFENSES", - "NETWORK_SERVICE_DISCOVERY", - "ACCESS_TOKEN_MANIPULATION", - "ABUSE_ELEVATION_CONTROL_MECHANISM", - "DEFAULT_ACCOUNTS" + "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", + "T1069", + "T1069.003", + "T1071", + "T1071.004", + "T1072", + "T1078", + "T1078.001", + "T1078.003", + "T1078.004", "T1090", "T1090.002", "T1090.003", - "T1568", - "T1552", - "T1078", - "T1078.003", - "T1078.004", + "T1098", + "T1098.001", + "T1098.004", + "T1098.006", + "T1105", + "T1106", + "T1110", + "T1129", + "T1134", + "T1134.001", + "T1190", + "T1484", + "T1485", + "T1489", + "T1490", + "T1496", "T1498", - "T1069", - "T1069.003", + "T1526", + "T1528", + "T1531", + "T1539", + "T1543", + "T1548", + "T1552", + "T1556", + "T1562", + "T1562.001", "T1567", "T1567.002", - "T1098", - "T1098.004", - "T1543", - "T1539", + "T1568", + "T1570", "T1578", - "T1190", - "T1556", - "T1485", - "T1484", - "T1562", - "T1046", - "T1134", - "T1548", - "T1078.001" + "T1578.001", + "T1580", + "T1588", + "T1595", + "T1595.001", + "T1613" ], "type": "string" }, @@ -3162,79 +6217,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", + "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", - "DYNAMIC_RESOLUTION", - "UNSECURED_CREDENTIALS", - "VALID_ACCOUNTS", - "LOCAL_ACCOUNTS", - "CLOUD_ACCOUNTS", + "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", - "PERMISSION_GROUPS_DISCOVERY", - "CLOUD_GROUPS", + "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", - "ACCOUNT_MANIPULATION", - "SSH_AUTHORIZED_KEYS", - "CREATE_OR_MODIFY_SYSTEM_PROCESS", - "STEAL_WEB_SESSION_COOKIE", + "DYNAMIC_RESOLUTION", + "LATERAL_TOOL_TRANSFER", "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", - "EXPLOIT_PUBLIC_FACING_APPLICATION", - "MODIFY_AUTHENTICATION_PROCESS", - "DATA_DESTRUCTION", - "DOMAIN_POLICY_MODIFICATION", - "IMPAIR_DEFENSES", - "NETWORK_SERVICE_DISCOVERY", - "ACCESS_TOKEN_MANIPULATION", - "ABUSE_ELEVATION_CONTROL_MECHANISM", - "DEFAULT_ACCOUNTS" + "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", + "T1069", + "T1069.003", + "T1071", + "T1071.004", + "T1072", + "T1078", + "T1078.001", + "T1078.003", + "T1078.004", "T1090", "T1090.002", "T1090.003", - "T1568", - "T1552", - "T1078", - "T1078.003", - "T1078.004", + "T1098", + "T1098.001", + "T1098.004", + "T1098.006", + "T1105", + "T1106", + "T1110", + "T1129", + "T1134", + "T1134.001", + "T1190", + "T1484", + "T1485", + "T1489", + "T1490", + "T1496", "T1498", - "T1069", - "T1069.003", + "T1526", + "T1528", + "T1531", + "T1539", + "T1543", + "T1548", + "T1552", + "T1556", + "T1562", + "T1562.001", "T1567", "T1567.002", - "T1098", - "T1098.004", - "T1543", - "T1539", + "T1568", + "T1570", "T1578", - "T1190", - "T1556", - "T1485", - "T1484", - "T1562", - "T1046", - "T1134", - "T1548", - "T1078.001" + "T1578.001", + "T1580", + "T1588", + "T1595", + "T1595.001", + "T1613" ], "type": "string" }, @@ -3248,22 +6349,22 @@ "type": "object" }, "Node": { - "description": "Kubernetes Nodes associated with the finding.", + "description": "Kubernetes nodes associated with the finding.", "id": "Node", "properties": { "name": { - "description": "Full Resource name of the Compute Engine VM running the cluster node.", + "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" }, "NodePool": { - "description": "Provides GKE Node Pool information.", + "description": "Provides GKE node pool information.", "id": "NodePool", "properties": { "name": { - "description": "Kubernetes Node pool name.", + "description": "Kubernetes node pool name.", "type": "string" }, "nodes": { @@ -3276,6 +6377,36 @@ }, "type": "object" }, + "Object": { + "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": "Object", + "properties": { + "containers": { + "description": "Pod containers associated with this finding, if any.", + "items": { + "$ref": "Container" + }, + "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" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -3305,12 +6436,23 @@ "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" } }, "type": "object" }, + "OrgPolicy": { + "description": "Contains information about the org policies associated with the finding.", + "id": "OrgPolicy", + "properties": { + "name": { + "description": "The resource name of the org policy. Example: \"organizations/{organization_id}/policies/{constraint_name}\"", + "type": "string" + } + }, + "type": "object" + }, "OrganizationSettings": { "description": "User specified settings that are attached to the Security Command Center organization.", "id": "OrganizationSettings", @@ -3320,7 +6462,7 @@ "description": "The configuration used for Asset Discovery runs." }, "enableAssetDiscovery": { - "description": "A flag that indicates if Asset Discovery should be enabled. If the flag is set to `true`, then discovery of assets will occur. If it is set to `false, all historical assets will remain, but discovery of future assets will not occur.", + "description": "A flag that indicates if Asset Discovery should be enabled. If the flag is set to `true`, then discovery of assets will occur. If it is set to `false`, all historical assets will remain, but discovery of future assets will not occur.", "type": "boolean" }, "name": { @@ -3330,34 +6472,31 @@ }, "type": "object" }, - "PathNode": { - "description": "Represents one point that an attacker passes through in this exposure path.", - "id": "PathNode", + "Package": { + "description": "Package is a generic definition of a package.", + "id": "Package", "properties": { - "associatedFindings": { - "description": "The findings associated with this node in the exposure path.", - "items": { - "$ref": "AssociatedFinding" - }, - "type": "array" - }, - "displayName": { - "description": "Human readable name of this resource.", + "cpeUri": { + "description": "The CPE URI where the vulnerability was detected.", "type": "string" }, - "resource": { - "description": "The name of the resource at this point in the exposure path. The format of the name is: https://cloud.google.com/apis/design/resource_names#full_resource_name", + "packageName": { + "description": "The name of the package where the vulnerability was detected.", "type": "string" }, - "resourceType": { - "description": "The resource type of this resource. See: https://cloud.google.com/asset-inventory/docs/supported-asset-types", + "packageType": { + "description": "Type of package, for example, os, maven, or go.", + "type": "string" + }, + "packageVersion": { + "description": "The version of the package.", "type": "string" } }, "type": "object" }, "Pod": { - "description": "Kubernetes Pod.", + "description": "A Kubernetes Pod.", "id": "Pod", "properties": { "containers": { @@ -3386,7 +6525,7 @@ "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/).", + "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": { @@ -3416,6 +6555,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" + }, "Process": { "description": "Represents an operating system process.", "id": "Process", @@ -3454,22 +6612,22 @@ "type": "array" }, "name": { - "description": "The process name visible in utilities like `top` and `ps`; it can be accessed via `/proc/[pid]/comm` and changed with `prctl(PR_SET_NAME)`.", + "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.", + "description": "The parent process ID.", "format": "int64", "type": "string" }, "pid": { - "description": "The process id.", + "description": "The process ID.", "format": "int64", "type": "string" }, "script": { "$ref": "File", - "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." + "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" @@ -3482,6 +6640,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." @@ -3539,6 +6711,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", @@ -3591,6 +6783,48 @@ }, "type": "object" }, + "SecurityPosture": { + "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": "SecurityPosture", + "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": "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, `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" + }, "ServiceAccountDelegationInfo": { "description": "Identity delegation history of an authenticated service account.", "id": "ServiceAccountDelegationInfo", @@ -3695,11 +6929,11 @@ "type": "object" }, "Subject": { - "description": "Represents a Kubernetes Subject.", + "description": "Represents a Kubernetes subject.", "id": "Subject", "properties": { "kind": { - "description": "Authentication type for subject.", + "description": "Authentication type for the subject.", "enum": [ "AUTH_TYPE_UNSPECIFIED", "USER", @@ -3709,17 +6943,17 @@ "enumDescriptions": [ "Authentication is not specified.", "User with valid certificate.", - "Users managed by Kubernetes API with credentials stored as Secrets.", + "Users managed by Kubernetes API with credentials stored as secrets.", "Collection of users." ], "type": "string" }, "name": { - "description": "Name for subject.", + "description": "Name for the subject.", "type": "string" }, "ns": { - "description": "Namespace for subject.", + "description": "Namespace for the subject.", "type": "string" } }, @@ -3753,6 +6987,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" + }, "Vulnerability": { "description": "Refers to common vulnerability fields e.g. cve, cvss, cwe etc.", "id": "Vulnerability", @@ -3760,6 +7026,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/etc/api/securitycenter/v1beta2/securitycenter-api.json b/etc/api/securitycenter/v1beta2/securitycenter-api.json index ff95caaeda..e8cba97df2 100644 --- a/etc/api/securitycenter/v1beta2/securitycenter-api.json +++ b/etc/api/securitycenter/v1beta2/securitycenter-api.json @@ -157,31 +157,6 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, - "getOnboardingState": { - "description": "Retrieve the OnboardingState of a resource.", - "flatPath": "v1beta2/folders/{foldersId}/onboardingState", - "httpMethod": "GET", - "id": "securitycenter.folders.getOnboardingState", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the OnboardingState to retrieve. Formats: * organizations/{organization}/onboardingState * folders/{folder}/onboardingState * projects/{project}/onboardingState", - "location": "path", - "pattern": "^folders/[^/]+/onboardingState$", - "required": true, - "type": "string" - } - }, - "path": "v1beta2/{+name}", - "response": { - "$ref": "OnboardingState" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, "getRapidVulnerabilityDetectionSettings": { "description": "Get the RapidVulnerabilityDetectionSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetRapidVulnerabilityDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateRapidVulnerabilityDetectionSettings for this purpose.", "flatPath": "v1beta2/folders/{foldersId}/rapidVulnerabilityDetectionSettings", @@ -741,31 +716,6 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, - "getOnboardingState": { - "description": "Retrieve the OnboardingState of a resource.", - "flatPath": "v1beta2/organizations/{organizationsId}/onboardingState", - "httpMethod": "GET", - "id": "securitycenter.organizations.getOnboardingState", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the OnboardingState to retrieve. Formats: * organizations/{organization}/onboardingState * folders/{folder}/onboardingState * projects/{project}/onboardingState", - "location": "path", - "pattern": "^organizations/[^/]+/onboardingState$", - "required": true, - "type": "string" - } - }, - "path": "v1beta2/{+name}", - "response": { - "$ref": "OnboardingState" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, "getRapidVulnerabilityDetectionSettings": { "description": "Get the RapidVulnerabilityDetectionSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetRapidVulnerabilityDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateRapidVulnerabilityDetectionSettings for this purpose.", "flatPath": "v1beta2/organizations/{organizationsId}/rapidVulnerabilityDetectionSettings", @@ -1350,31 +1300,6 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, - "getOnboardingState": { - "description": "Retrieve the OnboardingState of a resource.", - "flatPath": "v1beta2/projects/{projectsId}/onboardingState", - "httpMethod": "GET", - "id": "securitycenter.projects.getOnboardingState", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the OnboardingState to retrieve. Formats: * organizations/{organization}/onboardingState * folders/{folder}/onboardingState * projects/{project}/onboardingState", - "location": "path", - "pattern": "^projects/[^/]+/onboardingState$", - "required": true, - "type": "string" - } - }, - "path": "v1beta2/{+name}", - "response": { - "$ref": "OnboardingState" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, "getRapidVulnerabilityDetectionSettings": { "description": "Get the RapidVulnerabilityDetectionSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetRapidVulnerabilityDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateRapidVulnerabilityDetectionSettings for this purpose.", "flatPath": "v1beta2/projects/{projectsId}/rapidVulnerabilityDetectionSettings", @@ -1981,7 +1906,7 @@ } } }, - "revision": "20230123", + "revision": "20240302", "rootUrl": "https://securitycenter.googleapis.com/", "schemas": { "Access": { @@ -2001,49 +1926,53 @@ "type": "string" }, "principalEmail": { - "description": "Associated email, such as \"foo@google.com\". The email address of the authenticated user (or service account on behalf of third party principal) making the request. For third party identity callers, the `principal_subject` field is populated instead of this field. For privacy reasons, the principal email address is sometimes redacted. For more information, see [Caller identities in audit logs](https://cloud.google.com/logging/docs/audit#user-id).", + "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" }, "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}]`", + "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" }, "serviceAccountDelegationInfo": { - "description": "Identity delegation history of an authenticated service account that makes the request. It contains information on the real authorities that try to access GCP resources by delegating on a service account. When multiple authorities are present, they are guaranteed to be sorted based on the original ordering of the identity delegation events.", + "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": "ServiceAccountDelegationInfo" }, "type": "array" }, "serviceAccountKeyName": { - "description": "The name of the service account key used to create or exchange credentials for authenticating the service account making the request. This is a scheme-less URI full resource name. For example: \"//iam.googleapis.com/projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}\" ", + "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" }, "serviceName": { "description": "This is the API service that the service account made a call to, e.g. \"iam.googleapis.com\"", "type": "string" }, + "userAgent": { + "description": "The caller's user agent string associated with the finding.", + "type": "string" + }, "userAgentFamily": { - "description": "What kind of user agent is associated, for example operating system shells, embedded or stand-alone applications, etc.", + "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 the username of a user, user account, or other entity involved in the access event. What the entity is and what its role in the access event is depends on the finding that this field appears in. The entity is likely not an IAM principal, but could be a user that is logged into an operating system, if the finding is VM-related, or a user that is logged into some type of application that is involved in the access event.", + "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" }, "AccessReview": { - "description": "Conveys information about a Kubernetes access review (e.g. kubectl auth can-i ...) that was involved in a finding.", + "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": "AccessReview", "properties": { "group": { - "description": "Group is the API Group of the Resource. \"*\" means all.", + "description": "The API group of the resource. \"*\" means all.", "type": "string" }, "name": { - "description": "Name is the name of the resource being requested. Empty means all.", + "description": "The name of the resource being requested. Empty means all.", "type": "string" }, "ns": { @@ -2051,38 +1980,214 @@ "type": "string" }, "resource": { - "description": "Resource is the optional resource type requested. \"*\" means all.", + "description": "The optional resource type requested. \"*\" means all.", "type": "string" }, "subresource": { - "description": "Subresource is the optional subresource type.", + "description": "The optional subresource type.", "type": "string" }, "verb": { - "description": "Verb is a Kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", + "description": "A Kubernetes resource API verb, like get, list, watch, create, update, delete, proxy. \"*\" means all.", "type": "string" }, "version": { - "description": "Version is the API Version of the Resource. \"*\" means all.", + "description": "The API version of the resource. \"*\" means all.", "type": "string" } }, "type": "object" }, - "AssociatedFinding": { - "description": "A finding that is associated with this node in the exposure path.", - "id": "AssociatedFinding", + "Application": { + "description": "Represents an application associated with a finding.", + "id": "Application", "properties": { - "canonicalFindingName": { - "description": "Canonical name of the associated findings. Example: organizations/123/sources/456/findings/789", + "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" }, - "findingCategory": { - "description": "The additional taxonomy group within findings from a given source.", + "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" + }, + "AttackExposure": { + "description": "An attack exposure contains the results of an attack path simulation run.", + "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/simulations/456/attackExposureResults/789", "type": "string" }, - "name": { - "description": "Full resource name of the finding.", + "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": "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." + ], + "type": "string" + } + }, + "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" + }, + "CloudDlpDataProfile": { + "description": "The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated with the finding.", + "id": "CloudDlpDataProfile", + "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" + }, + "CloudDlpInspection": { + "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": "CloudDlpInspection", + "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" + }, + "CloudLoggingEntry": { + "description": "Metadata taken from a [Cloud Logging LogEntry](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry)", + "id": "CloudLoggingEntry", + "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 the `LOG_ID` field 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" } }, @@ -2093,18 +2198,59 @@ "id": "Compliance", "properties": { "ids": { - "description": "Policies within the standard/benchmark e.g. A.12.4.1", + "description": "Policies within the standard or benchmark, for example, A.12.4.1", "items": { "type": "string" }, "type": "array" }, "standard": { - "description": "Refers to industry wide standards or benchmarks e.g. \"cis\", \"pci\", \"owasp\", etc.", + "description": "Industry-wide compliance standards or benchmarks, such as CIS, PCI, and OWASP.", "type": "string" }, "version": { - "description": "Version of the standard/benchmark e.g. 1.1", + "description": "Version of the standard or benchmark, for example, 1.1", + "type": "string" + } + }, + "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" } }, @@ -2198,7 +2344,7 @@ "type": "object" }, "ContactDetails": { - "description": "The details pertaining to specific contacts", + "description": "Details about specific contacts", "id": "ContactDetails", "properties": { "contacts": { @@ -2215,8 +2361,13 @@ "description": "Container associated with the finding.", "id": "Container", "properties": { + "createTime": { + "description": "The time that the container was created.", + "format": "google-datetime", + "type": "string" + }, "imageId": { - "description": "Optional container image id, when provided by the container runtime. Uniquely identifies the container image launched using a container image digest.", + "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": { @@ -2227,11 +2378,11 @@ "type": "array" }, "name": { - "description": "Container name.", + "description": "Name of the container.", "type": "string" }, "uri": { - "description": "Container image URI provided when configuring a pod/container. May identify a container image version using mutable tags.", + "description": "Container image URI provided when configuring a pod or container. This string can identify a container image version using mutable tags.", "type": "string" } }, @@ -2283,17 +2434,59 @@ "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" }, + "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": { @@ -2304,6 +2497,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" @@ -2445,30 +2642,34 @@ "type": "object" }, "Database": { - "description": "Represents database access information, such as queries. A database may be a sub-resource of an instance (as in the case of CloudSQL instances or Cloud Spanner instances), or the database instance itself. Some database resources may not have the full resource name populated because these resource types are not yet supported by Cloud Asset Inventory (e.g. CloudSQL databases). In these cases only the display name will be provided.", + "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": "Database", "properties": { "displayName": { - "description": "The human readable name of the database the user connected to.", + "description": "The human-readable name of the database that the user connected to.", "type": "string" }, "grantees": { - "description": "The target usernames/roles/groups of a SQL privilege grant (not an IAM policy change).", + "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": "The full resource name of the database the user connected to, if it is supported by CAI. (https://google.aip.dev/122#full-resource-names)", + "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 associated with the relevant access.", + "description": "The SQL statement that is associated with the database access.", "type": "string" }, "userName": { - "description": "The username used to connect to the DB. This may not necessarily be an IAM principal, and has no required format.", + "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" } }, @@ -2495,14 +2696,16 @@ "STANDARD", "TRIAL", "ALPHA", - "DEMO" + "DEMO", + "PAY_AS_YOU_GO" ], "enumDescriptions": [ "Default value. This value is unused.", "The standard subscription.", "The trial subscription.", "The alpha subscription.", - "The demo subscription for channel partners." + "The demo subscription for channel partners.", + "Pay-as-you-go subscription." ], "type": "string" } @@ -2525,23 +2728,23 @@ }, "type": "object" }, - "Edge": { - "description": "Represents a connection between a source node and a destination node in this exposure path.", - "id": "Edge", + "DiskPath": { + "description": "Path of the file in terms of underlying disk/partition identifiers.", + "id": "DiskPath", "properties": { - "destination": { - "description": "This is the resource name of the destination node.", + "partitionUuid": { + "description": "UUID of the partition (format https://wiki.archlinux.org/title/persistent_block_device_naming#by-uuid)", "type": "string" }, - "source": { - "description": "This is the resource name of the source node.", + "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" }, "EnvironmentVariable": { - "description": "EnvironmentVariable is a name-value pair to store environment variables for Process.", + "description": "A name-value pair representing an environment variable used in an operating system process.", "id": "EnvironmentVariable", "properties": { "name": { @@ -2596,25 +2799,25 @@ "type": "object" }, "ExfilResource": { - "description": "Resource that has been exfiltrated or exfiltrated_to.", + "description": "Resource where data was exfiltrated from or exfiltrated to.", "id": "ExfilResource", "properties": { "components": { - "description": "Subcomponents of the asset that is exfiltrated - these could be URIs used during exfiltration, table names, databases, filenames, etc. For example, multiple tables may be exfiltrated from the same CloudSQL instance, or multiple files from the same Cloud Storage bucket.", + "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": "Resource's URI (https://google.aip.dev/122#full-resource-names)", + "description": "The resource's [full resource name](https://cloud.google.com/apis/design/resource_names#full_resource_name).", "type": "string" } }, "type": "object" }, "Exfiltration": { - "description": "Exfiltration represents a data exfiltration attempt of one or more sources to one or more targets. Sources represent the source of data that is exfiltrated, and Targets represents the destination the data was copied to.", + "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": "Exfiltration", "properties": { "sources": { @@ -2630,6 +2833,34 @@ "$ref": "ExfilResource" }, "type": "array" + }, + "totalExfiltratedBytes": { + "description": "Total exfiltrated bytes processed for the entire job.", + "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", + "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" @@ -2639,9 +2870,13 @@ "id": "File", "properties": { "contents": { - "description": "Prefix of the file contents as a JSON encoded string. (Currently only populated for Malicious Script Executed findings.)", + "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", @@ -2673,7 +2908,19 @@ "properties": { "access": { "$ref": "Access", - "description": "Access details associated to the Finding, such as more information on the caller, which method was accessed, from where, etc." + "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.", @@ -2683,6 +2930,14 @@ "description": "The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: \"XSS_FLASH_INJECTION\"", "type": "string" }, + "cloudDlpDataProfile": { + "$ref": "CloudDlpDataProfile", + "description": "Cloud DLP data profile that is associated with the finding." + }, + "cloudDlpInspection": { + "$ref": "CloudDlpInspection", + "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": { @@ -2706,7 +2961,7 @@ "type": "object" }, "containers": { - "description": "Containers associated with the finding. containers provides information for both Kubernetes and non-Kubernetes containers.", + "description": "Containers associated with the finding. This field provides information for both Kubernetes and non-Kubernetes containers.", "items": { "$ref": "Container" }, @@ -2722,7 +2977,7 @@ "description": "Database associated with the finding." }, "description": { - "description": "Contains more detail about the finding.", + "description": "Contains more details about the finding.", "type": "string" }, "eventTime": { @@ -2732,7 +2987,7 @@ }, "exfiltration": { "$ref": "Exfiltration", - "description": "Represents exfiltration associated with the Finding." + "description": "Represents exfiltrations associated with the finding." }, "externalSystems": { "additionalProperties": { @@ -2761,7 +3016,8 @@ "VULNERABILITY", "MISCONFIGURATION", "OBSERVATION", - "SCC_ERROR" + "SCC_ERROR", + "POSTURE_VIOLATION" ], "enumDescriptions": [ "Unspecified finding class.", @@ -2769,12 +3025,13 @@ "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 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.", + "description": "Represents IAM bindings associated with the finding.", "items": { "$ref": "IamBinding" }, @@ -2782,20 +3039,38 @@ }, "indicator": { "$ref": "Indicator", - "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. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise" + "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": "KernelRootkit", - "description": "Kernel Rootkit signature." + "description": "Signature of the kernel rootkit." }, "kubernetes": { "$ref": "Kubernetes", "description": "Kubernetes resources associated with the finding." }, + "loadBalancers": { + "description": "The load balancers associated with the finding.", + "items": { + "$ref": "LoadBalancer" + }, + "type": "array" + }, + "logEntries": { + "description": "Log entries that are relevant to the finding.", + "items": { + "$ref": "LogEntry" + }, + "type": "array" + }, "mitreAttack": { "$ref": "MitreAttack", "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": [ @@ -2813,7 +3088,7 @@ "type": "string" }, "muteInitiator": { - "description": "First known as mute_annotation. Records additional information about the mute operation e.g. mute config that muted the finding, user who muted the finding, etc. Unlike other attributes of a finding, a finding provider shouldn't set the value of mute.", + "description": "Records additional information about the mute operation, for example, the [mute configuration](/security-command-center/docs/how-to-mute-findings) that muted the finding and the user who muted the finding.", "type": "string" }, "muteUpdateTime": { @@ -2823,13 +3098,20 @@ "type": "string" }, "name": { - "description": "The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\"", + "description": "The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\", \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}\", \"projects/{project_id}/sources/{source_id}/findings/{finding_id}\".", "type": "string" }, "nextSteps": { - "description": "Next steps associate to the finding.", + "description": "Steps to address the finding.", "type": "string" }, + "orgPolicies": { + "description": "Contains information about the org policies associated with the finding.", + "items": { + "$ref": "OrgPolicy" + }, + "type": "array" + }, "parent": { "description": "The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: \"organizations/{organization_id}/sources/{source_id}\"", "type": "string" @@ -2855,6 +3137,10 @@ "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": "SecurityPosture", + "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": [ @@ -2866,7 +3152,7 @@ ], "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, public SSH access with weak or no passwords, etc. Threat: Indicates a threat that is able to access, modify, or delete data or execute unauthorized code within existing resources.", + "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." @@ -2977,11 +3263,11 @@ "id": "GoogleCloudSecuritycenterV1Binding", "properties": { "name": { - "description": "Name for binding.", + "description": "Name for the binding.", "type": "string" }, "ns": { - "description": "Namespace for binding.", + "description": "Namespace for the binding.", "type": "string" }, "role": { @@ -3004,77 +3290,98 @@ "properties": {}, "type": "object" }, - "GoogleCloudSecuritycenterV1ExposedResource": { - "description": "A resource that is exposed as a result of a finding.", - "id": "GoogleCloudSecuritycenterV1ExposedResource", + "GoogleCloudSecuritycenterV1CustomConfig": { + "description": "Defines the properties in a custom module configuration for Security Health Analytics. Use the custom module configuration to create custom detectors that generate custom findings for resources that you specify.", + "id": "GoogleCloudSecuritycenterV1CustomConfig", "properties": { - "displayName": { - "description": "Human readable name of the resource that is exposed.", + "customOutput": { + "$ref": "GoogleCloudSecuritycenterV1CustomOutputSpec", + "description": "Custom output properties." + }, + "description": { + "description": "Text that describes the vulnerability or misconfiguration that the custom module detects. This explanation is returned with each finding instance to help investigators understand the detected issue. The text must be enclosed in quotation marks.", "type": "string" }, - "methods": { - "description": "The ways in which this resource is exposed. Examples: Read, Write", - "items": { - "type": "string" - }, - "type": "array" + "predicate": { + "$ref": "Expr", + "description": "The CEL expression to evaluate to produce findings. When the expression evaluates to true against a resource, a finding is generated." }, - "name": { - "description": "Exposed Resource Name e.g.: `organizations/123/attackExposureResults/456/exposedResources/789`", + "recommendation": { + "description": "An explanation of the recommended steps that security teams can take to resolve the detected issue. This explanation is returned with each finding generated by this module in the `nextSteps` property of the finding JSON.", "type": "string" }, - "resource": { - "description": "The name of the resource that is exposed. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", - "type": "string" + "resourceSelector": { + "$ref": "GoogleCloudSecuritycenterV1ResourceSelector", + "description": "The resource types that the custom module operates on. Each custom module can specify up to 5 resource types." }, - "resourceType": { - "description": "The resource type of the exposed resource. See: https://cloud.google.com/asset-inventory/docs/supported-asset-types", - "type": "string" - }, - "resourceValue": { - "description": "How valuable this resource is.", + "severity": { + "description": "The severity to assign to findings generated by the module.", "enum": [ - "RESOURCE_VALUE_UNSPECIFIED", - "RESOURCE_VALUE_LOW", - "RESOURCE_VALUE_MEDIUM", - "RESOURCE_VALUE_HIGH" + "SEVERITY_UNSPECIFIED", + "CRITICAL", + "HIGH", + "MEDIUM", + "LOW" ], "enumDescriptions": [ - "The resource value isn't specified.", - "This is a low value resource.", - "This is a medium value resource.", - "This is a high value resource." + "Unspecified severity.", + "Critical severity.", + "High severity.", + "Medium severity.", + "Low severity." ], "type": "string" } }, "type": "object" }, - "GoogleCloudSecuritycenterV1ExposurePath": { - "description": "A path that an attacker could take to reach an exposed resource.", - "id": "GoogleCloudSecuritycenterV1ExposurePath", + "GoogleCloudSecuritycenterV1CustomOutputSpec": { + "description": "A set of optional name-value pairs that define custom source properties to return with each finding that is generated by the custom module. The custom source properties that are defined here are included in the finding JSON under `sourceProperties`.", + "id": "GoogleCloudSecuritycenterV1CustomOutputSpec", "properties": { - "edges": { - "description": "A list of the edges between nodes in this exposure path.", + "properties": { + "description": "A list of custom output properties to add to the finding.", "items": { - "$ref": "Edge" + "$ref": "GoogleCloudSecuritycenterV1Property" }, "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule": { + "description": "An EffectiveSecurityHealthAnalyticsCustomModule is the representation of a Security Health Analytics 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 `enablementState` property in EffectiveSecurityHealthAnalyticsCustomModule 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`. EffectiveSecurityHealthAnalyticsCustomModule is read-only.", + "id": "GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule", + "properties": { + "customConfig": { + "$ref": "GoogleCloudSecuritycenterV1CustomConfig", + "description": "Output only. The user-specified configuration for the module.", + "readOnly": true }, - "exposedResource": { - "$ref": "GoogleCloudSecuritycenterV1ExposedResource", - "description": "The leaf node of this exposure path." - }, - "name": { - "description": "Exposure Path Name e.g.: `organizations/123/attackExposureResults/456/exposurePaths/789`", + "displayName": { + "description": "Output only. The display name for the custom module. The name must be between 1 and 128 characters, start with a lowercase letter, and contain alphanumeric characters or underscores only.", + "readOnly": true, "type": "string" }, - "pathNodes": { - "description": "A list of nodes that exist in this exposure path.", - "items": { - "$ref": "PathNode" - }, - "type": "array" + "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 custom module. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\", or \"folders/{folder}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\"", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -3090,13 +3397,36 @@ }, "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 most recent time when the corresponding finding's ticket/tracker was updated in the external system.", + "description": "The time when the case was last updated, as reported by the external system.", "format": "google-datetime", "type": "string" }, "externalUid": { - "description": "Identifier that's used to track the given finding in the external system.", + "description": "The identifier that's used to track the finding's corresponding case in the external system.", "type": "string" }, "name": { @@ -3104,8 +3434,12 @@ "type": "string" }, "status": { - "description": "Most recent status of the corresponding finding's ticket/tracker in the external system.", + "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" @@ -3125,6 +3459,7 @@ "type": "string" }, "displayName": { + "deprecated": true, "description": "The human readable name to be displayed for the mute config.", "type": "string" }, @@ -3138,7 +3473,7 @@ "type": "string" }, "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}\"", + "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}\"", "type": "string" }, "updateTime": { @@ -3169,6 +3504,21 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV1Property": { + "description": "An individual name-value pair that defines a custom source property.", + "id": "GoogleCloudSecuritycenterV1Property", + "properties": { + "name": { + "description": "Name of the property for the custom output.", + "type": "string" + }, + "valueExpression": { + "$ref": "Expr", + "description": "The CEL expression for the custom output. A resource property can be specified to return the value of the property or a text string enclosed in quotation marks." + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV1Resource": { "description": "Information related to the Google Cloud resource.", "id": "GoogleCloudSecuritycenterV1Resource", @@ -3212,14 +3562,45 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV1ResourceSelector": { + "description": "Resource for selecting resource type.", + "id": "GoogleCloudSecuritycenterV1ResourceSelector", + "properties": { + "resourceTypes": { + "description": "The resource types to run the detector on.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV1ResourceValueConfig": { - "description": "A resource value config is a mapping configuration of user's tag values to resource values. Used by the attack path simulation.", + "description": "A resource value config (RVC) is a mapping configuration of user's resources to resource values. Used in Attack path simulations.", "id": "GoogleCloudSecuritycenterV1ResourceValueConfig", "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" @@ -3246,12 +3627,22 @@ "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": { "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" @@ -3284,6 +3675,100 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule": { + "description": "Represents an instance of a Security Health Analytics 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 the child folders and projects.", + "id": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule", + "properties": { + "ancestorModule": { + "description": "Output only. If empty, indicates that the custom module was created in the organization, folder, or project in which you are viewing the custom module. Otherwise, `ancestor_module` specifies the organization or folder from which the custom module is inherited.", + "readOnly": true, + "type": "string" + }, + "customConfig": { + "$ref": "GoogleCloudSecuritycenterV1CustomConfig", + "description": "The user specified custom configuration for the module." + }, + "displayName": { + "description": "The display name of the Security Health Analytics custom module. This display name becomes the finding category for all findings that are returned by this custom module. The display name must be between 1 and 128 characters, start with a lowercase letter, and contain alphanumeric characters or underscores only.", + "type": "string" + }, + "enablementState": { + "description": "The enablement state of the custom module.", + "enum": [ + "ENABLEMENT_STATE_UNSPECIFIED", + "ENABLED", + "DISABLED", + "INHERITED" + ], + "enumDescriptions": [ + "Unspecified enablement state.", + "The module is enabled at the given CRM resource.", + "The module is disabled at the given CRM resource.", + "State is inherited from an ancestor module. The module will either be effectively ENABLED or DISABLED based on its closest non-inherited ancestor module in the CRM hierarchy." + ], + "type": "string" + }, + "lastEditor": { + "description": "Output only. The editor that last updated the custom module.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Immutable. The resource name of the custom module. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}\" The id {customModule} is server-generated and is not user settable. It will be a numeric id containing 1-20 digits.", + "type": "string" + }, + "updateTime": { + "description": "Output only. The time at which the custom module was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "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", @@ -3516,6 +4001,2451 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2Access": { + "description": "Represents an access event.", + "id": "GoogleCloudSecuritycenterV2Access", + "properties": { + "callerIp": { + "description": "Caller's IP address, such as \"1.1.1.1\".", + "type": "string" + }, + "callerIpGeo": { + "$ref": "GoogleCloudSecuritycenterV2Geolocation", + "description": "The caller IP's geolocation, which identifies where the call came from." + }, + "methodName": { + "description": "The method that the service account called, e.g. \"SetIamPolicy\".", + "type": "string" + }, + "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" + }, + "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" + }, + "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": "GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo" + }, + "type": "array" + }, + "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" + }, + "serviceName": { + "description": "This is the API service that the service account made a call to, e.g. \"iam.googleapis.com\"", + "type": "string" + }, + "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" + }, + "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": { + "group": { + "description": "The API group of the resource. \"*\" means all.", + "type": "string" + }, + "name": { + "description": "The name of the resource being requested. Empty means all.", + "type": "string" + }, + "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" + }, + "resource": { + "description": "The optional resource type requested. \"*\" means all.", + "type": "string" + }, + "subresource": { + "description": "The optional subresource type.", + "type": "string" + }, + "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" + }, + "GoogleCloudSecuritycenterV2Application": { + "description": "Represents an application associated with a finding.", + "id": "GoogleCloudSecuritycenterV2Application", + "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 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" + }, "IamBinding": { "description": "Represents a particular IAM binding, which captures a member's role addition, removal, or state.", "id": "IamBinding", @@ -3535,7 +6465,7 @@ "type": "string" }, "member": { - "description": "A single identity requesting access for a Cloud Platform resource, e.g. \"foo@google.com\".", + "description": "A single identity requesting access for a Cloud Platform resource, for example, \"foo@google.com\".", "type": "string" }, "role": { @@ -3585,39 +6515,39 @@ "id": "KernelRootkit", "properties": { "name": { - "description": "Rootkit name when available.", + "description": "Rootkit name, when available.", "type": "string" }, "unexpectedCodeModification": { - "description": "True when unexpected modifications of kernel code memory are present.", + "description": "True if unexpected modifications of kernel code memory are present.", "type": "boolean" }, "unexpectedFtraceHandler": { - "description": "True when `ftrace` points are present with callbacks pointing to regions that are not in the expected kernel or module code range.", + "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 when interrupt handlers that are are not in the expected kernel or module code regions are present.", + "description": "True if interrupt handlers that are are not in the expected kernel or module code regions are present.", "type": "boolean" }, "unexpectedKernelCodePages": { - "description": "True when kernel code pages that are not in the expected kernel or module code regions are present.", + "description": "True if kernel code pages that are not in the expected kernel or module code regions are present.", "type": "boolean" }, "unexpectedKprobeHandler": { - "description": "True when `kprobe` points are present with callbacks pointing to regions that are not in the expected kernel or module code range.", + "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 when unexpected processes in the scheduler run queue are present. Such processes are in the run queue, but not in the process task list.", + "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 when unexpected modifications of kernel read-only data memory are present.", + "description": "True if unexpected modifications of kernel read-only data memory are present.", "type": "boolean" }, "unexpectedSystemCallHandler": { - "description": "True when system call handlers that are are not in the expected kernel or module code regions are present.", + "description": "True if system call handlers that are are not in the expected kernel or module code regions are present.", "type": "boolean" } }, @@ -3628,42 +6558,49 @@ "id": "Kubernetes", "properties": { "accessReviews": { - "description": "Provides information on any Kubernetes access reviews (i.e. privilege checks) relevant to the finding.", + "description": "Provides information on any Kubernetes access reviews (privilege checks) relevant to the finding.", "items": { "$ref": "AccessReview" }, "type": "array" }, "bindings": { - "description": "Provides Kubernetes role binding information for findings that involve RoleBindings or ClusterRoleBindings.", + "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": "GoogleCloudSecuritycenterV1Binding" }, "type": "array" }, "nodePools": { - "description": "GKE Node Pools associated with the finding. This field will contain NodePool information for each Node, when it is available.", + "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": "NodePool" }, "type": "array" }, "nodes": { - "description": "Provides Kubernetes Node information.", + "description": "Provides Kubernetes [node](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-architecture#nodes) information.", "items": { "$ref": "Node" }, "type": "array" }, + "objects": { + "description": "Kubernetes objects related to the finding.", + "items": { + "$ref": "Object" + }, + "type": "array" + }, "pods": { - "description": "Kubernetes Pods associated with the finding. This field will contain Pod records for each container that is owned by a Pod.", + "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": "Pod" }, "type": "array" }, "roles": { - "description": "Provides Kubernetes role information for findings that involve Roles or ClusterRoles.", + "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": "Role" }, @@ -3673,20 +6610,42 @@ "type": "object" }, "Label": { - "description": "Label represents a generic name=value label. Label has separate name and value fields to support filtering with contains().", + "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": "Label", "properties": { "name": { - "description": "Label name.", + "description": "Name of the label.", "type": "string" }, "value": { - "description": "Label value.", + "description": "Value that corresponds to the label's name.", "type": "string" } }, "type": "object" }, + "LoadBalancer": { + "description": "Contains information related to the load balancer associated with the finding.", + "id": "LoadBalancer", + "properties": { + "name": { + "description": "The name of the load balancer associated with the finding.", + "type": "string" + } + }, + "type": "object" + }, + "LogEntry": { + "description": "An individual entry in a log.", + "id": "LogEntry", + "properties": { + "cloudLoggingEntry": { + "$ref": "CloudLoggingEntry", + "description": "An individual entry in a log stored in Cloud Logging." + } + }, + "type": "object" + }, "MemoryHashSignature": { "description": "A signature corresponding to memory page hashes.", "id": "MemoryHashSignature", @@ -3755,79 +6714,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", + "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", - "DYNAMIC_RESOLUTION", - "UNSECURED_CREDENTIALS", - "VALID_ACCOUNTS", - "LOCAL_ACCOUNTS", - "CLOUD_ACCOUNTS", + "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", - "PERMISSION_GROUPS_DISCOVERY", - "CLOUD_GROUPS", + "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", - "ACCOUNT_MANIPULATION", - "SSH_AUTHORIZED_KEYS", - "CREATE_OR_MODIFY_SYSTEM_PROCESS", - "STEAL_WEB_SESSION_COOKIE", + "DYNAMIC_RESOLUTION", + "LATERAL_TOOL_TRANSFER", "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", - "EXPLOIT_PUBLIC_FACING_APPLICATION", - "MODIFY_AUTHENTICATION_PROCESS", - "DATA_DESTRUCTION", - "DOMAIN_POLICY_MODIFICATION", - "IMPAIR_DEFENSES", - "NETWORK_SERVICE_DISCOVERY", - "ACCESS_TOKEN_MANIPULATION", - "ABUSE_ELEVATION_CONTROL_MECHANISM", - "DEFAULT_ACCOUNTS" + "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", + "T1069", + "T1069.003", + "T1071", + "T1071.004", + "T1072", + "T1078", + "T1078.001", + "T1078.003", + "T1078.004", "T1090", "T1090.002", "T1090.003", - "T1568", - "T1552", - "T1078", - "T1078.003", - "T1078.004", + "T1098", + "T1098.001", + "T1098.004", + "T1098.006", + "T1105", + "T1106", + "T1110", + "T1129", + "T1134", + "T1134.001", + "T1190", + "T1484", + "T1485", + "T1489", + "T1490", + "T1496", "T1498", - "T1069", - "T1069.003", + "T1526", + "T1528", + "T1531", + "T1539", + "T1543", + "T1548", + "T1552", + "T1556", + "T1562", + "T1562.001", "T1567", "T1567.002", - "T1098", - "T1098.004", - "T1543", - "T1539", + "T1568", + "T1570", "T1578", - "T1190", - "T1556", - "T1485", - "T1484", - "T1562", - "T1046", - "T1134", - "T1548", - "T1078.001" + "T1578.001", + "T1580", + "T1588", + "T1595", + "T1595.001", + "T1613" ], "type": "string" }, @@ -3876,79 +6881,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", + "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", - "DYNAMIC_RESOLUTION", - "UNSECURED_CREDENTIALS", - "VALID_ACCOUNTS", - "LOCAL_ACCOUNTS", - "CLOUD_ACCOUNTS", + "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", - "PERMISSION_GROUPS_DISCOVERY", - "CLOUD_GROUPS", + "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", - "ACCOUNT_MANIPULATION", - "SSH_AUTHORIZED_KEYS", - "CREATE_OR_MODIFY_SYSTEM_PROCESS", - "STEAL_WEB_SESSION_COOKIE", + "DYNAMIC_RESOLUTION", + "LATERAL_TOOL_TRANSFER", "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", - "EXPLOIT_PUBLIC_FACING_APPLICATION", - "MODIFY_AUTHENTICATION_PROCESS", - "DATA_DESTRUCTION", - "DOMAIN_POLICY_MODIFICATION", - "IMPAIR_DEFENSES", - "NETWORK_SERVICE_DISCOVERY", - "ACCESS_TOKEN_MANIPULATION", - "ABUSE_ELEVATION_CONTROL_MECHANISM", - "DEFAULT_ACCOUNTS" + "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", + "T1069", + "T1069.003", + "T1071", + "T1071.004", + "T1072", + "T1078", + "T1078.001", + "T1078.003", + "T1078.004", "T1090", "T1090.002", "T1090.003", - "T1568", - "T1552", - "T1078", - "T1078.003", - "T1078.004", + "T1098", + "T1098.001", + "T1098.004", + "T1098.006", + "T1105", + "T1106", + "T1110", + "T1129", + "T1134", + "T1134.001", + "T1190", + "T1484", + "T1485", + "T1489", + "T1490", + "T1496", "T1498", - "T1069", - "T1069.003", + "T1526", + "T1528", + "T1531", + "T1539", + "T1543", + "T1548", + "T1552", + "T1556", + "T1562", + "T1562.001", "T1567", "T1567.002", - "T1098", - "T1098.004", - "T1543", - "T1539", + "T1568", + "T1570", "T1578", - "T1190", - "T1556", - "T1485", - "T1484", - "T1562", - "T1046", - "T1134", - "T1548", - "T1078.001" + "T1578.001", + "T1580", + "T1588", + "T1595", + "T1595.001", + "T1613" ], "type": "string" }, @@ -3962,22 +7013,22 @@ "type": "object" }, "Node": { - "description": "Kubernetes Nodes associated with the finding.", + "description": "Kubernetes nodes associated with the finding.", "id": "Node", "properties": { "name": { - "description": "Full Resource name of the Compute Engine VM running the cluster node.", + "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" }, "NodePool": { - "description": "Provides GKE Node Pool information.", + "description": "Provides GKE node pool information.", "id": "NodePool", "properties": { "name": { - "description": "Kubernetes Node pool name.", + "description": "Kubernetes node pool name.", "type": "string" }, "nodes": { @@ -3990,59 +7041,72 @@ }, "type": "object" }, - "OnboardingState": { - "description": "Resource capturing onboarding information for a given CRM resource.", - "id": "OnboardingState", + "Object": { + "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": "Object", "properties": { - "name": { - "description": "The resource name of the OnboardingState. Format: organizations/{organization}/onboardingState Format: folders/{folder}/onboardingState Format: projects/{project}/onboardingState", + "containers": { + "description": "Pod containers associated with this finding, if any.", + "items": { + "$ref": "Container" + }, + "type": "array" + }, + "group": { + "description": "Kubernetes object group, such as \"policy.k8s.io/v1\".", "type": "string" }, - "onboardingLevel": { - "description": "Describes the level a given organization, folder, or project is onboarded with SCC. If the resource wasn't onboarded, NOT_FOUND would have been thrown.", - "enum": [ - "ONBOARDING_LEVEL_UNSPECIFIED", - "ONBOARDING_LEVEL_PROJECT", - "ONBOARDING_LEVEL_ORGANIZATION" - ], - "enumDescriptions": [ - "Unused.", - "This resource is onboarded at the project level. Only possible for projects.", - "This resource is onboarded at the organization level. Possible for organizations, folders, and projects." - ], + "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" }, - "PathNode": { - "description": "Represents one point that an attacker passes through in this exposure path.", - "id": "PathNode", + "OrgPolicy": { + "description": "Contains information about the org policies associated with the finding.", + "id": "OrgPolicy", "properties": { - "associatedFindings": { - "description": "The findings associated with this node in the exposure path.", - "items": { - "$ref": "AssociatedFinding" - }, - "type": "array" - }, - "displayName": { - "description": "Human readable name of this resource.", + "name": { + "description": "The resource name of the org policy. Example: \"organizations/{organization_id}/policies/{constraint_name}\"", + "type": "string" + } + }, + "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" }, - "resource": { - "description": "The name of the resource at this point in the exposure path. The format of the name is: https://cloud.google.com/apis/design/resource_names#full_resource_name", + "packageName": { + "description": "The name of the package where the vulnerability was detected.", "type": "string" }, - "resourceType": { - "description": "The resource type of this resource. See: https://cloud.google.com/asset-inventory/docs/supported-asset-types", + "packageType": { + "description": "Type of package, for example, os, maven, or go.", + "type": "string" + }, + "packageVersion": { + "description": "The version of the package.", "type": "string" } }, "type": "object" }, "Pod": { - "description": "Kubernetes Pod.", + "description": "A Kubernetes Pod.", "id": "Pod", "properties": { "containers": { @@ -4070,6 +7134,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" + }, "Process": { "description": "Represents an operating system process.", "id": "Process", @@ -4108,22 +7191,22 @@ "type": "array" }, "name": { - "description": "The process name visible in utilities like `top` and `ps`; it can be accessed via `/proc/[pid]/comm` and changed with `prctl(PR_SET_NAME)`.", + "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.", + "description": "The parent process ID.", "format": "int64", "type": "string" }, "pid": { - "description": "The process id.", + "description": "The process ID.", "format": "int64", "type": "string" }, "script": { "$ref": "File", - "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." + "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" @@ -4136,6 +7219,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." @@ -4227,8 +7324,28 @@ }, "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" + }, "SecurityCenterSettings": { - "description": "Resource capturing the settings for Security Center.", + "description": "Resource capturing the settings for Security Center. Next ID: 12", "id": "SecurityCenterSettings", "properties": { "logSinkProject": { @@ -4320,6 +7437,48 @@ }, "type": "object" }, + "SecurityPosture": { + "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": "SecurityPosture", + "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": "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, `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" + }, "ServiceAccountDelegationInfo": { "description": "Identity delegation history of an authenticated service account.", "id": "ServiceAccountDelegationInfo", @@ -4336,11 +7495,11 @@ "type": "object" }, "Subject": { - "description": "Represents a Kubernetes Subject.", + "description": "Represents a Kubernetes subject.", "id": "Subject", "properties": { "kind": { - "description": "Authentication type for subject.", + "description": "Authentication type for the subject.", "enum": [ "AUTH_TYPE_UNSPECIFIED", "USER", @@ -4350,17 +7509,17 @@ "enumDescriptions": [ "Authentication is not specified.", "User with valid certificate.", - "Users managed by Kubernetes API with credentials stored as Secrets.", + "Users managed by Kubernetes API with credentials stored as secrets.", "Collection of users." ], "type": "string" }, "name": { - "description": "Name for subject.", + "description": "Name for the subject.", "type": "string" }, "ns": { - "description": "Namespace for subject.", + "description": "Namespace for the subject.", "type": "string" } }, @@ -4383,18 +7542,54 @@ "enum": [ "TIER_UNSPECIFIED", "STANDARD", - "PREMIUM" + "PREMIUM", + "ENTERPRISE", + "ENTERPRISE_MC" ], "enumDescriptions": [ "Default value. This value is unused.", "The standard tier.", - "The premium tier." + "The premium tier.", + "The enterprise tier.", + "The enterprise MC tier." ], "type": "string" } }, "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" + }, "VirtualMachineThreatDetectionSettings": { "description": "Resource capturing the settings for the Virtual Machine Threat Detection service.", "id": "VirtualMachineThreatDetectionSettings", @@ -4447,6 +7642,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/etc/api/serviceconsumermanagement/v1/serviceconsumermanagement-api.json b/etc/api/serviceconsumermanagement/v1/serviceconsumermanagement-api.json index f2a09f8399..5e09855a7a 100644 --- a/etc/api/serviceconsumermanagement/v1/serviceconsumermanagement-api.json +++ b/etc/api/serviceconsumermanagement/v1/serviceconsumermanagement-api.json @@ -186,7 +186,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/operations", "httpMethod": "GET", "id": "serviceconsumermanagement.operations.list", @@ -542,7 +542,7 @@ } } }, - "revision": "20230118", + "revision": "20240303", "rootUrl": "https://serviceconsumermanagement.googleapis.com/", "schemas": { "AddTenantProjectRequest": { @@ -597,11 +597,13 @@ "description": "The source syntax of the service.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" }, @@ -778,6 +780,7 @@ "type": "string" }, "minDeadline": { + "deprecated": true, "description": "Deprecated, do not use.", "format": "double", "type": "number" @@ -787,6 +790,13 @@ "format": "double", "type": "number" }, + "overridesByRequestProtocol": { + "additionalProperties": { + "$ref": "BackendRule" + }, + "description": "The map between request protocol and the backend address.", + "type": "object" + }, "pathTranslation": { "enum": [ "PATH_TRANSLATION_UNSPECIFIED", @@ -925,7 +935,7 @@ "description": "Settings for Ruby client libraries." }, "version": { - "description": "Version of the API to apply these settings to.", + "description": "Version of the API to apply these settings to. This is the full protobuf package for the API, ending in the version element. Examples: \"google.cloud.speech.v1\" and \"google.spanner.admin.database.v1\".", "type": "string" } }, @@ -953,6 +963,7 @@ "type": "array" }, "referenceDocsUri": { + "deprecated": true, "description": "Link to automatically generated reference documentation. Example: https://cloud.google.com/nodejs/docs/reference/asset/latest", "type": "string" } @@ -1019,6 +1030,13 @@ "environment": { "description": "The service controller environment to use. If empty, no control plane feature (like quota and billing) will be enabled. The recommended value for most services is servicecontrol.googleapis.com", "type": "string" + }, + "methodPolicies": { + "description": "Defines policies applying to the API methods of the service.", + "items": { + "$ref": "MethodPolicy" + }, + "type": "array" } }, "type": "object" @@ -1108,7 +1126,7 @@ "type": "object" }, "Documentation": { - "description": "`Documentation` provides the information for describing a service. Example: documentation: summary: > The Google Calendar API gives access to most calendar features. pages: - name: Overview content: (== include google/foo/overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==) subpages; - name: Java content: (== include google/foo/tutorial_java.md ==) rules: - selector: google.calendar.Calendar.Get description: > ... - selector: google.calendar.Calendar.Put description: > ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation.", + "description": "`Documentation` provides the information for describing a service. Example: documentation: summary: > The Google Calendar API gives access to most calendar features. pages: - name: Overview content: (== include google/foo/overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==) subpages: - name: Java content: (== include google/foo/tutorial_java.md ==) rules: - selector: google.calendar.Calendar.Get description: > ... - selector: google.calendar.Calendar.Put description: > ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation.", "id": "Documentation", "properties": { "documentationRootUrl": { @@ -1133,6 +1151,13 @@ }, "type": "array" }, + "sectionOverrides": { + "description": "Specifies section and content to override boilerplate content provided by go/api-docgen. Currently overrides following sections: 1. rest.service.client_libraries", + "items": { + "$ref": "Page" + }, + "type": "array" + }, "serviceRootUrl": { "description": "Specifies the service root url if the default one (the service name from the yaml file) is not suitable. This can be seen in any fully specified service urls as well as sections that show a base that other urls are relative to.", "type": "string" @@ -1156,6 +1181,10 @@ "description": "Description of the selected proto element (e.g. a message, a method, a 'service' definition, or a field). Defaults to leading & trailing comments taken from the proto source definition of the proto element.", "type": "string" }, + "disableReplacementWords": { + "description": "String of comma or space separated case-sensitive words for which method/field name replacement will be disabled by go/api-docgen.", + "type": "string" + }, "selector": { "description": "The selector is a comma-separated list of patterns for any element such as a method, a field, an enum value. Each pattern is a qualified name of the element which may end in \"*\", indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. \"foo.*\" is ok, but not \"foo.b*\" or \"foo.*.bar\". A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern \"*\" is used.", "type": "string" @@ -1170,6 +1199,41 @@ "common": { "$ref": "CommonLanguageSettings", "description": "Some settings." + }, + "forcedNamespaceAliases": { + "description": "Namespaces which must be aliased in snippets due to a known (but non-generator-predictable) naming collision", + "items": { + "type": "string" + }, + "type": "array" + }, + "handwrittenSignatures": { + "description": "Method signatures (in the form \"service.method(signature)\") which are provided separately, so shouldn't be generated. Snippets *calling* these methods are still generated, however.", + "items": { + "type": "string" + }, + "type": "array" + }, + "ignoredResources": { + "description": "List of full resource types to ignore during generation. This is typically used for API-specific Location resources, which should be handled by the generator as if they were actually the common Location resources. Example entry: \"documentai.googleapis.com/Location\"", + "items": { + "type": "string" + }, + "type": "array" + }, + "renamedResources": { + "additionalProperties": { + "type": "string" + }, + "description": "Map from full resource types to the effective short name for the resource. This is used when otherwise resource named from different services would cause naming collisions. Example entry: \"datalabeling.googleapis.com/Dataset\": \"DataLabelingDataset\"", + "type": "object" + }, + "renamedServices": { + "additionalProperties": { + "type": "string" + }, + "description": "Map from original service names to renamed versions. This is used when the default generated types would cause a naming conflict. (Neither name is fully-qualified.) Example: Subscriber to SubscriberServiceApi.", + "type": "object" } }, "type": "object" @@ -1185,6 +1249,7 @@ "id": "Endpoint", "properties": { "aliases": { + "deprecated": true, "description": "Unimplemented. Dot not use. DEPRECATED: This field is no longer supported. Instead of using aliases, please specify multiple google.api.Endpoint for each of the intended aliases. Additional names that this endpoint will be hosted on.", "items": { "type": "string" @@ -1210,6 +1275,10 @@ "description": "Enum type definition.", "id": "Enum", "properties": { + "edition": { + "description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", + "type": "string" + }, "enumvalue": { "description": "Enum value definitions.", "items": { @@ -1236,11 +1305,13 @@ "description": "The source syntax.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } @@ -1376,6 +1447,25 @@ }, "type": "object" }, + "FieldPolicy": { + "description": "Google API Policy Annotation This message defines a simple API policy annotation that can be used to annotate API request and response message fields with applicable policies. One field may have multiple applicable policies that must all be satisfied before a request can be processed. This policy annotation is used to generate the overall policy that will be used for automatic runtime policy enforcement and documentation generation.", + "id": "FieldPolicy", + "properties": { + "resourcePermission": { + "description": "Specifies the required permission(s) for the resource referred to by the field. It requires the field contains a valid resource reference, and the request must pass the permission checks to proceed. For example, \"resourcemanager.projects.get\".", + "type": "string" + }, + "resourceType": { + "description": "Specifies the resource type for the resource referred to by the field.", + "type": "string" + }, + "selector": { + "description": "Selects one or more request or response message fields to apply this `FieldPolicy`. When a `FieldPolicy` is used in proto annotation, the selector must be left as empty. The service config generator will automatically fill the correct value. When a `FieldPolicy` is used in service config, the selector must be a comma-separated string with valid request or response field paths, such as \"foo.bar\" or \"foo.bar,foo.baz\".", + "type": "string" + } + }, + "type": "object" + }, "GoSettings": { "description": "Settings for Go client libraries.", "id": "GoSettings", @@ -1692,24 +1782,51 @@ "description": "The source syntax of this method.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } }, "type": "object" }, + "MethodPolicy": { + "description": "Defines policies applying to an RPC method.", + "id": "MethodPolicy", + "properties": { + "requestPolicies": { + "description": "Policies that are applicable to the request message.", + "items": { + "$ref": "FieldPolicy" + }, + "type": "array" + }, + "selector": { + "description": "Selects a method to which these policies should be enforced, for example, \"google.pubsub.v1.Subscriber.CreateSubscription\". Refer to selector for syntax details. NOTE: This field must not be set in the proto annotation. It will be automatically filled by the service config compiler .", + "type": "string" + } + }, + "type": "object" + }, "MethodSettings": { "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_behavior: - selector: CreateAdDomain 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" + "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" }, "selector": { "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options.", @@ -1835,6 +1952,7 @@ "type": "string" }, "launchStage": { + "deprecated": true, "description": "Deprecated. Must use the MetricDescriptor.launch_stage instead.", "enum": [ "LAUNCH_STAGE_UNSPECIFIED", @@ -1886,7 +2004,7 @@ "type": "object" }, "Mixin": { - "description": "Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows: - If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method. - Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited. - If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the root path if specified. Example of a simple mixin: package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v1/{resource=**}:getAcl\"; } } package google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = \"/v2/{resource=**}\"; } } Example of a mixin configuration: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inheriting documentation and annotations as follows: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/{resource=**}:getAcl\"; } ... } Note how the version in the path pattern changed from `v1` to `v2`. If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl root: acls This implies the following inherited HTTP annotation: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\"; } ... }", + "description": "Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows: - If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method. - Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited. - If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the root path if specified. Example of a simple mixin: package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v1/{resource=**}:getAcl\"; } } package google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = \"/v2/{resource=**}\"; } } Example of a mixin configuration: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inherting documentation and annotations as follows: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/{resource=**}:getAcl\"; } ... } Note how the version in the path pattern changed from `v1` to `v2`. If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl root: acls This implies the following inherited HTTP annotation: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\"; } ... }", "id": "Mixin", "properties": { "name": { @@ -1948,7 +2066,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" } }, @@ -2044,7 +2162,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" } }, @@ -2162,7 +2280,7 @@ "type": "array" }, "newIssueUri": { - "description": "Link to a place that API users can report issues. Example: https://issuetracker.google.com/issues/new?component=190865&template=1161103", + "description": "Link to a *public* URI where users can report issues. Example: https://issuetracker.google.com/issues/new?component=190865&template=1161103", "type": "string" }, "organization": { @@ -2172,16 +2290,30 @@ "CLOUD", "ADS", "PHOTOS", - "STREET_VIEW" + "STREET_VIEW", + "SHOPPING", + "GEO", + "GENERATIVE_AI" ], "enumDescriptions": [ "Not useful.", "Google Cloud Platform Org.", "Ads (Advertising) Org.", "Photos Org.", - "Street View Org." + "Street View Org.", + "Shopping Org.", + "Geo Org.", + "Generative AI - https://developers.generativeai.google" ], "type": "string" + }, + "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" @@ -2706,6 +2838,10 @@ "description": "A protocol buffer message type.", "id": "Type", "properties": { + "edition": { + "description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", + "type": "string" + }, "fields": { "description": "The list of fields.", "items": { @@ -2739,11 +2875,13 @@ "description": "The source syntax.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } @@ -2896,7 +3034,7 @@ "additionalProperties": { "type": "string" }, - "description": " If this map is nonempty, then this policy applies only to specific values for dimensions defined in the limit unit. For example, an policy on a limit with the unit 1/{project}/{region} could contain an entry with the key \"region\" and the value \"us-east-1\"; the policy is only applied to quota consumed in that region. This map has the following restrictions: * Keys that are not defined in the limit's unit are not valid keys. Any string appearing in {brackets} in the unit (besides {project} or {user}) is a defined key. * \"project\" is not a valid key; the project is already specified in the parent resource name. * \"user\" is not a valid key; the API does not support quota polcies that apply only to a specific user. * If \"region\" appears as a key, its value must be a valid Cloud region. * If \"zone\" appears as a key, its value must be a valid Cloud zone. * If any valid key other than \"region\" or \"zone\" appears in the map, then all valid keys other than \"region\" or \"zone\" must also appear in the map.", + "description": " If this map is nonempty, then this policy applies only to specific values for dimensions defined in the limit unit. For example, a policy on a limit with the unit 1/{project}/{region} could contain an entry with the key \"region\" and the value \"us-east-1\"; the policy is only applied to quota consumed in that region. This map has the following restrictions: * Keys that are not defined in the limit's unit are not valid keys. Any string appearing in {brackets} in the unit (besides {project} or {user}) is a defined key. * \"project\" is not a valid key; the project is already specified in the parent resource name. * \"user\" is not a valid key; the API does not support quota polcies that apply only to a specific user. * If \"region\" appears as a key, its value must be a valid Cloud region. * If \"zone\" appears as a key, its value must be a valid Cloud zone. * If any valid key other than \"region\" or \"zone\" appears in the map, then all valid keys other than \"region\" or \"zone\" must also appear in the map.", "type": "object" }, "metric": { @@ -3091,6 +3229,7 @@ "type": "string" }, "iamAccountName": { + "deprecated": true, "description": "Deprecated. See b/136209818.", "type": "string" }, diff --git a/etc/api/serviceconsumermanagement/v1beta1/serviceconsumermanagement-api.json b/etc/api/serviceconsumermanagement/v1beta1/serviceconsumermanagement-api.json index ea4015ba0c..8fc256f3fc 100644 --- a/etc/api/serviceconsumermanagement/v1beta1/serviceconsumermanagement-api.json +++ b/etc/api/serviceconsumermanagement/v1beta1/serviceconsumermanagement-api.json @@ -500,7 +500,7 @@ } } }, - "revision": "20230118", + "revision": "20240303", "rootUrl": "https://serviceconsumermanagement.googleapis.com/", "schemas": { "Api": { @@ -540,11 +540,13 @@ "description": "The source syntax of the service.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" }, @@ -687,6 +689,7 @@ "type": "string" }, "minDeadline": { + "deprecated": true, "description": "Deprecated, do not use.", "format": "double", "type": "number" @@ -696,6 +699,13 @@ "format": "double", "type": "number" }, + "overridesByRequestProtocol": { + "additionalProperties": { + "$ref": "BackendRule" + }, + "description": "The map between request protocol and the backend address.", + "type": "object" + }, "pathTranslation": { "enum": [ "PATH_TRANSLATION_UNSPECIFIED", @@ -817,7 +827,7 @@ "description": "Settings for Ruby client libraries." }, "version": { - "description": "Version of the API to apply these settings to.", + "description": "Version of the API to apply these settings to. This is the full protobuf package for the API, ending in the version element. Examples: \"google.cloud.speech.v1\" and \"google.spanner.admin.database.v1\".", "type": "string" } }, @@ -845,6 +855,7 @@ "type": "array" }, "referenceDocsUri": { + "deprecated": true, "description": "Link to automatically generated reference documentation. Example: https://cloud.google.com/nodejs/docs/reference/asset/latest", "type": "string" } @@ -911,6 +922,13 @@ "environment": { "description": "The service controller environment to use. If empty, no control plane feature (like quota and billing) will be enabled. The recommended value for most services is servicecontrol.googleapis.com", "type": "string" + }, + "methodPolicies": { + "description": "Defines policies applying to the API methods of the service.", + "items": { + "$ref": "MethodPolicy" + }, + "type": "array" } }, "type": "object" @@ -978,7 +996,7 @@ "type": "object" }, "Documentation": { - "description": "`Documentation` provides the information for describing a service. Example: documentation: summary: > The Google Calendar API gives access to most calendar features. pages: - name: Overview content: (== include google/foo/overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==) subpages; - name: Java content: (== include google/foo/tutorial_java.md ==) rules: - selector: google.calendar.Calendar.Get description: > ... - selector: google.calendar.Calendar.Put description: > ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation.", + "description": "`Documentation` provides the information for describing a service. Example: documentation: summary: > The Google Calendar API gives access to most calendar features. pages: - name: Overview content: (== include google/foo/overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==) subpages: - name: Java content: (== include google/foo/tutorial_java.md ==) rules: - selector: google.calendar.Calendar.Get description: > ... - selector: google.calendar.Calendar.Put description: > ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation.", "id": "Documentation", "properties": { "documentationRootUrl": { @@ -1003,6 +1021,13 @@ }, "type": "array" }, + "sectionOverrides": { + "description": "Specifies section and content to override boilerplate content provided by go/api-docgen. Currently overrides following sections: 1. rest.service.client_libraries", + "items": { + "$ref": "Page" + }, + "type": "array" + }, "serviceRootUrl": { "description": "Specifies the service root url if the default one (the service name from the yaml file) is not suitable. This can be seen in any fully specified service urls as well as sections that show a base that other urls are relative to.", "type": "string" @@ -1026,6 +1051,10 @@ "description": "Description of the selected proto element (e.g. a message, a method, a 'service' definition, or a field). Defaults to leading & trailing comments taken from the proto source definition of the proto element.", "type": "string" }, + "disableReplacementWords": { + "description": "String of comma or space separated case-sensitive words for which method/field name replacement will be disabled by go/api-docgen.", + "type": "string" + }, "selector": { "description": "The selector is a comma-separated list of patterns for any element such as a method, a field, an enum value. Each pattern is a qualified name of the element which may end in \"*\", indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. \"foo.*\" is ok, but not \"foo.b*\" or \"foo.*.bar\". A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern \"*\" is used.", "type": "string" @@ -1040,6 +1069,41 @@ "common": { "$ref": "CommonLanguageSettings", "description": "Some settings." + }, + "forcedNamespaceAliases": { + "description": "Namespaces which must be aliased in snippets due to a known (but non-generator-predictable) naming collision", + "items": { + "type": "string" + }, + "type": "array" + }, + "handwrittenSignatures": { + "description": "Method signatures (in the form \"service.method(signature)\") which are provided separately, so shouldn't be generated. Snippets *calling* these methods are still generated, however.", + "items": { + "type": "string" + }, + "type": "array" + }, + "ignoredResources": { + "description": "List of full resource types to ignore during generation. This is typically used for API-specific Location resources, which should be handled by the generator as if they were actually the common Location resources. Example entry: \"documentai.googleapis.com/Location\"", + "items": { + "type": "string" + }, + "type": "array" + }, + "renamedResources": { + "additionalProperties": { + "type": "string" + }, + "description": "Map from full resource types to the effective short name for the resource. This is used when otherwise resource named from different services would cause naming collisions. Example entry: \"datalabeling.googleapis.com/Dataset\": \"DataLabelingDataset\"", + "type": "object" + }, + "renamedServices": { + "additionalProperties": { + "type": "string" + }, + "description": "Map from original service names to renamed versions. This is used when the default generated types would cause a naming conflict. (Neither name is fully-qualified.) Example: Subscriber to SubscriberServiceApi.", + "type": "object" } }, "type": "object" @@ -1055,6 +1119,7 @@ "id": "Endpoint", "properties": { "aliases": { + "deprecated": true, "description": "Unimplemented. Dot not use. DEPRECATED: This field is no longer supported. Instead of using aliases, please specify multiple google.api.Endpoint for each of the intended aliases. Additional names that this endpoint will be hosted on.", "items": { "type": "string" @@ -1080,6 +1145,10 @@ "description": "Enum type definition.", "id": "Enum", "properties": { + "edition": { + "description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", + "type": "string" + }, "enumvalue": { "description": "Enum value definitions.", "items": { @@ -1106,11 +1175,13 @@ "description": "The source syntax.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } @@ -1246,6 +1317,25 @@ }, "type": "object" }, + "FieldPolicy": { + "description": "Google API Policy Annotation This message defines a simple API policy annotation that can be used to annotate API request and response message fields with applicable policies. One field may have multiple applicable policies that must all be satisfied before a request can be processed. This policy annotation is used to generate the overall policy that will be used for automatic runtime policy enforcement and documentation generation.", + "id": "FieldPolicy", + "properties": { + "resourcePermission": { + "description": "Specifies the required permission(s) for the resource referred to by the field. It requires the field contains a valid resource reference, and the request must pass the permission checks to proceed. For example, \"resourcemanager.projects.get\".", + "type": "string" + }, + "resourceType": { + "description": "Specifies the resource type for the resource referred to by the field.", + "type": "string" + }, + "selector": { + "description": "Selects one or more request or response message fields to apply this `FieldPolicy`. When a `FieldPolicy` is used in proto annotation, the selector must be left as empty. The service config generator will automatically fill the correct value. When a `FieldPolicy` is used in service config, the selector must be a comma-separated string with valid request or response field paths, such as \"foo.bar\" or \"foo.bar,foo.baz\".", + "type": "string" + } + }, + "type": "object" + }, "GoSettings": { "description": "Settings for Go client libraries.", "id": "GoSettings", @@ -1526,24 +1616,51 @@ "description": "The source syntax of this method.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } }, "type": "object" }, + "MethodPolicy": { + "description": "Defines policies applying to an RPC method.", + "id": "MethodPolicy", + "properties": { + "requestPolicies": { + "description": "Policies that are applicable to the request message.", + "items": { + "$ref": "FieldPolicy" + }, + "type": "array" + }, + "selector": { + "description": "Selects a method to which these policies should be enforced, for example, \"google.pubsub.v1.Subscriber.CreateSubscription\". Refer to selector for syntax details. NOTE: This field must not be set in the proto annotation. It will be automatically filled by the service config compiler .", + "type": "string" + } + }, + "type": "object" + }, "MethodSettings": { "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_behavior: - selector: CreateAdDomain 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" + "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" }, "selector": { "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options.", @@ -1669,6 +1786,7 @@ "type": "string" }, "launchStage": { + "deprecated": true, "description": "Deprecated. Must use the MetricDescriptor.launch_stage instead.", "enum": [ "LAUNCH_STAGE_UNSPECIFIED", @@ -1720,7 +1838,7 @@ "type": "object" }, "Mixin": { - "description": "Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows: - If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method. - Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited. - If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the root path if specified. Example of a simple mixin: package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v1/{resource=**}:getAcl\"; } } package google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = \"/v2/{resource=**}\"; } } Example of a mixin configuration: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inheriting documentation and annotations as follows: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/{resource=**}:getAcl\"; } ... } Note how the version in the path pattern changed from `v1` to `v2`. If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl root: acls This implies the following inherited HTTP annotation: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\"; } ... }", + "description": "Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows: - If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method. - Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited. - If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the root path if specified. Example of a simple mixin: package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v1/{resource=**}:getAcl\"; } } package google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = \"/v2/{resource=**}\"; } } Example of a mixin configuration: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inherting documentation and annotations as follows: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/{resource=**}:getAcl\"; } ... } Note how the version in the path pattern changed from `v1` to `v2`. If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl root: acls This implies the following inherited HTTP annotation: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\"; } ... }", "id": "Mixin", "properties": { "name": { @@ -1782,7 +1900,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" } }, @@ -1878,7 +1996,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" } }, @@ -1978,7 +2096,7 @@ "type": "array" }, "newIssueUri": { - "description": "Link to a place that API users can report issues. Example: https://issuetracker.google.com/issues/new?component=190865&template=1161103", + "description": "Link to a *public* URI where users can report issues. Example: https://issuetracker.google.com/issues/new?component=190865&template=1161103", "type": "string" }, "organization": { @@ -1988,16 +2106,30 @@ "CLOUD", "ADS", "PHOTOS", - "STREET_VIEW" + "STREET_VIEW", + "SHOPPING", + "GEO", + "GENERATIVE_AI" ], "enumDescriptions": [ "Not useful.", "Google Cloud Platform Org.", "Ads (Advertising) Org.", "Photos Org.", - "Street View Org." + "Street View Org.", + "Shopping Org.", + "Geo Org.", + "Generative AI - https://developers.generativeai.google" ], "type": "string" + }, + "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" @@ -2354,6 +2486,10 @@ "description": "A protocol buffer message type.", "id": "Type", "properties": { + "edition": { + "description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", + "type": "string" + }, "fields": { "description": "The list of fields.", "items": { @@ -2387,11 +2523,13 @@ "description": "The source syntax.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } @@ -2469,7 +2607,7 @@ "type": "string" }, "name": { - "description": "The resource name of the quota limit. An example name would be: `services/compute.googleapis.com/projects/123/quotas/metrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion` The resource name is intended to be opaque and should not be parsed for its component strings, since its representation could change in the future.", + "description": "The resource name of the quota limit. An example name would be: `services/compute.googleapis.com/projects/123/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion` The resource name is intended to be opaque and should not be parsed for its component strings, since its representation could change in the future.", "type": "string" }, "quotaBuckets": { @@ -2520,7 +2658,7 @@ "type": "string" }, "name": { - "description": "The resource name of the quota settings on this metric for this consumer. An example name would be: `services/serviceconsumermanagement.googleapis.com/projects/123/quota/metrics/compute.googleapis.com%2Fcpus The resource name is intended to be opaque and should not be parsed for its component strings, since its representation could change in the future.", + "description": "The resource name of the quota settings on this metric for this consumer. An example name would be: `services/serviceconsumermanagement.googleapis.com/projects/123/consumerQuotaMetrics/compute.googleapis.com%2Fcpus` The resource name is intended to be opaque and should not be parsed for its component strings, since its representation could change in the future.", "type": "string" }, "unit": { @@ -2675,7 +2813,7 @@ "additionalProperties": { "type": "string" }, - "description": " If this map is nonempty, then this policy applies only to specific values for dimensions defined in the limit unit. For example, an policy on a limit with the unit 1/{project}/{region} could contain an entry with the key \"region\" and the value \"us-east-1\"; the policy is only applied to quota consumed in that region. This map has the following restrictions: * Keys that are not defined in the limit's unit are not valid keys. Any string appearing in {brackets} in the unit (besides {project} or {user}) is a defined key. * \"project\" is not a valid key; the project is already specified in the parent resource name. * \"user\" is not a valid key; the API does not support quota polcies that apply only to a specific user. * If \"region\" appears as a key, its value must be a valid Cloud region. * If \"zone\" appears as a key, its value must be a valid Cloud zone. * If any valid key other than \"region\" or \"zone\" appears in the map, then all valid keys other than \"region\" or \"zone\" must also appear in the map.", + "description": " If this map is nonempty, then this policy applies only to specific values for dimensions defined in the limit unit. For example, a policy on a limit with the unit 1/{project}/{region} could contain an entry with the key \"region\" and the value \"us-east-1\"; the policy is only applied to quota consumed in that region. This map has the following restrictions: * Keys that are not defined in the limit's unit are not valid keys. Any string appearing in {brackets} in the unit (besides {project} or {user}) is a defined key. * \"project\" is not a valid key; the project is already specified in the parent resource name. * \"user\" is not a valid key; the API does not support quota polcies that apply only to a specific user. * If \"region\" appears as a key, its value must be a valid Cloud region. * If \"zone\" appears as a key, its value must be a valid Cloud zone. * If any valid key other than \"region\" or \"zone\" appears in the map, then all valid keys other than \"region\" or \"zone\" must also appear in the map.", "type": "object" }, "metric": { @@ -2730,6 +2868,10 @@ "producerOverride": { "$ref": "V1Beta1QuotaOverride", "description": "Producer override on this quota bucket." + }, + "producerQuotaPolicy": { + "$ref": "V1Beta1ProducerQuotaPolicy", + "description": "Producer policy inherited from the closet ancestor of the current consumer." } }, "type": "object" @@ -2920,6 +3062,7 @@ "type": "string" }, "iamAccountName": { + "deprecated": true, "description": "Deprecated. See b/136209818.", "type": "string" }, diff --git a/etc/api/servicecontrol/v1/servicecontrol-api.json b/etc/api/servicecontrol/v1/servicecontrol-api.json index f4608947c8..26dfc9937b 100644 --- a/etc/api/servicecontrol/v1/servicecontrol-api.json +++ b/etc/api/servicecontrol/v1/servicecontrol-api.json @@ -197,7 +197,7 @@ } } }, - "revision": "20230106", + "revision": "20240223", "rootUrl": "https://servicecontrol.googleapis.com/", "schemas": { "AllocateInfo": { @@ -377,6 +377,7 @@ "description": "Properties of the object. Contains field @type with type URL.", "type": "any" }, + "deprecated": true, "description": "Deprecated. Use the `metadata` field instead. Other service-specific data about the request, response, and other activities.", "type": "object" }, @@ -455,6 +456,10 @@ "description": "The name of the service account key used to create or exchange credentials for authenticating the service account making the request. This is a scheme-less URI full resource name. For example: \"//iam.googleapis.com/projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}\"", "type": "string" }, + "serviceDelegationHistory": { + "$ref": "ServiceDelegationHistory", + "description": "Records the history of delegated resource access across Google services." + }, "thirdPartyPrincipal": { "additionalProperties": { "description": "Properties of the object.", @@ -594,6 +599,10 @@ "description": "Contains additional information about the check operation.", "id": "CheckInfo", "properties": { + "apiKeyUid": { + "description": "The unique id of the api key in the format of \"apikey:\". This field will be populated when the consumer passed to Chemist is an API key and all the API key related validations are successful.", + "type": "string" + }, "consumerInfo": { "$ref": "ConsumerInfo", "description": "Consumer info of this check." @@ -1176,12 +1185,14 @@ "enum": [ "LOW", "HIGH", - "DEBUG" + "DEBUG", + "PROMOTED" ], "enumDescriptions": [ "Allows data caching, batching, and aggregation. It provides higher performance with higher data loss risk.", "Disables data aggregation to minimize data loss. It is for operations that contains significant monetary value or audit trail. This feature only applies to the client libraries.", - "Deprecated. Do not use. Disables data aggregation and enables additional validation logic. It should only be used during the onboarding process. It is only available to Google internal services, and the service must be approved by chemist-dev@google.com in order to use this level." + "Deprecated. Do not use. Disables data aggregation and enables additional validation logic. It should only be used during the onboarding process. It is only available to Google internal services, and the service must be approved by chemist-dev@google.com in order to use this level.", + "Used internally by Chemist." ], "type": "string" }, @@ -1382,6 +1393,7 @@ "id": "QuotaInfo", "properties": { "limitExceeded": { + "deprecated": true, "description": "Quota Metrics that have exceeded quota limits. For QuotaGroup-based quota, this is QuotaGroup.name For QuotaLimit-based quota, this is QuotaLimit.name See: google.api.Quota Deprecated: Use quota_metrics to get per quota group limit exceeded status.", "items": { "type": "string" @@ -1628,7 +1640,7 @@ "additionalProperties": { "type": "string" }, - "description": "Annotations is an 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. More info: https://kubernetes.io/docs/user-guide/annotations", + "description": "Annotations is an 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. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/", "type": "object" }, "createTime": { @@ -1747,6 +1759,47 @@ }, "type": "object" }, + "ServiceDelegationHistory": { + "description": "The history of delegation across multiple services as the result of the original user's action. Such as \"service A uses its own account to do something for user B\". This differs from ServiceAccountDelegationInfo, which only tracks the history of direct token exchanges (impersonation).", + "id": "ServiceDelegationHistory", + "properties": { + "originalPrincipal": { + "description": "The original end user who initiated the request to GCP.", + "type": "string" + }, + "serviceMetadata": { + "description": "Data identifying the service specific jobs or units of work that were involved in a chain of service calls.", + "items": { + "$ref": "ServiceMetadata" + }, + "type": "array" + } + }, + "type": "object" + }, + "ServiceMetadata": { + "description": "Metadata describing the service and additional service specific information used to identify the job or unit of work at hand.", + "id": "ServiceMetadata", + "properties": { + "jobMetadata": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Additional metadata provided by service teams to describe service specific job information that was triggered by the original principal.", + "type": "object" + }, + "principalSubject": { + "description": "A string representing the principal_subject associated with the identity. For most identities, the format will be `principal://iam.googleapis.com/{identity pool name}/subject/{subject)` except for some GKE identities (GKE_WORKLOAD, FREEFORM, GKE_HUB_WORKLOAD) that are still in the legacy format `serviceAccount:{identity pool name}[{subject}]` If the identity is a Google account (e.g. workspace user account or service account), this will be the email of the prefixed by `serviceAccount:`. For example: `serviceAccount:my-service-account@project-1.iam.gserviceaccount.com`. If the identity is an individual user, the identity will be formatted as: `user:user_ABC@email.com`.", + "type": "string" + }, + "serviceDomain": { + "description": "The service's fully qualified domain name, e.g. \"dataproc.googleapis.com\".", + "type": "string" + } + }, + "type": "object" + }, "SpanContext": { "description": "The context of a span. This is attached to an Exemplar in Distribution values during aggregation. It contains the name of a span with format: projects/[PROJECT_ID_OR_NUMBER]/traces/[TRACE_ID]/spans/[SPAN_ID]", "id": "SpanContext", diff --git a/etc/api/servicecontrol/v2/servicecontrol-api.json b/etc/api/servicecontrol/v2/servicecontrol-api.json index 236e77507d..8d61eb3526 100644 --- a/etc/api/servicecontrol/v2/servicecontrol-api.json +++ b/etc/api/servicecontrol/v2/servicecontrol-api.json @@ -169,7 +169,7 @@ } } }, - "revision": "20230106", + "revision": "20240223", "rootUrl": "https://servicecontrol.googleapis.com/", "schemas": { "Api": { @@ -318,6 +318,7 @@ "description": "Properties of the object. Contains field @type with type URL.", "type": "any" }, + "deprecated": true, "description": "Deprecated. Use the `metadata` field instead. Other service-specific data about the request, response, and other activities.", "type": "object" }, @@ -396,6 +397,10 @@ "description": "The name of the service account key used to create or exchange credentials for authenticating the service account making the request. This is a scheme-less URI full resource name. For example: \"//iam.googleapis.com/projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}\"", "type": "string" }, + "serviceDelegationHistory": { + "$ref": "ServiceDelegationHistory", + "description": "Records the history of delegated resource access across Google services." + }, "thirdPartyPrincipal": { "additionalProperties": { "description": "Properties of the object.", @@ -587,7 +592,7 @@ "type": "object" }, "ReportResponse": { - "description": "Response message for the Report method. If the request contains any invalid data, the server returns an RPC error.", + "description": "Response message for the Report method.", "id": "ReportResponse", "properties": {}, "type": "object" @@ -687,7 +692,7 @@ "additionalProperties": { "type": "string" }, - "description": "Annotations is an 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. More info: https://kubernetes.io/docs/user-guide/annotations", + "description": "Annotations is an 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. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/", "type": "object" }, "createTime": { @@ -748,11 +753,11 @@ "id": "ResourceInfo", "properties": { "container": { - "description": "Optional. The identifier of the container of this resource. For Google Cloud APIs, the resource container must be one of the following formats: - `projects/` - `folders/` - `organizations/` For the policy enforcement on the container level (VPCSC and Location Policy check), this field takes precedence on the container extracted from name when presents.", + "description": "Optional. The identifier of the container of this resource. For Google Cloud APIs, the resource container must be one of the following formats: - `projects/` - `folders/` - `organizations/` Required for the policy enforcement on the container level (e.g. VPCSC, Location Policy check, Org Policy check).", "type": "string" }, "location": { - "description": "Optional. The location of the resource. The value must be a valid zone, region or multiregion. For example: \"europe-west4\" or \"northamerica-northeast1-a\"", + "description": "Optional. The location of the resource, it must be a valid zone, region or multiregion, for example: \"europe-west4\", \"northamerica-northeast1-a\". Required for location policy check.", "type": "string" }, "name": { @@ -844,6 +849,47 @@ }, "type": "object" }, + "ServiceDelegationHistory": { + "description": "The history of delegation across multiple services as the result of the original user's action. Such as \"service A uses its own account to do something for user B\". This differs from ServiceAccountDelegationInfo, which only tracks the history of direct token exchanges (impersonation).", + "id": "ServiceDelegationHistory", + "properties": { + "originalPrincipal": { + "description": "The original end user who initiated the request to GCP.", + "type": "string" + }, + "serviceMetadata": { + "description": "Data identifying the service specific jobs or units of work that were involved in a chain of service calls.", + "items": { + "$ref": "ServiceMetadata" + }, + "type": "array" + } + }, + "type": "object" + }, + "ServiceMetadata": { + "description": "Metadata describing the service and additional service specific information used to identify the job or unit of work at hand.", + "id": "ServiceMetadata", + "properties": { + "jobMetadata": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Additional metadata provided by service teams to describe service specific job information that was triggered by the original principal.", + "type": "object" + }, + "principalSubject": { + "description": "A string representing the principal_subject associated with the identity. For most identities, the format will be `principal://iam.googleapis.com/{identity pool name}/subject/{subject)` except for some GKE identities (GKE_WORKLOAD, FREEFORM, GKE_HUB_WORKLOAD) that are still in the legacy format `serviceAccount:{identity pool name}[{subject}]` If the identity is a Google account (e.g. workspace user account or service account), this will be the email of the prefixed by `serviceAccount:`. For example: `serviceAccount:my-service-account@project-1.iam.gserviceaccount.com`. If the identity is an individual user, the identity will be formatted as: `user:user_ABC@email.com`.", + "type": "string" + }, + "serviceDomain": { + "description": "The service's fully qualified domain name, e.g. \"dataproc.googleapis.com\".", + "type": "string" + } + }, + "type": "object" + }, "SpanContext": { "description": "The context of a span. This is attached to an Exemplar in Distribution values during aggregation. It contains the name of a span with format: projects/[PROJECT_ID_OR_NUMBER]/traces/[TRACE_ID]/spans/[SPAN_ID]", "id": "SpanContext", diff --git a/etc/api/servicedirectory/v1/servicedirectory-api.json b/etc/api/servicedirectory/v1/servicedirectory-api.json index a9ac43d1bc..df67d4ca74 100644 --- a/etc/api/servicedirectory/v1/servicedirectory-api.json +++ b/etc/api/servicedirectory/v1/servicedirectory-api.json @@ -883,7 +883,7 @@ } } }, - "revision": "20230105", + "revision": "20240226", "rootUrl": "https://servicedirectory.googleapis.com/", "schemas": { "Binding": { @@ -895,14 +895,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1069,7 +1069,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1126,7 +1126,7 @@ "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/).", + "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": { "bindings": { diff --git a/etc/api/servicedirectory/v1beta1/servicedirectory-api.json b/etc/api/servicedirectory/v1beta1/servicedirectory-api.json index 2328007b6b..8b36e733a4 100644 --- a/etc/api/servicedirectory/v1beta1/servicedirectory-api.json +++ b/etc/api/servicedirectory/v1beta1/servicedirectory-api.json @@ -428,94 +428,6 @@ } }, "resources": { - "serviceWorkloads": { - "methods": { - "getIamPolicy": { - "description": "Gets the IAM Policy for a resource", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/serviceWorkloads/{serviceWorkloadsId}:getIamPolicy", - "httpMethod": "POST", - "id": "servicedirectory.projects.locations.namespaces.serviceWorkloads.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/[^/]+/namespaces/[^/]+/serviceWorkloads/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+resource}:getIamPolicy", - "request": { - "$ref": "GetIamPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "setIamPolicy": { - "description": "Sets the IAM Policy for a resource", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/serviceWorkloads/{serviceWorkloadsId}:setIamPolicy", - "httpMethod": "POST", - "id": "servicedirectory.projects.locations.namespaces.serviceWorkloads.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/[^/]+/namespaces/[^/]+/serviceWorkloads/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+resource}:setIamPolicy", - "request": { - "$ref": "SetIamPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "testIamPermissions": { - "description": "Tests IAM permissions for a resource (namespace, service or service workload only).", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/serviceWorkloads/{serviceWorkloadsId}:testIamPermissions", - "httpMethod": "POST", - "id": "servicedirectory.projects.locations.namespaces.serviceWorkloads.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/[^/]+/namespaces/[^/]+/serviceWorkloads/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+resource}:testIamPermissions", - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - } - }, "services": { "methods": { "create": { @@ -963,94 +875,94 @@ } } } - } - } - }, - "registrationPolicies": { - "methods": { - "getIamPolicy": { - "description": "Gets the IAM Policy for a resource", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registrationPolicies/{registrationPoliciesId}:getIamPolicy", - "httpMethod": "POST", - "id": "servicedirectory.projects.locations.registrationPolicies.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/[^/]+/registrationPolicies/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+resource}:getIamPolicy", - "request": { - "$ref": "GetIamPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] }, - "setIamPolicy": { - "description": "Sets the IAM Policy for a resource", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registrationPolicies/{registrationPoliciesId}:setIamPolicy", - "httpMethod": "POST", - "id": "servicedirectory.projects.locations.registrationPolicies.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/[^/]+/registrationPolicies/[^/]+$", - "required": true, - "type": "string" + "workloads": { + "methods": { + "getIamPolicy": { + "description": "Gets the IAM Policy for a resource", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/workloads/{workloadsId}:getIamPolicy", + "httpMethod": "POST", + "id": "servicedirectory.projects.locations.namespaces.workloads.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/[^/]+/namespaces/[^/]+/workloads/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+resource}:getIamPolicy", + "request": { + "$ref": "GetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "setIamPolicy": { + "description": "Sets the IAM Policy for a resource", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/workloads/{workloadsId}:setIamPolicy", + "httpMethod": "POST", + "id": "servicedirectory.projects.locations.namespaces.workloads.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/[^/]+/namespaces/[^/]+/workloads/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+resource}:setIamPolicy", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "testIamPermissions": { + "description": "Tests IAM permissions for a resource (namespace, service or service workload only).", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/workloads/{workloadsId}:testIamPermissions", + "httpMethod": "POST", + "id": "servicedirectory.projects.locations.namespaces.workloads.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/[^/]+/namespaces/[^/]+/workloads/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } - }, - "path": "v1beta1/{+resource}:setIamPolicy", - "request": { - "$ref": "SetIamPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "testIamPermissions": { - "description": "Tests IAM permissions for a resource (namespace, service or service workload only).", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registrationPolicies/{registrationPoliciesId}:testIamPermissions", - "httpMethod": "POST", - "id": "servicedirectory.projects.locations.registrationPolicies.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/[^/]+/registrationPolicies/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+resource}:testIamPermissions", - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] + } } } } @@ -1059,7 +971,7 @@ } } }, - "revision": "20230105", + "revision": "20240226", "rootUrl": "https://servicedirectory.googleapis.com/", "schemas": { "Binding": { @@ -1071,14 +983,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1124,6 +1036,11 @@ "format": "int32", "type": "integer" }, + "uid": { + "description": "Output only. A globally unique identifier (in UUID4 format) for this endpoint.", + "readOnly": true, + "type": "string" + }, "updateTime": { "description": "Output only. The timestamp when the endpoint was last updated.", "format": "google-datetime", @@ -1252,7 +1169,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1306,6 +1223,11 @@ "description": "Immutable. The resource name for the namespace in the format `projects/*/locations/*/namespaces/*`.", "type": "string" }, + "uid": { + "description": "Output only. A globally unique identifier (in UUID4 format) for this namespace.", + "readOnly": true, + "type": "string" + }, "updateTime": { "description": "Output only. The timestamp when the namespace was last updated.", "format": "google-datetime", @@ -1316,7 +1238,7 @@ "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/).", + "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": { "bindings": { @@ -1394,6 +1316,11 @@ "description": "Immutable. The resource name for the service in the format `projects/*/locations/*/namespaces/*/services/*`.", "type": "string" }, + "uid": { + "description": "Output only. A globally unique identifier (in UUID4 format) for this service.", + "readOnly": true, + "type": "string" + }, "updateTime": { "description": "Output only. The timestamp when the service was last updated. Note: endpoints being created/deleted/updated within the service are not considered service updates for the purpose of this timestamp.", "format": "google-datetime", diff --git a/etc/api/servicemanagement/v1/servicemanagement-api.json b/etc/api/servicemanagement/v1/servicemanagement-api.json index 3af6538b6b..832ed5c280 100644 --- a/etc/api/servicemanagement/v1/servicemanagement-api.json +++ b/etc/api/servicemanagement/v1/servicemanagement-api.json @@ -358,6 +358,7 @@ "parameterOrder": [], "parameters": { "consumerId": { + "deprecated": true, "description": "Include services consumed by the specified consumer. The Google Service Management implementation accepts the following forms: - project:", "location": "query", "type": "string" @@ -829,7 +830,7 @@ } } }, - "revision": "20230113", + "revision": "20240223", "rootUrl": "https://servicemanagement.googleapis.com/", "schemas": { "Advice": { @@ -880,11 +881,13 @@ "description": "The source syntax of the service.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" }, @@ -1075,6 +1078,7 @@ "type": "string" }, "minDeadline": { + "deprecated": true, "description": "Deprecated, do not use.", "format": "double", "type": "number" @@ -1084,6 +1088,13 @@ "format": "double", "type": "number" }, + "overridesByRequestProtocol": { + "additionalProperties": { + "$ref": "BackendRule" + }, + "description": "The map between request protocol and the backend address.", + "type": "object" + }, "pathTranslation": { "enum": [ "PATH_TRANSLATION_UNSPECIFIED", @@ -1149,14 +1160,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -1241,7 +1252,7 @@ "description": "Settings for Ruby client libraries." }, "version": { - "description": "Version of the API to apply these settings to.", + "description": "Version of the API to apply these settings to. This is the full protobuf package for the API, ending in the version element. Examples: \"google.cloud.speech.v1\" and \"google.spanner.admin.database.v1\".", "type": "string" } }, @@ -1269,6 +1280,7 @@ "type": "array" }, "referenceDocsUri": { + "deprecated": true, "description": "Link to automatically generated reference documentation. Example: https://cloud.google.com/nodejs/docs/reference/asset/latest", "type": "string" } @@ -1442,6 +1454,13 @@ "environment": { "description": "The service controller environment to use. If empty, no control plane feature (like quota and billing) will be enabled. The recommended value for most services is servicecontrol.googleapis.com", "type": "string" + }, + "methodPolicies": { + "description": "Defines policies applying to the API methods of the service.", + "items": { + "$ref": "MethodPolicy" + }, + "type": "array" } }, "type": "object" @@ -1542,7 +1561,7 @@ "type": "object" }, "Documentation": { - "description": "`Documentation` provides the information for describing a service. Example: documentation: summary: > The Google Calendar API gives access to most calendar features. pages: - name: Overview content: (== include google/foo/overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==) subpages; - name: Java content: (== include google/foo/tutorial_java.md ==) rules: - selector: google.calendar.Calendar.Get description: > ... - selector: google.calendar.Calendar.Put description: > ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation.", + "description": "`Documentation` provides the information for describing a service. Example: documentation: summary: > The Google Calendar API gives access to most calendar features. pages: - name: Overview content: (== include google/foo/overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==) subpages: - name: Java content: (== include google/foo/tutorial_java.md ==) rules: - selector: google.calendar.Calendar.Get description: > ... - selector: google.calendar.Calendar.Put description: > ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation.", "id": "Documentation", "properties": { "documentationRootUrl": { @@ -1567,6 +1586,13 @@ }, "type": "array" }, + "sectionOverrides": { + "description": "Specifies section and content to override boilerplate content provided by go/api-docgen. Currently overrides following sections: 1. rest.service.client_libraries", + "items": { + "$ref": "Page" + }, + "type": "array" + }, "serviceRootUrl": { "description": "Specifies the service root url if the default one (the service name from the yaml file) is not suitable. This can be seen in any fully specified service urls as well as sections that show a base that other urls are relative to.", "type": "string" @@ -1590,6 +1616,10 @@ "description": "Description of the selected proto element (e.g. a message, a method, a 'service' definition, or a field). Defaults to leading & trailing comments taken from the proto source definition of the proto element.", "type": "string" }, + "disableReplacementWords": { + "description": "String of comma or space separated case-sensitive words for which method/field name replacement will be disabled by go/api-docgen.", + "type": "string" + }, "selector": { "description": "The selector is a comma-separated list of patterns for any element such as a method, a field, an enum value. Each pattern is a qualified name of the element which may end in \"*\", indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. \"foo.*\" is ok, but not \"foo.b*\" or \"foo.*.bar\". A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern \"*\" is used.", "type": "string" @@ -1604,6 +1634,41 @@ "common": { "$ref": "CommonLanguageSettings", "description": "Some settings." + }, + "forcedNamespaceAliases": { + "description": "Namespaces which must be aliased in snippets due to a known (but non-generator-predictable) naming collision", + "items": { + "type": "string" + }, + "type": "array" + }, + "handwrittenSignatures": { + "description": "Method signatures (in the form \"service.method(signature)\") which are provided separately, so shouldn't be generated. Snippets *calling* these methods are still generated, however.", + "items": { + "type": "string" + }, + "type": "array" + }, + "ignoredResources": { + "description": "List of full resource types to ignore during generation. This is typically used for API-specific Location resources, which should be handled by the generator as if they were actually the common Location resources. Example entry: \"documentai.googleapis.com/Location\"", + "items": { + "type": "string" + }, + "type": "array" + }, + "renamedResources": { + "additionalProperties": { + "type": "string" + }, + "description": "Map from full resource types to the effective short name for the resource. This is used when otherwise resource named from different services would cause naming collisions. Example entry: \"datalabeling.googleapis.com/Dataset\": \"DataLabelingDataset\"", + "type": "object" + }, + "renamedServices": { + "additionalProperties": { + "type": "string" + }, + "description": "Map from original service names to renamed versions. This is used when the default generated types would cause a naming conflict. (Neither name is fully-qualified.) Example: Subscriber to SubscriberServiceApi.", + "type": "object" } }, "type": "object" @@ -1619,6 +1684,7 @@ "id": "Endpoint", "properties": { "aliases": { + "deprecated": true, "description": "Unimplemented. Dot not use. DEPRECATED: This field is no longer supported. Instead of using aliases, please specify multiple google.api.Endpoint for each of the intended aliases. Additional names that this endpoint will be hosted on.", "items": { "type": "string" @@ -1644,6 +1710,10 @@ "description": "Enum type definition.", "id": "Enum", "properties": { + "edition": { + "description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", + "type": "string" + }, "enumvalue": { "description": "Enum value definitions.", "items": { @@ -1670,11 +1740,13 @@ "description": "The source syntax.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } @@ -1833,6 +1905,25 @@ }, "type": "object" }, + "FieldPolicy": { + "description": "Google API Policy Annotation This message defines a simple API policy annotation that can be used to annotate API request and response message fields with applicable policies. One field may have multiple applicable policies that must all be satisfied before a request can be processed. This policy annotation is used to generate the overall policy that will be used for automatic runtime policy enforcement and documentation generation.", + "id": "FieldPolicy", + "properties": { + "resourcePermission": { + "description": "Specifies the required permission(s) for the resource referred to by the field. It requires the field contains a valid resource reference, and the request must pass the permission checks to proceed. For example, \"resourcemanager.projects.get\".", + "type": "string" + }, + "resourceType": { + "description": "Specifies the resource type for the resource referred to by the field.", + "type": "string" + }, + "selector": { + "description": "Selects one or more request or response message fields to apply this `FieldPolicy`. When a `FieldPolicy` is used in proto annotation, the selector must be left as empty. The service config generator will automatically fill the correct value. When a `FieldPolicy` is used in service config, the selector must be a comma-separated string with valid request or response field paths, such as \"foo.bar\" or \"foo.bar,foo.baz\".", + "type": "string" + } + }, + "type": "object" + }, "FlowErrorDetails": { "description": "Encapsulation of flow-specific error details for debugging. Used as a details field on an error Status, not intended for external use.", "id": "FlowErrorDetails", @@ -2290,24 +2381,51 @@ "description": "The source syntax of this method.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } }, "type": "object" }, + "MethodPolicy": { + "description": "Defines policies applying to an RPC method.", + "id": "MethodPolicy", + "properties": { + "requestPolicies": { + "description": "Policies that are applicable to the request message.", + "items": { + "$ref": "FieldPolicy" + }, + "type": "array" + }, + "selector": { + "description": "Selects a method to which these policies should be enforced, for example, \"google.pubsub.v1.Subscriber.CreateSubscription\". Refer to selector for syntax details. NOTE: This field must not be set in the proto annotation. It will be automatically filled by the service config compiler .", + "type": "string" + } + }, + "type": "object" + }, "MethodSettings": { "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_behavior: - selector: CreateAdDomain 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" + "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" }, "selector": { "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options.", @@ -2433,6 +2551,7 @@ "type": "string" }, "launchStage": { + "deprecated": true, "description": "Deprecated. Must use the MetricDescriptor.launch_stage instead.", "enum": [ "LAUNCH_STAGE_UNSPECIFIED", @@ -2484,7 +2603,7 @@ "type": "object" }, "Mixin": { - "description": "Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows: - If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method. - Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited. - If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the root path if specified. Example of a simple mixin: package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v1/{resource=**}:getAcl\"; } } package google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = \"/v2/{resource=**}\"; } } Example of a mixin configuration: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inheriting documentation and annotations as follows: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/{resource=**}:getAcl\"; } ... } Note how the version in the path pattern changed from `v1` to `v2`. If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl root: acls This implies the following inherited HTTP annotation: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\"; } ... }", + "description": "Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows: - If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method. - Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited. - If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the root path if specified. Example of a simple mixin: package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v1/{resource=**}:getAcl\"; } } package google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = \"/v2/{resource=**}\"; } } Example of a mixin configuration: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inherting documentation and annotations as follows: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/{resource=**}:getAcl\"; } ... } Note how the version in the path pattern changed from `v1` to `v2`. If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl root: acls This implies the following inherited HTTP annotation: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\"; } ... }", "id": "Mixin", "properties": { "name": { @@ -2546,7 +2665,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" } }, @@ -2642,7 +2761,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" } }, @@ -2747,7 +2866,7 @@ "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/).", + "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": { @@ -2819,7 +2938,7 @@ "type": "array" }, "newIssueUri": { - "description": "Link to a place that API users can report issues. Example: https://issuetracker.google.com/issues/new?component=190865&template=1161103", + "description": "Link to a *public* URI where users can report issues. Example: https://issuetracker.google.com/issues/new?component=190865&template=1161103", "type": "string" }, "organization": { @@ -2829,16 +2948,30 @@ "CLOUD", "ADS", "PHOTOS", - "STREET_VIEW" + "STREET_VIEW", + "SHOPPING", + "GEO", + "GENERATIVE_AI" ], "enumDescriptions": [ "Not useful.", "Google Cloud Platform Org.", "Ads (Advertising) Org.", "Photos Org.", - "Street View Org." + "Street View Org.", + "Shopping Org.", + "Geo Org.", + "Generative AI - https://developers.generativeai.google" ], "type": "string" + }, + "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" @@ -3380,6 +3513,10 @@ "description": "A protocol buffer message type.", "id": "Type", "properties": { + "edition": { + "description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", + "type": "string" + }, "fields": { "description": "The list of fields.", "items": { @@ -3413,11 +3550,13 @@ "description": "The source syntax.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } diff --git a/etc/api/servicenetworking/v1/servicenetworking-api.json b/etc/api/servicenetworking/v1/servicenetworking-api.json index 5c1a3ecd2d..f659406805 100644 --- a/etc/api/servicenetworking/v1/servicenetworking-api.json +++ b/etc/api/servicenetworking/v1/servicenetworking-api.json @@ -192,7 +192,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/operations", "httpMethod": "GET", "id": "servicenetworking.operations.list", @@ -548,6 +548,88 @@ "https://www.googleapis.com/auth/service.management" ] }, + "get": { + "description": "Producers can use this method to retrieve information about the DNS record set added to the private zone inside the shared tenant host project associated with a consumer network.", + "flatPath": "v1/services/{servicesId}/dnsRecordSets:get", + "httpMethod": "GET", + "id": "servicenetworking.services.dnsRecordSets.get", + "parameterOrder": [ + "parent" + ], + "parameters": { + "consumerNetwork": { + "description": "Required. The consumer network containing the record set. Must be in the form of projects/{project}/global/networks/{network}", + "location": "query", + "type": "string" + }, + "domain": { + "description": "Required. The domain name of the zone containing the recordset.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent resource identifying the connection which owns this collection of DNS zones in the format services/{service}.", + "location": "path", + "pattern": "^services/[^/]+$", + "required": true, + "type": "string" + }, + "type": { + "description": "Required. RecordSet Type eg. type='A'. See the list of [Supported DNS Types](https://cloud.google.com/dns/records/json-record).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "Required. The name of the zone containing the record set.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/dnsRecordSets:get", + "response": { + "$ref": "DnsRecordSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/service.management" + ] + }, + "list": { + "description": "Producers can use this method to retrieve a list of available DNS RecordSets available inside the private zone on the tenant host project accessible from their network.", + "flatPath": "v1/services/{servicesId}/dnsRecordSets:list", + "httpMethod": "GET", + "id": "servicenetworking.services.dnsRecordSets.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "consumerNetwork": { + "description": "Required. The network that the consumer is using to connect with services. Must be in the form of projects/{project}/global/networks/{network} {project} is the project number, as in '12345' {network} is the network name.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`.", + "location": "path", + "pattern": "^services/[^/]+$", + "required": true, + "type": "string" + }, + "zone": { + "description": "Required. The name of the private DNS zone in the shared producer host project from which the record set will be removed.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/dnsRecordSets:list", + "response": { + "$ref": "ListDnsRecordSetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/service.management" + ] + }, "remove": { "description": "Service producers can use this method to remove DNS record sets from private DNS zones in the shared producer host project.", "flatPath": "v1/services/{servicesId}/dnsRecordSets:remove", @@ -707,6 +789,32 @@ "https://www.googleapis.com/auth/service.management" ] }, + "getVpcServiceControls": { + "description": "Consumers use this method to find out the state of VPC Service Controls. The controls could be enabled or disabled for a connection.", + "flatPath": "v1/services/{servicesId}/projects/{projectsId}/global/networks/{networksId}/vpcServiceControls", + "httpMethod": "GET", + "id": "servicenetworking.services.projects.global.networks.getVpcServiceControls", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the VPC Service Controls config to retrieve in the format: `services/{service}/projects/{project}/global/networks/{network}`. {service} is the peering service that is managing connectivity for the service producer's organization. For Google services that support this functionality, this value is `servicenetworking.googleapis.com`. {project} is a project number e.g. `12345` that contains the service consumer's VPC network. {network} is the name of the service consumer's VPC network.", + "location": "path", + "pattern": "^services/[^/]+/projects/[^/]+/global/networks/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}/vpcServiceControls", + "response": { + "$ref": "VpcServiceControls" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/service.management" + ] + }, "updateConsumerConfig": { "description": "Service producers use this method to update the configuration of their connection including the import/export of custom routes and subnetwork routes with public IP.", "flatPath": "v1/services/{servicesId}/projects/{projectsId}/global/networks/{networksId}:updateConsumerConfig", @@ -738,6 +846,62 @@ } }, "resources": { + "dnsZones": { + "methods": { + "get": { + "description": "Service producers can use this method to retrieve a DNS zone in the shared producer host project and the matching peering zones in consumer project", + "flatPath": "v1/services/{servicesId}/projects/{projectsId}/global/networks/{networksId}/dnsZones/{dnsZonesId}", + "httpMethod": "GET", + "id": "servicenetworking.services.projects.global.networks.dnsZones.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The network that the consumer is using to connect with services. Must be in the form of services/{service}/projects/{project}/global/networks/{network}/zones/{zoneName} Where {service} is the peering service that is managing connectivity for the service producer's organization. For Google services that support this {project} is the project number, as in '12345' {network} is the network name. {zoneName} is the DNS zone name", + "location": "path", + "pattern": "^services/[^/]+/projects/[^/]+/global/networks/[^/]+/dnsZones/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GetDnsZoneResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/service.management" + ] + }, + "list": { + "description": "* Service producers can use this method to retrieve a list of available DNS zones in the shared producer host project and the matching peering zones in the consumer project. *", + "flatPath": "v1/services/{servicesId}/projects/{projectsId}/global/networks/{networksId}/dnsZones:list", + "httpMethod": "GET", + "id": "servicenetworking.services.projects.global.networks.dnsZones.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Parent resource identifying the connection which owns this collection of DNS zones in the format services/{service}/projects/{project}/global/networks/{network} Service: The service that is managing connectivity for the service producer's organization. For Google services that support this functionality, this value is `servicenetworking.googleapis.com`. Projects: the consumer project containing the consumer network. Network: The consumer network accessible from the tenant project.", + "location": "path", + "pattern": "^services/[^/]+/projects/[^/]+/global/networks/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/dnsZones:list", + "response": { + "$ref": "ListDnsZonesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/service.management" + ] + } + } + }, "peeredDnsDomains": { "methods": { "create": { @@ -865,7 +1029,7 @@ } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://servicenetworking.googleapis.com/", "schemas": { "AddDnsRecordSetMetadata": { @@ -908,7 +1072,7 @@ "type": "string" }, "dnsSuffix": { - "description": "Required. The DNS name suffix for the zones e.g. `example.com`.", + "description": "Required. The DNS name suffix for the zones e.g. `example.com.`. Cloud DNS requires that a DNS suffix ends with a trailing dot.", "type": "string" }, "name": { @@ -1000,6 +1164,10 @@ "description": "Optional. Description of the subnet.", "type": "string" }, + "internalRange": { + "description": "Optional. The url of an Internal Range. Eg: `projects//locations/global/internalRanges/`. If specified, it means that the subnetwork cidr will be created using the combination of requested_address/ip_prefix_length. Note that the subnet cidr has to be within the cidr range of this Internal Range.", + "type": "string" + }, "ipPrefixLength": { "description": "Required. The prefix length of the subnet's IP address range. Use CIDR range notation, such as `29` to provision a subnet with an `x.x.x.x/29` CIDR range. The IP address range is drawn from a pool of available ranges in the service consumer's allocated range. GCE disallows subnets with prefix_length > 29", "format": "int32", @@ -1098,11 +1266,13 @@ "description": "The source syntax of the service.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" }, @@ -1245,6 +1415,7 @@ "type": "string" }, "minDeadline": { + "deprecated": true, "description": "Deprecated, do not use.", "format": "double", "type": "number" @@ -1254,6 +1425,13 @@ "format": "double", "type": "number" }, + "overridesByRequestProtocol": { + "additionalProperties": { + "$ref": "BackendRule" + }, + "description": "The map between request protocol and the backend address.", + "type": "object" + }, "pathTranslation": { "enum": [ "PATH_TRANSLATION_UNSPECIFIED", @@ -1381,7 +1559,7 @@ "description": "Settings for Ruby client libraries." }, "version": { - "description": "Version of the API to apply these settings to.", + "description": "Version of the API to apply these settings to. This is the full protobuf package for the API, ending in the version element. Examples: \"google.cloud.speech.v1\" and \"google.spanner.admin.database.v1\".", "type": "string" } }, @@ -1429,6 +1607,7 @@ "type": "array" }, "referenceDocsUri": { + "deprecated": true, "description": "Link to automatically generated reference documentation. Example: https://cloud.google.com/nodejs/docs/reference/asset/latest", "type": "string" } @@ -1613,6 +1792,13 @@ "environment": { "description": "The service controller environment to use. If empty, no control plane feature (like quota and billing) will be enabled. The recommended value for most services is servicecontrol.googleapis.com", "type": "string" + }, + "methodPolicies": { + "description": "Defines policies applying to the API methods of the service.", + "items": { + "$ref": "MethodPolicy" + }, + "type": "array" } }, "type": "object" @@ -1725,7 +1911,7 @@ "type": "array" }, "domain": { - "description": "Required. The DNS or domain name of the record set, e.g. `test.example.com`.", + "description": "Required. The DNS or domain name of the record set, e.g. `test.example.com`. Cloud DNS requires that a DNS suffix ends with a trailing dot.", "type": "string" }, "ttl": { @@ -1745,7 +1931,7 @@ "id": "DnsZone", "properties": { "dnsSuffix": { - "description": "The DNS name suffix of this zone e.g. `example.com.`.", + "description": "The DNS name suffix of this zone e.g. `example.com.`. Cloud DNS requires that a DNS suffix ends with a trailing dot.", "type": "string" }, "name": { @@ -1755,8 +1941,23 @@ }, "type": "object" }, + "DnsZonePair": { + "description": "* Represents a pair of private and peering DNS zone resources. *", + "id": "DnsZonePair", + "properties": { + "consumerPeeringZone": { + "$ref": "DnsZone", + "description": "The DNS peering zone in the consumer project." + }, + "producerPrivateZone": { + "$ref": "DnsZone", + "description": "The private DNS zone in the shared producer host project." + } + }, + "type": "object" + }, "Documentation": { - "description": "`Documentation` provides the information for describing a service. Example: documentation: summary: > The Google Calendar API gives access to most calendar features. pages: - name: Overview content: (== include google/foo/overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==) subpages; - name: Java content: (== include google/foo/tutorial_java.md ==) rules: - selector: google.calendar.Calendar.Get description: > ... - selector: google.calendar.Calendar.Put description: > ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation.", + "description": "`Documentation` provides the information for describing a service. Example: documentation: summary: > The Google Calendar API gives access to most calendar features. pages: - name: Overview content: (== include google/foo/overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==) subpages: - name: Java content: (== include google/foo/tutorial_java.md ==) rules: - selector: google.calendar.Calendar.Get description: > ... - selector: google.calendar.Calendar.Put description: > ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation.", "id": "Documentation", "properties": { "documentationRootUrl": { @@ -1781,6 +1982,13 @@ }, "type": "array" }, + "sectionOverrides": { + "description": "Specifies section and content to override boilerplate content provided by go/api-docgen. Currently overrides following sections: 1. rest.service.client_libraries", + "items": { + "$ref": "Page" + }, + "type": "array" + }, "serviceRootUrl": { "description": "Specifies the service root url if the default one (the service name from the yaml file) is not suitable. This can be seen in any fully specified service urls as well as sections that show a base that other urls are relative to.", "type": "string" @@ -1804,6 +2012,10 @@ "description": "Description of the selected proto element (e.g. a message, a method, a 'service' definition, or a field). Defaults to leading & trailing comments taken from the proto source definition of the proto element.", "type": "string" }, + "disableReplacementWords": { + "description": "String of comma or space separated case-sensitive words for which method/field name replacement will be disabled by go/api-docgen.", + "type": "string" + }, "selector": { "description": "The selector is a comma-separated list of patterns for any element such as a method, a field, an enum value. Each pattern is a qualified name of the element which may end in \"*\", indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. \"foo.*\" is ok, but not \"foo.b*\" or \"foo.*.bar\". A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern \"*\" is used.", "type": "string" @@ -1818,6 +2030,41 @@ "common": { "$ref": "CommonLanguageSettings", "description": "Some settings." + }, + "forcedNamespaceAliases": { + "description": "Namespaces which must be aliased in snippets due to a known (but non-generator-predictable) naming collision", + "items": { + "type": "string" + }, + "type": "array" + }, + "handwrittenSignatures": { + "description": "Method signatures (in the form \"service.method(signature)\") which are provided separately, so shouldn't be generated. Snippets *calling* these methods are still generated, however.", + "items": { + "type": "string" + }, + "type": "array" + }, + "ignoredResources": { + "description": "List of full resource types to ignore during generation. This is typically used for API-specific Location resources, which should be handled by the generator as if they were actually the common Location resources. Example entry: \"documentai.googleapis.com/Location\"", + "items": { + "type": "string" + }, + "type": "array" + }, + "renamedResources": { + "additionalProperties": { + "type": "string" + }, + "description": "Map from full resource types to the effective short name for the resource. This is used when otherwise resource named from different services would cause naming collisions. Example entry: \"datalabeling.googleapis.com/Dataset\": \"DataLabelingDataset\"", + "type": "object" + }, + "renamedServices": { + "additionalProperties": { + "type": "string" + }, + "description": "Map from original service names to renamed versions. This is used when the default generated types would cause a naming conflict. (Neither name is fully-qualified.) Example: Subscriber to SubscriberServiceApi.", + "type": "object" } }, "type": "object" @@ -1844,6 +2091,7 @@ "id": "Endpoint", "properties": { "aliases": { + "deprecated": true, "description": "Unimplemented. Dot not use. DEPRECATED: This field is no longer supported. Instead of using aliases, please specify multiple google.api.Endpoint for each of the intended aliases. Additional names that this endpoint will be hosted on.", "items": { "type": "string" @@ -1869,6 +2117,10 @@ "description": "Enum type definition.", "id": "Enum", "properties": { + "edition": { + "description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", + "type": "string" + }, "enumvalue": { "description": "Enum value definitions.", "items": { @@ -1895,11 +2147,13 @@ "description": "The source syntax.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } @@ -2035,6 +2289,40 @@ }, "type": "object" }, + "FieldPolicy": { + "description": "Google API Policy Annotation This message defines a simple API policy annotation that can be used to annotate API request and response message fields with applicable policies. One field may have multiple applicable policies that must all be satisfied before a request can be processed. This policy annotation is used to generate the overall policy that will be used for automatic runtime policy enforcement and documentation generation.", + "id": "FieldPolicy", + "properties": { + "resourcePermission": { + "description": "Specifies the required permission(s) for the resource referred to by the field. It requires the field contains a valid resource reference, and the request must pass the permission checks to proceed. For example, \"resourcemanager.projects.get\".", + "type": "string" + }, + "resourceType": { + "description": "Specifies the resource type for the resource referred to by the field.", + "type": "string" + }, + "selector": { + "description": "Selects one or more request or response message fields to apply this `FieldPolicy`. When a `FieldPolicy` is used in proto annotation, the selector must be left as empty. The service config generator will automatically fill the correct value. When a `FieldPolicy` is used in service config, the selector must be a comma-separated string with valid request or response field paths, such as \"foo.bar\" or \"foo.bar,foo.baz\".", + "type": "string" + } + }, + "type": "object" + }, + "GetDnsZoneResponse": { + "description": "Represents managed DNS zones created in the shared Producer host and consumer projects.", + "id": "GetDnsZoneResponse", + "properties": { + "consumerPeeringZone": { + "$ref": "DnsZone", + "description": "The DNS peering zone created in the consumer project." + }, + "producerPrivateZone": { + "$ref": "DnsZone", + "description": "The private DNS zone created in the shared producer host project." + } + }, + "type": "object" + }, "GoSettings": { "description": "Settings for Go client libraries.", "id": "GoSettings", @@ -2271,6 +2559,34 @@ }, "type": "object" }, + "ListDnsRecordSetsResponse": { + "description": "Represents all DNS RecordSets associated with the producer network", + "id": "ListDnsRecordSetsResponse", + "properties": { + "dnsRecordSets": { + "description": "DNS record Set Resource", + "items": { + "$ref": "DnsRecordSet" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListDnsZonesResponse": { + "description": "Represents all DNS zones in the shared producer host project and the matching peering zones in the consumer project.", + "id": "ListDnsZonesResponse", + "properties": { + "dnsZonePairs": { + "description": "All pairs of private DNS zones in the shared producer host project and the matching peering zones in the consumer project..", + "items": { + "$ref": "DnsZonePair" + }, + "type": "array" + } + }, + "type": "object" + }, "ListOperationsResponse": { "description": "The response message for Operations.ListOperations.", "id": "ListOperationsResponse", @@ -2430,24 +2746,51 @@ "description": "The source syntax of this method.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } }, "type": "object" }, + "MethodPolicy": { + "description": "Defines policies applying to an RPC method.", + "id": "MethodPolicy", + "properties": { + "requestPolicies": { + "description": "Policies that are applicable to the request message.", + "items": { + "$ref": "FieldPolicy" + }, + "type": "array" + }, + "selector": { + "description": "Selects a method to which these policies should be enforced, for example, \"google.pubsub.v1.Subscriber.CreateSubscription\". Refer to selector for syntax details. NOTE: This field must not be set in the proto annotation. It will be automatically filled by the service config compiler .", + "type": "string" + } + }, + "type": "object" + }, "MethodSettings": { "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_behavior: - selector: CreateAdDomain 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" + "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" }, "selector": { "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options.", @@ -2573,6 +2916,7 @@ "type": "string" }, "launchStage": { + "deprecated": true, "description": "Deprecated. Must use the MetricDescriptor.launch_stage instead.", "enum": [ "LAUNCH_STAGE_UNSPECIFIED", @@ -2624,7 +2968,7 @@ "type": "object" }, "Mixin": { - "description": "Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows: - If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method. - Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited. - If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the root path if specified. Example of a simple mixin: package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v1/{resource=**}:getAcl\"; } } package google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = \"/v2/{resource=**}\"; } } Example of a mixin configuration: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inheriting documentation and annotations as follows: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/{resource=**}:getAcl\"; } ... } Note how the version in the path pattern changed from `v1` to `v2`. If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl root: acls This implies the following inherited HTTP annotation: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\"; } ... }", + "description": "Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows: - If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method. - Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited. - If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the root path if specified. Example of a simple mixin: package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v1/{resource=**}:getAcl\"; } } package google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = \"/v2/{resource=**}\"; } } Example of a mixin configuration: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inherting documentation and annotations as follows: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/{resource=**}:getAcl\"; } ... } Note how the version in the path pattern changed from `v1` to `v2`. If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl root: acls This implies the following inherited HTTP annotation: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\"; } ... }", "id": "Mixin", "properties": { "name": { @@ -2686,7 +3030,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" } }, @@ -2782,7 +3126,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" } }, @@ -2876,7 +3220,7 @@ "type": "string" }, "role": { - "description": "Required. Role to apply. Only allowlisted roles can be used at the specified granularity. The role must be one of the following: - 'roles/container.hostServiceAgentUser' applied on the shared VPC host project - 'roles/compute.securityAdmin' applied on the shared VPC host project", + "description": "Required. Role to apply. Only allowlisted roles can be used at the specified granularity. The role must be one of the following: - 'roles/container.hostServiceAgentUser' applied on the shared VPC host project - 'roles/compute.securityAdmin' applied on the shared VPC host project - 'roles/compute.networkAdmin' applied on the shared VPC host project - 'roles/compute.xpnAdmin' applied on the shared VPC host project - 'roles/dns.admin' applied on the shared VPC host project", "type": "string" } }, @@ -2924,7 +3268,7 @@ "type": "array" }, "newIssueUri": { - "description": "Link to a place that API users can report issues. Example: https://issuetracker.google.com/issues/new?component=190865&template=1161103", + "description": "Link to a *public* URI where users can report issues. Example: https://issuetracker.google.com/issues/new?component=190865&template=1161103", "type": "string" }, "organization": { @@ -2934,16 +3278,30 @@ "CLOUD", "ADS", "PHOTOS", - "STREET_VIEW" + "STREET_VIEW", + "SHOPPING", + "GEO", + "GENERATIVE_AI" ], "enumDescriptions": [ "Not useful.", "Google Cloud Platform Org.", "Ads (Advertising) Org.", "Photos Org.", - "Street View Org." + "Street View Org.", + "Shopping Org.", + "Geo Org.", + "Generative AI - https://developers.generativeai.google" ], "type": "string" + }, + "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" @@ -3517,6 +3875,10 @@ "description": "A protocol buffer message type.", "id": "Type", "properties": { + "edition": { + "description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", + "type": "string" + }, "fields": { "description": "The list of fields.", "items": { @@ -3550,11 +3912,13 @@ "description": "The source syntax.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } @@ -3725,6 +4089,18 @@ } }, "type": "object" + }, + "VpcServiceControls": { + "description": "Response for the get VPC Service Controls request.", + "id": "VpcServiceControls", + "properties": { + "enabled": { + "description": "Output only. Indicates whether the VPC Service Controls are enabled or disabled for the connection. If the consumer called the EnableVpcServiceControls method, then this is true. If the consumer called DisableVpcServiceControls, then this is false. The default is false.", + "readOnly": true, + "type": "boolean" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/servicenetworking/v1beta/servicenetworking-api.json b/etc/api/servicenetworking/v1beta/servicenetworking-api.json index 8e725b3959..1546a28fdb 100644 --- a/etc/api/servicenetworking/v1beta/servicenetworking-api.json +++ b/etc/api/servicenetworking/v1beta/servicenetworking-api.json @@ -307,7 +307,7 @@ } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://servicenetworking.googleapis.com/", "schemas": { "AddDnsRecordSetMetadata": { @@ -437,11 +437,13 @@ "description": "The source syntax of the service.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" }, @@ -584,6 +586,7 @@ "type": "string" }, "minDeadline": { + "deprecated": true, "description": "Deprecated, do not use.", "format": "double", "type": "number" @@ -593,6 +596,13 @@ "format": "double", "type": "number" }, + "overridesByRequestProtocol": { + "additionalProperties": { + "$ref": "BackendRule" + }, + "description": "The map between request protocol and the backend address.", + "type": "object" + }, "pathTranslation": { "enum": [ "PATH_TRANSLATION_UNSPECIFIED", @@ -714,7 +724,7 @@ "description": "Settings for Ruby client libraries." }, "version": { - "description": "Version of the API to apply these settings to.", + "description": "Version of the API to apply these settings to. This is the full protobuf package for the API, ending in the version element. Examples: \"google.cloud.speech.v1\" and \"google.spanner.admin.database.v1\".", "type": "string" } }, @@ -762,6 +772,7 @@ "type": "array" }, "referenceDocsUri": { + "deprecated": true, "description": "Link to automatically generated reference documentation. Example: https://cloud.google.com/nodejs/docs/reference/asset/latest", "type": "string" } @@ -934,6 +945,13 @@ "environment": { "description": "The service controller environment to use. If empty, no control plane feature (like quota and billing) will be enabled. The recommended value for most services is servicecontrol.googleapis.com", "type": "string" + }, + "methodPolicies": { + "description": "Defines policies applying to the API methods of the service.", + "items": { + "$ref": "MethodPolicy" + }, + "type": "array" } }, "type": "object" @@ -1024,7 +1042,7 @@ "type": "array" }, "domain": { - "description": "Required. The DNS or domain name of the record set, e.g. `test.example.com`.", + "description": "Required. The DNS or domain name of the record set, e.g. `test.example.com`. Cloud DNS requires that a DNS suffix ends with a trailing dot.", "type": "string" }, "ttl": { @@ -1044,7 +1062,7 @@ "id": "DnsZone", "properties": { "dnsSuffix": { - "description": "The DNS name suffix of this zone e.g. `example.com.`.", + "description": "The DNS name suffix of this zone e.g. `example.com.`. Cloud DNS requires that a DNS suffix ends with a trailing dot.", "type": "string" }, "name": { @@ -1055,7 +1073,7 @@ "type": "object" }, "Documentation": { - "description": "`Documentation` provides the information for describing a service. Example: documentation: summary: > The Google Calendar API gives access to most calendar features. pages: - name: Overview content: (== include google/foo/overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==) subpages; - name: Java content: (== include google/foo/tutorial_java.md ==) rules: - selector: google.calendar.Calendar.Get description: > ... - selector: google.calendar.Calendar.Put description: > ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation.", + "description": "`Documentation` provides the information for describing a service. Example: documentation: summary: > The Google Calendar API gives access to most calendar features. pages: - name: Overview content: (== include google/foo/overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==) subpages: - name: Java content: (== include google/foo/tutorial_java.md ==) rules: - selector: google.calendar.Calendar.Get description: > ... - selector: google.calendar.Calendar.Put description: > ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation.", "id": "Documentation", "properties": { "documentationRootUrl": { @@ -1080,6 +1098,13 @@ }, "type": "array" }, + "sectionOverrides": { + "description": "Specifies section and content to override boilerplate content provided by go/api-docgen. Currently overrides following sections: 1. rest.service.client_libraries", + "items": { + "$ref": "Page" + }, + "type": "array" + }, "serviceRootUrl": { "description": "Specifies the service root url if the default one (the service name from the yaml file) is not suitable. This can be seen in any fully specified service urls as well as sections that show a base that other urls are relative to.", "type": "string" @@ -1103,6 +1128,10 @@ "description": "Description of the selected proto element (e.g. a message, a method, a 'service' definition, or a field). Defaults to leading & trailing comments taken from the proto source definition of the proto element.", "type": "string" }, + "disableReplacementWords": { + "description": "String of comma or space separated case-sensitive words for which method/field name replacement will be disabled by go/api-docgen.", + "type": "string" + }, "selector": { "description": "The selector is a comma-separated list of patterns for any element such as a method, a field, an enum value. Each pattern is a qualified name of the element which may end in \"*\", indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. \"foo.*\" is ok, but not \"foo.b*\" or \"foo.*.bar\". A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern \"*\" is used.", "type": "string" @@ -1117,6 +1146,41 @@ "common": { "$ref": "CommonLanguageSettings", "description": "Some settings." + }, + "forcedNamespaceAliases": { + "description": "Namespaces which must be aliased in snippets due to a known (but non-generator-predictable) naming collision", + "items": { + "type": "string" + }, + "type": "array" + }, + "handwrittenSignatures": { + "description": "Method signatures (in the form \"service.method(signature)\") which are provided separately, so shouldn't be generated. Snippets *calling* these methods are still generated, however.", + "items": { + "type": "string" + }, + "type": "array" + }, + "ignoredResources": { + "description": "List of full resource types to ignore during generation. This is typically used for API-specific Location resources, which should be handled by the generator as if they were actually the common Location resources. Example entry: \"documentai.googleapis.com/Location\"", + "items": { + "type": "string" + }, + "type": "array" + }, + "renamedResources": { + "additionalProperties": { + "type": "string" + }, + "description": "Map from full resource types to the effective short name for the resource. This is used when otherwise resource named from different services would cause naming collisions. Example entry: \"datalabeling.googleapis.com/Dataset\": \"DataLabelingDataset\"", + "type": "object" + }, + "renamedServices": { + "additionalProperties": { + "type": "string" + }, + "description": "Map from original service names to renamed versions. This is used when the default generated types would cause a naming conflict. (Neither name is fully-qualified.) Example: Subscriber to SubscriberServiceApi.", + "type": "object" } }, "type": "object" @@ -1126,6 +1190,7 @@ "id": "Endpoint", "properties": { "aliases": { + "deprecated": true, "description": "Unimplemented. Dot not use. DEPRECATED: This field is no longer supported. Instead of using aliases, please specify multiple google.api.Endpoint for each of the intended aliases. Additional names that this endpoint will be hosted on.", "items": { "type": "string" @@ -1151,6 +1216,10 @@ "description": "Enum type definition.", "id": "Enum", "properties": { + "edition": { + "description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", + "type": "string" + }, "enumvalue": { "description": "Enum value definitions.", "items": { @@ -1177,11 +1246,13 @@ "description": "The source syntax.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } @@ -1317,6 +1388,25 @@ }, "type": "object" }, + "FieldPolicy": { + "description": "Google API Policy Annotation This message defines a simple API policy annotation that can be used to annotate API request and response message fields with applicable policies. One field may have multiple applicable policies that must all be satisfied before a request can be processed. This policy annotation is used to generate the overall policy that will be used for automatic runtime policy enforcement and documentation generation.", + "id": "FieldPolicy", + "properties": { + "resourcePermission": { + "description": "Specifies the required permission(s) for the resource referred to by the field. It requires the field contains a valid resource reference, and the request must pass the permission checks to proceed. For example, \"resourcemanager.projects.get\".", + "type": "string" + }, + "resourceType": { + "description": "Specifies the resource type for the resource referred to by the field.", + "type": "string" + }, + "selector": { + "description": "Selects one or more request or response message fields to apply this `FieldPolicy`. When a `FieldPolicy` is used in proto annotation, the selector must be left as empty. The service config generator will automatically fill the correct value. When a `FieldPolicy` is used in service config, the selector must be a comma-separated string with valid request or response field paths, such as \"foo.bar\" or \"foo.bar,foo.baz\".", + "type": "string" + } + }, + "type": "object" + }, "GoSettings": { "description": "Settings for Go client libraries.", "id": "GoSettings", @@ -1680,24 +1770,51 @@ "description": "The source syntax of this method.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } }, "type": "object" }, + "MethodPolicy": { + "description": "Defines policies applying to an RPC method.", + "id": "MethodPolicy", + "properties": { + "requestPolicies": { + "description": "Policies that are applicable to the request message.", + "items": { + "$ref": "FieldPolicy" + }, + "type": "array" + }, + "selector": { + "description": "Selects a method to which these policies should be enforced, for example, \"google.pubsub.v1.Subscriber.CreateSubscription\". Refer to selector for syntax details. NOTE: This field must not be set in the proto annotation. It will be automatically filled by the service config compiler .", + "type": "string" + } + }, + "type": "object" + }, "MethodSettings": { "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_behavior: - selector: CreateAdDomain 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" + "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" }, "selector": { "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options.", @@ -1823,6 +1940,7 @@ "type": "string" }, "launchStage": { + "deprecated": true, "description": "Deprecated. Must use the MetricDescriptor.launch_stage instead.", "enum": [ "LAUNCH_STAGE_UNSPECIFIED", @@ -1874,7 +1992,7 @@ "type": "object" }, "Mixin": { - "description": "Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows: - If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method. - Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited. - If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the root path if specified. Example of a simple mixin: package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v1/{resource=**}:getAcl\"; } } package google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = \"/v2/{resource=**}\"; } } Example of a mixin configuration: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inheriting documentation and annotations as follows: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/{resource=**}:getAcl\"; } ... } Note how the version in the path pattern changed from `v1` to `v2`. If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl root: acls This implies the following inherited HTTP annotation: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\"; } ... }", + "description": "Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows: - If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method. - Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited. - If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the root path if specified. Example of a simple mixin: package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v1/{resource=**}:getAcl\"; } } package google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = \"/v2/{resource=**}\"; } } Example of a mixin configuration: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inherting documentation and annotations as follows: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/{resource=**}:getAcl\"; } ... } Note how the version in the path pattern changed from `v1` to `v2`. If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl root: acls This implies the following inherited HTTP annotation: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\"; } ... }", "id": "Mixin", "properties": { "name": { @@ -1936,7 +2054,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" } }, @@ -2032,7 +2150,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" } }, @@ -2126,7 +2244,7 @@ "type": "string" }, "role": { - "description": "Required. Role to apply. Only allowlisted roles can be used at the specified granularity. The role must be one of the following: - 'roles/container.hostServiceAgentUser' applied on the shared VPC host project - 'roles/compute.securityAdmin' applied on the shared VPC host project", + "description": "Required. Role to apply. Only allowlisted roles can be used at the specified granularity. The role must be one of the following: - 'roles/container.hostServiceAgentUser' applied on the shared VPC host project - 'roles/compute.securityAdmin' applied on the shared VPC host project - 'roles/compute.networkAdmin' applied on the shared VPC host project - 'roles/compute.xpnAdmin' applied on the shared VPC host project - 'roles/dns.admin' applied on the shared VPC host project", "type": "string" } }, @@ -2174,7 +2292,7 @@ "type": "array" }, "newIssueUri": { - "description": "Link to a place that API users can report issues. Example: https://issuetracker.google.com/issues/new?component=190865&template=1161103", + "description": "Link to a *public* URI where users can report issues. Example: https://issuetracker.google.com/issues/new?component=190865&template=1161103", "type": "string" }, "organization": { @@ -2184,16 +2302,30 @@ "CLOUD", "ADS", "PHOTOS", - "STREET_VIEW" + "STREET_VIEW", + "SHOPPING", + "GEO", + "GENERATIVE_AI" ], "enumDescriptions": [ "Not useful.", "Google Cloud Platform Org.", "Ads (Advertising) Org.", "Photos Org.", - "Street View Org." + "Street View Org.", + "Shopping Org.", + "Geo Org.", + "Generative AI - https://developers.generativeai.google" ], "type": "string" + }, + "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" @@ -2676,6 +2808,10 @@ "description": "A protocol buffer message type.", "id": "Type", "properties": { + "edition": { + "description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", + "type": "string" + }, "fields": { "description": "The list of fields.", "items": { @@ -2709,11 +2845,13 @@ "description": "The source syntax.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } @@ -2769,6 +2907,18 @@ } }, "type": "object" + }, + "VpcServiceControls": { + "description": "Response for the get VPC Service Controls request.", + "id": "VpcServiceControls", + "properties": { + "enabled": { + "description": "Output only. Indicates whether the VPC Service Controls are enabled or disabled for the connection. If the consumer called the EnableVpcServiceControls method, then this is true. If the consumer called DisableVpcServiceControls, then this is false. The default is false.", + "readOnly": true, + "type": "boolean" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/serviceusage/v1/serviceusage-api.json b/etc/api/serviceusage/v1/serviceusage-api.json index c5b8428f97..75dc8b1041 100644 --- a/etc/api/serviceusage/v1/serviceusage-api.json +++ b/etc/api/serviceusage/v1/serviceusage-api.json @@ -195,7 +195,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/operations", "httpMethod": "GET", "id": "serviceusage.operations.list", @@ -426,9 +426,33 @@ } } }, - "revision": "20230118", + "revision": "20240303", "rootUrl": "https://serviceusage.googleapis.com/", "schemas": { + "AddEnableRulesMetadata": { + "description": "Metadata for the `AddEnableRules` method.", + "id": "AddEnableRulesMetadata", + "properties": {}, + "type": "object" + }, + "AddEnableRulesResponse": { + "description": "The response message of `AddEnableRules` method.", + "id": "AddEnableRulesResponse", + "properties": { + "addedValues": { + "description": "The values added to the parent consumer policy.", + "items": { + "type": "string" + }, + "type": "array" + }, + "parent": { + "description": "The parent consumer policy. It can be `projects/12345/consumerPolicies/default`, or `folders/12345/consumerPolicies/default`, or `organizations/12345/consumerPolicies/default`.", + "type": "string" + } + }, + "type": "object" + }, "AdminQuotaPolicy": { "description": "Quota policy created by quota administrator.", "id": "AdminQuotaPolicy", @@ -441,7 +465,7 @@ "additionalProperties": { "type": "string" }, - "description": " If this map is nonempty, then this policy applies only to specific values for dimensions defined in the limit unit. For example, an policy on a limit with the unit `1/{project}/{region}` could contain an entry with the key `region` and the value `us-east-1`; the policy is only applied to quota consumed in that region. This map has the following restrictions: * If `region` appears as a key, its value must be a valid Cloud region. * If `zone` appears as a key, its value must be a valid Cloud zone. * Keys other than `region` or `zone` are not valid.", + "description": " If this map is nonempty, then this policy applies only to specific values for dimensions defined in the limit unit. For example, a policy on a limit with the unit `1/{project}/{region}` could contain an entry with the key `region` and the value `us-east-1`; the policy is only applied to quota consumed in that region. This map has the following restrictions: * If `region` appears as a key, its value must be a valid Cloud region. * If `zone` appears as a key, its value must be a valid Cloud zone. * Keys other than `region` or `zone` are not valid.", "type": "object" }, "metric": { @@ -501,11 +525,13 @@ "description": "The source syntax of the service.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" }, @@ -648,6 +674,7 @@ "type": "string" }, "minDeadline": { + "deprecated": true, "description": "Deprecated, do not use.", "format": "double", "type": "number" @@ -657,6 +684,13 @@ "format": "double", "type": "number" }, + "overridesByRequestProtocol": { + "additionalProperties": { + "$ref": "BackendRule" + }, + "description": "The map between request protocol and the backend address.", + "type": "object" + }, "pathTranslation": { "enum": [ "PATH_TRANSLATION_UNSPECIFIED", @@ -861,7 +895,7 @@ "description": "Settings for Ruby client libraries." }, "version": { - "description": "Version of the API to apply these settings to.", + "description": "Version of the API to apply these settings to. This is the full protobuf package for the API, ending in the version element. Examples: \"google.cloud.speech.v1\" and \"google.spanner.admin.database.v1\".", "type": "string" } }, @@ -889,12 +923,48 @@ "type": "array" }, "referenceDocsUri": { + "deprecated": true, "description": "Link to automatically generated reference documentation. Example: https://cloud.google.com/nodejs/docs/reference/asset/latest", "type": "string" } }, "type": "object" }, + "ConsumerPolicy": { + "description": "Consumer Policy is a set of rules that define what services or service groups can be used for a cloud resource hierarchy.", + "id": "ConsumerPolicy", + "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Annotations is an unstructured key-value map stored with a policy that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. [AIP-128](https://google.aip.dev/128#annotations)", + "type": "object" + }, + "enableRules": { + "description": "Enable rules define usable services and service groups.", + "items": { + "$ref": "EnableRule" + }, + "type": "array" + }, + "etag": { + "description": "An opaque tag indicating the current version of the policy, used for concurrency control.", + "type": "string" + }, + "name": { + "description": "Output only. The resource name of the policy. We only allow consumer policy name as `default` for now: `projects/12345/consumerPolicies/default`, `folders/12345/consumerPolicies/default`, `organizations/12345/consumerPolicies/default`.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "The last-modified time.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "Context": { "description": "`Context` defines which contexts an API requests. Example: context: rules: - selector: \"*\" requested: - google.rpc.context.ProjectContext - google.rpc.context.OriginContext The above specifies that all methods in the API request `google.rpc.context.ProjectContext` and `google.rpc.context.OriginContext`. Available context types are defined in package `google.rpc.context`. This also provides mechanism to allowlist any protobuf message extension that can be sent in grpc metadata using \u201cx-goog-ext--bin\u201d and \u201cx-goog-ext--jspb\u201d format. For example, list any service specific protobuf types that can appear in grpc metadata as follows in your yaml file: Example: context: rules: - selector: \"google.example.library.v1.LibraryService.CreateBook\" allowed_request_extensions: - google.foo.v1.NewExtension allowed_response_extensions: - google.foo.v1.NewExtension You can also specify extension ID instead of fully qualified extension name here.", "id": "Context", @@ -955,6 +1025,13 @@ "environment": { "description": "The service controller environment to use. If empty, no control plane feature (like quota and billing) will be enabled. The recommended value for most services is servicecontrol.googleapis.com", "type": "string" + }, + "methodPolicies": { + "description": "Defines policies applying to the API methods of the service.", + "items": { + "$ref": "MethodPolicy" + }, + "type": "array" } }, "type": "object" @@ -1070,7 +1147,7 @@ "type": "object" }, "Documentation": { - "description": "`Documentation` provides the information for describing a service. Example: documentation: summary: > The Google Calendar API gives access to most calendar features. pages: - name: Overview content: (== include google/foo/overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==) subpages; - name: Java content: (== include google/foo/tutorial_java.md ==) rules: - selector: google.calendar.Calendar.Get description: > ... - selector: google.calendar.Calendar.Put description: > ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation.", + "description": "`Documentation` provides the information for describing a service. Example: documentation: summary: > The Google Calendar API gives access to most calendar features. pages: - name: Overview content: (== include google/foo/overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==) subpages: - name: Java content: (== include google/foo/tutorial_java.md ==) rules: - selector: google.calendar.Calendar.Get description: > ... - selector: google.calendar.Calendar.Put description: > ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation.", "id": "Documentation", "properties": { "documentationRootUrl": { @@ -1095,6 +1172,13 @@ }, "type": "array" }, + "sectionOverrides": { + "description": "Specifies section and content to override boilerplate content provided by go/api-docgen. Currently overrides following sections: 1. rest.service.client_libraries", + "items": { + "$ref": "Page" + }, + "type": "array" + }, "serviceRootUrl": { "description": "Specifies the service root url if the default one (the service name from the yaml file) is not suitable. This can be seen in any fully specified service urls as well as sections that show a base that other urls are relative to.", "type": "string" @@ -1118,6 +1202,10 @@ "description": "Description of the selected proto element (e.g. a message, a method, a 'service' definition, or a field). Defaults to leading & trailing comments taken from the proto source definition of the proto element.", "type": "string" }, + "disableReplacementWords": { + "description": "String of comma or space separated case-sensitive words for which method/field name replacement will be disabled by go/api-docgen.", + "type": "string" + }, "selector": { "description": "The selector is a comma-separated list of patterns for any element such as a method, a field, an enum value. Each pattern is a qualified name of the element which may end in \"*\", indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. \"foo.*\" is ok, but not \"foo.b*\" or \"foo.*.bar\". A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern \"*\" is used.", "type": "string" @@ -1132,6 +1220,41 @@ "common": { "$ref": "CommonLanguageSettings", "description": "Some settings." + }, + "forcedNamespaceAliases": { + "description": "Namespaces which must be aliased in snippets due to a known (but non-generator-predictable) naming collision", + "items": { + "type": "string" + }, + "type": "array" + }, + "handwrittenSignatures": { + "description": "Method signatures (in the form \"service.method(signature)\") which are provided separately, so shouldn't be generated. Snippets *calling* these methods are still generated, however.", + "items": { + "type": "string" + }, + "type": "array" + }, + "ignoredResources": { + "description": "List of full resource types to ignore during generation. This is typically used for API-specific Location resources, which should be handled by the generator as if they were actually the common Location resources. Example entry: \"documentai.googleapis.com/Location\"", + "items": { + "type": "string" + }, + "type": "array" + }, + "renamedResources": { + "additionalProperties": { + "type": "string" + }, + "description": "Map from full resource types to the effective short name for the resource. This is used when otherwise resource named from different services would cause naming collisions. Example entry: \"datalabeling.googleapis.com/Dataset\": \"DataLabelingDataset\"", + "type": "object" + }, + "renamedServices": { + "additionalProperties": { + "type": "string" + }, + "description": "Map from original service names to renamed versions. This is used when the default generated types would cause a naming conflict. (Neither name is fully-qualified.) Example: Subscriber to SubscriberServiceApi.", + "type": "object" } }, "type": "object" @@ -1157,6 +1280,52 @@ }, "type": "object" }, + "EnableRule": { + "description": "The consumer policy rule that defines usable services and service groups.", + "id": "EnableRule", + "properties": { + "enableType": { + "description": "Client and resource project enable type.", + "enum": [ + "ENABLE_TYPE_UNSPECIFIED", + "CLIENT", + "RESOURCE", + "V1_COMPATIBLE" + ], + "enumDescriptions": [ + "Unspecified enable type, which means enabled as both client and resource project.", + "Enable all clients under the CRM node specified by `ConsumerPolicy.name` to use the listed services. A client can be an API key, an OAuth client, or a service account.", + "Enable resources in the list services to be created and used under the CRM node specified by the `ConsumerPolicy.name`.", + "Activation made by Service Usage v1 API. This will be how consumers differentiate between policy changes made by v1 and v2 clients and understand what is actually possible based on those different policies." + ], + "type": "string" + }, + "groups": { + "deprecated": true, + "description": "DEPRECATED: Please use field `values`. Service group should have prefix `groups/`. The names of the service groups that are enabled (Not Implemented). Example: `groups/googleServices`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "services": { + "deprecated": true, + "description": "DEPRECATED: Please use field `values`. Service should have prefix `services/`. The names of the services that are enabled. Example: `storage.googleapis.com`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "values": { + "description": "The names of the services or service groups that are enabled. Example: `services/storage.googleapis.com`, `groups/googleServices`, `groups/allServices`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "EnableServiceRequest": { "description": "Request message for the `EnableService` method.", "id": "EnableServiceRequest", @@ -1179,6 +1348,7 @@ "id": "Endpoint", "properties": { "aliases": { + "deprecated": true, "description": "Unimplemented. Dot not use. DEPRECATED: This field is no longer supported. Instead of using aliases, please specify multiple google.api.Endpoint for each of the intended aliases. Additional names that this endpoint will be hosted on.", "items": { "type": "string" @@ -1204,6 +1374,10 @@ "description": "Enum type definition.", "id": "Enum", "properties": { + "edition": { + "description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", + "type": "string" + }, "enumvalue": { "description": "Enum value definitions.", "items": { @@ -1230,11 +1404,13 @@ "description": "The source syntax.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } @@ -1370,6 +1546,25 @@ }, "type": "object" }, + "FieldPolicy": { + "description": "Google API Policy Annotation This message defines a simple API policy annotation that can be used to annotate API request and response message fields with applicable policies. One field may have multiple applicable policies that must all be satisfied before a request can be processed. This policy annotation is used to generate the overall policy that will be used for automatic runtime policy enforcement and documentation generation.", + "id": "FieldPolicy", + "properties": { + "resourcePermission": { + "description": "Specifies the required permission(s) for the resource referred to by the field. It requires the field contains a valid resource reference, and the request must pass the permission checks to proceed. For example, \"resourcemanager.projects.get\".", + "type": "string" + }, + "resourceType": { + "description": "Specifies the resource type for the resource referred to by the field.", + "type": "string" + }, + "selector": { + "description": "Selects one or more request or response message fields to apply this `FieldPolicy`. When a `FieldPolicy` is used in proto annotation, the selector must be left as empty. The service config generator will automatically fill the correct value. When a `FieldPolicy` is used in service config, the selector must be a comma-separated string with valid request or response field paths, such as \"foo.bar\" or \"foo.bar,foo.baz\".", + "type": "string" + } + }, + "type": "object" + }, "GetServiceIdentityMetadata": { "description": "Metadata for the `GetServiceIdentity` method.", "id": "GetServiceIdentityMetadata", @@ -1695,6 +1890,69 @@ }, "type": "object" }, + "GoogleApiServiceusageV2alphaConsumerPolicy": { + "description": "Consumer Policy is a set of rules that define what services or service groups can be used for a cloud resource hierarchy.", + "id": "GoogleApiServiceusageV2alphaConsumerPolicy", + "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Annotations is an unstructured key-value map stored with a policy that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. [AIP-128](https://google.aip.dev/128#annotations)", + "type": "object" + }, + "createTime": { + "description": "Output only. The time the policy was created. For singleton policies, this is the first touch of the policy.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "enableRules": { + "description": "Enable rules define usable services, groups, and categories. There can currently be at most one `EnableRule`. This restriction will be lifted in later releases.", + "items": { + "$ref": "GoogleApiServiceusageV2alphaEnableRule" + }, + "type": "array" + }, + "etag": { + "description": "Output only. An opaque tag indicating the current version of the policy, used for concurrency control.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. The resource name of the policy. Only the `default` policy is supported: `projects/12345/consumerPolicies/default`, `folders/12345/consumerPolicies/default`, `organizations/12345/consumerPolicies/default`.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The time the policy was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleApiServiceusageV2alphaEnableRule": { + "description": "The consumer policy rule that defines enabled services, groups, and categories.", + "id": "GoogleApiServiceusageV2alphaEnableRule", + "properties": { + "services": { + "description": "The names of the services that are enabled. Example: `services/storage.googleapis.com`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleApiServiceusageV2alphaUpdateConsumerPolicyMetadata": { + "description": "Metadata for the `UpdateConsumerPolicy` method.", + "id": "GoogleApiServiceusageV2alphaUpdateConsumerPolicyMetadata", + "properties": {}, + "type": "object" + }, "Http": { "description": "Defines the HTTP configuration for an API service. It contains a list of HttpRule, each specifying the mapping of an RPC method to one or more HTTP REST API methods.", "id": "Http", @@ -2060,24 +2318,51 @@ "description": "The source syntax of this method.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } }, "type": "object" }, + "MethodPolicy": { + "description": "Defines policies applying to an RPC method.", + "id": "MethodPolicy", + "properties": { + "requestPolicies": { + "description": "Policies that are applicable to the request message.", + "items": { + "$ref": "FieldPolicy" + }, + "type": "array" + }, + "selector": { + "description": "Selects a method to which these policies should be enforced, for example, \"google.pubsub.v1.Subscriber.CreateSubscription\". Refer to selector for syntax details. NOTE: This field must not be set in the proto annotation. It will be automatically filled by the service config compiler .", + "type": "string" + } + }, + "type": "object" + }, "MethodSettings": { "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_behavior: - selector: CreateAdDomain 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" + "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" }, "selector": { "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options.", @@ -2203,6 +2488,7 @@ "type": "string" }, "launchStage": { + "deprecated": true, "description": "Deprecated. Must use the MetricDescriptor.launch_stage instead.", "enum": [ "LAUNCH_STAGE_UNSPECIFIED", @@ -2254,7 +2540,7 @@ "type": "object" }, "Mixin": { - "description": "Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows: - If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method. - Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited. - If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the root path if specified. Example of a simple mixin: package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v1/{resource=**}:getAcl\"; } } package google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = \"/v2/{resource=**}\"; } } Example of a mixin configuration: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inheriting documentation and annotations as follows: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/{resource=**}:getAcl\"; } ... } Note how the version in the path pattern changed from `v1` to `v2`. If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl root: acls This implies the following inherited HTTP annotation: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\"; } ... }", + "description": "Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows: - If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method. - Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited. - If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the root path if specified. Example of a simple mixin: package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v1/{resource=**}:getAcl\"; } } package google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = \"/v2/{resource=**}\"; } } Example of a mixin configuration: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inherting documentation and annotations as follows: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/{resource=**}:getAcl\"; } ... } Note how the version in the path pattern changed from `v1` to `v2`. If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl root: acls This implies the following inherited HTTP annotation: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\"; } ... }", "id": "Mixin", "properties": { "name": { @@ -2316,7 +2602,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" } }, @@ -2412,7 +2698,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" } }, @@ -2526,7 +2812,7 @@ "type": "array" }, "newIssueUri": { - "description": "Link to a place that API users can report issues. Example: https://issuetracker.google.com/issues/new?component=190865&template=1161103", + "description": "Link to a *public* URI where users can report issues. Example: https://issuetracker.google.com/issues/new?component=190865&template=1161103", "type": "string" }, "organization": { @@ -2536,16 +2822,30 @@ "CLOUD", "ADS", "PHOTOS", - "STREET_VIEW" + "STREET_VIEW", + "SHOPPING", + "GEO", + "GENERATIVE_AI" ], "enumDescriptions": [ "Not useful.", "Google Cloud Platform Org.", "Ads (Advertising) Org.", "Photos Org.", - "Street View Org." + "Street View Org.", + "Shopping Org.", + "Geo Org.", + "Generative AI - https://developers.generativeai.google" ], "type": "string" + }, + "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" @@ -2671,6 +2971,31 @@ }, "type": "object" }, + "RemoveEnableRulesMetadata": { + "description": "Metadata for the `RemoveEnableRules` method.", + "id": "RemoveEnableRulesMetadata", + "properties": {}, + "type": "object" + }, + "RemoveEnableRulesResponse": { + "description": "The response message of `RemoveEnableRules` method.", + "id": "RemoveEnableRulesResponse", + "properties": { + "parent": { + "description": "The parent consumer policy. It can be `projects/12345/consumerPolicies/default`, or `folders/12345/consumerPolicies/default`, or `organizations/12345/consumerPolicies/default`.", + "type": "string" + }, + "removedValues": { + "deprecated": true, + "description": "The values removed from the parent consumer policy.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "RubySettings": { "description": "Settings for Ruby client libraries.", "id": "RubySettings", @@ -2808,6 +3133,10 @@ "description": "A protocol buffer message type.", "id": "Type", "properties": { + "edition": { + "description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", + "type": "string" + }, "fields": { "description": "The list of fields.", "items": { @@ -2841,11 +3170,13 @@ "description": "The source syntax.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } @@ -2858,6 +3189,12 @@ "properties": {}, "type": "object" }, + "UpdateConsumerPolicyMetadata": { + "description": "Metadata for the `UpdateConsumerPolicy` method.", + "id": "UpdateConsumerPolicyMetadata", + "properties": {}, + "type": "object" + }, "Usage": { "description": "Configuration controlling usage of a service.", "id": "Usage", diff --git a/etc/api/serviceusage/v1beta1/serviceusage-api.json b/etc/api/serviceusage/v1beta1/serviceusage-api.json index ddb4085d6d..4d284a41b2 100644 --- a/etc/api/serviceusage/v1beta1/serviceusage-api.json +++ b/etc/api/serviceusage/v1beta1/serviceusage-api.json @@ -140,7 +140,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/operations", "httpMethod": "GET", "id": "serviceusage.operations.list", @@ -182,6 +182,7 @@ "services": { "methods": { "batchEnable": { + "deprecated": true, "description": "Enables multiple services on a project. The operation is atomic: if enabling any service fails, then the entire batch fails, and no state changes occur. Operation response type: `google.protobuf.Empty`", "flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services:batchEnable", "httpMethod": "POST", @@ -211,6 +212,7 @@ ] }, "disable": { + "deprecated": true, "description": "Disables a service so that it can no longer be used with a project. This prevents unintended usage that may cause unexpected billing charges or security leaks. It is not valid to call the disable method on a service that is not currently enabled. Callers will receive a `FAILED_PRECONDITION` status if the target service is not currently enabled. Operation response type: `google.protobuf.Empty`", "flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}:disable", "httpMethod": "POST", @@ -240,6 +242,7 @@ ] }, "enable": { + "deprecated": true, "description": "Enables a service so that it can be used with a project. Operation response type: `google.protobuf.Empty`", "flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}:enable", "httpMethod": "POST", @@ -278,7 +281,7 @@ ], "parameters": { "parent": { - "description": "Name of the consumer and service to generate an identity for. The `GenerateServiceIdentity` methods currently only support projects. An example name would be: `projects/123/services/example.googleapis.com` where `123` is the project number.", + "description": "Name of the consumer and service to generate an identity for. The `GenerateServiceIdentity` methods currently support projects, folders, organizations. Example parents would be: `projects/123/services/example.googleapis.com` `folders/123/services/example.googleapis.com` `organizations/123/services/example.googleapis.com`", "location": "path", "pattern": "^[^/]+/[^/]+/services/[^/]+$", "required": true, @@ -295,6 +298,7 @@ ] }, "get": { + "deprecated": true, "description": "Returns the service configuration and enabled state for a given service.", "flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services/{servicesId}", "httpMethod": "GET", @@ -321,6 +325,7 @@ ] }, "list": { + "deprecated": true, "description": "Lists all services available to the specified project, and the current state of those services with respect to the project. The list includes all public services, all services for which the calling user has the `servicemanagement.services.bind` permission, and all services that have already been enabled on the project. The list can be filtered to only include services in a specific state, for example to only include services enabled on the project.", "flatPath": "v1beta1/{v1beta1Id}/{v1beta1Id1}/services", "httpMethod": "GET", @@ -959,9 +964,33 @@ } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://serviceusage.googleapis.com/", "schemas": { + "AddEnableRulesMetadata": { + "description": "Metadata for the `AddEnableRules` method.", + "id": "AddEnableRulesMetadata", + "properties": {}, + "type": "object" + }, + "AddEnableRulesResponse": { + "description": "The response message of `AddEnableRules` method.", + "id": "AddEnableRulesResponse", + "properties": { + "addedValues": { + "description": "The values added to the parent consumer policy.", + "items": { + "type": "string" + }, + "type": "array" + }, + "parent": { + "description": "The parent consumer policy. It can be `projects/12345/consumerPolicies/default`, or `folders/12345/consumerPolicies/default`, or `organizations/12345/consumerPolicies/default`.", + "type": "string" + } + }, + "type": "object" + }, "AdminQuotaPolicy": { "description": "Quota policy created by quota administrator.", "id": "AdminQuotaPolicy", @@ -974,7 +1003,7 @@ "additionalProperties": { "type": "string" }, - "description": " If this map is nonempty, then this policy applies only to specific values for dimensions defined in the limit unit. For example, an policy on a limit with the unit `1/{project}/{region}` could contain an entry with the key `region` and the value `us-east-1`; the policy is only applied to quota consumed in that region. This map has the following restrictions: * If `region` appears as a key, its value must be a valid Cloud region. * If `zone` appears as a key, its value must be a valid Cloud zone. * Keys other than `region` or `zone` are not valid.", + "description": " If this map is nonempty, then this policy applies only to specific values for dimensions defined in the limit unit. For example, a policy on a limit with the unit `1/{project}/{region}` could contain an entry with the key `region` and the value `us-east-1`; the policy is only applied to quota consumed in that region. This map has the following restrictions: * If `region` appears as a key, its value must be a valid Cloud region. * If `zone` appears as a key, its value must be a valid Cloud zone. * Keys other than `region` or `zone` are not valid.", "type": "object" }, "metric": { @@ -1034,11 +1063,13 @@ "description": "The source syntax of the service.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" }, @@ -1181,6 +1212,7 @@ "type": "string" }, "minDeadline": { + "deprecated": true, "description": "Deprecated, do not use.", "format": "double", "type": "number" @@ -1190,6 +1222,13 @@ "format": "double", "type": "number" }, + "overridesByRequestProtocol": { + "additionalProperties": { + "$ref": "BackendRule" + }, + "description": "The map between request protocol and the backend address.", + "type": "object" + }, "pathTranslation": { "enum": [ "PATH_TRANSLATION_UNSPECIFIED", @@ -1374,7 +1413,7 @@ "description": "Settings for Ruby client libraries." }, "version": { - "description": "Version of the API to apply these settings to.", + "description": "Version of the API to apply these settings to. This is the full protobuf package for the API, ending in the version element. Examples: \"google.cloud.speech.v1\" and \"google.spanner.admin.database.v1\".", "type": "string" } }, @@ -1402,12 +1441,48 @@ "type": "array" }, "referenceDocsUri": { + "deprecated": true, "description": "Link to automatically generated reference documentation. Example: https://cloud.google.com/nodejs/docs/reference/asset/latest", "type": "string" } }, "type": "object" }, + "ConsumerPolicy": { + "description": "Consumer Policy is a set of rules that define what services or service groups can be used for a cloud resource hierarchy.", + "id": "ConsumerPolicy", + "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Annotations is an unstructured key-value map stored with a policy that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. [AIP-128](https://google.aip.dev/128#annotations)", + "type": "object" + }, + "enableRules": { + "description": "Enable rules define usable services and service groups.", + "items": { + "$ref": "EnableRule" + }, + "type": "array" + }, + "etag": { + "description": "An opaque tag indicating the current version of the policy, used for concurrency control.", + "type": "string" + }, + "name": { + "description": "Output only. The resource name of the policy. We only allow consumer policy name as `default` for now: `projects/12345/consumerPolicies/default`, `folders/12345/consumerPolicies/default`, `organizations/12345/consumerPolicies/default`.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "The last-modified time.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "ConsumerQuotaLimit": { "description": "Consumer quota settings for a quota limit.", "id": "ConsumerQuotaLimit", @@ -1546,6 +1621,13 @@ "environment": { "description": "The service controller environment to use. If empty, no control plane feature (like quota and billing) will be enabled. The recommended value for most services is servicecontrol.googleapis.com", "type": "string" + }, + "methodPolicies": { + "description": "Defines policies applying to the API methods of the service.", + "items": { + "$ref": "MethodPolicy" + }, + "type": "array" } }, "type": "object" @@ -1642,7 +1724,7 @@ "type": "object" }, "Documentation": { - "description": "`Documentation` provides the information for describing a service. Example: documentation: summary: > The Google Calendar API gives access to most calendar features. pages: - name: Overview content: (== include google/foo/overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==) subpages; - name: Java content: (== include google/foo/tutorial_java.md ==) rules: - selector: google.calendar.Calendar.Get description: > ... - selector: google.calendar.Calendar.Put description: > ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation.", + "description": "`Documentation` provides the information for describing a service. Example: documentation: summary: > The Google Calendar API gives access to most calendar features. pages: - name: Overview content: (== include google/foo/overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==) subpages: - name: Java content: (== include google/foo/tutorial_java.md ==) rules: - selector: google.calendar.Calendar.Get description: > ... - selector: google.calendar.Calendar.Put description: > ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation.", "id": "Documentation", "properties": { "documentationRootUrl": { @@ -1667,6 +1749,13 @@ }, "type": "array" }, + "sectionOverrides": { + "description": "Specifies section and content to override boilerplate content provided by go/api-docgen. Currently overrides following sections: 1. rest.service.client_libraries", + "items": { + "$ref": "Page" + }, + "type": "array" + }, "serviceRootUrl": { "description": "Specifies the service root url if the default one (the service name from the yaml file) is not suitable. This can be seen in any fully specified service urls as well as sections that show a base that other urls are relative to.", "type": "string" @@ -1690,6 +1779,10 @@ "description": "Description of the selected proto element (e.g. a message, a method, a 'service' definition, or a field). Defaults to leading & trailing comments taken from the proto source definition of the proto element.", "type": "string" }, + "disableReplacementWords": { + "description": "String of comma or space separated case-sensitive words for which method/field name replacement will be disabled by go/api-docgen.", + "type": "string" + }, "selector": { "description": "The selector is a comma-separated list of patterns for any element such as a method, a field, an enum value. Each pattern is a qualified name of the element which may end in \"*\", indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. \"foo.*\" is ok, but not \"foo.b*\" or \"foo.*.bar\". A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern \"*\" is used.", "type": "string" @@ -1704,6 +1797,41 @@ "common": { "$ref": "CommonLanguageSettings", "description": "Some settings." + }, + "forcedNamespaceAliases": { + "description": "Namespaces which must be aliased in snippets due to a known (but non-generator-predictable) naming collision", + "items": { + "type": "string" + }, + "type": "array" + }, + "handwrittenSignatures": { + "description": "Method signatures (in the form \"service.method(signature)\") which are provided separately, so shouldn't be generated. Snippets *calling* these methods are still generated, however.", + "items": { + "type": "string" + }, + "type": "array" + }, + "ignoredResources": { + "description": "List of full resource types to ignore during generation. This is typically used for API-specific Location resources, which should be handled by the generator as if they were actually the common Location resources. Example entry: \"documentai.googleapis.com/Location\"", + "items": { + "type": "string" + }, + "type": "array" + }, + "renamedResources": { + "additionalProperties": { + "type": "string" + }, + "description": "Map from full resource types to the effective short name for the resource. This is used when otherwise resource named from different services would cause naming collisions. Example entry: \"datalabeling.googleapis.com/Dataset\": \"DataLabelingDataset\"", + "type": "object" + }, + "renamedServices": { + "additionalProperties": { + "type": "string" + }, + "description": "Map from original service names to renamed versions. This is used when the default generated types would cause a naming conflict. (Neither name is fully-qualified.) Example: Subscriber to SubscriberServiceApi.", + "type": "object" } }, "type": "object" @@ -1729,6 +1857,52 @@ }, "type": "object" }, + "EnableRule": { + "description": "The consumer policy rule that defines usable services and service groups.", + "id": "EnableRule", + "properties": { + "enableType": { + "description": "Client and resource project enable type.", + "enum": [ + "ENABLE_TYPE_UNSPECIFIED", + "CLIENT", + "RESOURCE", + "V1_COMPATIBLE" + ], + "enumDescriptions": [ + "Unspecified enable type, which means enabled as both client and resource project.", + "Enable all clients under the CRM node specified by `ConsumerPolicy.name` to use the listed services. A client can be an API key, an OAuth client, or a service account.", + "Enable resources in the list services to be created and used under the CRM node specified by the `ConsumerPolicy.name`.", + "Activation made by Service Usage v1 API. This will be how consumers differentiate between policy changes made by v1 and v2 clients and understand what is actually possible based on those different policies." + ], + "type": "string" + }, + "groups": { + "deprecated": true, + "description": "DEPRECATED: Please use field `values`. Service group should have prefix `groups/`. The names of the service groups that are enabled (Not Implemented). Example: `groups/googleServices`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "services": { + "deprecated": true, + "description": "DEPRECATED: Please use field `values`. Service should have prefix `services/`. The names of the services that are enabled. Example: `storage.googleapis.com`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "values": { + "description": "The names of the services or service groups that are enabled. Example: `services/storage.googleapis.com`, `groups/googleServices`, `groups/allServices`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "EnableServiceRequest": { "description": "Request message for the `EnableService` method.", "id": "EnableServiceRequest", @@ -1751,6 +1925,7 @@ "id": "Endpoint", "properties": { "aliases": { + "deprecated": true, "description": "Unimplemented. Dot not use. DEPRECATED: This field is no longer supported. Instead of using aliases, please specify multiple google.api.Endpoint for each of the intended aliases. Additional names that this endpoint will be hosted on.", "items": { "type": "string" @@ -1776,6 +1951,10 @@ "description": "Enum type definition.", "id": "Enum", "properties": { + "edition": { + "description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", + "type": "string" + }, "enumvalue": { "description": "Enum value definitions.", "items": { @@ -1802,11 +1981,13 @@ "description": "The source syntax.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } @@ -1942,6 +2123,25 @@ }, "type": "object" }, + "FieldPolicy": { + "description": "Google API Policy Annotation This message defines a simple API policy annotation that can be used to annotate API request and response message fields with applicable policies. One field may have multiple applicable policies that must all be satisfied before a request can be processed. This policy annotation is used to generate the overall policy that will be used for automatic runtime policy enforcement and documentation generation.", + "id": "FieldPolicy", + "properties": { + "resourcePermission": { + "description": "Specifies the required permission(s) for the resource referred to by the field. It requires the field contains a valid resource reference, and the request must pass the permission checks to proceed. For example, \"resourcemanager.projects.get\".", + "type": "string" + }, + "resourceType": { + "description": "Specifies the resource type for the resource referred to by the field.", + "type": "string" + }, + "selector": { + "description": "Selects one or more request or response message fields to apply this `FieldPolicy`. When a `FieldPolicy` is used in proto annotation, the selector must be left as empty. The service config generator will automatically fill the correct value. When a `FieldPolicy` is used in service config, the selector must be a comma-separated string with valid request or response field paths, such as \"foo.bar\" or \"foo.bar,foo.baz\".", + "type": "string" + } + }, + "type": "object" + }, "GetServiceIdentityMetadata": { "description": "Metadata for the `GetServiceIdentity` method.", "id": "GetServiceIdentityMetadata", @@ -2267,6 +2467,69 @@ }, "type": "object" }, + "GoogleApiServiceusageV2alphaConsumerPolicy": { + "description": "Consumer Policy is a set of rules that define what services or service groups can be used for a cloud resource hierarchy.", + "id": "GoogleApiServiceusageV2alphaConsumerPolicy", + "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Annotations is an unstructured key-value map stored with a policy that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. [AIP-128](https://google.aip.dev/128#annotations)", + "type": "object" + }, + "createTime": { + "description": "Output only. The time the policy was created. For singleton policies, this is the first touch of the policy.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "enableRules": { + "description": "Enable rules define usable services, groups, and categories. There can currently be at most one `EnableRule`. This restriction will be lifted in later releases.", + "items": { + "$ref": "GoogleApiServiceusageV2alphaEnableRule" + }, + "type": "array" + }, + "etag": { + "description": "Output only. An opaque tag indicating the current version of the policy, used for concurrency control.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. The resource name of the policy. Only the `default` policy is supported: `projects/12345/consumerPolicies/default`, `folders/12345/consumerPolicies/default`, `organizations/12345/consumerPolicies/default`.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The time the policy was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleApiServiceusageV2alphaEnableRule": { + "description": "The consumer policy rule that defines enabled services, groups, and categories.", + "id": "GoogleApiServiceusageV2alphaEnableRule", + "properties": { + "services": { + "description": "The names of the services that are enabled. Example: `services/storage.googleapis.com`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleApiServiceusageV2alphaUpdateConsumerPolicyMetadata": { + "description": "Metadata for the `UpdateConsumerPolicy` method.", + "id": "GoogleApiServiceusageV2alphaUpdateConsumerPolicyMetadata", + "properties": {}, + "type": "object" + }, "Http": { "description": "Defines the HTTP configuration for an API service. It contains a list of HttpRule, each specifying the mapping of an RPC method to one or more HTTP REST API methods.", "id": "Http", @@ -2750,24 +3013,51 @@ "description": "The source syntax of this method.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } }, "type": "object" }, + "MethodPolicy": { + "description": "Defines policies applying to an RPC method.", + "id": "MethodPolicy", + "properties": { + "requestPolicies": { + "description": "Policies that are applicable to the request message.", + "items": { + "$ref": "FieldPolicy" + }, + "type": "array" + }, + "selector": { + "description": "Selects a method to which these policies should be enforced, for example, \"google.pubsub.v1.Subscriber.CreateSubscription\". Refer to selector for syntax details. NOTE: This field must not be set in the proto annotation. It will be automatically filled by the service config compiler .", + "type": "string" + } + }, + "type": "object" + }, "MethodSettings": { "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_behavior: - selector: CreateAdDomain 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" + "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" }, "selector": { "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options.", @@ -2893,6 +3183,7 @@ "type": "string" }, "launchStage": { + "deprecated": true, "description": "Deprecated. Must use the MetricDescriptor.launch_stage instead.", "enum": [ "LAUNCH_STAGE_UNSPECIFIED", @@ -2944,7 +3235,7 @@ "type": "object" }, "Mixin": { - "description": "Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows: - If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method. - Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited. - If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the root path if specified. Example of a simple mixin: package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v1/{resource=**}:getAcl\"; } } package google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = \"/v2/{resource=**}\"; } } Example of a mixin configuration: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inheriting documentation and annotations as follows: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/{resource=**}:getAcl\"; } ... } Note how the version in the path pattern changed from `v1` to `v2`. If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl root: acls This implies the following inherited HTTP annotation: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\"; } ... }", + "description": "Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows: - If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method. - Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited. - If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the root path if specified. Example of a simple mixin: package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v1/{resource=**}:getAcl\"; } } package google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = \"/v2/{resource=**}\"; } } Example of a mixin configuration: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inherting documentation and annotations as follows: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/{resource=**}:getAcl\"; } ... } Note how the version in the path pattern changed from `v1` to `v2`. If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl root: acls This implies the following inherited HTTP annotation: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\"; } ... }", "id": "Mixin", "properties": { "name": { @@ -3006,7 +3297,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" } }, @@ -3102,7 +3393,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" } }, @@ -3188,6 +3479,41 @@ }, "type": "object" }, + "ProducerQuotaPolicy": { + "description": "Quota policy created by service producer.", + "id": "ProducerQuotaPolicy", + "properties": { + "container": { + "description": "The cloud resource container at which the quota policy is created. The format is `{container_type}/{container_number}`", + "type": "string" + }, + "dimensions": { + "additionalProperties": { + "type": "string" + }, + "description": " If this map is nonempty, then this policy applies only to specific values for dimensions defined in the limit unit. For example, a policy on a limit with the unit `1/{project}/{region}` could contain an entry with the key `region` and the value `us-east-1`; the policy is only applied to quota consumed in that region. This map has the following restrictions: * Keys that are not defined in the limit's unit are not valid keys. Any string appearing in {brackets} in the unit (besides {project} or {user}) is a defined key. * `project` is not a valid key; the project is already specified in the parent resource name. * `user` is not a valid key; the API does not support quota policies that apply only to a specific user. * If `region` appears as a key, its value must be a valid Cloud region. * If `zone` appears as a key, its value must be a valid Cloud zone. * If any valid key other than `region` or `zone` appears in the map, then all valid keys other than `region` or `zone` must also appear in the map.", + "type": "object" + }, + "metric": { + "description": "The name of the metric to which this policy applies. An example name would be: `compute.googleapis.com/cpus`", + "type": "string" + }, + "name": { + "description": "The resource name of the policy. This name is generated by the server when the policy is created. Example names would be: `organizations/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/producerQuotaPolicies/4a3f2c1d`", + "type": "string" + }, + "policyValue": { + "description": "The quota policy value. Can be any nonnegative integer, or -1 (unlimited quota).", + "format": "int64", + "type": "string" + }, + "unit": { + "description": "The limit unit of the limit to which this policy applies. An example unit would be: `1/{project}/{region}` Note that `{project}` and `{region}` are not placeholders in this example; the literal characters `{` and `}` occur in the string.", + "type": "string" + } + }, + "type": "object" + }, "Publishing": { "description": "This message configures the settings for publishing [Google Cloud Client libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) generated from the service config.", "id": "Publishing", @@ -3230,7 +3556,7 @@ "type": "array" }, "newIssueUri": { - "description": "Link to a place that API users can report issues. Example: https://issuetracker.google.com/issues/new?component=190865&template=1161103", + "description": "Link to a *public* URI where users can report issues. Example: https://issuetracker.google.com/issues/new?component=190865&template=1161103", "type": "string" }, "organization": { @@ -3240,16 +3566,30 @@ "CLOUD", "ADS", "PHOTOS", - "STREET_VIEW" + "STREET_VIEW", + "SHOPPING", + "GEO", + "GENERATIVE_AI" ], "enumDescriptions": [ "Not useful.", "Google Cloud Platform Org.", "Ads (Advertising) Org.", "Photos Org.", - "Street View Org." + "Street View Org.", + "Shopping Org.", + "Geo Org.", + "Generative AI - https://developers.generativeai.google" ], "type": "string" + }, + "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" @@ -3318,6 +3658,14 @@ "producerOverride": { "$ref": "QuotaOverride", "description": "Producer override on this quota bucket." + }, + "producerQuotaPolicy": { + "$ref": "ProducerQuotaPolicy", + "description": "Producer policy inherited from the closet ancestor of the current consumer." + }, + "rolloutInfo": { + "$ref": "RolloutInfo", + "description": "Rollout information of this quota bucket. This field is present only if the effective limit will change due to the ongoing rollout of the service config." } }, "type": "object" @@ -3411,6 +3759,42 @@ }, "type": "object" }, + "RemoveEnableRulesMetadata": { + "description": "Metadata for the `RemoveEnableRules` method.", + "id": "RemoveEnableRulesMetadata", + "properties": {}, + "type": "object" + }, + "RemoveEnableRulesResponse": { + "description": "The response message of `RemoveEnableRules` method.", + "id": "RemoveEnableRulesResponse", + "properties": { + "parent": { + "description": "The parent consumer policy. It can be `projects/12345/consumerPolicies/default`, or `folders/12345/consumerPolicies/default`, or `organizations/12345/consumerPolicies/default`.", + "type": "string" + }, + "removedValues": { + "deprecated": true, + "description": "The values removed from the parent consumer policy.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RolloutInfo": { + "description": "[Output only] Rollout information of a quota.", + "id": "RolloutInfo", + "properties": { + "defaultLimitOngoingRollout": { + "description": "Whether there is an ongoing rollout for the default limit or not.", + "type": "boolean" + } + }, + "type": "object" + }, "RubySettings": { "description": "Settings for Ruby client libraries.", "id": "RubySettings", @@ -3637,6 +4021,10 @@ "description": "A protocol buffer message type.", "id": "Type", "properties": { + "edition": { + "description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", + "type": "string" + }, "fields": { "description": "The list of fields.", "items": { @@ -3670,11 +4058,13 @@ "description": "The source syntax.", "enum": [ "SYNTAX_PROTO2", - "SYNTAX_PROTO3" + "SYNTAX_PROTO3", + "SYNTAX_EDITIONS" ], "enumDescriptions": [ "Syntax `proto2`.", - "Syntax `proto3`." + "Syntax `proto3`.", + "Syntax `editions`." ], "type": "string" } @@ -3687,6 +4077,12 @@ "properties": {}, "type": "object" }, + "UpdateConsumerPolicyMetadata": { + "description": "Metadata for the `UpdateConsumerPolicy` method.", + "id": "UpdateConsumerPolicyMetadata", + "properties": {}, + "type": "object" + }, "Usage": { "description": "Configuration controlling usage of a service.", "id": "Usage", diff --git a/etc/api/sheets/v4/sheets-api.json b/etc/api/sheets/v4/sheets-api.json index 6b28d14e33..855eb2fd11 100644 --- a/etc/api/sheets/v4/sheets-api.json +++ b/etc/api/sheets/v4/sheets-api.json @@ -403,9 +403,9 @@ "FORMULA" ], "enumDescriptions": [ - "Values will be calculated & formatted in the reply according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", + "Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", "Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.", - "Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`." + "Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/sheets/api/guides/formats#about_date_time_values)." ], "location": "query", "type": "string" @@ -560,9 +560,9 @@ "FORMULA" ], "enumDescriptions": [ - "Values will be calculated & formatted in the reply according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", + "Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", "Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.", - "Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`." + "Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/sheets/api/guides/formats#about_date_time_values)." ], "location": "query", "type": "string" @@ -761,9 +761,9 @@ "FORMULA" ], "enumDescriptions": [ - "Values will be calculated & formatted in the reply according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", + "Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", "Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.", - "Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`." + "Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/sheets/api/guides/formats#about_date_time_values)." ], "location": "query", "type": "string" @@ -823,9 +823,9 @@ "FORMULA" ], "enumDescriptions": [ - "Values will be calculated & formatted in the reply according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", + "Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", "Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.", - "Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`." + "Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/sheets/api/guides/formats#about_date_time_values)." ], "location": "query", "type": "string" @@ -870,7 +870,7 @@ } } }, - "revision": "20230119", + "revision": "20240229", "rootUrl": "https://sheets.googleapis.com/", "schemas": { "AddBandingRequest": { @@ -1207,7 +1207,7 @@ "id": "BandedRange", "properties": { "bandedRangeId": { - "description": "The id of the banded range.", + "description": "The ID of the banded range.", "format": "int32", "type": "integer" }, @@ -1232,6 +1232,7 @@ "properties": { "firstBandColor": { "$ref": "Color", + "deprecated": true, "description": "The first color that is alternating. (Required) Deprecated: Use first_band_color_style." }, "firstBandColorStyle": { @@ -1240,6 +1241,7 @@ }, "footerColor": { "$ref": "Color", + "deprecated": true, "description": "The color of the last row or column. If this field is not set, the last row or column is filled with either first_band_color or second_band_color, depending on the color of the previous row or column. Deprecated: Use footer_color_style." }, "footerColorStyle": { @@ -1248,6 +1250,7 @@ }, "headerColor": { "$ref": "Color", + "deprecated": true, "description": "The color of the first row or column. If this field is set, the first row or column is filled with this color and the colors alternate between first_band_color and second_band_color starting from the second row or column. Otherwise, the first row or column is filled with first_band_color and the colors proceed to alternate as they normally would. Deprecated: Use header_color_style." }, "headerColorStyle": { @@ -1256,6 +1259,7 @@ }, "secondBandColor": { "$ref": "Color", + "deprecated": true, "description": "The second color that is alternating. (Required) Deprecated: Use second_band_color_style." }, "secondBandColorStyle": { @@ -1289,6 +1293,7 @@ }, "negativeColor": { "$ref": "Color", + "deprecated": true, "description": "Color to be used, in case baseline value represents a negative change for key value. This field is optional. Deprecated: Use negative_color_style." }, "negativeColorStyle": { @@ -1301,6 +1306,7 @@ }, "positiveColor": { "$ref": "Color", + "deprecated": true, "description": "Color to be used, in case baseline value represents a positive change for key value. This field is optional. Deprecated: Use positive_color_style." }, "positiveColorStyle": { @@ -1374,6 +1380,7 @@ "properties": { "color": { "$ref": "Color", + "deprecated": true, "description": "The color for elements (such as bars, lines, and points) associated with this series. If empty, a default color is used. Deprecated: Use color_style." }, "colorStyle": { @@ -1577,6 +1584,7 @@ "additionalProperties": { "$ref": "FilterCriteria" }, + "deprecated": true, "description": "The criteria for showing/hiding values per column. The map's key is the column index, and the value is the criteria for that column. This field is deprecated in favor of filter_specs.", "type": "object" }, @@ -1607,6 +1615,7 @@ "properties": { "color": { "$ref": "Color", + "deprecated": true, "description": "Color of the series data point. If empty, the series default is used. Deprecated: Use color_style." }, "colorStyle": { @@ -1614,7 +1623,7 @@ "description": "Color of the series data point. If empty, the series default is used. If color is also set, this field takes precedence." }, "index": { - "description": "Zero based index of the series data point.", + "description": "The zero-based index of the series data point.", "format": "int32", "type": "integer" }, @@ -1734,9 +1743,9 @@ "FORMULA" ], "enumDescriptions": [ - "Values will be calculated & formatted in the reply according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", + "Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", "Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.", - "Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`." + "Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/sheets/api/guides/formats#about_date_time_values)." ], "type": "string" } @@ -1865,9 +1874,9 @@ "FORMULA" ], "enumDescriptions": [ - "Values will be calculated & formatted in the reply according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", + "Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", "Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.", - "Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`." + "Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/sheets/api/guides/formats#about_date_time_values)." ], "type": "string" }, @@ -1961,9 +1970,9 @@ "FORMULA" ], "enumDescriptions": [ - "Values will be calculated & formatted in the reply according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", + "Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", "Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.", - "Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`." + "Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/sheets/api/guides/formats#about_date_time_values)." ], "type": "string" }, @@ -2027,7 +2036,7 @@ "id": "BigQueryDataSourceSpec", "properties": { "projectId": { - "description": "The ID of a BigQuery enabled GCP project with a billing account attached. For any queries executed against the data source, the project is charged.", + "description": "The ID of a BigQuery enabled Google Cloud project with a billing account attached. For any queries executed against the data source, the project is charged.", "type": "string" }, "querySpec": { @@ -2053,7 +2062,7 @@ "type": "object" }, "BigQueryTableSpec": { - "description": "Specifies a BigQuery table definition. Only [native tables](https://cloud.google.com/bigquery/docs/tables-intro) is allowed.", + "description": "Specifies a BigQuery table definition. Only [native tables](https://cloud.google.com/bigquery/docs/tables-intro) are allowed.", "id": "BigQueryTableSpec", "properties": { "datasetId": { @@ -2109,7 +2118,8 @@ "CUSTOM_FORMULA", "BOOLEAN", "TEXT_NOT_EQ", - "DATE_NOT_EQ" + "DATE_NOT_EQ", + "FILTER_EXPRESSION" ], "enumDescriptions": [ "The default value, do not use.", @@ -2143,7 +2153,8 @@ "The condition's formula must evaluate to true. Supported by data validation, conditional formatting and filters. Not supported by data source sheet filters. Requires a single ConditionValue.", "The cell's value must be TRUE/FALSE or in the list of condition values. Supported by data validation. Renders as a cell checkbox. Supports zero, one or two ConditionValues. No values indicates the cell must be TRUE or FALSE, where TRUE renders as checked and FALSE renders as unchecked. One value indicates the cell will render as checked when it contains that value and unchecked when it is blank. Two values indicate that the cell will render as checked when it contains the first value and unchecked when it contains the second value. For example, [\"Yes\",\"No\"] indicates that the cell will render a checked box when it has the value \"Yes\" and an unchecked box when it has the value \"No\".", "The cell's value must be exactly not the condition's value. Supported by filters on data source objects. Requires at least one ConditionValue.", - "The cell's value must be exactly not the condition's value. Supported by filters on data source objects. Requires at least one ConditionValue." + "The cell's value must be exactly not the condition's value. Supported by filters on data source objects. Requires at least one ConditionValue.", + "The cell's value must follow the pattern specified. Requires a single ConditionValue." ], "type": "string" }, @@ -2167,7 +2178,7 @@ }, "format": { "$ref": "CellFormat", - "description": "The format to apply. Conditional formatting can only apply a subset of formatting: bold, italic, strikethrough, foreground color & background color." + "description": "The format to apply. Conditional formatting can only apply a subset of formatting: bold, italic, strikethrough, foreground color and, background color." } }, "type": "object" @@ -2178,6 +2189,7 @@ "properties": { "color": { "$ref": "Color", + "deprecated": true, "description": "The color of the border. Deprecated: Use color_style." }, "colorStyle": { @@ -2209,6 +2221,7 @@ "type": "string" }, "width": { + "deprecated": true, "description": "The width of the border, in pixels. Deprecated; the width is determined by the \"style\" field.", "format": "int32", "type": "integer" @@ -2245,6 +2258,7 @@ "properties": { "bubbleBorderColor": { "$ref": "Color", + "deprecated": true, "description": "The bubble border color. Deprecated: Use bubble_border_color_style." }, "bubbleBorderColorStyle": { @@ -2436,7 +2450,7 @@ }, "userEnteredValue": { "$ref": "ExtendedValue", - "description": "The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()` Note: Dates, Times and DateTimes are represented as doubles in serial number format." + "description": "The value the user entered in the cell. e.g., `1234`, `'Hello'`, or `=NOW()` Note: Dates, Times and DateTimes are represented as doubles in serial number format." } }, "type": "object" @@ -2447,6 +2461,7 @@ "properties": { "backgroundColor": { "$ref": "Color", + "deprecated": true, "description": "The background color of the cell. Deprecated: Use background_color_style." }, "backgroundColorStyle": { @@ -2751,6 +2766,7 @@ }, "backgroundColor": { "$ref": "Color", + "deprecated": true, "description": "The background color of the entire chart. Not applicable to Org charts. Deprecated: Use background_color_style." }, "backgroundColorStyle": { @@ -2898,7 +2914,7 @@ "type": "object" }, "Color": { - "description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/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 carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). 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(''); }; // ...", + "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\u2014for 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": { @@ -3490,7 +3506,7 @@ "id": "DataSourceRefreshMonthlySchedule", "properties": { "daysOfMonth": { - "description": "Days of the month to refresh. Only 1-28 are supported, mapping to the 1st to the 28th day. At lesat one day must be specified.", + "description": "Days of the month to refresh. Only 1-28 are supported, mapping to the 1st to the 28th day. At least one day must be specified.", "items": { "format": "int32", "type": "integer" @@ -3505,7 +3521,7 @@ "type": "object" }, "DataSourceRefreshSchedule": { - "description": "Schedule for refreshing the data source. Data sources in the spreadsheet are refreshed within a time interval. You can specify the start time by clicking the Scheduled Refresh button in the Sheets editor, but the interval is fixed at 4 hours. For example, if you specify a start time of 8am , the refresh will take place between 8am and 12pm every day.", + "description": "Schedule for refreshing the data source. Data sources in the spreadsheet are refreshed within a time interval. You can specify the start time by clicking the Scheduled Refresh button in the Sheets editor, but the interval is fixed at 4 hours. For example, if you specify a start time of 8 AM , the refresh will take place between 8 AM and 12 PM every day.", "id": "DataSourceRefreshSchedule", "properties": { "dailySchedule": { @@ -4342,6 +4358,7 @@ "properties": { "color": { "$ref": "Color", + "deprecated": true, "description": "The color of the border. Deprecated: Use color_style." }, "colorStyle": { @@ -4455,6 +4472,7 @@ }, "visibleBackgroundColor": { "$ref": "Color", + "deprecated": true, "description": "The background fill color to filter by; only cells with this fill color are shown. Mutually exclusive with visible_foreground_color. Deprecated: Use visible_background_color_style." }, "visibleBackgroundColorStyle": { @@ -4463,6 +4481,7 @@ }, "visibleForegroundColor": { "$ref": "Color", + "deprecated": true, "description": "The foreground color to filter by; only cells with this foreground color are shown. Mutually exclusive with visible_background_color. Deprecated: Use visible_foreground_color_style." }, "visibleForegroundColorStyle": { @@ -4477,7 +4496,7 @@ "id": "FilterSpec", "properties": { "columnIndex": { - "description": "The column index.", + "description": "The zero-based column index.", "format": "int32", "type": "integer" }, @@ -4500,6 +4519,7 @@ "additionalProperties": { "$ref": "FilterCriteria" }, + "deprecated": true, "description": "The criteria for showing/hiding values per column. The map's key is the column index, and the value is the criteria for that column. This field is deprecated in favor of filter_specs.", "type": "object" }, @@ -4859,6 +4879,7 @@ "properties": { "barColor": { "$ref": "Color", + "deprecated": true, "description": "The color of the column representing this series in each bucket. This field is optional. Deprecated: Use bar_color_style." }, "barColorStyle": { @@ -4918,6 +4939,7 @@ "properties": { "color": { "$ref": "Color", + "deprecated": true, "description": "The color this interpolation point should use. Deprecated: Use color_style." }, "colorStyle": { @@ -5224,6 +5246,7 @@ }, "nodeColor": { "$ref": "Color", + "deprecated": true, "description": "The color of the org chart nodes. Deprecated: Use node_color_style." }, "nodeColorStyle": { @@ -5252,6 +5275,7 @@ }, "selectedNodeColor": { "$ref": "Color", + "deprecated": true, "description": "The color of the selected org chart nodes. Deprecated: Use selected_node_color_style." }, "selectedNodeColorStyle": { @@ -5441,7 +5465,7 @@ "id": "PivotFilterSpec", "properties": { "columnOffsetIndex": { - "description": "The column offset of the source range.", + "description": "The zero-based column offset of the source range.", "format": "int32", "type": "integer" }, @@ -5602,6 +5626,7 @@ "additionalProperties": { "$ref": "PivotFilterCriteria" }, + "deprecated": true, "description": "An optional mapping of filters per source column offset. The filters are applied before aggregating data into the pivot table. The map's key is the column offset of the source range that you want to filter, and the value is the criteria for that column. For example, if the source was `C10:E15`, a key of `0` will have the filter for column `C`, whereas the key `1` is for column `D`. This field is deprecated in favor of filter_specs.", "type": "object" }, @@ -5807,7 +5832,7 @@ "type": "array" }, "warningOnly": { - "description": "True if this protected range will show a warning when editing. Warning-based protection means that every user can edit data in the protected range, except editing will prompt a warning asking the user to confirm the edit. When writing: if this field is true, then editors is ignored. Additionally, if this field is changed from true to false and the `editors` field is not set (nor included in the field mask), then the editors will be set to all the editors in the document.", + "description": "True if this protected range will show a warning when editing. Warning-based protection means that every user can edit data in the protected range, except editing will prompt a warning asking the user to confirm the edit. When writing: if this field is true, then editors are ignored. Additionally, if this field is changed from true to false and the `editors` field is not set (nor included in the field mask), then the editors will be set to all the editors in the document.", "type": "boolean" } }, @@ -6062,7 +6087,7 @@ }, "refreshDataSource": { "$ref": "RefreshDataSourceRequest", - "description": "Refreshs one or multiple data sources and associated dbobjects." + "description": "Refreshes one or multiple data sources and associated dbobjects." }, "repeatCell": { "$ref": "RepeatCellRequest", @@ -6508,7 +6533,7 @@ "type": "boolean" }, "index": { - "description": "The index of the sheet within the spreadsheet. When adding or updating sheet properties, if this field is excluded then the sheet is added or moved to the end of the sheet list. When updating sheet indices or inserting sheets, movement is considered in \"before the move\" indexes. For example, if there were 3 sheets (S1, S2, S3) in order to move S1 ahead of S2 the index would have to be set to 2. A sheet index update request is ignored if the requested index is identical to the sheets current index or if the requested new index is equal to the current sheet index + 1.", + "description": "The index of the sheet within the spreadsheet. When adding or updating sheet properties, if this field is excluded then the sheet is added or moved to the end of the sheet list. When updating sheet indices or inserting sheets, movement is considered in \"before the move\" indexes. For example, if there were three sheets (S1, S2, S3) in order to move S1 ahead of S2 the index would have to be set to 2. A sheet index update request is ignored if the requested index is identical to the sheets current index or if the requested new index is equal to the current sheet index + 1.", "format": "int32", "type": "integer" }, @@ -6539,6 +6564,7 @@ }, "tabColor": { "$ref": "Color", + "deprecated": true, "description": "The color of the tab in the UI. Deprecated: Use tab_color_style." }, "tabColorStyle": { @@ -6582,6 +6608,7 @@ }, "backgroundColor": { "$ref": "Color", + "deprecated": true, "description": "The background color of the slicer. Deprecated: Use background_color_style." }, "backgroundColorStyle": { @@ -6589,7 +6616,7 @@ "description": "The background color of the slicer. If background_color is also set, this field takes precedence." }, "columnIndex": { - "description": "The column index in the data table on which the filter is applied to.", + "description": "The zero-based column index in the data table on which the filter is applied to.", "format": "int32", "type": "integer" }, @@ -6652,6 +6679,7 @@ "properties": { "backgroundColor": { "$ref": "Color", + "deprecated": true, "description": "The background fill color to sort by; cells with this fill color are sorted to the top. Mutually exclusive with foreground_color. Deprecated: Use background_color_style." }, "backgroundColorStyle": { @@ -6669,6 +6697,7 @@ }, "foregroundColor": { "$ref": "Color", + "deprecated": true, "description": "The foreground color to sort by; cells with this foreground color are sorted to the top. Mutually exclusive with background_color. Deprecated: Use foreground_color_style." }, "foregroundColorStyle": { @@ -6861,6 +6890,7 @@ }, "foregroundColor": { "$ref": "Color", + "deprecated": true, "description": "The foreground color of the text. Deprecated: Use foreground_color_style." }, "foregroundColorStyle": { @@ -6895,7 +6925,7 @@ "description": "The format of this run. Absent values inherit the cell's format." }, "startIndex": { - "description": "The character index where this run starts.", + "description": "The zero-based character index where this run starts, in UTF-16 code units.", "format": "int32", "type": "integer" } @@ -7050,6 +7080,7 @@ "properties": { "maxValueColor": { "$ref": "Color", + "deprecated": true, "description": "The background color for cells with a color value greater than or equal to maxValue. Defaults to #109618 if not specified. Deprecated: Use max_value_color_style." }, "maxValueColorStyle": { @@ -7058,6 +7089,7 @@ }, "midValueColor": { "$ref": "Color", + "deprecated": true, "description": "The background color for cells with a color value at the midpoint between minValue and maxValue. Defaults to #efe6dc if not specified. Deprecated: Use mid_value_color_style." }, "midValueColorStyle": { @@ -7066,6 +7098,7 @@ }, "minValueColor": { "$ref": "Color", + "deprecated": true, "description": "The background color for cells with a color value less than or equal to minValue. Defaults to #dc3912 if not specified. Deprecated: Use min_value_color_style." }, "minValueColorStyle": { @@ -7074,6 +7107,7 @@ }, "noDataColor": { "$ref": "Color", + "deprecated": true, "description": "The background color for cells that have no color data associated with them. Defaults to #000000 if not specified. Deprecated: Use no_data_color_style." }, "noDataColorStyle": { @@ -7097,6 +7131,7 @@ }, "headerColor": { "$ref": "Color", + "deprecated": true, "description": "The background color for header cells. Deprecated: Use header_color_style." }, "headerColorStyle": { @@ -7696,6 +7731,7 @@ "properties": { "color": { "$ref": "Color", + "deprecated": true, "description": "The color of the column. Deprecated: Use color_style." }, "colorStyle": { @@ -7722,7 +7758,7 @@ "type": "string" }, "subtotalIndex": { - "description": "The 0-based index of a data point within the series. If data_is_subtotal is true, the data point at this index is the subtotal. Otherwise, the subtotal appears after the data point with this index. A series can have multiple subtotals at arbitrary indices, but subtotals do not affect the indices of the data points. For example, if a series has three data points, their indices will always be 0, 1, and 2, regardless of how many subtotals exist on the series or what data points they are associated with.", + "description": "The zero-based index of a data point within the series. If data_is_subtotal is true, the data point at this index is the subtotal. Otherwise, the subtotal appears after the data point with this index. A series can have multiple subtotals at arbitrary indices, but subtotals do not affect the indices of the data points. For example, if a series has three data points, their indices will always be 0, 1, and 2, regardless of how many subtotals exist on the series or what data points they are associated with.", "format": "int32", "type": "integer" } diff --git a/etc/api/slides/v1/slides-api.json b/etc/api/slides/v1/slides-api.json index 78bbf218ef..67eae89a6d 100644 --- a/etc/api/slides/v1/slides-api.json +++ b/etc/api/slides/v1/slides-api.json @@ -313,7 +313,7 @@ } } }, - "revision": "20230119", + "revision": "20240227", "rootUrl": "https://slides.googleapis.com/", "schemas": { "AffineTransform": { @@ -539,7 +539,7 @@ "type": "string" }, "url": { - "description": "The image URL. The image is fetched once at insertion time and a copy is stored for display inside the presentation. Images must be less than 50 MB in size, can't exceed 25 megapixels, and must be in one of PNG, JPEG, or GIF formats. The provided URL can be up to 2 KB in length. The URL is saved with the image, and exposed through the Image.source_url field.", + "description": "The image URL. The image is fetched once at insertion time and a copy is stored for display inside the presentation. Images must be less than 50 MB in size, can't exceed 25 megapixels, and must be in one of PNG, JPEG, or GIF formats. The provided URL must be publicly accessible and up to 2 KB in length. The URL is saved with the image, and exposed through the Image.source_url field.", "type": "string" } }, @@ -581,6 +581,7 @@ "description": "The element properties for the line." }, "lineCategory": { + "deprecated": true, "description": "The category of the line to be created. *Deprecated*: use `category` instead. The exact line type created is determined based on the category and how it's routed to connect to other page elements. If you specify both a `category` and a `line_category`, the `category` takes precedence.", "enum": [ "STRAIGHT", @@ -2539,6 +2540,7 @@ "type": "array" }, "replaceMethod": { + "deprecated": true, "description": "The replace method. *Deprecated*: use `image_replace_method` instead. If you specify both a `replace_method` and an `image_replace_method`, the `image_replace_method` takes precedence.", "enum": [ "CENTER_INSIDE", diff --git a/etc/api/smartdevicemanagement/v1/smartdevicemanagement-api.json b/etc/api/smartdevicemanagement/v1/smartdevicemanagement-api.json index 26c62572b6..c2bcd3ce4b 100644 --- a/etc/api/smartdevicemanagement/v1/smartdevicemanagement-api.json +++ b/etc/api/smartdevicemanagement/v1/smartdevicemanagement-api.json @@ -176,17 +176,6 @@ "location": "query", "type": "string" }, - "pageSize": { - "description": "Optional requested page size. Server may return fewer devices than requested. If unspecified, server will pick an appropriate default.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "Optional token of the page to retrieve.", - "location": "query", - "type": "string" - }, "parent": { "description": "The parent enterprise to list devices under. E.g. \"enterprises/XYZ\".", "location": "path", @@ -246,17 +235,6 @@ "location": "query", "type": "string" }, - "pageSize": { - "description": "Requested page size. Server may return fewer structures than requested. If unspecified, server will pick an appropriate default.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "The token of the page to retrieve.", - "location": "query", - "type": "string" - }, "parent": { "description": "The parent enterprise to list structures under. E.g. \"enterprises/XYZ\".", "location": "path", @@ -311,17 +289,6 @@ "parent" ], "parameters": { - "pageSize": { - "description": "Requested page size. Server may return fewer rooms than requested. If unspecified, server will pick an appropriate default.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "The token of the page to retrieve.", - "location": "query", - "type": "string" - }, "parent": { "description": "The parent resource name of the rooms requested. For example: \"enterprises/XYZ/structures/ABC\".", "location": "path", @@ -345,7 +312,7 @@ } } }, - "revision": "20230112", + "revision": "20240218", "rootUrl": "https://smartdevicemanagement.googleapis.com/", "schemas": { "GoogleHomeEnterpriseSdmV1Device": { @@ -424,10 +391,6 @@ "$ref": "GoogleHomeEnterpriseSdmV1Device" }, "type": "array" - }, - "nextPageToken": { - "description": "The pagination token to retrieve the next page of results.", - "type": "string" } }, "type": "object" @@ -436,10 +399,6 @@ "description": "Response message for SmartDeviceManagementService.ListRooms", "id": "GoogleHomeEnterpriseSdmV1ListRoomsResponse", "properties": { - "nextPageToken": { - "description": "The pagination token to retrieve the next page of results. If this field is omitted, there are no subsequent pages.", - "type": "string" - }, "rooms": { "description": "The list of rooms.", "items": { @@ -454,10 +413,6 @@ "description": "Response message for SmartDeviceManagementService.ListStructures", "id": "GoogleHomeEnterpriseSdmV1ListStructuresResponse", "properties": { - "nextPageToken": { - "description": "The pagination token to retrieve the next page of results. If this field is omitted, there are no subsequent pages.", - "type": "string" - }, "structures": { "description": "The list of structures.", "items": { diff --git a/etc/api/sourcerepo/v1/sourcerepo-api.json b/etc/api/sourcerepo/v1/sourcerepo-api.json index 8f116a57b1..40a882a5e0 100644 --- a/etc/api/sourcerepo/v1/sourcerepo-api.json +++ b/etc/api/sourcerepo/v1/sourcerepo-api.json @@ -257,7 +257,7 @@ ] }, "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.", + "description": "Gets the IAM policy policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", "flatPath": "v1/projects/{projectsId}/repos/{reposId}:getIamPolicy", "httpMethod": "GET", "id": "sourcerepo.projects.repos.getIamPolicy", @@ -358,7 +358,7 @@ ] }, "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "description": "Sets the IAM policy on the specified resource. Replaces any existing policy.", "flatPath": "v1/projects/{projectsId}/repos/{reposId}:setIamPolicy", "httpMethod": "POST", "id": "sourcerepo.projects.repos.setIamPolicy", @@ -450,7 +450,7 @@ } } }, - "revision": "20230123", + "revision": "20240304", "rootUrl": "https://sourcerepo.googleapis.com/", "schemas": { "AuditConfig": { @@ -510,14 +510,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" } }, @@ -618,14 +618,14 @@ "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" } }, "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/).", + "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": { diff --git a/etc/api/spanner/v1/spanner-api.json b/etc/api/spanner/v1/spanner-api.json index 3e796543cc..82d712b806 100644 --- a/etc/api/spanner/v1/spanner-api.json +++ b/etc/api/spanner/v1/spanner-api.json @@ -21,6 +21,13 @@ "description": "Cloud Spanner is a managed, mission-critical, globally consistent and scalable relational database service.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/spanner/", + "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://spanner.me-central2.rep.googleapis.com/", + "location": "me-central2" + } + ], "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -401,7 +408,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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}/instanceConfigs/{instanceConfigsId}/operations", "httpMethod": "GET", "id": "spanner.projects.instanceConfigs.operations.list", @@ -443,6 +450,134 @@ ] } } + }, + "ssdCaches": { + "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}/instanceConfigs/{instanceConfigsId}/ssdCaches/{ssdCachesId}/operations/{operationsId}:cancel", + "httpMethod": "POST", + "id": "spanner.projects.instanceConfigs.ssdCaches.operations.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be cancelled.", + "location": "path", + "pattern": "^projects/[^/]+/instanceConfigs/[^/]+/ssdCaches/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:cancel", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + }, + "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}/instanceConfigs/{instanceConfigsId}/ssdCaches/{ssdCachesId}/operations/{operationsId}", + "httpMethod": "DELETE", + "id": "spanner.projects.instanceConfigs.ssdCaches.operations.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be deleted.", + "location": "path", + "pattern": "^projects/[^/]+/instanceConfigs/[^/]+/ssdCaches/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + }, + "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}/instanceConfigs/{instanceConfigsId}/ssdCaches/{ssdCachesId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "spanner.projects.instanceConfigs.ssdCaches.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/instanceConfigs/[^/]+/ssdCaches/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + }, + "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}/instanceConfigs/{instanceConfigsId}/ssdCaches/{ssdCachesId}/operations", + "httpMethod": "GET", + "id": "spanner.projects.instanceConfigs.ssdCaches.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/[^/]+/instanceConfigs/[^/]+/ssdCaches/[^/]+/operations$", + "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}", + "response": { + "$ref": "ListOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + } + } + } + } } } }, @@ -1133,7 +1268,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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}/instances/{instancesId}/backups/{backupsId}/operations", "httpMethod": "GET", "id": "spanner.projects.instances.backups.operations.list", @@ -1452,6 +1587,41 @@ "https://www.googleapis.com/auth/spanner.admin" ] }, + "patch": { + "description": "Updates a Cloud Spanner database. The returned long-running operation can be used to track the progress of updating the database. If the named database does not exist, returns `NOT_FOUND`. While the operation is pending: * The database's reconciling field is set to true. * Cancelling the operation is best-effort. If the cancellation succeeds, the operation metadata's cancel_time is set, the updates are reverted, and the operation terminates with a `CANCELLED` status. * New UpdateDatabase requests will return a `FAILED_PRECONDITION` error until the pending operation is done (returns successfully or with error). * Reading the database via the API continues to give the pre-request values. Upon completion of the returned operation: * The new values are in effect and readable via the API. * The database's reconciling field becomes false. The returned long-running operation will have a name of the format `projects//instances//databases//operations/` and can be used to track the database modification. The metadata field type is UpdateDatabaseMetadata. The response field type is Database, if successful.", + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}", + "httpMethod": "PATCH", + "id": "spanner.projects.instances.databases.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the database. Values are of the form `projects//instances//databases/`, where `` is as specified in the `CREATE DATABASE` statement. This name can be passed to other API methods to identify the database.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to update. Currently, only `enable_drop_protection` field can be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Database" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + }, "restore": { "description": "Create a new database by restoring from a completed backup. The new database must be in the same project and in an instance with the same instance configuration as the instance containing the backup. The returned database long-running operation has a name of the format `projects//instances//databases//operations/`, and can be used to track the progress of the operation, and to cancel it. The metadata field type is RestoreDatabaseMetadata. The response type is Database, if successful. Cancelling the returned operation will stop the restore and delete the database. There can be only one database being restored into an instance at a time. Once the restore operation completes, a new restore operation can be initiated, without waiting for the optimize operation associated with the first restore to complete.", "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases:restore", @@ -1721,7 +1891,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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}/instances/{instancesId}/databases/{databasesId}/operations", "httpMethod": "GET", "id": "spanner.projects.instances.databases.operations.list", @@ -1795,6 +1965,35 @@ "https://www.googleapis.com/auth/spanner.data" ] }, + "batchWrite": { + "description": "Batches the supplied mutation groups in a collection of efficient transactions. All mutations in a group are committed atomically. However, mutations across groups can be committed non-atomically in an unspecified order and thus, they must be independent of each other. Partial failure is possible, i.e., some groups may have been committed successfully, while some may have failed. The results of individual batches are streamed into the response as the batches are applied. BatchWrite requests are not replay protected, meaning that each mutation group may be applied more than once. Replays of non-idempotent mutations may have undesirable effects. For example, replays of an insert mutation may produce an already exists error or if you use generated or commit timestamp-based keys, it may result in additional rows being added to the mutation's table. We recommend structuring your mutation groups to be idempotent to avoid this issue.", + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:batchWrite", + "httpMethod": "POST", + "id": "spanner.projects.instances.databases.sessions.batchWrite", + "parameterOrder": [ + "session" + ], + "parameters": { + "session": { + "description": "Required. The session in which the batch request is to be run.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+session}:batchWrite", + "request": { + "$ref": "BatchWriteRequest" + }, + "response": { + "$ref": "BatchWriteResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.data" + ] + }, "beginTransaction": { "description": "Begins a new transaction. This step can often be skipped: Read, ExecuteSql and Commit can begin a new transaction as a side-effect.", "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:beginTransaction", @@ -2212,6 +2411,134 @@ } } }, + "instancePartitions": { + "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}/instances/{instancesId}/instancePartitions/{instancePartitionsId}/operations/{operationsId}:cancel", + "httpMethod": "POST", + "id": "spanner.projects.instances.instancePartitions.operations.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be cancelled.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+/instancePartitions/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:cancel", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + }, + "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}/instances/{instancesId}/instancePartitions/{instancePartitionsId}/operations/{operationsId}", + "httpMethod": "DELETE", + "id": "spanner.projects.instances.instancePartitions.operations.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be deleted.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+/instancePartitions/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + }, + "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}/instances/{instancesId}/instancePartitions/{instancePartitionsId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "spanner.projects.instances.instancePartitions.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+/instancePartitions/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + }, + "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}/instances/{instancesId}/instancePartitions/{instancePartitionsId}/operations", + "httpMethod": "GET", + "id": "spanner.projects.instances.instancePartitions.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/[^/]+/instances/[^/]+/instancePartitions/[^/]+/operations$", + "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}", + "response": { + "$ref": "ListOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + } + } + } + } + }, "operations": { "methods": { "cancel": { @@ -2293,7 +2620,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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}/instances/{instancesId}/operations", "httpMethod": "GET", "id": "spanner.projects.instances.operations.list", @@ -2402,9 +2729,68 @@ } } }, - "revision": "20230119", + "revision": "20240228", "rootUrl": "https://spanner.googleapis.com/", "schemas": { + "AutoscalingConfig": { + "description": "Autoscaling config for an instance.", + "id": "AutoscalingConfig", + "properties": { + "autoscalingLimits": { + "$ref": "AutoscalingLimits", + "description": "Required. Autoscaling limits for an instance." + }, + "autoscalingTargets": { + "$ref": "AutoscalingTargets", + "description": "Required. The autoscaling targets for an instance." + } + }, + "type": "object" + }, + "AutoscalingLimits": { + "description": "The autoscaling limits for the instance. Users can define the minimum and maximum compute capacity allocated to the instance, and the autoscaler will only scale within that range. Users can either use nodes or processing units to specify the limits, but should use the same unit to set both the min_limit and max_limit.", + "id": "AutoscalingLimits", + "properties": { + "maxNodes": { + "description": "Maximum number of nodes allocated to the instance. If set, this number should be greater than or equal to min_nodes.", + "format": "int32", + "type": "integer" + }, + "maxProcessingUnits": { + "description": "Maximum number of processing units allocated to the instance. If set, this number should be multiples of 1000 and be greater than or equal to min_processing_units.", + "format": "int32", + "type": "integer" + }, + "minNodes": { + "description": "Minimum number of nodes allocated to the instance. If set, this number should be greater than or equal to 1.", + "format": "int32", + "type": "integer" + }, + "minProcessingUnits": { + "description": "Minimum number of processing units allocated to the instance. If set, this number should be multiples of 1000.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "AutoscalingTargets": { + "description": "The autoscaling targets for an instance.", + "id": "AutoscalingTargets", + "properties": { + "highPriorityCpuUtilizationPercent": { + "description": "Required. The target high priority cpu 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, 90] inclusive.", + "format": "int32", + "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, 99] inclusive.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "Backup": { "description": "A backup of a Cloud Spanner database.", "id": "Backup", @@ -2428,7 +2814,7 @@ ], "enumDescriptions": [ "Default value. This value will create a database with the GOOGLE_STANDARD_SQL dialect.", - "Google standard SQL.", + "GoogleSQL supported SQL.", "PostgreSQL supported SQL." ], "readOnly": true, @@ -2554,6 +2940,48 @@ }, "type": "object" }, + "BatchWriteRequest": { + "description": "The request for BatchWrite.", + "id": "BatchWriteRequest", + "properties": { + "mutationGroups": { + "description": "Required. The groups of mutations to be applied.", + "items": { + "$ref": "MutationGroup" + }, + "type": "array" + }, + "requestOptions": { + "$ref": "RequestOptions", + "description": "Common options for this request." + } + }, + "type": "object" + }, + "BatchWriteResponse": { + "description": "The result of applying a batch of mutations.", + "id": "BatchWriteResponse", + "properties": { + "commitTimestamp": { + "description": "The commit timestamp of the transaction that applied this batch. Present if `status` is `OK`, absent otherwise.", + "format": "google-datetime", + "type": "string" + }, + "indexes": { + "description": "The mutation groups applied in this batch. The values index into the `mutation_groups` field in the corresponding `BatchWriteRequest`.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "status": { + "$ref": "Status", + "description": "An `OK` status indicates success. Any other status indicates a failure." + } + }, + "type": "object" + }, "BeginTransactionRequest": { "description": "The request for BeginTransaction.", "id": "BeginTransactionRequest", @@ -2578,14 +3006,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -2615,6 +3043,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": { @@ -2835,7 +3268,7 @@ ], "enumDescriptions": [ "Default value. This value will create a database with the GOOGLE_STANDARD_SQL dialect.", - "Google standard SQL.", + "GoogleSQL supported SQL.", "PostgreSQL supported SQL." ], "type": "string" @@ -2852,7 +3285,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" } @@ -2912,6 +3345,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." @@ -2969,7 +3416,7 @@ ], "enumDescriptions": [ "Default value. This value will create a database with the GOOGLE_STANDARD_SQL dialect.", - "Google standard SQL.", + "GoogleSQL supported SQL.", "PostgreSQL supported SQL." ], "readOnly": true, @@ -2986,6 +3433,10 @@ "readOnly": true, "type": "string" }, + "enableDropProtection": { + "description": "Whether drop protection is enabled for this database. Defaults to false, if not set. For more details, please see how to [prevent accidental database deletion](https://cloud.google.com/spanner/docs/prevent-database-deletion).", + "type": "boolean" + }, "encryptionConfig": { "$ref": "EncryptionConfig", "description": "Output only. For databases that are using customer managed encryption, this field contains the encryption configuration for the database. For databases that are using Google default or other types of encryption, this field is empty.", @@ -3003,6 +3454,11 @@ "description": "Required. The name of the database. Values are of the form `projects//instances//databases/`, where `` is as specified in the `CREATE DATABASE` statement. This name can be passed to other API methods to identify the database.", "type": "string" }, + "reconciling": { + "description": "Output only. If true, the database is being updated. If false, there are no ongoing update operations for the database.", + "readOnly": true, + "type": "boolean" + }, "restoreInfo": { "$ref": "RestoreInfo", "description": "Output only. Applicable only for restored databases. Contains information about the restore source.", @@ -3044,6 +3500,28 @@ }, "type": "object" }, + "DdlStatementActionInfo": { + "description": "Action information extracted from a DDL statement. This proto is used to display the brief info of the DDL statement for the operation UpdateDatabaseDdl.", + "id": "DdlStatementActionInfo", + "properties": { + "action": { + "description": "The action for the DDL statement, e.g. CREATE, ALTER, DROP, GRANT, etc. This field is a non-empty string.", + "type": "string" + }, + "entityNames": { + "description": "The entity name(s) being operated on the DDL statement. E.g. 1. For statement \"CREATE TABLE t1(...)\", `entity_names` = [\"t1\"]. 2. For statement \"GRANT ROLE r1, r2 ...\", `entity_names` = [\"r1\", \"r2\"]. 3. For statement \"ANALYZE\", `entity_names` = [].", + "items": { + "type": "string" + }, + "type": "array" + }, + "entityType": { + "description": "The entity type for the DDL statement, e.g. TABLE, INDEX, VIEW, etc. This field can be empty string for some DDL statement, e.g. for statement \"ANALYZE\", `entity_type` = \"\".", + "type": "string" + } + }, + "type": "object" + }, "Delete": { "description": "Arguments to delete operations.", "id": "Delete", @@ -3115,6 +3593,21 @@ }, "type": "object" }, + "DirectedReadOptions": { + "description": "The DirectedReadOptions can be used to indicate which replicas or regions should be used for non-transactional reads or queries. DirectedReadOptions may only be specified for a read-only transaction, otherwise the API will return an `INVALID_ARGUMENT` error.", + "id": "DirectedReadOptions", + "properties": { + "excludeReplicas": { + "$ref": "ExcludeReplicas", + "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", + "description": "Include_replicas indicates the order of replicas (as they appear in this list) to process the request. If auto_failover_disabled is set to true and all replicas are exhausted without finding a healthy replica, Spanner will wait for a replica in the list to become available, requests may fail due to `DEADLINE_EXCEEDED` errors." + } + }, + "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", @@ -3164,6 +3657,20 @@ }, "type": "object" }, + "ExcludeReplicas": { + "description": "An ExcludeReplicas contains a repeated set of ReplicaSelection that should be excluded from serving requests.", + "id": "ExcludeReplicas", + "properties": { + "replicaSelections": { + "description": "The directed read replica selector.", + "items": { + "$ref": "ReplicaSelection" + }, + "type": "array" + } + }, + "type": "object" + }, "ExecuteBatchDmlRequest": { "description": "The request for ExecuteBatchDml.", "id": "ExecuteBatchDmlRequest", @@ -3213,6 +3720,14 @@ "description": "The request for ExecuteSql and ExecuteStreamingSql.", "id": "ExecuteSqlRequest", "properties": { + "dataBoostEnabled": { + "description": "If this is for a partitioned query and this field is set to `true`, the request is executed with Spanner Data Boost independent compute resources. If the field is set to `true` but the request does not set `partition_token`, the API returns an `INVALID_ARGUMENT` error.", + "type": "boolean" + }, + "directedReadOptions": { + "$ref": "DirectedReadOptions", + "description": "Directed read options for this request." + }, "paramTypes": { "additionalProperties": { "$ref": "Type" @@ -3389,6 +3904,43 @@ }, "type": "object" }, + "IncludeReplicas": { + "description": "An IncludeReplicas contains a repeated set of ReplicaSelection which indicates the order in which replicas should be considered.", + "id": "IncludeReplicas", + "properties": { + "autoFailoverDisabled": { + "description": "If true, Spanner will not route requests to a replica outside the include_replicas list when all of the specified replicas are unavailable or unhealthy. Default value is `false`.", + "type": "boolean" + }, + "replicaSelections": { + "description": "The directed read replica selector.", + "items": { + "$ref": "ReplicaSelection" + }, + "type": "array" + } + }, + "type": "object" + }, + "IndexAdvice": { + "description": "Recommendation to add new indexes to run queries more efficiently.", + "id": "IndexAdvice", + "properties": { + "ddl": { + "description": "Optional. DDL statements to add new indexes that will improve the query.", + "items": { + "type": "string" + }, + "type": "array" + }, + "improvementFactor": { + "description": "Optional. Estimated latency improvement factor. For example if the query currently takes 500 ms to run and the estimated latency with new indexes is 100 ms this field will be 5.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "IndexedHotKey": { "description": "A message representing a (sparse) collection of hot keys for specific key buckets.", "id": "IndexedHotKey", @@ -3422,6 +3974,10 @@ "description": "An isolated set of Cloud Spanner resources on which databases can be hosted.", "id": "Instance", "properties": { + "autoscalingConfig": { + "$ref": "AutoscalingConfig", + "description": "Optional. The autoscaling configuration. Autoscaling is enabled if this field is set. When autoscaling is enabled, node_count and processing_units are treated as OUTPUT_ONLY fields and reflect the current compute capacity allocated to the instance." + }, "config": { "description": "Required. The name of the instance's configuration. Values are of the form `projects//instanceConfigs/`. See also InstanceConfig and ListInstanceConfigs.", "type": "string" @@ -3473,12 +4029,12 @@ "type": "string" }, "nodeCount": { - "description": "The number of nodes allocated to this instance. At most one of either node_count or processing_units should be present in the message. This may be zero in API responses for instances that are not yet in state `READY`. See [the documentation](https://cloud.google.com/spanner/docs/compute-capacity) for more information about nodes and processing units.", + "description": "The number of nodes allocated to this instance. At most one of either node_count or processing_units should be present in the message. Users can set the node_count field to specify the target number of nodes allocated to the instance. This may be zero in API responses for instances that are not yet in state `READY`. See [the documentation](https://cloud.google.com/spanner/docs/compute-capacity) for more information about nodes and processing units.", "format": "int32", "type": "integer" }, "processingUnits": { - "description": "The number of processing units allocated to this instance. At most one of processing_units or node_count should be present in the message. This may be zero in API responses for instances that are not yet in state `READY`. See [the documentation](https://cloud.google.com/spanner/docs/compute-capacity) for more information about nodes and processing units.", + "description": "The number of processing units allocated to this instance. At most one of processing_units or node_count should be present in the message. Users can set the processing_units field to specify the target number of processing units allocated to the instance. This may be zero in API responses for instances that are not yet in state `READY`. See [the documentation](https://cloud.google.com/spanner/docs/compute-capacity) for more information about nodes and processing units.", "format": "int32", "type": "integer" }, @@ -3595,7 +4151,7 @@ "type": "array" }, "state": { - "description": "Output only. The current instance config state.", + "description": "Output only. The current instance config state. Applicable only for USER_MANAGED configs.", "enum": [ "STATE_UNSPECIFIED", "CREATING", @@ -3608,6 +4164,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" @@ -4122,6 +4684,20 @@ }, "type": "object" }, + "MutationGroup": { + "description": "A group of mutations to be committed together. Related mutations should be placed in a group. For example, two mutations inserting rows with the same primary key prefix in both parent and child tables are related.", + "id": "MutationGroup", + "properties": { + "mutations": { + "description": "Required. The mutations in this group.", + "items": { + "$ref": "Mutation" + }, + "type": "array" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -4151,7 +4727,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" } }, @@ -4278,7 +4854,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. The query plan of a root partitionable query has a single distributed union operator. A distributed union operator conceptually divides one or more tables into multiple splits, remotely evaluates a subquery independently on each split, and then unions all results. This 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": { @@ -4404,7 +4980,7 @@ "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/).", + "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": { "bindings": { @@ -4457,6 +5033,20 @@ }, "type": "object" }, + "QueryAdvisorResult": { + "description": "Output of query advisor analysis.", + "id": "QueryAdvisorResult", + "properties": { + "indexAdvice": { + "description": "Optional. Index Recommendation for a query. This is an optional field and the recommendation will only be available when the recommendation guarantees significant improvement in query performance.", + "items": { + "$ref": "IndexAdvice" + }, + "type": "array" + } + }, + "type": "object" + }, "QueryOptions": { "description": "Query optimizer configuration.", "id": "QueryOptions", @@ -4482,6 +5072,10 @@ "$ref": "PlanNode" }, "type": "array" + }, + "queryAdvice": { + "$ref": "QueryAdvisorResult", + "description": "Optional. The advices/recommendations for a query. Currently this field will be serving index recommendations for a query." } }, "type": "object" @@ -4532,6 +5126,14 @@ }, "type": "array" }, + "dataBoostEnabled": { + "description": "If this is for a partitioned read and this field is set to `true`, the request is executed with Spanner Data Boost independent compute resources. If the field is set to `true` but the request does not set `partition_token`, the API returns an `INVALID_ARGUMENT` error.", + "type": "boolean" + }, + "directedReadOptions": { + "$ref": "DirectedReadOptions", + "description": "Directed read options for this request." + }, "index": { "description": "If non-empty, the name of an index on table. This index is used instead of the table primary key when interpreting key_set and sorting result rows. See key_set for further information.", "type": "string" @@ -4599,7 +5201,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": { @@ -4621,6 +5223,31 @@ }, "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.", + "id": "ReplicaSelection", + "properties": { + "location": { + "description": "The location or region of the serving requests, e.g. \"us-east1\".", + "type": "string" + }, + "type": { + "description": "The type of replica.", + "enum": [ + "TYPE_UNSPECIFIED", + "READ_WRITE", + "READ_ONLY" + ], + "enumDescriptions": [ + "Not specified.", + "Read-write replicas support both reads and writes.", + "Read-only replicas only support reads (not writes)." + ], + "type": "string" + } + }, + "type": "object" + }, "RequestOptions": { "description": "Common request options for various APIs.", "id": "RequestOptions", @@ -5132,6 +5759,7 @@ "BOOL", "INT64", "FLOAT64", + "FLOAT32", "TIMESTAMP", "DATE", "STRING", @@ -5148,6 +5776,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`.", @@ -5190,6 +5819,13 @@ "description": "Metadata type for the operation returned by UpdateDatabaseDdl.", "id": "UpdateDatabaseDdlMetadata", "properties": { + "actions": { + "description": "The brief action info for the DDL statements. `actions[i]` is the brief info for `statements[i]`.", + "items": { + "$ref": "DdlStatementActionInfo" + }, + "type": "array" + }, "commitTimestamps": { "description": "Reports the commit timestamps of all statements that have succeeded so far, where `commit_timestamps[i]` is the commit timestamp for the statement `statements[i]`.", "items": { @@ -5203,7 +5839,7 @@ "type": "string" }, "progress": { - "description": "The progress of the UpdateDatabaseDdl operations. Currently, only index creation statements will have a continuously updating progress. For non-index creation statements, `progress[i]` will have start time and end time populated with commit timestamp of operation, as well as a progress of 100% once the operation has completed. `progress[i]` is the operation progress for `statements[i]`.", + "description": "The progress of the UpdateDatabaseDdl operations. All DDL statements will have continuously updating progress, and `progress[i]` is the operation progress for `statements[i]`. Also, `progress[i]` will have start time and end time populated with commit timestamp of operation, as well as a progress of 100% once the operation has completed.", "items": { "$ref": "OperationProgress" }, @@ -5217,7 +5853,7 @@ "type": "array" }, "throttled": { - "description": "Output only. When true, indicates that the operation is throttled e.g due to resource constraints. When resources become available the operation will resume and this field will be false again.", + "description": "Output only. When true, indicates that the operation is throttled e.g. due to resource constraints. When resources become available the operation will resume and this field will be false again.", "readOnly": true, "type": "boolean" } @@ -5233,7 +5869,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" }, @@ -5247,6 +5883,42 @@ }, "type": "object" }, + "UpdateDatabaseMetadata": { + "description": "Metadata type for the operation returned by UpdateDatabase.", + "id": "UpdateDatabaseMetadata", + "properties": { + "cancelTime": { + "description": "The time at which this operation was cancelled. If set, this operation is in the process of undoing itself (which is best-effort).", + "format": "google-datetime", + "type": "string" + }, + "progress": { + "$ref": "OperationProgress", + "description": "The progress of the UpdateDatabase operation." + }, + "request": { + "$ref": "UpdateDatabaseRequest", + "description": "The request for UpdateDatabase." + } + }, + "type": "object" + }, + "UpdateDatabaseRequest": { + "description": "The request for UpdateDatabase.", + "id": "UpdateDatabaseRequest", + "properties": { + "database": { + "$ref": "Database", + "description": "Required. The database to update. The `name` field of the database is of the form `projects//instances//databases/`." + }, + "updateMask": { + "description": "Required. The list of fields to update. Currently, only `enable_drop_protection` field can be updated.", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, "UpdateInstanceConfigMetadata": { "description": "Metadata type for the operation returned by UpdateInstanceConfig.", "id": "UpdateInstanceConfigMetadata", @@ -5301,6 +5973,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/etc/api/speech/v1/speech-api.json b/etc/api/speech/v1/speech-api.json index 43eee7b82b..44749ab68a 100644 --- a/etc/api/speech/v1/speech-api.json +++ b/etc/api/speech/v1/speech-api.json @@ -133,7 +133,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/operations", "httpMethod": "GET", "id": "speech.operations.list", @@ -339,7 +339,7 @@ ], "parameters": { "parent": { - "description": "Required. The parent resource where this phrase set will be created. Format: `projects/{project}/locations/{location}/phraseSets` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", + "description": "Required. The parent resource where this phrase set will be created. Format: `projects/{project}/locations/{location}` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -524,7 +524,7 @@ } } }, - "revision": "20230119", + "revision": "20240222", "rootUrl": "https://speech.googleapis.com/", "schemas": { "ABNFGrammar": { @@ -585,10 +585,40 @@ "description": "A set of words or phrases that represents a common concept likely to appear in your audio, for example a list of passenger ship names. CustomClass items can be substituted into placeholders that you set in PhraseSet phrases.", "id": "CustomClass", "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "Output only. Allows users to store small amounts of arbitrary data. Both the key and the value must be 63 characters or less each. At most 100 annotations. This field is not used.", + "readOnly": true, + "type": "object" + }, "customClassId": { "description": "If this custom class is a resource, the custom_class_id is the resource id of the CustomClass. Case sensitive.", "type": "string" }, + "deleteTime": { + "description": "Output only. The time at which this resource was requested for deletion. This field is not used.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Output only. User-settable, human-readable name for the CustomClass. Must be 63 characters or less. This field is not used.", + "readOnly": true, + "type": "string" + }, + "etag": { + "description": "Output only. This checksum is computed by the server based on the value of other fields. This may be sent on update, undelete, and delete requests to ensure the client has an up-to-date value before proceeding. This field is not used.", + "readOnly": true, + "type": "string" + }, + "expireTime": { + "description": "Output only. The time at which this resource will be purged. This field is not used.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "items": { "description": "A collection of class items.", "items": { @@ -596,9 +626,44 @@ }, "type": "array" }, + "kmsKeyName": { + "description": "Output only. The [KMS key name](https://cloud.google.com/kms/docs/resource-hierarchy#keys) with which the content of the ClassItem is encrypted. The expected format is `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.", + "readOnly": true, + "type": "string" + }, + "kmsKeyVersionName": { + "description": "Output only. The [KMS key version name](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions) with which content of the ClassItem is encrypted. The expected format is `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}`.", + "readOnly": true, + "type": "string" + }, "name": { "description": "The resource name of the custom class.", "type": "string" + }, + "reconciling": { + "description": "Output only. Whether or not this CustomClass is in the process of being updated. This field is not used.", + "readOnly": true, + "type": "boolean" + }, + "state": { + "description": "Output only. The CustomClass lifecycle state. This field is not used.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "DELETED" + ], + "enumDescriptions": [ + "Unspecified state. This is only used/useful for distinguishing unset values.", + "The normal and active state.", + "This CustomClass has been deleted." + ], + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. System-assigned unique identifier for the CustomClass. This field is not used.", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -609,6 +674,25 @@ "properties": {}, "type": "object" }, + "Entry": { + "description": "A single replacement configuration.", + "id": "Entry", + "properties": { + "caseSensitive": { + "description": "Whether the search is case sensitive.", + "type": "boolean" + }, + "replace": { + "description": "What to replace with. Max length is 100 characters.", + "type": "string" + }, + "search": { + "description": "What to replace. Max length is 100 characters.", + "type": "string" + } + }, + "type": "object" + }, "ListCustomClassesResponse": { "description": "Message returned to the client by the `ListCustomClasses` method.", "id": "ListCustomClassesResponse", @@ -774,7 +858,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" } }, @@ -800,11 +884,51 @@ "description": "Provides \"hints\" to the speech recognizer to favor specific words and phrases in the results.", "id": "PhraseSet", "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "Output only. Allows users to store small amounts of arbitrary data. Both the key and the value must be 63 characters or less each. At most 100 annotations. This field is not used.", + "readOnly": true, + "type": "object" + }, "boost": { "description": "Hint Boost. Positive value will increase the probability that a specific phrase will be recognized over other similar sounding phrases. The higher the boost, the higher the chance of false positive recognition as well. Negative boost values would correspond to anti-biasing. Anti-biasing is not enabled, so negative boost will simply be ignored. Though `boost` can accept a wide range of positive values, most use cases are best served with values between 0 (exclusive) and 20. We recommend using a binary search approach to finding the optimal value for your use case as well as adding phrases both with and without boost to your requests.", "format": "float", "type": "number" }, + "deleteTime": { + "description": "Output only. The time at which this resource was requested for deletion. This field is not used.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Output only. User-settable, human-readable name for the PhraseSet. Must be 63 characters or less. This field is not used.", + "readOnly": true, + "type": "string" + }, + "etag": { + "description": "Output only. This checksum is computed by the server based on the value of other fields. This may be sent on update, undelete, and delete requests to ensure the client has an up-to-date value before proceeding. This field is not used.", + "readOnly": true, + "type": "string" + }, + "expireTime": { + "description": "Output only. The time at which this resource will be purged. This field is not used.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "kmsKeyName": { + "description": "Output only. The [KMS key name](https://cloud.google.com/kms/docs/resource-hierarchy#keys) with which the content of the PhraseSet is encrypted. The expected format is `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.", + "readOnly": true, + "type": "string" + }, + "kmsKeyVersionName": { + "description": "Output only. The [KMS key version name](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions) with which content of the PhraseSet is encrypted. The expected format is `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}`.", + "readOnly": true, + "type": "string" + }, "name": { "description": "The resource name of the phrase set.", "type": "string" @@ -815,6 +939,31 @@ "$ref": "Phrase" }, "type": "array" + }, + "reconciling": { + "description": "Output only. Whether or not this PhraseSet is in the process of being updated. This field is not used.", + "readOnly": true, + "type": "boolean" + }, + "state": { + "description": "Output only. The CustomClass lifecycle state. This field is not used.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "DELETED" + ], + "enumDescriptions": [ + "Unspecified state. This is only used/useful for distinguishing unset values.", + "The normal and active state.", + "This CustomClass has been deleted." + ], + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. System-assigned unique identifier for the PhraseSet. This field is not used.", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -894,6 +1043,7 @@ "AMR_WB", "OGG_OPUS", "SPEEX_WITH_HEADER_BYTE", + "MP3", "WEBM_OPUS" ], "enumDescriptions": [ @@ -905,7 +1055,8 @@ "Adaptive Multi-Rate Wideband codec. `sample_rate_hertz` must be 16000.", "Opus encoded audio frames in Ogg container ([OggOpus](https://wiki.xiph.org/OggOpus)). `sample_rate_hertz` must be one of 8000, 12000, 16000, 24000, or 48000.", "Although the use of lossy encodings is not recommended, if a very low bitrate encoding is required, `OGG_OPUS` is highly preferred over Speex encoding. The [Speex](https://speex.org/) encoding supported by Cloud Speech API has a header byte in each block, as in MIME type `audio/x-speex-with-header-byte`. It is a variant of the RTP Speex encoding defined in [RFC 5574](https://tools.ietf.org/html/rfc5574). The stream is a sequence of blocks, one block per RTP packet. Each block starts with a byte containing the length of the block, in bytes, followed by one or more frames of Speex data, padded to an integral number of bytes (octets) as specified in RFC 5574. In other words, each RTP header is replaced with a single byte containing the block length. Only Speex wideband is supported. `sample_rate_hertz` must be 16000.", - "Opus encoded audio frames in WebM container ([OggOpus](https://wiki.xiph.org/OggOpus)). `sample_rate_hertz` must be one of 8000, 12000, 16000, 24000, or 48000." + "MP3 audio. MP3 encoding is a Beta feature and only available in v1p1beta1. Support all standard MP3 bitrates (which range from 32-320 kbps). When using this encoding, `sample_rate_hertz` has to match the sample rate of the file being used.", + "Opus encoded audio frames in WebM container ([WebM](https://www.webmproject.org/docs/container/)). `sample_rate_hertz` must be one of 8000, 12000, 16000, 24000, or 48000." ], "type": "string" }, @@ -942,6 +1093,10 @@ }, "type": "array" }, + "transcriptNormalization": { + "$ref": "TranscriptNormalization", + "description": "Optional. Use transcription normalization to automatically replace parts of the transcript with phrases of your choosing. For StreamingRecognize, this normalization only applies to stable partial transcripts (stability > 0.8) and final transcripts." + }, "useEnhanced": { "description": "Set to true to use an enhanced model for speech recognition. If `use_enhanced` is set to true and the `model` field is not set, then an appropriate enhanced model is chosen if an enhanced model exists for the audio. If `use_enhanced` is true and an enhanced version of the specified model does not exist, then the speech is recognized using the standard version of the specified model.", "type": "boolean" @@ -950,6 +1105,7 @@ "type": "object" }, "RecognitionMetadata": { + "deprecated": true, "description": "Description of audio data to be recognized.", "id": "RecognitionMetadata", "properties": { @@ -1090,6 +1246,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" @@ -1099,7 +1259,7 @@ "id": "SpeakerDiarizationConfig", "properties": { "enableSpeakerDiarization": { - "description": "If 'true', enables speaker detection for each recognized word in the top alternative of the recognition result using a speaker_tag provided in the WordInfo.", + "description": "If 'true', enables speaker detection for each recognized word in the top alternative of the recognition result using a speaker_label provided in the WordInfo.", "type": "boolean" }, "maxSpeakerCount": { @@ -1113,6 +1273,7 @@ "type": "integer" }, "speakerTag": { + "deprecated": true, "description": "Output only. Unused.", "format": "int32", "readOnly": true, @@ -1266,6 +1427,20 @@ }, "type": "object" }, + "TranscriptNormalization": { + "description": "Transcription normalization configuration. Use transcription normalization to automatically replace parts of the transcript with phrases of your choosing. For StreamingRecognize, this normalization only applies to stable partial transcripts (stability > 0.8) and final transcripts.", + "id": "TranscriptNormalization", + "properties": { + "entries": { + "description": "A list of replacement entries. We will perform replacement with one entry at a time. For example, the second entry in [\"cat\" => \"dog\", \"mountain cat\" => \"mountain dog\"] will never be applied because we will always process the first entry before it. At most 100 entries.", + "items": { + "$ref": "Entry" + }, + "type": "array" + } + }, + "type": "object" + }, "TranscriptOutputConfig": { "description": "Specifies an optional destination for the recognition results.", "id": "TranscriptOutputConfig", @@ -1291,8 +1466,14 @@ "format": "google-duration", "type": "string" }, + "speakerLabel": { + "description": "Output only. A label value assigned for every unique speaker within the audio. This field specifies which speaker was detected to have spoken this word. For some models, like medical_conversation this can be actual speaker role, for example \"patient\" or \"provider\", but generally this would be a number identifying a speaker. This field is only set if enable_speaker_diarization = 'true' and only for the top alternative.", + "readOnly": true, + "type": "string" + }, "speakerTag": { - "description": "Output only. A distinct integer value is assigned for every speaker within the audio. This field specifies which one of those speakers was detected to have spoken this word. Value ranges from '1' to diarization_speaker_count. speaker_tag is set if enable_speaker_diarization = 'true' and only in the top alternative.", + "deprecated": true, + "description": "Output only. A distinct integer value is assigned for every speaker within the audio. This field specifies which one of those speakers was detected to have spoken this word. Value ranges from '1' to diarization_speaker_count. speaker_tag is set if enable_speaker_diarization = 'true' and only for the top alternative. Note: Use speaker_label instead.", "format": "int32", "readOnly": true, "type": "integer" diff --git a/etc/api/speech/v1p1beta1/speech-api.json b/etc/api/speech/v1p1beta1/speech-api.json index 6896c08af5..1ad93462aa 100644 --- a/etc/api/speech/v1p1beta1/speech-api.json +++ b/etc/api/speech/v1p1beta1/speech-api.json @@ -133,7 +133,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1p1beta1/operations", "httpMethod": "GET", "id": "speech.operations.list", @@ -339,7 +339,7 @@ ], "parameters": { "parent": { - "description": "Required. The parent resource where this phrase set will be created. Format: `projects/{project}/locations/{location}/phraseSets` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", + "description": "Required. The parent resource where this phrase set will be created. Format: `projects/{project}/locations/{location}` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -524,7 +524,7 @@ } } }, - "revision": "20230119", + "revision": "20240222", "rootUrl": "https://speech.googleapis.com/", "schemas": { "ABNFGrammar": { @@ -585,10 +585,40 @@ "description": "A set of words or phrases that represents a common concept likely to appear in your audio, for example a list of passenger ship names. CustomClass items can be substituted into placeholders that you set in PhraseSet phrases.", "id": "CustomClass", "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "Output only. Allows users to store small amounts of arbitrary data. Both the key and the value must be 63 characters or less each. At most 100 annotations. This field is not used.", + "readOnly": true, + "type": "object" + }, "customClassId": { "description": "If this custom class is a resource, the custom_class_id is the resource id of the CustomClass. Case sensitive.", "type": "string" }, + "deleteTime": { + "description": "Output only. The time at which this resource was requested for deletion. This field is not used.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Output only. User-settable, human-readable name for the CustomClass. Must be 63 characters or less. This field is not used.", + "readOnly": true, + "type": "string" + }, + "etag": { + "description": "Output only. This checksum is computed by the server based on the value of other fields. This may be sent on update, undelete, and delete requests to ensure the client has an up-to-date value before proceeding. This field is not used.", + "readOnly": true, + "type": "string" + }, + "expireTime": { + "description": "Output only. The time at which this resource will be purged. This field is not used.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "items": { "description": "A collection of class items.", "items": { @@ -596,9 +626,44 @@ }, "type": "array" }, + "kmsKeyName": { + "description": "Output only. The [KMS key name](https://cloud.google.com/kms/docs/resource-hierarchy#keys) with which the content of the ClassItem is encrypted. The expected format is `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.", + "readOnly": true, + "type": "string" + }, + "kmsKeyVersionName": { + "description": "Output only. The [KMS key version name](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions) with which content of the ClassItem is encrypted. The expected format is `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}`.", + "readOnly": true, + "type": "string" + }, "name": { "description": "The resource name of the custom class.", "type": "string" + }, + "reconciling": { + "description": "Output only. Whether or not this CustomClass is in the process of being updated. This field is not used.", + "readOnly": true, + "type": "boolean" + }, + "state": { + "description": "Output only. The CustomClass lifecycle state. This field is not used.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "DELETED" + ], + "enumDescriptions": [ + "Unspecified state. This is only used/useful for distinguishing unset values.", + "The normal and active state.", + "This CustomClass has been deleted." + ], + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. System-assigned unique identifier for the CustomClass. This field is not used.", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -798,7 +863,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" } }, @@ -824,11 +889,51 @@ "description": "Provides \"hints\" to the speech recognizer to favor specific words and phrases in the results.", "id": "PhraseSet", "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "Output only. Allows users to store small amounts of arbitrary data. Both the key and the value must be 63 characters or less each. At most 100 annotations. This field is not used.", + "readOnly": true, + "type": "object" + }, "boost": { "description": "Hint Boost. Positive value will increase the probability that a specific phrase will be recognized over other similar sounding phrases. The higher the boost, the higher the chance of false positive recognition as well. Negative boost values would correspond to anti-biasing. Anti-biasing is not enabled, so negative boost will simply be ignored. Though `boost` can accept a wide range of positive values, most use cases are best served with values between 0 (exclusive) and 20. We recommend using a binary search approach to finding the optimal value for your use case as well as adding phrases both with and without boost to your requests.", "format": "float", "type": "number" }, + "deleteTime": { + "description": "Output only. The time at which this resource was requested for deletion. This field is not used.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Output only. User-settable, human-readable name for the PhraseSet. Must be 63 characters or less. This field is not used.", + "readOnly": true, + "type": "string" + }, + "etag": { + "description": "Output only. This checksum is computed by the server based on the value of other fields. This may be sent on update, undelete, and delete requests to ensure the client has an up-to-date value before proceeding. This field is not used.", + "readOnly": true, + "type": "string" + }, + "expireTime": { + "description": "Output only. The time at which this resource will be purged. This field is not used.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "kmsKeyName": { + "description": "Output only. The [KMS key name](https://cloud.google.com/kms/docs/resource-hierarchy#keys) with which the content of the PhraseSet is encrypted. The expected format is `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.", + "readOnly": true, + "type": "string" + }, + "kmsKeyVersionName": { + "description": "Output only. The [KMS key version name](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions) with which content of the PhraseSet is encrypted. The expected format is `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}`.", + "readOnly": true, + "type": "string" + }, "name": { "description": "The resource name of the phrase set.", "type": "string" @@ -839,6 +944,31 @@ "$ref": "Phrase" }, "type": "array" + }, + "reconciling": { + "description": "Output only. Whether or not this PhraseSet is in the process of being updated. This field is not used.", + "readOnly": true, + "type": "boolean" + }, + "state": { + "description": "Output only. The CustomClass lifecycle state. This field is not used.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "DELETED" + ], + "enumDescriptions": [ + "Unspecified state. This is only used/useful for distinguishing unset values.", + "The normal and active state.", + "This CustomClass has been deleted." + ], + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. System-assigned unique identifier for the PhraseSet. This field is not used.", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -884,6 +1014,7 @@ "description": "Config to enable speaker diarization and set additional parameters to make diarization better suited for your application. Note: When this is enabled, we send all the words from the beginning of the audio for the top alternative in every consecutive STREAMING responses. This is done in order to improve our speaker tags as our models learn to identify the speakers in the conversation over time. For non-streaming requests, the diarization results will be provided only in the top alternative of the FINAL SpeechRecognitionResult." }, "diarizationSpeakerCount": { + "deprecated": true, "description": "If set, specifies the estimated number of speakers in the conversation. Defaults to '2'. Ignored unless enable_speaker_diarization is set to true. Note: Use diarization_config instead.", "format": "int32", "type": "integer" @@ -897,7 +1028,8 @@ "type": "boolean" }, "enableSpeakerDiarization": { - "description": "If 'true', enables speaker detection for each recognized word in the top alternative of the recognition result using a speaker_tag provided in the WordInfo. Note: Use diarization_config instead.", + "deprecated": true, + "description": "If 'true', enables speaker detection for each recognized word in the top alternative of the recognition result using a speaker_label provided in the WordInfo. Note: Use diarization_config instead.", "type": "boolean" }, "enableSpokenEmojis": { @@ -940,7 +1072,7 @@ "Opus encoded audio frames in Ogg container ([OggOpus](https://wiki.xiph.org/OggOpus)). `sample_rate_hertz` must be one of 8000, 12000, 16000, 24000, or 48000.", "Although the use of lossy encodings is not recommended, if a very low bitrate encoding is required, `OGG_OPUS` is highly preferred over Speex encoding. The [Speex](https://speex.org/) encoding supported by Cloud Speech API has a header byte in each block, as in MIME type `audio/x-speex-with-header-byte`. It is a variant of the RTP Speex encoding defined in [RFC 5574](https://tools.ietf.org/html/rfc5574). The stream is a sequence of blocks, one block per RTP packet. Each block starts with a byte containing the length of the block, in bytes, followed by one or more frames of Speex data, padded to an integral number of bytes (octets) as specified in RFC 5574. In other words, each RTP header is replaced with a single byte containing the block length. Only Speex wideband is supported. `sample_rate_hertz` must be 16000.", "MP3 audio. MP3 encoding is a Beta feature and only available in v1p1beta1. Support all standard MP3 bitrates (which range from 32-320 kbps). When using this encoding, `sample_rate_hertz` has to match the sample rate of the file being used.", - "Opus encoded audio frames in WebM container ([OggOpus](https://wiki.xiph.org/OggOpus)). `sample_rate_hertz` must be one of 8000, 12000, 16000, 24000, or 48000." + "Opus encoded audio frames in WebM container ([WebM](https://www.webmproject.org/docs/container/)). `sample_rate_hertz` must be one of 8000, 12000, 16000, 24000, or 48000." ], "type": "string" }, @@ -979,7 +1111,7 @@ }, "transcriptNormalization": { "$ref": "TranscriptNormalization", - "description": "Use transcription normalization to automatically replace parts of the transcript with phrases of your choosing. For StreamingRecognize, this normalization only applies to stable partial transcripts (stability > 0.8) and final transcripts." + "description": "Optional. Use transcription normalization to automatically replace parts of the transcript with phrases of your choosing. For StreamingRecognize, this normalization only applies to stable partial transcripts (stability > 0.8) and final transcripts." }, "useEnhanced": { "description": "Set to true to use an enhanced model for speech recognition. If `use_enhanced` is set to true and the `model` field is not set, then an appropriate enhanced model is chosen if an enhanced model exists for the audio. If `use_enhanced` is true and an enhanced version of the specified model does not exist, then the speech is recognized using the standard version of the specified model.", @@ -989,6 +1121,7 @@ "type": "object" }, "RecognitionMetadata": { + "deprecated": true, "description": "Description of audio data to be recognized.", "id": "RecognitionMetadata", "properties": { @@ -1044,6 +1177,7 @@ "type": "string" }, "obfuscatedId": { + "deprecated": true, "description": "Obfuscated (privacy-protected) ID of the user, to identify number of unique users using the service.", "format": "int64", "type": "string" @@ -1134,6 +1268,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" @@ -1143,7 +1281,7 @@ "id": "SpeakerDiarizationConfig", "properties": { "enableSpeakerDiarization": { - "description": "If 'true', enables speaker detection for each recognized word in the top alternative of the recognition result using a speaker_tag provided in the WordInfo.", + "description": "If 'true', enables speaker detection for each recognized word in the top alternative of the recognition result using a speaker_label provided in the WordInfo.", "type": "boolean" }, "maxSpeakerCount": { @@ -1157,6 +1295,7 @@ "type": "integer" }, "speakerTag": { + "deprecated": true, "description": "Output only. Unused.", "format": "int32", "readOnly": true, @@ -1349,8 +1488,14 @@ "format": "google-duration", "type": "string" }, + "speakerLabel": { + "description": "Output only. A label value assigned for every unique speaker within the audio. This field specifies which speaker was detected to have spoken this word. For some models, like medical_conversation this can be actual speaker role, for example \"patient\" or \"provider\", but generally this would be a number identifying a speaker. This field is only set if enable_speaker_diarization = 'true' and only for the top alternative.", + "readOnly": true, + "type": "string" + }, "speakerTag": { - "description": "Output only. A distinct integer value is assigned for every speaker within the audio. This field specifies which one of those speakers was detected to have spoken this word. Value ranges from '1' to diarization_speaker_count. speaker_tag is set if enable_speaker_diarization = 'true' and only in the top alternative.", + "deprecated": true, + "description": "Output only. A distinct integer value is assigned for every speaker within the audio. This field specifies which one of those speakers was detected to have spoken this word. Value ranges from '1' to diarization_speaker_count. speaker_tag is set if enable_speaker_diarization = 'true' and only for the top alternative. Note: Use speaker_label instead.", "format": "int32", "readOnly": true, "type": "integer" diff --git a/etc/api/sqladmin/v1/sqladmin-api.json b/etc/api/sqladmin/v1/sqladmin-api.json index f14b057cd4..2c21011e93 100644 --- a/etc/api/sqladmin/v1/sqladmin-api.json +++ b/etc/api/sqladmin/v1/sqladmin-api.json @@ -428,7 +428,7 @@ ] }, "insert": { - "description": "Inserts a resource containing information about a database inside a Cloud SQL instance.", + "description": "Inserts a resource containing information about a database inside a Cloud SQL instance. **Note:** You can't modify the default character set and collation.", "flatPath": "v1/projects/{project}/instances/{instance}/databases", "httpMethod": "POST", "id": "sql.databases.insert", @@ -707,6 +707,41 @@ "https://www.googleapis.com/auth/sqlservice.admin" ] }, + "demote": { + "description": "Demotes an existing standalone instance to be a Cloud SQL read replica for an external database server.", + "flatPath": "v1/projects/{project}/instances/{instance}/demote", + "httpMethod": "POST", + "id": "sql.instances.demote", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Required. Cloud SQL instance name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Required. ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/demote", + "request": { + "$ref": "InstancesDemoteRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, "demoteMaster": { "description": "Demotes the stand-alone instance to be a Cloud SQL read replica for an external database server.", "flatPath": "v1/projects/{project}/instances/{instance}/demoteMaster", @@ -1023,6 +1058,11 @@ "instance" ], "parameters": { + "failover": { + "description": "Set to true if the promote operation should attempt to re-add the original primary as a replica when it comes back online. Otherwise, if this value is false or not set, the original primary will be a standalone instance.", + "location": "query", + "type": "boolean" + }, "instance": { "description": "Cloud SQL read replica instance name.", "location": "path", @@ -1045,6 +1085,41 @@ "https://www.googleapis.com/auth/sqlservice.admin" ] }, + "reencrypt": { + "description": "Reencrypt CMEK instance with latest key version.", + "flatPath": "v1/projects/{project}/instances/{instance}/reencrypt", + "httpMethod": "POST", + "id": "sql.instances.reencrypt", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/reencrypt", + "request": { + "$ref": "InstancesReencryptRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, "resetSslConfig": { "description": "Deletes all client certificates and generates a new server SSL certificate for the instance.", "flatPath": "v1/projects/{project}/instances/{instance}/resetSslConfig", @@ -1243,6 +1318,44 @@ "https://www.googleapis.com/auth/sqlservice.admin" ] }, + "switchover": { + "description": "Switches over from the primary instance to the replica instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/switchover", + "httpMethod": "POST", + "id": "sql.instances.switchover", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "dbTimeout": { + "description": "Optional. (MySQL only) Cloud SQL instance operations timeout, which is a sum of all database operations. Default value is 10 minutes and can be modified to a maximum value of 24 hours.", + "format": "google-duration", + "location": "query", + "type": "string" + }, + "instance": { + "description": "Cloud SQL read replica instance name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "ID of the project that contains the replica.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/switchover", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, "truncateLog": { "description": "Truncate MySQL general and slow query log tables MySQL only.", "flatPath": "v1/projects/{project}/instances/{instance}/truncateLog", @@ -1317,6 +1430,38 @@ }, "operations": { "methods": { + "cancel": { + "description": "Cancels an instance operation that has been performed on an instance.", + "flatPath": "v1/projects/{project}/operations/{operation}/cancel", + "httpMethod": "POST", + "id": "sql.operations.cancel", + "parameterOrder": [ + "project", + "operation" + ], + "parameters": { + "operation": { + "description": "Instance operation ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/operations/{operation}/cancel", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, "get": { "description": "Retrieves an instance operation that has been performed on an instance.", "flatPath": "v1/projects/{project}/operations/{operation}", @@ -1396,6 +1541,105 @@ "resources": { "instances": { "methods": { + "getDiskShrinkConfig": { + "description": "Get Disk Shrink Config for a given instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/getDiskShrinkConfig", + "httpMethod": "GET", + "id": "sql.projects.instances.getDiskShrinkConfig", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/getDiskShrinkConfig", + "response": { + "$ref": "SqlInstancesGetDiskShrinkConfigResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "getLatestRecoveryTime": { + "description": "Get Latest Recovery Time for a given instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/getLatestRecoveryTime", + "httpMethod": "GET", + "id": "sql.projects.instances.getLatestRecoveryTime", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/getLatestRecoveryTime", + "response": { + "$ref": "SqlInstancesGetLatestRecoveryTimeResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "performDiskShrink": { + "description": "Perform Disk Shrink on primary instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/performDiskShrink", + "httpMethod": "POST", + "id": "sql.projects.instances.performDiskShrink", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/performDiskShrink", + "request": { + "$ref": "PerformDiskShrinkContext" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, "rescheduleMaintenance": { "description": "Reschedules the maintenance on the given instance.", "flatPath": "v1/projects/{project}/instances/{instance}/rescheduleMaintenance", @@ -1431,6 +1675,41 @@ "https://www.googleapis.com/auth/sqlservice.admin" ] }, + "resetReplicaSize": { + "description": "Reset Replica Size to primary instance disk size.", + "flatPath": "v1/projects/{project}/instances/{instance}/resetReplicaSize", + "httpMethod": "POST", + "id": "sql.projects.instances.resetReplicaSize", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL read replica instance name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "ID of the project that contains the read replica.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/resetReplicaSize", + "request": { + "$ref": "SqlInstancesResetReplicaSizeRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, "startExternalSync": { "description": "Start External primary instance migration.", "flatPath": "v1/projects/{project}/instances/{instance}/startExternalSync", @@ -1921,7 +2200,7 @@ } } }, - "revision": "20221209", + "revision": "20240219", "rootUrl": "https://sqladmin.googleapis.com/", "schemas": { "AclEntry": { @@ -1948,6 +2227,18 @@ }, "type": "object" }, + "AdvancedMachineFeatures": { + "description": "Specifies options for controlling advanced machine features.", + "id": "AdvancedMachineFeatures", + "properties": { + "threadsPerCore": { + "description": "The number of threads per physical core.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "ApiWarning": { "description": "An Admin API warning message.", "id": "ApiWarning", @@ -1957,12 +2248,16 @@ "enum": [ "SQL_API_WARNING_CODE_UNSPECIFIED", "REGION_UNREACHABLE", - "MAX_RESULTS_EXCEEDS_LIMIT" + "MAX_RESULTS_EXCEEDS_LIMIT", + "COMPROMISED_CREDENTIALS", + "INTERNAL_STATE_FAILURE" ], "enumDescriptions": [ "An unknown or unset warning type from Cloud SQL API.", "Warning when one or more regions are not reachable. The returned result set may be incomplete.", - "Warning when user provided maxResults parameter exceeds the limit. The returned result set may be incomplete." + "Warning when user provided maxResults parameter exceeds the limit. The returned result set may be incomplete.", + "Warning when user tries to create/update a user with credentials that have previously been compromised by a public data breach.", + "Warning when the operation succeeds but some non-critical workflow state failed." ], "type": "string" }, @@ -2002,7 +2297,7 @@ "type": "string" }, "pointInTimeRecoveryEnabled": { - "description": "(Postgres only) Whether point in time recovery is enabled.", + "description": "Whether point in time recovery is enabled.", "type": "boolean" }, "replicationLogArchivingEnabled": { @@ -2037,6 +2332,32 @@ }, "type": "object" }, + "BackupReencryptionConfig": { + "description": "Backup Reencryption Config", + "id": "BackupReencryptionConfig", + "properties": { + "backupLimit": { + "description": "Backup re-encryption limit", + "format": "int32", + "type": "integer" + }, + "backupType": { + "description": "Type of backups users want to re-encrypt.", + "enum": [ + "BACKUP_TYPE_UNSPECIFIED", + "AUTOMATED", + "ON_DEMAND" + ], + "enumDescriptions": [ + "Unknown backup type, will be defaulted to AUTOMATIC backup type", + "Reencrypt automatic backups", + "Reencrypt on-demand backups" + ], + "type": "string" + } + }, + "type": "object" + }, "BackupRetentionSettings": { "description": "We currently only support backup retention by specifying the number of backups we will retain.", "id": "BackupRetentionSettings", @@ -2263,6 +2584,10 @@ "description": "Timestamp, if specified, identifies the time to which the source instance is cloned.", "format": "google-datetime", "type": "string" + }, + "preferredZone": { + "description": "Optional. (Point-in-time recovery for PostgreSQL only) Clone to an instance in the specified zone. If no zone is specified, clone to the same zone as the source instance.", + "type": "string" } }, "type": "object" @@ -2279,6 +2604,12 @@ "SECOND_GEN", "EXTERNAL" ], + "enumDeprecated": [ + false, + true, + false, + false + ], "enumDescriptions": [ "This is an unknown backend type for instance.", "V1 speckle instance.", @@ -2305,6 +2636,7 @@ "POSTGRES_12", "POSTGRES_13", "POSTGRES_14", + "POSTGRES_15", "MYSQL_8_0", "MYSQL_8_0_18", "MYSQL_8_0_26", @@ -2313,10 +2645,58 @@ "MYSQL_8_0_29", "MYSQL_8_0_30", "MYSQL_8_0_31", + "MYSQL_8_0_32", + "MYSQL_8_0_33", + "MYSQL_8_0_34", + "MYSQL_8_0_35", + "MYSQL_8_0_36", "SQLSERVER_2019_STANDARD", "SQLSERVER_2019_ENTERPRISE", "SQLSERVER_2019_EXPRESS", - "SQLSERVER_2019_WEB" + "SQLSERVER_2019_WEB", + "SQLSERVER_2022_STANDARD", + "SQLSERVER_2022_ENTERPRISE", + "SQLSERVER_2022_EXPRESS", + "SQLSERVER_2022_WEB" + ], + "enumDeprecated": [ + false, + true, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "This is an unknown database version.", @@ -2334,6 +2714,7 @@ "The database version is PostgreSQL 12.", "The database version is PostgreSQL 13.", "The database version is PostgreSQL 14.", + "The database version is PostgreSQL 15.", "The database version is MySQL 8.", "The database major version is MySQL 8.0 and the minor version is 18.", "The database major version is MySQL 8.0 and the minor version is 26.", @@ -2342,13 +2723,26 @@ "The database major version is MySQL 8.0 and the minor version is 29.", "The database major version is MySQL 8.0 and the minor version is 30.", "The database major version is MySQL 8.0 and the minor version is 31.", + "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.", + "The database major version is MySQL 8.0 and the minor version is 36.", "The database version is SQL Server 2019 Standard.", "The database version is SQL Server 2019 Enterprise.", "The database version is SQL Server 2019 Express.", - "The database version is SQL Server 2019 Web." + "The database version is SQL Server 2019 Web.", + "The database version is SQL Server 2022 Standard.", + "The database version is SQL Server 2022 Enterprise.", + "The database version is SQL Server 2022 Express.", + "The database version is SQL Server 2022 Web." ], "type": "string" }, + "dnsName": { + "description": "The dns name of the instance.", + "type": "string" + }, "ipAddresses": { "description": "The assigned IP addresses for the instance.", "items": { @@ -2360,6 +2754,10 @@ "description": "This is always `sql#connectSettings`.", "type": "string" }, + "pscEnabled": { + "description": "Whether PSC connectivity is enabled for this instance.", + "type": "boolean" + }, "region": { "description": "The cloud region for the instance. For example, `us-central1`, `europe-west1`. The region cannot be changed after instance creation.", "type": "string" @@ -2371,6 +2769,17 @@ }, "type": "object" }, + "DataCacheConfig": { + "description": "Data cache configurations.", + "id": "DataCacheConfig", + "properties": { + "dataCacheEnabled": { + "description": "Whether data cache is enabled for the instance.", + "type": "boolean" + } + }, + "type": "object" + }, "Database": { "description": "Represents a SQL database on the Cloud SQL instance.", "id": "Database", @@ -2433,10 +2842,11 @@ "id": "DatabaseInstance", "properties": { "availableMaintenanceVersions": { - "description": "List all maintenance versions applicable on the instance", + "description": "Output only. List all maintenance versions applicable on the instance", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, "backendType": { @@ -2447,6 +2857,12 @@ "SECOND_GEN", "EXTERNAL" ], + "enumDeprecated": [ + false, + true, + false, + false + ], "enumDescriptions": [ "This is an unknown backend type for instance.", "V1 speckle instance.", @@ -2466,6 +2882,7 @@ "type": "string" }, "currentDiskSize": { + "deprecated": true, "description": "The current disk usage of the instance in bytes. This property has been deprecated. Use the \"cloudsql.googleapis.com/database/disk/bytes_used\" metric in Cloud Monitoring API instead. Please see [this announcement](https://groups.google.com/d/msg/google-cloud-sql-announce/I_7-F9EBhT0/BtvFtdFeAgAJ) for details.", "format": "int64", "type": "string" @@ -2493,6 +2910,7 @@ "POSTGRES_12", "POSTGRES_13", "POSTGRES_14", + "POSTGRES_15", "MYSQL_8_0", "MYSQL_8_0_18", "MYSQL_8_0_26", @@ -2501,10 +2919,58 @@ "MYSQL_8_0_29", "MYSQL_8_0_30", "MYSQL_8_0_31", + "MYSQL_8_0_32", + "MYSQL_8_0_33", + "MYSQL_8_0_34", + "MYSQL_8_0_35", + "MYSQL_8_0_36", "SQLSERVER_2019_STANDARD", "SQLSERVER_2019_ENTERPRISE", "SQLSERVER_2019_EXPRESS", - "SQLSERVER_2019_WEB" + "SQLSERVER_2019_WEB", + "SQLSERVER_2022_STANDARD", + "SQLSERVER_2022_ENTERPRISE", + "SQLSERVER_2022_EXPRESS", + "SQLSERVER_2022_WEB" + ], + "enumDeprecated": [ + false, + true, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "This is an unknown database version.", @@ -2522,6 +2988,7 @@ "The database version is PostgreSQL 12.", "The database version is PostgreSQL 13.", "The database version is PostgreSQL 14.", + "The database version is PostgreSQL 15.", "The database version is MySQL 8.", "The database major version is MySQL 8.0 and the minor version is 18.", "The database major version is MySQL 8.0 and the minor version is 26.", @@ -2530,10 +2997,19 @@ "The database major version is MySQL 8.0 and the minor version is 29.", "The database major version is MySQL 8.0 and the minor version is 30.", "The database major version is MySQL 8.0 and the minor version is 31.", + "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.", + "The database major version is MySQL 8.0 and the minor version is 36.", "The database version is SQL Server 2019 Standard.", "The database version is SQL Server 2019 Enterprise.", "The database version is SQL Server 2019 Express.", - "The database version is SQL Server 2019 Web." + "The database version is SQL Server 2019 Web.", + "The database version is SQL Server 2022 Standard.", + "The database version is SQL Server 2022 Enterprise.", + "The database version is SQL Server 2022 Express.", + "The database version is SQL Server 2022 Web." ], "type": "string" }, @@ -2545,6 +3021,11 @@ "$ref": "DiskEncryptionStatus", "description": "Disk encryption status specific to an instance." }, + "dnsName": { + "description": "Output only. The dns name of the instance.", + "readOnly": true, + "type": "string" + }, "etag": { "description": "This field is deprecated and will be removed from a future version of the API. Use the `settings.settingsVersion` field instead.", "type": "string" @@ -2591,6 +3072,7 @@ "type": "array" }, "ipv6Address": { + "deprecated": true, "description": "The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.", "type": "string" }, @@ -2607,6 +3089,7 @@ "type": "string" }, "maxDiskSize": { + "deprecated": true, "description": "The maximum disk size of the instance in bytes.", "format": "int64", "type": "string" @@ -2623,12 +3106,23 @@ "$ref": "SqlOutOfDiskReport", "description": "This field represents the report generated by the proactive database wellness job for OutOfDisk issues. * Writers: * the proactive database wellness job for OOD. * Readers: * the proactive database wellness job" }, + "primaryDnsName": { + "deprecated": true, + "description": "Output only. DEPRECATED: please use write_endpoint instead.", + "readOnly": true, + "type": "string" + }, "project": { "description": "The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.", "type": "string" }, + "pscServiceAttachmentLink": { + "description": "Output only. The link to service attachment of PSC instance.", + "readOnly": true, + "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": { @@ -2674,6 +3168,19 @@ "$ref": "Settings", "description": "The user settings." }, + "sqlNetworkArchitecture": { + "enum": [ + "SQL_NETWORK_ARCHITECTURE_UNSPECIFIED", + "NEW_NETWORK_ARCHITECTURE", + "OLD_NETWORK_ARCHITECTURE" + ], + "enumDescriptions": [ + "", + "The instance uses the new network architecture.", + "The instance uses the old network architecture." + ], + "type": "string" + }, "state": { "description": "The current serving state of the Cloud SQL instance.", "enum": [ @@ -2686,6 +3193,16 @@ "FAILED", "ONLINE_MAINTENANCE" ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + false, + true + ], "enumDescriptions": [ "The state of the instance is unknown.", "The instance is running, or has been stopped by owner.", @@ -2718,6 +3235,11 @@ "type": "string" }, "type": "array" + }, + "writeEndpoint": { + "description": "Output only. The dns name of the primary instance in a replication group.", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -2740,6 +3262,21 @@ }, "type": "object" }, + "DemoteContext": { + "description": "This context is used to demote an existing standalone instance to be a Cloud SQL read replica for an external database server.", + "id": "DemoteContext", + "properties": { + "kind": { + "description": "This is always `sql#demoteContext`.", + "type": "string" + }, + "sourceRepresentativeInstanceName": { + "description": "Required. The name of the instance which acts as the on-premises primary instance in the replication setup.", + "type": "string" + } + }, + "type": "object" + }, "DemoteMasterConfiguration": { "description": "Read-replica configuration for connecting to the on-premises primary instance.", "id": "DemoteMasterConfiguration", @@ -2862,6 +3399,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" + }, "ExportContext": { "description": "Database instance export context.", "id": "ExportContext", @@ -2869,6 +3412,31 @@ "bakExportOptions": { "description": "Options for exporting BAK files (SQL Server-only)", "properties": { + "bakType": { + "description": "Type of this bak file will be export, FULL or DIFF, SQL Server only", + "enum": [ + "BAK_TYPE_UNSPECIFIED", + "FULL", + "DIFF", + "TLOG" + ], + "enumDescriptions": [ + "Default type.", + "Full backup.", + "Differential backup.", + "Transaction Log backup" + ], + "type": "string" + }, + "copyOnly": { + "deprecated": true, + "description": "Deprecated: copy_only is deprecated. Use differential_base instead", + "type": "boolean" + }, + "differentialBase": { + "description": "Whether or not the backup can be used as a differential base copy_only backup can not be served as differential base", + "type": "boolean" + }, "stripeCount": { "description": "Option for specifying how many stripes to use for the export. If blank, and the value of the striped field is true, the number of stripes is automatically chosen.", "format": "int32", @@ -2952,6 +3520,10 @@ }, "type": "object" }, + "parallel": { + "description": "Optional. Whether or not the export should be parallel.", + "type": "boolean" + }, "schemaOnly": { "description": "Export only schemas.", "type": "boolean" @@ -2962,6 +3534,11 @@ "type": "string" }, "type": "array" + }, + "threads": { + "description": "Optional. The number of threads to use for parallel export.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -3027,6 +3604,7 @@ "POSTGRES_12", "POSTGRES_13", "POSTGRES_14", + "POSTGRES_15", "MYSQL_8_0", "MYSQL_8_0_18", "MYSQL_8_0_26", @@ -3035,10 +3613,58 @@ "MYSQL_8_0_29", "MYSQL_8_0_30", "MYSQL_8_0_31", + "MYSQL_8_0_32", + "MYSQL_8_0_33", + "MYSQL_8_0_34", + "MYSQL_8_0_35", + "MYSQL_8_0_36", "SQLSERVER_2019_STANDARD", "SQLSERVER_2019_ENTERPRISE", "SQLSERVER_2019_EXPRESS", - "SQLSERVER_2019_WEB" + "SQLSERVER_2019_WEB", + "SQLSERVER_2022_STANDARD", + "SQLSERVER_2022_ENTERPRISE", + "SQLSERVER_2022_EXPRESS", + "SQLSERVER_2022_WEB" + ], + "enumDeprecated": [ + false, + true, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "This is an unknown database version.", @@ -3056,6 +3682,7 @@ "The database version is PostgreSQL 12.", "The database version is PostgreSQL 13.", "The database version is PostgreSQL 14.", + "The database version is PostgreSQL 15.", "The database version is MySQL 8.", "The database major version is MySQL 8.0 and the minor version is 18.", "The database major version is MySQL 8.0 and the minor version is 26.", @@ -3064,10 +3691,19 @@ "The database major version is MySQL 8.0 and the minor version is 29.", "The database major version is MySQL 8.0 and the minor version is 30.", "The database major version is MySQL 8.0 and the minor version is 31.", + "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.", + "The database major version is MySQL 8.0 and the minor version is 36.", "The database version is SQL Server 2019 Standard.", "The database version is SQL Server 2019 Enterprise.", "The database version is SQL Server 2019 Express.", - "The database version is SQL Server 2019 Web." + "The database version is SQL Server 2019 Web.", + "The database version is SQL Server 2022 Standard.", + "The database version is SQL Server 2022 Enterprise.", + "The database version is SQL Server 2022 Express.", + "The database version is SQL Server 2022 Web." ], "type": "string" }, @@ -3187,6 +3823,22 @@ "bakImportOptions": { "description": "Import parameters specific to SQL Server .BAK files", "properties": { + "bakType": { + "description": "Type of the bak content, FULL or DIFF", + "enum": [ + "BAK_TYPE_UNSPECIFIED", + "FULL", + "DIFF", + "TLOG" + ], + "enumDescriptions": [ + "Default type.", + "Full backup.", + "Differential backup.", + "Transaction Log backup" + ], + "type": "string" + }, "encryptionOptions": { "properties": { "certPath": { @@ -3204,6 +3856,23 @@ }, "type": "object" }, + "noRecovery": { + "description": "Whether or not the backup importing will restore database with NORECOVERY option Applies only to Cloud SQL for SQL Server.", + "type": "boolean" + }, + "recoveryOnly": { + "description": "Whether or not the backup importing request will just bring database online without downloading Bak content only one of \"no_recovery\" and \"recovery_only\" can be true otherwise error will return. Applies only to Cloud SQL for SQL Server.", + "type": "boolean" + }, + "stopAt": { + "description": "Optional. The timestamp when the import should stop. This timestamp is in the [RFC 3339](https://tools.ietf.org/html/rfc3339) format (for example, `2023-10-01T16:19:00.094`). This field is equivalent to the STOPAT keyword and applies to Cloud SQL for SQL Server only.", + "format": "google-datetime", + "type": "string" + }, + "stopAtMark": { + "description": "Optional. The marked transaction where the import should stop. This field is equivalent to the STOPATMARK keyword and applies to Cloud SQL for SQL Server only.", + "type": "string" + }, "striped": { "description": "Whether or not the backup set being restored is striped. Applies only to Cloud SQL for SQL Server.", "type": "boolean" @@ -3349,6 +4018,17 @@ }, "type": "object" }, + "InstancesDemoteRequest": { + "description": "This request is used to demote an existing standalone instance to be a Cloud SQL read replica for an external database server.", + "id": "InstancesDemoteRequest", + "properties": { + "demoteContext": { + "$ref": "DemoteContext", + "description": "Required. Contains details about the demote operation." + } + }, + "type": "object" + }, "InstancesExportRequest": { "description": "Database instance export request.", "id": "InstancesExportRequest", @@ -3432,6 +4112,17 @@ }, "type": "object" }, + "InstancesReencryptRequest": { + "description": "Database Instance reencrypt request.", + "id": "InstancesReencryptRequest", + "properties": { + "backupReencryptionConfig": { + "$ref": "BackupReencryptionConfig", + "description": "Configuration specific to backup re-encryption" + } + }, + "type": "object" + }, "InstancesRestoreBackupRequest": { "description": "Database instance restore backup request.", "id": "InstancesRestoreBackupRequest", @@ -3492,15 +4183,35 @@ "description": "The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, `/projects/myProject/global/networks/default`. This setting can be updated, but it cannot be removed after it is set.", "type": "string" }, + "pscConfig": { + "$ref": "PscConfig", + "description": "PSC settings for this instance." + }, "requireSsl": { - "description": "Whether SSL connections over IP are enforced or not.", + "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 `require_ssl` flag.", "type": "boolean" + }, + "sslMode": { + "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", + "ENCRYPTED_ONLY", + "TRUSTED_CLIENT_CERTIFICATE_REQUIRED" + ], + "enumDescriptions": [ + "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. 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" } }, "type": "object" }, "IpMapping": { - "description": "Database instance IP Mapping.", + "description": "Database instance IP mapping", "id": "IpMapping", "properties": { "ipAddress": { @@ -3538,6 +4249,7 @@ "id": "LocationPreference", "properties": { "followGaeApplication": { + "deprecated": true, "description": "The App Engine application to follow, it must be in the same region as the Cloud SQL instance. WARNING: Changing this might restart the instance.", "type": "string" }, @@ -3546,7 +4258,7 @@ "type": "string" }, "secondaryZone": { - "description": "The preferred Compute Engine zone for the secondary/failover (for example: us-central1-a, us-central1-b, etc.).", + "description": "The preferred Compute Engine zone for the secondary/failover (for example: us-central1-a, us-central1-b, etc.). To disable this field, set it to 'no_secondary_zone'.", "type": "string" }, "zone": { @@ -3579,12 +4291,14 @@ "enum": [ "SQL_UPDATE_TRACK_UNSPECIFIED", "canary", - "stable" + "stable", + "week5" ], "enumDescriptions": [ "This is an unknown maintenance timing preference.", "For instance update that requires a restart, this update track indicates your instance prefer to restart for new version early in maintenance window.", - "For instance update that requires a restart, this update track indicates your instance prefer to let Cloud SQL choose the timing of restart (within its Maintenance window, if applicable)." + "For instance update that requires a restart, this update track indicates your instance prefer to let Cloud SQL choose the timing of restart (within its Maintenance window, if applicable).", + "For instance update that requires a restart, this update track indicates your instance prefer to let Cloud SQL choose the timing of restart (within its Maintenance window, if applicable) to be at least 5 weeks after the notification." ], "type": "string" } @@ -3705,6 +4419,10 @@ "description": "An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.", "id": "Operation", "properties": { + "apiWarning": { + "$ref": "ApiWarning", + "description": "An Admin API warning message." + }, "backupContext": { "$ref": "BackupContext", "description": "The context for backup operation, if applicable." @@ -3778,7 +4496,50 @@ "RESCHEDULE_MAINTENANCE", "START_EXTERNAL_SYNC", "LOG_CLEANUP", - "AUTO_RESTART" + "AUTO_RESTART", + "REENCRYPT", + "SWITCHOVER" + ], + "enumDeprecated": [ + false, + false, + false, + false, + 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, + true, + true, + true, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "Unknown operation type.", @@ -3817,7 +4578,9 @@ "Reschedule maintenance to another time.", "Starts external sync of a Cloud SQL EM replica to an external primary instance.", "Recovers logs from an instance's old data disk.", - "Performs auto-restart of an HA-enabled Cloud SQL database for auto recovery." + "Performs auto-restart of an HA-enabled Cloud SQL database for auto recovery.", + "Re-encrypts CMEK instances with latest key version.", + "Switches over to replica instance from primary." ], "type": "string" }, @@ -3901,6 +4664,50 @@ }, "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" + }, + "cancelRequested": { + "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" + }, + "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" + }, + "statusDetail": { + "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" + }, "OperationsListResponse": { "description": "Operations list response.", "id": "OperationsListResponse", @@ -3955,6 +4762,11 @@ ], "type": "string" }, + "disallowCompromisedCredentials": { + "deprecated": true, + "description": "This field is deprecated and will be removed in a future version of the API.", + "type": "boolean" + }, "disallowUsernameSubstring": { "description": "Disallow username as a part of the password.", "type": "boolean" @@ -3981,10 +4793,44 @@ }, "type": "object" }, + "PerformDiskShrinkContext": { + "description": "Perform disk shrink context.", + "id": "PerformDiskShrinkContext", + "properties": { + "targetSizeGb": { + "description": "The target disk shrink size in GigaBytes.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "PscConfig": { + "description": "PSC settings for a Cloud SQL instance.", + "id": "PscConfig", + "properties": { + "allowedConsumerProjects": { + "description": "Optional. The list of consumer projects that are allow-listed for PSC connections to this instance. This instance can be connected to with PSC from any network in these projects. Each consumer project in this list may be represented by a project number (numeric) or by a project id (alphanumeric).", + "items": { + "type": "string" + }, + "type": "array" + }, + "pscEnabled": { + "description": "Whether PSC connectivity is enabled for this instance.", + "type": "boolean" + } + }, + "type": "object" + }, "ReplicaConfiguration": { "description": "Read-replica configuration for connecting to the primary instance.", "id": "ReplicaConfiguration", "properties": { + "cascadableReplica": { + "description": "Optional. Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it.", + "type": "boolean" + }, "failoverTarget": { "description": "Specifies if the replica is the failover target. If the field is set to `true`, the replica will be designated as a failover replica. In case the primary instance fails, the replica instance will be promoted as the new primary instance. Only one replica can be specified as failover target, and the replica has to be in different zone with the primary instance.", "type": "boolean" @@ -4078,6 +4924,12 @@ "NEVER", "ON_DEMAND" ], + "enumDeprecated": [ + false, + false, + false, + true + ], "enumDescriptions": [ "Unknown activation plan.", "The instance is always up and running.", @@ -4090,7 +4942,12 @@ "$ref": "SqlActiveDirectoryConfig", "description": "Active Directory configuration, relevant only for Cloud SQL for SQL Server." }, + "advancedMachineFeatures": { + "$ref": "AdvancedMachineFeatures", + "description": "Specifies advance machine configuration for the instance relevant only for SQL Server." + }, "authorizedGaeApplications": { + "deprecated": true, "description": "The App Engine app IDs that can access this instance. (Deprecated) Applied to First Generation instances only.", "items": { "type": "string" @@ -4134,9 +4991,14 @@ "type": "string" }, "crashSafeReplicationEnabled": { + "deprecated": true, "description": "Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property was only applicable to First Generation instances.", "type": "boolean" }, + "dataCacheConfig": { + "$ref": "DataCacheConfig", + "description": "Configuration for data cache." + }, "dataDiskSizeGb": { "description": "The size of data disk, in GB. The data disk size minimum is 10GB.", "format": "int64", @@ -4150,6 +5012,12 @@ "PD_HDD", "OBSOLETE_LOCAL_SSD" ], + "enumDeprecated": [ + false, + false, + false, + true + ], "enumDescriptions": [ "This is an unknown data disk type.", "An SSD data disk.", @@ -4180,6 +5048,20 @@ }, "type": "array" }, + "edition": { + "description": "Optional. The edition of the instance.", + "enum": [ + "EDITION_UNSPECIFIED", + "ENTERPRISE", + "ENTERPRISE_PLUS" + ], + "enumDescriptions": [ + "The instance did not specify the edition.", + "The instance is an enterprise edition.", + "The instance is an Enterprise Plus edition." + ], + "type": "string" + }, "insightsConfig": { "$ref": "InsightsConfig", "description": "Insights configuration, for now relevant only for Postgres." @@ -4219,6 +5101,7 @@ "type": "string" }, "replicationType": { + "deprecated": true, "description": "The type of replication this instance uses. This can be either `ASYNCHRONOUS` or `SYNCHRONOUS`. (Deprecated) This property was only applicable to First Generation instances.", "enum": [ "SQL_REPLICATION_TYPE_UNSPECIFIED", @@ -4325,7 +5208,24 @@ "UNSUPPORTED_BINLOG_FORMAT", "BINLOG_RETENTION_SETTING", "UNSUPPORTED_STORAGE_ENGINE", - "LIMITED_SUPPORT_TABLES" + "LIMITED_SUPPORT_TABLES", + "EXISTING_DATA_IN_REPLICA", + "MISSING_OPTIONAL_PRIVILEGES", + "RISKY_BACKUP_ADMIN_PRIVILEGE", + "INSUFFICIENT_GCS_PERMISSIONS", + "INVALID_FILE_INFO", + "UNSUPPORTED_DATABASE_SETTINGS", + "MYSQL_PARALLEL_IMPORT_INSUFFICIENT_PRIVILEGE", + "LOCAL_INFILE_OFF", + "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": [ "", @@ -4333,7 +5233,7 @@ "", "", "", - "", + "The replication user is missing privileges that are required.", "Unsupported migration type.", "No pglogical extension installed on databases, applicable for postgres.", "pglogical node already exists on databases, applicable for postgres.", @@ -4342,7 +5242,7 @@ "The value of parameter max_replication_slots is not sufficient.", "The value of parameter max_wal_senders is not sufficient.", "The value of parameter max_worker_processes is not sufficient.", - "Extensions installed are either not supported or having unsupported versions", + "Extensions installed are either not supported or having unsupported versions.", "The value of parameter rds.logical_replication is not set to 1.", "The primary instance logging setup doesn't allow EM sync.", "The primary instance database parameter setup doesn't allow EM sync.", @@ -4350,18 +5250,71 @@ "SQL Server Agent is not running.", "The table definition is not support due to missing primary key or replica identity, applicable for postgres.", "The customer has a definer that will break EM setup.", - "SQL Server @@SERVERNAME does not match actual host name", + "SQL Server @@SERVERNAME does not match actual host name.", "The primary instance has been setup and will fail the setup.", "The primary instance has unsupported binary log format.", "The primary instance's binary log retention setting.", "The primary instance has tables with unsupported storage engine.", - "Source has tables with limited support eg: PostgreSQL tables without primary keys" + "Source has tables with limited support eg: PostgreSQL tables without primary keys.", + "The replica instance contains existing data.", + "The replication user is missing privileges that are optional.", + "Additional BACKUP_ADMIN privilege is granted to the replication user which may lock source MySQL 8 instance for DDLs during initial sync.", + "The Cloud Storage bucket is missing necessary permissions.", + "The Cloud Storage bucket has an error in the file or contains invalid file information.", + "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.", + "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" } }, "type": "object" }, + "SqlInstancesGetDiskShrinkConfigResponse": { + "description": "Instance get disk shrink config response.", + "id": "SqlInstancesGetDiskShrinkConfigResponse", + "properties": { + "kind": { + "description": "This is always `sql#getDiskShrinkConfig`.", + "type": "string" + }, + "message": { + "description": "Additional message to customers.", + "type": "string" + }, + "minimalTargetSizeGb": { + "description": "The minimum size to which a disk can be shrunk in GigaBytes.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "SqlInstancesGetLatestRecoveryTimeResponse": { + "description": "Instance get latest recovery time response.", + "id": "SqlInstancesGetLatestRecoveryTimeResponse", + "properties": { + "kind": { + "description": "This is always `sql#getLatestRecoveryTime`.", + "type": "string" + }, + "latestRecoveryTime": { + "description": "Timestamp, identifies the latest recovery time of the source instance.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "SqlInstancesRescheduleMaintenanceRequestBody": { "description": "Reschedule options for maintenance windows.", "id": "SqlInstancesRescheduleMaintenanceRequestBody", @@ -4373,6 +5326,12 @@ }, "type": "object" }, + "SqlInstancesResetReplicaSizeRequest": { + "description": "Instance reset replica size request.", + "id": "SqlInstancesResetReplicaSizeRequest", + "properties": {}, + "type": "object" + }, "SqlInstancesStartExternalSyncRequest": { "description": "Instance start external sync request.", "id": "SqlInstancesStartExternalSyncRequest", @@ -4398,6 +5357,22 @@ "Offline external sync only dumps and loads a one-time snapshot of the primary instance's data" ], "type": "string" + }, + "syncParallelLevel": { + "description": "Optional. Parallel level for initial data sync. Currently only applicable for MySQL.", + "enum": [ + "EXTERNAL_SYNC_PARALLEL_LEVEL_UNSPECIFIED", + "MIN", + "OPTIMAL", + "MAX" + ], + "enumDescriptions": [ + "Unknown sync parallel level. Will be defaulted to OPTIMAL.", + "Minimal parallel level.", + "Optimal parallel level.", + "Maximum parallel level." + ], + "type": "string" } }, "type": "object" @@ -4491,6 +5466,7 @@ "id": "SqlScheduledMaintenance", "properties": { "canDefer": { + "deprecated": true, "type": "boolean" }, "canReschedule": { @@ -4836,12 +5812,18 @@ "enum": [ "BUILT_IN", "CLOUD_IAM_USER", - "CLOUD_IAM_SERVICE_ACCOUNT" + "CLOUD_IAM_SERVICE_ACCOUNT", + "CLOUD_IAM_GROUP", + "CLOUD_IAM_GROUP_USER", + "CLOUD_IAM_GROUP_SERVICE_ACCOUNT" ], "enumDescriptions": [ "The database's built-in user type.", "Cloud IAM user.", - "Cloud IAM service account." + "Cloud IAM service account.", + "Cloud IAM group non-login user.", + "Cloud IAM group login user.", + "Cloud IAM group login service account." ], "type": "string" } @@ -4894,7 +5876,8 @@ "type": "string" }, "nextPageToken": { - "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.", + "deprecated": true, + "description": "Unused.", "type": "string" } }, diff --git a/etc/api/sqladmin/v1beta4/sqladmin-api.json b/etc/api/sqladmin/v1beta4/sqladmin-api.json index 4a450c7e58..d577d54851 100644 --- a/etc/api/sqladmin/v1beta4/sqladmin-api.json +++ b/etc/api/sqladmin/v1beta4/sqladmin-api.json @@ -428,7 +428,7 @@ ] }, "insert": { - "description": "Inserts a resource containing information about a database inside a Cloud SQL instance.", + "description": "Inserts a resource containing information about a database inside a Cloud SQL instance. **Note:** You can't modify the default character set and collation.", "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/databases", "httpMethod": "POST", "id": "sql.databases.insert", @@ -707,6 +707,41 @@ "https://www.googleapis.com/auth/sqlservice.admin" ] }, + "demote": { + "description": "Demotes an existing standalone instance to be a Cloud SQL read replica for an external database server.", + "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/demote", + "httpMethod": "POST", + "id": "sql.instances.demote", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Required. The name of the Cloud SQL instance.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Required. The project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "sql/v1beta4/projects/{project}/instances/{instance}/demote", + "request": { + "$ref": "InstancesDemoteRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, "demoteMaster": { "description": "Demotes the stand-alone instance to be a Cloud SQL read replica for an external database server.", "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/demoteMaster", @@ -753,7 +788,7 @@ ], "parameters": { "instance": { - "description": "Cloud SQL instance ID. This does not include the project ID.", + "description": "The Cloud SQL instance ID. This doesn't include the project ID.", "location": "path", "required": true, "type": "string" @@ -1023,6 +1058,11 @@ "instance" ], "parameters": { + "failover": { + "description": "Set to true if the promote operation should attempt to re-add the original primary as a replica when it comes back online. Otherwise, if this value is false or not set, the original primary will be a standalone instance.", + "location": "query", + "type": "boolean" + }, "instance": { "description": "Cloud SQL read replica instance name.", "location": "path", @@ -1045,6 +1085,41 @@ "https://www.googleapis.com/auth/sqlservice.admin" ] }, + "reencrypt": { + "description": "Reencrypt CMEK instance with latest key version.", + "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/reencrypt", + "httpMethod": "POST", + "id": "sql.instances.reencrypt", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "sql/v1beta4/projects/{project}/instances/{instance}/reencrypt", + "request": { + "$ref": "InstancesReencryptRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, "resetSslConfig": { "description": "Deletes all client certificates and generates a new server SSL certificate for the instance.", "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/resetSslConfig", @@ -1243,6 +1318,44 @@ "https://www.googleapis.com/auth/sqlservice.admin" ] }, + "switchover": { + "description": "Switches over from the primary instance to a replica instance.", + "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/switchover", + "httpMethod": "POST", + "id": "sql.instances.switchover", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "dbTimeout": { + "description": "Optional. (MySQL only) Cloud SQL instance operations timeout, which is a sum of all database operations. Default value is 10 minutes and can be modified to a maximum value of 24 hours.", + "format": "google-duration", + "location": "query", + "type": "string" + }, + "instance": { + "description": "Cloud SQL read replica instance name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "ID of the project that contains the replica.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "sql/v1beta4/projects/{project}/instances/{instance}/switchover", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, "truncateLog": { "description": "Truncate MySQL general and slow query log tables MySQL only.", "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/truncateLog", @@ -1317,6 +1430,38 @@ }, "operations": { "methods": { + "cancel": { + "description": "Cancels an instance operation that has been performed on an instance.", + "flatPath": "sql/v1beta4/projects/{project}/operations/{operation}/cancel", + "httpMethod": "POST", + "id": "sql.operations.cancel", + "parameterOrder": [ + "project", + "operation" + ], + "parameters": { + "operation": { + "description": "Instance operation ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "sql/v1beta4/projects/{project}/operations/{operation}/cancel", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, "get": { "description": "Retrieves an instance operation that has been performed on an instance.", "flatPath": "sql/v1beta4/projects/{project}/operations/{operation}", @@ -1396,6 +1541,105 @@ "resources": { "instances": { "methods": { + "getDiskShrinkConfig": { + "description": "Get Disk Shrink Config for a given instance.", + "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/getDiskShrinkConfig", + "httpMethod": "GET", + "id": "sql.projects.instances.getDiskShrinkConfig", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "sql/v1beta4/projects/{project}/instances/{instance}/getDiskShrinkConfig", + "response": { + "$ref": "SqlInstancesGetDiskShrinkConfigResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "getLatestRecoveryTime": { + "description": "Get Latest Recovery Time for a given instance.", + "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/getLatestRecoveryTime", + "httpMethod": "GET", + "id": "sql.projects.instances.getLatestRecoveryTime", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "sql/v1beta4/projects/{project}/instances/{instance}/getLatestRecoveryTime", + "response": { + "$ref": "SqlInstancesGetLatestRecoveryTimeResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "performDiskShrink": { + "description": "Perform Disk Shrink on primary instance.", + "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/performDiskShrink", + "httpMethod": "POST", + "id": "sql.projects.instances.performDiskShrink", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "sql/v1beta4/projects/{project}/instances/{instance}/performDiskShrink", + "request": { + "$ref": "PerformDiskShrinkContext" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, "rescheduleMaintenance": { "description": "Reschedules the maintenance on the given instance.", "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/rescheduleMaintenance", @@ -1431,6 +1675,41 @@ "https://www.googleapis.com/auth/sqlservice.admin" ] }, + "resetReplicaSize": { + "description": "Reset Replica Size to primary instance disk size.", + "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/resetReplicaSize", + "httpMethod": "POST", + "id": "sql.projects.instances.resetReplicaSize", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL read replica instance name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "ID of the project that contains the read replica.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "sql/v1beta4/projects/{project}/instances/{instance}/resetReplicaSize", + "request": { + "$ref": "SqlInstancesResetReplicaSizeRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, "startExternalSync": { "description": "Start External primary instance migration.", "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/startExternalSync", @@ -1921,7 +2200,7 @@ } } }, - "revision": "20221209", + "revision": "20240219", "rootUrl": "https://sqladmin.googleapis.com/", "schemas": { "AclEntry": { @@ -1948,6 +2227,18 @@ }, "type": "object" }, + "AdvancedMachineFeatures": { + "description": "Specifies options for controlling advanced machine features.", + "id": "AdvancedMachineFeatures", + "properties": { + "threadsPerCore": { + "description": "The number of threads per physical core.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "ApiWarning": { "description": "An Admin API warning message.", "id": "ApiWarning", @@ -1957,12 +2248,16 @@ "enum": [ "SQL_API_WARNING_CODE_UNSPECIFIED", "REGION_UNREACHABLE", - "MAX_RESULTS_EXCEEDS_LIMIT" + "MAX_RESULTS_EXCEEDS_LIMIT", + "COMPROMISED_CREDENTIALS", + "INTERNAL_STATE_FAILURE" ], "enumDescriptions": [ "An unknown or unset warning type from Cloud SQL API.", "Warning when one or more regions are not reachable. The returned result set may be incomplete.", - "Warning when user provided maxResults parameter exceeds the limit. The returned result set may be incomplete." + "Warning when user provided maxResults parameter exceeds the limit. The returned result set may be incomplete.", + "Warning when user tries to create/update a user with credentials that have previously been compromised by a public data breach.", + "Warning when the operation succeeds but some non-critical workflow state failed." ], "type": "string" }, @@ -2002,7 +2297,7 @@ "type": "string" }, "pointInTimeRecoveryEnabled": { - "description": "(Postgres only) Whether point in time recovery is enabled.", + "description": "Whether point in time recovery is enabled.", "type": "boolean" }, "replicationLogArchivingEnabled": { @@ -2037,6 +2332,32 @@ }, "type": "object" }, + "BackupReencryptionConfig": { + "description": "Backup Reencryption Config", + "id": "BackupReencryptionConfig", + "properties": { + "backupLimit": { + "description": "Backup re-encryption limit", + "format": "int32", + "type": "integer" + }, + "backupType": { + "description": "Type of backups users want to re-encrypt.", + "enum": [ + "BACKUP_TYPE_UNSPECIFIED", + "AUTOMATED", + "ON_DEMAND" + ], + "enumDescriptions": [ + "Unknown backup type, will be defaulted to AUTOMATIC backup type", + "Reencrypt automatic backups", + "Reencrypt on-demand backups" + ], + "type": "string" + } + }, + "type": "object" + }, "BackupRetentionSettings": { "description": "We currently only support backup retention by specifying the number of backups we will retain.", "id": "BackupRetentionSettings", @@ -2263,6 +2584,10 @@ "description": "Timestamp, if specified, identifies the time to which the source instance is cloned.", "format": "google-datetime", "type": "string" + }, + "preferredZone": { + "description": "Optional. (Point-in-time recovery for PostgreSQL only) Clone to an instance in the specified zone. If no zone is specified, clone to the same zone as the source instance.", + "type": "string" } }, "type": "object" @@ -2279,6 +2604,12 @@ "SECOND_GEN", "EXTERNAL" ], + "enumDeprecated": [ + false, + true, + false, + false + ], "enumDescriptions": [ "This is an unknown backend type for instance.", "V1 speckle instance.", @@ -2305,6 +2636,7 @@ "POSTGRES_12", "POSTGRES_13", "POSTGRES_14", + "POSTGRES_15", "MYSQL_8_0", "MYSQL_8_0_18", "MYSQL_8_0_26", @@ -2313,10 +2645,58 @@ "MYSQL_8_0_29", "MYSQL_8_0_30", "MYSQL_8_0_31", + "MYSQL_8_0_32", + "MYSQL_8_0_33", + "MYSQL_8_0_34", + "MYSQL_8_0_35", + "MYSQL_8_0_36", "SQLSERVER_2019_STANDARD", "SQLSERVER_2019_ENTERPRISE", "SQLSERVER_2019_EXPRESS", - "SQLSERVER_2019_WEB" + "SQLSERVER_2019_WEB", + "SQLSERVER_2022_STANDARD", + "SQLSERVER_2022_ENTERPRISE", + "SQLSERVER_2022_EXPRESS", + "SQLSERVER_2022_WEB" + ], + "enumDeprecated": [ + false, + true, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "This is an unknown database version.", @@ -2334,6 +2714,7 @@ "The database version is PostgreSQL 12.", "The database version is PostgreSQL 13.", "The database version is PostgreSQL 14.", + "The database version is PostgreSQL 15.", "The database version is MySQL 8.", "The database major version is MySQL 8.0 and the minor version is 18.", "The database major version is MySQL 8.0 and the minor version is 26.", @@ -2342,13 +2723,26 @@ "The database major version is MySQL 8.0 and the minor version is 29.", "The database major version is MySQL 8.0 and the minor version is 30.", "The database major version is MySQL 8.0 and the minor version is 31.", + "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.", + "The database major version is MySQL 8.0 and the minor version is 36.", "The database version is SQL Server 2019 Standard.", "The database version is SQL Server 2019 Enterprise.", "The database version is SQL Server 2019 Express.", - "The database version is SQL Server 2019 Web." + "The database version is SQL Server 2019 Web.", + "The database version is SQL Server 2022 Standard.", + "The database version is SQL Server 2022 Enterprise.", + "The database version is SQL Server 2022 Express.", + "The database version is SQL Server 2022 Web." ], "type": "string" }, + "dnsName": { + "description": "The dns name of the instance.", + "type": "string" + }, "ipAddresses": { "description": "The assigned IP addresses for the instance.", "items": { @@ -2360,6 +2754,10 @@ "description": "This is always `sql#connectSettings`.", "type": "string" }, + "pscEnabled": { + "description": "Whether PSC connectivity is enabled for this instance.", + "type": "boolean" + }, "region": { "description": "The cloud region for the instance. e.g. `us-central1`, `europe-west1`. The region cannot be changed after instance creation.", "type": "string" @@ -2371,6 +2769,17 @@ }, "type": "object" }, + "DataCacheConfig": { + "description": "Data cache configurations.", + "id": "DataCacheConfig", + "properties": { + "dataCacheEnabled": { + "description": "Whether data cache is enabled for the instance.", + "type": "boolean" + } + }, + "type": "object" + }, "Database": { "description": "Represents a SQL database on the Cloud SQL instance.", "id": "Database", @@ -2433,10 +2842,11 @@ "id": "DatabaseInstance", "properties": { "availableMaintenanceVersions": { - "description": "List all maintenance versions applicable on the instance", + "description": "Output only. List all maintenance versions applicable on the instance", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, "backendType": { @@ -2447,6 +2857,12 @@ "SECOND_GEN", "EXTERNAL" ], + "enumDeprecated": [ + false, + true, + false, + false + ], "enumDescriptions": [ "This is an unknown backend type for instance.", "V1 speckle instance.", @@ -2466,6 +2882,7 @@ "type": "string" }, "currentDiskSize": { + "deprecated": true, "description": "The current disk usage of the instance in bytes. This property has been deprecated. Use the \"cloudsql.googleapis.com/database/disk/bytes_used\" metric in Cloud Monitoring API instead. Please see [this announcement](https://groups.google.com/d/msg/google-cloud-sql-announce/I_7-F9EBhT0/BtvFtdFeAgAJ) for details.", "format": "int64", "type": "string" @@ -2493,6 +2910,7 @@ "POSTGRES_12", "POSTGRES_13", "POSTGRES_14", + "POSTGRES_15", "MYSQL_8_0", "MYSQL_8_0_18", "MYSQL_8_0_26", @@ -2501,10 +2919,58 @@ "MYSQL_8_0_29", "MYSQL_8_0_30", "MYSQL_8_0_31", + "MYSQL_8_0_32", + "MYSQL_8_0_33", + "MYSQL_8_0_34", + "MYSQL_8_0_35", + "MYSQL_8_0_36", "SQLSERVER_2019_STANDARD", "SQLSERVER_2019_ENTERPRISE", "SQLSERVER_2019_EXPRESS", - "SQLSERVER_2019_WEB" + "SQLSERVER_2019_WEB", + "SQLSERVER_2022_STANDARD", + "SQLSERVER_2022_ENTERPRISE", + "SQLSERVER_2022_EXPRESS", + "SQLSERVER_2022_WEB" + ], + "enumDeprecated": [ + false, + true, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "This is an unknown database version.", @@ -2522,6 +2988,7 @@ "The database version is PostgreSQL 12.", "The database version is PostgreSQL 13.", "The database version is PostgreSQL 14.", + "The database version is PostgreSQL 15.", "The database version is MySQL 8.", "The database major version is MySQL 8.0 and the minor version is 18.", "The database major version is MySQL 8.0 and the minor version is 26.", @@ -2530,10 +2997,19 @@ "The database major version is MySQL 8.0 and the minor version is 29.", "The database major version is MySQL 8.0 and the minor version is 30.", "The database major version is MySQL 8.0 and the minor version is 31.", + "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.", + "The database major version is MySQL 8.0 and the minor version is 36.", "The database version is SQL Server 2019 Standard.", "The database version is SQL Server 2019 Enterprise.", "The database version is SQL Server 2019 Express.", - "The database version is SQL Server 2019 Web." + "The database version is SQL Server 2019 Web.", + "The database version is SQL Server 2022 Standard.", + "The database version is SQL Server 2022 Enterprise.", + "The database version is SQL Server 2022 Express.", + "The database version is SQL Server 2022 Web." ], "type": "string" }, @@ -2545,6 +3021,11 @@ "$ref": "DiskEncryptionStatus", "description": "Disk encryption status specific to an instance." }, + "dnsName": { + "description": "Output only. The dns name of the instance.", + "readOnly": true, + "type": "string" + }, "etag": { "description": "This field is deprecated and will be removed from a future version of the API. Use the `settings.settingsVersion` field instead.", "type": "string" @@ -2591,6 +3072,7 @@ "type": "array" }, "ipv6Address": { + "deprecated": true, "description": "The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.", "type": "string" }, @@ -2607,6 +3089,7 @@ "type": "string" }, "maxDiskSize": { + "deprecated": true, "description": "The maximum disk size of the instance in bytes.", "format": "int64", "type": "string" @@ -2623,12 +3106,23 @@ "$ref": "SqlOutOfDiskReport", "description": "This field represents the report generated by the proactive database wellness job for OutOfDisk issues. * Writers: * the proactive database wellness job for OOD. * Readers: * the proactive database wellness job" }, + "primaryDnsName": { + "deprecated": true, + "description": "Output only. DEPRECATED: please use write_endpoint instead.", + "readOnly": true, + "type": "string" + }, "project": { "description": "The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.", "type": "string" }, + "pscServiceAttachmentLink": { + "description": "Output only. The link to service attachment of PSC instance.", + "readOnly": true, + "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": { @@ -2674,6 +3168,20 @@ "$ref": "Settings", "description": "The user settings." }, + "sqlNetworkArchitecture": { + "description": "The SQL network architecture for the instance.", + "enum": [ + "SQL_NETWORK_ARCHITECTURE_UNSPECIFIED", + "NEW_NETWORK_ARCHITECTURE", + "OLD_NETWORK_ARCHITECTURE" + ], + "enumDescriptions": [ + "", + "The instance uses the new network architecture.", + "The instance uses the old network architecture." + ], + "type": "string" + }, "state": { "description": "The current serving state of the Cloud SQL instance.", "enum": [ @@ -2686,6 +3194,16 @@ "FAILED", "ONLINE_MAINTENANCE" ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + false, + true + ], "enumDescriptions": [ "The state of the instance is unknown.", "The instance is running, or has been stopped by owner.", @@ -2718,6 +3236,11 @@ "type": "string" }, "type": "array" + }, + "writeEndpoint": { + "description": "Output only. The dns name of the primary instance in a replication group.", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -2740,6 +3263,21 @@ }, "type": "object" }, + "DemoteContext": { + "description": "This context is used to demote an existing standalone instance to be a Cloud SQL read replica for an external database server.", + "id": "DemoteContext", + "properties": { + "kind": { + "description": "This is always `sql#demoteContext`.", + "type": "string" + }, + "sourceRepresentativeInstanceName": { + "description": "Required. The name of the instance which acts as an on-premises primary instance in the replication setup.", + "type": "string" + } + }, + "type": "object" + }, "DemoteMasterConfiguration": { "description": "Read-replica configuration for connecting to the on-premises primary instance.", "id": "DemoteMasterConfiguration", @@ -2862,6 +3400,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" + }, "ExportContext": { "description": "Database instance export context.", "id": "ExportContext", @@ -2869,6 +3413,31 @@ "bakExportOptions": { "description": "Options for exporting BAK files (SQL Server-only)", "properties": { + "bakType": { + "description": "Type of this bak file will be export, FULL or DIFF, SQL Server only", + "enum": [ + "BAK_TYPE_UNSPECIFIED", + "FULL", + "DIFF", + "TLOG" + ], + "enumDescriptions": [ + "Default type.", + "Full backup.", + "Differential backup.", + "SQL Server Transaction Log" + ], + "type": "string" + }, + "copyOnly": { + "deprecated": true, + "description": "Deprecated: copy_only is deprecated. Use differential_base instead", + "type": "boolean" + }, + "differentialBase": { + "description": "Whether or not the backup can be used as a differential base copy_only backup can not be served as differential base", + "type": "boolean" + }, "stripeCount": { "description": "Option for specifying how many stripes to use for the export. If blank, and the value of the striped field is true, the number of stripes is automatically chosen.", "format": "int32", @@ -2952,6 +3521,10 @@ }, "type": "object" }, + "parallel": { + "description": "Optional. Whether or not the export should be parallel.", + "type": "boolean" + }, "schemaOnly": { "description": "Export only schemas.", "type": "boolean" @@ -2962,6 +3535,11 @@ "type": "string" }, "type": "array" + }, + "threads": { + "description": "Optional. The number of threads to use for parallel export.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -3027,6 +3605,7 @@ "POSTGRES_12", "POSTGRES_13", "POSTGRES_14", + "POSTGRES_15", "MYSQL_8_0", "MYSQL_8_0_18", "MYSQL_8_0_26", @@ -3035,10 +3614,58 @@ "MYSQL_8_0_29", "MYSQL_8_0_30", "MYSQL_8_0_31", + "MYSQL_8_0_32", + "MYSQL_8_0_33", + "MYSQL_8_0_34", + "MYSQL_8_0_35", + "MYSQL_8_0_36", "SQLSERVER_2019_STANDARD", "SQLSERVER_2019_ENTERPRISE", "SQLSERVER_2019_EXPRESS", - "SQLSERVER_2019_WEB" + "SQLSERVER_2019_WEB", + "SQLSERVER_2022_STANDARD", + "SQLSERVER_2022_ENTERPRISE", + "SQLSERVER_2022_EXPRESS", + "SQLSERVER_2022_WEB" + ], + "enumDeprecated": [ + false, + true, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "This is an unknown database version.", @@ -3056,6 +3683,7 @@ "The database version is PostgreSQL 12.", "The database version is PostgreSQL 13.", "The database version is PostgreSQL 14.", + "The database version is PostgreSQL 15.", "The database version is MySQL 8.", "The database major version is MySQL 8.0 and the minor version is 18.", "The database major version is MySQL 8.0 and the minor version is 26.", @@ -3064,10 +3692,19 @@ "The database major version is MySQL 8.0 and the minor version is 29.", "The database major version is MySQL 8.0 and the minor version is 30.", "The database major version is MySQL 8.0 and the minor version is 31.", + "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.", + "The database major version is MySQL 8.0 and the minor version is 36.", "The database version is SQL Server 2019 Standard.", "The database version is SQL Server 2019 Enterprise.", "The database version is SQL Server 2019 Express.", - "The database version is SQL Server 2019 Web." + "The database version is SQL Server 2019 Web.", + "The database version is SQL Server 2022 Standard.", + "The database version is SQL Server 2022 Enterprise.", + "The database version is SQL Server 2022 Express.", + "The database version is SQL Server 2022 Web." ], "type": "string" }, @@ -3187,6 +3824,22 @@ "bakImportOptions": { "description": "Import parameters specific to SQL Server .BAK files", "properties": { + "bakType": { + "description": "Type of the bak content, FULL or DIFF.", + "enum": [ + "BAK_TYPE_UNSPECIFIED", + "FULL", + "DIFF", + "TLOG" + ], + "enumDescriptions": [ + "Default type.", + "Full backup.", + "Differential backup.", + "SQL Server Transaction Log" + ], + "type": "string" + }, "encryptionOptions": { "properties": { "certPath": { @@ -3204,6 +3857,23 @@ }, "type": "object" }, + "noRecovery": { + "description": "Whether or not the backup importing will restore database with NORECOVERY option Applies only to Cloud SQL for SQL Server.", + "type": "boolean" + }, + "recoveryOnly": { + "description": "Whether or not the backup importing request will just bring database online without downloading Bak content only one of \"no_recovery\" and \"recovery_only\" can be true otherwise error will return. Applies only to Cloud SQL for SQL Server.", + "type": "boolean" + }, + "stopAt": { + "description": "Optional. The timestamp when the import should stop. This timestamp is in the [RFC 3339](https://tools.ietf.org/html/rfc3339) format (for example, `2023-10-01T16:19:00.094`). This field is equivalent to the STOPAT keyword and applies to Cloud SQL for SQL Server only.", + "format": "google-datetime", + "type": "string" + }, + "stopAtMark": { + "description": "Optional. The marked transaction where the import should stop. This field is equivalent to the STOPATMARK keyword and applies to Cloud SQL for SQL Server only.", + "type": "string" + }, "striped": { "description": "Whether or not the backup set being restored is striped. Applies only to Cloud SQL for SQL Server.", "type": "boolean" @@ -3349,6 +4019,17 @@ }, "type": "object" }, + "InstancesDemoteRequest": { + "description": "This request is used to demote an existing standalone instance to be a Cloud SQL read replica for an external database server.", + "id": "InstancesDemoteRequest", + "properties": { + "demoteContext": { + "$ref": "DemoteContext", + "description": "Required. This context is used to demote an existing standalone instance to be a Cloud SQL read replica for an external database server." + } + }, + "type": "object" + }, "InstancesExportRequest": { "description": "Database instance export request.", "id": "InstancesExportRequest", @@ -3432,6 +4113,17 @@ }, "type": "object" }, + "InstancesReencryptRequest": { + "description": "Database Instance reencrypt request.", + "id": "InstancesReencryptRequest", + "properties": { + "backupReencryptionConfig": { + "$ref": "BackupReencryptionConfig", + "description": "Configuration specific to backup re-encryption" + } + }, + "type": "object" + }, "InstancesRestoreBackupRequest": { "description": "Database instance restore backup request.", "id": "InstancesRestoreBackupRequest", @@ -3492,15 +4184,35 @@ "description": "The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, `/projects/myProject/global/networks/default`. This setting can be updated, but it cannot be removed after it is set.", "type": "string" }, + "pscConfig": { + "$ref": "PscConfig", + "description": "PSC settings for this instance." + }, "requireSsl": { - "description": "Whether SSL connections over IP are enforced or not.", + "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. 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", + "ENCRYPTED_ONLY", + "TRUSTED_CLIENT_CERTIFICATE_REQUIRED" + ], + "enumDescriptions": [ + "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. 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" } }, "type": "object" }, "IpMapping": { - "description": "Database instance IP Mapping.", + "description": "Database instance IP mapping", "id": "IpMapping", "properties": { "ipAddress": { @@ -3538,6 +4250,7 @@ "id": "LocationPreference", "properties": { "followGaeApplication": { + "deprecated": true, "description": "The App Engine application to follow, it must be in the same region as the Cloud SQL instance. WARNING: Changing this might restart the instance.", "type": "string" }, @@ -3546,7 +4259,7 @@ "type": "string" }, "secondaryZone": { - "description": "The preferred Compute Engine zone for the secondary/failover (for example: us-central1-a, us-central1-b, etc.).", + "description": "The preferred Compute Engine zone for the secondary/failover (for example: us-central1-a, us-central1-b, etc.). To disable this field, set it to 'no_secondary_zone'.", "type": "string" }, "zone": { @@ -3579,12 +4292,14 @@ "enum": [ "SQL_UPDATE_TRACK_UNSPECIFIED", "canary", - "stable" + "stable", + "week5" ], "enumDescriptions": [ "This is an unknown maintenance timing preference.", "For instance update that requires a restart, this update track indicates your instance prefer to restart for new version early in maintenance window.", - "For instance update that requires a restart, this update track indicates your instance prefer to let Cloud SQL choose the timing of restart (within its Maintenance window, if applicable)." + "For instance update that requires a restart, this update track indicates your instance prefer to let Cloud SQL choose the timing of restart (within its Maintenance window, if applicable).", + "For instance update that requires a restart, this update track indicates your instance prefer to let Cloud SQL choose the timing of restart (within its Maintenance window, if applicable) to be at least 5 weeks after the notification." ], "type": "string" } @@ -3705,6 +4420,10 @@ "description": "An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.", "id": "Operation", "properties": { + "apiWarning": { + "$ref": "ApiWarning", + "description": "An Admin API warning message." + }, "backupContext": { "$ref": "BackupContext", "description": "The context for backup operation, if applicable." @@ -3778,7 +4497,50 @@ "RESCHEDULE_MAINTENANCE", "START_EXTERNAL_SYNC", "LOG_CLEANUP", - "AUTO_RESTART" + "AUTO_RESTART", + "REENCRYPT", + "SWITCHOVER" + ], + "enumDeprecated": [ + false, + false, + false, + false, + 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, + true, + true, + true, + false, + false, + false, + false, + false, + false ], "enumDescriptions": [ "Unknown operation type.", @@ -3817,7 +4579,9 @@ "Reschedule maintenance to another time.", "Starts external sync of a Cloud SQL EM replica to an external primary instance.", "Recovers logs from an instance's old data disk.", - "Performs auto-restart of an HA-enabled Cloud SQL database for auto recovery." + "Performs auto-restart of an HA-enabled Cloud SQL database for auto recovery.", + "Re-encrypts CMEK instances with latest key version.", + "Switches over to replica instance from primary." ], "type": "string" }, @@ -3901,6 +4665,50 @@ }, "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" + }, + "cancelRequested": { + "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" + }, + "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" + }, + "statusDetail": { + "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" + }, "OperationsListResponse": { "description": "Operations list response.", "id": "OperationsListResponse", @@ -3955,6 +4763,11 @@ ], "type": "string" }, + "disallowCompromisedCredentials": { + "deprecated": true, + "description": "This field is deprecated and will be removed in a future version of the API.", + "type": "boolean" + }, "disallowUsernameSubstring": { "description": "Disallow username as a part of the password.", "type": "boolean" @@ -3981,10 +4794,44 @@ }, "type": "object" }, + "PerformDiskShrinkContext": { + "description": "Perform disk shrink context.", + "id": "PerformDiskShrinkContext", + "properties": { + "targetSizeGb": { + "description": "The target disk shrink size in GigaBytes.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "PscConfig": { + "description": "PSC settings for a Cloud SQL instance.", + "id": "PscConfig", + "properties": { + "allowedConsumerProjects": { + "description": "Optional. The list of consumer projects that are allow-listed for PSC connections to this instance. This instance can be connected to with PSC from any network in these projects. Each consumer project in this list may be represented by a project number (numeric) or by a project id (alphanumeric).", + "items": { + "type": "string" + }, + "type": "array" + }, + "pscEnabled": { + "description": "Whether PSC connectivity is enabled for this instance.", + "type": "boolean" + } + }, + "type": "object" + }, "ReplicaConfiguration": { "description": "Read-replica configuration for connecting to the primary instance.", "id": "ReplicaConfiguration", "properties": { + "cascadableReplica": { + "description": "Optional. Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it.", + "type": "boolean" + }, "failoverTarget": { "description": "Specifies if the replica is the failover target. If the field is set to `true` the replica will be designated as a failover replica. In case the primary instance fails, the replica instance will be promoted as the new primary instance. Only one replica can be specified as failover target, and the replica has to be in different zone with the primary instance.", "type": "boolean" @@ -4078,6 +4925,12 @@ "NEVER", "ON_DEMAND" ], + "enumDeprecated": [ + false, + false, + false, + true + ], "enumDescriptions": [ "Unknown activation plan.", "The instance is always up and running.", @@ -4090,7 +4943,12 @@ "$ref": "SqlActiveDirectoryConfig", "description": "Active Directory configuration, relevant only for Cloud SQL for SQL Server." }, + "advancedMachineFeatures": { + "$ref": "AdvancedMachineFeatures", + "description": "Specifies advance machine configuration for the instance relevant only for SQL Server." + }, "authorizedGaeApplications": { + "deprecated": true, "description": "The App Engine app IDs that can access this instance. (Deprecated) Applied to First Generation instances only.", "items": { "type": "string" @@ -4134,9 +4992,14 @@ "type": "string" }, "crashSafeReplicationEnabled": { + "deprecated": true, "description": "Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property was only applicable to First Generation instances.", "type": "boolean" }, + "dataCacheConfig": { + "$ref": "DataCacheConfig", + "description": "Configuration for data cache." + }, "dataDiskSizeGb": { "description": "The size of data disk, in GB. The data disk size minimum is 10GB.", "format": "int64", @@ -4150,6 +5013,12 @@ "PD_HDD", "OBSOLETE_LOCAL_SSD" ], + "enumDeprecated": [ + false, + false, + false, + true + ], "enumDescriptions": [ "This is an unknown data disk type.", "An SSD data disk.", @@ -4180,6 +5049,20 @@ }, "type": "array" }, + "edition": { + "description": "Optional. The edition of the instance.", + "enum": [ + "EDITION_UNSPECIFIED", + "ENTERPRISE", + "ENTERPRISE_PLUS" + ], + "enumDescriptions": [ + "The instance did not specify the edition.", + "The instance is an enterprise edition.", + "The instance is an Enterprise Plus edition." + ], + "type": "string" + }, "insightsConfig": { "$ref": "InsightsConfig", "description": "Insights configuration, for now relevant only for Postgres." @@ -4219,6 +5102,7 @@ "type": "string" }, "replicationType": { + "deprecated": true, "description": "The type of replication this instance uses. This can be either `ASYNCHRONOUS` or `SYNCHRONOUS`. (Deprecated) This property was only applicable to First Generation instances.", "enum": [ "SQL_REPLICATION_TYPE_UNSPECIFIED", @@ -4325,7 +5209,24 @@ "UNSUPPORTED_BINLOG_FORMAT", "BINLOG_RETENTION_SETTING", "UNSUPPORTED_STORAGE_ENGINE", - "LIMITED_SUPPORT_TABLES" + "LIMITED_SUPPORT_TABLES", + "EXISTING_DATA_IN_REPLICA", + "MISSING_OPTIONAL_PRIVILEGES", + "RISKY_BACKUP_ADMIN_PRIVILEGE", + "INSUFFICIENT_GCS_PERMISSIONS", + "INVALID_FILE_INFO", + "UNSUPPORTED_DATABASE_SETTINGS", + "MYSQL_PARALLEL_IMPORT_INSUFFICIENT_PRIVILEGE", + "LOCAL_INFILE_OFF", + "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": [ "", @@ -4333,7 +5234,7 @@ "", "", "", - "", + "The replication user is missing privileges that are required.", "Unsupported migration type.", "No pglogical extension installed on databases, applicable for postgres.", "pglogical node already exists on databases, applicable for postgres.", @@ -4350,18 +5251,71 @@ "SQL Server Agent is not running.", "The table definition is not support due to missing primary key or replica identity, applicable for postgres.", "The customer has a definer that will break EM setup.", - "SQL Server @@SERVERNAME does not match actual host name", + "SQL Server @@SERVERNAME does not match actual host name.", "The primary instance has been setup and will fail the setup.", "The primary instance has unsupported binary log format.", "The primary instance's binary log retention setting.", "The primary instance has tables with unsupported storage engine.", - "Source has tables with limited support eg: PostgreSQL tables without primary keys" + "Source has tables with limited support eg: PostgreSQL tables without primary keys.", + "The replica instance contains existing data.", + "The replication user is missing privileges that are optional.", + "Additional BACKUP_ADMIN privilege is granted to the replication user which may lock source MySQL 8 instance for DDLs during initial sync.", + "The Cloud Storage bucket is missing necessary permissions.", + "The Cloud Storage bucket has an error in the file or contains invalid file information.", + "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.", + "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" } }, "type": "object" }, + "SqlInstancesGetDiskShrinkConfigResponse": { + "description": "Instance get disk shrink config response.", + "id": "SqlInstancesGetDiskShrinkConfigResponse", + "properties": { + "kind": { + "description": "This is always `sql#getDiskShrinkConfig`.", + "type": "string" + }, + "message": { + "description": "Additional message to customers.", + "type": "string" + }, + "minimalTargetSizeGb": { + "description": "The minimum size to which a disk can be shrunk in GigaBytes.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "SqlInstancesGetLatestRecoveryTimeResponse": { + "description": "Instance get latest recovery time response.", + "id": "SqlInstancesGetLatestRecoveryTimeResponse", + "properties": { + "kind": { + "description": "This is always `sql#getLatestRecoveryTime`.", + "type": "string" + }, + "latestRecoveryTime": { + "description": "Timestamp, identifies the latest recovery time of the source instance.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "SqlInstancesRescheduleMaintenanceRequestBody": { "description": "Reschedule options for maintenance windows.", "id": "SqlInstancesRescheduleMaintenanceRequestBody", @@ -4373,6 +5327,12 @@ }, "type": "object" }, + "SqlInstancesResetReplicaSizeRequest": { + "description": "Instance reset replica size request.", + "id": "SqlInstancesResetReplicaSizeRequest", + "properties": {}, + "type": "object" + }, "SqlInstancesStartExternalSyncRequest": { "id": "SqlInstancesStartExternalSyncRequest", "properties": { @@ -4397,6 +5357,22 @@ "Offline external sync only dumps and loads a one-time snapshot of the primary instance's data" ], "type": "string" + }, + "syncParallelLevel": { + "description": "Optional. Parallel level for initial data sync. Currently only applicable for MySQL.", + "enum": [ + "EXTERNAL_SYNC_PARALLEL_LEVEL_UNSPECIFIED", + "MIN", + "OPTIMAL", + "MAX" + ], + "enumDescriptions": [ + "Unknown sync parallel level. Will be defaulted to OPTIMAL.", + "Minimal parallel level.", + "Optimal parallel level.", + "Maximum parallel level." + ], + "type": "string" } }, "type": "object" @@ -4489,6 +5465,7 @@ "id": "SqlScheduledMaintenance", "properties": { "canDefer": { + "deprecated": true, "type": "boolean" }, "canReschedule": { @@ -4834,12 +5811,18 @@ "enum": [ "BUILT_IN", "CLOUD_IAM_USER", - "CLOUD_IAM_SERVICE_ACCOUNT" + "CLOUD_IAM_SERVICE_ACCOUNT", + "CLOUD_IAM_GROUP", + "CLOUD_IAM_GROUP_USER", + "CLOUD_IAM_GROUP_SERVICE_ACCOUNT" ], "enumDescriptions": [ "The database's built-in user type.", "Cloud IAM user.", - "Cloud IAM service account." + "Cloud IAM service account.", + "Cloud IAM group non-login user.", + "Cloud IAM group login user.", + "Cloud IAM group service account." ], "type": "string" } @@ -4892,7 +5875,8 @@ "type": "string" }, "nextPageToken": { - "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.", + "deprecated": true, + "description": "Unused.", "type": "string" } }, diff --git a/etc/api/storage/v1/storage-api.json b/etc/api/storage/v1/storage-api.json index 23b62f2940..0a8757faf7 100644 --- a/etc/api/storage/v1/storage-api.json +++ b/etc/api/storage/v1/storage-api.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": "\"3137333136363634383834383932303638343631\"", + "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://storage.me-central2.rep.googleapis.com/", + "location": "me-central2" + } + ], + "etag": "\"38353632383736323634343838333436313237\"", "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" @@ -92,6 +99,242 @@ }, "protocol": "rest", "resources": { + "anywhereCaches": { + "methods": { + "disable": { + "description": "Disables an Anywhere Cache instance.", + "httpMethod": "POST", + "id": "storage.anywhereCaches.disable", + "parameterOrder": [ + "bucket", + "anywhereCacheId" + ], + "parameters": { + "anywhereCacheId": { + "description": "The ID of requested Anywhere Cache instance.", + "location": "path", + "required": true, + "type": "string" + }, + "bucket": { + "description": "Name of the parent bucket.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "b/{bucket}/anywhereCaches/{anywhereCacheId}/disable", + "response": { + "$ref": "AnywhereCache" + }, + "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 the metadata of an Anywhere Cache instance.", + "httpMethod": "GET", + "id": "storage.anywhereCaches.get", + "parameterOrder": [ + "bucket", + "anywhereCacheId" + ], + "parameters": { + "anywhereCacheId": { + "description": "The ID of requested Anywhere Cache instance.", + "location": "path", + "required": true, + "type": "string" + }, + "bucket": { + "description": "Name of the parent bucket.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "b/{bucket}/anywhereCaches/{anywhereCacheId}", + "response": { + "$ref": "AnywhereCache" + }, + "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 an Anywhere Cache instance.", + "httpMethod": "POST", + "id": "storage.anywhereCaches.insert", + "parameterOrder": [ + "bucket" + ], + "parameters": { + "bucket": { + "description": "Name of the parent bucket.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "b/{bucket}/anywhereCaches", + "request": { + "$ref": "AnywhereCache" + }, + "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" + ] + }, + "list": { + "description": "Returns a list of Anywhere Cache instances of the bucket matching the criteria.", + "httpMethod": "GET", + "id": "storage.anywhereCaches.list", + "parameterOrder": [ + "bucket" + ], + "parameters": { + "bucket": { + "description": "Name of the parent bucket.", + "location": "path", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Maximum number of items to return in a single page of responses. Maximum 1000.", + "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" + } + }, + "path": "b/{bucket}/anywhereCaches", + "response": { + "$ref": "AnywhereCaches" + }, + "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" + ] + }, + "pause": { + "description": "Pauses an Anywhere Cache instance.", + "httpMethod": "POST", + "id": "storage.anywhereCaches.pause", + "parameterOrder": [ + "bucket", + "anywhereCacheId" + ], + "parameters": { + "anywhereCacheId": { + "description": "The ID of requested Anywhere Cache instance.", + "location": "path", + "required": true, + "type": "string" + }, + "bucket": { + "description": "Name of the parent bucket.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "b/{bucket}/anywhereCaches/{anywhereCacheId}/pause", + "response": { + "$ref": "AnywhereCache" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "resume": { + "description": "Resumes a paused or disabled Anywhere Cache instance.", + "httpMethod": "POST", + "id": "storage.anywhereCaches.resume", + "parameterOrder": [ + "bucket", + "anywhereCacheId" + ], + "parameters": { + "anywhereCacheId": { + "description": "The ID of requested Anywhere Cache instance.", + "location": "path", + "required": true, + "type": "string" + }, + "bucket": { + "description": "Name of the parent bucket.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "b/{bucket}/anywhereCaches/{anywhereCacheId}/resume", + "response": { + "$ref": "AnywhereCache" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "update": { + "description": "Updates the config(ttl and admissionPolicy) of an Anywhere Cache instance.", + "httpMethod": "PATCH", + "id": "storage.anywhereCaches.update", + "parameterOrder": [ + "bucket", + "anywhereCacheId" + ], + "parameters": { + "anywhereCacheId": { + "description": "The ID of requested Anywhere Cache instance.", + "location": "path", + "required": true, + "type": "string" + }, + "bucket": { + "description": "Name of the parent bucket.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "b/{bucket}/anywhereCaches/{anywhereCacheId}", + "request": { + "$ref": "AnywhereCache" + }, + "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" + ] + } + } + }, "bucketAccessControls": { "methods": { "delete": { @@ -446,6 +689,12 @@ "project" ], "parameters": { + "enableObjectRetention": { + "default": "false", + "description": "When set to true, object retention is enabled for this bucket.", + "location": "query", + "type": "boolean" + }, "predefinedAcl": { "description": "Apply a predefined set of access controls to this bucket.", "enum": [ @@ -1138,6 +1387,535 @@ } } }, + "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\u2019t 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": { + "description": "Permanently deletes a managed folder.", + "httpMethod": "DELETE", + "id": "storage.managedFolders.delete", + "parameterOrder": [ + "bucket", + "managedFolder" + ], + "parameters": { + "bucket": { + "description": "Name of the bucket containing the managed folder.", + "location": "path", + "required": true, + "type": "string" + }, + "ifMetagenerationMatch": { + "description": "If set, only deletes the managed folder if its metageneration matches this value.", + "format": "int64", + "location": "query", + "type": "string" + }, + "ifMetagenerationNotMatch": { + "description": "If set, only deletes the managed folder if its metageneration does not match this value.", + "format": "int64", + "location": "query", + "type": "string" + }, + "managedFolder": { + "description": "The managed folder name/path.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "b/{bucket}/managedFolders/{managedFolder}", + "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 of the specified managed folder.", + "httpMethod": "GET", + "id": "storage.managedFolders.get", + "parameterOrder": [ + "bucket", + "managedFolder" + ], + "parameters": { + "bucket": { + "description": "Name of the bucket containing the managed folder.", + "location": "path", + "required": true, + "type": "string" + }, + "ifMetagenerationMatch": { + "description": "Makes the return of the managed folder metadata conditional on whether the managed folder's current metageneration matches the given value.", + "format": "int64", + "location": "query", + "type": "string" + }, + "ifMetagenerationNotMatch": { + "description": "Makes the return of the managed folder metadata conditional on whether the managed folder's current metageneration does not match the given value.", + "format": "int64", + "location": "query", + "type": "string" + }, + "managedFolder": { + "description": "The managed folder name/path.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "b/{bucket}/managedFolders/{managedFolder}", + "response": { + "$ref": "ManagedFolder" + }, + "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" + ] + }, + "getIamPolicy": { + "description": "Returns an IAM policy for the specified managed folder.", + "httpMethod": "GET", + "id": "storage.managedFolders.getIamPolicy", + "parameterOrder": [ + "bucket", + "managedFolder" + ], + "parameters": { + "bucket": { + "description": "Name of the bucket containing the managed folder.", + "location": "path", + "required": true, + "type": "string" + }, + "managedFolder": { + "description": "The managed folder name/path.", + "location": "path", + "required": true, + "type": "string" + }, + "optionsRequestedPolicyVersion": { + "description": "The IAM policy format version to be returned. If the optionsRequestedPolicyVersion is for an older version that doesn't support part of the requested IAM policy, the request fails.", + "format": "int32", + "location": "query", + "minimum": "1", + "type": "integer" + }, + "userProject": { + "description": "The project to be billed for this request. Required for Requester Pays buckets.", + "location": "query", + "type": "string" + } + }, + "path": "b/{bucket}/managedFolders/{managedFolder}/iam", + "response": { + "$ref": "Policy" + }, + "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 managed folder.", + "httpMethod": "POST", + "id": "storage.managedFolders.insert", + "parameterOrder": [ + "bucket" + ], + "parameters": { + "bucket": { + "description": "Name of the bucket containing the managed folder.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "b/{bucket}/managedFolders", + "request": { + "$ref": "ManagedFolder" + }, + "response": { + "$ref": "ManagedFolder" + }, + "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": "Lists managed folders in the given bucket.", + "httpMethod": "GET", + "id": "storage.managedFolders.list", + "parameterOrder": [ + "bucket" + ], + "parameters": { + "bucket": { + "description": "Name of the bucket containing the managed folder.", + "location": "path", + "required": true, + "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": "The managed folder name/path prefix to filter the output list of results.", + "location": "query", + "type": "string" + } + }, + "path": "b/{bucket}/managedFolders", + "response": { + "$ref": "ManagedFolders" + }, + "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" + ] + }, + "setIamPolicy": { + "description": "Updates an IAM policy for the specified managed folder.", + "httpMethod": "PUT", + "id": "storage.managedFolders.setIamPolicy", + "parameterOrder": [ + "bucket", + "managedFolder" + ], + "parameters": { + "bucket": { + "description": "Name of the bucket containing the managed folder.", + "location": "path", + "required": true, + "type": "string" + }, + "managedFolder": { + "description": "The managed folder name/path.", + "location": "path", + "required": true, + "type": "string" + }, + "userProject": { + "description": "The project to be billed for this request. Required for Requester Pays buckets.", + "location": "query", + "type": "string" + } + }, + "path": "b/{bucket}/managedFolders/{managedFolder}/iam", + "request": { + "$ref": "Policy" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "testIamPermissions": { + "description": "Tests a set of permissions on the given managed folder to see which, if any, are held by the caller.", + "httpMethod": "GET", + "id": "storage.managedFolders.testIamPermissions", + "parameterOrder": [ + "bucket", + "managedFolder", + "permissions" + ], + "parameters": { + "bucket": { + "description": "Name of the bucket containing the managed folder.", + "location": "path", + "required": true, + "type": "string" + }, + "managedFolder": { + "description": "The managed folder name/path.", + "location": "path", + "required": true, + "type": "string" + }, + "permissions": { + "description": "Permissions to test.", + "location": "query", + "repeated": true, + "required": true, + "type": "string" + }, + "userProject": { + "description": "The project to be billed for this request. Required for Requester Pays buckets.", + "location": "query", + "type": "string" + } + }, + "path": "b/{bucket}/managedFolders/{managedFolder}/iam/testPermissions", + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "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" + ] + } + } + }, "notifications": { "methods": { "delete": { @@ -1311,7 +2089,7 @@ "type": "string" }, "object": { - "description": "Name of the object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "description": "Name of the object. For information about how to URL encode object names to be path safe, see [Encoding URI Path Parts](https://cloud.google.com/storage/docs/request-endpoints#encoding).", "location": "path", "required": true, "type": "string" @@ -1357,7 +2135,7 @@ "type": "string" }, "object": { - "description": "Name of the object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "description": "Name of the object. For information about how to URL encode object names to be path safe, see [Encoding URI Path Parts](https://cloud.google.com/storage/docs/request-endpoints#encoding).", "location": "path", "required": true, "type": "string" @@ -1399,7 +2177,7 @@ "type": "string" }, "object": { - "description": "Name of the object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "description": "Name of the object. For information about how to URL encode object names to be path safe, see [Encoding URI Path Parts](https://cloud.google.com/storage/docs/request-endpoints#encoding).", "location": "path", "required": true, "type": "string" @@ -1444,7 +2222,7 @@ "type": "string" }, "object": { - "description": "Name of the object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "description": "Name of the object. For information about how to URL encode object names to be path safe, see [Encoding URI Path Parts](https://cloud.google.com/storage/docs/request-endpoints#encoding).", "location": "path", "required": true, "type": "string" @@ -1493,7 +2271,7 @@ "type": "string" }, "object": { - "description": "Name of the object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "description": "Name of the object. For information about how to URL encode object names to be path safe, see [Encoding URI Path Parts](https://cloud.google.com/storage/docs/request-endpoints#encoding).", "location": "path", "required": true, "type": "string" @@ -1545,7 +2323,7 @@ "type": "string" }, "object": { - "description": "Name of the object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "description": "Name of the object. For information about how to URL encode object names to be path safe, see [Encoding URI Path Parts](https://cloud.google.com/storage/docs/request-endpoints#encoding).", "location": "path", "required": true, "type": "string" @@ -1572,6 +2350,34 @@ }, "objects": { "methods": { + "bulkRestore": { + "description": "Initiates a long-running bulk restore operation on the specified bucket.", + "httpMethod": "POST", + "id": "storage.objects.bulkRestore", + "parameterOrder": [ + "bucket" + ], + "parameters": { + "bucket": { + "description": "Name of the bucket in which the object resides.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "b/{bucket}/o/bulkRestore", + "request": { + "$ref": "BulkRestoreObjectsRequest" + }, + "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" + ] + }, "compose": { "description": "Concatenates a list of existing objects into a new object in the same bucket.", "httpMethod": "POST", @@ -1588,7 +2394,7 @@ "type": "string" }, "destinationObject": { - "description": "Name of the new object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "description": "Name of the new object. For information about how to URL encode object names to be path safe, see [Encoding URI Path Parts](https://cloud.google.com/storage/docs/request-endpoints#encoding).", "location": "path", "required": true, "type": "string" @@ -1662,7 +2468,7 @@ ], "parameters": { "destinationBucket": { - "description": "Name of the bucket in which to store the new object. Overrides the provided object metadata's bucket value, if any.For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "description": "Name of the bucket in which to store the new object. Overrides the provided object metadata's bucket value, if any.For information about how to URL encode object names to be path safe, see [Encoding URI Path Parts](https://cloud.google.com/storage/docs/request-endpoints#encoding).", "location": "path", "required": true, "type": "string" @@ -1773,7 +2579,7 @@ "type": "string" }, "sourceObject": { - "description": "Name of the source object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "description": "Name of the source object. For information about how to URL encode object names to be path safe, see [Encoding URI Path Parts](https://cloud.google.com/storage/docs/request-endpoints#encoding).", "location": "path", "required": true, "type": "string" @@ -1843,7 +2649,7 @@ "type": "string" }, "object": { - "description": "Name of the object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "description": "Name of the object. For information about how to URL encode object names to be path safe, see [Encoding URI Path Parts](https://cloud.google.com/storage/docs/request-endpoints#encoding).", "location": "path", "required": true, "type": "string" @@ -1907,7 +2713,7 @@ "type": "string" }, "object": { - "description": "Name of the object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "description": "Name of the object. For information about how to URL encode object names to be path safe, see [Encoding URI Path Parts](https://cloud.google.com/storage/docs/request-endpoints#encoding).", "location": "path", "required": true, "type": "string" @@ -1925,6 +2731,11 @@ "location": "query", "type": "string" }, + "softDeleted": { + "description": "If true, only soft-deleted object versions will be listed. The default is false. For more information, see Soft Delete.", + "location": "query", + "type": "boolean" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1967,7 +2778,7 @@ "type": "string" }, "object": { - "description": "Name of the object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "description": "Name of the object. For information about how to URL encode object names to be path safe, see [Encoding URI Path Parts](https://cloud.google.com/storage/docs/request-endpoints#encoding).", "location": "path", "required": true, "type": "string" @@ -2054,7 +2865,7 @@ "type": "string" }, "name": { - "description": "Name of the object. Required when the object metadata is not otherwise provided. Overrides the object metadata's name value, if any. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "description": "Name of the object. Required when the object metadata is not otherwise provided. Overrides the object metadata's name value, if any. For information about how to URL encode object names to be path safe, see [Encoding URI Path Parts](https://cloud.google.com/storage/docs/request-endpoints#encoding).", "location": "query", "type": "string" }, @@ -2136,11 +2947,21 @@ "location": "query", "type": "string" }, + "includeFoldersAsPrefixes": { + "description": "Only applicable if delimiter is set to '/'. If true, will also include folders and managed folders (besides objects) in the returned prefixes.", + "location": "query", + "type": "boolean" + }, "includeTrailingDelimiter": { "description": "If true, objects that end in exactly one instance of delimiter will have their metadata included in items in addition to prefixes.", "location": "query", "type": "boolean" }, + "matchGlob": { + "description": "Filter results to objects and prefixes that match this glob pattern.", + "location": "query", + "type": "string" + }, "maxResults": { "default": "1000", "description": "Maximum number of items plus prefixes to return in a single page of responses. As duplicate prefixes are omitted, fewer total results may be returned than requested. The service will use this parameter or 1,000 items, whichever is smaller.", @@ -2172,6 +2993,11 @@ "location": "query", "type": "string" }, + "softDeleted": { + "description": "If true, only soft-deleted object versions will be listed. The default is false. For more information, see Soft Delete.", + "location": "query", + "type": "boolean" + }, "startOffset": { "description": "Filter results to objects whose names are lexicographically equal to or after startOffset. If endOffset is also set, the objects listed will have names between startOffset (inclusive) and endOffset (exclusive).", "location": "query", @@ -2247,11 +3073,16 @@ "type": "string" }, "object": { - "description": "Name of the object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "description": "Name of the object. For information about how to URL encode object names to be path safe, see [Encoding URI Path Parts](https://cloud.google.com/storage/docs/request-endpoints#encoding).", "location": "path", "required": true, "type": "string" }, + "overrideUnlockedRetention": { + "description": "Must be true to remove the retention configuration, reduce its unlocked retention period, or change its mode from unlocked to locked.", + "location": "query", + "type": "boolean" + }, "predefinedAcl": { "description": "Apply a predefined set of access controls to this object.", "enum": [ @@ -2304,6 +3135,94 @@ "https://www.googleapis.com/auth/devstorage.full_control" ] }, + "restore": { + "description": "Restores a soft-deleted object.", + "httpMethod": "POST", + "id": "storage.objects.restore", + "parameterOrder": [ + "bucket", + "object" + ], + "parameters": { + "bucket": { + "description": "Name of the bucket in which the object resides.", + "location": "path", + "required": true, + "type": "string" + }, + "copySourceAcl": { + "description": "If true, copies the source object's ACL; otherwise, uses the bucket's default object ACL. The default is false.", + "location": "query", + "type": "boolean" + }, + "generation": { + "description": "Selects a specific revision of this object.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "ifGenerationMatch": { + "description": "Makes the operation conditional on whether the object's one live generation matches the given value. Setting to 0 makes the operation succeed only if there are no live versions of the object.", + "format": "int64", + "location": "query", + "type": "string" + }, + "ifGenerationNotMatch": { + "description": "Makes the operation conditional on whether none of the object's live generations match the given value. If no live object exists, the precondition fails. Setting to 0 makes the operation succeed only if there is a live version of the object.", + "format": "int64", + "location": "query", + "type": "string" + }, + "ifMetagenerationMatch": { + "description": "Makes the operation conditional on whether the object's one live metageneration matches the given value.", + "format": "int64", + "location": "query", + "type": "string" + }, + "ifMetagenerationNotMatch": { + "description": "Makes the operation conditional on whether none of the object's live metagenerations match the given value.", + "format": "int64", + "location": "query", + "type": "string" + }, + "object": { + "description": "Name of the object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "location": "path", + "required": true, + "type": "string" + }, + "projection": { + "description": "Set of properties to return. Defaults to full.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the owner, acl property." + ], + "location": "query", + "type": "string" + }, + "userProject": { + "description": "The project to be billed for this request. Required for Requester Pays buckets.", + "location": "query", + "type": "string" + } + }, + "path": "b/{bucket}/o/{object}/restore", + "request": { + "$ref": "Object" + }, + "response": { + "$ref": "Object" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, "rewrite": { "description": "Rewrites a source object to a destination object. Optionally overrides metadata.", "httpMethod": "POST", @@ -2327,7 +3246,7 @@ "type": "string" }, "destinationObject": { - "description": "Name of the new object. Required when the object metadata is not otherwise provided. Overrides the object metadata's name value, if any. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "description": "Name of the new object. Required when the object metadata is not otherwise provided. Overrides the object metadata's name value, if any. For information about how to URL encode object names to be path safe, see [Encoding URI Path Parts](https://cloud.google.com/storage/docs/request-endpoints#encoding).", "location": "path", "required": true, "type": "string" @@ -2438,7 +3357,7 @@ "type": "string" }, "sourceObject": { - "description": "Name of the source object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "description": "Name of the source object. For information about how to URL encode object names to be path safe, see [Encoding URI Path Parts](https://cloud.google.com/storage/docs/request-endpoints#encoding).", "location": "path", "required": true, "type": "string" @@ -2484,7 +3403,7 @@ "type": "string" }, "object": { - "description": "Name of the object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "description": "Name of the object. For information about how to URL encode object names to be path safe, see [Encoding URI Path Parts](https://cloud.google.com/storage/docs/request-endpoints#encoding).", "location": "path", "required": true, "type": "string" @@ -2531,7 +3450,7 @@ "type": "string" }, "object": { - "description": "Name of the object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "description": "Name of the object. For information about how to URL encode object names to be path safe, see [Encoding URI Path Parts](https://cloud.google.com/storage/docs/request-endpoints#encoding).", "location": "path", "required": true, "type": "string" @@ -2607,11 +3526,16 @@ "type": "string" }, "object": { - "description": "Name of the object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.", + "description": "Name of the object. For information about how to URL encode object names to be path safe, see [Encoding URI Path Parts](https://cloud.google.com/storage/docs/request-endpoints#encoding).", "location": "path", "required": true, "type": "string" }, + "overrideUnlockedRetention": { + "description": "Must be true to remove the retention configuration, reduce its unlocked retention period, or change its mode from unlocked to locked.", + "location": "query", + "type": "boolean" + }, "predefinedAcl": { "description": "Apply a predefined set of access controls to this object.", "enum": [ @@ -2759,6 +3683,117 @@ } } }, + "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.", + "httpMethod": "POST", + "id": "storage.buckets.operations.cancel", + "parameterOrder": [ + "bucket", + "operationId" + ], + "parameters": { + "bucket": { + "description": "The parent bucket of the operation resource.", + "location": "path", + "required": true, + "type": "string" + }, + "operationId": { + "description": "The ID of the operation resource.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "b/{bucket}/operations/{operationId}/cancel", + "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": "Gets the latest state of a long-running operation.", + "httpMethod": "GET", + "id": "storage.buckets.operations.get", + "parameterOrder": [ + "bucket", + "operationId" + ], + "parameters": { + "bucket": { + "description": "The parent bucket of the operation resource.", + "location": "path", + "required": true, + "type": "string" + }, + "operationId": { + "description": "The ID of the operation resource.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "b/{bucket}/operations/{operationId}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "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" + ] + }, + "list": { + "description": "Lists operations that match the specified filter in the request.", + "httpMethod": "GET", + "id": "storage.buckets.operations.list", + "parameterOrder": [ + "bucket" + ], + "parameters": { + "bucket": { + "description": "Name of the bucket in which to look for operations.", + "location": "path", + "required": true, + "type": "string" + }, + "filter": { + "description": "A filter to narrow down results to a preferred subset. The filtering language is documented in more detail in [AIP-160](https://google.aip.dev/160).", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Maximum number of items to return in a single page of responses. Fewer total results may be returned than requested. The service uses this parameter or 100 items, whichever is smaller.", + "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" + } + }, + "path": "b/{bucket}/operations", + "response": { + "$ref": "GoogleLongrunningListOperationsResponse" + }, + "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" + ] + } + } + }, "projects": { "resources": { "hmacKeys": { @@ -3005,9 +4040,91 @@ } } }, - "revision": "20230119", + "revision": "20240229", "rootUrl": "https://storage.googleapis.com/", "schemas": { + "AnywhereCache": { + "description": "An Anywhere Cache instance.", + "id": "AnywhereCache", + "properties": { + "admissionPolicy": { + "description": "The cache-level entry admission policy.", + "type": "string" + }, + "anywhereCacheId": { + "description": "The ID of the Anywhere cache instance.", + "type": "string" + }, + "bucket": { + "description": "The name of the bucket containing this cache instance.", + "type": "string" + }, + "createTime": { + "description": "The creation time of the cache instance in RFC 3339 format.", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "The ID of the resource, including the project number, bucket name and anywhere cache ID.", + "type": "string" + }, + "kind": { + "default": "storage#anywhereCache", + "description": "The kind of item this is. For Anywhere Cache, this is always storage#anywhereCache.", + "type": "string" + }, + "pendingUpdate": { + "description": "True if the cache instance has an active Update long-running operation.", + "type": "boolean" + }, + "selfLink": { + "description": "The link to this cache instance.", + "type": "string" + }, + "state": { + "description": "The current state of the cache instance.", + "type": "string" + }, + "ttl": { + "description": "The TTL of all cache entries in whole seconds. e.g., \"7200s\". ", + "format": "google-duration", + "type": "string" + }, + "updateTime": { + "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" + }, + "AnywhereCaches": { + "description": "A list of Anywhere Caches.", + "id": "AnywhereCaches", + "properties": { + "items": { + "description": "The list of items.", + "items": { + "$ref": "AnywhereCache" + }, + "type": "array" + }, + "kind": { + "default": "storage#anywhereCaches", + "description": "The kind of item this is. For lists of Anywhere Caches, this is always storage#anywhereCaches.", + "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" + }, "Bucket": { "description": "A bucket.", "id": "Bucket", @@ -3031,6 +4148,15 @@ "description": "Whether or not Autoclass is enabled on this bucket", "type": "boolean" }, + "terminalStorageClass": { + "description": "The storage class that objects in the bucket eventually transition to if they are not read for a certain length of time. Valid values are NEARLINE and ARCHIVE.", + "type": "string" + }, + "terminalStorageClassUpdateTime": { + "description": "A date and time in RFC 3339 format representing the time of the most recent update to \"terminalStorageClass\".", + "format": "date-time", + "type": "string" + }, "toggleTime": { "description": "A date and time in RFC 3339 format representing the instant at which \"enabled\" was last toggled.", "format": "date-time", @@ -3122,6 +4248,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": { @@ -3314,6 +4450,16 @@ "description": "The name of the bucket.", "type": "string" }, + "objectRetention": { + "description": "The bucket's object retention config.", + "properties": { + "mode": { + "description": "The bucket's object retention mode. Can be Enabled.", + "type": "string" + } + }, + "type": "object" + }, "owner": { "description": "The owner of the bucket. This is always the project team's owner group.", "properties": { @@ -3365,6 +4511,22 @@ "description": "The URI of this bucket.", "type": "string" }, + "softDeletePolicy": { + "description": "The bucket's soft delete policy, which defines the period of time that soft-deleted objects will be retained, and cannot be permanently deleted.", + "properties": { + "effectiveTime": { + "description": "Server-determined value that indicates the time from which the policy, or one with a greater retention, was effective. This value is in RFC 3339 format.", + "format": "date-time", + "type": "string" + }, + "retentionDurationSeconds": { + "description": "The duration in seconds that soft-deleted objects in the bucket will be retained and cannot be permanently deleted.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "storageClass": { "description": "The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, ARCHIVE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.", "type": "string" @@ -3520,6 +4682,38 @@ }, "type": "object" }, + "BulkRestoreObjectsRequest": { + "description": "A bulk restore objects request.", + "id": "BulkRestoreObjectsRequest", + "properties": { + "allowOverwrite": { + "description": "If false (default), the restore will not overwrite live objects with the same name at the destination. This means some deleted objects may be skipped. If true, live objects will be overwritten resulting in a noncurrent object (if versioning is enabled). If versioning is not enabled, overwriting the object will result in a soft-deleted object. In either case, if a noncurrent object already exists with the same name, a live version can be written without issue.", + "type": "boolean" + }, + "copySourceAcl": { + "description": "If true, copies the source object's ACL; otherwise, uses the bucket's default object ACL. The default is false.", + "type": "boolean" + }, + "matchGlobs": { + "description": "Restores only the objects matching any of the specified glob(s). If this parameter is not specified, all objects will be restored within the specified time range.", + "items": { + "type": "string" + }, + "type": "array" + }, + "softDeletedAfterTime": { + "description": "Restores only the objects that were soft-deleted after this time.", + "format": "date-time", + "type": "string" + }, + "softDeletedBeforeTime": { + "description": "Restores only the objects that were soft-deleted before this time.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, "Channel": { "description": "An notification channel used to watch for resource changes.", "id": "Channel", @@ -3651,6 +4845,162 @@ }, "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", + "properties": { + "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" + }, + "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/{operationId}\".", + "type": "string" + }, + "response": { + "additionalProperties": { + "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\".", + "type": "object" + } + }, + "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.", + "type": "string" + } + }, + "type": "object" + }, "HmacKey": { "description": "JSON template to produce a JSON-style HMAC Key resource for Create responses.", "id": "HmacKey", @@ -3744,6 +5094,72 @@ }, "type": "object" }, + "ManagedFolder": { + "description": "A managed folder.", + "id": "ManagedFolder", + "properties": { + "bucket": { + "description": "The name of the bucket containing this managed folder.", + "type": "string" + }, + "createTime": { + "description": "The creation time of the managed folder in RFC 3339 format.", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "The ID of the managed folder, including the bucket name and managed folder name.", + "type": "string" + }, + "kind": { + "default": "storage#managedFolder", + "description": "The kind of item this is. For managed folders, this is always storage#managedFolder.", + "type": "string" + }, + "metageneration": { + "description": "The version of the metadata for this managed folder. Used for preconditions and for detecting changes in metadata.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "The name of the managed folder. Required if not specified by URL parameter.", + "type": "string" + }, + "selfLink": { + "description": "The link to this managed folder.", + "type": "string" + }, + "updateTime": { + "description": "The last update time of the managed folder metadata in RFC 3339 format.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "ManagedFolders": { + "description": "A list of managed folders.", + "id": "ManagedFolders", + "properties": { + "items": { + "description": "The list of items.", + "items": { + "$ref": "ManagedFolder" + }, + "type": "array" + }, + "kind": { + "default": "storage#managedFolders", + "description": "The kind of item this is. For lists of managed folders, this is always storage#managedFolders.", + "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" + }, "Notification": { "description": "A subscription to receive Google PubSub notifications.", "id": "Notification", @@ -3905,6 +5321,11 @@ "format": "int64", "type": "string" }, + "hardDeleteTime": { + "description": "This is the time (in the future) when the soft-deleted object will no longer be restorable. It is equal to the soft delete time plus the current soft delete retention duration of the bucket.", + "format": "date-time", + "type": "string" + }, "id": { "description": "The ID of the object, including the bucket name, object name, and generation number.", "type": "string" @@ -3957,6 +5378,21 @@ }, "type": "object" }, + "retention": { + "description": "A collection of object level retention parameters.", + "properties": { + "mode": { + "description": "The bucket's object retention mode, can only be Unlocked or Locked.", + "type": "string" + }, + "retainUntilTime": { + "description": "A time in RFC 3339 format until which object retention protects this object.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, "retentionExpirationTime": { "description": "A server-determined value that specifies the earliest time that the object's retention period expires. This value is in RFC 3339 format. Note 1: This field is not provided for objects with an active event-based hold, since retention expiration is unknown until the hold is removed. Note 2: This value can be provided even when temporary hold is set (so that the user can reason about policy without having to first unset the temporary hold).", "format": "date-time", @@ -3971,6 +5407,11 @@ "format": "uint64", "type": "string" }, + "softDeleteTime": { + "description": "The time at which the object became soft-deleted in RFC 3339 format.", + "format": "date-time", + "type": "string" + }, "storageClass": { "description": "Storage class of the object.", "type": "string" @@ -3985,7 +5426,7 @@ "type": "string" }, "timeDeleted": { - "description": "The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.", + "description": "The time at which the object became noncurrent in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.", "format": "date-time", "type": "string" }, @@ -4135,14 +5576,15 @@ "type": "object" }, "Policy": { - "description": "A bucket/object IAM policy.", + "description": "A bucket/object/managedFolder IAM policy.", "id": "Policy", "properties": { "bindings": { "annotations": { "required": [ "storage.buckets.setIamPolicy", - "storage.objects.setIamPolicy" + "storage.objects.setIamPolicy", + "storage.managedFolders.setIamPolicy" ] }, "description": "An association between a role, which comes with a set of permissions, and members who may assume that role.", @@ -4156,7 +5598,8 @@ "annotations": { "required": [ "storage.buckets.setIamPolicy", - "storage.objects.setIamPolicy" + "storage.objects.setIamPolicy", + "storage.managedFolders.setIamPolicy" ] }, "description": "A collection of identifiers for members who may assume the provided role. Recognized identifiers are as follows: \n- allUsers \u2014 A special identifier that represents anyone on the internet; with or without a Google account. \n- allAuthenticatedUsers \u2014 A special identifier that represents anyone who is authenticated with a Google account or a service account. \n- user:emailid \u2014 An email address that represents a specific account. For example, user:alice@gmail.com or user:joe@example.com. \n- serviceAccount:emailid \u2014 An email address that represents a service account. For example, serviceAccount:my-other-app@appspot.gserviceaccount.com . \n- group:emailid \u2014 An email address that represents a Google group. For example, group:admins@example.com. \n- domain:domain \u2014 A Google Apps domain name that represents all the users of that domain. For example, domain:google.com or domain:example.com. \n- projectOwner:projectid \u2014 Owners of the given project. For example, projectOwner:my-example-project \n- projectEditor:projectid \u2014 Editors of the given project. For example, projectEditor:my-example-project \n- projectViewer:projectid \u2014 Viewers of the given project. For example, projectViewer:my-example-project", @@ -4169,7 +5612,8 @@ "annotations": { "required": [ "storage.buckets.setIamPolicy", - "storage.objects.setIamPolicy" + "storage.objects.setIamPolicy", + "storage.managedFolders.setIamPolicy" ] }, "description": "The role to which members belong. Two types of roles are supported: new IAM roles, which grant permissions that do not map directly to those provided by ACLs, and legacy IAM roles, which do map directly to ACL permissions. All roles are of the format roles/storage.specificRole.\nThe new IAM roles are: \n- roles/storage.admin \u2014 Full control of Google Cloud Storage resources. \n- roles/storage.objectViewer \u2014 Read-Only access to Google Cloud Storage objects. \n- roles/storage.objectCreator \u2014 Access to create objects in Google Cloud Storage. \n- roles/storage.objectAdmin \u2014 Full control of Google Cloud Storage objects. The legacy IAM roles are: \n- roles/storage.legacyObjectReader \u2014 Read-only access to objects without listing. Equivalent to an ACL entry on an object with the READER role. \n- roles/storage.legacyObjectOwner \u2014 Read/write access to existing objects without listing. Equivalent to an ACL entry on an object with the OWNER role. \n- roles/storage.legacyBucketReader \u2014 Read access to buckets with object listing. Equivalent to an ACL entry on a bucket with the READER role. \n- roles/storage.legacyBucketWriter \u2014 Read access to buckets with object listing/creation/deletion. Equivalent to an ACL entry on a bucket with the WRITER role. \n- roles/storage.legacyBucketOwner \u2014 Read and write access to existing buckets with object listing/creation/deletion. Equivalent to an ACL entry on a bucket with the OWNER role.", @@ -4191,7 +5635,7 @@ "type": "string" }, "resourceId": { - "description": "The ID of the resource to which this policy belongs. Will be of the form projects/_/buckets/bucket for buckets, and projects/_/buckets/bucket/objects/object for objects. A specific generation may be specified by appending #generationNumber to the end of the object name, e.g. projects/_/buckets/my-bucket/objects/data.txt#17. The current generation can be denoted with #0. This field is ignored on input.", + "description": "The ID of the resource to which this policy belongs. Will be of the form projects/_/buckets/bucket for buckets, projects/_/buckets/bucket/objects/object for objects, and projects/_/buckets/bucket/managedFolders/managedFolder. A specific generation may be specified by appending #generationNumber to the end of the object name, e.g. projects/_/buckets/my-bucket/objects/data.txt#17. The current generation can be denoted with #0. This field is ignored on input.", "type": "string" }, "version": { @@ -4253,7 +5697,7 @@ "type": "object" }, "TestIamPermissionsResponse": { - "description": "A storage.(buckets|objects).testIamPermissions response.", + "description": "A storage.(buckets|objects|managedFolders).testIamPermissions response.", "id": "TestIamPermissionsResponse", "properties": { "kind": { @@ -4262,7 +5706,7 @@ "type": "string" }, "permissions": { - "description": "The permissions held by the caller. Permissions are always of the format storage.resource.capability, where resource is one of buckets or objects. The supported permissions are as follows: \n- storage.buckets.delete \u2014 Delete bucket. \n- storage.buckets.get \u2014 Read bucket metadata. \n- storage.buckets.getIamPolicy \u2014 Read bucket IAM policy. \n- storage.buckets.create \u2014 Create bucket. \n- storage.buckets.list \u2014 List buckets. \n- storage.buckets.setIamPolicy \u2014 Update bucket IAM policy. \n- storage.buckets.update \u2014 Update bucket metadata. \n- storage.objects.delete \u2014 Delete object. \n- storage.objects.get \u2014 Read object data and metadata. \n- storage.objects.getIamPolicy \u2014 Read object IAM policy. \n- storage.objects.create \u2014 Create object. \n- storage.objects.list \u2014 List objects. \n- storage.objects.setIamPolicy \u2014 Update object IAM policy. \n- storage.objects.update \u2014 Update object metadata.", + "description": "The permissions held by the caller. Permissions are always of the format storage.resource.capability, where resource is one of buckets, objects, or managedFolders. The supported permissions are as follows: \n- storage.buckets.delete \u2014 Delete bucket. \n- storage.buckets.get \u2014 Read bucket metadata. \n- storage.buckets.getIamPolicy \u2014 Read bucket IAM policy. \n- storage.buckets.create \u2014 Create bucket. \n- storage.buckets.list \u2014 List buckets. \n- storage.buckets.setIamPolicy \u2014 Update bucket IAM policy. \n- storage.buckets.update \u2014 Update bucket metadata. \n- storage.objects.delete \u2014 Delete object. \n- storage.objects.get \u2014 Read object data and metadata. \n- storage.objects.getIamPolicy \u2014 Read object IAM policy. \n- storage.objects.create \u2014 Create object. \n- storage.objects.list \u2014 List objects. \n- storage.objects.setIamPolicy \u2014 Update object IAM policy. \n- storage.objects.update \u2014 Update object metadata. \n- storage.managedFolders.delete \u2014 Delete managed folder. \n- storage.managedFolders.get \u2014 Read managed folder metadata. \n- storage.managedFolders.getIamPolicy \u2014 Read managed folder IAM policy. \n- storage.managedFolders.create \u2014 Create managed folder. \n- storage.managedFolders.list \u2014 List managed folders. \n- storage.managedFolders.setIamPolicy \u2014 Update managed folder IAM policy.", "items": { "type": "string" }, diff --git a/etc/api/storagetransfer/v1/storagetransfer-api.json b/etc/api/storagetransfer/v1/storagetransfer-api.json index 30dd97c1ea..ade214a73b 100644 --- a/etc/api/storagetransfer/v1/storagetransfer-api.json +++ b/etc/api/storagetransfer/v1/storagetransfer-api.json @@ -541,7 +541,7 @@ ], "parameters": { "filter": { - "description": "Required. A list of query parameters specified as JSON text in the form of: `{\"projectId\":\"my_project_id\", \"jobNames\":[\"jobid1\",\"jobid2\",...], \"operationNames\":[\"opid1\",\"opid2\",...], \"transferStatuses\":[\"status1\",\"status2\",...]}` Since `jobNames`, `operationNames`, and `transferStatuses` support multiple values, they must be specified with array notation. `projectId` is required. `jobNames`, `operationNames`, and `transferStatuses` are optional. The valid values for `transferStatuses` are case-insensitive: IN_PROGRESS, PAUSED, SUCCESS, FAILED, and ABORTED.", + "description": "Required. A list of query parameters specified as JSON text in the form of: `{\"projectId\":\"my_project_id\", \"jobNames\":[\"jobid1\",\"jobid2\",...], \"jobNamePattern\": \"job_name_pattern\", \"operationNames\":[\"opid1\",\"opid2\",...], \"operationNamePattern\": \"operation_name_pattern\", \"minCreationTime\": \"min_creation_time\", \"maxCreationTime\": \"max_creation_time\", \"transferStatuses\":[\"status1\",\"status2\",...]}` Since `jobNames`, `operationNames`, and `transferStatuses` support multiple values, they must be specified with array notation. `projectId` is the only argument that is required. If specified, `jobNamePattern` and `operationNamePattern` must match the full job or operation name respectively. '*' is a wildcard matching 0 or more characters. `minCreationTime` and `maxCreationTime` should be timestamps encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. The valid values for `transferStatuses` are case-insensitive: IN_PROGRESS, PAUSED, SUCCESS, FAILED, and ABORTED.", "location": "query", "required": true, "type": "string" @@ -632,7 +632,7 @@ } } }, - "revision": "20230111", + "revision": "20240224", "rootUrl": "https://storagetransfer.googleapis.com/", "schemas": { "AgentPool": { @@ -725,6 +725,14 @@ "description": "Required. S3 Bucket name (see [Creating a bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)).", "type": "string" }, + "cloudfrontDomain": { + "description": "Optional. Cloudfront domain name pointing to this bucket (as origin), to use when fetching. Format: `https://{id}.cloudfront.net` or any valid custom domain `https://...`", + "type": "string" + }, + "credentialsSecret": { + "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": { "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 '/'.", "type": "string" @@ -748,6 +756,10 @@ "description": "Required. The container to transfer from the Azure Storage account.", "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}`", + "type": "string" + }, "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 '/'.", "type": "string" @@ -924,6 +936,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" @@ -946,6 +962,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** \u2014 The location of the object. * **Length** \u2014 The size of the object in bytes. * **MD5** \u2014 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", @@ -1132,7 +1159,7 @@ "enumDescriptions": [ "Storage class behavior is unspecified.", "Use the destination bucket's default storage class.", - "Preserve the object's original storage class. This is only supported for transfers from Google Cloud Storage buckets.", + "Preserve the object's original storage class. This is only supported for transfers from Google Cloud Storage buckets. REGIONAL and MULTI_REGIONAL storage classes will be mapped to STANDARD to ensure they can be written to the destination bucket.", "Set the storage class to STANDARD.", "Set the storage class to NEARLINE.", "Set the storage class to COLDLINE.", @@ -1169,7 +1196,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", @@ -1178,7 +1205,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" }, @@ -1313,7 +1340,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" } }, @@ -1718,6 +1745,10 @@ }, "type": "array" }, + "loggingConfig": { + "$ref": "LoggingConfig", + "description": "Cloud Logging configuration." + }, "name": { "description": "A globally unique ID assigned by the system.", "type": "string" @@ -1835,7 +1866,11 @@ }, "gcsIntermediateDataLocation": { "$ref": "GcsData", - "description": "Cloud Storage intermediate data location." + "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", diff --git a/etc/api/streetviewpublish/v1/streetviewpublish-api.json b/etc/api/streetviewpublish/v1/streetviewpublish-api.json index 3f3a39a209..2ecd94b89a 100644 --- a/etc/api/streetviewpublish/v1/streetviewpublish-api.json +++ b/etc/api/streetviewpublish/v1/streetviewpublish-api.json @@ -225,7 +225,7 @@ "type": "string" }, "updateMask": { - "description": "Required. Mask that identifies fields on the photo metadata to update. If not present, the old Photo metadata is entirely replaced with the new Photo metadata in this request. The update fails if invalid fields are specified. Multiple fields can be specified in a comma-delimited list. The following fields are valid: * `pose.heading` * `pose.latLngPair` * `pose.pitch` * `pose.roll` * `pose.level` * `pose.altitude` * `connections` * `places` > Note: When updateMask contains repeated fields, the entire set of repeated values get replaced with the new contents. For example, if updateMask contains `connections` and `UpdatePhotoRequest.photo.connections` is empty, all connections are removed.", + "description": "Required. Mask that identifies fields on the photo metadata to update. If not present, the old Photo metadata is entirely replaced with the new Photo metadata in this request. The update fails if invalid fields are specified. Multiple fields can be specified in a comma-delimited list. The following fields are valid: * `pose.heading` * `pose.lat_lng_pair` * `pose.pitch` * `pose.roll` * `pose.level` * `pose.altitude` * `connections` * `places` > Note: When updateMask contains repeated fields, the entire set of repeated values get replaced with the new contents. For example, if updateMask contains `connections` and `UpdatePhotoRequest.photo.connections` is empty, all connections are removed.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -325,6 +325,7 @@ "type": "string" }, "view": { + "deprecated": true, "description": "Specifies if a download URL for the photo sequence should be returned in `download_url` of individual photos in the PhotoSequence response. > Note: Currently not implemented.", "enum": [ "BASIC", @@ -376,7 +377,7 @@ "parameterOrder": [], "parameters": { "filter": { - "description": "Optional. The filter expression. For example: `imagery_type=SPHERICAL`. The filters supported are: `imagery_type`, `processing_state`, `min_latitude`, `max_latitude`, `min_longitude`, `max_longitude`, and `filename_query`. See https://google.aip.dev/160 for more information. Filename queries should sent as a Phrase in order to support multple words and special characters by adding escaped quotes. Ex: filename_query=\"example of a phrase.mp4\"", + "description": "Optional. The filter expression. For example: `imagery_type=SPHERICAL`. The filters supported are: `imagery_type`, `processing_state`, `min_latitude`, `max_latitude`, `min_longitude`, `max_longitude`, `filename_query`, `min_capture_time_seconds`, `max_capture_time_seconds. See https://google.aip.dev/160 for more information. Filename queries should sent as a Phrase in order to support multiple words and special characters by adding escaped quotes. Ex: filename_query=\"example of a phrase.mp4\"", "location": "query", "type": "string" }, @@ -488,7 +489,7 @@ "parameterOrder": [], "parameters": { "filter": { - "description": "Optional. The filter expression. For example: `placeId=ChIJj61dQgK6j4AR4GeTYWZsKWw`. The filters supported are: `placeId`, `min_latitude`, `max_latitude`, `min_longitude`, and `max_longitude`. See https://google.aip.dev/160 for more information.", + "description": "Optional. The filter expression. For example: `placeId=ChIJj61dQgK6j4AR4GeTYWZsKWw`. The filters supported are: `placeId`, `min_latitude`, `max_latitude`, `min_longitude`, `max_longitude`. See https://google.aip.dev/160 for more information.", "location": "query", "type": "string" }, @@ -533,7 +534,7 @@ } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://streetviewpublish.googleapis.com/", "schemas": { "BatchDeletePhotosRequest": { @@ -876,7 +877,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" } }, @@ -1059,7 +1060,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.", @@ -1084,7 +1087,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" @@ -1302,7 +1307,7 @@ "description": "Required. Photo object containing the new metadata." }, "updateMask": { - "description": "Required. Mask that identifies fields on the photo metadata to update. If not present, the old Photo metadata is entirely replaced with the new Photo metadata in this request. The update fails if invalid fields are specified. Multiple fields can be specified in a comma-delimited list. The following fields are valid: * `pose.heading` * `pose.latLngPair` * `pose.pitch` * `pose.roll` * `pose.level` * `pose.altitude` * `connections` * `places` > Note: When updateMask contains repeated fields, the entire set of repeated values get replaced with the new contents. For example, if updateMask contains `connections` and `UpdatePhotoRequest.photo.connections` is empty, all connections are removed.", + "description": "Required. Mask that identifies fields on the photo metadata to update. If not present, the old Photo metadata is entirely replaced with the new Photo metadata in this request. The update fails if invalid fields are specified. Multiple fields can be specified in a comma-delimited list. The following fields are valid: * `pose.heading` * `pose.lat_lng_pair` * `pose.pitch` * `pose.roll` * `pose.level` * `pose.altitude` * `connections` * `places` > Note: When updateMask contains repeated fields, the entire set of repeated values get replaced with the new contents. For example, if updateMask contains `connections` and `UpdatePhotoRequest.photo.connections` is empty, all connections are removed.", "format": "google-fieldmask", "type": "string" } diff --git a/etc/api/sts/v1/sts-api.json b/etc/api/sts/v1/sts-api.json index e1dc13a522..43e4cad9c2 100644 --- a/etc/api/sts/v1/sts-api.json +++ b/etc/api/sts/v1/sts-api.json @@ -146,7 +146,7 @@ } } }, - "revision": "20230114", + "revision": "20240222", "rootUrl": "https://sts.googleapis.com/", "schemas": { "GoogleIamV1Binding": { @@ -158,14 +158,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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" } }, @@ -255,6 +255,10 @@ "format": "int32", "type": "integer" }, + "id_token": { + "description": "Google issued ID token in response to the OAuth token exchange request for ID token flow.", + "type": "string" + }, "refresh_token": { "description": "A refresh token, issued by Google, in response to the OAuth token exchange request for refresh token flow", "type": "string" @@ -264,7 +268,7 @@ "type": "string" }, "token_type": { - "description": "The type of token. Field reserved for RFC compliance. See https://www.rfc-editor.org/rfc/rfc6749#section-5.1 Note: No token_type is returned for current implementation", + "description": "The type of token. Field reserved for RFC compliance. See https://www.rfc-editor.org/rfc/rfc6749#section-5.1", "type": "string" } }, diff --git a/etc/api/sts/v1beta/sts-api.json b/etc/api/sts/v1beta/sts-api.json index f99d369ea8..111aae5868 100644 --- a/etc/api/sts/v1beta/sts-api.json +++ b/etc/api/sts/v1beta/sts-api.json @@ -116,7 +116,7 @@ } } }, - "revision": "20230114", + "revision": "20240222", "rootUrl": "https://sts.googleapis.com/", "schemas": { "GoogleIamV1Binding": { @@ -128,14 +128,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`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "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/etc/api/tagmanager/v1/tagmanager-api.json b/etc/api/tagmanager/v1/tagmanager-api.json index 92d45464f1..af4747f5a4 100644 --- a/etc/api/tagmanager/v1/tagmanager-api.json +++ b/etc/api/tagmanager/v1/tagmanager-api.json @@ -1932,7 +1932,7 @@ } } }, - "revision": "20230123", + "revision": "20240228", "rootUrl": "https://tagmanager.googleapis.com/", "schemas": { "Account": { @@ -2430,6 +2430,7 @@ "type": "array" }, "macro": { + "deprecated": true, "description": "The macros in the container that this version was taken from.", "items": { "$ref": "Macro" @@ -2445,6 +2446,7 @@ "type": "string" }, "rule": { + "deprecated": true, "description": "The rules in the container that this version was taken from.", "items": { "$ref": "Rule" @@ -2500,10 +2502,12 @@ "type": "string" }, "numMacros": { + "deprecated": true, "description": "Number of macros in the container version.", "type": "string" }, "numRules": { + "deprecated": true, "description": "Number of rules in the container version.", "type": "string" }, @@ -3030,6 +3034,7 @@ "type": "string" }, "blockingRuleId": { + "deprecated": true, "description": "Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire. @mutable tagmanager.accounts.containers.tags.create @mutable tagmanager.accounts.containers.tags.update", "items": { "type": "string" @@ -3052,6 +3057,7 @@ "type": "string" }, "firingRuleId": { + "deprecated": true, "description": "Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false. @mutable tagmanager.accounts.containers.tags.create @mutable tagmanager.accounts.containers.tags.update", "items": { "type": "string" diff --git a/etc/api/tagmanager/v2/tagmanager-api.json b/etc/api/tagmanager/v2/tagmanager-api.json index e344ae36b7..4ec1cde169 100644 --- a/etc/api/tagmanager/v2/tagmanager-api.json +++ b/etc/api/tagmanager/v2/tagmanager-api.json @@ -2451,7 +2451,7 @@ ] }, "move_entities_to_folder": { - "description": "Moves entities to a GTM Folder.", + "description": "Moves entities to a GTM Folder. If {folder_id} in the request path equals 0, this will instead move entities out of the folder they currently belong to.", "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/folders/{foldersId}:move_entities_to_folder", "httpMethod": "POST", "id": "tagmanager.accounts.containers.workspaces.folders.move_entities_to_folder", @@ -3050,6 +3050,180 @@ } } }, + "transformations": { + "methods": { + "create": { + "description": "Creates a GTM Transformation.", + "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/transformations", + "httpMethod": "POST", + "id": "tagmanager.accounts.containers.workspaces.transformations.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}", + "location": "path", + "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "tagmanager/v2/{+parent}/transformations", + "request": { + "$ref": "Transformation" + }, + "response": { + "$ref": "Transformation" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, + "delete": { + "description": "Deletes a GTM Transformation.", + "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/transformations/{transformationsId}", + "httpMethod": "DELETE", + "id": "tagmanager.accounts.containers.workspaces.transformations.delete", + "parameterOrder": [ + "path" + ], + "parameters": { + "path": { + "description": "GTM Transformation's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/transformations/{transformation_id}", + "location": "path", + "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/transformations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "tagmanager/v2/{+path}", + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, + "get": { + "description": "Gets a GTM Transformation.", + "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/transformations/{transformationsId}", + "httpMethod": "GET", + "id": "tagmanager.accounts.containers.workspaces.transformations.get", + "parameterOrder": [ + "path" + ], + "parameters": { + "path": { + "description": "GTM Transformation's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/transformations/{transformation_id}", + "location": "path", + "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/transformations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "tagmanager/v2/{+path}", + "response": { + "$ref": "Transformation" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "list": { + "description": "Lists all GTM Transformations of a GTM container workspace.", + "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/transformations", + "httpMethod": "GET", + "id": "tagmanager.accounts.containers.workspaces.transformations.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageToken": { + "description": "Continuation token for fetching the next page of results.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}", + "location": "path", + "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "tagmanager/v2/{+parent}/transformations", + "response": { + "$ref": "ListTransformationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "revert": { + "description": "Reverts changes to a GTM Transformation in a GTM Workspace.", + "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/transformations/{transformationsId}:revert", + "httpMethod": "POST", + "id": "tagmanager.accounts.containers.workspaces.transformations.revert", + "parameterOrder": [ + "path" + ], + "parameters": { + "fingerprint": { + "description": "When provided, this fingerprint must match the fingerprint of the transformation in storage.", + "location": "query", + "type": "string" + }, + "path": { + "description": "GTM Transformation's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/transformations/{transformation_id}", + "location": "path", + "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/transformations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "tagmanager/v2/{+path}:revert", + "response": { + "$ref": "RevertTransformationResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, + "update": { + "description": "Updates a GTM Transformation.", + "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/transformations/{transformationsId}", + "httpMethod": "PUT", + "id": "tagmanager.accounts.containers.workspaces.transformations.update", + "parameterOrder": [ + "path" + ], + "parameters": { + "fingerprint": { + "description": "When provided, this fingerprint must match the fingerprint of the transformation in storage.", + "location": "query", + "type": "string" + }, + "path": { + "description": "GTM Transformation's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/transformations/{transformation_id}", + "location": "path", + "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/transformations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "tagmanager/v2/{+path}", + "request": { + "$ref": "Transformation" + }, + "response": { + "$ref": "Transformation" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + } + } + }, "triggers": { "methods": { "create": { @@ -3716,7 +3890,7 @@ } } }, - "revision": "20230123", + "revision": "20240228", "rootUrl": "https://tagmanager.googleapis.com/", "schemas": { "Account": { @@ -4351,6 +4525,10 @@ "description": "Whether this Container supports templates.", "type": "boolean" }, + "supportTransformations": { + "description": "Whether this Container supports transformations.", + "type": "boolean" + }, "supportTriggers": { "description": "Whether this Container supports triggers.", "type": "boolean" @@ -4464,6 +4642,13 @@ "description": "Auto generated link to the tag manager UI", "type": "string" }, + "transformation": { + "description": "The transformations in the container that this version was taken from.", + "items": { + "$ref": "Transformation" + }, + "type": "array" + }, "trigger": { "description": "The triggers in the container that this version was taken from.", "items": { @@ -4525,10 +4710,12 @@ "type": "string" }, "numMacros": { + "deprecated": true, "description": "Number of macros in the container version.", "type": "string" }, "numRules": { + "deprecated": true, "description": "Number of rules in the container version.", "type": "string" }, @@ -4536,6 +4723,10 @@ "description": "Number of tags in the container version.", "type": "string" }, + "numTransformations": { + "description": "Number of transformations in the container version.", + "type": "string" + }, "numTriggers": { "description": "Number of triggers in the container version.", "type": "string" @@ -4696,6 +4887,10 @@ "description": "A workspace entity that may represent a tag, trigger, variable, or folder in addition to its status in the workspace.", "id": "Entity", "properties": { + "builtInVariable": { + "$ref": "BuiltInVariable", + "description": "The built in variable being represented by the entity." + }, "changeStatus": { "description": "Represents how the entity has been changed in the workspace.", "enum": [ @@ -4718,14 +4913,26 @@ "$ref": "Client", "description": "The client being represented by the entity." }, + "customTemplate": { + "$ref": "CustomTemplate", + "description": "The custom template being represented by the entity." + }, "folder": { "$ref": "Folder", "description": "The folder being represented by the entity." }, + "gtagConfig": { + "$ref": "GtagConfig", + "description": "The gtag config being represented by the entity." + }, "tag": { "$ref": "Tag", "description": "The tag being represented by the entity." }, + "transformation": { + "$ref": "Transformation", + "description": "The transformation being represented by the entity." + }, "trigger": { "$ref": "Trigger", "description": "The trigger being represented by the entity." @@ -4733,6 +4940,10 @@ "variable": { "$ref": "Variable", "description": "The variable being represented by the entity." + }, + "zone": { + "$ref": "Zone", + "description": "The zone being represented by the entity." } }, "type": "object" @@ -5206,6 +5417,23 @@ }, "type": "object" }, + "ListTransformationsResponse": { + "id": "ListTransformationsResponse", + "properties": { + "nextPageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, + "transformation": { + "description": "All GTM Transformations of a GTM Container.", + "items": { + "$ref": "Transformation" + }, + "type": "array" + } + }, + "type": "object" + }, "ListTriggersResponse": { "description": "List triggers response.", "id": "ListTriggersResponse", @@ -5314,6 +5542,10 @@ "description": "Represents a Google Tag Manager Parameter.", "id": "Parameter", "properties": { + "isWeakReference": { + "description": "Whether or not a reference type parameter is strongly or weakly referenced. Only used by Transformations. @mutable tagmanager.accounts.containers.workspaces.transformations.create @mutable tagmanager.accounts.containers.workspaces.transformations.update", + "type": "boolean" + }, "key": { "description": "The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values. @mutable tagmanager.accounts.containers.workspaces.variables.create @mutable tagmanager.accounts.containers.workspaces.variables.update @mutable tagmanager.accounts.containers.workspaces.triggers.create @mutable tagmanager.accounts.containers.workspaces.triggers.update @mutable tagmanager.accounts.containers.workspaces.tags.create @mutable tagmanager.accounts.containers.workspaces.tags.update", "type": "string" @@ -5462,6 +5694,17 @@ }, "type": "object" }, + "RevertTransformationResponse": { + "description": "The result of reverting a transformation in a workspace.", + "id": "RevertTransformationResponse", + "properties": { + "transformation": { + "$ref": "Transformation", + "description": "Transformation as it appears in the latest container version since the last workspace synchronization operation. If no transformation is present, that means the transformation was deleted in the latest container version." + } + }, + "type": "object" + }, "RevertTriggerResponse": { "description": "The result of reverting a trigger in a workspace.", "id": "RevertTriggerResponse", @@ -5552,6 +5795,7 @@ "type": "string" }, "blockingRuleId": { + "deprecated": true, "description": "Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire. @mutable tagmanager.accounts.containers.workspaces.tags.create @mutable tagmanager.accounts.containers.workspaces.tags.update", "items": { "type": "string" @@ -5578,6 +5822,7 @@ "type": "string" }, "firingRuleId": { + "deprecated": true, "description": "Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false. @mutable tagmanager.accounts.containers.workspaces.tags.create @mutable tagmanager.accounts.containers.workspaces.tags.update", "items": { "type": "string" @@ -5744,6 +5989,76 @@ }, "type": "object" }, + "Transformation": { + "description": "Represents a Google Tag Manager Transformation.", + "id": "Transformation", + "properties": { + "accountId": { + "description": "GTM Account ID.", + "type": "string" + }, + "containerId": { + "description": "GTM Container ID.", + "type": "string" + }, + "fingerprint": { + "description": "The fingerprint of the GTM Transformation as computed at storage time. This value is recomputed whenever the transformation is modified.", + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "tagmanager.accounts.containers.workspaces.transformations.create", + "tagmanager.accounts.containers.workspaces.transformations.update" + ] + }, + "description": "Transformation display name. @mutable tagmanager.accounts.containers.workspaces.transformations.create @mutable tagmanager.accounts.containers.workspaces.transformations.update", + "type": "string" + }, + "notes": { + "description": "User notes on how to apply this transformation in the container. @mutable tagmanager.accounts.containers.workspaces.transformations.create @mutable tagmanager.accounts.containers.workspaces.transformations.update", + "type": "string" + }, + "parameter": { + "description": "The transformation's parameters. @mutable tagmanager.accounts.containers.workspaces.transformations.create @mutable tagmanager.accounts.containers.workspaces.transformations.update", + "items": { + "$ref": "Parameter" + }, + "type": "array" + }, + "parentFolderId": { + "description": "Parent folder id.", + "type": "string" + }, + "path": { + "description": "GTM transformation's API relative path.", + "type": "string" + }, + "tagManagerUrl": { + "description": "Auto generated link to the tag manager UI", + "type": "string" + }, + "transformationId": { + "description": "The Transformation ID uniquely identifies the GTM transformation.", + "type": "string" + }, + "type": { + "annotations": { + "required": [ + "tagmanager.accounts.containers.workspaces.transformations.create", + "tagmanager.accounts.containers.workspaces.transformations.update" + ] + }, + "description": "Transformation type. @mutable tagmanager.accounts.containers.workspaces.transformations.create @mutable tagmanager.accounts.containers.workspaces.transformations.update", + "type": "string" + }, + "workspaceId": { + "description": "GTM Workspace ID.", + "type": "string" + } + }, + "type": "object" + }, "Trigger": { "description": "Represents a Google Tag Manager Trigger", "id": "Trigger", diff --git a/etc/api/tasks/v1/tasks-api.json b/etc/api/tasks/v1/tasks-api.json index fa239074f6..28ac9de5c7 100644 --- a/etc/api/tasks/v1/tasks-api.json +++ b/etc/api/tasks/v1/tasks-api.json @@ -408,7 +408,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" @@ -566,7 +566,7 @@ } } }, - "revision": "20230122", + "revision": "20240303", "rootUrl": "https://tasks.googleapis.com/", "schemas": { "Task": { @@ -734,6 +734,6 @@ } }, "servicePath": "", - "title": "Tasks API", + "title": "Google Tasks API", "version": "v1" } \ No newline at end of file diff --git a/etc/api/testing/v1/testing-api.json b/etc/api/testing/v1/testing-api.json index bfc080dbf9..f8a1415e5b 100644 --- a/etc/api/testing/v1/testing-api.json +++ b/etc/api/testing/v1/testing-api.json @@ -114,7 +114,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" @@ -130,6 +136,166 @@ }, "projects": { "resources": { + "deviceSessions": { + "methods": { + "cancel": { + "description": "POST /v1/projects/{project_id}/deviceSessions/{device_session_id}:cancel Changes the DeviceSession to state FINISHED and terminates all connections. Canceled sessions are not deleted and can be retrieved or listed by the user until they expire based on the 28 day deletion policy.", + "flatPath": "v1/projects/{projectsId}/deviceSessions/{deviceSessionsId}:cancel", + "httpMethod": "POST", + "id": "testing.projects.deviceSessions.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the DeviceSession, e.g. \"projects/{project_id}/deviceSessions/{session_id}\"", + "location": "path", + "pattern": "^projects/[^/]+/deviceSessions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:cancel", + "request": { + "$ref": "CancelDeviceSessionRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "create": { + "description": "POST /v1/projects/{project_id}/deviceSessions", + "flatPath": "v1/projects/{projectsId}/deviceSessions", + "httpMethod": "POST", + "id": "testing.projects.deviceSessions.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The Compute Engine project under which this device will be allocated. \"projects/{project_id}\"", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/deviceSessions", + "request": { + "$ref": "DeviceSession" + }, + "response": { + "$ref": "DeviceSession" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "GET /v1/projects/{project_id}/deviceSessions/{device_session_id} Return a DeviceSession, which documents the allocation status and whether the device is allocated. Clients making requests from this API must poll GetDeviceSession.", + "flatPath": "v1/projects/{projectsId}/deviceSessions/{deviceSessionsId}", + "httpMethod": "GET", + "id": "testing.projects.deviceSessions.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the DeviceSession, e.g. \"projects/{project_id}/deviceSessions/{session_id}\"", + "location": "path", + "pattern": "^projects/[^/]+/deviceSessions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "DeviceSession" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "GET /v1/projects/{project_id}/deviceSessions Lists device Sessions owned by the project user.", + "flatPath": "v1/projects/{projectsId}/deviceSessions", + "httpMethod": "GET", + "id": "testing.projects.deviceSessions.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. If specified, responses will be filtered by the given filter. Allowed fields are: session_state.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of DeviceSessions to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A continuation token for paging.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The name of the parent to request, e.g. \"projects/{project_id}\"", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/deviceSessions", + "response": { + "$ref": "ListDeviceSessionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "PATCH /v1/projects/{projectId}/deviceSessions/deviceSessionId}:updateDeviceSession Updates the current device session to the fields described by the update_mask.", + "flatPath": "v1/projects/{projectsId}/deviceSessions/{deviceSessionsId}", + "httpMethod": "PATCH", + "id": "testing.projects.deviceSessions.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Optional. Name of the DeviceSession, e.g. \"projects/{project_id}/deviceSessions/{session_id}\"", + "location": "path", + "pattern": "^projects/[^/]+/deviceSessions/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to update.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "DeviceSession" + }, + "response": { + "$ref": "DeviceSession" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "testMatrices": { "methods": { "cancel": { @@ -164,7 +330,7 @@ ] }, "create": { - "description": "Creates and runs a matrix of tests according to the given specifications. Unsupported environments will be returned in the state UNSUPPORTED. A test matrix is limited to use at most 2000 devices in parallel. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed or if the matrix tries to use too many simultaneous devices.", + "description": "Creates and runs a matrix of tests according to the given specifications. Unsupported environments will be returned in the state UNSUPPORTED. A test matrix is limited to use at most 2000 devices in parallel. The returned matrix will not yet contain the executions that will be created for this matrix. Execution creation happens later on and will require a call to GetTestMatrix. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed or if the matrix tries to use too many simultaneous devices.", "flatPath": "v1/projects/{projectId}/testMatrices", "httpMethod": "POST", "id": "testing.projects.testMatrices.create", @@ -196,7 +362,7 @@ ] }, "get": { - "description": "Checks the status of a test matrix. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the Test Matrix does not exist", + "description": "Checks the status of a test matrix and the executions once they are created. The test matrix will contain the list of test executions to run if and only if the resultStorage.toolResultsExecution fields have been populated. Note: Flaky test executions may be added to the matrix at a later stage. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the Test Matrix does not exist", "flatPath": "v1/projects/{projectId}/testMatrices/{testMatrixId}", "httpMethod": "GET", "id": "testing.projects.testMatrices.get", @@ -282,7 +448,7 @@ } } }, - "revision": "20230119", + "revision": "20240227", "rootUrl": "https://testing.googleapis.com/", "schemas": { "Account": { @@ -509,6 +675,13 @@ "description": "The human-readable marketing name for this device model. Examples: \"Nexus 5\", \"Galaxy S5\".", "type": "string" }, + "perVersionInfo": { + "description": "Version-specific information of an Android model.", + "items": { + "$ref": "PerAndroidVersionInfo" + }, + "type": "array" + }, "screenDensity": { "description": "Screen density in DPI. This corresponds to ro.sf.lcd_density", "format": "int32", @@ -573,11 +746,13 @@ "type": "string" }, "maxDepth": { + "deprecated": true, "description": "The max depth of the traversal stack Robo can explore. Needs to be at least 2 to make Robo explore the app beyond the first activity. Default is 50.", "format": "int32", "type": "integer" }, "maxSteps": { + "deprecated": true, "description": "The max number of steps Robo can execute. Default is no limit.", "format": "int32", "type": "integer" @@ -727,7 +902,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": { @@ -771,6 +946,13 @@ "description": "Full Java-style package name for this application, e.g. \"com.example.foo\".", "type": "string" }, + "services": { + "description": "Services contained in the tag.", + "items": { + "$ref": "Service" + }, + "type": "array" + }, "targetSdkVersion": { "description": "Specifies the API Level on which the application is designed to run.", "format": "int32", @@ -813,6 +995,12 @@ }, "type": "object" }, + "CancelDeviceSessionRequest": { + "description": "The request object for cancelling a Device Session.", + "id": "CancelDeviceSessionRequest", + "properties": {}, + "type": "object" + }, "CancelTestMatrixResponse": { "description": "Response containing the current state of the specified test matrix.", "id": "CancelTestMatrixResponse", @@ -965,6 +1153,102 @@ }, "type": "object" }, + "DeviceSession": { + "description": "Protobuf message describing the device message, used from several RPCs.", + "id": "DeviceSession", + "properties": { + "activeStartTime": { + "description": "Output only. The timestamp that the session first became ACTIVE.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "androidDevice": { + "$ref": "AndroidDevice", + "description": "Required. The requested device" + }, + "createTime": { + "description": "Output only. The time that the Session was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Output only. The title of the DeviceSession to be presented in the UI.", + "readOnly": true, + "type": "string" + }, + "expireTime": { + "description": "Optional. If the device is still in use at this time, any connections will be ended and the SessionState will transition from ACTIVE to FINISHED.", + "format": "google-datetime", + "type": "string" + }, + "inactivityTimeout": { + "description": "Output only. The interval of time that this device must be interacted with before it transitions from ACTIVE to TIMEOUT_INACTIVITY.", + "format": "google-duration", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Optional. Name of the DeviceSession, e.g. \"projects/{project_id}/deviceSessions/{session_id}\"", + "type": "string" + }, + "state": { + "description": "Output only. Current state of the DeviceSession.", + "enum": [ + "SESSION_STATE_UNSPECIFIED", + "REQUESTED", + "PENDING", + "ACTIVE", + "EXPIRED", + "FINISHED", + "UNAVAILABLE", + "ERROR" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Initial state of a session request. The session is being validated for correctness and a device is not yet requested.", + "The session has been validated and is in the queue for a device.", + "The session has been granted and the device is accepting connections.", + "The session duration exceeded the device\u2019s reservation time period and timed out automatically.", + "The user is finished with the session and it was canceled by the user while the request was still getting allocated or after allocation and during device usage period.", + "Unable to complete the session because the device was unavailable and it failed to allocate through the scheduler. For example, a device not in the catalog was requested or the request expired in the allocation queue.", + "Unable to complete the session for an internal reason, such as an infrastructure failure." + ], + "readOnly": true, + "type": "string" + }, + "stateHistories": { + "description": "Output only. The historical state transitions of the session_state message including the current session state.", + "items": { + "$ref": "SessionStateEvent" + }, + "readOnly": true, + "type": "array" + }, + "ttl": { + "description": "Optional. The amount of time that a device will be initially allocated for. This can eventually be extended with the UpdateDeviceSession RPC. Default: 30 minutes.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "DirectAccessVersionInfo": { + "description": "Denotes whether Direct Access is supported, and by which client versions. DirectAccessService is currently available as a preview to select developers. You can register today on behalf of you and your team at https://developer.android.com/studio/preview/android-device-streaming", + "id": "DirectAccessVersionInfo", + "properties": { + "directAccessSupported": { + "description": "Whether direct access is supported at all. Clients are expected to filter down the device list to only android models and versions which support Direct Access when that is the user intent.", + "type": "boolean" + }, + "minimumAndroidStudioVersion": { + "description": "Output only. Indicates client-device compatibility, where a device is known to work only with certain workarounds implemented in the Android Studio client. Expected format \"major.minor.micro.patch\", e.g. \"5921.22.2211.8881706\".", + "type": "string" + } + }, + "type": "object" + }, "Distribution": { "description": "Data about the relative number of devices running a given configuration of the Android platform.", "id": "Distribution", @@ -982,6 +1266,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" + }, "Environment": { "description": "The environment in which the test is run.", "id": "Environment", @@ -1043,12 +1333,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" @@ -1218,6 +1508,13 @@ "description": "The human-readable name for this device model. Examples: \"iPhone 4s\", \"iPad Mini 2\".", "type": "string" }, + "perVersionInfo": { + "description": "Version-specific information of an iOS model.", + "items": { + "$ref": "PerIosVersionInfo" + }, + "type": "array" + }, "screenDensity": { "description": "Screen density in DPI.", "format": "int32", @@ -1250,6 +1547,25 @@ }, "type": "object" }, + "IosRoboTest": { + "description": "A test that explores an iOS application on an iOS device.", + "id": "IosRoboTest", + "properties": { + "appBundleId": { + "description": "The bundle ID for the app-under-test. This is determined by examining the application's \"Info.plist\" file.", + "type": "string" + }, + "appIpa": { + "$ref": "FileReference", + "description": "Required. The ipa stored at this file should be used to run the test." + }, + "roboScript": { + "$ref": "FileReference", + "description": "An optional Roboscript to customize the crawl. See https://firebase.google.com/docs/test-lab/android/robo-scripts-reference for more information about Roboscripts." + } + }, + "type": "object" + }, "IosRuntimeConfiguration": { "description": "iOS configuration that can be selected at the time a test is run.", "id": "IosRuntimeConfiguration", @@ -1394,6 +1710,24 @@ "properties": {}, "type": "object" }, + "ListDeviceSessionsResponse": { + "description": "A list of device sessions.", + "id": "ListDeviceSessionsResponse", + "properties": { + "deviceSessions": { + "description": "The sessions matching the specified filter in the given cloud project.", + "items": { + "$ref": "DeviceSession" + }, + "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" + }, "Locale": { "description": "A location/region designation for language.", "id": "Locale", @@ -1425,7 +1759,7 @@ "id": "ManualSharding", "properties": { "testTargetsForShard": { - "description": "Required. Group of packages, classes, and/or test methods to be run for each manually-created shard. You must specify at least one shard if this field is present. When you select one or more physical devices, the number of repeated test_targets_for_shard must be <= 50. When you select one or more ARM virtual devices, it must be <= 100. When you select only x86 virtual devices, it must be <= 500.", + "description": "Required. Group of packages, classes, and/or test methods to be run for each manually-created shard. You must specify at least one shard if this field is present. When you select one or more physical devices, the number of repeated test_targets_for_shard must be <= 50. When you select one or more ARM virtual devices, it must be <= 200. When you select only x86 virtual devices, it must be <= 500.", "items": { "$ref": "TestTargetsForShard" }, @@ -1434,6 +1768,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", @@ -1479,6 +1830,12 @@ }, "type": "object" }, + "NoActivityIntent": { + "description": "Skips the starting activity", + "id": "NoActivityIntent", + "properties": {}, + "type": "object" + }, "ObbFile": { "description": "An opaque binary blob file to install on the device before the test starts.", "id": "ObbFile", @@ -1516,6 +1873,75 @@ }, "type": "object" }, + "PerAndroidVersionInfo": { + "description": "A version-specific information of an Android model.", + "id": "PerAndroidVersionInfo", + "properties": { + "deviceCapacity": { + "description": "The number of online devices for an Android version.", + "enum": [ + "DEVICE_CAPACITY_UNSPECIFIED", + "DEVICE_CAPACITY_HIGH", + "DEVICE_CAPACITY_MEDIUM", + "DEVICE_CAPACITY_LOW", + "DEVICE_CAPACITY_NONE" + ], + "enumDescriptions": [ + "The value of device capacity is unknown or unset.", + "Devices that are high in capacity (The lab has a large number of these devices). These devices are generally suggested for running a large number of simultaneous tests (e.g. more than 100 tests). Please note that high capacity devices do not guarantee short wait times due to several factors: 1. Traffic (how heavily they are used at any given moment) 2. High capacity devices are prioritized for certain usages, which may cause user tests to be slower than selecting other similar device types.", + "Devices that are medium in capacity (The lab has a decent number of these devices, though not as many as high capacity devices). These devices are suitable for fewer test runs (e.g. fewer than 100 tests) and only for low shard counts (e.g. less than 10 shards).", + "Devices that are low in capacity (The lab has a small number of these devices). These devices may be used if users need to test on this specific device model and version. Please note that due to low capacity, the tests may take much longer to finish, especially if a large number of tests are invoked at once. These devices are not suitable for test sharding.", + "Devices that are completely missing from the lab. These devices are unavailable either temporarily or permanently and should not be requested. If the device is also marked as deprecated, this state is very likely permanent." + ], + "type": "string" + }, + "directAccessVersionInfo": { + "$ref": "DirectAccessVersionInfo", + "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" + } + }, + "type": "object" + }, + "PerIosVersionInfo": { + "description": "A version-specific information of an iOS model.", + "id": "PerIosVersionInfo", + "properties": { + "deviceCapacity": { + "description": "The number of online devices for an iOS version.", + "enum": [ + "DEVICE_CAPACITY_UNSPECIFIED", + "DEVICE_CAPACITY_HIGH", + "DEVICE_CAPACITY_MEDIUM", + "DEVICE_CAPACITY_LOW", + "DEVICE_CAPACITY_NONE" + ], + "enumDescriptions": [ + "The value of device capacity is unknown or unset.", + "Devices that are high in capacity (The lab has a large number of these devices). These devices are generally suggested for running a large number of simultaneous tests (e.g. more than 100 tests). Please note that high capacity devices do not guarantee short wait times due to several factors: 1. Traffic (how heavily they are used at any given moment) 2. High capacity devices are prioritized for certain usages, which may cause user tests to be slower than selecting other similar device types.", + "Devices that are medium in capacity (The lab has a decent number of these devices, though not as many as high capacity devices). These devices are suitable for fewer test runs (e.g. fewer than 100 tests) and only for low shard counts (e.g. less than 10 shards).", + "Devices that are low in capacity (The lab has a small number of these devices). These devices may be used if users need to test on this specific device model and version. Please note that due to low capacity, the tests may take much longer to finish, especially if a large number of tests are invoked at once. These devices are not suitable for test sharding.", + "Devices that are completely missing from the lab. These devices are unavailable either temporarily or permanently and should not be requested. If the device is also marked as deprecated, this state is very likely permanent." + ], + "type": "string" + }, + "versionId": { + "description": "An iOS version.", + "type": "string" + } + }, + "type": "object" + }, "ProvidedSoftwareCatalog": { "description": "The currently provided software environment on the devices under test.", "id": "ProvidedSoftwareCatalog", @@ -1525,6 +1951,7 @@ "type": "string" }, "orchestratorVersion": { + "deprecated": true, "description": "Deprecated: Use AndroidX Test Orchestrator going forward. A string representing the current version of Android Test Orchestrator that is used in the environment. The package is available at https://maven.google.com/web/index.html#com.android.support.test:orchestrator.", "type": "string" } @@ -1608,6 +2035,10 @@ "$ref": "LauncherActivityIntent", "description": "An intent that starts the main launcher activity." }, + "noActivity": { + "$ref": "NoActivityIntent", + "description": "Skips the starting activity" + }, "startActivity": { "$ref": "StartActivityIntent", "description": "An intent that starts an activity with specific details." @@ -1620,23 +2051,93 @@ }, "type": "object" }, + "Service": { + "description": "The section of an tag. https://developer.android.com/guide/topics/manifest/service-element", + "id": "Service", + "properties": { + "intentFilter": { + "description": "Intent filters in the service", + "items": { + "$ref": "IntentFilter" + }, + "type": "array" + }, + "name": { + "description": "The android:name value", + "type": "string" + } + }, + "type": "object" + }, + "SessionStateEvent": { + "description": "A message encapsulating a series of Session states and the time that the DeviceSession first entered those states.", + "id": "SessionStateEvent", + "properties": { + "eventTime": { + "description": "Output only. The time that the session_state first encountered that state.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "sessionState": { + "description": "Output only. The session_state tracked by this event", + "enum": [ + "SESSION_STATE_UNSPECIFIED", + "REQUESTED", + "PENDING", + "ACTIVE", + "EXPIRED", + "FINISHED", + "UNAVAILABLE", + "ERROR" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Initial state of a session request. The session is being validated for correctness and a device is not yet requested.", + "The session has been validated and is in the queue for a device.", + "The session has been granted and the device is accepting connections.", + "The session duration exceeded the device\u2019s reservation time period and timed out automatically.", + "The user is finished with the session and it was canceled by the user while the request was still getting allocated or after allocation and during device usage period.", + "Unable to complete the session because the device was unavailable and it failed to allocate through the scheduler. For example, a device not in the catalog was requested or the request expired in the allocation queue.", + "Unable to complete the session for an internal reason, such as an infrastructure failure." + ], + "readOnly": true, + "type": "string" + }, + "stateMessage": { + "description": "Output only. A human-readable message to explain the state.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Shard": { "description": "Output only. Details about the shard.", "id": "Shard", "properties": { + "estimatedShardDuration": { + "description": "Output only. The estimated shard duration based on previous test case timing records, if available.", + "format": "google-duration", + "readOnly": true, + "type": "string" + }, "numShards": { "description": "Output only. The total number of shards.", "format": "int32", + "readOnly": true, "type": "integer" }, "shardIndex": { "description": "Output only. The index of the shard among all the shards.", "format": "int32", + "readOnly": true, "type": "integer" }, "testTargetsForShard": { "$ref": "TestTargetsForShard", - "description": "Output only. Test targets for each shard. Only set for manual sharding." + "description": "Output only. Test targets for each shard. Only set for manual sharding.", + "readOnly": true } }, "type": "object" @@ -1649,6 +2150,10 @@ "$ref": "ManualSharding", "description": "Shards test cases into the specified groups of packages, classes, and/or methods." }, + "smartSharding": { + "$ref": "SmartSharding", + "description": "Shards test based on previous test case timing records." + }, "uniformSharding": { "$ref": "UniformSharding", "description": "Uniformly shards test cases given a total number of shards." @@ -1656,6 +2161,18 @@ }, "type": "object" }, + "SmartSharding": { + "description": "Shards test based on previous test case timing records.", + "id": "SmartSharding", + "properties": { + "targetedShardDuration": { + "description": "The amount of time tests within a shard should take. Default: 300 seconds (5 minutes). The minimum allowed: 120 seconds (2 minutes). The shard count is dynamically set based on time, up to the maximum shard limit (described below). To guarantee at least one test case for each shard, the number of shards will not exceed the number of test cases. Shard duration will be exceeded if: - The maximum shard limit is reached and there is more calculated test time remaining to allocate into shards. - Any individual test is estimated to be longer than the targeted shard duration. Shard duration is not guaranteed because smart sharding uses test case history and default durations which may not be accurate. The rules for finding the test case timing records are: - If the service has processed a test case in the last 30 days, the record of the latest successful test case will be used. - For new test cases, the average duration of other known test cases will be used. - If there are no previous test case timing records available, the default test case duration is 15 seconds. Because the actual shard duration can exceed the targeted shard duration, we recommend that you set the targeted value at least 5 minutes less than the maximum allowed test timeout (45 minutes for physical devices and 60 minutes for virtual), or that you use the custom test timeout value that you set. This approach avoids cancelling the shard before all tests can finish. Note that there is a limit for maximum number of shards. When you select one or more physical devices, the number of shards must be <= 50. When you select one or more ARM virtual devices, it must be <= 200. When you select only x86 virtual devices, it must be <= 500. To guarantee at least one test case for per shard, the number of shards will not exceed the number of test cases. Each shard created counts toward daily test quota.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "StartActivityIntent": { "description": "A starting intent specified by an action, uri, and categories.", "id": "StartActivityIntent", @@ -1682,6 +2199,7 @@ "id": "SystraceSetup", "properties": { "durationSeconds": { + "deprecated": true, "description": "Systrace duration in seconds. Should be between 1 and 30 seconds. 0 disables systrace.", "format": "int32", "type": "integer" @@ -1820,6 +2338,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" @@ -1872,6 +2398,47 @@ "SERVICE_NOT_ACTIVATED", "UNKNOWN_PERMISSION_ERROR" ], + "enumDeprecated": [ + 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, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], "enumDescriptions": [ "Do not use. For proto versioning only.", "The matrix is INVALID, but there are no further details available.", @@ -1884,7 +2451,7 @@ "The test apk does not declare an instrumentation.", "The input app apk does not have a signature.", "The test runner class specified by user or in the test APK's manifest file is not compatible with Android Test Orchestrator. Orchestrator is only compatible with AndroidJUnitRunner version 1.1 or higher. Orchestrator can be disabled by using DO_NOT_USE_ORCHESTRATOR OrchestratorOption.", - "The test APK does not contain the test runner class specified by user or in the manifest file. This can be caused by either of the following reasons: - the user provided a runner class name that's incorrect, or - the test runner isn't built into the test APK (might be in the app APK instead).", + "The test APK does not contain the test runner class specified by the user or in the manifest file. This can be caused by one of the following reasons: - the user provided a runner class name that's incorrect, or - the test runner isn't built into the test APK (might be in the app APK instead).", "A main launcher activity could not be found.", "The app declares one or more permissions that are not allowed.", "There is a conflict in the provided robo_directives.", @@ -1927,7 +2494,7 @@ "enumDescriptions": [ "Do not use. For proto versioning only.", "The test matrix run was successful, for instance: - All the test cases passed. - Robo did not detect a crash of the application under test.", - "A run failed, for instance: - One or more test case failed. - A test timed out. - The application under test crashed.", + "A run failed, for instance: - One or more test cases failed. - A test timed out. - The application under test crashed.", "Something unexpected happened. The run should still be considered unsuccessful but this is likely a transient problem and re-running the test might be successful.", "All tests were skipped, for instance: - All device configurations were incompatible." ], @@ -2003,7 +2570,7 @@ "description": "The device will be logged in on this account for the duration of the test." }, "additionalApks": { - "description": "APKs to install in addition to those being directly tested. Currently capped at 100.", + "description": "APKs to install in addition to those being directly tested. These will be installed after the app under test. Currently capped at 100.", "items": { "$ref": "Apk" }, @@ -2034,13 +2601,21 @@ }, "type": "array" }, + "initialSetupApks": { + "description": "Optional. Initial setup APKs to install before the app under test is installed. Currently capped at 100.", + "items": { + "$ref": "Apk" + }, + "type": "array" + }, "networkProfile": { "description": "The network traffic profile used for running the test. Available network profiles can be queried by using the NETWORK_CONFIGURATION environment type when calling TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.", "type": "string" }, "systrace": { "$ref": "SystraceSetup", - "description": "Deprecated: Systrace uses Python 2 which has been sunset 2020-01-01. Support of Systrace may stop at any time, at which point no Systrace file will be provided in the results. Systrace configuration for the run. If set a systrace will be taken, starting on test start and lasting for the configured duration. The systrace file thus obtained is put in the results bucket together with the other artifacts from the run." + "deprecated": true, + "description": "Systrace configuration for the run. Deprecated: Systrace used Python 2 which was sunsetted on 2020-01-01. Systrace is no longer supported in the Cloud Testing API, and no Systrace file will be provided in the results." } }, "type": "object" @@ -2069,6 +2644,10 @@ "description": "Disables video recording. May reduce test latency.", "type": "boolean" }, + "iosRoboTest": { + "$ref": "IosRoboTest", + "description": "An iOS Robo test." + }, "iosTestLoop": { "$ref": "IosTestLoop", "description": "An iOS application with a test loop." @@ -2201,7 +2780,7 @@ "id": "UniformSharding", "properties": { "numShards": { - "description": "Required. The total number of shards to create. This must always be a positive number that is no greater than the total number of test cases. When you select one or more physical devices, the number of shards must be <= 50. When you select one or more ARM virtual devices, it must be <= 100. When you select only x86 virtual devices, it must be <= 500.", + "description": "Required. The total number of shards to create. This must always be a positive number that is no greater than the total number of test cases. When you select one or more physical devices, the number of shards must be <= 50. When you select one or more ARM virtual devices, it must be <= 200. When you select only x86 virtual devices, it must be <= 500.", "format": "int32", "type": "integer" } diff --git a/etc/api/texttospeech/v1/texttospeech-api.json b/etc/api/texttospeech/v1/texttospeech-api.json index 1079828add..f8397cc248 100644 --- a/etc/api/texttospeech/v1/texttospeech-api.json +++ b/etc/api/texttospeech/v1/texttospeech-api.json @@ -176,7 +176,7 @@ ], "parameters": { "parent": { - "description": "The resource states of the request in the form of `projects/*/locations/*/voices/*`.", + "description": "The resource states of the request in the form of `projects/*/locations/*`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -224,7 +224,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "texttospeech.projects.locations.operations.list", @@ -318,7 +318,7 @@ } } }, - "revision": "20230118", + "revision": "20240228", "rootUrl": "https://texttospeech.googleapis.com/", "schemas": { "AudioConfig": { @@ -390,7 +390,8 @@ "type": "string" }, "reportedUsage": { - "description": "Optional. The usage of the synthesized audio to be reported.", + "deprecated": true, + "description": "Optional. Deprecated. The usage of the synthesized audio to be reported.", "enum": [ "REPORTED_USAGE_UNSPECIFIED", "REALTIME", @@ -416,6 +417,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", @@ -490,7 +497,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" } }, @@ -542,6 +549,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", @@ -565,15 +578,15 @@ }, "input": { "$ref": "SynthesisInput", - "description": "Required. The Synthesizer requires either plain text or SSML as input." + "description": "Required. The Synthesizer requires either plain text or SSML as input. While Long Audio is in preview, SSML is temporarily unsupported." }, "outputGcsUri": { - "description": "Specifies a Cloud Storage URI for the synthesis results. Must be specified in the format: `gs://bucket_name/object_name`, and the bucket must already exist.", + "description": "Required. Specifies a Cloud Storage URI for the synthesis results. Must be specified in the format: `gs://bucket_name/object_name`, and the bucket must already exist.", "type": "string" }, "voice": { "$ref": "VoiceSelectionParams", - "description": "The desired voice of the synthesized audio." + "description": "Required. The desired voice of the synthesized audio." } }, "type": "object" diff --git a/etc/api/texttospeech/v1beta1/texttospeech-api.json b/etc/api/texttospeech/v1beta1/texttospeech-api.json index 9e211f5ac7..2633c58cfc 100644 --- a/etc/api/texttospeech/v1beta1/texttospeech-api.json +++ b/etc/api/texttospeech/v1beta1/texttospeech-api.json @@ -119,7 +119,7 @@ ], "parameters": { "parent": { - "description": "The resource states of the request in the form of `projects/*/locations/*/voices/*`.", + "description": "The resource states of the request in the form of `projects/*/locations/*`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -167,7 +167,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "texttospeech.projects.locations.operations.list", @@ -261,7 +261,7 @@ } } }, - "revision": "20230118", + "revision": "20240228", "rootUrl": "https://texttospeech.googleapis.com/", "schemas": { "AudioConfig": { @@ -329,7 +329,8 @@ "type": "string" }, "reportedUsage": { - "description": "Optional. The usage of the synthesized audio to be reported.", + "deprecated": true, + "description": "Optional. Deprecated. The usage of the synthesized audio to be reported.", "enum": [ "REPORTED_USAGE_UNSPECIFIED", "REALTIME", @@ -349,6 +350,12 @@ "description": "Metadata for response returned by the `SynthesizeLongAudio` method.", "id": "GoogleCloudTexttospeechV1beta1SynthesizeLongAudioMetadata", "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", @@ -423,7 +430,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" } }, @@ -475,6 +482,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", @@ -498,15 +511,15 @@ }, "input": { "$ref": "SynthesisInput", - "description": "Required. The Synthesizer requires either plain text or SSML as input." + "description": "Required. The Synthesizer requires either plain text or SSML as input. While Long Audio is in preview, SSML is temporarily unsupported." }, "outputGcsUri": { - "description": "Specifies a Cloud Storage URI for the synthesis results. Must be specified in the format: `gs://bucket_name/object_name`, and the bucket must already exist.", + "description": "Required. Specifies a Cloud Storage URI for the synthesis results. Must be specified in the format: `gs://bucket_name/object_name`, and the bucket must already exist.", "type": "string" }, "voice": { "$ref": "VoiceSelectionParams", - "description": "The desired voice of the synthesized audio." + "description": "Required. The desired voice of the synthesized audio." } }, "type": "object" diff --git a/etc/api/toolresults/v1beta3/toolresults-api.json b/etc/api/toolresults/v1beta3/toolresults-api.json index f77a0bdfc5..e4c273dd99 100644 --- a/etc/api/toolresults/v1beta3/toolresults-api.json +++ b/etc/api/toolresults/v1beta3/toolresults-api.json @@ -888,7 +888,7 @@ ] }, "publishXunitXmlFiles": { - "description": "Publish xml files to an existing Step. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the requested state transition is illegal, e.g try to upload a duplicate xml file or a file too large. - NOT_FOUND - if the containing Execution does not exist", + "description": "Publish xml files to an existing Step. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the requested state transition is illegal, e.g. try to upload a duplicate xml file or a file too large. - NOT_FOUND - if the containing Execution does not exist", "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}:publishXunitXmlFiles", "httpMethod": "POST", "id": "toolresults.projects.histories.executions.steps.publishXunitXmlFiles", @@ -1463,7 +1463,7 @@ } } }, - "revision": "20230124", + "revision": "20240304", "rootUrl": "https://toolresults.googleapis.com/", "schemas": { "ANR": { @@ -1618,6 +1618,12 @@ }, "type": "object" }, + "AssetIssue": { + "description": "There was an issue with the assets in this test.", + "id": "AssetIssue", + "properties": {}, + "type": "object" + }, "AvailableDeepLinks": { "description": "A suggestion to use deep links for a Robo run.", "id": "AvailableDeepLinks", @@ -1905,7 +1911,7 @@ "type": "object" }, "Execution": { - "description": "An Execution represents a collection of Steps. For instance, it could represent: - a mobile test executed across a range of device configurations - a jenkins job with a build step followed by a test step The maximum size of an execution message is 1 MiB. An Execution can be updated until its state is set to COMPLETE at which point it becomes immutable. Next tag: 16", + "description": "An Execution represents a collection of Steps. For instance, it could represent: - a mobile test executed across a range of device configurations - a jenkins job with a build step followed by a test step The maximum size of an execution message is 1 MiB. An Execution can be updated until its state is set to COMPLETE at which point it becomes immutable.", "id": "Execution", "properties": { "completionTime": { @@ -1959,7 +1965,7 @@ "type": "object" }, "FailedToInstall": { - "description": "Failed to install the APK.", + "description": "Failed to install the App.", "id": "FailedToInstall", "properties": {}, "type": "object" @@ -2828,6 +2834,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": { @@ -3219,7 +3226,7 @@ "type": "object" }, "Step": { - "description": "A Step represents a single operation performed as part of Execution. A step can be used to represent the execution of a tool ( for example a test runner execution or an execution of a compiler). Steps can overlap (for instance two steps might have the same start time if some operations are done in parallel). Here is an example, let's consider that we have a continuous build is executing a test runner for each iteration. The workflow would look like: - user creates a Execution with id 1 - user creates an TestExecutionStep with id 100 for Execution 1 - user update TestExecutionStep with id 100 to add a raw xml log + the service parses the xml logs and returns a TestExecutionStep with updated TestResult(s). - user update the status of TestExecutionStep with id 100 to COMPLETE A Step can be updated until its state is set to COMPLETE at which points it becomes immutable. Next tag: 27", + "description": "A Step represents a single operation performed as part of Execution. A step can be used to represent the execution of a tool ( for example a test runner execution or an execution of a compiler). Steps can overlap (for instance two steps might have the same start time if some operations are done in parallel). Here is an example, let's consider that we have a continuous build is executing a test runner for each iteration. The workflow would look like: - user creates a Execution with id 1 - user creates a TestExecutionStep with id 100 for Execution 1 - user update TestExecutionStep with id 100 to add a raw xml log + the service parses the xml logs and returns a TestExecutionStep with updated TestResult(s). - user update the status of TestExecutionStep with id 100 to COMPLETE A Step can be updated until its state is set to COMPLETE at which points it becomes immutable.", "id": "Step", "properties": { "completionTime": { @@ -3587,6 +3594,7 @@ }, "stackTrace": { "$ref": "StackTrace", + "deprecated": true, "description": "Deprecated in favor of stack trace fields inside specific warnings." }, "type": { @@ -3623,7 +3631,8 @@ "unityException", "deviceOutOfMemory", "logcatCollectionError", - "detectedAppSplashScreen" + "detectedAppSplashScreen", + "assetIssue" ], "enumDescriptions": [ "Default unspecified type. Do not use. For versioning only.", @@ -3657,7 +3666,8 @@ "An uncaught Unity exception was detected (these don't crash apps).", "Device running out of memory was detected", "Problems detected while collecting logcat", - "Robo detected a splash screen provided by app (vs. Android OS splash screen)." + "Robo detected a splash screen provided by app (vs. Android OS splash screen).", + "There was an issue with the assets in this test." ], "type": "string" }, diff --git a/etc/api/tpu/v1/tpu-api.json b/etc/api/tpu/v1/tpu-api.json index 71db0837e0..1c5f792273 100644 --- a/etc/api/tpu/v1/tpu-api.json +++ b/etc/api/tpu/v1/tpu-api.json @@ -537,7 +537,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "tpu.projects.locations.operations.list", @@ -659,7 +659,7 @@ } } }, - "revision": "20230105", + "revision": "20240222", "rootUrl": "https://tpu.googleapis.com/", "schemas": { "AcceleratorType": { @@ -795,7 +795,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -909,6 +909,7 @@ "type": "string" }, "ipAddress": { + "deprecated": true, "description": "Output only. DEPRECATED! Use network_endpoints instead. The network address for the TPU Node as visible to Compute Engine instances.", "type": "string" }, @@ -937,6 +938,7 @@ "type": "array" }, "port": { + "deprecated": true, "description": "Output only. DEPRECATED! Use network_endpoints instead. The network port for the TPU Node as visible to Compute Engine instances.", "type": "string" }, @@ -1036,7 +1038,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/etc/api/tpu/v1alpha1/tpu-api.json b/etc/api/tpu/v1alpha1/tpu-api.json index cb4acc1242..0da108e62f 100644 --- a/etc/api/tpu/v1alpha1/tpu-api.json +++ b/etc/api/tpu/v1alpha1/tpu-api.json @@ -547,7 +547,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "tpu.projects.locations.operations.list", @@ -669,7 +669,7 @@ } } }, - "revision": "20230105", + "revision": "20240222", "rootUrl": "https://tpu.googleapis.com/", "schemas": { "AcceleratorType": { @@ -805,7 +805,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -919,6 +919,7 @@ "type": "string" }, "ipAddress": { + "deprecated": true, "description": "Output only. DEPRECATED! Use network_endpoints instead. The network address for the TPU Node as visible to Compute Engine instances.", "type": "string" }, @@ -947,6 +948,7 @@ "type": "array" }, "port": { + "deprecated": true, "description": "Output only. DEPRECATED! Use network_endpoints instead. The network port for the TPU Node as visible to Compute Engine instances.", "type": "string" }, @@ -1046,7 +1048,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/etc/api/tpu/v2alpha1/tpu-api.json b/etc/api/tpu/v2alpha1/tpu-api.json index 1bbc76f53c..fb2749befb 100644 --- a/etc/api/tpu/v2alpha1/tpu-api.json +++ b/etc/api/tpu/v2alpha1/tpu-api.json @@ -637,7 +637,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v2alpha1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "tpu.projects.locations.operations.list", @@ -698,7 +698,7 @@ "type": "string" }, "queuedResourceId": { - "description": "The unqualified resource name. Should follow the ^[A-Za-z0-9_.~+%-]+$ regex format.", + "description": "The unqualified resource name. Should follow the `^[A-Za-z0-9_.~+%-]+$` regex format.", "location": "query", "type": "string" }, @@ -728,6 +728,11 @@ "name" ], "parameters": { + "force": { + "description": "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", @@ -809,6 +814,74 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "reset": { + "description": "Resets a QueuedResource TPU instance", + "flatPath": "v2alpha1/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": "v2alpha1/{+name}:reset", + "request": { + "$ref": "ResetQueuedResourceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "reservations": { + "methods": { + "list": { + "description": "Retrieves the reservations for the given project in the given location.", + "flatPath": "v2alpha1/projects/{projectsId}/locations/{locationsId}/reservations", + "httpMethod": "GET", + "id": "tpu.projects.locations.reservations.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of items to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The next_page_token value returned from a previous List request, if any.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent for reservations.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha1/{+parent}/reservations", + "response": { + "$ref": "ListReservationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -892,13 +965,49 @@ } } }, - "revision": "20230105", + "revision": "20240222", "rootUrl": "https://tpu.googleapis.com/", "schemas": { + "AcceleratorConfig": { + "description": "A TPU accelerator configuration.", + "id": "AcceleratorConfig", + "properties": { + "topology": { + "description": "Required. Topology of TPU in chips.", + "type": "string" + }, + "type": { + "description": "Required. Type of TPU.", + "enum": [ + "TYPE_UNSPECIFIED", + "V2", + "V3", + "V4", + "V5P" + ], + "enumDescriptions": [ + "Unspecified version.", + "TPU v2.", + "TPU v3.", + "TPU v4.", + "TPU v5." + ], + "type": "string" + } + }, + "type": "object" + }, "AcceleratorType": { "description": "A accelerator type that a Node can be configured with.", "id": "AcceleratorType", "properties": { + "acceleratorConfigs": { + "description": "The accelerator config.", + "items": { + "$ref": "AcceleratorConfig" + }, + "type": "array" + }, "name": { "description": "The resource name.", "type": "string" @@ -965,12 +1074,38 @@ "properties": {}, "type": "object" }, + "BootDiskConfig": { + "description": "Boot disk configurations.", + "id": "BootDiskConfig", + "properties": { + "customerEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "Optional. Customer encryption key for boot disk." + }, + "enableConfidentialCompute": { + "description": "Optional. Whether the boot disk will be created with confidential compute mode.", + "type": "boolean" + } + }, + "type": "object" + }, "CreatingData": { "description": "Further data for the creating state.", "id": "CreatingData", "properties": {}, "type": "object" }, + "CustomerEncryptionKey": { + "description": "Customer's encryption key.", + "id": "CustomerEncryptionKey", + "properties": { + "kmsKeyName": { + "description": "The name of the encryption key that is stored in Google Cloud KMS. For example: \"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key The fully-qualifed key name may be returned for resource GET requests. For example: \"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key /cryptoKeyVersions/1 ", + "type": "string" + } + }, + "type": "object" + }, "DeletingData": { "description": "Further data for the deleting state.", "id": "DeletingData", @@ -1235,6 +1370,24 @@ }, "type": "object" }, + "ListReservationsResponse": { + "description": "Response for ListReservations.", + "id": "ListReservationsResponse", + "properties": { + "nextPageToken": { + "description": "The next page token or empty if none.", + "type": "string" + }, + "reservations": { + "description": "The listed reservations.", + "items": { + "$ref": "Reservation" + }, + "type": "array" + } + }, + "type": "object" + }, "ListRuntimeVersionsResponse": { "description": "Response for ListRuntimeVersions.", "id": "ListRuntimeVersionsResponse", @@ -1261,7 +1414,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1294,6 +1447,22 @@ }, "type": "object" }, + "MultiNodeParams": { + "description": "Parameters to specify for multi-node QueuedResource requests. This field must be populated in case of multi-node requests instead of node_id. It's an error to specify both node_id and multi_node_params.", + "id": "MultiNodeParams", + "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": "Prefix of node_ids in case of multi-node 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", @@ -1310,6 +1479,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" @@ -1341,6 +1515,10 @@ "description": "A TPU instance.", "id": "Node", "properties": { + "acceleratorConfig": { + "$ref": "AcceleratorConfig", + "description": "The AccleratorConfig for the TPU Node." + }, "acceleratorType": { "description": "The type of hardware accelerators associated with this node.", "type": "string" @@ -1362,6 +1540,14 @@ "readOnly": true, "type": "string" }, + "autocheckpointEnabled": { + "description": "Optional. Whether Autocheckpoint is enabled.", + "type": "boolean" + }, + "bootDiskConfig": { + "$ref": "BootDiskConfig", + "description": "Optional. Boot disk configuration." + }, "cidrBlock": { "description": "The CIDR block that the TPU node will use when selecting an IP address. This CIDR block must be a /29 block; the Compute Engine networks API forbids a smaller block, and using a larger block would be wasteful (a node can only consume one IP address). Errors will occur if the CIDR block has already been used for a currently existing TPU node, the CIDR block conflicts with any subnetworks in the user's provided network, or the provided network is peered with another network that is using that CIDR block.", "type": "string" @@ -1426,6 +1612,11 @@ "description": "Custom metadata to apply to the TPU Node. Can set startup-script and shutdown-script", "type": "object" }, + "multisliceNode": { + "description": "Output only. Whether the Node belongs to a Multislice group.", + "readOnly": true, + "type": "boolean" + }, "name": { "description": "Output only. Immutable. The name of the TPU.", "readOnly": true, @@ -1525,6 +1716,10 @@ "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": { + "multiNodeParams": { + "$ref": "MultiNodeParams", + "description": "Optional. Fields to specify in case of multi-node request." + }, "node": { "$ref": "Node", "description": "Required. The node." @@ -1569,7 +1764,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" } }, @@ -1626,9 +1821,15 @@ "$ref": "BestEffort", "description": "The BestEffort tier." }, + "createTime": { + "description": "Output only. The time when the QueuedResource was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "guaranteed": { "$ref": "Guaranteed", - "description": "The Guaranteed tier" + "description": "The Guaranteed tier." }, "name": { "description": "Output only. Immutable. The name of the QueuedResource.", @@ -1639,9 +1840,17 @@ "$ref": "QueueingPolicy", "description": "The queueing policy of the QueuedRequest." }, + "reservationName": { + "description": "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", + "description": "Output only. State of the QueuedResource request.", "readOnly": true }, "tpu": { @@ -1690,7 +1899,8 @@ "DELETING", "ACTIVE", "SUSPENDING", - "SUSPENDED" + "SUSPENDED", + "WAITING_FOR_RESOURCES" ], "enumDescriptions": [ "State of the QueuedResource request is not known/set.", @@ -1701,10 +1911,26 @@ "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 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)." ], "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": "Further data for the suspended state." @@ -1747,6 +1973,26 @@ }, "type": "object" }, + "Reservation": { + "description": "A reservation describes the amount of a resource 'allotted' for a defined period of time.", + "id": "Reservation", + "properties": { + "name": { + "description": "The reservation name with the format: projects/{projectID}/locations/{location}/reservations/{reservationID}", + "type": "string" + }, + "standard": { + "$ref": "Standard" + } + }, + "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", @@ -1773,6 +2019,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" @@ -1831,6 +2081,47 @@ }, "type": "object" }, + "Spot": { + "description": "Spot tier definition.", + "id": "Spot", + "properties": {}, + "type": "object" + }, + "Standard": { + "id": "Standard", + "properties": { + "capacityUnits": { + "enum": [ + "CAPACITY_UNITS_UNSPECIFIED", + "CORES", + "CHIPS" + ], + "enumDescriptions": [ + "The capacity units is not known/set.", + "The capacity unit is set to CORES.", + "The capacity unit is set to CHIPS." + ], + "type": "string" + }, + "interval": { + "$ref": "Interval", + "description": "The start and end time of the reservation." + }, + "resourceType": { + "description": "The resource type of the reservation.", + "type": "string" + }, + "size": { + "description": "The size of the reservation, in the units specified in the 'capacity_units' field.", + "format": "int32", + "type": "integer" + }, + "usage": { + "$ref": "Usage" + } + }, + "type": "object" + }, "StartNodeRequest": { "description": "Request for StartNode.", "id": "StartNodeRequest", @@ -1937,6 +2228,17 @@ } }, "type": "object" + }, + "Usage": { + "id": "Usage", + "properties": { + "total": { + "description": "The real-time value of usage within the reservation, with the unit specified in field capacity_units.", + "format": "int64", + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/trafficdirector/v2/trafficdirector-api.json b/etc/api/trafficdirector/v2/trafficdirector-api.json index f38432140e..fa50903397 100644 --- a/etc/api/trafficdirector/v2/trafficdirector-api.json +++ b/etc/api/trafficdirector/v2/trafficdirector-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20221216", + "revision": "20240214", "rootUrl": "https://trafficdirector.googleapis.com/", "schemas": { "Address": { @@ -431,6 +431,7 @@ "id": "GoogleRE2", "properties": { "maxProgramSize": { + "deprecated": true, "description": "This field controls the RE2 \"program size\" which is a rough estimate of how complex a compiled regex is to evaluate. A regex that has a program size greater than the configured value will fail to compile. In this case, the configured max program size can be increased or the regex can be simplified. If not specified, the default is 100. This field is deprecated; regexp validation should be performed on the management server instead of being done by each individual client.", "format": "uint32", "type": "integer" @@ -524,6 +525,7 @@ "id": "Node", "properties": { "buildVersion": { + "deprecated": true, "description": "This is motivated by informing a management server during canary which version of Envoy is being tested in a heterogeneous fleet. This will be set by Envoy in management server RPCs. This field is deprecated in favor of the user_agent_name and user_agent_version values.", "type": "string" }, @@ -859,6 +861,7 @@ "type": "string" }, "regex": { + "deprecated": true, "description": "The input string must match the regular expression specified here. The regex grammar is defined `here `_. Examples: * The regex ``\\d{3}`` matches the value *123* * The regex ``\\d{3}`` does not match the value *1234* * The regex ``\\d{3}`` does not match the value *123.456* .. attention:: This field has been deprecated in favor of `safe_regex` as it is not safe for use with untrusted input in all cases.", "type": "string" }, diff --git a/etc/api/transcoder/v1/transcoder-api.json b/etc/api/transcoder/v1/transcoder-api.json index 918d8f6d2e..d11578a1fe 100644 --- a/etc/api/transcoder/v1/transcoder-api.json +++ b/etc/api/transcoder/v1/transcoder-api.json @@ -385,7 +385,7 @@ } } }, - "revision": "20230105", + "revision": "20240221", "rootUrl": "https://transcoder.googleapis.com/", "schemas": { "AdBreak": { @@ -400,6 +400,12 @@ }, "type": "object" }, + "Aes128Encryption": { + "description": "Configuration for AES-128 encryption.", + "id": "Aes128Encryption", + "properties": {}, + "type": "object" + }, "Animation": { "description": "Animation types.", "id": "Animation", @@ -420,7 +426,7 @@ "type": "object" }, "AnimationEnd": { - "description": "End previous overlay animation from the video. Without AnimationEnd, the overlay object will keep the state of previous animation until the end of the video.", + "description": "End previous overlay animation from the video. Without `AnimationEnd`, the overlay object will keep the state of previous animation until the end of the video.", "id": "AnimationEnd", "properties": { "startTimeOffset": { @@ -503,11 +509,11 @@ "type": "object" }, "AudioMapping": { - "description": "The mapping for the `Job.edit_list` atoms with audio `EditAtom.inputs`.", + "description": "The mapping for the JobConfig.edit_list atoms with audio EditAtom.inputs.", "id": "AudioMapping", "properties": { "atomKey": { - "description": "Required. The `EditAtom.key` that references the atom with audio inputs in the `Job.edit_list`.", + "description": "Required. The EditAtom.key that references the atom with audio inputs in the JobConfig.edit_list.", "type": "string" }, "gainDb": { @@ -521,7 +527,7 @@ "type": "integer" }, "inputKey": { - "description": "Required. The `Input.key` that identifies the input file.", + "description": "Required. The Input.key that identifies the input file.", "type": "string" }, "inputTrack": { @@ -562,8 +568,16 @@ "description": "The codec for this audio stream. The default is `aac`. Supported audio codecs: - `aac` - `aac-he` - `aac-he-v2` - `mp3` - `ac3` - `eac3`", "type": "string" }, + "displayName": { + "description": "The name for this particular audio stream that will be added to the HLS/DASH manifest. Not supported in MP4 files.", + "type": "string" + }, + "languageCode": { + "description": "The BCP-47 language code, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier. Not supported in MP4 files.", + "type": "string" + }, "mapping": { - "description": "The mapping for the `Job.edit_list` atoms with audio `EditAtom.inputs`.", + "description": "The mapping for the JobConfig.edit_list atoms with audio EditAtom.inputs.", "items": { "$ref": "AudioMapping" }, @@ -596,6 +610,12 @@ }, "type": "object" }, + "Clearkey": { + "description": "Clearkey configuration.", + "id": "Clearkey", + "properties": {}, + "type": "object" + }, "Color": { "description": "Color preprocessing configuration. **Note:** This configuration is not supported.", "id": "Color", @@ -645,6 +665,27 @@ }, "type": "object" }, + "DashConfig": { + "description": "`DASH` manifest configuration.", + "id": "DashConfig", + "properties": { + "segmentReferenceScheme": { + "description": "The segment reference scheme for a `DASH` manifest. The default is `SEGMENT_LIST`.", + "enum": [ + "SEGMENT_REFERENCE_SCHEME_UNSPECIFIED", + "SEGMENT_LIST", + "SEGMENT_TEMPLATE_NUMBER" + ], + "enumDescriptions": [ + "The segment reference scheme is not specified.", + "Explicitly lists the URLs of media files for each segment. For example, if SegmentSettings.individual_segments is `true`, then the manifest contains fields similar to the following: ```xml ... ```", + "SegmentSettings.individual_segments must be set to `true` to use this segment reference scheme. Uses the DASH specification `` tag to determine the URLs of media files for each segment. For example: ```xml ... ```" + ], + "type": "string" + } + }, + "type": "object" + }, "Deblock": { "description": "Deblock preprocessing configuration. **Note:** This configuration is not supported.", "id": "Deblock", @@ -692,6 +733,29 @@ }, "type": "object" }, + "DrmSystems": { + "description": "Defines configuration for DRM systems in use.", + "id": "DrmSystems", + "properties": { + "clearkey": { + "$ref": "Clearkey", + "description": "Clearkey configuration." + }, + "fairplay": { + "$ref": "Fairplay", + "description": "Fairplay configuration." + }, + "playready": { + "$ref": "Playready", + "description": "Playready configuration." + }, + "widevine": { + "$ref": "Widevine", + "description": "Widevine configuration." + } + }, + "type": "object" + }, "EditAtom": { "description": "Edit atom.", "id": "EditAtom", @@ -702,7 +766,7 @@ "type": "string" }, "inputs": { - "description": "List of `Input.key`s identifying files that should be used in this atom. The listed `inputs` must have the same timeline.", + "description": "List of Input.key values identifying files that should be used in this atom. The listed `inputs` must have the same timeline.", "items": { "type": "string" }, @@ -749,6 +813,54 @@ "properties": {}, "type": "object" }, + "Encryption": { + "description": "Encryption settings.", + "id": "Encryption", + "properties": { + "aes128": { + "$ref": "Aes128Encryption", + "description": "Configuration for AES-128 encryption." + }, + "drmSystems": { + "$ref": "DrmSystems", + "description": "Required. DRM system(s) to use; at least one must be specified. If a DRM system is omitted, it is considered disabled." + }, + "id": { + "description": "Required. Identifier for this set of encryption options.", + "type": "string" + }, + "mpegCenc": { + "$ref": "MpegCommonEncryption", + "description": "Configuration for MPEG Common Encryption (MPEG-CENC)." + }, + "sampleAes": { + "$ref": "SampleAesEncryption", + "description": "Configuration for SAMPLE-AES encryption." + }, + "secretManagerKeySource": { + "$ref": "SecretManagerSource", + "description": "Keys are stored in Google Secret Manager." + } + }, + "type": "object" + }, + "Fairplay": { + "description": "Fairplay configuration.", + "id": "Fairplay", + "properties": {}, + "type": "object" + }, + "Fmp4Config": { + "description": "`fmp4` container configuration.", + "id": "Fmp4Config", + "properties": { + "codecTag": { + "description": "Optional. Specify the codec tag string that will be used in the media bitstream. When not specified, the codec appropriate value is used. Supported H265 codec tags: - `hvc1` (default) - `hev1`", + "type": "string" + } + }, + "type": "object" + }, "H264CodecSettings": { "description": "H264 codec settings.", "id": "H264CodecSettings", @@ -763,7 +875,7 @@ "type": "number" }, "bFrameCount": { - "description": "The number of consecutive B-frames. Must be greater than or equal to zero. Must be less than `VideoStream.gop_frame_count` if set. The default is 0.", + "description": "The number of consecutive B-frames. Must be greater than or equal to zero. Must be less than H264CodecSettings.gop_frame_count if set. The default is 0.", "format": "int32", "type": "integer" }, @@ -782,7 +894,7 @@ "type": "integer" }, "enableTwoPass": { - "description": "Use two-pass encoding strategy to achieve better video quality. `VideoStream.rate_control_mode` must be `vbr`. The default is `false`.", + "description": "Use two-pass encoding strategy to achieve better video quality. H264CodecSettings.rate_control_mode must be `vbr`. The default is `false`.", "type": "boolean" }, "entropyCoder": { @@ -790,10 +902,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", @@ -809,6 +935,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" @@ -822,20 +952,24 @@ "type": "string" }, "rateControlMode": { - "description": "Specify the `rate_control_mode`. The default is `vbr`. Supported rate control modes: - `vbr` - variable bitrate - `crf` - constant rate factor", + "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" }, "vbvFullnessBits": { - "description": "Initial fullness of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to 90% of `VideoStream.vbv_size_bits`.", + "description": "Initial fullness of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to 90% of H264CodecSettings.vbv_size_bits.", "format": "int32", "type": "integer" }, "vbvSizeBits": { - "description": "Size of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to `VideoStream.bitrate_bps`.", + "description": "Size of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to H264CodecSettings.bitrate_bps.", "format": "int32", "type": "integer" }, @@ -847,6 +981,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", @@ -861,7 +1007,7 @@ "type": "number" }, "bFrameCount": { - "description": "The number of consecutive B-frames. Must be greater than or equal to zero. Must be less than `VideoStream.gop_frame_count` if set. The default is 0.", + "description": "The number of consecutive B-frames. Must be greater than or equal to zero. Must be less than H265CodecSettings.gop_frame_count if set. The default is 0.", "format": "int32", "type": "integer" }, @@ -880,14 +1026,28 @@ "type": "integer" }, "enableTwoPass": { - "description": "Use two-pass encoding strategy to achieve better video quality. `VideoStream.rate_control_mode` must be `vbr`. The default is `false`.", + "description": "Use two-pass encoding strategy to achieve better video quality. H265CodecSettings.rate_control_mode must be `vbr`. The default is `false`.", "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", @@ -898,11 +1058,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" @@ -916,15 +1084,19 @@ "type": "string" }, "rateControlMode": { - "description": "Specify the `rate_control_mode`. The default is `vbr`. Supported rate control modes: - `vbr` - variable bitrate - `crf` - constant rate factor", + "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" }, "vbvFullnessBits": { - "description": "Initial fullness of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to 90% of `VideoStream.vbv_size_bits`.", + "description": "Initial fullness of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to 90% of H265CodecSettings.vbv_size_bits.", "format": "int32", "type": "integer" }, @@ -941,8 +1113,26 @@ }, "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 jpeg image.", + "description": "Overlaid image.", "id": "Image", "properties": { "alpha": { @@ -955,7 +1145,7 @@ "description": "Normalized image resolution, based on output video resolution. Valid values: `0.0`\u2013`1.0`. To respect the original image aspect ratio, set either `x` or `y` to `0.0`. To use the original image resolution, set both `x` and `y` to `0.0`." }, "uri": { - "description": "Required. URI of the JPEG image in Cloud Storage. For example, `gs://bucket/inputs/image.jpeg`. JPEG is the only supported image type.", + "description": "Required. URI of the image in Cloud Storage. For example, `gs://bucket/inputs/image.png`. Only PNG and JPEG images are supported.", "type": "string" } }, @@ -974,7 +1164,7 @@ "description": "Preprocessing configurations." }, "uri": { - "description": "URI of the media. Input files must be at least 5 seconds in duration and stored in Cloud Storage (for example, `gs://bucket/inputs/file.mp4`). If empty, the value is populated from `Job.input_uri`. See [Supported input and output formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats).", + "description": "URI of the media. Input files must be at least 5 seconds in duration and stored in Cloud Storage (for example, `gs://bucket/inputs/file.mp4`). If empty, the value is populated from Job.input_uri. See [Supported input and output formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats).", "type": "string" } }, @@ -984,6 +1174,11 @@ "description": "Transcoding job resource.", "id": "Job", "properties": { + "batchModePriority": { + "description": "The processing priority of a batch job. This field can only be set for batch mode jobs. The default value is 0. This value cannot be negative. Higher values correspond to higher priorities for the job.", + "format": "int32", + "type": "integer" + }, "config": { "$ref": "JobConfig", "description": "The configuration for this job." @@ -1002,7 +1197,7 @@ }, "error": { "$ref": "Status", - "description": "Output only. An error object that describes the reason for the failure. This property is always present when `state` is `FAILED`.", + "description": "Output only. An error object that describes the reason for the failure. This property is always present when ProcessingState is `FAILED`.", "readOnly": true }, "inputUri": { @@ -1016,10 +1211,38 @@ "description": "The labels associated with this job. You can use these to organize and group your jobs.", "type": "object" }, + "mode": { + "description": "The processing mode of the job. The default is `PROCESSING_MODE_INTERACTIVE`.", + "enum": [ + "PROCESSING_MODE_UNSPECIFIED", + "PROCESSING_MODE_INTERACTIVE", + "PROCESSING_MODE_BATCH" + ], + "enumDescriptions": [ + "The job processing mode is not specified.", + "The job processing mode is interactive mode. Interactive job will either be ran or rejected if quota does not allow for it.", + "The job processing mode is batch mode. Batch mode allows queuing of jobs." + ], + "type": "string" + }, "name": { "description": "The resource name of the job. Format: `projects/{project_number}/locations/{location}/jobs/{job}`", "type": "string" }, + "optimization": { + "description": "Optional. The optimization strategy of the job. The default is `AUTODETECT`.", + "enum": [ + "OPTIMIZATION_STRATEGY_UNSPECIFIED", + "AUTODETECT", + "DISABLED" + ], + "enumDescriptions": [ + "The optimization strategy is not specified.", + "Prioritize job processing speed.", + "Disable all optimizations." + ], + "type": "string" + }, "outputUri": { "description": "Input only. Specify the `output_uri` to populate an empty `Job.config.output.uri` or `JobTemplate.config.output.uri` when using template. URI for the output file(s). For example, `gs://my-bucket/outputs/`. See [Supported input and output formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats).", "type": "string" @@ -1044,13 +1267,13 @@ "The job is enqueued and will be picked up for processing soon.", "The job is being processed.", "The job has been completed successfully.", - "The job has failed. For additional information, see `failure_reason` and `failure_details`" + "The job has failed. For additional information, see [Troubleshooting](https://cloud.google.com/transcoder/docs/troubleshooting)." ], "readOnly": true, "type": "string" }, "templateId": { - "description": "Input only. Specify the `template_id` to use for populating `Job.config`. The default is `preset/web-hd`. Preset Transcoder templates: - `preset/{preset_id}` - User defined JobTemplate: `{job_template_id}`", + "description": "Input only. Specify the `template_id` to use for populating `Job.config`. The default is `preset/web-hd`, which is the only supported preset. User defined JobTemplate: `{job_template_id}`", "type": "string" }, "ttlAfterCompletionDays": { @@ -1073,7 +1296,7 @@ "type": "array" }, "editList": { - "description": "List of `Edit atom`s. Defines the ultimate timeline of the resulting file or manifest.", + "description": "List of edit atoms. Defines the ultimate timeline of the resulting file or manifest.", "items": { "$ref": "EditAtom" }, @@ -1086,6 +1309,13 @@ }, "type": "array" }, + "encryptions": { + "description": "List of encryption configurations for the content. Each configuration has an ID. Specify this ID in the MuxStream.encryption_id field to indicate the configuration to use for that `MuxStream` output.", + "items": { + "$ref": "Encryption" + }, + "type": "array" + }, "inputs": { "description": "List of input assets stored in Cloud Storage.", "items": { @@ -1208,19 +1438,23 @@ "description": "Manifest configuration.", "id": "Manifest", "properties": { + "dash": { + "$ref": "DashConfig", + "description": "`DASH` manifest configuration." + }, "fileName": { - "description": "The name of the generated file. The default is `manifest` with the extension suffix corresponding to the `Manifest.type`.", + "description": "The name of the generated file. The default is `manifest` with the extension suffix corresponding to the Manifest.type.", "type": "string" }, "muxStreams": { - "description": "Required. List of user given `MuxStream.key`s that should appear in this manifest. When `Manifest.type` is `HLS`, a media manifest with name `MuxStream.key` and `.m3u8` extension is generated for each element of the `Manifest.mux_streams`.", + "description": "Required. List of user supplied MuxStream.key values that should appear in this manifest. When Manifest.type is `HLS`, a media manifest with name MuxStream.key and `.m3u8` extension is generated for each element in this list.", "items": { "type": "string" }, "type": "array" }, "type": { - "description": "Required. Type of the manifest, can be `HLS` or `DASH`.", + "description": "Required. Type of the manifest.", "enum": [ "MANIFEST_TYPE_UNSPECIFIED", "HLS", @@ -1228,14 +1462,25 @@ ], "enumDescriptions": [ "The manifest type is not specified.", - "Create `HLS` manifest. The corresponding file extension is `.m3u8`.", - "Create `DASH` manifest. The corresponding file extension is `.mpd`." + "Create an HLS manifest. The corresponding file extension is `.m3u8`.", + "Create an MPEG-DASH manifest. The corresponding file extension is `.mpd`." ], "type": "string" } }, "type": "object" }, + "MpegCommonEncryption": { + "description": "Configuration for MPEG Common Encryption (MPEG-CENC).", + "id": "MpegCommonEncryption", + "properties": { + "scheme": { + "description": "Required. Specify the encryption scheme. Supported encryption schemes: - `cenc` - `cbcs`", + "type": "string" + } + }, + "type": "object" + }, "MuxStream": { "description": "Multiplexing settings for output stream.", "id": "MuxStream", @@ -1245,18 +1490,26 @@ "type": "string" }, "elementaryStreams": { - "description": "List of `ElementaryStream.key`s multiplexed in this stream.", + "description": "List of ElementaryStream.key values multiplexed in this stream.", "items": { "type": "string" }, "type": "array" }, - "fileName": { - "description": "The name of the generated file. The default is `MuxStream.key` with the extension suffix corresponding to the `MuxStream.container`. Individual segments also have an incremental 10-digit zero-padded suffix starting from 0 before the extension, such as `mux_stream0000000123.ts`.", + "encryptionId": { + "description": "Identifier of the encryption configuration to use. If omitted, output will be unencrypted.", "type": "string" }, + "fileName": { + "description": "The name of the generated file. The default is MuxStream.key with the extension suffix corresponding to the MuxStream.container. Individual segments also have an incremental 10-digit zero-padded suffix starting from 0 before the extension, such as `mux_stream0000000123.ts`.", + "type": "string" + }, + "fmp4": { + "$ref": "Fmp4Config", + "description": "Optional. `fmp4` container configuration." + }, "key": { - "description": "A unique key for this multiplexed stream. HLS media manifests will be named `MuxStream.key` with the `.m3u8` extension suffix.", + "description": "A unique key for this multiplexed stream.", "type": "string" }, "segmentSettings": { @@ -1288,7 +1541,7 @@ "id": "Output", "properties": { "uri": { - "description": "URI for the output file(s). For example, `gs://my-bucket/outputs/`. If empty, the value is populated from `Job.output_uri`. See [Supported input and output formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats).", + "description": "URI for the output file(s). For example, `gs://my-bucket/outputs/`. If empty, the value is populated from Job.output_uri. See [Supported input and output formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats).", "type": "string" } }, @@ -1299,7 +1552,7 @@ "id": "Overlay", "properties": { "animations": { - "description": "List of Animations. The list should be chronological, without any time overlap.", + "description": "List of animations. The list should be chronological, without any time overlap.", "items": { "$ref": "Animation" }, @@ -1339,6 +1592,12 @@ }, "type": "object" }, + "Playready": { + "description": "Playready configuration.", + "id": "Playready", + "properties": {}, + "type": "object" + }, "PreprocessingConfig": { "description": "Preprocessing configurations.", "id": "PreprocessingConfig", @@ -1385,6 +1644,23 @@ }, "type": "object" }, + "SampleAesEncryption": { + "description": "Configuration for SAMPLE-AES encryption.", + "id": "SampleAesEncryption", + "properties": {}, + "type": "object" + }, + "SecretManagerSource": { + "description": "Configuration for secrets stored in Google Secret Manager.", + "id": "SecretManagerSource", + "properties": { + "secretVersion": { + "description": "Required. The name of the Secret Version containing the encryption key in the following format: `projects/{project}/secrets/{secret_id}/versions/{version_number}` Note that only numbered versions are supported. Aliases like \"latest\" are not supported.", + "type": "string" + } + }, + "type": "object" + }, "SegmentSettings": { "description": "Segment settings for `ts`, `fmp4` and `vtt`.", "id": "SegmentSettings", @@ -1489,15 +1765,15 @@ "type": "object" }, "TextMapping": { - "description": "The mapping for the `Job.edit_list` atoms with text `EditAtom.inputs`.", + "description": "The mapping for the JobConfig.edit_list atoms with text EditAtom.inputs.", "id": "TextMapping", "properties": { "atomKey": { - "description": "Required. The `EditAtom.key` that references atom with text inputs in the `Job.edit_list`.", + "description": "Required. The EditAtom.key that references atom with text inputs in the JobConfig.edit_list.", "type": "string" }, "inputKey": { - "description": "Required. The `Input.key` that identifies the input file.", + "description": "Required. The Input.key that identifies the input file.", "type": "string" }, "inputTrack": { @@ -1516,8 +1792,16 @@ "description": "The codec for this text stream. The default is `webvtt`. Supported text codecs: - `srt` - `ttml` - `cea608` - `cea708` - `webvtt`", "type": "string" }, + "displayName": { + "description": "The name for this particular text stream that will be added to the HLS/DASH manifest. Not supported in MP4 files.", + "type": "string" + }, + "languageCode": { + "description": "The BCP-47 language code, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier. Not supported in MP4 files.", + "type": "string" + }, "mapping": { - "description": "The mapping for the `Job.edit_list` atoms with text `EditAtom.inputs`.", + "description": "The mapping for the JobConfig.edit_list atoms with text EditAtom.inputs.", "items": { "$ref": "TextMapping" }, @@ -1560,10 +1844,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", @@ -1579,6 +1877,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" @@ -1588,9 +1890,13 @@ "type": "string" }, "rateControlMode": { - "description": "Specify the `rate_control_mode`. The default is `vbr`. Supported rate control modes: - `vbr` - variable bitrate", + "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", @@ -1599,6 +1905,24 @@ }, "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", + "properties": {}, + "type": "object" + }, "YadifConfig": { "description": "Yet Another Deinterlacing Filter Configuration.", "id": "YadifConfig", diff --git a/etc/api/translate/v3/translate-api.json b/etc/api/translate/v3/translate-api.json index 744c135398..0a78a72142 100644 --- a/etc/api/translate/v3/translate-api.json +++ b/etc/api/translate/v3/translate-api.json @@ -175,6 +175,35 @@ "https://www.googleapis.com/auth/cloud-translation" ] }, + "romanizeText": { + "description": "Romanize input text written in non-Latin scripts to Latin text.", + "flatPath": "v3/projects/{projectsId}:romanizeText", + "httpMethod": "POST", + "id": "translate.projects.romanizeText", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Project or location to make a call. Must refer to a caller's project. Format: `projects/{project-number-or-id}/locations/{location-id}` or `projects/{project-number-or-id}`. For global calls, use `projects/{project-number-or-id}/locations/global` or `projects/{project-number-or-id}`.", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}:romanizeText", + "request": { + "$ref": "RomanizeTextRequest" + }, + "response": { + "$ref": "RomanizeTextResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, "translateText": { "description": "Translates input text and returns translated text.", "flatPath": "v3/projects/{projectsId}:translateText", @@ -208,6 +237,35 @@ "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", @@ -397,6 +455,35 @@ "https://www.googleapis.com/auth/cloud-translation" ] }, + "romanizeText": { + "description": "Romanize input text written in non-Latin scripts to Latin text.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}:romanizeText", + "httpMethod": "POST", + "id": "translate.projects.locations.romanizeText", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Project or location to make a call. Must refer to a caller's project. Format: `projects/{project-number-or-id}/locations/{location-id}` or `projects/{project-number-or-id}`. For global calls, use `projects/{project-number-or-id}/locations/global` or `projects/{project-number-or-id}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}:romanizeText", + "request": { + "$ref": "RomanizeTextRequest" + }, + "response": { + "$ref": "RomanizeTextResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, "translateDocument": { "description": "Translates documents in synchronous mode.", "flatPath": "v3/projects/{projectsId}/locations/{locationsId}:translateDocument", @@ -457,6 +544,339 @@ } }, "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": { @@ -1209,7 +1629,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "translate.projects.locations.operations.list", @@ -1286,9 +1706,162 @@ } } }, - "revision": "20230106", + "revision": "20240131", "rootUrl": "https://translation.googleapis.com/", "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", @@ -1306,7 +1879,7 @@ "properties": { "gcsDestination": { "$ref": "GcsDestination", - "description": "Google Cloud Storage destination for output content. For every single input document (for example, gs://a/b/c.[extension]), we generate at most 2 * n output files. (n is the # of target_language_codes in the BatchTranslateDocumentRequest). While the input documents are being processed, we write/update an index file `index.csv` under `gcs_destination.output_uri_prefix` (for example, gs://translation_output/index.csv) The index file is generated/updated as new files are being translated. The format is: input_document,target_language_code,translation_output,error_output, glossary_translation_output,glossary_error_output `input_document` is one file we matched using gcs_source.input_uri. `target_language_code` is provided in the request. `translation_output` contains the translations. (details provided below) `error_output` contains the error message during processing of the file. Both translations_file and errors_file could be empty strings if we have no content to output. `glossary_translation_output` and `glossary_error_output` are the translated output/error when we apply glossaries. They could also be empty if we have no content to output. Once a row is present in index.csv, the input/output matching never changes. Callers should also expect all the content in input_file are processed and ready to be consumed (that is, no partial output file is written). Since index.csv will be keeping updated during the process, please make sure there is no custom retention policy applied on the output bucket that may avoid file updating. (https://cloud.google.com/storage/docs/bucket-lock#retention-policy) The naming format of translation output files follows (for target language code [trg]): `translation_output`: gs://translation_output/a_b_c_[trg]_translation.[extension] `glossary_translation_output`: gs://translation_test/a_b_c_[trg]_glossary_translation.[extension] The output document will maintain the same file format as the input document. The naming format of error output files follows (for target language code [trg]): `error_output`: gs://translation_test/a_b_c_[trg]_errors.txt `glossary_error_output`: gs://translation_test/a_b_c_[trg]_glossary_translation.txt The error output is a txt file containing error details." + "description": "Google Cloud Storage destination for output content. For every single input document (for example, gs://a/b/c.[extension]), we generate at most 2 * n output files. (n is the # of target_language_codes in the BatchTranslateDocumentRequest). While the input documents are being processed, we write/update an index file `index.csv` under `gcs_destination.output_uri_prefix` (for example, gs://translation_output/index.csv) The index file is generated/updated as new files are being translated. The format is: input_document,target_language_code,translation_output,error_output, glossary_translation_output,glossary_error_output `input_document` is one file we matched using gcs_source.input_uri. `target_language_code` is provided in the request. `translation_output` contains the translations. (details provided below) `error_output` contains the error message during processing of the file. Both translations_file and errors_file could be empty strings if we have no content to output. `glossary_translation_output` and `glossary_error_output` are the translated output/error when we apply glossaries. They could also be empty if we have no content to output. Once a row is present in index.csv, the input/output matching never changes. Callers should also expect all the content in input_file are processed and ready to be consumed (that is, no partial output file is written). Since index.csv will be keeping updated during the process, please make sure there is no custom retention policy applied on the output bucket that may avoid file updating. (https://cloud.google.com/storage/docs/bucket-lock#retention-policy) The naming format of translation output files follows (for target language code [trg]): `translation_output`: `gs://translation_output/a_b_c_[trg]_translation.[extension]` `glossary_translation_output`: `gs://translation_test/a_b_c_[trg]_glossary_translation.[extension]`. The output document will maintain the same file format as the input document. The naming format of error output files follows (for target language code [trg]): `error_output`: `gs://translation_test/a_b_c_[trg]_errors.txt` `glossary_error_output`: `gs://translation_test/a_b_c_[trg]_glossary_translation.txt`. The error output is a txt file containing error details." } }, "type": "object" @@ -1319,11 +1892,19 @@ "description": "Optional. This flag is to support user customized attribution. If not provided, the default is `Machine Translated by Google`. Customized attribution should follow rules in https://cloud.google.com/translate/attribution#attribution_and_logos", "type": "string" }, + "enableRotationCorrection": { + "description": "Optional. If true, enable auto rotation correction in DVS.", + "type": "boolean" + }, + "enableShadowRemovalNativePdf": { + "description": "Optional. If true, use the text removal server to remove the shadow text on background image for native pdf translation. Shadow removal feature can only be enabled when is_translate_native_pdf_only: false && pdf_native_only: false", + "type": "boolean" + }, "formatConversions": { "additionalProperties": { "type": "string" }, - "description": "Optional.", + "description": "Optional. The file format conversion map that is applied to all input files. The map key is the original mime_type. The map value is the target mime_type of translated documents. Supported file format conversion includes: - `application/pdf` to `application/vnd.openxmlformats-officedocument.wordprocessingml.document` If nothing specified, output files will be in the same format as the original file.", "type": "object" }, "glossaries": { @@ -1352,11 +1933,11 @@ "description": "Required. Output configuration. If 2 input configs match to the same file (that is, same input path), we don't generate output for duplicate inputs." }, "sourceLanguageCode": { - "description": "Required. The BCP-47 language code of the input document if known, for example, \"en-US\" or \"sr-Latn\". Supported language codes are listed in [Language Support](https://cloud.google.com/translate/docs/languages).", + "description": "Required. The ISO-639 language code of the input document if known, for example, \"en-US\" or \"sr-Latn\". Supported language codes are listed in [Language Support](https://cloud.google.com/translate/docs/languages).", "type": "string" }, "targetLanguageCodes": { - "description": "Required. The BCP-47 language code to use for translation of the input document. Specify up to 10 language codes here.", + "description": "Required. The ISO-639 language code to use for translation of the input document. Specify up to 10 language codes here.", "items": { "type": "string" }, @@ -1555,7 +2136,7 @@ "type": "number" }, "languageCode": { - "description": "The BCP-47 language code of the source content in the request, detected automatically.", + "description": "The ISO-639 language code of the source content in the request, detected automatically.", "type": "string" } }, @@ -1587,7 +2168,7 @@ "properties": { "gcsDestination": { "$ref": "GcsDestination", - "description": "Optional. Google Cloud Storage destination for the translation output, e.g., `gs://my_bucket/my_directory/`. The destination directory provided does not have to be empty, but the bucket must exist. If a file with the same name as the output file already exists in the destination an error will be returned. For a DocumentInputConfig.contents provided document, the output file will have the name \"output_[trg]_translations.[ext]\", where - [trg] corresponds to the translated file's language code, - [ext] corresponds to the translated file's extension according to its mime type. For a DocumentInputConfig.gcs_uri provided document, the output file will have a name according to its URI. For example: an input file with URI: \"gs://a/b/c.[extension]\" stored in a gcs_destination bucket with name \"my_bucket\" will have an output URI: \"gs://my_bucket/a_b_c_[trg]_translations.[ext]\", where - [trg] corresponds to the translated file's language code, - [ext] corresponds to the translated file's extension according to its mime type. If the document was directly provided through the request, then the output document will have the format: \"gs://my_bucket/translated_document_[trg]_translations.[ext], where - [trg] corresponds to the translated file's language code, - [ext] corresponds to the translated file's extension according to its mime type. If a glossary was provided, then the output URI for the glossary translation will be equal to the default output URI but have `glossary_translations` instead of `translations`. For the previous example, its glossary URI would be: \"gs://my_bucket/a_b_c_[trg]_glossary_translations.[ext]\". Thus the max number of output files will be 2 (Translated document, Glossary translated document). Callers should expect no partial outputs. If there is any error during document translation, no output will be stored in the Cloud Storage bucket." + "description": "Optional. Google Cloud Storage destination for the translation output, e.g., `gs://my_bucket/my_directory/`. The destination directory provided does not have to be empty, but the bucket must exist. If a file with the same name as the output file already exists in the destination an error will be returned. For a DocumentInputConfig.contents provided document, the output file will have the name \"output_[trg]_translations.[ext]\", where - [trg] corresponds to the translated file's language code, - [ext] corresponds to the translated file's extension according to its mime type. For a DocumentInputConfig.gcs_uri provided document, the output file will have a name according to its URI. For example: an input file with URI: `gs://a/b/c.[extension]` stored in a gcs_destination bucket with name \"my_bucket\" will have an output URI: `gs://my_bucket/a_b_c_[trg]_translations.[ext]`, where - [trg] corresponds to the translated file's language code, - [ext] corresponds to the translated file's extension according to its mime type. If the document was directly provided through the request, then the output document will have the format: `gs://my_bucket/translated_document_[trg]_translations.[ext]`, where - [trg] corresponds to the translated file's language code, - [ext] corresponds to the translated file's extension according to its mime type. If a glossary was provided, then the output URI for the glossary translation will be equal to the default output URI but have `glossary_translations` instead of `translations`. For the previous example, its glossary URI would be: `gs://my_bucket/a_b_c_[trg]_glossary_translations.[ext]`. Thus the max number of output files will be 2 (Translated document, Glossary translated document). Callers should expect no partial outputs. If there is any error during document translation, no output will be stored in the Cloud Storage bucket." }, "mimeType": { "description": "Optional. Specifies the translated document's mime_type. If not specified, the translated file's mime type will be the same as the input file's mime type. Currently only support the output mime type to be the same as input mime type. - application/pdf - application/vnd.openxmlformats-officedocument.wordprocessingml.document - application/vnd.openxmlformats-officedocument.presentationml.presentation - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", @@ -1661,6 +2242,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", @@ -1828,6 +2429,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", @@ -1874,11 +2502,11 @@ "id": "LanguageCodePair", "properties": { "sourceLanguageCode": { - "description": "Required. The BCP-47 language code of the input text, for example, \"en-US\". Expected to be an exact match for GlossaryTerm.language_code.", + "description": "Required. The ISO-639 language code of the input text, for example, \"en-US\". Expected to be an exact match for GlossaryTerm.language_code.", "type": "string" }, "targetLanguageCode": { - "description": "Required. The BCP-47 language code for translation output, for example, \"zh-CN\". Expected to be an exact match for GlossaryTerm.language_code.", + "description": "Required. The ISO-639 language code for translation output, for example, \"zh-CN\". Expected to be an exact match for GlossaryTerm.language_code.", "type": "string" } }, @@ -1889,7 +2517,7 @@ "id": "LanguageCodesSet", "properties": { "languageCodes": { - "description": "The BCP-47 language code(s) for terms defined in the glossary. All entries are unique. The list contains at least two entries. Expected to be an exact match for GlossaryTerm.language_code.", + "description": "The ISO-639 language code(s) for terms defined in the glossary. All entries are unique. The list contains at least two entries. Expected to be an exact match for GlossaryTerm.language_code.", "items": { "type": "string" }, @@ -1898,6 +2526,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", @@ -2025,7 +2710,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -2072,12 +2757,6 @@ "description": "The dataset from which the model is trained, in form of `projects/{project-number-or-id}/locations/{location_id}/datasets/{dataset_id}`", "type": "string" }, - "deployTime": { - "description": "Output only. Timestamp when the model training finished and ready to be used for translation.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, "displayName": { "description": "The name of the model to show in the interface. The name can be up to 32 characters long and can consist only of ASCII Latin letters A-Z and a-z, underscores (_), and ASCII digits 0-9.", "type": "string" @@ -2152,7 +2831,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" } }, @@ -2164,7 +2843,54 @@ "properties": { "gcsDestination": { "$ref": "GcsDestination", - "description": "Google Cloud Storage destination for output content. For every single input file (for example, gs://a/b/c.[extension]), we generate at most 2 * n output files. (n is the # of target_language_codes in the BatchTranslateTextRequest). Output files (tsv) generated are compliant with RFC 4180 except that record delimiters are '\\n' instead of '\\r\\n'. We don't provide any way to change record delimiters. While the input files are being processed, we write/update an index file 'index.csv' under 'output_uri_prefix' (for example, gs://translation-test/index.csv) The index file is generated/updated as new files are being translated. The format is: input_file,target_language_code,translations_file,errors_file, glossary_translations_file,glossary_errors_file input_file is one file we matched using gcs_source.input_uri. target_language_code is provided in the request. translations_file contains the translations. (details provided below) errors_file contains the errors during processing of the file. (details below). Both translations_file and errors_file could be empty strings if we have no content to output. glossary_translations_file and glossary_errors_file are always empty strings if the input_file is tsv. They could also be empty if we have no content to output. Once a row is present in index.csv, the input/output matching never changes. Callers should also expect all the content in input_file are processed and ready to be consumed (that is, no partial output file is written). Since index.csv will be keeping updated during the process, please make sure there is no custom retention policy applied on the output bucket that may avoid file updating. (https://cloud.google.com/storage/docs/bucket-lock#retention-policy) The format of translations_file (for target language code 'trg') is: `gs://translation_test/a_b_c_'trg'_translations.[extension]` If the input file extension is tsv, the output has the following columns: Column 1: ID of the request provided in the input, if it's not provided in the input, then the input row number is used (0-based). Column 2: source sentence. Column 3: translation without applying a glossary. Empty string if there is an error. Column 4 (only present if a glossary is provided in the request): translation after applying the glossary. Empty string if there is an error applying the glossary. Could be same string as column 3 if there is no glossary applied. If input file extension is a txt or html, the translation is directly written to the output file. If glossary is requested, a separate glossary_translations_file has format of gs://translation_test/a_b_c_'trg'_glossary_translations.[extension] The format of errors file (for target language code 'trg') is: gs://translation_test/a_b_c_'trg'_errors.[extension] If the input file extension is tsv, errors_file contains the following: Column 1: ID of the request provided in the input, if it's not provided in the input, then the input row number is used (0-based). Column 2: source sentence. Column 3: Error detail for the translation. Could be empty. Column 4 (only present if a glossary is provided in the request): Error when applying the glossary. If the input file extension is txt or html, glossary_error_file will be generated that contains error details. glossary_error_file has format of gs://translation_test/a_b_c_'trg'_glossary_errors.[extension]" + "description": "Google Cloud Storage destination for output content. For every single input file (for example, gs://a/b/c.[extension]), we generate at most 2 * n output files. (n is the # of target_language_codes in the BatchTranslateTextRequest). Output files (tsv) generated are compliant with RFC 4180 except that record delimiters are '\\n' instead of '\\r\\n'. We don't provide any way to change record delimiters. While the input files are being processed, we write/update an index file 'index.csv' under 'output_uri_prefix' (for example, gs://translation-test/index.csv) The index file is generated/updated as new files are being translated. The format is: input_file,target_language_code,translations_file,errors_file, glossary_translations_file,glossary_errors_file input_file is one file we matched using gcs_source.input_uri. target_language_code is provided in the request. translations_file contains the translations. (details provided below) errors_file contains the errors during processing of the file. (details below). Both translations_file and errors_file could be empty strings if we have no content to output. glossary_translations_file and glossary_errors_file are always empty strings if the input_file is tsv. They could also be empty if we have no content to output. Once a row is present in index.csv, the input/output matching never changes. Callers should also expect all the content in input_file are processed and ready to be consumed (that is, no partial output file is written). Since index.csv will be keeping updated during the process, please make sure there is no custom retention policy applied on the output bucket that may avoid file updating. (https://cloud.google.com/storage/docs/bucket-lock#retention-policy) The format of translations_file (for target language code 'trg') is: `gs://translation_test/a_b_c_'trg'_translations.[extension]` If the input file extension is tsv, the output has the following columns: Column 1: ID of the request provided in the input, if it's not provided in the input, then the input row number is used (0-based). Column 2: source sentence. Column 3: translation without applying a glossary. Empty string if there is an error. Column 4 (only present if a glossary is provided in the request): translation after applying the glossary. Empty string if there is an error applying the glossary. Could be same string as column 3 if there is no glossary applied. If input file extension is a txt or html, the translation is directly written to the output file. If glossary is requested, a separate glossary_translations_file has format of `gs://translation_test/a_b_c_'trg'_glossary_translations.[extension]` The format of errors file (for target language code 'trg') is: `gs://translation_test/a_b_c_'trg'_errors.[extension]` If the input file extension is tsv, errors_file contains the following: Column 1: ID of the request provided in the input, if it's not provided in the input, then the input row number is used (0-based). Column 2: source sentence. Column 3: Error detail for the translation. Could be empty. Column 4 (only present if a glossary is provided in the request): Error when applying the glossary. If the input file extension is txt or html, glossary_error_file will be generated that contains error details. glossary_error_file has format of `gs://translation_test/a_b_c_'trg'_glossary_errors.[extension]`" + } + }, + "type": "object" + }, + "Romanization": { + "description": "A single romanization response.", + "id": "Romanization", + "properties": { + "detectedLanguageCode": { + "description": "The ISO-639 language code of source text in the initial request, detected automatically, if no source language was passed within the initial request. If the source language was passed, auto-detection of the language does not occur and this field is empty.", + "type": "string" + }, + "romanizedText": { + "description": "Romanized text. If an error occurs during romanization, this field might be excluded from the response.", + "type": "string" + } + }, + "type": "object" + }, + "RomanizeTextRequest": { + "description": "The request message for synchronous romanization.", + "id": "RomanizeTextRequest", + "properties": { + "contents": { + "description": "Required. The content of the input in string format.", + "items": { + "type": "string" + }, + "type": "array" + }, + "sourceLanguageCode": { + "description": "Optional. The ISO-639 language code of the input text if known, for example, \"hi\" or \"zh\". If the source language isn't specified, the API attempts to identify the source language automatically and returns the source language for each content in the response.", + "type": "string" + } + }, + "type": "object" + }, + "RomanizeTextResponse": { + "description": "The response message for synchronous romanization.", + "id": "RomanizeTextResponse", + "properties": { + "romanizations": { + "description": "Text romanization responses. This field has the same length as `contents`.", + "items": { + "$ref": "Romanization" + }, + "type": "array" } }, "type": "object" @@ -2205,7 +2931,7 @@ "type": "string" }, "languageCode": { - "description": "Supported language code, generally consisting of its ISO 639-1 identifier, for example, 'en', 'ja'. In certain cases, BCP-47 codes including language and region identifiers are returned (for example, 'zh-TW' and 'zh-CN').", + "description": "Supported language code, generally consisting of its ISO 639-1 identifier, for example, 'en', 'ja'. In certain cases, ISO-639 codes including language and region identifiers are returned (for example, 'zh-TW' and 'zh-CN').", "type": "string" }, "supportSource": { @@ -2249,8 +2975,12 @@ "$ref": "DocumentOutputConfig", "description": "Optional. Output configurations. Defines if the output file should be stored within Cloud Storage as well as the desired output format. If not provided the translated file will only be returned through a byte-stream and its output mime type will be the same as the input file's mime type." }, + "enableRotationCorrection": { + "description": "Optional. If true, enable auto rotation correction in DVS.", + "type": "boolean" + }, "enableShadowRemovalNativePdf": { - "description": "Optional. If true, use the text removal server to remove the shadow text on background image for native pdf translation.", + "description": "Optional. If true, use the text removal server to remove the shadow text on background image for native pdf translation. Shadow removal feature can only be enabled when is_translate_native_pdf_only: false && pdf_native_only: false", "type": "boolean" }, "glossaryConfig": { @@ -2273,11 +3003,11 @@ "type": "string" }, "sourceLanguageCode": { - "description": "Optional. The BCP-47 language code of the input document if known, for example, \"en-US\" or \"sr-Latn\". Supported language codes are listed in Language Support. If the source language isn't specified, the API attempts to identify the source language automatically and returns the source language within the response. Source language must be specified if the request contains a glossary or a custom model.", + "description": "Optional. The ISO-639 language code of the input document if known, for example, \"en-US\" or \"sr-Latn\". Supported language codes are listed in Language Support. If the source language isn't specified, the API attempts to identify the source language automatically and returns the source language within the response. Source language must be specified if the request contains a glossary or a custom model.", "type": "string" }, "targetLanguageCode": { - "description": "Required. The BCP-47 language code to use for translation of the input document, set to one of the language codes listed in Language Support.", + "description": "Required. The ISO-639 language code to use for translation of the input document, set to one of the language codes listed in Language Support.", "type": "string" } }, @@ -2352,12 +3082,16 @@ "type": "string" }, "sourceLanguageCode": { - "description": "Optional. The BCP-47 language code of the input text if known, for example, \"en-US\" or \"sr-Latn\". Supported language codes are listed in Language Support. If the source language isn't specified, the API attempts to identify the source language automatically and returns the source language within the response.", + "description": "Optional. The ISO-639 language code of the input text if known, for example, \"en-US\" or \"sr-Latn\". Supported language codes are listed in Language Support. If the source language isn't specified, the API attempts to identify the source language automatically and returns the source language within the response.", "type": "string" }, "targetLanguageCode": { - "description": "Required. The BCP-47 language code to use for translation of the input text, set to one of the language codes listed in Language Support.", + "description": "Required. The ISO-639 language code to use for translation of the input text, set to one of the language codes listed in Language Support.", "type": "string" + }, + "transliterationConfig": { + "$ref": "TransliterationConfig", + "description": "Optional. Transliteration to be applied." } }, "type": "object" @@ -2387,7 +3121,7 @@ "id": "Translation", "properties": { "detectedLanguageCode": { - "description": "The BCP-47 language code of source text in the initial request, detected automatically, if no source language was passed within the initial request. If the source language was passed, auto-detection of the language does not occur and this field is empty.", + "description": "The ISO-639 language code of source text in the initial request, detected automatically, if no source language was passed within the initial request. If the source language was passed, auto-detection of the language does not occur and this field is empty.", "type": "string" }, "glossaryConfig": { @@ -2405,6 +3139,17 @@ }, "type": "object" }, + "TransliterationConfig": { + "description": "Configures transliteration feature on top of translation.", + "id": "TransliterationConfig", + "properties": { + "enableTransliteration": { + "description": "If true, source text in romanized form can be translated to the target language.", + "type": "boolean" + } + }, + "type": "object" + }, "WaitOperationRequest": { "description": "The request message for Operations.WaitOperation.", "id": "WaitOperationRequest", diff --git a/etc/api/translate/v3beta1/translate-api.json b/etc/api/translate/v3beta1/translate-api.json index 7bf2bcf54e..ad27d030af 100644 --- a/etc/api/translate/v3beta1/translate-api.json +++ b/etc/api/translate/v3beta1/translate-api.json @@ -667,7 +667,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "translate.projects.locations.operations.list", @@ -744,7 +744,7 @@ } } }, - "revision": "20230106", + "revision": "20240131", "rootUrl": "https://translation.googleapis.com/", "schemas": { "BatchDocumentInputConfig": { @@ -764,7 +764,7 @@ "properties": { "gcsDestination": { "$ref": "GcsDestination", - "description": "Google Cloud Storage destination for output content. For every single input document (for example, gs://a/b/c.[extension]), we generate at most 2 * n output files. (n is the # of target_language_codes in the BatchTranslateDocumentRequest). While the input documents are being processed, we write/update an index file `index.csv` under `gcs_destination.output_uri_prefix` (for example, gs://translation_output/index.csv) The index file is generated/updated as new files are being translated. The format is: input_document,target_language_code,translation_output,error_output, glossary_translation_output,glossary_error_output `input_document` is one file we matched using gcs_source.input_uri. `target_language_code` is provided in the request. `translation_output` contains the translations. (details provided below) `error_output` contains the error message during processing of the file. Both translations_file and errors_file could be empty strings if we have no content to output. `glossary_translation_output` and `glossary_error_output` are the translated output/error when we apply glossaries. They could also be empty if we have no content to output. Once a row is present in index.csv, the input/output matching never changes. Callers should also expect all the content in input_file are processed and ready to be consumed (that is, no partial output file is written). Since index.csv will be keeping updated during the process, please make sure there is no custom retention policy applied on the output bucket that may avoid file updating. (https://cloud.google.com/storage/docs/bucket-lock#retention-policy) The naming format of translation output files follows (for target language code [trg]): `translation_output`: gs://translation_output/a_b_c_[trg]_translation.[extension] `glossary_translation_output`: gs://translation_test/a_b_c_[trg]_glossary_translation.[extension] The output document will maintain the same file format as the input document. The naming format of error output files follows (for target language code [trg]): `error_output`: gs://translation_test/a_b_c_[trg]_errors.txt `glossary_error_output`: gs://translation_test/a_b_c_[trg]_glossary_translation.txt The error output is a txt file containing error details." + "description": "Google Cloud Storage destination for output content. For every single input document (for example, gs://a/b/c.[extension]), we generate at most 2 * n output files. (n is the # of target_language_codes in the BatchTranslateDocumentRequest). While the input documents are being processed, we write/update an index file `index.csv` under `gcs_destination.output_uri_prefix` (for example, gs://translation_output/index.csv) The index file is generated/updated as new files are being translated. The format is: input_document,target_language_code,translation_output,error_output, glossary_translation_output,glossary_error_output `input_document` is one file we matched using gcs_source.input_uri. `target_language_code` is provided in the request. `translation_output` contains the translations. (details provided below) `error_output` contains the error message during processing of the file. Both translations_file and errors_file could be empty strings if we have no content to output. `glossary_translation_output` and `glossary_error_output` are the translated output/error when we apply glossaries. They could also be empty if we have no content to output. Once a row is present in index.csv, the input/output matching never changes. Callers should also expect all the content in input_file are processed and ready to be consumed (that is, no partial output file is written). Since index.csv will be keeping updated during the process, please make sure there is no custom retention policy applied on the output bucket that may avoid file updating. (https://cloud.google.com/storage/docs/bucket-lock#retention-policy) The naming format of translation output files follows (for target language code [trg]): `translation_output`: `gs://translation_output/a_b_c_[trg]_translation.[extension]` `glossary_translation_output`: `gs://translation_test/a_b_c_[trg]_glossary_translation.[extension]`. The output document will maintain the same file format as the input document. The naming format of error output files follows (for target language code [trg]): `error_output`: `gs://translation_test/a_b_c_[trg]_errors.txt` `glossary_error_output`: `gs://translation_test/a_b_c_[trg]_glossary_translation.txt` The error output is a txt file containing error details." } }, "type": "object" @@ -777,11 +777,19 @@ "description": "Optional. This flag is to support user customized attribution. If not provided, the default is `Machine Translated by Google`. Customized attribution should follow rules in https://cloud.google.com/translate/attribution#attribution_and_logos", "type": "string" }, + "enableRotationCorrection": { + "description": "Optional. If true, enable auto rotation correction in DVS.", + "type": "boolean" + }, + "enableShadowRemovalNativePdf": { + "description": "Optional. If true, use the text removal server to remove the shadow text on background image for native pdf translation. Shadow removal feature can only be enabled when is_translate_native_pdf_only: false && pdf_native_only: false", + "type": "boolean" + }, "formatConversions": { "additionalProperties": { "type": "string" }, - "description": "Optional.", + "description": "Optional. File format conversion map to be applied to all input files. Map's key is the original mime_type. Map's value is the target mime_type of translated documents. Supported file format conversion includes: - `application/pdf` to `application/vnd.openxmlformats-officedocument.wordprocessingml.document` If nothing specified, output files will be in the same format as the original file.", "type": "object" }, "glossaries": { @@ -961,7 +969,7 @@ "properties": { "gcsDestination": { "$ref": "GcsDestination", - "description": "Optional. Google Cloud Storage destination for the translation output, e.g., `gs://my_bucket/my_directory/`. The destination directory provided does not have to be empty, but the bucket must exist. If a file with the same name as the output file already exists in the destination an error will be returned. For a DocumentInputConfig.contents provided document, the output file will have the name \"output_[trg]_translations.[ext]\", where - [trg] corresponds to the translated file's language code, - [ext] corresponds to the translated file's extension according to its mime type. For a DocumentInputConfig.gcs_uri provided document, the output file will have a name according to its URI. For example: an input file with URI: \"gs://a/b/c.[extension]\" stored in a gcs_destination bucket with name \"my_bucket\" will have an output URI: \"gs://my_bucket/a_b_c_[trg]_translations.[ext]\", where - [trg] corresponds to the translated file's language code, - [ext] corresponds to the translated file's extension according to its mime type. If the document was directly provided through the request, then the output document will have the format: \"gs://my_bucket/translated_document_[trg]_translations.[ext], where - [trg] corresponds to the translated file's language code, - [ext] corresponds to the translated file's extension according to its mime type. If a glossary was provided, then the output URI for the glossary translation will be equal to the default output URI but have `glossary_translations` instead of `translations`. For the previous example, its glossary URI would be: \"gs://my_bucket/a_b_c_[trg]_glossary_translations.[ext]\". Thus the max number of output files will be 2 (Translated document, Glossary translated document). Callers should expect no partial outputs. If there is any error during document translation, no output will be stored in the Cloud Storage bucket." + "description": "Optional. Google Cloud Storage destination for the translation output, e.g., `gs://my_bucket/my_directory/`. The destination directory provided does not have to be empty, but the bucket must exist. If a file with the same name as the output file already exists in the destination an error will be returned. For a DocumentInputConfig.contents provided document, the output file will have the name \"output_[trg]_translations.[ext]\", where - [trg] corresponds to the translated file's language code, - [ext] corresponds to the translated file's extension according to its mime type. For a DocumentInputConfig.gcs_uri provided document, the output file will have a name according to its URI. For example: an input file with URI: `gs://a/b/c.[extension]` stored in a gcs_destination bucket with name \"my_bucket\" will have an output URI: `gs://my_bucket/a_b_c_[trg]_translations.[ext]`, where - [trg] corresponds to the translated file's language code, - [ext] corresponds to the translated file's extension according to its mime type. If the document was directly provided through the request, then the output document will have the format: `gs://my_bucket/translated_document_[trg]_translations.[ext]`, where - [trg] corresponds to the translated file's language code, - [ext] corresponds to the translated file's extension according to its mime type. If a glossary was provided, then the output URI for the glossary translation will be equal to the default output URI but have `glossary_translations` instead of `translations`. For the previous example, its glossary URI would be: `gs://my_bucket/a_b_c_[trg]_glossary_translations.[ext]`. Thus the max number of output files will be 2 (Translated document, Glossary translated document). Callers should expect no partial outputs. If there is any error during document translation, no output will be stored in the Cloud Storage bucket." }, "mimeType": { "description": "Optional. Specifies the translated document's mime_type. If not specified, the translated file's mime type will be the same as the input file's mime type. Currently only support the output mime type to be the same as input mime type. - application/pdf - application/vnd.openxmlformats-officedocument.wordprocessingml.document - application/vnd.openxmlformats-officedocument.presentationml.presentation - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", @@ -1172,7 +1180,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -1234,7 +1242,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" } }, @@ -1246,7 +1254,7 @@ "properties": { "gcsDestination": { "$ref": "GcsDestination", - "description": "Google Cloud Storage destination for output content. For every single input file (for example, gs://a/b/c.[extension]), we generate at most 2 * n output files. (n is the # of target_language_codes in the BatchTranslateTextRequest). Output files (tsv) generated are compliant with RFC 4180 except that record delimiters are '\\n' instead of '\\r\\n'. We don't provide any way to change record delimiters. While the input files are being processed, we write/update an index file 'index.csv' under 'output_uri_prefix' (for example, gs://translation-test/index.csv) The index file is generated/updated as new files are being translated. The format is: input_file,target_language_code,translations_file,errors_file, glossary_translations_file,glossary_errors_file input_file is one file we matched using gcs_source.input_uri. target_language_code is provided in the request. translations_file contains the translations. (details provided below) errors_file contains the errors during processing of the file. (details below). Both translations_file and errors_file could be empty strings if we have no content to output. glossary_translations_file and glossary_errors_file are always empty strings if the input_file is tsv. They could also be empty if we have no content to output. Once a row is present in index.csv, the input/output matching never changes. Callers should also expect all the content in input_file are processed and ready to be consumed (that is, no partial output file is written). Since index.csv will be keeping updated during the process, please make sure there is no custom retention policy applied on the output bucket that may avoid file updating. (https://cloud.google.com/storage/docs/bucket-lock#retention-policy) The format of translations_file (for target language code 'trg') is: `gs://translation_test/a_b_c_'trg'_translations.[extension]` If the input file extension is tsv, the output has the following columns: Column 1: ID of the request provided in the input, if it's not provided in the input, then the input row number is used (0-based). Column 2: source sentence. Column 3: translation without applying a glossary. Empty string if there is an error. Column 4 (only present if a glossary is provided in the request): translation after applying the glossary. Empty string if there is an error applying the glossary. Could be same string as column 3 if there is no glossary applied. If input file extension is a txt or html, the translation is directly written to the output file. If glossary is requested, a separate glossary_translations_file has format of gs://translation_test/a_b_c_'trg'_glossary_translations.[extension] The format of errors file (for target language code 'trg') is: gs://translation_test/a_b_c_'trg'_errors.[extension] If the input file extension is tsv, errors_file contains the following: Column 1: ID of the request provided in the input, if it's not provided in the input, then the input row number is used (0-based). Column 2: source sentence. Column 3: Error detail for the translation. Could be empty. Column 4 (only present if a glossary is provided in the request): Error when applying the glossary. If the input file extension is txt or html, glossary_error_file will be generated that contains error details. glossary_error_file has format of gs://translation_test/a_b_c_'trg'_glossary_errors.[extension]" + "description": "Google Cloud Storage destination for output content. For every single input file (for example, gs://a/b/c.[extension]), we generate at most 2 * n output files. (n is the # of target_language_codes in the BatchTranslateTextRequest). Output files (tsv) generated are compliant with RFC 4180 except that record delimiters are '\\n' instead of '\\r\\n'. We don't provide any way to change record delimiters. While the input files are being processed, we write/update an index file 'index.csv' under 'output_uri_prefix' (for example, gs://translation-test/index.csv) The index file is generated/updated as new files are being translated. The format is: input_file,target_language_code,translations_file,errors_file, glossary_translations_file,glossary_errors_file input_file is one file we matched using gcs_source.input_uri. target_language_code is provided in the request. translations_file contains the translations. (details provided below) errors_file contains the errors during processing of the file. (details below). Both translations_file and errors_file could be empty strings if we have no content to output. glossary_translations_file and glossary_errors_file are always empty strings if the input_file is tsv. They could also be empty if we have no content to output. Once a row is present in index.csv, the input/output matching never changes. Callers should also expect all the content in input_file are processed and ready to be consumed (that is, no partial output file is written). Since index.csv will be keeping updated during the process, please make sure there is no custom retention policy applied on the output bucket that may avoid file updating. (https://cloud.google.com/storage/docs/bucket-lock#retention-policy) The format of translations_file (for target language code 'trg') is: `gs://translation_test/a_b_c_'trg'_translations.[extension]` If the input file extension is tsv, the output has the following columns: Column 1: ID of the request provided in the input, if it's not provided in the input, then the input row number is used (0-based). Column 2: source sentence. Column 3: translation without applying a glossary. Empty string if there is an error. Column 4 (only present if a glossary is provided in the request): translation after applying the glossary. Empty string if there is an error applying the glossary. Could be same string as column 3 if there is no glossary applied. If input file extension is a txt or html, the translation is directly written to the output file. If glossary is requested, a separate glossary_translations_file has format of `gs://translation_test/a_b_c_'trg'_glossary_translations.[extension]` The format of errors file (for target language code 'trg') is: `gs://translation_test/a_b_c_'trg'_errors.[extension]` If the input file extension is tsv, errors_file contains the following: Column 1: ID of the request provided in the input, if it's not provided in the input, then the input row number is used (0-based). Column 2: source sentence. Column 3: Error detail for the translation. Could be empty. Column 4 (only present if a glossary is provided in the request): Error when applying the glossary. If the input file extension is txt or html, glossary_error_file will be generated that contains error details. glossary_error_file has format of `gs://translation_test/a_b_c_'trg'_glossary_errors.[extension]`" } }, "type": "object" @@ -1331,8 +1339,12 @@ "$ref": "DocumentOutputConfig", "description": "Optional. Output configurations. Defines if the output file should be stored within Cloud Storage as well as the desired output format. If not provided the translated file will only be returned through a byte-stream and its output mime type will be the same as the input file's mime type." }, + "enableRotationCorrection": { + "description": "Optional. If true, enable auto rotation correction in DVS.", + "type": "boolean" + }, "enableShadowRemovalNativePdf": { - "description": "Optional. If true, use the text removal server to remove the shadow text on background image for native pdf translation.", + "description": "Optional. If true, use the text removal server to remove the shadow text on background image for native pdf translation. Shadow removal feature can only be enabled when is_translate_native_pdf_only: false && pdf_native_only: false", "type": "boolean" }, "glossaryConfig": { diff --git a/etc/api/vault/v1/vault-api.json b/etc/api/vault/v1/vault-api.json index 0b6de9acdb..887c1c3b5b 100644 --- a/etc/api/vault/v1/vault-api.json +++ b/etc/api/vault/v1/vault-api.json @@ -1153,7 +1153,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/operations", "httpMethod": "GET", "id": "vault.operations.list", @@ -1193,7 +1193,7 @@ } } }, - "revision": "20230123", + "revision": "20240220", "rootUrl": "https://vault.googleapis.com/", "schemas": { "AccountCount": { @@ -1326,6 +1326,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", @@ -1354,7 +1431,7 @@ "id": "CloudStorageFile", "properties": { "bucketName": { - "description": "The name of the Cloud Storage bucket for the export file. You can use this value in the [Cloud Storage JSON or XML APIs](https://cloud.google.com/storage/docs/apis), but not to list the bucket contents. Instead, you can [get individual export files](https://cloud.google.com/storage/docs/json_api/v1/objects/get) by object name.", + "description": "The name of the Cloud Storage bucket for the export file. You can use this value in the Cloud Storage [JSON API](https://cloud.google.com/storage/docs/json_api) or [XML API](https://cloud.google.com/storage/docs/xml-api), but not to list the bucket contents. Instead, you can [get individual export files](https://cloud.google.com/storage/docs/json_api/v1/objects/get) by object name.", "type": "string" }, "md5Hash": { @@ -1362,7 +1439,7 @@ "type": "string" }, "objectName": { - "description": "The name of the Cloud Storage object for the export file. You can use this value in the [Cloud Storage JSON or XML APIs](https://cloud.google.com/storage/docs/apis).", + "description": "The name of the Cloud Storage object for the export file. You can use this value in the Cloud Storage [JSON API](https://cloud.google.com/storage/docs/json_api) or [XML API](https://cloud.google.com/storage/docs/xml-api).", "type": "string" }, "size": { @@ -1520,6 +1597,7 @@ "type": "boolean" }, "includeTeamDrives": { + "deprecated": true, "description": "Set to true to include Team Drive.", "type": "boolean" }, @@ -1566,6 +1644,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." @@ -1601,6 +1684,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." @@ -1709,12 +1796,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" } @@ -1730,12 +1819,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" } @@ -1747,7 +1838,7 @@ "id": "HangoutsChatInfo", "properties": { "roomId": { - "description": "A list of Chat spaces IDs, as provided by the [Chat API](https://developers.google.com/hangouts/chat).", + "description": "A list of Chat spaces IDs, as provided by the [Chat API](https://developers.google.com/chat). There is a limit of exporting from 500 Chat spaces per request.", "items": { "type": "string" }, @@ -1804,6 +1895,7 @@ "type": "boolean" }, "includeTeamDriveFiles": { + "deprecated": true, "description": "To include files in Team Drives in the hold, set to **true**.", "type": "boolean" } @@ -1924,7 +2016,8 @@ "MAIL", "GROUPS", "HANGOUTS_CHAT", - "VOICE" + "VOICE", + "CALENDAR" ], "enumDescriptions": [ "No service specified.", @@ -1932,7 +2025,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" }, @@ -2111,15 +2205,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" @@ -2135,6 +2235,22 @@ "description": "Additional options for Gmail search", "id": "MailOptions", "properties": { + "clientSideEncryptedOption": { + "description": "Specifies whether the results should include encrypted content, unencrypted content, or both. Defaults to including both.", + "enum": [ + "CLIENT_SIDE_ENCRYPTED_OPTION_UNSPECIFIED", + "CLIENT_SIDE_ENCRYPTED_OPTION_ANY", + "CLIENT_SIDE_ENCRYPTED_OPTION_ENCRYPTED", + "CLIENT_SIDE_ENCRYPTED_OPTION_UNENCRYPTED" + ], + "enumDescriptions": [ + "Encryption status unspecified. Results include both client-side encrypted and non-encrypted content.", + "Include both client-side encrypted and unencrypted content in results.", + "Include client-side encrypted content only.", + "Include unencrypted content only." + ], + "type": "string" + }, "excludeDrafts": { "description": "Set to **true** to exclude drafts.", "type": "boolean" @@ -2238,7 +2354,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" } }, @@ -2263,6 +2379,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": [ @@ -2271,7 +2391,8 @@ "MAIL", "GROUPS", "HANGOUTS_CHAT", - "VOICE" + "VOICE", + "CALENDAR" ], "enumDescriptions": [ "No service specified.", @@ -2279,7 +2400,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" }, @@ -2332,6 +2454,16 @@ "SITES_URL", "SHARED_DRIVE" ], + "enumDeprecated": [ + false, + false, + false, + true, + false, + false, + false, + false + ], "enumDescriptions": [ "A search method must be specified or else it is rejected.", "Search the data of the accounts specified in [AccountInfo](https://developers.google.com/vault/reference/rest/v1/Query#accountinfo).", @@ -2349,6 +2481,7 @@ "description": "Required when **SearchMethod** is **ORG_UNIT**." }, "searchMethod": { + "deprecated": true, "description": "The search method to use.", "enum": [ "SEARCH_METHOD_UNSPECIFIED", @@ -2360,6 +2493,16 @@ "SITES_URL", "SHARED_DRIVE" ], + "enumDeprecated": [ + false, + false, + false, + true, + false, + false, + false, + false + ], "enumDescriptions": [ "A search method must be specified or else it is rejected.", "Search the data of the accounts specified in [AccountInfo](https://developers.google.com/vault/reference/rest/v1/Query#accountinfo).", @@ -2387,6 +2530,7 @@ }, "teamDriveInfo": { "$ref": "TeamDriveInfo", + "deprecated": true, "description": "Required when **SearchMethod** is **TEAM_DRIVE**." }, "terms": { @@ -2544,10 +2688,12 @@ "type": "object" }, "TeamDriveInfo": { + "deprecated": true, "description": "Team Drives to search", "id": "TeamDriveInfo", "properties": { "teamDriveIds": { + "deprecated": true, "description": "List of Team Drive IDs, as provided by the [Drive API](https://developers.google.com/drive).", "items": { "type": "string" @@ -2587,12 +2733,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/etc/api/verifiedaccess/v1/verifiedaccess-api.json b/etc/api/verifiedaccess/v1/verifiedaccess-api.json index 9e8b876597..70411bf0af 100644 --- a/etc/api/verifiedaccess/v1/verifiedaccess-api.json +++ b/etc/api/verifiedaccess/v1/verifiedaccess-api.json @@ -146,7 +146,7 @@ } } }, - "revision": "20230117", + "revision": "20240227", "rootUrl": "https://verifiedaccess.googleapis.com/", "schemas": { "Challenge": { @@ -206,6 +206,10 @@ "description": "Result message for VerifiedAccess.VerifyChallengeResponse.", "id": "VerifyChallengeResponseResult", "properties": { + "attestedDeviceId": { + "description": "Attested device id (ADID) of the device, read from the verified data.", + "type": "string" + }, "deviceEnrollmentId": { "description": "Device enrollment id is returned in this field (for the machine response only).", "type": "string" @@ -219,6 +223,7 @@ "type": "string" }, "verificationOutput": { + "deprecated": true, "description": "For EMCert check, device permanent id is returned here. For EUCert check, signed_public_key_and_challenge [base64 encoded] is returned if present, otherwise empty string is returned. This field is deprecated, please use device_permanent_id or signed_public_key_and_challenge fields.", "type": "string" } diff --git a/etc/api/versionhistory/v1/versionhistory-api.json b/etc/api/versionhistory/v1/versionhistory-api.json index 8ae2d34675..a3c490391d 100644 --- a/etc/api/versionhistory/v1/versionhistory-api.json +++ b/etc/api/versionhistory/v1/versionhistory-api.json @@ -271,7 +271,7 @@ } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://versionhistory.googleapis.com/", "schemas": { "Channel": { @@ -288,7 +288,9 @@ "CANARY", "CANARY_ASAN", "ALL", - "EXTENDED" + "EXTENDED", + "LTS", + "LTC" ], "enumDescriptions": [ "", @@ -298,7 +300,9 @@ "", "", "", - "" + "", + "The Long-term support channel for ChromeOS.", + "The Long-term support candidate channel for ChromeOS." ], "type": "string" }, diff --git a/etc/api/videointelligence/v1/videointelligence-api.json b/etc/api/videointelligence/v1/videointelligence-api.json index 200db499cf..6d3eabdfe2 100644 --- a/etc/api/videointelligence/v1/videointelligence-api.json +++ b/etc/api/videointelligence/v1/videointelligence-api.json @@ -281,7 +281,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "videointelligence.projects.locations.operations.list", @@ -350,7 +350,7 @@ } } }, - "revision": "20230119", + "revision": "20240118", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { @@ -561,6 +561,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1_FaceAnnotation", "properties": { @@ -629,6 +630,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1_FaceFrame", "properties": { @@ -1282,6 +1284,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1_FaceAnnotation" @@ -1617,6 +1620,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1beta2_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1beta2_FaceAnnotation", "properties": { @@ -1666,6 +1670,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1beta2_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1beta2_FaceFrame", "properties": { @@ -2153,6 +2158,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1beta2_FaceAnnotation" @@ -2442,6 +2448,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p1beta1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p1beta1_FaceAnnotation", "properties": { @@ -2491,6 +2498,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p1beta1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p1beta1_FaceFrame", "properties": { @@ -2978,6 +2986,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1p1beta1_FaceAnnotation" @@ -3267,6 +3276,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p2beta1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p2beta1_FaceAnnotation", "properties": { @@ -3316,6 +3326,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p2beta1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p2beta1_FaceFrame", "properties": { @@ -3803,6 +3814,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1p2beta1_FaceAnnotation" @@ -4147,6 +4159,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p3beta1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p3beta1_FaceAnnotation", "properties": { @@ -4196,6 +4209,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p3beta1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p3beta1_FaceFrame", "properties": { @@ -4761,6 +4775,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1p3beta1_FaceAnnotation" @@ -4965,7 +4980,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/etc/api/videointelligence/v1beta2/videointelligence-api.json b/etc/api/videointelligence/v1beta2/videointelligence-api.json index 5aeb6f73b4..7629bacc73 100644 --- a/etc/api/videointelligence/v1beta2/videointelligence-api.json +++ b/etc/api/videointelligence/v1beta2/videointelligence-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20230119", + "revision": "20240118", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { @@ -269,6 +269,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1_FaceAnnotation", "properties": { @@ -318,6 +319,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1_FaceFrame", "properties": { @@ -805,6 +807,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1_FaceAnnotation" @@ -1164,6 +1167,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1beta2_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1beta2_FaceAnnotation", "properties": { @@ -1232,6 +1236,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1beta2_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1beta2_FaceFrame", "properties": { @@ -1885,6 +1890,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1beta2_FaceAnnotation" @@ -2220,6 +2226,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p1beta1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p1beta1_FaceAnnotation", "properties": { @@ -2269,6 +2276,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p1beta1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p1beta1_FaceFrame", "properties": { @@ -2756,6 +2764,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1p1beta1_FaceAnnotation" @@ -3045,6 +3054,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p2beta1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p2beta1_FaceAnnotation", "properties": { @@ -3094,6 +3104,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p2beta1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p2beta1_FaceFrame", "properties": { @@ -3581,6 +3592,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1p2beta1_FaceAnnotation" @@ -3925,6 +3937,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p3beta1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p3beta1_FaceAnnotation", "properties": { @@ -3974,6 +3987,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p3beta1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p3beta1_FaceFrame", "properties": { @@ -4539,6 +4553,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1p3beta1_FaceAnnotation" @@ -4719,7 +4734,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/etc/api/videointelligence/v1p1beta1/videointelligence-api.json b/etc/api/videointelligence/v1p1beta1/videointelligence-api.json index cd68bdc9b3..f01e9aee6b 100644 --- a/etc/api/videointelligence/v1p1beta1/videointelligence-api.json +++ b/etc/api/videointelligence/v1p1beta1/videointelligence-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20230119", + "revision": "20240118", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { @@ -269,6 +269,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1_FaceAnnotation", "properties": { @@ -318,6 +319,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1_FaceFrame", "properties": { @@ -805,6 +807,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1_FaceAnnotation" @@ -1094,6 +1097,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1beta2_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1beta2_FaceAnnotation", "properties": { @@ -1143,6 +1147,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1beta2_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1beta2_FaceFrame", "properties": { @@ -1630,6 +1635,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1beta2_FaceAnnotation" @@ -1989,6 +1995,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p1beta1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p1beta1_FaceAnnotation", "properties": { @@ -2057,6 +2064,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p1beta1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p1beta1_FaceFrame", "properties": { @@ -2710,6 +2718,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1p1beta1_FaceAnnotation" @@ -3045,6 +3054,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p2beta1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p2beta1_FaceAnnotation", "properties": { @@ -3094,6 +3104,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p2beta1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p2beta1_FaceFrame", "properties": { @@ -3581,6 +3592,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1p2beta1_FaceAnnotation" @@ -3925,6 +3937,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p3beta1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p3beta1_FaceAnnotation", "properties": { @@ -3974,6 +3987,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p3beta1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p3beta1_FaceFrame", "properties": { @@ -4539,6 +4553,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1p3beta1_FaceAnnotation" @@ -4719,7 +4734,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/etc/api/videointelligence/v1p2beta1/videointelligence-api.json b/etc/api/videointelligence/v1p2beta1/videointelligence-api.json index 103c4b8216..53a8bfbea2 100644 --- a/etc/api/videointelligence/v1p2beta1/videointelligence-api.json +++ b/etc/api/videointelligence/v1p2beta1/videointelligence-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20230119", + "revision": "20240118", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { @@ -269,6 +269,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1_FaceAnnotation", "properties": { @@ -318,6 +319,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1_FaceFrame", "properties": { @@ -805,6 +807,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1_FaceAnnotation" @@ -1094,6 +1097,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1beta2_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1beta2_FaceAnnotation", "properties": { @@ -1143,6 +1147,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1beta2_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1beta2_FaceFrame", "properties": { @@ -1630,6 +1635,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1beta2_FaceAnnotation" @@ -1919,6 +1925,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p1beta1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p1beta1_FaceAnnotation", "properties": { @@ -1968,6 +1975,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p1beta1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p1beta1_FaceFrame", "properties": { @@ -2455,6 +2463,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1p1beta1_FaceAnnotation" @@ -2814,6 +2823,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p2beta1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p2beta1_FaceAnnotation", "properties": { @@ -2882,6 +2892,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p2beta1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p2beta1_FaceFrame", "properties": { @@ -3535,6 +3546,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1p2beta1_FaceAnnotation" @@ -3925,6 +3937,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p3beta1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p3beta1_FaceAnnotation", "properties": { @@ -3974,6 +3987,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p3beta1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p3beta1_FaceFrame", "properties": { @@ -4539,6 +4553,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1p3beta1_FaceAnnotation" @@ -4719,7 +4734,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/etc/api/videointelligence/v1p3beta1/videointelligence-api.json b/etc/api/videointelligence/v1p3beta1/videointelligence-api.json index ac08b21daf..ccccb0cf89 100644 --- a/etc/api/videointelligence/v1p3beta1/videointelligence-api.json +++ b/etc/api/videointelligence/v1p3beta1/videointelligence-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20230119", + "revision": "20240118", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { @@ -269,6 +269,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1_FaceAnnotation", "properties": { @@ -318,6 +319,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1_FaceFrame", "properties": { @@ -805,6 +807,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1_FaceAnnotation" @@ -1094,6 +1097,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1beta2_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1beta2_FaceAnnotation", "properties": { @@ -1143,6 +1147,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1beta2_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1beta2_FaceFrame", "properties": { @@ -1630,6 +1635,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1beta2_FaceAnnotation" @@ -1919,6 +1925,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p1beta1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p1beta1_FaceAnnotation", "properties": { @@ -1968,6 +1975,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p1beta1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p1beta1_FaceFrame", "properties": { @@ -2455,6 +2463,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1p1beta1_FaceAnnotation" @@ -2744,6 +2753,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p2beta1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p2beta1_FaceAnnotation", "properties": { @@ -2793,6 +2803,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p2beta1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p2beta1_FaceFrame", "properties": { @@ -3280,6 +3291,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1p2beta1_FaceAnnotation" @@ -3696,6 +3708,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p3beta1_FaceAnnotation": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p3beta1_FaceAnnotation", "properties": { @@ -3764,6 +3777,7 @@ "type": "object" }, "GoogleCloudVideointelligenceV1p3beta1_FaceFrame": { + "deprecated": true, "description": "Deprecated. No effect.", "id": "GoogleCloudVideointelligenceV1p3beta1_FaceFrame", "properties": { @@ -4495,6 +4509,7 @@ "description": "Explicit content annotation." }, "faceAnnotations": { + "deprecated": true, "description": "Deprecated. Please use `face_detection_annotations` instead.", "items": { "$ref": "GoogleCloudVideointelligenceV1p3beta1_FaceAnnotation" @@ -4721,7 +4736,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/etc/api/vision/v1/vision-api.json b/etc/api/vision/v1/vision-api.json index 4f087a1931..b94c8bba56 100644 --- a/etc/api/vision/v1/vision-api.json +++ b/etc/api/vision/v1/vision-api.json @@ -310,7 +310,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1/operations", "httpMethod": "GET", "id": "vision.operations.list", @@ -1282,7 +1282,7 @@ } } }, - "revision": "20230113", + "revision": "20240223", "rootUrl": "https://vision.googleapis.com/", "schemas": { "AddProductToProductSetRequest": { @@ -1497,6 +1497,13 @@ "description": "Multiple async file annotation requests are batched into a single service call.", "id": "AsyncBatchAnnotateFilesRequest", "properties": { + "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), 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" + }, "parent": { "description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", "type": "string" @@ -1529,6 +1536,13 @@ "description": "Request for async image annotation for a list of images.", "id": "AsyncBatchAnnotateImagesRequest", "properties": { + "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), 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" + }, "outputConfig": { "$ref": "OutputConfig", "description": "Required. The desired output location and metadata (e.g. format)." @@ -1562,6 +1576,13 @@ "description": "A list of requests to annotate files using the BatchAnnotateFiles API.", "id": "BatchAnnotateFilesRequest", "properties": { + "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), 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" + }, "parent": { "description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", "type": "string" @@ -1594,6 +1615,13 @@ "description": "Multiple image annotation requests are batched into a single service call.", "id": "BatchAnnotateImagesRequest", "properties": { + "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), 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" + }, "parent": { "description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", "type": "string" @@ -1732,7 +1760,7 @@ "type": "object" }, "Color": { - "description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/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 carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). 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(''); }; // ...", + "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\u2014for 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": { @@ -1905,6 +1933,7 @@ "description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." }, "confidence": { + "deprecated": true, "description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", "format": "float", "type": "number" @@ -2487,6 +2516,7 @@ "description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." }, "confidence": { + "deprecated": true, "description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", "format": "float", "type": "number" @@ -3313,7 +3343,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", @@ -3900,6 +3930,7 @@ "description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." }, "confidence": { + "deprecated": true, "description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", "format": "float", "type": "number" @@ -4726,7 +4757,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", @@ -5348,6 +5379,7 @@ "description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." }, "confidence": { + "deprecated": true, "description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", "format": "float", "type": "number" @@ -6217,7 +6249,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", @@ -6883,6 +6915,7 @@ "description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." }, "confidence": { + "deprecated": true, "description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", "format": "float", "type": "number" @@ -7775,7 +7808,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", @@ -8617,7 +8650,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" } }, @@ -9052,7 +9085,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", @@ -9148,7 +9181,7 @@ "id": "TextDetectionParams", "properties": { "advancedOcrOptions": { - "description": "A list of advanced OCR options to fine-tune OCR behavior.", + "description": "A list of advanced OCR options to further fine-tune OCR behavior. Current valid values are: - `legacy_layout`: a heuristics layout detection algorithm, which serves as an alternative to the current ML-based layout detection algorithm. Customers can choose the best suitable layout algorithm based on their situation.", "items": { "type": "string" }, @@ -9250,7 +9283,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/etc/api/vision/v1p1beta1/vision-api.json b/etc/api/vision/v1p1beta1/vision-api.json index f1690b91d6..b94fe66031 100644 --- a/etc/api/vision/v1p1beta1/vision-api.json +++ b/etc/api/vision/v1p1beta1/vision-api.json @@ -449,7 +449,7 @@ } } }, - "revision": "20230113", + "revision": "20240223", "rootUrl": "https://vision.googleapis.com/", "schemas": { "AnnotateFileResponse": { @@ -714,7 +714,7 @@ "type": "object" }, "Color": { - "description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/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 carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). 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(''); }; // ...", + "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\u2014for 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": { @@ -866,6 +866,7 @@ "description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." }, "confidence": { + "deprecated": true, "description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", "format": "float", "type": "number" @@ -1319,6 +1320,13 @@ "description": "Multiple async file annotation requests are batched into a single service call.", "id": "GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesRequest", "properties": { + "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), 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" + }, "parent": { "description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", "type": "string" @@ -1351,6 +1359,13 @@ "description": "Request for async image annotation for a list of images.", "id": "GoogleCloudVisionV1p1beta1AsyncBatchAnnotateImagesRequest", "properties": { + "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), 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" + }, "outputConfig": { "$ref": "GoogleCloudVisionV1p1beta1OutputConfig", "description": "Required. The desired output location and metadata (e.g. format)." @@ -1373,6 +1388,13 @@ "description": "A list of requests to annotate files using the BatchAnnotateFiles API.", "id": "GoogleCloudVisionV1p1beta1BatchAnnotateFilesRequest", "properties": { + "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), 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" + }, "parent": { "description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", "type": "string" @@ -1405,6 +1427,13 @@ "description": "Multiple image annotation requests are batched into a single service call.", "id": "GoogleCloudVisionV1p1beta1BatchAnnotateImagesRequest", "properties": { + "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), 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" + }, "parent": { "description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", "type": "string" @@ -1595,6 +1624,7 @@ "description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." }, "confidence": { + "deprecated": true, "description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", "format": "float", "type": "number" @@ -2577,7 +2607,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", @@ -2711,7 +2741,7 @@ "id": "GoogleCloudVisionV1p1beta1TextDetectionParams", "properties": { "advancedOcrOptions": { - "description": "A list of advanced OCR options to fine-tune OCR behavior.", + "description": "A list of advanced OCR options to further fine-tune OCR behavior. Current valid values are: - `legacy_layout`: a heuristics layout detection algorithm, which serves as an alternative to the current ML-based layout detection algorithm. Customers can choose the best suitable layout algorithm based on their situation.", "items": { "type": "string" }, @@ -2795,7 +2825,8 @@ "id": "GoogleCloudVisionV1p1beta1WebDetectionParams", "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" } }, @@ -3193,6 +3224,7 @@ "description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." }, "confidence": { + "deprecated": true, "description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", "format": "float", "type": "number" @@ -4019,7 +4051,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", @@ -4641,6 +4673,7 @@ "description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." }, "confidence": { + "deprecated": true, "description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", "format": "float", "type": "number" @@ -5510,7 +5543,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", @@ -6176,6 +6209,7 @@ "description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." }, "confidence": { + "deprecated": true, "description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", "format": "float", "type": "number" @@ -7068,7 +7102,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", @@ -7702,7 +7736,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" } }, @@ -8044,7 +8078,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", diff --git a/etc/api/vision/v1p2beta1/vision-api.json b/etc/api/vision/v1p2beta1/vision-api.json index 296409f9b8..6526015115 100644 --- a/etc/api/vision/v1p2beta1/vision-api.json +++ b/etc/api/vision/v1p2beta1/vision-api.json @@ -449,7 +449,7 @@ } } }, - "revision": "20230113", + "revision": "20240223", "rootUrl": "https://vision.googleapis.com/", "schemas": { "AnnotateFileResponse": { @@ -714,7 +714,7 @@ "type": "object" }, "Color": { - "description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/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 carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). 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(''); }; // ...", + "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\u2014for 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": { @@ -866,6 +866,7 @@ "description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." }, "confidence": { + "deprecated": true, "description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", "format": "float", "type": "number" @@ -1398,6 +1399,7 @@ "description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." }, "confidence": { + "deprecated": true, "description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", "format": "float", "type": "number" @@ -2224,7 +2226,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", @@ -2732,6 +2734,13 @@ "description": "Multiple async file annotation requests are batched into a single service call.", "id": "GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest", "properties": { + "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), 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" + }, "parent": { "description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", "type": "string" @@ -2764,6 +2773,13 @@ "description": "Request for async image annotation for a list of images.", "id": "GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest", "properties": { + "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), 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" + }, "outputConfig": { "$ref": "GoogleCloudVisionV1p2beta1OutputConfig", "description": "Required. The desired output location and metadata (e.g. format)." @@ -2786,6 +2802,13 @@ "description": "A list of requests to annotate files using the BatchAnnotateFiles API.", "id": "GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest", "properties": { + "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), 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" + }, "parent": { "description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", "type": "string" @@ -2818,6 +2841,13 @@ "description": "Multiple image annotation requests are batched into a single service call.", "id": "GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest", "properties": { + "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), 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" + }, "parent": { "description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", "type": "string" @@ -3008,6 +3038,7 @@ "description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." }, "confidence": { + "deprecated": true, "description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", "format": "float", "type": "number" @@ -3990,7 +4021,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", @@ -4124,7 +4155,7 @@ "id": "GoogleCloudVisionV1p2beta1TextDetectionParams", "properties": { "advancedOcrOptions": { - "description": "A list of advanced OCR options to fine-tune OCR behavior.", + "description": "A list of advanced OCR options to further fine-tune OCR behavior. Current valid values are: - `legacy_layout`: a heuristics layout detection algorithm, which serves as an alternative to the current ML-based layout detection algorithm. Customers can choose the best suitable layout algorithm based on their situation.", "items": { "type": "string" }, @@ -4208,7 +4239,8 @@ "id": "GoogleCloudVisionV1p2beta1WebDetectionParams", "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" } }, @@ -4641,6 +4673,7 @@ "description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." }, "confidence": { + "deprecated": true, "description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", "format": "float", "type": "number" @@ -5510,7 +5543,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", @@ -6176,6 +6209,7 @@ "description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." }, "confidence": { + "deprecated": true, "description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", "format": "float", "type": "number" @@ -7068,7 +7102,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", @@ -7702,7 +7736,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" } }, @@ -8044,7 +8078,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", diff --git a/etc/api/vmmigration/v1/vmmigration-api.json b/etc/api/vmmigration/v1/vmmigration-api.json index ba482e1948..9473c2a234 100644 --- a/etc/api/vmmigration/v1/vmmigration-api.json +++ b/etc/api/vmmigration/v1/vmmigration-api.json @@ -229,7 +229,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" } @@ -262,7 +262,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 after the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "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).", "location": "query", "type": "string" } @@ -363,7 +363,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" }, @@ -415,6 +415,254 @@ } } }, + "imageImports": { + "methods": { + "create": { + "description": "Creates a new ImageImport in a given project.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/imageImports", + "httpMethod": "POST", + "id": "vmmigration.projects.locations.imageImports.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "imageImportId": { + "description": "Required. The image import identifier. This value maximum length is 63 characters, and valid characters are /a-z-/. It must start with an english letter and must not end with a hyphen.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The ImageImport's parent.", + "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).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/imageImports", + "request": { + "$ref": "ImageImport" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single ImageImport.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/imageImports/{imageImportsId}", + "httpMethod": "DELETE", + "id": "vmmigration.projects.locations.imageImports.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The ImageImport name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/imageImports/[^/]+$", + "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "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 ImageImport.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/imageImports/{imageImportsId}", + "httpMethod": "GET", + "id": "vmmigration.projects.locations.imageImports.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The ImageImport name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/imageImports/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ImageImport" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists ImageImports in a given project.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/imageImports", + "httpMethod": "GET", + "id": "vmmigration.projects.locations.imageImports.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. The filter request (according to https://google.aip.dev/160).", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. The order by fields for the result (according to https://google.aip.dev/132#ordering). Currently ordering is only possible by \"name\" field.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of targets to return. The service may return fewer than this value. If unspecified, at most 500 targets 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 `ListImageImports` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListImageImports` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent, which owns this collection of targets.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/imageImports", + "response": { + "$ref": "ListImageImportsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "imageImportJobs": { + "methods": { + "cancel": { + "description": "Initiates the cancellation of a running clone job.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/imageImports/{imageImportsId}/imageImportJobs/{imageImportJobsId}:cancel", + "httpMethod": "POST", + "id": "vmmigration.projects.locations.imageImports.imageImportJobs.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The image import job id.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/imageImports/[^/]+/imageImportJobs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:cancel", + "request": { + "$ref": "CancelImageImportJobRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single ImageImportJob.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/imageImports/{imageImportsId}/imageImportJobs/{imageImportJobsId}", + "httpMethod": "GET", + "id": "vmmigration.projects.locations.imageImports.imageImportJobs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The ImageImportJob name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/imageImports/[^/]+/imageImportJobs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ImageImportJob" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists ImageImportJobs in a given project.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/imageImports/{imageImportsId}/imageImportJobs", + "httpMethod": "GET", + "id": "vmmigration.projects.locations.imageImports.imageImportJobs.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. The filter request (according to https://google.aip.dev/160).", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. The order by fields for the result (according to https://google.aip.dev/132#ordering). Currently ordering is only possible by \"name\" field.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of targets to return. The service may return fewer than this value. If unspecified, at most 500 targets 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 `ListImageImportJobs` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListImageImportJobs` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent, which owns this collection of targets.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/imageImports/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/imageImportJobs", + "response": { + "$ref": "ListImageImportJobsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "operations": { "methods": { "cancel": { @@ -496,7 +744,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "vmmigration.projects.locations.operations.list", @@ -557,7 +805,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" }, @@ -595,7 +843,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 after the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "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).", "location": "query", "type": "string" } @@ -737,7 +985,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" }, @@ -785,7 +1033,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" } @@ -818,7 +1066,7 @@ "type": "string" }, "requestId": { - "description": "A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" } @@ -956,7 +1204,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" } @@ -1143,7 +1391,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" }, @@ -1303,7 +1551,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" } @@ -1345,7 +1593,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", @@ -1444,7 +1692,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" } @@ -1486,7 +1734,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", @@ -1629,7 +1877,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" }, @@ -1667,7 +1915,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 after the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "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).", "location": "query", "type": "string" } @@ -1804,7 +2052,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" }, @@ -1842,7 +2090,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 after the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "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).", "location": "query", "type": "string" } @@ -1943,7 +2191,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" }, @@ -1972,7 +2220,7 @@ } } }, - "revision": "20230119", + "revision": "20240222", "rootUrl": "https://vmmigration.googleapis.com/", "schemas": { "AccessKeyCredentials": { @@ -1986,6 +2234,10 @@ "secretAccessKey": { "description": "Input only. AWS secret access key.", "type": "string" + }, + "sessionToken": { + "description": "Input only. AWS session token. Used only when AWS security token service (STS) is responsible for creating the temporary credentials.", + "type": "string" } }, "type": "object" @@ -2072,6 +2324,27 @@ }, "type": "object" }, + "AwsDiskDetails": { + "description": "The details of an AWS instance disk.", + "id": "AwsDiskDetails", + "properties": { + "diskNumber": { + "description": "The ordinal number of the disk.", + "format": "int32", + "type": "integer" + }, + "sizeGb": { + "description": "Size in GB.", + "format": "int64", + "type": "string" + }, + "volumeId": { + "description": "AWS volume ID.", + "type": "string" + } + }, + "type": "object" + }, "AwsSecurityGroup": { "description": "AwsSecurityGroup describes a security group of an AWS VM.", "id": "AwsSecurityGroup", @@ -2159,6 +2432,13 @@ "format": "int64", "type": "string" }, + "disks": { + "description": "The disks attached to the source VM.", + "items": { + "$ref": "AwsDiskDetails" + }, + "type": "array" + }, "firmware": { "description": "The firmware type of the source VM.", "enum": [ @@ -2172,6 +2452,11 @@ "The firmware is BIOS." ], "type": "string" + }, + "vmCapabilitiesInfo": { + "$ref": "VmCapabilities", + "description": "Output only. Information about VM capabilities needed for some Compute Engine features.", + "readOnly": true } }, "type": "object" @@ -2328,6 +2613,270 @@ }, "type": "object" }, + "AzureDiskDetails": { + "description": "The details of an Azure VM disk.", + "id": "AzureDiskDetails", + "properties": { + "diskId": { + "description": "Azure disk ID.", + "type": "string" + }, + "diskNumber": { + "description": "The ordinal number of the disk.", + "format": "int32", + "type": "integer" + }, + "sizeGb": { + "description": "Size in GB.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "AzureSourceDetails": { + "description": "AzureSourceDetails message describes a specific source details for the Azure source type.", + "id": "AzureSourceDetails", + "properties": { + "azureLocation": { + "description": "Immutable. The Azure location (region) that the source VMs will be migrated from.", + "type": "string" + }, + "clientSecretCreds": { + "$ref": "ClientSecretCredentials", + "description": "Azure Credentials using tenant ID, client ID and secret." + }, + "error": { + "$ref": "Status", + "description": "Output only. Provides details on the state of the Source in case of an error.", + "readOnly": true + }, + "migrationResourcesUserTags": { + "additionalProperties": { + "type": "string" + }, + "description": "User specified tags to add to every M2VM generated resource in Azure. These tags will be set in addition to the default tags that are set as part of the migration process. The tags must not begin with the reserved prefix `m4ce` or `m2vm`.", + "type": "object" + }, + "resourceGroupId": { + "description": "Output only. The ID of the Azure resource group that contains all resources related to the migration process of this source.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. State of the source as determined by the health check.", + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "FAILED", + "ACTIVE" + ], + "enumDescriptions": [ + "The state is unknown. This is used for API compatibility only and is not used by the system.", + "The state was not sampled by the health checks yet.", + "The source is available but might not be usable yet due to invalid credentials or another reason. The error message will contain further details.", + "The source exists and its credentials were verified." + ], + "readOnly": true, + "type": "string" + }, + "subscriptionId": { + "description": "Immutable. Azure subscription ID.", + "type": "string" + } + }, + "type": "object" + }, + "AzureSourceVmDetails": { + "description": "Represent the source Azure VM details.", + "id": "AzureSourceVmDetails", + "properties": { + "committedStorageBytes": { + "description": "The total size of the disks being migrated in bytes.", + "format": "int64", + "type": "string" + }, + "disks": { + "description": "The disks attached to the source VM.", + "items": { + "$ref": "AzureDiskDetails" + }, + "type": "array" + }, + "firmware": { + "description": "The firmware type of the source VM.", + "enum": [ + "FIRMWARE_UNSPECIFIED", + "EFI", + "BIOS" + ], + "enumDescriptions": [ + "The firmware is unknown.", + "The firmware is EFI.", + "The firmware is BIOS." + ], + "type": "string" + }, + "vmCapabilitiesInfo": { + "$ref": "VmCapabilities", + "description": "Output only. Information about VM capabilities needed for some Compute Engine features.", + "readOnly": true + } + }, + "type": "object" + }, + "AzureVmDetails": { + "description": "AzureVmDetails describes a VM in Azure.", + "id": "AzureVmDetails", + "properties": { + "bootOption": { + "description": "The VM Boot Option.", + "enum": [ + "BOOT_OPTION_UNSPECIFIED", + "EFI", + "BIOS" + ], + "enumDescriptions": [ + "The boot option is unknown.", + "The boot option is UEFI.", + "The boot option is BIOS." + ], + "type": "string" + }, + "committedStorageMb": { + "description": "The total size of the storage allocated to the VM in MB.", + "format": "int64", + "type": "string" + }, + "computerName": { + "description": "The VM's ComputerName.", + "type": "string" + }, + "cpuCount": { + "description": "The number of cpus the VM has.", + "format": "int32", + "type": "integer" + }, + "diskCount": { + "description": "The number of disks the VM has, including OS disk.", + "format": "int32", + "type": "integer" + }, + "disks": { + "description": "Description of the data disks.", + "items": { + "$ref": "Disk" + }, + "type": "array" + }, + "memoryMb": { + "description": "The memory size of the VM in MB.", + "format": "int32", + "type": "integer" + }, + "osDescription": { + "$ref": "OSDescription", + "description": "Description of the OS." + }, + "osDisk": { + "$ref": "OSDisk", + "description": "Description of the OS disk." + }, + "powerState": { + "description": "The power state of the VM at the moment list was taken.", + "enum": [ + "POWER_STATE_UNSPECIFIED", + "STARTING", + "RUNNING", + "STOPPING", + "STOPPED", + "DEALLOCATING", + "DEALLOCATED", + "UNKNOWN" + ], + "enumDescriptions": [ + "Power state is not specified.", + "The VM is starting.", + "The VM is running.", + "The VM is stopping.", + "The VM is stopped.", + "The VM is deallocating.", + "The VM is deallocated.", + "The VM's power state is unknown." + ], + "type": "string" + }, + "tags": { + "additionalProperties": { + "type": "string" + }, + "description": "The tags of the VM.", + "type": "object" + }, + "vmId": { + "description": "The VM full path in Azure.", + "type": "string" + }, + "vmSize": { + "description": "VM size as configured in Azure. Determines the VM's hardware spec.", + "type": "string" + } + }, + "type": "object" + }, + "AzureVmsDetails": { + "description": "AzureVmsDetails describes VMs in Azure.", + "id": "AzureVmsDetails", + "properties": { + "details": { + "description": "The details of the Azure VMs.", + "items": { + "$ref": "AzureVmDetails" + }, + "type": "array" + } + }, + "type": "object" + }, + "BootDiskDefaults": { + "description": "BootDiskDefaults hold information about the boot disk of a VM.", + "id": "BootDiskDefaults", + "properties": { + "deviceName": { + "description": "Optional. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.", + "type": "string" + }, + "diskName": { + "description": "Optional. The name of the disk.", + "type": "string" + }, + "diskType": { + "description": "Optional. The type of disk provisioning to use for the VM.", + "enum": [ + "COMPUTE_ENGINE_DISK_TYPE_UNSPECIFIED", + "COMPUTE_ENGINE_DISK_TYPE_STANDARD", + "COMPUTE_ENGINE_DISK_TYPE_SSD", + "COMPUTE_ENGINE_DISK_TYPE_BALANCED" + ], + "enumDescriptions": [ + "An unspecified disk type. Will be used as STANDARD.", + "A Standard disk type.", + "SSD hard disk type.", + "An alternative to SSD persistent disks that balance performance and cost." + ], + "type": "string" + }, + "encryption": { + "$ref": "Encryption", + "description": "Optional. The encryption to apply to the boot disk." + }, + "image": { + "$ref": "DiskImageDefaults", + "description": "The image to use when creating the disk." + } + }, + "type": "object" + }, "CancelCloneJobRequest": { "description": "Request message for 'CancelCloneJob' request.", "id": "CancelCloneJobRequest", @@ -2340,16 +2889,46 @@ "properties": {}, "type": "object" }, + "CancelImageImportJobRequest": { + "description": "Request message for 'CancelImageImportJob' request.", + "id": "CancelImageImportJobRequest", + "properties": {}, + "type": "object" + }, "CancelOperationRequest": { "description": "The request message for Operations.CancelOperation.", "id": "CancelOperationRequest", "properties": {}, "type": "object" }, + "ClientSecretCredentials": { + "description": "Message describing Azure Credentials using tenant ID, client ID and secret.", + "id": "ClientSecretCredentials", + "properties": { + "clientId": { + "description": "Azure client ID.", + "type": "string" + }, + "clientSecret": { + "description": "Input only. Azure client secret.", + "type": "string" + }, + "tenantId": { + "description": "Azure tenant ID.", + "type": "string" + } + }, + "type": "object" + }, "CloneJob": { "description": "CloneJob describes the process of creating a clone of a MigratingVM to the requested target based on the latest successful uploaded snapshots. While the migration cycles of a MigratingVm take place, it is possible to verify the uploaded VM can be started in the cloud, by creating a clone. The clone can be created without any downtime, and it is created using the latest snapshots which are already in the cloud. The cloneJob is only responsible for its work, not its products, which means once it is finished, it will never touch the instance it created. It will only delete it in case of the CloneJob being cancelled or upon failure to clone.", "id": "CloneJob", "properties": { + "computeEngineDisksTargetDetails": { + "$ref": "ComputeEngineDisksTargetDetails", + "description": "Output only. Details of the target Persistent Disks in Compute Engine.", + "readOnly": true + }, "computeEngineTargetDetails": { "$ref": "ComputeEngineTargetDetails", "description": "Output only. Details of the target VM in Compute Engine.", @@ -2448,6 +3027,58 @@ }, "type": "object" }, + "ComputeEngineDisksTargetDefaults": { + "description": "ComputeEngineDisksTargetDefaults is a collection of details for creating Persistent Disks in a target Compute Engine project.", + "id": "ComputeEngineDisksTargetDefaults", + "properties": { + "disks": { + "description": "The details of each Persistent Disk to create.", + "items": { + "$ref": "PersistentDiskDefaults" + }, + "type": "array" + }, + "disksTargetDefaults": { + "$ref": "DisksMigrationDisksTargetDefaults", + "description": "Details of the disk only migration target." + }, + "targetProject": { + "description": "The full path of the resource of type TargetProject which represents the Compute Engine project in which to create the Persistent Disks.", + "type": "string" + }, + "vmTargetDefaults": { + "$ref": "DisksMigrationVmTargetDefaults", + "description": "Details of the VM migration target." + }, + "zone": { + "description": "The zone in which to create the Persistent Disks.", + "type": "string" + } + }, + "type": "object" + }, + "ComputeEngineDisksTargetDetails": { + "description": "ComputeEngineDisksTargetDetails is a collection of created Persistent Disks details.", + "id": "ComputeEngineDisksTargetDetails", + "properties": { + "disks": { + "description": "The details of each created Persistent Disk.", + "items": { + "$ref": "PersistentDisk" + }, + "type": "array" + }, + "disksTargetDetails": { + "$ref": "DisksMigrationDisksTargetDetails", + "description": "Details of the disks-only migration target." + }, + "vmTargetDetails": { + "$ref": "DisksMigrationVmTargetDetails", + "description": "Details for the VM the migrated data disks are attached to." + } + }, + "type": "object" + }, "ComputeEngineTargetDefaults": { "description": "ComputeEngineTargetDefaults is a collection of details for creating a VM in a target Compute Engine project.", "id": "ComputeEngineTargetDefaults", @@ -2465,7 +3096,7 @@ "readOnly": true }, "bootOption": { - "description": "Output only. The VM Boot Option, as set in the source vm.", + "description": "Output only. The VM Boot Option, as set in the source VM.", "enum": [ "COMPUTE_ENGINE_BOOT_OPTION_UNSPECIFIED", "COMPUTE_ENGINE_BOOT_OPTION_EFI", @@ -2499,6 +3130,10 @@ ], "type": "string" }, + "encryption": { + "$ref": "Encryption", + "description": "Optional. Immutable. The encryption to apply to the VM disks." + }, "hostname": { "description": "The hostname to assign to the VM.", "type": "string" @@ -2547,14 +3182,14 @@ "type": "array" }, "networkTags": { - "description": "A map of network tags to associate with the VM.", + "description": "A list of network tags to associate with the VM.", "items": { "type": "string" }, "type": "array" }, "secureBoot": { - "description": "Defines whether the instance has Secure Boot enabled. This can be set to true only if the vm boot option is EFI.", + "description": "Defines whether the instance has Secure Boot enabled. This can be set to true only if the VM boot option is EFI.", "type": "boolean" }, "serviceAccount": { @@ -2592,7 +3227,7 @@ "description": "The OS license returned from the adaptation module report." }, "bootOption": { - "description": "The VM Boot Option, as set in the source vm.", + "description": "The VM Boot Option, as set in the source VM.", "enum": [ "COMPUTE_ENGINE_BOOT_OPTION_UNSPECIFIED", "COMPUTE_ENGINE_BOOT_OPTION_EFI", @@ -2625,6 +3260,10 @@ ], "type": "string" }, + "encryption": { + "$ref": "Encryption", + "description": "Optional. The encryption to apply to the VM disks." + }, "hostname": { "description": "The hostname to assign to the VM.", "type": "string" @@ -2673,7 +3312,7 @@ "type": "array" }, "networkTags": { - "description": "A map of network tags to associate with the VM.", + "description": "A list of network tags to associate with the VM.", "items": { "type": "string" }, @@ -2684,7 +3323,7 @@ "type": "string" }, "secureBoot": { - "description": "Defines whether the instance has Secure Boot enabled. This can be set to true only if the vm boot option is EFI.", + "description": "Defines whether the instance has Secure Boot enabled. This can be set to true only if the VM boot option is EFI.", "type": "boolean" }, "serviceAccount": { @@ -2749,10 +3388,34 @@ }, "type": "object" }, + "CreatingImageStep": { + "description": "CreatingImageStep contains specific step details.", + "id": "CreatingImageStep", + "properties": {}, + "type": "object" + }, + "CutoverForecast": { + "description": "CutoverForecast holds information about future CutoverJobs of a MigratingVm.", + "id": "CutoverForecast", + "properties": { + "estimatedCutoverJobDuration": { + "description": "Output only. Estimation of the CutoverJob duration.", + "format": "google-duration", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "CutoverJob": { "description": "CutoverJob message describes a cutover of a migrating VM. The CutoverJob is the operation of shutting down the VM, creating a snapshot and clonning the VM using the replicated snapshot.", "id": "CutoverJob", "properties": { + "computeEngineDisksTargetDetails": { + "$ref": "ComputeEngineDisksTargetDetails", + "description": "Output only. Details of the target Persistent Disks in Compute Engine.", + "readOnly": true + }, "computeEngineTargetDetails": { "$ref": "ComputeEngineTargetDetails", "description": "Output only. Details of the target VM in Compute Engine.", @@ -2899,6 +3562,12 @@ }, "type": "object" }, + "DataDiskImageImport": { + "description": "Mentions that the image import is not using OS adaptation process.", + "id": "DataDiskImageImport", + "properties": {}, + "type": "object" + }, "DatacenterConnector": { "description": "DatacenterConnector message describes a connector between the Source and Google Cloud, which is installed on a vmware datacenter (an OVA vm installed by the user) to connect the Datacenter to Google Cloud and support vm migration data transfer.", "id": "DatacenterConnector", @@ -2990,12 +3659,210 @@ }, "type": "object" }, + "Disk": { + "description": "A message describing a data disk.", + "id": "Disk", + "properties": { + "lun": { + "description": "The disk's Logical Unit Number (LUN).", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "The disk name.", + "type": "string" + }, + "sizeGb": { + "description": "The disk size in GB.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "DiskImageDefaults": { + "description": "Contains details about the image source used to create the disk.", + "id": "DiskImageDefaults", + "properties": { + "sourceImage": { + "description": "Required. The Image resource used when creating the disk.", + "type": "string" + } + }, + "type": "object" + }, + "DiskImageTargetDetails": { + "description": "The target details of the image resource that will be created by the import job.", + "id": "DiskImageTargetDetails", + "properties": { + "additionalLicenses": { + "description": "Optional. Additional licenses to assign to the image.", + "items": { + "type": "string" + }, + "type": "array" + }, + "dataDiskImageImport": { + "$ref": "DataDiskImageImport", + "description": "Optional. Use to skip OS adaptation process." + }, + "description": { + "description": "Optional. An optional description of the image.", + "type": "string" + }, + "encryption": { + "$ref": "Encryption", + "description": "Optional. Immutable. The encryption to apply to the image." + }, + "familyName": { + "description": "Optional. The name of the image family to which the new image belongs.", + "type": "string" + }, + "imageName": { + "description": "Required. The name of the image to be created.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A map of labels to associate with the image.", + "type": "object" + }, + "osAdaptationParameters": { + "$ref": "ImageImportOsAdaptationParameters", + "description": "Optional. Use to set the parameters relevant for the OS adaptation process." + }, + "singleRegionStorage": { + "description": "Optional. Set to true to set the image storageLocations to the single region of the import job. When false, the closest multi-region is selected.", + "type": "boolean" + }, + "targetProject": { + "description": "Required. Reference to the TargetProject resource that represents the target project in which the imported image will be created.", + "type": "string" + } + }, + "type": "object" + }, + "DisksMigrationDisksTargetDefaults": { + "description": "Details for a disk only migration.", + "id": "DisksMigrationDisksTargetDefaults", + "properties": {}, + "type": "object" + }, + "DisksMigrationDisksTargetDetails": { + "description": "Details for a disks-only migration.", + "id": "DisksMigrationDisksTargetDetails", + "properties": {}, + "type": "object" + }, + "DisksMigrationVmTargetDefaults": { + "description": "Details for creation of a VM that migrated data disks will be attached to.", + "id": "DisksMigrationVmTargetDefaults", + "properties": { + "additionalLicenses": { + "description": "Optional. Additional licenses to assign to the VM.", + "items": { + "type": "string" + }, + "type": "array" + }, + "bootDiskDefaults": { + "$ref": "BootDiskDefaults", + "description": "Optional. Details of the boot disk of the VM." + }, + "computeScheduling": { + "$ref": "ComputeScheduling", + "description": "Optional. Compute instance scheduling information (if empty default is used)." + }, + "encryption": { + "$ref": "Encryption", + "description": "Optional. The encryption to apply to the VM." + }, + "hostname": { + "description": "Optional. The hostname to assign to the VM.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A map of labels to associate with the VM.", + "type": "object" + }, + "machineType": { + "description": "Required. The machine type to create the VM with.", + "type": "string" + }, + "machineTypeSeries": { + "description": "Optional. The machine type series to create the VM with. For presentation only.", + "type": "string" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. The metadata key/value pairs to assign to the VM.", + "type": "object" + }, + "networkInterfaces": { + "description": "Optional. NICs to attach to the VM.", + "items": { + "$ref": "NetworkInterface" + }, + "type": "array" + }, + "networkTags": { + "description": "Optional. A list of network tags to associate with the VM.", + "items": { + "type": "string" + }, + "type": "array" + }, + "secureBoot": { + "description": "Optional. Defines whether the instance has Secure Boot enabled. This can be set to true only if the VM boot option is EFI.", + "type": "boolean" + }, + "serviceAccount": { + "description": "Optional. The service account to associate the VM with.", + "type": "string" + }, + "vmName": { + "description": "Required. The name of the VM to create.", + "type": "string" + } + }, + "type": "object" + }, + "DisksMigrationVmTargetDetails": { + "description": "Details for the VM created VM as part of disks migration.", + "id": "DisksMigrationVmTargetDetails", + "properties": { + "vmUri": { + "description": "Output only. The URI of the Compute Engine VM.", + "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", "properties": {}, "type": "object" }, + "Encryption": { + "description": "Encryption message describes the details of the applied encryption.", + "id": "Encryption", + "properties": { + "kmsKey": { + "description": "Required. The name of the encryption key that is stored in Google Cloud KMS.", + "type": "string" + } + }, + "type": "object" + }, "FetchInventoryResponse": { "description": "Response message for fetchInventory.", "id": "FetchInventoryResponse", @@ -3004,6 +3871,10 @@ "$ref": "AwsVmsDetails", "description": "The description of the VMs in a Source of type AWS." }, + "azureVms": { + "$ref": "AzureVmsDetails", + "description": "The description of the VMs in a Source of type Azure." + }, "nextPageToken": { "description": "Output only. A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", "readOnly": true, @@ -3046,6 +3917,20 @@ "description": "Display name is a user defined name for this group which can be updated.", "type": "string" }, + "migrationTargetType": { + "description": "Immutable. The target type of this group.", + "enum": [ + "MIGRATION_TARGET_TYPE_UNSPECIFIED", + "MIGRATION_TARGET_TYPE_GCE", + "MIGRATION_TARGET_TYPE_DISKS" + ], + "enumDescriptions": [ + "Group type is not specified. This defaults to Compute Engine targets.", + "All MigratingVMs in the group must have Compute Engine targets.", + "All MigratingVMs in the group must have Compute Engine Disks targets." + ], + "type": "string" + }, "name": { "description": "Output only. The Group name.", "readOnly": true, @@ -3060,6 +3945,199 @@ }, "type": "object" }, + "ImageImport": { + "description": "ImageImport describes the configuration of the image import to run.", + "id": "ImageImport", + "properties": { + "cloudStorageUri": { + "description": "Immutable. The path to the Cloud Storage file from which the image should be imported.", + "type": "string" + }, + "createTime": { + "description": "Output only. The time the image import was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "diskImageTargetDefaults": { + "$ref": "DiskImageTargetDetails", + "description": "Immutable. Target details for importing a disk image, will be used by ImageImportJob." + }, + "encryption": { + "$ref": "Encryption", + "description": "Immutable. The encryption details used by the image import process during the image adaptation for Compute Engine." + }, + "name": { + "description": "Output only. The resource path of the ImageImport.", + "readOnly": true, + "type": "string" + }, + "recentImageImportJobs": { + "description": "Output only. The result of the most recent runs for this ImageImport. All jobs for this ImageImport can be listed via ListImageImportJobs.", + "items": { + "$ref": "ImageImportJob" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "ImageImportJob": { + "description": "ImageImportJob describes the progress and result of an image import.", + "id": "ImageImportJob", + "properties": { + "cloudStorageUri": { + "description": "Output only. The path to the Cloud Storage file from which the image should be imported.", + "readOnly": true, + "type": "string" + }, + "createTime": { + "description": "Output only. The time the image import was created (as an API call, not when it was actually created in the target).", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "createdResources": { + "description": "Output only. The resource paths of the resources created by the image import job.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "diskImageTargetDetails": { + "$ref": "DiskImageTargetDetails", + "description": "Output only. Target details used to import a disk image.", + "readOnly": true + }, + "endTime": { + "description": "Output only. The time the image import was ended.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "errors": { + "description": "Output only. Provides details on the error that led to the image import state in case of an error.", + "items": { + "$ref": "Status" + }, + "readOnly": true, + "type": "array" + }, + "name": { + "description": "Output only. The resource path of the ImageImportJob.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The state of the image import.", + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "RUNNING", + "SUCCEEDED", + "FAILED", + "CANCELLING", + "CANCELLED" + ], + "enumDescriptions": [ + "The state is unknown.", + "The image import has not yet started.", + "The image import is active and running.", + "The image import has finished successfully.", + "The image import has finished with errors.", + "The image import is being cancelled.", + "The image import was cancelled." + ], + "readOnly": true, + "type": "string" + }, + "steps": { + "description": "Output only. The image import steps list representing its progress.", + "items": { + "$ref": "ImageImportStep" + }, + "readOnly": true, + "type": "array" + }, + "warnings": { + "description": "Output only. Warnings that occurred during the image import.", + "items": { + "$ref": "MigrationWarning" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "ImageImportOsAdaptationParameters": { + "description": "Parameters affecting the OS adaptation process.", + "id": "ImageImportOsAdaptationParameters", + "properties": { + "generalize": { + "description": "Optional. Set to true in order to generalize the imported image. The generalization process enables co-existence of multiple VMs created from the same image. For Windows, generalizing the image removes computer-specific information such as installed drivers and the computer security identifier (SID).", + "type": "boolean" + }, + "licenseType": { + "description": "Optional. Choose which type of license to apply to the imported image.", + "enum": [ + "COMPUTE_ENGINE_LICENSE_TYPE_DEFAULT", + "COMPUTE_ENGINE_LICENSE_TYPE_PAYG", + "COMPUTE_ENGINE_LICENSE_TYPE_BYOL" + ], + "enumDescriptions": [ + "The license type is the default for the OS.", + "The license type is Pay As You Go license type.", + "The license type is Bring Your Own License type." + ], + "type": "string" + } + }, + "type": "object" + }, + "ImageImportStep": { + "description": "ImageImportStep holds information about the image import step progress.", + "id": "ImageImportStep", + "properties": { + "adaptingOs": { + "$ref": "AdaptingOSStep", + "description": "Adapting OS step." + }, + "creatingImage": { + "$ref": "CreatingImageStep", + "description": "Creating image step." + }, + "endTime": { + "description": "Output only. The time the step has ended.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "initializing": { + "$ref": "InitializingImageImportStep", + "description": "Initializing step." + }, + "loadingSourceFiles": { + "$ref": "LoadingImageSourceFilesStep", + "description": "Loading source files step." + }, + "startTime": { + "description": "Output only. The time the step has started.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "InitializingImageImportStep": { + "description": "InitializingImageImportStep contains specific step details.", + "id": "InitializingImageImportStep", + "properties": {}, + "type": "object" + }, "InitializingReplicationStep": { "description": "InitializingReplicationStep contains specific step details.", "id": "InitializingReplicationStep", @@ -3199,6 +4277,62 @@ }, "type": "object" }, + "ListImageImportJobsResponse": { + "description": "Response message for 'ListImageImportJobs' call.", + "id": "ListImageImportJobsResponse", + "properties": { + "imageImportJobs": { + "description": "Output only. The list of target response.", + "items": { + "$ref": "ImageImportJob" + }, + "readOnly": true, + "type": "array" + }, + "nextPageToken": { + "description": "Output only. A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "readOnly": true, + "type": "string" + }, + "unreachable": { + "description": "Output only. Locations that could not be reached.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "ListImageImportsResponse": { + "description": "Response message for 'ListImageImports' call.", + "id": "ListImageImportsResponse", + "properties": { + "imageImports": { + "description": "Output only. The list of target response.", + "items": { + "$ref": "ImageImport" + }, + "readOnly": true, + "type": "array" + }, + "nextPageToken": { + "description": "Output only. A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "readOnly": true, + "type": "string" + }, + "unreachable": { + "description": "Output only. Locations that could not be reached.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -3375,6 +4509,12 @@ }, "type": "object" }, + "LoadingImageSourceFilesStep": { + "description": "LoadingImageSourceFilesStep contains specific step details.", + "id": "LoadingImageSourceFilesStep", + "properties": {}, + "type": "object" + }, "LocalizedMessage": { "description": "Provides a localized error message that is safe to return to the user which can be attached to an RPC error.", "id": "LocalizedMessage", @@ -3391,7 +4531,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -3433,6 +4573,15 @@ "description": "Output only. Details of the VM from an AWS source.", "readOnly": true }, + "azureSourceVmDetails": { + "$ref": "AzureSourceVmDetails", + "description": "Output only. Details of the VM from an Azure source.", + "readOnly": true + }, + "computeEngineDisksTargetDefaults": { + "$ref": "ComputeEngineDisksTargetDefaults", + "description": "Details of the target Persistent Disks in Compute Engine." + }, "computeEngineTargetDefaults": { "$ref": "ComputeEngineTargetDefaults", "description": "Details of the target VM in Compute Engine." @@ -3448,6 +4597,11 @@ "description": "Output only. Details of the current running replication cycle.", "readOnly": true }, + "cutoverForecast": { + "$ref": "CutoverForecast", + "description": "Output only. Provides details of future CutoverJobs of a MigratingVm. Set to empty when cutover forecast is unavailable.", + "readOnly": true + }, "description": { "description": "The description attached to the migrating VM by the user.", "type": "string" @@ -3473,6 +4627,11 @@ "description": "The labels of the migrating VM.", "type": "object" }, + "lastReplicationCycle": { + "$ref": "ReplicationCycle", + "description": "Output only. Details of the last replication cycle. This will be updated whenever a replication cycle is finished and is not to be confused with last_sync which is only updated on successful replication cycles.", + "readOnly": true + }, "lastSync": { "$ref": "ReplicationSync", "description": "Output only. The most updated snapshot created time in the source that finished replication.", @@ -3551,6 +4710,11 @@ "format": "google-datetime", "readOnly": true, "type": "string" + }, + "vmwareSourceVmDetails": { + "$ref": "VmwareSourceVmDetails", + "description": "Output only. Details of the VM from a Vmware source.", + "readOnly": true } }, "type": "object" @@ -3576,19 +4740,21 @@ "CLONE_ERROR", "CUTOVER_ERROR", "UTILIZATION_REPORT_ERROR", - "APPLIANCE_UPGRADE_ERROR" + "APPLIANCE_UPGRADE_ERROR", + "IMAGE_IMPORT_ERROR" ], "enumDescriptions": [ "Default value. This value is not used.", - "Migrate for Compute encountered an unknown error.", - "Migrate for Compute encountered an error while validating replication source health.", - "Migrate for Compute encountered an error during source data operation.", - "Migrate for Compute encountered an error during target data operation.", - "Migrate for Compute encountered an error during OS adaptation.", - "Migrate for Compute encountered an error in clone operation.", - "Migrate for Compute encountered an error in cutover operation.", - "Migrate for Compute encountered an error during utilization report creation.", - "Migrate for Compute encountered an error during appliance upgrade." + "Migrate to Virtual Machines encountered an unknown error.", + "Migrate to Virtual Machines encountered an error while validating replication source health.", + "Migrate to Virtual Machines encountered an error during source data operation.", + "Migrate to Virtual Machines encountered an error during target data operation.", + "Migrate to Virtual Machines encountered an error during OS adaptation.", + "Migrate to Virtual Machines encountered an error in clone operation.", + "Migrate to Virtual Machines encountered an error in cutover operation.", + "Migrate to Virtual Machines encountered an error during utilization report creation.", + "Migrate to Virtual Machines encountered an error during appliance upgrade.", + "Migrate to Virtual Machines encountered an error in image import operation." ], "readOnly": true, "type": "string" @@ -3615,6 +4781,45 @@ }, "type": "object" }, + "MigrationWarning": { + "description": "Represents migration resource warning information that can be used with google.rpc.Status message. MigrationWarning is used to present the user with warning information in migration operations.", + "id": "MigrationWarning", + "properties": { + "actionItem": { + "$ref": "LocalizedMessage", + "description": "Suggested action for solving the warning." + }, + "code": { + "description": "The warning code.", + "enum": [ + "WARNING_CODE_UNSPECIFIED", + "ADAPTATION_WARNING" + ], + "enumDescriptions": [ + "Default value. This value is not used.", + "A warning originated from OS Adaptation." + ], + "type": "string" + }, + "helpLinks": { + "description": "URL(s) pointing to additional information on handling the current warning.", + "items": { + "$ref": "Link" + }, + "type": "array" + }, + "warningMessage": { + "$ref": "LocalizedMessage", + "description": "The localized warning message." + }, + "warningTime": { + "description": "The time the warning occurred.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "NetworkInterface": { "description": "NetworkInterface represents a NIC of a VM.", "id": "NetworkInterface", @@ -3638,6 +4843,49 @@ }, "type": "object" }, + "OSDescription": { + "description": "A message describing the VM's OS. Including OS, Publisher, Offer and Plan if applicable.", + "id": "OSDescription", + "properties": { + "offer": { + "description": "OS offer.", + "type": "string" + }, + "plan": { + "description": "OS plan.", + "type": "string" + }, + "publisher": { + "description": "OS publisher.", + "type": "string" + }, + "type": { + "description": "OS type.", + "type": "string" + } + }, + "type": "object" + }, + "OSDisk": { + "description": "A message describing the OS disk.", + "id": "OSDisk", + "properties": { + "name": { + "description": "The disk's full name.", + "type": "string" + }, + "sizeGb": { + "description": "The disk's size in GB.", + "format": "int32", + "type": "integer" + }, + "type": { + "description": "The disk's type.", + "type": "string" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -3667,7 +4915,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" } }, @@ -3723,6 +4971,69 @@ "properties": {}, "type": "object" }, + "PersistentDisk": { + "description": "Details of a created Persistent Disk.", + "id": "PersistentDisk", + "properties": { + "diskUri": { + "description": "The URI of the Persistent Disk.", + "type": "string" + }, + "sourceDiskNumber": { + "description": "The ordinal number of the source VM disk.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "PersistentDiskDefaults": { + "description": "Details for creation of a Persistent Disk.", + "id": "PersistentDiskDefaults", + "properties": { + "additionalLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "A map of labels to associate with the Persistent Disk.", + "type": "object" + }, + "diskName": { + "description": "Optional. The name of the Persistent Disk to create.", + "type": "string" + }, + "diskType": { + "description": "The disk type to use.", + "enum": [ + "COMPUTE_ENGINE_DISK_TYPE_UNSPECIFIED", + "COMPUTE_ENGINE_DISK_TYPE_STANDARD", + "COMPUTE_ENGINE_DISK_TYPE_SSD", + "COMPUTE_ENGINE_DISK_TYPE_BALANCED" + ], + "enumDescriptions": [ + "An unspecified disk type. Will be used as STANDARD.", + "A Standard disk type.", + "SSD hard disk type.", + "An alternative to SSD persistent disks that balance performance and cost." + ], + "type": "string" + }, + "encryption": { + "$ref": "Encryption", + "description": "Optional. The encryption to apply to the disk." + }, + "sourceDiskNumber": { + "description": "Required. The ordinal number of the source VM disk.", + "format": "int32", + "type": "integer" + }, + "vmAttachmentDetails": { + "$ref": "VmAttachmentDetails", + "description": "Optional. Details for attachment of the disk to a VM. Used when the disk is set to be attacked to a target VM." + } + }, + "type": "object" + }, "PostProcessingStep": { "description": "PostProcessingStep contains specific step details.", "id": "PostProcessingStep", @@ -3796,6 +5107,7 @@ "type": "string" }, "progressPercent": { + "deprecated": true, "description": "The current progress in percentage of this cycle. Was replaced by 'steps' field, which breaks down the cycle progression more accurately.", "format": "int32", "type": "integer" @@ -3834,6 +5146,14 @@ "description": "The accumulated duration the replication cycle was paused.", "format": "google-duration", "type": "string" + }, + "warnings": { + "description": "Output only. Warnings that occurred during the cycle.", + "items": { + "$ref": "MigrationWarning" + }, + "readOnly": true, + "type": "array" } }, "type": "object" @@ -3918,6 +5238,10 @@ "$ref": "AwsSourceDetails", "description": "AWS type source details." }, + "azure": { + "$ref": "AzureSourceDetails", + "description": "Azure type source details." + }, "createTime": { "description": "Output only. The create time timestamp.", "format": "google-datetime", @@ -3928,6 +5252,10 @@ "description": "User-provided description of the source.", "type": "string" }, + "encryption": { + "$ref": "Encryption", + "description": "Optional. Immutable. The encryption details of the source data stored by the service." + }, "labels": { "additionalProperties": { "type": "string" @@ -4021,7 +5349,7 @@ "type": "string" }, "project": { - "description": "The target project ID (number) or project name.", + "description": "Required. The target project ID (number) or project name.", "type": "string" }, "updateTime": { @@ -4038,7 +5366,7 @@ "id": "UpgradeApplianceRequest", "properties": { "requestId": { - "description": "A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "type": "string" } }, @@ -4169,6 +5497,48 @@ }, "type": "object" }, + "VmAttachmentDetails": { + "description": "Details for attachment of the disk to a VM.", + "id": "VmAttachmentDetails", + "properties": { + "deviceName": { + "description": "Optional. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.", + "type": "string" + } + }, + "type": "object" + }, + "VmCapabilities": { + "description": "Migrating VM source information about the VM capabilities needed for some Compute Engine features.", + "id": "VmCapabilities", + "properties": { + "lastOsCapabilitiesUpdateTime": { + "description": "Output only. The last time OS capabilities list was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "osCapabilities": { + "description": "Output only. Unordered list. List of certain VM OS capabilities needed for some Compute Engine features.", + "items": { + "enum": [ + "OS_CAPABILITY_UNSPECIFIED", + "OS_CAPABILITY_NVME_STORAGE_ACCESS", + "OS_CAPABILITY_GVNIC_NETWORK_INTERFACE" + ], + "enumDescriptions": [ + "This is for API compatibility only and is not in use.", + "NVMe driver installed and the VM can use NVMe PD or local SSD.", + "gVNIC virtual NIC driver supported." + ], + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "VmUtilizationInfo": { "description": "Utilization information of a single VM.", "id": "VmUtilizationInfo", @@ -4235,6 +5605,27 @@ }, "type": "object" }, + "VmwareDiskDetails": { + "description": "The details of a Vmware VM disk.", + "id": "VmwareDiskDetails", + "properties": { + "diskNumber": { + "description": "The ordinal number of the disk.", + "format": "int32", + "type": "integer" + }, + "label": { + "description": "The disk label.", + "type": "string" + }, + "sizeGb": { + "description": "Size in GB.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "VmwareSourceDetails": { "description": "VmwareSourceDetails message describes a specific source details for the vmware source type.", "id": "VmwareSourceDetails", @@ -4243,6 +5634,10 @@ "description": "Input only. The credentials password. This is write only and can not be read in a GET operation.", "type": "string" }, + "resolvedVcenterHost": { + "description": "The hostname of the vcenter.", + "type": "string" + }, "thumbprint": { "description": "The thumbprint representing the certificate for the vcenter.", "type": "string" @@ -4258,6 +5653,44 @@ }, "type": "object" }, + "VmwareSourceVmDetails": { + "description": "Represent the source Vmware VM details.", + "id": "VmwareSourceVmDetails", + "properties": { + "committedStorageBytes": { + "description": "The total size of the disks being migrated in bytes.", + "format": "int64", + "type": "string" + }, + "disks": { + "description": "The disks attached to the source VM.", + "items": { + "$ref": "VmwareDiskDetails" + }, + "type": "array" + }, + "firmware": { + "description": "The firmware type of the source VM.", + "enum": [ + "FIRMWARE_UNSPECIFIED", + "EFI", + "BIOS" + ], + "enumDescriptions": [ + "The firmware is unknown.", + "The firmware is EFI.", + "The firmware is BIOS." + ], + "type": "string" + }, + "vmCapabilitiesInfo": { + "$ref": "VmCapabilities", + "description": "Output only. Information about VM capabilities needed for some Compute Engine features.", + "readOnly": true + } + }, + "type": "object" + }, "VmwareVmDetails": { "description": "VmwareVmDetails describes a VM in vCenter.", "id": "VmwareVmDetails", diff --git a/etc/api/vmmigration/v1alpha1/vmmigration-api.json b/etc/api/vmmigration/v1alpha1/vmmigration-api.json index 4d9200905b..1d8afcbbbf 100644 --- a/etc/api/vmmigration/v1alpha1/vmmigration-api.json +++ b/etc/api/vmmigration/v1alpha1/vmmigration-api.json @@ -229,7 +229,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" } @@ -262,7 +262,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 after the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "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).", "location": "query", "type": "string" } @@ -363,7 +363,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" }, @@ -415,6 +415,254 @@ } } }, + "imageImports": { + "methods": { + "create": { + "description": "Creates a new ImageImport in a given project.", + "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/imageImports", + "httpMethod": "POST", + "id": "vmmigration.projects.locations.imageImports.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "imageImportId": { + "description": "Required. The image import identifier. This value maximum length is 63 characters, and valid characters are /a-z-/. It must start with an english letter and must not end with a hyphen.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The ImageImport's parent.", + "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).", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha1/{+parent}/imageImports", + "request": { + "$ref": "ImageImport" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single ImageImport.", + "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/imageImports/{imageImportsId}", + "httpMethod": "DELETE", + "id": "vmmigration.projects.locations.imageImports.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The ImageImport name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/imageImports/[^/]+$", + "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single ImageImport.", + "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/imageImports/{imageImportsId}", + "httpMethod": "GET", + "id": "vmmigration.projects.locations.imageImports.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The ImageImport name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/imageImports/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha1/{+name}", + "response": { + "$ref": "ImageImport" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists ImageImports in a given project.", + "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/imageImports", + "httpMethod": "GET", + "id": "vmmigration.projects.locations.imageImports.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. The filter request (according to https://google.aip.dev/160).", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. The order by fields for the result (according to https://google.aip.dev/132#ordering). Currently ordering is only possible by \"name\" field.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of targets to return. The service may return fewer than this value. If unspecified, at most 500 targets 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 `ListImageImports` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListImageImports` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent, which owns this collection of targets.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha1/{+parent}/imageImports", + "response": { + "$ref": "ListImageImportsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "imageImportJobs": { + "methods": { + "cancel": { + "description": "Initiates the cancellation of a running clone job.", + "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/imageImports/{imageImportsId}/imageImportJobs/{imageImportJobsId}:cancel", + "httpMethod": "POST", + "id": "vmmigration.projects.locations.imageImports.imageImportJobs.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The image import job id.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/imageImports/[^/]+/imageImportJobs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha1/{+name}:cancel", + "request": { + "$ref": "CancelImageImportJobRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single ImageImportJob.", + "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/imageImports/{imageImportsId}/imageImportJobs/{imageImportJobsId}", + "httpMethod": "GET", + "id": "vmmigration.projects.locations.imageImports.imageImportJobs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The ImageImportJob name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/imageImports/[^/]+/imageImportJobs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha1/{+name}", + "response": { + "$ref": "ImageImportJob" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists ImageImportJobs in a given project.", + "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/imageImports/{imageImportsId}/imageImportJobs", + "httpMethod": "GET", + "id": "vmmigration.projects.locations.imageImports.imageImportJobs.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. The filter request (according to https://google.aip.dev/160).", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. The order by fields for the result (according to https://google.aip.dev/132#ordering). Currently ordering is only possible by \"name\" field.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of targets to return. The service may return fewer than this value. If unspecified, at most 500 targets 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 `ListImageImportJobs` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListImageImportJobs` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent, which owns this collection of targets.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/imageImports/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha1/{+parent}/imageImportJobs", + "response": { + "$ref": "ListImageImportJobsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "operations": { "methods": { "cancel": { @@ -496,7 +744,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "vmmigration.projects.locations.operations.list", @@ -557,7 +805,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" }, @@ -595,7 +843,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 after the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "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).", "location": "query", "type": "string" } @@ -737,7 +985,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" }, @@ -785,7 +1033,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" } @@ -818,7 +1066,7 @@ "type": "string" }, "requestId": { - "description": "A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" } @@ -956,7 +1204,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" } @@ -1143,7 +1391,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" }, @@ -1303,7 +1551,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" } @@ -1345,7 +1593,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": "v1alpha1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}/migratingVms/{migratingVmsId}/cloneJobs", "httpMethod": "GET", "id": "vmmigration.projects.locations.sources.migratingVms.cloneJobs.list", @@ -1444,7 +1692,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" } @@ -1486,7 +1734,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": "v1alpha1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}/migratingVms/{migratingVmsId}/cutoverJobs", "httpMethod": "GET", "id": "vmmigration.projects.locations.sources.migratingVms.cutoverJobs.list", @@ -1629,7 +1877,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" }, @@ -1667,7 +1915,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 after the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "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).", "location": "query", "type": "string" } @@ -1804,7 +2052,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" }, @@ -1842,7 +2090,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 after the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "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).", "location": "query", "type": "string" } @@ -1943,7 +2191,7 @@ "type": "string" }, "requestId": { - "description": "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 t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "location": "query", "type": "string" }, @@ -1972,7 +2220,7 @@ } } }, - "revision": "20230119", + "revision": "20240222", "rootUrl": "https://vmmigration.googleapis.com/", "schemas": { "AccessKeyCredentials": { @@ -1986,6 +2234,10 @@ "secretAccessKey": { "description": "Input only. AWS secret access key.", "type": "string" + }, + "sessionToken": { + "description": "Input only. AWS session token. Used only when AWS security token service (STS) is responsible for creating the temporary credentials.", + "type": "string" } }, "type": "object" @@ -2072,6 +2324,27 @@ }, "type": "object" }, + "AwsDiskDetails": { + "description": "The details of an AWS instance disk.", + "id": "AwsDiskDetails", + "properties": { + "diskNumber": { + "description": "The ordinal number of the disk.", + "format": "int32", + "type": "integer" + }, + "sizeGb": { + "description": "Size in GB.", + "format": "int64", + "type": "string" + }, + "volumeId": { + "description": "AWS volume ID.", + "type": "string" + } + }, + "type": "object" + }, "AwsSecurityGroup": { "description": "AwsSecurityGroup describes a security group of an AWS VM.", "id": "AwsSecurityGroup", @@ -2159,6 +2432,13 @@ "format": "int64", "type": "string" }, + "disks": { + "description": "The disks attached to the source VM.", + "items": { + "$ref": "AwsDiskDetails" + }, + "type": "array" + }, "firmware": { "description": "The firmware type of the source VM.", "enum": [ @@ -2172,6 +2452,11 @@ "The firmware is BIOS." ], "type": "string" + }, + "vmCapabilitiesInfo": { + "$ref": "VmCapabilities", + "description": "Output only. Information about VM capabilities needed for some Compute Engine features.", + "readOnly": true } }, "type": "object" @@ -2328,6 +2613,270 @@ }, "type": "object" }, + "AzureDiskDetails": { + "description": "The details of an Azure VM disk.", + "id": "AzureDiskDetails", + "properties": { + "diskId": { + "description": "Azure disk ID.", + "type": "string" + }, + "diskNumber": { + "description": "The ordinal number of the disk.", + "format": "int32", + "type": "integer" + }, + "sizeGb": { + "description": "Size in GB.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "AzureSourceDetails": { + "description": "AzureSourceDetails message describes a specific source details for the Azure source type.", + "id": "AzureSourceDetails", + "properties": { + "azureLocation": { + "description": "Immutable. The Azure location (region) that the source VMs will be migrated from.", + "type": "string" + }, + "clientSecretCreds": { + "$ref": "ClientSecretCredentials", + "description": "Azure Credentials using tenant ID, client ID and secret." + }, + "error": { + "$ref": "Status", + "description": "Output only. Provides details on the state of the Source in case of an error.", + "readOnly": true + }, + "migrationResourcesUserTags": { + "additionalProperties": { + "type": "string" + }, + "description": "User specified tags to add to every M2VM generated resource in Azure. These tags will be set in addition to the default tags that are set as part of the migration process. The tags must not begin with the reserved prefix `m4ce` or `m2vm`.", + "type": "object" + }, + "resourceGroupId": { + "description": "Output only. The ID of the Azure resource group that contains all resources related to the migration process of this source.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. State of the source as determined by the health check.", + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "FAILED", + "ACTIVE" + ], + "enumDescriptions": [ + "The state is unknown. This is used for API compatibility only and is not used by the system.", + "The state was not sampled by the health checks yet.", + "The source is available but might not be usable yet due to invalid credentials or another reason. The error message will contain further details.", + "The source exists and its credentials were verified." + ], + "readOnly": true, + "type": "string" + }, + "subscriptionId": { + "description": "Immutable. Azure subscription ID.", + "type": "string" + } + }, + "type": "object" + }, + "AzureSourceVmDetails": { + "description": "Represent the source Azure VM details.", + "id": "AzureSourceVmDetails", + "properties": { + "committedStorageBytes": { + "description": "The total size of the disks being migrated in bytes.", + "format": "int64", + "type": "string" + }, + "disks": { + "description": "The disks attached to the source VM.", + "items": { + "$ref": "AzureDiskDetails" + }, + "type": "array" + }, + "firmware": { + "description": "The firmware type of the source VM.", + "enum": [ + "FIRMWARE_UNSPECIFIED", + "EFI", + "BIOS" + ], + "enumDescriptions": [ + "The firmware is unknown.", + "The firmware is EFI.", + "The firmware is BIOS." + ], + "type": "string" + }, + "vmCapabilitiesInfo": { + "$ref": "VmCapabilities", + "description": "Output only. Information about VM capabilities needed for some Compute Engine features.", + "readOnly": true + } + }, + "type": "object" + }, + "AzureVmDetails": { + "description": "AzureVmDetails describes a VM in Azure.", + "id": "AzureVmDetails", + "properties": { + "bootOption": { + "description": "The VM Boot Option.", + "enum": [ + "BOOT_OPTION_UNSPECIFIED", + "EFI", + "BIOS" + ], + "enumDescriptions": [ + "The boot option is unknown.", + "The boot option is UEFI.", + "The boot option is BIOS." + ], + "type": "string" + }, + "committedStorageMb": { + "description": "The total size of the storage allocated to the VM in MB.", + "format": "int64", + "type": "string" + }, + "computerName": { + "description": "The VM's ComputerName.", + "type": "string" + }, + "cpuCount": { + "description": "The number of cpus the VM has.", + "format": "int32", + "type": "integer" + }, + "diskCount": { + "description": "The number of disks the VM has, including OS disk.", + "format": "int32", + "type": "integer" + }, + "disks": { + "description": "Description of the data disks.", + "items": { + "$ref": "Disk" + }, + "type": "array" + }, + "memoryMb": { + "description": "The memory size of the VM in MB.", + "format": "int32", + "type": "integer" + }, + "osDescription": { + "$ref": "OSDescription", + "description": "Description of the OS." + }, + "osDisk": { + "$ref": "OSDisk", + "description": "Description of the OS disk." + }, + "powerState": { + "description": "The power state of the VM at the moment list was taken.", + "enum": [ + "POWER_STATE_UNSPECIFIED", + "STARTING", + "RUNNING", + "STOPPING", + "STOPPED", + "DEALLOCATING", + "DEALLOCATED", + "UNKNOWN" + ], + "enumDescriptions": [ + "Power state is not specified.", + "The VM is starting.", + "The VM is running.", + "The VM is stopping.", + "The VM is stopped.", + "The VM is deallocating.", + "The VM is deallocated.", + "The VM's power state is unknown." + ], + "type": "string" + }, + "tags": { + "additionalProperties": { + "type": "string" + }, + "description": "The tags of the VM.", + "type": "object" + }, + "vmId": { + "description": "The VM full path in Azure.", + "type": "string" + }, + "vmSize": { + "description": "VM size as configured in Azure. Determines the VM's hardware spec.", + "type": "string" + } + }, + "type": "object" + }, + "AzureVmsDetails": { + "description": "AzureVmsDetails describes VMs in Azure.", + "id": "AzureVmsDetails", + "properties": { + "details": { + "description": "The details of the Azure VMs.", + "items": { + "$ref": "AzureVmDetails" + }, + "type": "array" + } + }, + "type": "object" + }, + "BootDiskDefaults": { + "description": "BootDiskDefaults hold information about the boot disk of a VM.", + "id": "BootDiskDefaults", + "properties": { + "deviceName": { + "description": "Optional. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.", + "type": "string" + }, + "diskName": { + "description": "Optional. The name of the disk.", + "type": "string" + }, + "diskType": { + "description": "Optional. The type of disk provisioning to use for the VM.", + "enum": [ + "COMPUTE_ENGINE_DISK_TYPE_UNSPECIFIED", + "COMPUTE_ENGINE_DISK_TYPE_STANDARD", + "COMPUTE_ENGINE_DISK_TYPE_SSD", + "COMPUTE_ENGINE_DISK_TYPE_BALANCED" + ], + "enumDescriptions": [ + "An unspecified disk type. Will be used as STANDARD.", + "A Standard disk type.", + "SSD hard disk type.", + "An alternative to SSD persistent disks that balance performance and cost." + ], + "type": "string" + }, + "encryption": { + "$ref": "Encryption", + "description": "Optional. The encryption to apply to the boot disk." + }, + "image": { + "$ref": "DiskImageDefaults", + "description": "The image to use when creating the disk." + } + }, + "type": "object" + }, "CancelCloneJobRequest": { "description": "Request message for 'CancelCloneJob' request.", "id": "CancelCloneJobRequest", @@ -2340,16 +2889,46 @@ "properties": {}, "type": "object" }, + "CancelImageImportJobRequest": { + "description": "Request message for 'CancelImageImportJob' request.", + "id": "CancelImageImportJobRequest", + "properties": {}, + "type": "object" + }, "CancelOperationRequest": { "description": "The request message for Operations.CancelOperation.", "id": "CancelOperationRequest", "properties": {}, "type": "object" }, + "ClientSecretCredentials": { + "description": "Message describing Azure Credentials using tenant ID, client ID and secret.", + "id": "ClientSecretCredentials", + "properties": { + "clientId": { + "description": "Azure client ID.", + "type": "string" + }, + "clientSecret": { + "description": "Input only. Azure client secret.", + "type": "string" + }, + "tenantId": { + "description": "Azure tenant ID.", + "type": "string" + } + }, + "type": "object" + }, "CloneJob": { "description": "CloneJob describes the process of creating a clone of a MigratingVM to the requested target based on the latest successful uploaded snapshots. While the migration cycles of a MigratingVm take place, it is possible to verify the uploaded VM can be started in the cloud, by creating a clone. The clone can be created without any downtime, and it is created using the latest snapshots which are already in the cloud. The cloneJob is only responsible for its work, not its products, which means once it is finished, it will never touch the instance it created. It will only delete it in case of the CloneJob being cancelled or upon failure to clone.", "id": "CloneJob", "properties": { + "computeEngineDisksTargetDetails": { + "$ref": "ComputeEngineDisksTargetDetails", + "description": "Output only. Details of the target Persistent Disks in Compute Engine.", + "readOnly": true + }, "computeEngineTargetDetails": { "$ref": "ComputeEngineTargetDetails", "description": "Output only. Details of the target VM in Compute Engine.", @@ -2357,6 +2936,7 @@ }, "computeEngineVmDetails": { "$ref": "TargetVMDetails", + "deprecated": true, "description": "Output only. Details of the VM in Compute Engine. Deprecated: Use compute_engine_target_details instead.", "readOnly": true }, @@ -2423,6 +3003,7 @@ }, "targetDetails": { "$ref": "TargetVMDetails", + "deprecated": true, "description": "Output only. Details of the VM to create as the target of this clone job. Deprecated: Use compute_engine_target_details instead.", "readOnly": true } @@ -2458,6 +3039,58 @@ }, "type": "object" }, + "ComputeEngineDisksTargetDefaults": { + "description": "ComputeEngineDisksTargetDefaults is a collection of details for creating Persistent Disks in a target Compute Engine project.", + "id": "ComputeEngineDisksTargetDefaults", + "properties": { + "disks": { + "description": "The details of each Persistent Disk to create.", + "items": { + "$ref": "PersistentDiskDefaults" + }, + "type": "array" + }, + "disksTargetDefaults": { + "$ref": "DisksMigrationDisksTargetDefaults", + "description": "Details of the disk only migration target." + }, + "targetProject": { + "description": "The full path of the resource of type TargetProject which represents the Compute Engine project in which to create the Persistent Disks.", + "type": "string" + }, + "vmTargetDefaults": { + "$ref": "DisksMigrationVmTargetDefaults", + "description": "Details of the VM migration target." + }, + "zone": { + "description": "The zone in which to create the Persistent Disks.", + "type": "string" + } + }, + "type": "object" + }, + "ComputeEngineDisksTargetDetails": { + "description": "ComputeEngineDisksTargetDetails is a collection of created Persistent Disks details.", + "id": "ComputeEngineDisksTargetDetails", + "properties": { + "disks": { + "description": "The details of each created Persistent Disk.", + "items": { + "$ref": "PersistentDisk" + }, + "type": "array" + }, + "disksTargetDetails": { + "$ref": "DisksMigrationDisksTargetDetails", + "description": "Details of the disks-only migration target." + }, + "vmTargetDetails": { + "$ref": "DisksMigrationVmTargetDetails", + "description": "Details for the VM the migrated data disks are attached to." + } + }, + "type": "object" + }, "ComputeEngineTargetDefaults": { "description": "ComputeEngineTargetDefaults is a collection of details for creating a VM in a target Compute Engine project.", "id": "ComputeEngineTargetDefaults", @@ -2475,7 +3108,7 @@ "readOnly": true }, "bootOption": { - "description": "Output only. The VM Boot Option, as set in the source vm.", + "description": "Output only. The VM Boot Option, as set in the source VM.", "enum": [ "COMPUTE_ENGINE_BOOT_OPTION_UNSPECIFIED", "COMPUTE_ENGINE_BOOT_OPTION_EFI", @@ -2509,6 +3142,10 @@ ], "type": "string" }, + "encryption": { + "$ref": "Encryption", + "description": "Optional. Immutable. The encryption to apply to the VM disks." + }, "hostname": { "description": "The hostname to assign to the VM.", "type": "string" @@ -2557,14 +3194,14 @@ "type": "array" }, "networkTags": { - "description": "A map of network tags to associate with the VM.", + "description": "A list of network tags to associate with the VM.", "items": { "type": "string" }, "type": "array" }, "secureBoot": { - "description": "Defines whether the instance has Secure Boot enabled. This can be set to true only if the vm boot option is EFI.", + "description": "Defines whether the instance has Secure Boot enabled. This can be set to true only if the VM boot option is EFI.", "type": "boolean" }, "serviceAccount": { @@ -2602,7 +3239,7 @@ "description": "The OS license returned from the adaptation module report." }, "bootOption": { - "description": "The VM Boot Option, as set in the source vm.", + "description": "The VM Boot Option, as set in the source VM.", "enum": [ "COMPUTE_ENGINE_BOOT_OPTION_UNSPECIFIED", "COMPUTE_ENGINE_BOOT_OPTION_EFI", @@ -2635,6 +3272,10 @@ ], "type": "string" }, + "encryption": { + "$ref": "Encryption", + "description": "Optional. The encryption to apply to the VM disks." + }, "hostname": { "description": "The hostname to assign to the VM.", "type": "string" @@ -2683,7 +3324,7 @@ "type": "array" }, "networkTags": { - "description": "A map of network tags to associate with the VM.", + "description": "A list of network tags to associate with the VM.", "items": { "type": "string" }, @@ -2694,7 +3335,7 @@ "type": "string" }, "secureBoot": { - "description": "Defines whether the instance has Secure Boot enabled. This can be set to true only if the vm boot option is EFI.", + "description": "Defines whether the instance has Secure Boot enabled. This can be set to true only if the VM boot option is EFI.", "type": "boolean" }, "serviceAccount": { @@ -2717,6 +3358,7 @@ "id": "ComputeScheduling", "properties": { "automaticRestart": { + "deprecated": true, "type": "boolean" }, "minNodeCpus": { @@ -2762,10 +3404,34 @@ }, "type": "object" }, + "CreatingImageStep": { + "description": "CreatingImageStep contains specific step details.", + "id": "CreatingImageStep", + "properties": {}, + "type": "object" + }, + "CutoverForecast": { + "description": "CutoverForecast holds information about future CutoverJobs of a MigratingVm.", + "id": "CutoverForecast", + "properties": { + "estimatedCutoverJobDuration": { + "description": "Output only. Estimation of the CutoverJob duration.", + "format": "google-duration", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "CutoverJob": { "description": "CutoverJob message describes a cutover of a migrating VM. The CutoverJob is the operation of shutting down the VM, creating a snapshot and clonning the VM using the replicated snapshot.", "id": "CutoverJob", "properties": { + "computeEngineDisksTargetDetails": { + "$ref": "ComputeEngineDisksTargetDetails", + "description": "Output only. Details of the target Persistent Disks in Compute Engine.", + "readOnly": true + }, "computeEngineTargetDetails": { "$ref": "ComputeEngineTargetDetails", "description": "Output only. Details of the target VM in Compute Engine.", @@ -2773,6 +3439,7 @@ }, "computeEngineVmDetails": { "$ref": "TargetVMDetails", + "deprecated": true, "description": "Output only. Details of the VM in Compute Engine. Deprecated: Use compute_engine_target_details instead.", "readOnly": true }, @@ -2799,6 +3466,7 @@ "type": "string" }, "progress": { + "deprecated": true, "description": "Output only. The current progress in percentage of the cutover job.", "format": "int32", "readOnly": true, @@ -2856,6 +3524,7 @@ }, "targetDetails": { "$ref": "TargetVMDetails", + "deprecated": true, "description": "Output only. Details of the VM to create as the target of this cutover job. Deprecated: Use compute_engine_target_details instead.", "readOnly": true } @@ -2928,6 +3597,12 @@ }, "type": "object" }, + "DataDiskImageImport": { + "description": "Mentions that the image import is not using OS adaptation process.", + "id": "DataDiskImageImport", + "properties": {}, + "type": "object" + }, "DatacenterConnector": { "description": "DatacenterConnector message describes a connector between the Source and Google Cloud, which is installed on a vmware datacenter (an OVA vm installed by the user) to connect the Datacenter to Google Cloud and support vm migration data transfer.", "id": "DatacenterConnector", @@ -3019,12 +3694,210 @@ }, "type": "object" }, + "Disk": { + "description": "A message describing a data disk.", + "id": "Disk", + "properties": { + "lun": { + "description": "The disk's Logical Unit Number (LUN).", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "The disk name.", + "type": "string" + }, + "sizeGb": { + "description": "The disk size in GB.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "DiskImageDefaults": { + "description": "Contains details about the image source used to create the disk.", + "id": "DiskImageDefaults", + "properties": { + "sourceImage": { + "description": "Required. The Image resource used when creating the disk.", + "type": "string" + } + }, + "type": "object" + }, + "DiskImageTargetDetails": { + "description": "The target details of the image resource that will be created by the import job.", + "id": "DiskImageTargetDetails", + "properties": { + "additionalLicenses": { + "description": "Optional. Additional licenses to assign to the image.", + "items": { + "type": "string" + }, + "type": "array" + }, + "dataDiskImageImport": { + "$ref": "DataDiskImageImport", + "description": "Optional. Use to skip OS adaptation process." + }, + "description": { + "description": "Optional. An optional description of the image.", + "type": "string" + }, + "encryption": { + "$ref": "Encryption", + "description": "Optional. Immutable. The encryption to apply to the image." + }, + "familyName": { + "description": "Optional. The name of the image family to which the new image belongs.", + "type": "string" + }, + "imageName": { + "description": "Required. The name of the image to be created.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A map of labels to associate with the image.", + "type": "object" + }, + "osAdaptationParameters": { + "$ref": "ImageImportOsAdaptationParameters", + "description": "Optional. Use to set the parameters relevant for the OS adaptation process." + }, + "singleRegionStorage": { + "description": "Optional. Set to true to set the image storageLocations to the single region of the import job. When false, the closest multi-region is selected.", + "type": "boolean" + }, + "targetProject": { + "description": "Required. Reference to the TargetProject resource that represents the target project in which the imported image will be created.", + "type": "string" + } + }, + "type": "object" + }, + "DisksMigrationDisksTargetDefaults": { + "description": "Details for a disk only migration.", + "id": "DisksMigrationDisksTargetDefaults", + "properties": {}, + "type": "object" + }, + "DisksMigrationDisksTargetDetails": { + "description": "Details for a disks-only migration.", + "id": "DisksMigrationDisksTargetDetails", + "properties": {}, + "type": "object" + }, + "DisksMigrationVmTargetDefaults": { + "description": "Details for creation of a VM that migrated data disks will be attached to.", + "id": "DisksMigrationVmTargetDefaults", + "properties": { + "additionalLicenses": { + "description": "Optional. Additional licenses to assign to the VM.", + "items": { + "type": "string" + }, + "type": "array" + }, + "bootDiskDefaults": { + "$ref": "BootDiskDefaults", + "description": "Optional. Details of the boot disk of the VM." + }, + "computeScheduling": { + "$ref": "ComputeScheduling", + "description": "Optional. Compute instance scheduling information (if empty default is used)." + }, + "encryption": { + "$ref": "Encryption", + "description": "Optional. The encryption to apply to the VM." + }, + "hostname": { + "description": "Optional. The hostname to assign to the VM.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A map of labels to associate with the VM.", + "type": "object" + }, + "machineType": { + "description": "Required. The machine type to create the VM with.", + "type": "string" + }, + "machineTypeSeries": { + "description": "Optional. The machine type series to create the VM with. For presentation only.", + "type": "string" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. The metadata key/value pairs to assign to the VM.", + "type": "object" + }, + "networkInterfaces": { + "description": "Optional. NICs to attach to the VM.", + "items": { + "$ref": "NetworkInterface" + }, + "type": "array" + }, + "networkTags": { + "description": "Optional. A list of network tags to associate with the VM.", + "items": { + "type": "string" + }, + "type": "array" + }, + "secureBoot": { + "description": "Optional. Defines whether the instance has Secure Boot enabled. This can be set to true only if the VM boot option is EFI.", + "type": "boolean" + }, + "serviceAccount": { + "description": "Optional. The service account to associate the VM with.", + "type": "string" + }, + "vmName": { + "description": "Required. The name of the VM to create.", + "type": "string" + } + }, + "type": "object" + }, + "DisksMigrationVmTargetDetails": { + "description": "Details for the VM created VM as part of disks migration.", + "id": "DisksMigrationVmTargetDetails", + "properties": { + "vmUri": { + "description": "Output only. The URI of the Compute Engine VM.", + "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", "properties": {}, "type": "object" }, + "Encryption": { + "description": "Encryption message describes the details of the applied encryption.", + "id": "Encryption", + "properties": { + "kmsKey": { + "description": "Required. The name of the encryption key that is stored in Google Cloud KMS.", + "type": "string" + } + }, + "type": "object" + }, "FetchInventoryResponse": { "description": "Response message for fetchInventory.", "id": "FetchInventoryResponse", @@ -3033,6 +3906,10 @@ "$ref": "AwsVmsDetails", "description": "The description of the VMs in a Source of type AWS." }, + "azureVms": { + "$ref": "AzureVmsDetails", + "description": "The description of the VMs in a Source of type Azure." + }, "nextPageToken": { "description": "Output only. A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", "readOnly": true, @@ -3075,6 +3952,20 @@ "description": "Display name is a user defined name for this group which can be updated.", "type": "string" }, + "migrationTargetType": { + "description": "Immutable. The target type of this group.", + "enum": [ + "MIGRATION_TARGET_TYPE_UNSPECIFIED", + "MIGRATION_TARGET_TYPE_GCE", + "MIGRATION_TARGET_TYPE_DISKS" + ], + "enumDescriptions": [ + "Group type is not specified. This defaults to Compute Engine targets.", + "All MigratingVMs in the group must have Compute Engine targets.", + "All MigratingVMs in the group must have Compute Engine Disks targets." + ], + "type": "string" + }, "name": { "description": "Output only. The Group name.", "readOnly": true, @@ -3089,6 +3980,199 @@ }, "type": "object" }, + "ImageImport": { + "description": "ImageImport describes the configuration of the image import to run.", + "id": "ImageImport", + "properties": { + "cloudStorageUri": { + "description": "Immutable. The path to the Cloud Storage file from which the image should be imported.", + "type": "string" + }, + "createTime": { + "description": "Output only. The time the image import was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "diskImageTargetDefaults": { + "$ref": "DiskImageTargetDetails", + "description": "Immutable. Target details for importing a disk image, will be used by ImageImportJob." + }, + "encryption": { + "$ref": "Encryption", + "description": "Immutable. The encryption details used by the image import process during the image adaptation for Compute Engine." + }, + "name": { + "description": "Output only. The resource path of the ImageImport.", + "readOnly": true, + "type": "string" + }, + "recentImageImportJobs": { + "description": "Output only. The result of the most recent runs for this ImageImport. All jobs for this ImageImport can be listed via ListImageImportJobs.", + "items": { + "$ref": "ImageImportJob" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "ImageImportJob": { + "description": "ImageImportJob describes the progress and result of an image import.", + "id": "ImageImportJob", + "properties": { + "cloudStorageUri": { + "description": "Output only. The path to the Cloud Storage file from which the image should be imported.", + "readOnly": true, + "type": "string" + }, + "createTime": { + "description": "Output only. The time the image import was created (as an API call, not when it was actually created in the target).", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "createdResources": { + "description": "Output only. The resource paths of the resources created by the image import job.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "diskImageTargetDetails": { + "$ref": "DiskImageTargetDetails", + "description": "Output only. Target details used to import a disk image.", + "readOnly": true + }, + "endTime": { + "description": "Output only. The time the image import was ended.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "errors": { + "description": "Output only. Provides details on the error that led to the image import state in case of an error.", + "items": { + "$ref": "Status" + }, + "readOnly": true, + "type": "array" + }, + "name": { + "description": "Output only. The resource path of the ImageImportJob.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The state of the image import.", + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "RUNNING", + "SUCCEEDED", + "FAILED", + "CANCELLING", + "CANCELLED" + ], + "enumDescriptions": [ + "The state is unknown.", + "The image import has not yet started.", + "The image import is active and running.", + "The image import has finished successfully.", + "The image import has finished with errors.", + "The image import is being cancelled.", + "The image import was cancelled." + ], + "readOnly": true, + "type": "string" + }, + "steps": { + "description": "Output only. The image import steps list representing its progress.", + "items": { + "$ref": "ImageImportStep" + }, + "readOnly": true, + "type": "array" + }, + "warnings": { + "description": "Output only. Warnings that occurred during the image import.", + "items": { + "$ref": "MigrationWarning" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "ImageImportOsAdaptationParameters": { + "description": "Parameters affecting the OS adaptation process.", + "id": "ImageImportOsAdaptationParameters", + "properties": { + "generalize": { + "description": "Optional. Set to true in order to generalize the imported image. The generalization process enables co-existence of multiple VMs created from the same image. For Windows, generalizing the image removes computer-specific information such as installed drivers and the computer security identifier (SID).", + "type": "boolean" + }, + "licenseType": { + "description": "Optional. Choose which type of license to apply to the imported image.", + "enum": [ + "COMPUTE_ENGINE_LICENSE_TYPE_DEFAULT", + "COMPUTE_ENGINE_LICENSE_TYPE_PAYG", + "COMPUTE_ENGINE_LICENSE_TYPE_BYOL" + ], + "enumDescriptions": [ + "The license type is the default for the OS.", + "The license type is Pay As You Go license type.", + "The license type is Bring Your Own License type." + ], + "type": "string" + } + }, + "type": "object" + }, + "ImageImportStep": { + "description": "ImageImportStep holds information about the image import step progress.", + "id": "ImageImportStep", + "properties": { + "adaptingOs": { + "$ref": "AdaptingOSStep", + "description": "Adapting OS step." + }, + "creatingImage": { + "$ref": "CreatingImageStep", + "description": "Creating image step." + }, + "endTime": { + "description": "Output only. The time the step has ended.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "initializing": { + "$ref": "InitializingImageImportStep", + "description": "Initializing step." + }, + "loadingSourceFiles": { + "$ref": "LoadingImageSourceFilesStep", + "description": "Loading source files step." + }, + "startTime": { + "description": "Output only. The time the step has started.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "InitializingImageImportStep": { + "description": "InitializingImageImportStep contains specific step details.", + "id": "InitializingImageImportStep", + "properties": {}, + "type": "object" + }, "InitializingReplicationStep": { "description": "InitializingReplicationStep contains specific step details.", "id": "InitializingReplicationStep", @@ -3228,6 +4312,62 @@ }, "type": "object" }, + "ListImageImportJobsResponse": { + "description": "Response message for 'ListImageImportJobs' call.", + "id": "ListImageImportJobsResponse", + "properties": { + "imageImportJobs": { + "description": "Output only. The list of target response.", + "items": { + "$ref": "ImageImportJob" + }, + "readOnly": true, + "type": "array" + }, + "nextPageToken": { + "description": "Output only. A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "readOnly": true, + "type": "string" + }, + "unreachable": { + "description": "Output only. Locations that could not be reached.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "ListImageImportsResponse": { + "description": "Response message for 'ListImageImports' call.", + "id": "ListImageImportsResponse", + "properties": { + "imageImports": { + "description": "Output only. The list of target response.", + "items": { + "$ref": "ImageImport" + }, + "readOnly": true, + "type": "array" + }, + "nextPageToken": { + "description": "Output only. A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "readOnly": true, + "type": "string" + }, + "unreachable": { + "description": "Output only. Locations that could not be reached.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -3404,6 +4544,12 @@ }, "type": "object" }, + "LoadingImageSourceFilesStep": { + "description": "LoadingImageSourceFilesStep contains specific step details.", + "id": "LoadingImageSourceFilesStep", + "properties": {}, + "type": "object" + }, "LocalizedMessage": { "description": "Provides a localized error message that is safe to return to the user which can be attached to an RPC error.", "id": "LocalizedMessage", @@ -3420,7 +4566,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -3462,12 +4608,22 @@ "description": "Output only. Details of the VM from an AWS source.", "readOnly": true }, + "azureSourceVmDetails": { + "$ref": "AzureSourceVmDetails", + "description": "Output only. Details of the VM from an Azure source.", + "readOnly": true + }, + "computeEngineDisksTargetDefaults": { + "$ref": "ComputeEngineDisksTargetDefaults", + "description": "Details of the target Persistent Disks in Compute Engine." + }, "computeEngineTargetDefaults": { "$ref": "ComputeEngineTargetDefaults", "description": "Details of the target VM in Compute Engine." }, "computeEngineVmDefaults": { "$ref": "TargetVMDetails", + "deprecated": true, "description": "Details of the VM in Compute Engine. Deprecated: Use compute_engine_target_defaults instead." }, "createTime": { @@ -3481,6 +4637,11 @@ "description": "Output only. Details of the current running replication cycle.", "readOnly": true }, + "cutoverForecast": { + "$ref": "CutoverForecast", + "description": "Output only. Provides details of future CutoverJobs of a MigratingVm. Set to empty when cutover forecast is unavailable.", + "readOnly": true + }, "description": { "description": "The description attached to the migrating VM by the user.", "type": "string" @@ -3506,6 +4667,11 @@ "description": "The labels of the migrating VM.", "type": "object" }, + "lastReplicationCycle": { + "$ref": "ReplicationCycle", + "description": "Output only. Details of the last replication cycle. This will be updated whenever a replication cycle is finished and is not to be confused with last_sync which is only updated on successful replication cycles.", + "readOnly": true + }, "lastSync": { "$ref": "ReplicationSync", "description": "Output only. The most updated snapshot created time in the source that finished replication.", @@ -3581,6 +4747,7 @@ }, "targetDefaults": { "$ref": "TargetVMDetails", + "deprecated": true, "description": "The default configuration of the target VM that will be created in Google Cloud as a result of the migration. Deprecated: Use compute_engine_target_defaults instead." }, "updateTime": { @@ -3588,6 +4755,11 @@ "format": "google-datetime", "readOnly": true, "type": "string" + }, + "vmwareSourceVmDetails": { + "$ref": "VmwareSourceVmDetails", + "description": "Output only. Details of the VM from a Vmware source.", + "readOnly": true } }, "type": "object" @@ -3613,19 +4785,21 @@ "CLONE_ERROR", "CUTOVER_ERROR", "UTILIZATION_REPORT_ERROR", - "APPLIANCE_UPGRADE_ERROR" + "APPLIANCE_UPGRADE_ERROR", + "IMAGE_IMPORT_ERROR" ], "enumDescriptions": [ "Default value. This value is not used.", - "Migrate for Compute encountered an unknown error.", - "Migrate for Compute encountered an error while validating replication source health.", - "Migrate for Compute encountered an error during source data operation.", - "Migrate for Compute encountered an error during target data operation.", - "Migrate for Compute encountered an error during OS adaptation.", - "Migrate for Compute encountered an error in clone operation.", - "Migrate for Compute encountered an error in cutover operation.", - "Migrate for Compute encountered an error during utilization report creation.", - "Migrate for Compute encountered an error during appliance upgrade." + "Migrate to Virtual Machines encountered an unknown error.", + "Migrate to Virtual Machines encountered an error while validating replication source health.", + "Migrate to Virtual Machines encountered an error during source data operation.", + "Migrate to Virtual Machines encountered an error during target data operation.", + "Migrate to Virtual Machines encountered an error during OS adaptation.", + "Migrate to Virtual Machines encountered an error in clone operation.", + "Migrate to Virtual Machines encountered an error in cutover operation.", + "Migrate to Virtual Machines encountered an error during utilization report creation.", + "Migrate to Virtual Machines encountered an error during appliance upgrade.", + "Migrate to Virtual Machines encountered an error in image import operation." ], "readOnly": true, "type": "string" @@ -3652,6 +4826,45 @@ }, "type": "object" }, + "MigrationWarning": { + "description": "Represents migration resource warning information that can be used with google.rpc.Status message. MigrationWarning is used to present the user with warning information in migration operations.", + "id": "MigrationWarning", + "properties": { + "actionItem": { + "$ref": "LocalizedMessage", + "description": "Suggested action for solving the warning." + }, + "code": { + "description": "The warning code.", + "enum": [ + "WARNING_CODE_UNSPECIFIED", + "ADAPTATION_WARNING" + ], + "enumDescriptions": [ + "Default value. This value is not used.", + "A warning originated from OS Adaptation." + ], + "type": "string" + }, + "helpLinks": { + "description": "URL(s) pointing to additional information on handling the current warning.", + "items": { + "$ref": "Link" + }, + "type": "array" + }, + "warningMessage": { + "$ref": "LocalizedMessage", + "description": "The localized warning message." + }, + "warningTime": { + "description": "The time the warning occurred.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "NetworkInterface": { "description": "NetworkInterface represents a NIC of a VM.", "id": "NetworkInterface", @@ -3675,6 +4888,49 @@ }, "type": "object" }, + "OSDescription": { + "description": "A message describing the VM's OS. Including OS, Publisher, Offer and Plan if applicable.", + "id": "OSDescription", + "properties": { + "offer": { + "description": "OS offer.", + "type": "string" + }, + "plan": { + "description": "OS plan.", + "type": "string" + }, + "publisher": { + "description": "OS publisher.", + "type": "string" + }, + "type": { + "description": "OS type.", + "type": "string" + } + }, + "type": "object" + }, + "OSDisk": { + "description": "A message describing the OS disk.", + "id": "OSDisk", + "properties": { + "name": { + "description": "The disk's full name.", + "type": "string" + }, + "sizeGb": { + "description": "The disk's size in GB.", + "format": "int32", + "type": "integer" + }, + "type": { + "description": "The disk's type.", + "type": "string" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -3704,7 +4960,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" } }, @@ -3760,6 +5016,69 @@ "properties": {}, "type": "object" }, + "PersistentDisk": { + "description": "Details of a created Persistent Disk.", + "id": "PersistentDisk", + "properties": { + "diskUri": { + "description": "The URI of the Persistent Disk.", + "type": "string" + }, + "sourceDiskNumber": { + "description": "The ordinal number of the source VM disk.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "PersistentDiskDefaults": { + "description": "Details for creation of a Persistent Disk.", + "id": "PersistentDiskDefaults", + "properties": { + "additionalLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "A map of labels to associate with the Persistent Disk.", + "type": "object" + }, + "diskName": { + "description": "Optional. The name of the Persistent Disk to create.", + "type": "string" + }, + "diskType": { + "description": "The disk type to use.", + "enum": [ + "COMPUTE_ENGINE_DISK_TYPE_UNSPECIFIED", + "COMPUTE_ENGINE_DISK_TYPE_STANDARD", + "COMPUTE_ENGINE_DISK_TYPE_SSD", + "COMPUTE_ENGINE_DISK_TYPE_BALANCED" + ], + "enumDescriptions": [ + "An unspecified disk type. Will be used as STANDARD.", + "A Standard disk type.", + "SSD hard disk type.", + "An alternative to SSD persistent disks that balance performance and cost." + ], + "type": "string" + }, + "encryption": { + "$ref": "Encryption", + "description": "Optional. The encryption to apply to the disk." + }, + "sourceDiskNumber": { + "description": "Required. The ordinal number of the source VM disk.", + "format": "int32", + "type": "integer" + }, + "vmAttachmentDetails": { + "$ref": "VmAttachmentDetails", + "description": "Optional. Details for attachment of the disk to a VM. Used when the disk is set to be attacked to a target VM." + } + }, + "type": "object" + }, "PostProcessingStep": { "description": "PostProcessingStep contains specific step details.", "id": "PostProcessingStep", @@ -3833,11 +5152,13 @@ "type": "string" }, "progress": { + "deprecated": true, "description": "The current progress in percentage of this cycle.", "format": "int32", "type": "integer" }, "progressPercent": { + "deprecated": true, "description": "The current progress in percentage of this cycle. Was replaced by 'steps' field, which breaks down the cycle progression more accurately.", "format": "int32", "type": "integer" @@ -3876,6 +5197,14 @@ "description": "The accumulated duration the replication cycle was paused.", "format": "google-duration", "type": "string" + }, + "warnings": { + "description": "Output only. Warnings that occurred during the cycle.", + "items": { + "$ref": "MigrationWarning" + }, + "readOnly": true, + "type": "array" } }, "type": "object" @@ -3960,6 +5289,10 @@ "$ref": "AwsSourceDetails", "description": "AWS type source details." }, + "azure": { + "$ref": "AzureSourceDetails", + "description": "Azure type source details." + }, "createTime": { "description": "Output only. The create time timestamp.", "format": "google-datetime", @@ -3970,8 +5303,13 @@ "description": "User-provided description of the source.", "type": "string" }, + "encryption": { + "$ref": "Encryption", + "description": "Optional. Immutable. The encryption details of the source data stored by the service." + }, "error": { "$ref": "Status", + "deprecated": true, "description": "Output only. Provides details on the state of the Source in case of an error.", "readOnly": true }, @@ -4068,7 +5406,7 @@ "type": "string" }, "project": { - "description": "The target project ID (number) or project name.", + "description": "Required. The target project ID (number) or project name.", "type": "string" }, "updateTime": { @@ -4081,6 +5419,7 @@ "type": "object" }, "TargetVMDetails": { + "deprecated": true, "description": "TargetVMDetails is a collection of details for creating a VM in a target Compute Engine project.", "id": "TargetVMDetails", "properties": { @@ -4090,7 +5429,7 @@ "readOnly": true }, "bootOption": { - "description": "Output only. The VM Boot Option, as set in the source vm.", + "description": "Output only. The VM Boot Option, as set in the source VM.", "enum": [ "BOOT_OPTION_UNSPECIFIED", "EFI", @@ -4184,13 +5523,14 @@ "type": "array" }, "networkTags": { - "description": "A map of network tags to associate with the VM.", + "description": "A list of network tags to associate with the VM.", "items": { "type": "string" }, "type": "array" }, "project": { + "deprecated": true, "description": "Output only. The project in which to create the VM.", "readOnly": true, "type": "string" @@ -4223,7 +5563,7 @@ "id": "UpgradeApplianceRequest", "properties": { "requestId": { - "description": "A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "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).", "type": "string" } }, @@ -4352,6 +5692,7 @@ "type": "array" }, "vmsCount": { + "deprecated": true, "description": "Output only. Total number of VMs included in the report.", "format": "int32", "readOnly": true, @@ -4360,6 +5701,48 @@ }, "type": "object" }, + "VmAttachmentDetails": { + "description": "Details for attachment of the disk to a VM.", + "id": "VmAttachmentDetails", + "properties": { + "deviceName": { + "description": "Optional. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.", + "type": "string" + } + }, + "type": "object" + }, + "VmCapabilities": { + "description": "Migrating VM source information about the VM capabilities needed for some Compute Engine features.", + "id": "VmCapabilities", + "properties": { + "lastOsCapabilitiesUpdateTime": { + "description": "Output only. The last time OS capabilities list was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "osCapabilities": { + "description": "Output only. Unordered list. List of certain VM OS capabilities needed for some Compute Engine features.", + "items": { + "enum": [ + "OS_CAPABILITY_UNSPECIFIED", + "OS_CAPABILITY_NVME_STORAGE_ACCESS", + "OS_CAPABILITY_GVNIC_NETWORK_INTERFACE" + ], + "enumDescriptions": [ + "This is for API compatibility only and is not in use.", + "NVMe driver installed and the VM can use NVMe PD or local SSD.", + "gVNIC virtual NIC driver supported." + ], + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "VmUtilizationInfo": { "description": "Utilization information of a single VM.", "id": "VmUtilizationInfo", @@ -4384,6 +5767,7 @@ "id": "VmUtilizationMetrics", "properties": { "cpuAverage": { + "deprecated": true, "description": "Average CPU usage, percent.", "format": "int32", "type": "integer" @@ -4394,6 +5778,7 @@ "type": "integer" }, "cpuMax": { + "deprecated": true, "description": "Max CPU usage, percent.", "format": "int32", "type": "integer" @@ -4404,6 +5789,7 @@ "type": "integer" }, "diskIoRateAverage": { + "deprecated": true, "description": "Average disk IO rate, in kilobytes per second.", "format": "int64", "type": "string" @@ -4414,6 +5800,7 @@ "type": "string" }, "diskIoRateMax": { + "deprecated": true, "description": "Max disk IO rate, in kilobytes per second.", "format": "int64", "type": "string" @@ -4424,6 +5811,7 @@ "type": "string" }, "memoryAverage": { + "deprecated": true, "description": "Average memory usage, percent.", "format": "int32", "type": "integer" @@ -4434,6 +5822,7 @@ "type": "integer" }, "memoryMax": { + "deprecated": true, "description": "Max memory usage, percent.", "format": "int32", "type": "integer" @@ -4444,6 +5833,7 @@ "type": "integer" }, "networkThroughputAverage": { + "deprecated": true, "description": "Average network throughput (combined transmit-rates and receive-rates), in kilobytes per second.", "format": "int64", "type": "string" @@ -4454,6 +5844,7 @@ "type": "string" }, "networkThroughputMax": { + "deprecated": true, "description": "Max network throughput (combined transmit-rates and receive-rates), in kilobytes per second.", "format": "int64", "type": "string" @@ -4466,6 +5857,27 @@ }, "type": "object" }, + "VmwareDiskDetails": { + "description": "The details of a Vmware VM disk.", + "id": "VmwareDiskDetails", + "properties": { + "diskNumber": { + "description": "The ordinal number of the disk.", + "format": "int32", + "type": "integer" + }, + "label": { + "description": "The disk label.", + "type": "string" + }, + "sizeGb": { + "description": "Size in GB.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "VmwareSourceDetails": { "description": "VmwareSourceDetails message describes a specific source details for the vmware source type.", "id": "VmwareSourceDetails", @@ -4474,6 +5886,10 @@ "description": "Input only. The credentials password. This is write only and can not be read in a GET operation.", "type": "string" }, + "resolvedVcenterHost": { + "description": "The hostname of the vcenter.", + "type": "string" + }, "thumbprint": { "description": "The thumbprint representing the certificate for the vcenter.", "type": "string" @@ -4489,6 +5905,44 @@ }, "type": "object" }, + "VmwareSourceVmDetails": { + "description": "Represent the source Vmware VM details.", + "id": "VmwareSourceVmDetails", + "properties": { + "committedStorageBytes": { + "description": "The total size of the disks being migrated in bytes.", + "format": "int64", + "type": "string" + }, + "disks": { + "description": "The disks attached to the source VM.", + "items": { + "$ref": "VmwareDiskDetails" + }, + "type": "array" + }, + "firmware": { + "description": "The firmware type of the source VM.", + "enum": [ + "FIRMWARE_UNSPECIFIED", + "EFI", + "BIOS" + ], + "enumDescriptions": [ + "The firmware is unknown.", + "The firmware is EFI.", + "The firmware is BIOS." + ], + "type": "string" + }, + "vmCapabilitiesInfo": { + "$ref": "VmCapabilities", + "description": "Output only. Information about VM capabilities needed for some Compute Engine features.", + "readOnly": true + } + }, + "type": "object" + }, "VmwareVmDetails": { "description": "VmwareVmDetails describes a VM in vCenter.", "id": "VmwareVmDetails", @@ -4509,6 +5963,7 @@ "type": "string" }, "committedStorage": { + "deprecated": true, "description": "The total size of the storage allocated to the VM in MB.", "format": "int64", "type": "string" diff --git a/etc/api/walletobjects/v1/walletobjects-api.json b/etc/api/walletobjects/v1/walletobjects-api.json index 44c14b1cf0..89803fa970 100644 --- a/etc/api/walletobjects/v1/walletobjects-api.json +++ b/etc/api/walletobjects/v1/walletobjects-api.json @@ -772,6 +772,33 @@ }, "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}", @@ -905,6 +932,33 @@ }, "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}", @@ -1842,9 +1896,35 @@ }, "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 a private image and returns an Id to be used in its place.", - "flatPath": "walletobjects/v1/privateContent/{issuerId}/uploadPrivateImage", + "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": { @@ -1854,28 +1934,27 @@ "protocols": { "simple": { "multipart": true, - "path": "/upload/walletobjects/v1/privateContent/{issuerId}/uploadPrivateImage" + "path": "/upload/walletobjects/v1/transitObject/{resourceId}/uploadRotatingBarcodeValues" } } }, "parameterOrder": [ - "issuerId" + "resourceId" ], "parameters": { - "issuerId": { - "description": "The ID of the issuer sending the image.", - "format": "int64", + "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/privateContent/{issuerId}/uploadPrivateImage", + "path": "walletobjects/v1/transitObject/{resourceId}/uploadRotatingBarcodeValues", "request": { - "$ref": "UploadPrivateImageRequest" + "$ref": "TransitObjectUploadRotatingBarcodeValuesRequest" }, "response": { - "$ref": "UploadPrivateImageResponse" + "$ref": "TransitObjectUploadRotatingBarcodeValuesResponse" }, "scopes": [ "https://www.googleapis.com/auth/wallet_object.issuer" @@ -2600,39 +2679,9 @@ ] } } - }, - "walletobjects": { - "resources": { - "v1": { - "resources": { - "privateContent": { - "methods": { - "uploadPrivateData": { - "description": "Upload private data (text or URI) and returns an Id to be used in its place.", - "flatPath": "walletobjects/v1/privateContent/uploadPrivateData", - "httpMethod": "POST", - "id": "walletobjects.walletobjects.v1.privateContent.uploadPrivateData", - "parameterOrder": [], - "parameters": {}, - "path": "walletobjects/v1/privateContent/uploadPrivateData", - "request": { - "$ref": "UploadPrivateDataRequest" - }, - "response": { - "$ref": "UploadPrivateDataResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/wallet_object.issuer" - ] - } - } - } - } - } - } } }, - "revision": "20230124", + "revision": "20240304", "rootUrl": "https://walletobjects.googleapis.com/", "schemas": { "ActivationOptions": { @@ -2662,6 +2711,13 @@ "ACTIVATED", "activated" ], + "enumDeprecated": [ + false, + false, + true, + false, + true + ], "enumDescriptions": [ "", "Not-Activated, this is the default status", @@ -2700,6 +2756,7 @@ "type": "string" }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#airportInfo\"`.", "type": "string" }, @@ -2753,8 +2810,13 @@ "AppLinkDataAppLinkInfoAppTarget": { "id": "AppLinkDataAppLinkInfoAppTarget", "properties": { + "packageName": { + "description": "Package name for AppTarget. For example: com.google.android.gm", + "type": "string" + }, "targetUri": { - "$ref": "Uri" + "$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" @@ -2782,6 +2844,7 @@ "type": "string" }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#barcode\"`.", "type": "string" }, @@ -2833,6 +2896,36 @@ "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.", @@ -2924,6 +3017,13 @@ "BACK", "back" ], + "enumDeprecated": [ + false, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -2946,6 +3046,7 @@ "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" }, @@ -2982,6 +3083,15 @@ "BOARDING_POLICY_OTHER", "boardingPolicyOther" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -2994,6 +3104,7 @@ "type": "string" }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#boardingAndSeatingPolicy\"`.", "type": "string" }, @@ -3010,6 +3121,17 @@ "SEAT_CLASS_POLICY_OTHER", "seatClassPolicyOther" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -3030,6 +3152,7 @@ "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" }, @@ -3158,6 +3281,7 @@ "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" @@ -3409,6 +3533,15 @@ "DISABLED", "disabled" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "Visible only to testers that have access to issuer account.", @@ -3517,6 +3650,13 @@ "GATES_OPEN", "gatesOpen" ], + "enumDeprecated": [ + false, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -3531,6 +3671,7 @@ "type": "string" }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#eventDateTime\"`.", "type": "string" }, @@ -3549,6 +3690,7 @@ "type": "string" }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#eventReservationInfo\"`.", "type": "string" } @@ -3563,6 +3705,7 @@ "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" }, @@ -3585,6 +3728,7 @@ "id": "EventTicketClass", "properties": { "allowMultipleUsersPerObject": { + "deprecated": true, "description": "Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.", "type": "boolean" }, @@ -3609,6 +3753,17 @@ "RESERVATION_NUMBER", "reservationNumber" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -3677,6 +3832,15 @@ "ENTRANCE", "entrance" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -3713,6 +3877,7 @@ }, "infoModuleData": { "$ref": "InfoModuleData", + "deprecated": true, "description": "Deprecated. Use textModulesData instead." }, "issuerName": { @@ -3720,6 +3885,7 @@ "type": "string" }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#eventTicketClass\"`.", "type": "string" }, @@ -3754,19 +3920,28 @@ "enum": [ "STATUS_UNSPECIFIED", "MULTIPLE_HOLDERS", - "multipleHolders", "ONE_USER_ALL_DEVICES", - "oneUserAllDevices", "ONE_USER_ONE_DEVICE", + "multipleHolders", + "oneUserAllDevices", "oneUserOneDevice" ], + "enumDeprecated": [ + false, + false, + false, + false, + true, + true, + true + ], "enumDescriptions": [ - "", - "Multiple users on multiple devices are allowed.", + "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.", - "One user on multiple devices is allowed.", "Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", - "Intended for use by select partners in limited circumstances. Contact support for additional information.", "Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." ], "type": "string" @@ -3796,6 +3971,17 @@ "DRAFT", "draft" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -3816,6 +4002,11 @@ "ROW", "row" ], + "enumDeprecated": [ + false, + false, + true + ], "enumDescriptions": [ "", "", @@ -3830,6 +4021,11 @@ "SEAT", "seat" ], + "enumDeprecated": [ + false, + false, + true + ], "enumDescriptions": [ "", "", @@ -3846,6 +4042,13 @@ "THEATER", "theater" ], + "enumDeprecated": [ + false, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -3871,6 +4074,7 @@ "description": "Event venue details." }, "version": { + "deprecated": true, "description": "Deprecated", "format": "int64", "type": "string" @@ -3889,8 +4093,13 @@ ], "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." } }, @@ -3986,6 +4195,7 @@ "description": "Deprecated. Use textModulesData instead." }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#eventTicketObject\"`.", "type": "string" }, @@ -4014,6 +4224,10 @@ }, "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." @@ -4043,6 +4257,17 @@ "INACTIVE", "inactive" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "Object is active and displayed to with other active objects.", @@ -4080,6 +4305,7 @@ "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" @@ -4122,6 +4348,7 @@ "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" }, @@ -4133,7 +4360,7 @@ "type": "object" }, "ExpiryNotification": { - "description": "Indicates that the issuer would like GooglePay to send expiry notifications 2 days prior to the card expiration.", + "description": "Indicates that the issuer would like Google Wallet to send expiry notifications 2 days prior to the card expiration.", "id": "ExpiryNotification", "properties": { "enableNotification": { @@ -4164,6 +4391,21 @@ "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`.", @@ -4219,6 +4461,15 @@ "ORIGIN_NAME", "originName" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -4238,7 +4489,7 @@ "properties": { "airlineAllianceLogo": { "$ref": "Image", - "description": "A logo for the airline alliance, displayed above the QR code that the passenger scans to board." + "description": "A logo for the airline alliance, displayed below the QR code that the passenger scans to board." }, "airlineLogo": { "$ref": "Image", @@ -4257,8 +4508,13 @@ "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" @@ -4267,6 +4523,7 @@ "id": "FlightClass", "properties": { "allowMultipleUsersPerObject": { + "deprecated": true, "description": "Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.", "type": "boolean" }, @@ -4315,6 +4572,21 @@ "DIVERTED", "diverted" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "Flight is on time, early, or delayed.", @@ -4357,6 +4629,7 @@ }, "infoModuleData": { "$ref": "InfoModuleData", + "deprecated": true, "description": "Deprecated. Use textModulesData instead." }, "issuerName": { @@ -4364,6 +4637,7 @@ "type": "string" }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#flightClass\"`.", "type": "string" }, @@ -4422,19 +4696,28 @@ "enum": [ "STATUS_UNSPECIFIED", "MULTIPLE_HOLDERS", - "multipleHolders", "ONE_USER_ALL_DEVICES", - "oneUserAllDevices", "ONE_USER_ONE_DEVICE", + "multipleHolders", + "oneUserAllDevices", "oneUserOneDevice" ], + "enumDeprecated": [ + false, + false, + false, + false, + true, + true, + true + ], "enumDescriptions": [ - "", - "Multiple users on multiple devices are allowed.", + "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.", - "One user on multiple devices is allowed.", "Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", - "Intended for use by select partners in limited circumstances. Contact support for additional information.", "Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." ], "type": "string" @@ -4468,6 +4751,17 @@ "DRAFT", "draft" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -4493,6 +4787,7 @@ "type": "array" }, "version": { + "deprecated": true, "description": "Deprecated", "format": "int64", "type": "string" @@ -4513,6 +4808,7 @@ }, "wordMark": { "$ref": "Image", + "deprecated": true, "description": "Deprecated." } }, @@ -4561,6 +4857,7 @@ "type": "string" }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#flightHeader\"`.", "type": "string" }, @@ -4638,6 +4935,7 @@ "description": "Deprecated. Use textModulesData instead." }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#flightObject\"`.", "type": "string" }, @@ -4659,6 +4957,10 @@ }, "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" @@ -4692,6 +4994,17 @@ "INACTIVE", "inactive" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "Object is active and displayed to with other active objects.", @@ -4717,6 +5030,7 @@ "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" @@ -4763,6 +5077,7 @@ "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" } @@ -4800,24 +5115,40 @@ "$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", - "multipleHolders", "ONE_USER_ALL_DEVICES", - "oneUserAllDevices", "ONE_USER_ONE_DEVICE", + "multipleHolders", + "oneUserAllDevices", "oneUserOneDevice" ], + "enumDeprecated": [ + false, + false, + false, + false, + true, + true, + true + ], "enumDescriptions": [ - "", - "Multiple users on multiple devices are allowed.", + "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.", - "One user on multiple devices is allowed.", "Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", - "Intended for use by select partners in limited circumstances. Contact support for additional information.", "Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." ], "type": "string" @@ -4858,6 +5189,17 @@ }, "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", @@ -4877,7 +5219,7 @@ "type": "object" }, "GenericObject": { - "description": "Generic Object Next ID: 119", + "description": "Generic Object Next ID: 121", "id": "GenericObject", "properties": { "appLinkData": { @@ -4897,12 +5239,36 @@ "type": "string" }, "genericType": { - "description": "Specify which `GenericType` the card belongs to. Deprecated.", + "description": "Specify which `GenericType` the card belongs to.", "enum": [ - "GENERIC_TYPE_UNSPECIFIED" + "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." + "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" }, @@ -4949,6 +5315,10 @@ "$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." @@ -4970,6 +5340,17 @@ "INACTIVE", "inactive" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "Object is active and displayed to with other active objects.", @@ -4997,6 +5378,21 @@ "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" @@ -5027,6 +5423,7 @@ "type": "boolean" }, "allowMultipleUsersPerObject": { + "deprecated": true, "description": "Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.", "type": "boolean" }, @@ -5079,6 +5476,7 @@ }, "infoModuleData": { "$ref": "InfoModuleData", + "deprecated": true, "description": "Deprecated. Use textModulesData instead." }, "issuerName": { @@ -5086,6 +5484,7 @@ "type": "string" }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#giftCardClass\"`.", "type": "string" }, @@ -5136,19 +5535,28 @@ "enum": [ "STATUS_UNSPECIFIED", "MULTIPLE_HOLDERS", - "multipleHolders", "ONE_USER_ALL_DEVICES", - "oneUserAllDevices", "ONE_USER_ONE_DEVICE", + "multipleHolders", + "oneUserAllDevices", "oneUserOneDevice" ], + "enumDeprecated": [ + false, + false, + false, + false, + true, + true, + true + ], "enumDescriptions": [ - "", - "Multiple users on multiple devices are allowed.", + "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.", - "One user on multiple devices is allowed.", "Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", - "Intended for use by select partners in limited circumstances. Contact support for additional information.", "Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." ], "type": "string" @@ -5186,6 +5594,17 @@ "DRAFT", "draft" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -5211,6 +5630,7 @@ "type": "array" }, "version": { + "deprecated": true, "description": "Deprecated", "format": "int64", "type": "string" @@ -5229,8 +5649,13 @@ ], "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." } }, @@ -5334,6 +5759,7 @@ "description": "Deprecated. Use textModulesData instead." }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#giftCardObject\"`.", "type": "string" }, @@ -5355,6 +5781,10 @@ }, "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" @@ -5380,6 +5810,17 @@ "INACTIVE", "inactive" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "Object is active and displayed to with other active objects.", @@ -5405,6 +5846,7 @@ "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" @@ -5455,7 +5897,7 @@ "type": "object" }, "Image": { - "description": "Wrapping type for Google hosted images.", + "description": "Wrapping type for Google hosted images. Next ID: 7", "id": "Image", "properties": { "contentDescription": { @@ -5463,6 +5905,7 @@ "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" }, @@ -5491,11 +5934,13 @@ "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": { @@ -5516,6 +5961,7 @@ "type": "array" }, "showLastUpdateTime": { + "deprecated": true, "type": "boolean" } }, @@ -5524,6 +5970,10 @@ "Issuer": { "id": "Issuer", "properties": { + "callbackOptions": { + "$ref": "CallbackOptions", + "description": "Allows the issuer to provide their callback settings." + }, "contactInfo": { "$ref": "IssuerContactInfo", "description": "Issuer contact information." @@ -5597,6 +6047,13 @@ "SIGN_UP", "signUp" ], + "enumDeprecated": [ + false, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -5638,7 +6095,7 @@ "id": "JwtResource", "properties": { "jwt": { - "description": "A string representing a JWT of the format described at https://developers.google.com/pay/passes/reference/s2w-reference#google-pay-api-for-passes-jwt", + "description": "A string representing a JWT of the format described at https://developers.google.com/wallet/reference/rest/v1/Jwt", "type": "string" } }, @@ -5684,6 +6141,7 @@ "id": "LatLongPoint", "properties": { "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#latLongPoint\"`.", "type": "string" }, @@ -5718,15 +6176,16 @@ "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." + "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." + "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", - "description": "A reference to the field to be displayed in the third row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the third row will always display the number of objects in the group. Eg: \"3 passes\"" + "deprecated": true, + "description": "An unused/deprecated field. Setting it will have no effect on what the user sees." } }, "type": "object" @@ -5739,6 +6198,7 @@ "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" }, @@ -5764,6 +6224,7 @@ "type": "string" }, "allowMultipleUsersPerObject": { + "deprecated": true, "description": "Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.", "type": "boolean" }, @@ -5812,6 +6273,7 @@ }, "infoModuleData": { "$ref": "InfoModuleData", + "deprecated": true, "description": "Deprecated. Use textModulesData instead." }, "issuerName": { @@ -5819,6 +6281,7 @@ "type": "string" }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#loyaltyClass\"`.", "type": "string" }, @@ -5877,19 +6340,28 @@ "enum": [ "STATUS_UNSPECIFIED", "MULTIPLE_HOLDERS", - "multipleHolders", "ONE_USER_ALL_DEVICES", - "oneUserAllDevices", "ONE_USER_ONE_DEVICE", + "multipleHolders", + "oneUserAllDevices", "oneUserOneDevice" ], + "enumDeprecated": [ + false, + false, + false, + false, + true, + true, + true + ], "enumDescriptions": [ - "", - "Multiple users on multiple devices are allowed.", + "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.", - "One user on multiple devices is allowed.", "Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", - "Intended for use by select partners in limited circumstances. Contact support for additional information.", "Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." ], "type": "string" @@ -5927,6 +6399,17 @@ "DRAFT", "draft" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -5968,6 +6451,7 @@ "type": "array" }, "version": { + "deprecated": true, "description": "Deprecated", "format": "int64", "type": "string" @@ -5986,8 +6470,13 @@ ], "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." } }, @@ -6083,6 +6572,7 @@ "description": "Deprecated. Use textModulesData instead." }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#loyaltyObject\"`.", "type": "string" }, @@ -6115,6 +6605,10 @@ }, "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." @@ -6140,6 +6634,17 @@ "INACTIVE", "inactive" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "Object is active and displayed to with other active objects.", @@ -6165,6 +6670,7 @@ "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" @@ -6246,15 +6752,18 @@ "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" @@ -6317,6 +6826,7 @@ "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" }, @@ -6456,6 +6966,11 @@ "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", @@ -6489,6 +7004,7 @@ "type": "string" }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#walletObjectMessage\"`.", "type": "string" }, @@ -6501,7 +7017,7 @@ "description": "Translated strings for the message header." }, "messageType": { - "description": "The type of the message. Currently, this can only be set for offers.", + "description": "The message type.", "enum": [ "MESSAGE_TYPE_UNSPECIFIED", "TEXT", @@ -6509,6 +7025,13 @@ "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.", @@ -6559,6 +7082,7 @@ "type": "string" }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#money\"`.", "type": "string" }, @@ -6609,6 +7133,7 @@ "id": "OfferClass", "properties": { "allowMultipleUsersPerObject": { + "deprecated": true, "description": "Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.", "type": "boolean" }, @@ -6665,6 +7190,7 @@ }, "infoModuleData": { "$ref": "InfoModuleData", + "deprecated": true, "description": "Deprecated. Use textModulesData instead." }, "issuerName": { @@ -6672,6 +7198,7 @@ "type": "string" }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#offerClass\"`.", "type": "string" }, @@ -6722,19 +7249,28 @@ "enum": [ "STATUS_UNSPECIFIED", "MULTIPLE_HOLDERS", - "multipleHolders", "ONE_USER_ALL_DEVICES", - "oneUserAllDevices", "ONE_USER_ONE_DEVICE", + "multipleHolders", + "oneUserAllDevices", "oneUserOneDevice" ], + "enumDeprecated": [ + false, + false, + false, + false, + true, + true, + true + ], "enumDescriptions": [ - "", - "Multiple users on multiple devices are allowed.", + "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.", - "One user on multiple devices is allowed.", "Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", - "Intended for use by select partners in limited circumstances. Contact support for additional information.", "Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." ], "type": "string" @@ -6756,6 +7292,17 @@ "TEMPORARY_PRICE_REDUCTION", "temporaryPriceReduction" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -6794,6 +7341,17 @@ "DRAFT", "draft" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -6831,6 +7389,7 @@ "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" @@ -6849,8 +7408,13 @@ ], "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." } }, @@ -6938,6 +7502,7 @@ "description": "Deprecated. Use textModulesData instead." }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#offerObject\"`.", "type": "string" }, @@ -6959,6 +7524,10 @@ }, "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." @@ -6980,6 +7549,17 @@ "INACTIVE", "inactive" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "Object is active and displayed to with other active objects.", @@ -7005,6 +7585,7 @@ "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" @@ -7043,6 +7624,7 @@ "id": "Pagination", "properties": { "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#pagination\"`.", "type": "string" }, @@ -7058,6 +7640,44 @@ }, "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": { @@ -7076,6 +7696,15 @@ "WRITER", "writer" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -7108,36 +7737,6 @@ }, "type": "object" }, - "PrivateText": { - "description": "Private data for TextModule. This data will be rendered as a TextModule for a pass.", - "id": "PrivateText", - "properties": { - "body": { - "$ref": "LocalizedString", - "description": "Translated strings for the body." - }, - "header": { - "$ref": "LocalizedString", - "description": "Translated strings for the header." - } - }, - "type": "object" - }, - "PrivateUri": { - "description": "Private data for LinkModule. This data will be rendered as the LinkModule for a pass.", - "id": "PrivateUri", - "properties": { - "description": { - "$ref": "LocalizedString", - "description": "The URI's title appearing in the app as text and its translated strings. Recommended maximum is 20 characters to ensure the full string is displayed on smaller screens." - }, - "uri": { - "description": "The location of a web page, image, or other resource. URIs in the `LinksModuleData` 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).", - "type": "string" - } - }, - "type": "object" - }, "PurchaseDetails": { "id": "PurchaseDetails", "properties": { @@ -7180,6 +7779,7 @@ "description": "Frequent flyer membership information." }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#reservationInfo\"`.", "type": "string" } @@ -7280,6 +7880,10 @@ "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": [ @@ -7332,6 +7936,36 @@ "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.", @@ -7418,6 +8052,29 @@ }, "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": { @@ -7428,6 +8085,11 @@ "FOIL_SHIMMER", "foilShimmer" ], + "enumDeprecated": [ + false, + false, + true + ], "enumDescriptions": [ "", "Default Foil & Shimmer animation", @@ -7463,6 +8125,7 @@ "type": "array" }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#smartTap\"`.", "type": "string" }, @@ -7508,6 +8171,13 @@ "FLIGHT_NUMBER_AND_OPERATING_FLIGHT_NUMBER", "flightNumberAndOperatingFlightNumber" ], + "enumDeprecated": [ + false, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -7678,6 +8348,15 @@ "BUSINESS", "business" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -7708,6 +8387,7 @@ "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" }, @@ -7726,6 +8406,7 @@ "description": "Activation options for an activatable ticket." }, "allowMultipleUsersPerObject": { + "deprecated": true, "description": "Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.", "type": "boolean" }, @@ -7850,6 +8531,7 @@ }, "infoModuleData": { "$ref": "InfoModuleData", + "deprecated": true, "description": "Deprecated. Use textModulesData instead." }, "issuerName": { @@ -7891,19 +8573,28 @@ "enum": [ "STATUS_UNSPECIFIED", "MULTIPLE_HOLDERS", - "multipleHolders", "ONE_USER_ALL_DEVICES", - "oneUserAllDevices", "ONE_USER_ONE_DEVICE", + "multipleHolders", + "oneUserAllDevices", "oneUserOneDevice" ], + "enumDeprecated": [ + false, + false, + false, + false, + true, + true, + true + ], "enumDescriptions": [ - "", - "Multiple users on multiple devices are allowed.", + "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.", - "One user on multiple devices is allowed.", "Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", - "Intended for use by select partners in limited circumstances. Contact support for additional information.", "Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." ], "type": "string" @@ -7933,6 +8624,17 @@ "DRAFT", "draft" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -7976,6 +8678,19 @@ "OTHER", "other" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -7992,6 +8707,7 @@ "type": "string" }, "version": { + "deprecated": true, "description": "Deprecated", "format": "int64", "type": "string" @@ -8014,8 +8730,13 @@ "$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." } }, @@ -8082,6 +8803,15 @@ "SENIOR", "senior" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -8162,6 +8892,10 @@ }, "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" @@ -8175,6 +8909,13 @@ "MULTIPLE_PASSENGERS", "multiplePassengers" ], + "enumDeprecated": [ + false, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -8209,6 +8950,17 @@ "INACTIVE", "inactive" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "Object is active and displayed to with other active objects.", @@ -8259,6 +9011,15 @@ "EXCHANGED", "exchanged" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -8283,6 +9044,13 @@ "ONE_WAY", "oneWay" ], + "enumDeprecated": [ + false, + false, + true, + false, + true + ], "enumDescriptions": [ "", "", @@ -8297,6 +9065,7 @@ "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" @@ -8331,10 +9100,32 @@ }, "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" }, @@ -8350,7 +9141,7 @@ "type": "object" }, "UpcomingNotification": { - "description": "Indicates that the issuer would like GooglePay send an upcoming card validity notification 1 day before card becomes valid/usable.", + "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": { @@ -8360,65 +9151,6 @@ }, "type": "object" }, - "UploadPrivateDataRequest": { - "description": "Request for sending user private Text or URI by the Issuer.", - "id": "UploadPrivateDataRequest", - "properties": { - "issuerId": { - "description": "The ID of the issuer sending the data.", - "format": "int64", - "type": "string" - }, - "text": { - "$ref": "PrivateText", - "description": "Private text data of the user." - }, - "uri": { - "$ref": "PrivateUri", - "description": "Private URIs of the user." - } - }, - "type": "object" - }, - "UploadPrivateDataResponse": { - "description": "Response for uploading user private data (text or URIs)", - "id": "UploadPrivateDataResponse", - "properties": { - "privateContentId": { - "description": "A 64-bit content id for the private data that was uploaded by the Issuer.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "UploadPrivateImageRequest": { - "description": "Request to upload user's private images by Issuers to be used in passes.", - "id": "UploadPrivateImageRequest", - "properties": { - "blob": { - "$ref": "Media", - "description": "A reference to the image payload that was uploaded by Scotty." - }, - "mediaRequestInfo": { - "$ref": "MediaRequestInfo", - "description": "Extra information about the uploaded media." - } - }, - "type": "object" - }, - "UploadPrivateImageResponse": { - "description": "Response for uploading the private image", - "id": "UploadPrivateImageResponse", - "properties": { - "privateContentId": { - "description": "A 64-bit content id for the image that was uploaded by the Issuer.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, "Uri": { "id": "Uri", "properties": { @@ -8431,6 +9163,7 @@ "type": "string" }, "kind": { + "deprecated": true, "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#uri\"`.", "type": "string" }, @@ -8447,6 +9180,6 @@ } }, "servicePath": "", - "title": "Google Pay Passes API", + "title": "Google Wallet API", "version": "v1" } \ No newline at end of file diff --git a/etc/api/webfonts/v1/webfonts-api.json b/etc/api/webfonts/v1/webfonts-api.json index 62cd2d2ef4..040bf0d66b 100644 --- a/etc/api/webfonts/v1/webfonts-api.json +++ b/etc/api/webfonts/v1/webfonts-api.json @@ -104,6 +104,28 @@ "id": "webfonts.webfonts.list", "parameterOrder": [], "parameters": { + "capability": { + "description": "Controls the font urls in `Webfont.files`, by default, static ttf fonts are sent.", + "enum": [ + "CAPABILITY_UNSPECIFIED", + "WOFF2", + "VF" + ], + "enumDescriptions": [ + "Default means static ttf fonts.", + "Use WOFF2(Compressed)instead of ttf.", + "Prefer variable font files instead of static fonts instantiated at standard weights." + ], + "location": "query", + "repeated": true, + "type": "string" + }, + "family": { + "description": "Filters by Webfont.family, using literal match. If not set, returns all families", + "location": "query", + "repeated": true, + "type": "string" + }, "sort": { "description": "Enables sorting of the list.", "enum": [ @@ -124,6 +146,11 @@ ], "location": "query", "type": "string" + }, + "subset": { + "description": "Filters by Webfont.subset, if subset is found in Webfont.subsets. If not set, returns all families.", + "location": "query", + "type": "string" } }, "path": "v1/webfonts", @@ -134,13 +161,41 @@ } } }, - "revision": "20221206", + "revision": "20240227", "rootUrl": "https://webfonts.googleapis.com/", "schemas": { + "Axis": { + "description": "Metadata for a variable font axis.", + "id": "Axis", + "properties": { + "end": { + "description": "maximum value", + "format": "float", + "type": "number" + }, + "start": { + "description": "minimum value", + "format": "float", + "type": "number" + }, + "tag": { + "description": "tag name.", + "type": "string" + } + }, + "type": "object" + }, "Webfont": { "description": "Metadata describing a family of fonts.", "id": "Webfont", "properties": { + "axes": { + "description": "Axis for variable fonts.", + "items": { + "$ref": "Axis" + }, + "type": "array" + }, "category": { "description": "The category of the font.", "type": "string" @@ -164,6 +219,10 @@ "description": "The date (format \"yyyy-MM-dd\") the font was modified for the last time.", "type": "string" }, + "menu": { + "description": "Font URL for menu subset, a subset of the font that is enough to display the font name", + "type": "string" + }, "subsets": { "description": "The scripts supported by the font.", "items": { diff --git a/etc/api/webrisk/v1/webrisk-api.json b/etc/api/webrisk/v1/webrisk-api.json index 9faf036637..9bc276d816 100644 --- a/etc/api/webrisk/v1/webrisk-api.json +++ b/etc/api/webrisk/v1/webrisk-api.json @@ -228,7 +228,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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}/operations", "httpMethod": "GET", "id": "webrisk.projects.operations.list", @@ -298,38 +298,6 @@ ] } } - }, - "uris": { - "methods": { - "submit": { - "description": "Submits a URI suspected of containing malicious content to be reviewed. Returns a google.longrunning.Operation which, once the review is complete, is updated with its result. You can use the [Pub/Sub API] (https://cloud.google.com/pubsub) to receive notifications for the returned Operation. If the result verifies the existence of malicious content, the site will be added to the [Google's Social Engineering lists] (https://support.google.com/webmasters/answer/6350487/) in order to protect users that could get exposed to this threat in the future. Only allowlisted projects can use this method during Early Access. Please reach out to Sales or your customer engineer to obtain access.", - "flatPath": "v1/projects/{projectsId}/uris:submit", - "httpMethod": "POST", - "id": "webrisk.projects.uris.submit", - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. The name of the project that is making the submission. This string is in the format \"projects/{project_number}\".", - "location": "path", - "pattern": "^projects/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+parent}/uris:submit", - "request": { - "$ref": "GoogleCloudWebriskV1SubmitUriRequest" - }, - "response": { - "$ref": "GoogleLongrunningOperation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - } } } }, @@ -452,7 +420,7 @@ } } }, - "revision": "20230121", + "revision": "20240303", "rootUrl": "https://webrisk.googleapis.com/", "schemas": { "GoogleCloudWebriskV1ComputeThreatListDiffResponse": { @@ -671,27 +639,6 @@ "description": "Wraps a URI that might be displaying malicious content.", "id": "GoogleCloudWebriskV1Submission", "properties": { - "threatTypes": { - "description": "ThreatTypes found to be associated with the submitted URI after reviewing it. This might be empty if the URI was not added to any list.", - "items": { - "enum": [ - "THREAT_TYPE_UNSPECIFIED", - "MALWARE", - "SOCIAL_ENGINEERING", - "UNWANTED_SOFTWARE", - "SOCIAL_ENGINEERING_EXTENDED_COVERAGE" - ], - "enumDescriptions": [ - "No entries should match this threat type. This threat type is unused.", - "Malware targeting any platform.", - "Social engineering targeting any platform.", - "Unwanted software targeting any platform.", - "A list of extended coverage social engineering URIs targeting any platform." - ], - "type": "string" - }, - "type": "array" - }, "uri": { "description": "Required. The URI that is being reported for malicious content to be analyzed.", "type": "string" @@ -699,54 +646,6 @@ }, "type": "object" }, - "GoogleCloudWebriskV1SubmitUriMetadata": { - "description": "Metadata for the Submit URI long-running operation.", - "id": "GoogleCloudWebriskV1SubmitUriMetadata", - "properties": { - "createTime": { - "description": "Creation time of the operation.", - "format": "google-datetime", - "type": "string" - }, - "state": { - "description": "The state of the operation.", - "enum": [ - "STATE_UNSPECIFIED", - "RUNNING", - "SUCCEEDED", - "CANCELLED", - "FAILED", - "CLOSED" - ], - "enumDescriptions": [ - "Default unspecified state.", - "The operation is currently running.", - "The operation finished with a success status.", - "The operation was cancelled.", - "The operation finished with a failure status.", - "The operation was closed with no action taken." - ], - "type": "string" - }, - "updateTime": { - "description": "Latest update time of the operation.", - "format": "google-datetime", - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudWebriskV1SubmitUriRequest": { - "description": "Request to send a potentially malicious URI to WebRisk.", - "id": "GoogleCloudWebriskV1SubmitUriRequest", - "properties": { - "submission": { - "$ref": "GoogleCloudWebriskV1Submission", - "description": "Required. The submission that contains the URI to be scanned." - } - }, - "type": "object" - }, "GoogleCloudWebriskV1ThreatEntryAdditions": { "description": "Contains the set of entries to add to a local database. May contain a combination of compressed and raw data in a single response.", "id": "GoogleCloudWebriskV1ThreatEntryAdditions", @@ -833,7 +732,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/etc/api/websecurityscanner/v1/websecurityscanner-api.json b/etc/api/websecurityscanner/v1/websecurityscanner-api.json index 40835947bd..400287ffbd 100644 --- a/etc/api/websecurityscanner/v1/websecurityscanner-api.json +++ b/etc/api/websecurityscanner/v1/websecurityscanner-api.json @@ -526,7 +526,7 @@ } } }, - "revision": "20230122", + "revision": "20240302", "rootUrl": "https://websecurityscanner.googleapis.com/", "schemas": { "Authentication": { @@ -539,6 +539,7 @@ }, "googleAccount": { "$ref": "GoogleAccount", + "deprecated": true, "description": "Authentication using a Google account." }, "iapCredential": { @@ -722,6 +723,7 @@ "type": "object" }, "GoogleAccount": { + "deprecated": true, "description": "Describes authentication configuration that uses a Google account.", "id": "GoogleAccount", "properties": { @@ -1027,7 +1029,8 @@ "UNSUPPORTED_BLACKLIST_PATTERN_FORMAT", "UNSUPPORTED_FILTER", "UNSUPPORTED_FINDING_TYPE", - "UNSUPPORTED_URL_SCHEME" + "UNSUPPORTED_URL_SCHEME", + "CLOUD_ASSET_INVENTORY_ASSET_NOT_FOUND" ], "enumDescriptions": [ "There is no error.", @@ -1071,7 +1074,8 @@ "One or more blacklist patterns were in the wrong format.", "The supplied filter is not supported.", "The supplied finding type is not supported. For example, we do not provide findings of the given finding type.", - "The URL scheme of one or more of the supplied URLs is not supported." + "The URL scheme of one or more of the supplied URLs is not supported.", + "CAI is not able to list assets." ], "type": "string" }, diff --git a/etc/api/websecurityscanner/v1alpha/websecurityscanner-api.json b/etc/api/websecurityscanner/v1alpha/websecurityscanner-api.json index 4b9535199c..9ce31c568e 100644 --- a/etc/api/websecurityscanner/v1alpha/websecurityscanner-api.json +++ b/etc/api/websecurityscanner/v1alpha/websecurityscanner-api.json @@ -526,7 +526,7 @@ } } }, - "revision": "20230122", + "revision": "20240302", "rootUrl": "https://websecurityscanner.googleapis.com/", "schemas": { "Authentication": { @@ -618,7 +618,10 @@ "XSS_ANGULAR_CALLBACK", "INVALID_HEADER", "MISSPELLED_SECURITY_HEADER_NAME", - "MISMATCHING_SECURITY_HEADER_VALUES" + "MISMATCHING_SECURITY_HEADER_VALUES", + "ACCESSIBLE_GIT_REPOSITORY", + "ACCESSIBLE_SVN_REPOSITORY", + "ACCESSIBLE_ENV_FILE" ], "enumDescriptions": [ "The invalid finding type.", @@ -632,7 +635,10 @@ "A cross-site scripting (XSS) vulnerability in AngularJS module that occurs when a user-provided string is interpolated by Angular.", "A malformed or invalid valued header.", "Misspelled security header name.", - "Mismatching values in a duplicate security header." + "Mismatching values in a duplicate security header.", + "A world-readable git repository that potentially leaks source code, commit history or sensitive information such as credentials.", + "A world-readable subversion repository that potentially leaks source code, commit history or sensitive information such as credentials.", + "A world-readable env file that potentially leaks source code, commit history or sensitive information such as credentials." ], "type": "string" }, @@ -706,7 +712,10 @@ "XSS_ANGULAR_CALLBACK", "INVALID_HEADER", "MISSPELLED_SECURITY_HEADER_NAME", - "MISMATCHING_SECURITY_HEADER_VALUES" + "MISMATCHING_SECURITY_HEADER_VALUES", + "ACCESSIBLE_GIT_REPOSITORY", + "ACCESSIBLE_SVN_REPOSITORY", + "ACCESSIBLE_ENV_FILE" ], "enumDescriptions": [ "The invalid finding type.", @@ -720,7 +729,10 @@ "A cross-site scripting (XSS) vulnerability in AngularJS module that occurs when a user-provided string is interpolated by Angular.", "A malformed or invalid valued header.", "Misspelled security header name.", - "Mismatching values in a duplicate security header." + "Mismatching values in a duplicate security header.", + "A world-readable git repository that potentially leaks source code, commit history or sensitive information such as credentials.", + "A world-readable subversion repository that potentially leaks source code, commit history or sensitive information such as credentials.", + "A world-readable env file that potentially leaks source code, commit history or sensitive information such as credentials." ], "type": "string" } diff --git a/etc/api/websecurityscanner/v1beta/websecurityscanner-api.json b/etc/api/websecurityscanner/v1beta/websecurityscanner-api.json index c4e1255fb2..9c347f8a07 100644 --- a/etc/api/websecurityscanner/v1beta/websecurityscanner-api.json +++ b/etc/api/websecurityscanner/v1beta/websecurityscanner-api.json @@ -526,7 +526,7 @@ } } }, - "revision": "20230122", + "revision": "20240302", "rootUrl": "https://websecurityscanner.googleapis.com/", "schemas": { "Authentication": { @@ -539,6 +539,7 @@ }, "googleAccount": { "$ref": "GoogleAccount", + "deprecated": true, "description": "Authentication using a Google account." }, "iapCredential": { @@ -720,6 +721,7 @@ "type": "object" }, "GoogleAccount": { + "deprecated": true, "description": "Describes authentication configuration that uses a Google account.", "id": "GoogleAccount", "properties": { @@ -1050,7 +1052,8 @@ "UNSUPPORTED_BLACKLIST_PATTERN_FORMAT", "UNSUPPORTED_FILTER", "UNSUPPORTED_FINDING_TYPE", - "UNSUPPORTED_URL_SCHEME" + "UNSUPPORTED_URL_SCHEME", + "CLOUD_ASSET_INVENTORY_ASSET_NOT_FOUND" ], "enumDescriptions": [ "There is no error.", @@ -1094,7 +1097,8 @@ "One or more blacklist patterns were in the wrong format.", "The supplied filter is not supported.", "The supplied finding type is not supported. For example, we do not provide findings of the given finding type.", - "The URL scheme of one or more of the supplied URLs is not supported." + "The URL scheme of one or more of the supplied URLs is not supported.", + "CAI is not able to list assets." ], "type": "string" }, diff --git a/etc/api/workflowexecutions/v1/workflowexecutions-api.json b/etc/api/workflowexecutions/v1/workflowexecutions-api.json index 3551109662..f8580de6f3 100644 --- a/etc/api/workflowexecutions/v1/workflowexecutions-api.json +++ b/etc/api/workflowexecutions/v1/workflowexecutions-api.json @@ -172,7 +172,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", @@ -199,6 +199,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "exportData": { + "description": "Returns all metadata stored about an execution, excluding most data that is already accessible using other API methods.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}/executions/{executionsId}:exportData", + "httpMethod": "GET", + "id": "workflowexecutions.projects.locations.workflows.executions.exportData", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the execution for which data is to be exported. Format: projects/{project}/locations/{location}/workflows/{workflow}/executions/{execution}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+/executions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:exportData", + "response": { + "$ref": "ExportDataResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Returns an execution of the given name.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}/executions/{executionsId}", @@ -224,7 +249,7 @@ ], "enumDescriptions": [ "The default / unset value.", - "Includes only basic metadata about the execution. Following fields are returned: name, start_time, end_time, duration, state and workflow_revision_id.", + "Includes only basic metadata about the execution. The following fields are returned: name, start_time, end_time, duration, state, and workflow_revision_id.", "Includes all data." ], "location": "query", @@ -248,6 +273,16 @@ "parent" ], "parameters": { + "filter": { + "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 `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" + }, "pageSize": { "description": "Maximum number of executions to return per call. Max supported value depends on the selected Execution view: it's 1000 for BASIC and 100 for FULL. The default value used if the field is not specified is 100, regardless of the selected view. Values greater than the max value will be coerced down to it.", "format": "int32", @@ -255,7 +290,7 @@ "type": "integer" }, "pageToken": { - "description": "A page token, received from a previous `ListExecutions` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListExecutions` must match the call that provided the page token.", + "description": "A page token, received from a previous `ListExecutions` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListExecutions` must match the call that provided the page token. Note that pagination is applied to dynamic data. The list of executions returned can change between page requests.", "location": "query", "type": "string" }, @@ -275,7 +310,7 @@ ], "enumDescriptions": [ "The default / unset value.", - "Includes only basic metadata about the execution. Following fields are returned: name, start_time, end_time, duration, state and workflow_revision_id.", + "Includes only basic metadata about the execution. The following fields are returned: name, start_time, end_time, duration, state, and workflow_revision_id.", "Includes all data." ], "location": "query", @@ -290,6 +325,129 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "callbacks": { + "methods": { + "list": { + "description": "Returns a list of active callbacks that belong to the execution with the given name. The returned callbacks are ordered by callback ID.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}/executions/{executionsId}/callbacks", + "httpMethod": "GET", + "id": "workflowexecutions.projects.locations.workflows.executions.callbacks.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of callbacks to return per call. The default value is 100 and is also the maximum value.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListCallbacks` call. Provide this to retrieve the subsequent page. Note that pagination is applied to dynamic data. The list of callbacks returned can change between page requests if callbacks are created or deleted.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the execution for which the callbacks should be listed. Format: projects/{project}/locations/{location}/workflows/{workflow}/executions/{execution}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+/executions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/callbacks", + "response": { + "$ref": "ListCallbacksResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "stepEntries": { + "methods": { + "get": { + "description": "Gets a step entry.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}/executions/{executionsId}/stepEntries/{stepEntriesId}", + "httpMethod": "GET", + "id": "workflowexecutions.projects.locations.workflows.executions.stepEntries.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the step entry to retrieve. Format: projects/{project}/locations/{location}/workflows/{workflow}/executions/{execution}/stepEntries/{step_entry}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+/executions/[^/]+/stepEntries/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "StepEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists step entries for the corresponding workflow execution. Returned entries are ordered by their create_time.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}/executions/{executionsId}/stepEntries", + "httpMethod": "GET", + "id": "workflowexecutions.projects.locations.workflows.executions.stepEntries.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filters applied to the `[StepEntries.ListStepEntries]` results. The following fields are supported for filtering: `entryId`, `createTime`, `updateTime`, `routine`, `step`, `stepType`, `state`. For details, see AIP-160. For example, if you are using the Google APIs Explorer: `state=\"SUCCEEDED\"` or `createTime>\"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 `[StepEntries.ListStepEntries]` results. By default the ordering is based on ascending `entryId`. The following fields are supported for ordering: `entryId`, `createTime`, `updateTime`, `routine`, `step`, `stepType`, `state`. For details, see AIP-132.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Number of step entries to return per call. The default max is 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListStepEntries` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListStepEntries` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the workflow execution to list entries for. Format: projects/{project}/locations/{location}/workflows/{workflow}/executions/{execution}/stepEntries/", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+/executions/[^/]+$", + "required": true, + "type": "string" + }, + "skip": { + "description": "Optional. The number of step entries to skip. It can be used with or without a pageToken. If used with a pageToken, then it indicates the number of step entries to skip starting from the requested page.", + "format": "int32", + "location": "query", + "type": "integer" + } + }, + "path": "v1/{+parent}/stepEntries", + "response": { + "$ref": "ListStepEntriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } } } @@ -299,9 +457,40 @@ } } }, - "revision": "20230110", + "revision": "20240220", "rootUrl": "https://workflowexecutions.googleapis.com/", "schemas": { + "Callback": { + "description": "An instance of a Callback created by an execution.", + "id": "Callback", + "properties": { + "availablePayloads": { + "description": "Output only. The payloads received by the callback that have not been processed by a waiting execution step.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "method": { + "description": "Output only. The method accepted by the callback. For example: GET, POST, PUT.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. The resource name of the callback. Format: projects/{project}/locations/{location}/workflows/{workflow}/executions/{execution}/callback/{callback}", + "readOnly": true, + "type": "string" + }, + "waiters": { + "description": "Output only. Number of execution steps waiting on this callback.", + "format": "int64", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "CancelExecutionRequest": { "description": "Request for the CancelExecution method.", "id": "CancelExecutionRequest", @@ -327,6 +516,17 @@ }, "type": "object" }, + "Exception": { + "description": "Exception describes why the step entry failed.", + "id": "Exception", + "properties": { + "payload": { + "description": "Error message represented as a JSON string.", + "type": "string" + } + }, + "type": "object" + }, "Execution": { "description": "A running instance of a [Workflow](/workflows/docs/reference/rest/v1/projects.locations.workflows).", "id": "Execution", @@ -340,15 +540,27 @@ "enum": [ "CALL_LOG_LEVEL_UNSPECIFIED", "LOG_ALL_CALLS", - "LOG_ERRORS_ONLY" + "LOG_ERRORS_ONLY", + "LOG_NONE" ], "enumDescriptions": [ "No call logging level specified.", "Log all call steps within workflows, all call returns, and all exceptions raised.", - "Log only exceptions that are raised from call steps within workflows." + "Log only exceptions that are raised from call steps within workflows.", + "Explicitly log nothing." ], "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", @@ -366,6 +578,13 @@ "description": "Output only. The error which caused the execution to finish prematurely. The value is only present if the execution's state is `FAILED` or `CANCELLED`.", "readOnly": true }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels associated with this execution. Labels can contain at most 64 entries. Keys and values can be no longer than 63 characters and can only contain lowercase letters, numeric characters, underscores, and dashes. Label keys must start with a letter. International characters are allowed. By default, labels are inherited from the workflow but are overridden by any labels associated with the execution.", + "type": "object" + }, "name": { "description": "Output only. The resource name of the execution. Format: projects/{project}/locations/{location}/workflows/{workflow}/executions/{execution}", "readOnly": true, @@ -389,18 +608,27 @@ "ACTIVE", "SUCCEEDED", "FAILED", - "CANCELLED" + "CANCELLED", + "UNAVAILABLE", + "QUEUED" ], "enumDescriptions": [ "Invalid state.", "The execution is in progress.", "The execution finished successfully.", "The execution failed with an error.", - "The execution was stopped intentionally." + "The execution was stopped intentionally.", + "Execution data is unavailable. See the `state_error` field.", + "Request has been placed in the backlog for processing at a later time." ], "readOnly": true, "type": "string" }, + "stateError": { + "$ref": "StateError", + "description": "Output only. Error regarding the state of the Execution resource. For example, this field will have error details if the execution data is unavailable due to revoked KMS key permissions.", + "readOnly": true + }, "status": { "$ref": "Status", "description": "Output only. Status tracks the current steps and progress data of this execution.", @@ -414,6 +642,35 @@ }, "type": "object" }, + "ExportDataResponse": { + "description": "Response for the ExportData method.", + "id": "ExportDataResponse", + "properties": { + "data": { + "description": "The JSON string with customer data and metadata for an execution with the given name", + "type": "string" + } + }, + "type": "object" + }, + "ListCallbacksResponse": { + "description": "RPC response object for the ListCallbacks method.", + "id": "ListCallbacksResponse", + "properties": { + "callbacks": { + "description": "The callbacks which match the request.", + "items": { + "$ref": "Callback" + }, + "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" + }, "ListExecutionsResponse": { "description": "Response for the ListExecutions method.", "id": "ListExecutionsResponse", @@ -432,6 +689,59 @@ }, "type": "object" }, + "ListStepEntriesResponse": { + "description": "Response message for ExecutionHistory.ListStepEntries.", + "id": "ListStepEntriesResponse", + "properties": { + "nextPageToken": { + "description": "A token to retrieve next page of results. Pass this value in the ListStepEntriesRequest.page_token field in the subsequent call to `ListStepEntries` method to retrieve the next page of results.", + "type": "string" + }, + "stepEntries": { + "description": "The list of entries.", + "items": { + "$ref": "StepEntry" + }, + "type": "array" + }, + "totalSize": { + "description": "Indicates the total number of StepEntries that matched the request filter. For running executions, this number shows the number of StepEntries that are executed thus far.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "NavigationInfo": { + "description": "NavigationInfo describes what steps if any come before or after this step, or what steps are parents or children of this step.", + "id": "NavigationInfo", + "properties": { + "children": { + "description": "Step entries that can be reached by \"stepping into\" e.g. a subworkflow call.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "next": { + "description": "The index of the next step in the current workflow, if any.", + "format": "int64", + "type": "string" + }, + "parent": { + "description": "The step entry, if any, that can be reached by \"stepping out\" of the current workflow being executed.", + "format": "int64", + "type": "string" + }, + "previous": { + "description": "The index of the previous step in the current workflow, if any.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "Position": { "description": "Position contains source position information about the stack trace element such as line number, column number and length of the code block in bytes.", "id": "Position", @@ -462,11 +772,11 @@ "additionalProperties": { "type": "string" }, - "description": "Attributes for this message. If this field is empty, the message must contain non-empty data. This can be used to filter messages on the subscription.", + "description": "Optional. Attributes for this message. If this field is empty, the message must contain non-empty data. This can be used to filter messages on the subscription.", "type": "object" }, "data": { - "description": "The message data field. If this field is empty, the message must contain at least one attribute.", + "description": "Optional. The message data field. If this field is empty, the message must contain at least one attribute.", "format": "byte", "type": "string" }, @@ -475,7 +785,7 @@ "type": "string" }, "orderingKey": { - "description": "If non-empty, identifies related messages for which publish order should be respected. If a `Subscription` has `enable_message_ordering` set to `true`, messages published with the same non-empty `ordering_key` value will be delivered to subscribers in the order in which they are received by the Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest` must specify the same `ordering_key` value. For more information, see [ordering messages](https://cloud.google.com/pubsub/docs/ordering).", + "description": "Optional. If non-empty, identifies related messages for which publish order should be respected. If a `Subscription` has `enable_message_ordering` set to `true`, messages published with the same non-empty `ordering_key` value will be delivered to subscribers in the order in which they are received by the Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest` must specify the same `ordering_key` value. For more information, see [ordering messages](https://cloud.google.com/pubsub/docs/ordering).", "type": "string" }, "publishTime": { @@ -519,6 +829,29 @@ }, "type": "object" }, + "StateError": { + "description": "Describes an error related to the current state of the Execution resource.", + "id": "StateError", + "properties": { + "details": { + "description": "Provides specifics about the error.", + "type": "string" + }, + "type": { + "description": "The type of this state error.", + "enum": [ + "TYPE_UNSPECIFIED", + "KMS_ERROR" + ], + "enumDescriptions": [ + "No type specified.", + "Caused by an issue with KMS." + ], + "type": "string" + } + }, + "type": "object" + }, "Status": { "description": "Represents the current status of this execution.", "id": "Status", @@ -548,6 +881,163 @@ }, "type": "object" }, + "StepEntry": { + "description": "An StepEntry contains debugging information for a step transition in a workflow execution.", + "id": "StepEntry", + "properties": { + "createTime": { + "description": "Output only. The creation time of the step entry.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "entryId": { + "description": "Output only. The numeric ID of this step entry, used for navigation.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "exception": { + "$ref": "Exception", + "description": "Output only. The exception thrown by the step entry.", + "readOnly": true + }, + "name": { + "description": "Output only. The full resource name of the step entry. Each step entry has a unique entry ID, which is a monotonically increasing counter. Step entry names have the format: `projects/{project}/locations/{location}/workflows/{workflow}/executions/{execution}/stepEntries/{step_entry}`.", + "readOnly": true, + "type": "string" + }, + "navigationInfo": { + "$ref": "NavigationInfo", + "description": "Output only. The NavigationInfo associated to this step.", + "readOnly": true + }, + "routine": { + "description": "Output only. The name of the routine this step entry belongs to. A routine name is the subworkflow name defined in the YAML source code. The top level routine name is `main`.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The state of the step entry.", + "enum": [ + "STATE_UNSPECIFIED", + "STATE_IN_PROGRESS", + "STATE_SUCCEEDED", + "STATE_FAILED" + ], + "enumDescriptions": [ + "Invalid state.", + "The step entry is in progress.", + "The step entry finished successfully.", + "The step entry failed with an error." + ], + "readOnly": true, + "type": "string" + }, + "step": { + "description": "Output only. The name of the step this step entry belongs to.", + "readOnly": true, + "type": "string" + }, + "stepEntryMetadata": { + "$ref": "StepEntryMetadata", + "description": "Output only. The StepEntryMetadata associated to this step.", + "readOnly": true + }, + "stepType": { + "description": "Output only. The type of the step this step entry belongs to.", + "enum": [ + "STEP_TYPE_UNSPECIFIED", + "STEP_ASSIGN", + "STEP_STD_LIB_CALL", + "STEP_CONNECTOR_CALL", + "STEP_SUBWORKFLOW_CALL", + "STEP_CALL", + "STEP_SWITCH", + "STEP_CONDITION", + "STEP_FOR", + "STEP_FOR_ITERATION", + "STEP_PARALLEL_FOR", + "STEP_PARALLEL_BRANCH", + "STEP_PARALLEL_BRANCH_ENTRY", + "STEP_TRY_RETRY_EXCEPT", + "STEP_TRY", + "STEP_RETRY", + "STEP_EXCEPT", + "STEP_RETURN", + "STEP_RAISE", + "STEP_GOTO" + ], + "enumDescriptions": [ + "Invalid step type.", + "The step entry assigns new variable(s).", + "The step entry calls a standard library routine.", + "The step entry calls a connector.", + "The step entry calls a subworklfow.", + "The step entry calls a subworkflow/stdlib.", + "The step entry executes a switch-case block.", + "The step entry executes a condition inside a switch.", + "The step entry executes a for loop.", + "The step entry executes a iteration of a for loop.", + "The step entry executes a parallel for loop.", + "The step entry executes a series of parallel branch(es).", + "The step entry executes a branch of a parallel branch.", + "The step entry executes a try/retry/except block.", + "The step entry executes the try part of a try/retry/except block.", + "The step entry executes the retry part of a try/retry/except block.", + "The step entry executes the except part of a try/retry/except block.", + "The step entry returns.", + "The step entry raises an error.", + "The step entry jumps to another step." + ], + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The most recently updated time of the step entry.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "StepEntryMetadata": { + "description": "StepEntryMetadata contains metadata information about this step.", + "id": "StepEntryMetadata", + "properties": { + "progressNumber": { + "description": "Progress number represents the current state of the current progress. eg: A step entry represents the 4th iteration in a progress of PROGRESS_TYPE_FOR.", + "format": "int64", + "type": "string" + }, + "progressType": { + "description": "Progress type of this step entry.", + "enum": [ + "PROGRESS_TYPE_UNSPECIFIED", + "PROGRESS_TYPE_FOR", + "PROGRESS_TYPE_SWITCH", + "PROGRESS_TYPE_RETRY", + "PROGRESS_TYPE_PARALLEL_FOR", + "PROGRESS_TYPE_PARALLEL_BRANCH" + ], + "enumDescriptions": [ + "Current step entry does not have any progress data.", + "Current step entry is in progress of a FOR step.", + "Current step entry is in progress of a SWITCH step.", + "Current step entry is in progress of a RETRY step.", + "Current step entry is in progress of a PARALLEL FOR step.", + "Current step entry is in progress of a PARALLEL BRANCH step." + ], + "type": "string" + }, + "threadId": { + "description": "Child thread id that this step entry belongs to.", + "type": "string" + } + }, + "type": "object" + }, "TriggerPubsubExecutionRequest": { "description": "Request for the TriggerPubsubExecution method.", "id": "TriggerPubsubExecutionRequest", @@ -556,6 +1046,11 @@ "description": "Required. LINT: LEGACY_NAMES The query parameter value for __GCP_CloudEventsMode, set by the Eventarc service when configuring triggers.", "type": "string" }, + "deliveryAttempt": { + "description": "The number of attempts that have been made to deliver this message. This is set by Pub/Sub for subscriptions that have the \"dead letter\" feature enabled, and hence provided here for compatibility, but is ignored by Workflows.", + "format": "int32", + "type": "integer" + }, "message": { "$ref": "PubsubMessage", "description": "Required. The message of the Pub/Sub push notification." diff --git a/etc/api/workflowexecutions/v1beta/workflowexecutions-api.json b/etc/api/workflowexecutions/v1beta/workflowexecutions-api.json index f22483d983..7ec8f5229f 100644 --- a/etc/api/workflowexecutions/v1beta/workflowexecutions-api.json +++ b/etc/api/workflowexecutions/v1beta/workflowexecutions-api.json @@ -269,7 +269,7 @@ } } }, - "revision": "20230110", + "revision": "20240220", "rootUrl": "https://workflowexecutions.googleapis.com/", "schemas": { "CancelExecutionRequest": { @@ -353,14 +353,18 @@ "ACTIVE", "SUCCEEDED", "FAILED", - "CANCELLED" + "CANCELLED", + "UNAVAILABLE", + "QUEUED" ], "enumDescriptions": [ "Invalid state.", "The execution is in progress.", "The execution finished successfully.", "The execution failed with an error.", - "The execution was stopped intentionally." + "The execution was stopped intentionally.", + "Reserved for future use.", + "Request has been placed in the backlog for processing at a later time." ], "readOnly": true, "type": "string" diff --git a/etc/api/workflows/v1/workflows-api.json b/etc/api/workflows/v1/workflows-api.json index 0afd8b1908..bde150f2c8 100644 --- a/etc/api/workflows/v1/workflows-api.json +++ b/etc/api/workflows/v1/workflows-api.json @@ -230,7 +230,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "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": "workflows.projects.locations.operations.list", @@ -347,6 +347,11 @@ "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$", "required": true, "type": "string" + }, + "revisionId": { + "description": "Optional. The revision of the workflow to retrieve. If the revision_id is empty, the latest revision is retrieved. The format is \"000001-a4d\", where the first six characters define the zero-padded decimal revision number. They are followed by a hyphen and three hexadecimal characters.", + "location": "query", + "type": "string" } }, "path": "v1/{+name}", @@ -367,7 +372,7 @@ ], "parameters": { "filter": { - "description": "Filter to restrict results to specific workflows.", + "description": "Filter to restrict results to specific workflows. For details, see AIP-160. For example, if you are using the Google APIs Explorer: `state=\"SUCCEEDED\"` or `createTime>\"2023-08-01\" AND state=\"FAILED\"`", "location": "query", "type": "string" }, @@ -403,6 +408,42 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "listRevisions": { + "description": "Lists revisions for a given workflow.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}:listRevisions", + "httpMethod": "GET", + "id": "workflows.projects.locations.workflows.listRevisions", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Workflow for which the revisions should be listed. Format: projects/{project}/locations/{location}/workflows/{workflow}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The maximum number of revisions to return per page. If a value is not specified, a default value of 20 is used. The maximum permitted value is 100. Values greater than 100 are coerced down to 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The page token, received from a previous ListWorkflowRevisions call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}:listRevisions", + "response": { + "$ref": "ListWorkflowRevisionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "patch": { "description": "Updates an existing workflow. Running this method has no impact on already running executions of the workflow. A new revision of the workflow might be created as a result of a successful update operation. In that case, the new revision is used in new workflow executions.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}", @@ -413,7 +454,7 @@ ], "parameters": { "name": { - "description": "The resource name of the workflow. Format: projects/{project}/locations/{location}/workflows/{workflow}", + "description": "The resource name of the workflow. Format: projects/{project}/locations/{location}/workflows/{workflow}. This is a workflow-wide field and is not tied to a specific revision.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$", "required": true, @@ -444,7 +485,7 @@ } } }, - "revision": "20230105", + "revision": "20240207", "rootUrl": "https://workflows.googleapis.com/", "schemas": { "Empty": { @@ -489,6 +530,24 @@ }, "type": "object" }, + "ListWorkflowRevisionsResponse": { + "description": "Response for the ListWorkflowRevisions method.", + "id": "ListWorkflowRevisionsResponse", + "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" + }, + "workflows": { + "description": "The revisions of the workflow, ordered in reverse chronological order.", + "items": { + "$ref": "Workflow" + }, + "type": "array" + } + }, + "type": "object" + }, "ListWorkflowsResponse": { "description": "Response for the ListWorkflows method.", "id": "ListWorkflowsResponse", @@ -515,7 +574,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -577,7 +636,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" } }, @@ -612,6 +671,29 @@ }, "type": "object" }, + "StateError": { + "description": "Describes an error related to the current state of the workflow.", + "id": "StateError", + "properties": { + "details": { + "description": "Provides specifics about the error.", + "type": "string" + }, + "type": { + "description": "The type of this state error.", + "enum": [ + "TYPE_UNSPECIFIED", + "KMS_ERROR" + ], + "enumDescriptions": [ + "No type specified.", + "Caused by an issue with KMS." + ], + "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", @@ -643,25 +725,45 @@ "description": "Workflow program to be executed by Workflows.", "id": "Workflow", "properties": { + "callLogLevel": { + "description": "Optional. Describes the level of platform logging to apply to calls and call responses during executions of this workflow. If both the workflow and the execution specify a logging level, the execution level takes precedence.", + "enum": [ + "CALL_LOG_LEVEL_UNSPECIFIED", + "LOG_ALL_CALLS", + "LOG_ERRORS_ONLY", + "LOG_NONE" + ], + "enumDescriptions": [ + "No call logging level specified.", + "Log all call steps within workflows, all call returns, and all exceptions raised.", + "Log only exceptions that are raised from call steps within workflows.", + "Explicitly log nothing." + ], + "type": "string" + }, "createTime": { - "description": "Output only. The timestamp for when the workflow was created.", + "description": "Output only. The timestamp for when the workflow was created. This is a workflow-wide field and is not tied to a specific revision.", "format": "google-datetime", "readOnly": true, "type": "string" }, + "cryptoKeyName": { + "description": "Optional. The resource name of a KMS crypto key used to encrypt or decrypt the data associated with the workflow. Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey} Using `-` as a wildcard for the `{project}` or not providing one at all will infer the project from the account. If not provided, data associated with the workflow will not be CMEK-encrypted.", + "type": "string" + }, "description": { - "description": "Description of the workflow provided by the user. Must be at most 1000 unicode characters long.", + "description": "Description of the workflow provided by the user. Must be at most 1000 Unicode characters long. This is a workflow-wide field and is not tied to a specific revision.", "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, - "description": "Labels associated with this workflow. Labels can contain at most 64 entries. Keys and values can be no longer than 63 characters and can only contain lowercase letters, numeric characters, underscores, and dashes. Label keys must start with a letter. International characters are allowed.", + "description": "Labels associated with this workflow. Labels can contain at most 64 entries. Keys and values can be no longer than 63 characters and can only contain lowercase letters, numeric characters, underscores, and dashes. Label keys must start with a letter. International characters are allowed. This is a workflow-wide field and is not tied to a specific revision.", "type": "object" }, "name": { - "description": "The resource name of the workflow. Format: projects/{project}/locations/{location}/workflows/{workflow}", + "description": "The resource name of the workflow. Format: projects/{project}/locations/{location}/workflows/{workflow}. This is a workflow-wide field and is not tied to a specific revision.", "type": "string" }, "revisionCreateTime": { @@ -671,7 +773,7 @@ "type": "string" }, "revisionId": { - "description": "Output only. The revision of the workflow. A new revision of a workflow is created as a result of updating the following properties of a workflow: - Service account - Workflow code to be executed The format is \"000001-a4d\", where the first 6 characters define the zero-padded revision ordinal number. They are followed by a hyphen and 3 hexadecimal random characters.", + "description": "Output only. The revision of the workflow. A new revision of a workflow is created as a result of updating the following properties of a workflow: - Service account - Workflow code to be executed The format is \"000001-a4d\", where the first six characters define the zero-padded revision ordinal number. They are followed by a hyphen and three hexadecimal random characters.", "readOnly": true, "type": "string" }, @@ -687,20 +789,34 @@ "description": "Output only. State of the workflow deployment.", "enum": [ "STATE_UNSPECIFIED", - "ACTIVE" + "ACTIVE", + "UNAVAILABLE" ], "enumDescriptions": [ "Invalid state.", - "The workflow has been deployed successfully and is serving." + "The workflow has been deployed successfully and is serving.", + "Workflow data is unavailable. See the `state_error` field." ], "readOnly": true, "type": "string" }, + "stateError": { + "$ref": "StateError", + "description": "Output only. Error regarding the state of the workflow. For example, this field will have error details if the execution data is unavailable due to revoked KMS key permissions.", + "readOnly": true + }, "updateTime": { - "description": "Output only. The timestamp for when the workflow was last updated.", + "description": "Output only. The timestamp for when the workflow was last updated. This is a workflow-wide field and is not tied to a specific revision.", "format": "google-datetime", "readOnly": true, "type": "string" + }, + "userEnvVars": { + "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 4KiB. Keys cannot be empty strings and cannot start with \"GOOGLE\" or \"WORKFLOWS\".", + "type": "object" } }, "type": "object" diff --git a/etc/api/workflows/v1beta/workflows-api.json b/etc/api/workflows/v1beta/workflows-api.json index 4b8f733ba0..f625eec960 100644 --- a/etc/api/workflows/v1beta/workflows-api.json +++ b/etc/api/workflows/v1beta/workflows-api.json @@ -230,7 +230,7 @@ ] }, "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations", "httpMethod": "GET", "id": "workflows.projects.locations.operations.list", @@ -444,7 +444,7 @@ } } }, - "revision": "20230105", + "revision": "20240207", "rootUrl": "https://workflows.googleapis.com/", "schemas": { "Empty": { @@ -515,7 +515,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { @@ -577,7 +577,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/etc/api/youtube/v3/youtube-api.json b/etc/api/youtube/v3/youtube-api.json index 21fa8274ff..1fdd0111d9 100644 --- a/etc/api/youtube/v3/youtube-api.json +++ b/etc/api/youtube/v3/youtube-api.json @@ -624,6 +624,7 @@ "type": "string" }, "hl": { + "deprecated": true, "description": "Return content in specified language", "location": "query", "type": "string" @@ -716,6 +717,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", @@ -1131,7 +1137,7 @@ "type": "string" }, "moderationStatus": { - "description": "Specifies the requested moderation status. Note, comments can be in statuses, which are not available through this call. For example, this call does not allow to mark a comment as 'likely spam'. Valid values: MODERATION_STATUS_PUBLISHED, MODERATION_STATUS_HELD_FOR_REVIEW, MODERATION_STATUS_REJECTED.", + "description": "Specifies the requested moderation status. Note, comments can be in statuses, which are not available through this call. For example, this call does not allow to mark a comment as 'likely spam'. Valid values: 'heldForReview', 'published' or 'rejected'.", "enum": [ "published", "heldForReview", @@ -2165,6 +2171,196 @@ } } }, + "playlistImages": { + "methods": { + "delete": { + "description": "Deletes a resource.", + "flatPath": "youtube/v3/playlistImages", + "httpMethod": "DELETE", + "id": "youtube.playlistImages.delete", + "parameterOrder": [], + "parameters": { + "id": { + "description": "Id to identify this image. This is returned from by the List method.", + "location": "query", + "type": "string" + }, + "onBehalfOfContentOwner": { + "description": "*Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.", + "location": "query", + "type": "string" + } + }, + "path": "youtube/v3/playlistImages", + "scopes": [ + "https://www.googleapis.com/auth/youtube", + "https://www.googleapis.com/auth/youtube.force-ssl", + "https://www.googleapis.com/auth/youtubepartner" + ] + }, + "insert": { + "description": "Inserts a new resource into this collection.", + "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": { + "description": "*Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.", + "location": "query", + "type": "string" + }, + "onBehalfOfContentOwnerChannel": { + "description": "This parameter can only be used in a properly authorized request. *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwnerChannel* parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.", + "location": "query", + "type": "string" + }, + "part": { + "description": "The *part* parameter specifies the properties that the API response will include.", + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "youtube/v3/playlistImages", + "request": { + "$ref": "PlaylistImage" + }, + "response": { + "$ref": "PlaylistImage" + }, + "scopes": [ + "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.", + "flatPath": "youtube/v3/playlistImages", + "httpMethod": "GET", + "id": "youtube.playlistImages.list", + "parameterOrder": [], + "parameters": { + "maxResults": { + "default": "5", + "description": "The *maxResults* parameter specifies the maximum number of items that should be returned in the result set.", + "format": "uint32", + "location": "query", + "maximum": "50", + "minimum": "0", + "type": "integer" + }, + "onBehalfOfContentOwner": { + "description": "*Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.", + "location": "query", + "type": "string" + }, + "onBehalfOfContentOwnerChannel": { + "description": "This parameter can only be used in a properly authorized request. *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwnerChannel* parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "The *pageToken* parameter identifies a specific page in the result set that should be returned. In an API response, the nextPageToken and prevPageToken properties identify other pages that could be retrieved.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Return PlaylistImages for this playlist id.", + "location": "query", + "type": "string" + }, + "part": { + "description": "The *part* parameter specifies a comma-separated list of one or more playlistImage resource properties that the API response will include. If the parameter identifies a property that contains child properties, the child properties will be included in the response.", + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "youtube/v3/playlistImages", + "response": { + "$ref": "PlaylistImageListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/youtube", + "https://www.googleapis.com/auth/youtube.force-ssl", + "https://www.googleapis.com/auth/youtube.readonly", + "https://www.googleapis.com/auth/youtubepartner" + ] + }, + "update": { + "description": "Updates an existing resource.", + "flatPath": "youtube/v3/playlistImages", + "httpMethod": "PUT", + "id": "youtube.playlistImages.update", + "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": { + "description": "*Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.", + "location": "query", + "type": "string" + }, + "part": { + "description": "The *part* parameter specifies the properties that the API response will include.", + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "youtube/v3/playlistImages", + "request": { + "$ref": "PlaylistImage" + }, + "response": { + "$ref": "PlaylistImage" + }, + "scopes": [ + "https://www.googleapis.com/auth/youtube", + "https://www.googleapis.com/auth/youtube.force-ssl", + "https://www.googleapis.com/auth/youtubepartner" + ], + "supportsMediaUpload": true + } + } + }, "playlistItems": { "methods": { "delete": { @@ -2652,11 +2848,6 @@ "location": "query", "type": "string" }, - "relatedToVideoId": { - "description": "Search related to a resource.", - "location": "query", - "type": "string" - }, "relevanceLanguage": { "description": "Return results relevant to this language.", "location": "query", @@ -2792,6 +2983,20 @@ "location": "query", "type": "string" }, + "videoPaidProductPlacement": { + "enum": [ + "videoPaidProductPlacementUnspecified", + "any", + "true" + ], + "enumDescriptions": [ + "", + "Return all videos, paid product placement or not.", + "Restrict results to only videos with paid product placement." + ], + "location": "query", + "type": "string" + }, "videoSyndicated": { "description": "Filter on syndicated videos.", "enum": [ @@ -3539,6 +3744,7 @@ "type": "string" }, "locale": { + "deprecated": true, "location": "query", "type": "string" }, @@ -3831,7 +4037,7 @@ } } }, - "revision": "20230123", + "revision": "20240303", "rootUrl": "https://youtube.googleapis.com/", "schemas": { "AbuseReport": { @@ -4199,6 +4405,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -4226,9 +4433,11 @@ "type": "string" }, "tokenPagination": { - "$ref": "TokenPagination" + "$ref": "TokenPagination", + "deprecated": true }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } @@ -4340,6 +4549,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -4356,6 +4566,7 @@ "type": "string" }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } @@ -4490,6 +4701,7 @@ "youtube.liveStreams.update" ] }, + "deprecated": true, "description": "The format of the video stream that you are sending to Youtube. ", "type": "string" }, @@ -4582,6 +4794,7 @@ }, "conversionPings": { "$ref": "ChannelConversionPings", + "deprecated": true, "description": "The conversionPings object encapsulates information about conversion pings that need to be respected by the channel." }, "etag": { @@ -4670,6 +4883,7 @@ "description": "Branding properties for the channel view." }, "hints": { + "deprecated": true, "description": "Additional experimental branding properties.", "items": { "$ref": "PropertyValue" @@ -4682,6 +4896,7 @@ }, "watch": { "$ref": "WatchSettings", + "deprecated": true, "description": "Branding properties for the watch page." } }, @@ -4694,6 +4909,7 @@ "relatedPlaylists": { "properties": { "favorites": { + "deprecated": true, "description": "The ID of the playlist that contains the channel\"s favorite videos. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list.", "type": "string" }, @@ -4706,10 +4922,12 @@ "type": "string" }, "watchHistory": { + "deprecated": true, "description": "The ID of the playlist that contains the channel\"s watch history. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list.", "type": "string" }, "watchLater": { + "deprecated": true, "description": "The ID of the playlist that contains the channel\"s watch later playlist. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list.", "type": "string" } @@ -4782,6 +5000,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -4809,9 +5028,11 @@ "type": "string" }, "tokenPagination": { - "$ref": "TokenPagination" + "$ref": "TokenPagination", + "deprecated": true }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } @@ -4879,6 +5100,7 @@ "additionalProperties": { "$ref": "ChannelSectionLocalization" }, + "deprecated": true, "description": "Localizations for different languages", "type": "object" }, @@ -4888,6 +5110,7 @@ }, "targeting": { "$ref": "ChannelSectionTargeting", + "deprecated": true, "description": "The targeting object contains basic targeting settings about the channel section." } }, @@ -4922,6 +5145,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -4938,6 +5162,7 @@ "type": "string" }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } @@ -4949,6 +5174,7 @@ "id": "ChannelSectionLocalization", "properties": { "title": { + "deprecated": true, "description": "The localized strings for channel section's title.", "type": "string" } @@ -4964,11 +5190,13 @@ "type": "string" }, "defaultLanguage": { + "deprecated": true, "description": "The language of the channel section's default title and description.", "type": "string" }, "localized": { "$ref": "ChannelSectionLocalization", + "deprecated": true, "description": "Localized title, read-only." }, "position": { @@ -4977,6 +5205,7 @@ "type": "integer" }, "style": { + "deprecated": true, "description": "The style of the channel section.", "enum": [ "channelsectionStyleUnspecified", @@ -5015,6 +5244,25 @@ "postedPlaylists", "subscriptions" ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + true, + false, + true, + true, + true, + false, + false, + false, + false, + true, + true, + false + ], "enumDescriptions": [ "", "", @@ -5044,6 +5292,7 @@ "id": "ChannelSectionTargeting", "properties": { "countries": { + "deprecated": true, "description": "The country the channel section is targeting.", "items": { "type": "string" @@ -5051,6 +5300,7 @@ "type": "array" }, "languages": { + "deprecated": true, "description": "The language the channel section is targeting.", "items": { "type": "string" @@ -5058,6 +5308,7 @@ "type": "array" }, "regions": { + "deprecated": true, "description": "The region the channel section is targeting.", "items": { "type": "string" @@ -5079,6 +5330,7 @@ "type": "string" }, "defaultTab": { + "deprecated": true, "description": "Which content tab users should see when viewing the channel.", "type": "string" }, @@ -5087,10 +5339,12 @@ "type": "string" }, "featuredChannelsTitle": { + "deprecated": true, "description": "Title for the featured channels tab.", "type": "string" }, "featuredChannelsUrls": { + "deprecated": true, "description": "The list of featured channels.", "items": { "type": "string" @@ -5106,14 +5360,17 @@ "type": "boolean" }, "profileColor": { + "deprecated": true, "description": "A prominent color that can be rendered on this channel page.", "type": "string" }, "showBrowseView": { + "deprecated": true, "description": "Whether the tab to browse the videos should be displayed.", "type": "boolean" }, "showRelatedChannels": { + "deprecated": true, "description": "Whether related channels should be proposed.", "type": "boolean" }, @@ -5254,6 +5511,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", @@ -5270,6 +5531,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", @@ -5282,6 +5566,7 @@ "type": "array" }, "topicIds": { + "deprecated": true, "description": "A list of Freebase topic IDs associated with the channel. You can retrieve information about each topic using the Freebase Topic API.", "items": { "type": "string" @@ -5323,6 +5608,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -5347,9 +5633,11 @@ "description": "General pagination information." }, "tokenPagination": { - "$ref": "TokenPagination" + "$ref": "TokenPagination", + "deprecated": true }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } @@ -5493,6 +5781,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -5517,9 +5806,11 @@ "description": "General pagination information." }, "tokenPagination": { - "$ref": "TokenPagination" + "$ref": "TokenPagination", + "deprecated": true }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } @@ -6270,6 +6561,7 @@ "type": "string" }, "fmocRating": { + "deprecated": true, "description": "This property has been deprecated. Use the contentDetails.contentRating.cncRating instead.", "enum": [ "fmocUnspecified", @@ -6586,6 +6878,18 @@ "lsf21", "lsfUnrated" ], + "enumDeprecated": [ + false, + false, + false, + true, + false, + true, + false, + true, + false, + true + ], "enumDescriptions": [ "", "SU", @@ -7361,6 +7665,40 @@ }, "type": "object" }, + "CuepointSchedule": { + "description": "Schedule to insert cuepoints into a broadcast by ads automator.", + "id": "CuepointSchedule", + "properties": { + "enabled": { + "description": "This field is semantically required. If it is set false or not set, other fields in this message will be ignored.", + "type": "boolean" + }, + "pauseAdsUntil": { + "description": "If set, automatic cuepoint insertion is paused until this timestamp (\"No Ad Zone\"). The value is specified in ISO 8601 format.", + "type": "string" + }, + "repeatIntervalSecs": { + "description": "Interval frequency in seconds that api uses to insert cuepoints automatically.", + "format": "int32", + "type": "integer" + }, + "scheduleStrategy": { + "description": "The strategy to use when scheduling cuepoints.", + "enum": [ + "scheduleStrategyUnspecified", + "concurrent", + "nonConcurrent" + ], + "enumDescriptions": [ + "", + "Strategy to schedule cuepoints at one time for all viewers.", + "Strategy to schedule cuepoints at an increased rate to allow viewers to receive cuepoints when eligible. See go/lcr-non-concurrent-ads for more details." + ], + "type": "string" + } + }, + "type": "object" + }, "Entity": { "id": "Entity", "properties": { @@ -7499,6 +7837,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -7515,6 +7854,7 @@ "type": "string" }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } @@ -7542,6 +7882,7 @@ "properties": { "backgroundImageUrl": { "$ref": "LocalizedProperty", + "deprecated": true, "description": "The URL for the background image shown on the video watch page. The image should be 1200px by 615px, with a maximum file size of 128k." }, "bannerExternalUrl": { @@ -7549,82 +7890,102 @@ "type": "string" }, "bannerImageUrl": { + "deprecated": true, "description": "Banner image. Desktop size (1060x175).", "type": "string" }, "bannerMobileExtraHdImageUrl": { + "deprecated": true, "description": "Banner image. Mobile size high resolution (1440x395).", "type": "string" }, "bannerMobileHdImageUrl": { + "deprecated": true, "description": "Banner image. Mobile size high resolution (1280x360).", "type": "string" }, "bannerMobileImageUrl": { + "deprecated": true, "description": "Banner image. Mobile size (640x175).", "type": "string" }, "bannerMobileLowImageUrl": { + "deprecated": true, "description": "Banner image. Mobile size low resolution (320x88).", "type": "string" }, "bannerMobileMediumHdImageUrl": { + "deprecated": true, "description": "Banner image. Mobile size medium/high resolution (960x263).", "type": "string" }, "bannerTabletExtraHdImageUrl": { + "deprecated": true, "description": "Banner image. Tablet size extra high resolution (2560x424).", "type": "string" }, "bannerTabletHdImageUrl": { + "deprecated": true, "description": "Banner image. Tablet size high resolution (2276x377).", "type": "string" }, "bannerTabletImageUrl": { + "deprecated": true, "description": "Banner image. Tablet size (1707x283).", "type": "string" }, "bannerTabletLowImageUrl": { + "deprecated": true, "description": "Banner image. Tablet size low resolution (1138x188).", "type": "string" }, "bannerTvHighImageUrl": { + "deprecated": true, "description": "Banner image. TV size high resolution (1920x1080).", "type": "string" }, "bannerTvImageUrl": { + "deprecated": true, "description": "Banner image. TV size extra high resolution (2120x1192).", "type": "string" }, "bannerTvLowImageUrl": { + "deprecated": true, "description": "Banner image. TV size low resolution (854x480).", "type": "string" }, "bannerTvMediumImageUrl": { + "deprecated": true, "description": "Banner image. TV size medium resolution (1280x720).", "type": "string" }, "largeBrandedBannerImageImapScript": { "$ref": "LocalizedProperty", + "deprecated": true, "description": "The image map script for the large banner image." }, "largeBrandedBannerImageUrl": { "$ref": "LocalizedProperty", + "deprecated": true, "description": "The URL for the 854px by 70px image that appears below the video player in the expanded video view of the video watch page." }, "smallBrandedBannerImageImapScript": { "$ref": "LocalizedProperty", + "deprecated": true, "description": "The image map script for the small banner image." }, "smallBrandedBannerImageUrl": { "$ref": "LocalizedProperty", + "deprecated": true, "description": "The URL for the 640px by 70px banner image that appears below the video player in the default view of the video watch page. The URL for the image that appears above the top-left corner of the video player. This is a 25-pixel-high image with a flexible width that cannot exceed 170 pixels." }, "trackingImageUrl": { + "deprecated": true, "description": "The URL for a 1px by 1px tracking pixel that can be used to collect statistics for views of the channel or video pages.", "type": "string" }, "watchIconImageUrl": { + "deprecated": true, "type": "string" } }, @@ -7697,6 +8058,12 @@ "bottomLeft", "bottomRight" ], + "enumDeprecated": [ + true, + false, + true, + true + ], "enumDescriptions": [ "", "", @@ -7792,6 +8159,10 @@ "description": "Identifies what kind of resource this is. Value: the fixed string \"youtube#liveBroadcast\".", "type": "string" }, + "monetizationDetails": { + "$ref": "LiveBroadcastMonetizationDetails", + "description": "The monetizationDetails object contains information about the event's monetization details." + }, "snippet": { "$ref": "LiveBroadcastSnippet", "description": "The snippet object contains basic details about the event, including its title, description, start time, and end time." @@ -7844,6 +8215,7 @@ "type": "boolean" }, "enableClosedCaptions": { + "deprecated": true, "description": "This setting indicates whether HTTP POST closed captioning is enabled for this broadcast. The ingestion URL of the closed captions is returned through the liveStreams API. This is mutually exclusive with using the closed_captions_type property, and is equivalent to setting closed_captions_type to CLOSED_CAPTIONS_HTTP_POST.", "type": "boolean" }, @@ -7860,6 +8232,7 @@ "type": "boolean" }, "enableLowLatency": { + "deprecated": true, "description": "Indicates whether this broadcast has low latency enabled.", "type": "boolean" }, @@ -7939,6 +8312,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -7967,15 +8341,27 @@ "type": "string" }, "tokenPagination": { - "$ref": "TokenPagination" + "$ref": "TokenPagination", + "deprecated": true }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } }, "type": "object" }, + "LiveBroadcastMonetizationDetails": { + "description": "Monetization settings of a broadcast.", + "id": "LiveBroadcastMonetizationDetails", + "properties": { + "cuepointSchedule": { + "$ref": "CuepointSchedule" + } + }, + "type": "object" + }, "LiveBroadcastSnippet": { "description": "Basic broadcast information.", "id": "LiveBroadcastSnippet", @@ -8052,11 +8438,6 @@ "description": "The number of viewers currently watching the broadcast. The property and its value will be present if the broadcast has current viewers and the broadcast owner has not hidden the viewcount for the video. Note that YouTube stops tracking the number of concurrent viewers for a broadcast when the broadcast ends. So, this property would not identify the number of viewers watching an archived video of a live broadcast that already ended.", "format": "uint64", "type": "string" - }, - "totalChatCount": { - "description": "The total number of live chat messages currently on the broadcast. The property and its value will be present if the broadcast is public, has the live chat feature enabled, and has at least one message. Note that this field will not be filled after the broadcast ends. So this property would not identify the number of chat messages for an archived video of a completed live broadcast.", - "format": "uint64", - "type": "string" } }, "type": "object" @@ -8368,6 +8749,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -8400,9 +8782,11 @@ "type": "integer" }, "tokenPagination": { - "$ref": "TokenPagination" + "$ref": "TokenPagination", + "deprecated": true }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } @@ -8419,11 +8803,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": { @@ -8432,6 +8816,7 @@ }, "fanFundingEventDetails": { "$ref": "LiveChatFanFundingEventDetails", + "deprecated": true, "description": "Details about the funding event, this is only set if the type is 'fanFundingEvent'." }, "giftMembershipReceivedDetails": { @@ -8463,6 +8848,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", @@ -8498,7 +8887,8 @@ "messageRetractedEvent", "userBannedEvent", "superChatEvent", - "superStickerEvent" + "superStickerEvent", + "pollEvent" ], "enumDescriptions": [ "", @@ -8516,6 +8906,7 @@ "", "", "", + "", "" ], "type": "string" @@ -8558,6 +8949,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -8586,9 +8978,11 @@ "type": "string" }, "tokenPagination": { - "$ref": "TokenPagination" + "$ref": "TokenPagination", + "deprecated": true }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } @@ -8623,6 +9017,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": { @@ -8920,6 +9365,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -8947,9 +9393,11 @@ "type": "string" }, "tokenPagination": { - "$ref": "TokenPagination" + "$ref": "TokenPagination", + "deprecated": true }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } @@ -9075,6 +9523,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -9098,9 +9547,11 @@ "$ref": "PageInfo" }, "tokenPagination": { - "$ref": "TokenPagination" + "$ref": "TokenPagination", + "deprecated": true }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } @@ -9223,6 +9674,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -9239,6 +9691,7 @@ "type": "string" }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } @@ -9360,6 +9813,84 @@ }, "type": "object" }, + "PlaylistImage": { + "id": "PlaylistImage", + "properties": { + "id": { + "description": "Identifies this resource (playlist id and image type).", + "type": "string" + }, + "kind": { + "default": "youtube#playlistImage", + "description": "Identifies what kind of resource this is. Value: the fixed string \"youtube#playlistImages\".", + "type": "string" + }, + "snippet": { + "$ref": "PlaylistImageSnippet" + } + }, + "type": "object" + }, + "PlaylistImageListResponse": { + "id": "PlaylistImageListResponse", + "properties": { + "items": { + "items": { + "$ref": "PlaylistImage" + }, + "type": "array" + }, + "kind": { + "default": "youtube#playlistImageListResponse", + "description": "Identifies what kind of resource this is. Value: the fixed string \"youtube#playlistImageListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set.", + "type": "string" + }, + "pageInfo": { + "$ref": "PageInfo", + "description": "General pagination information." + }, + "prevPageToken": { + "description": "The token that can be used as the value of the pageToken parameter to retrieve the previous page in the result set.", + "type": "string" + } + }, + "type": "object" + }, + "PlaylistImageSnippet": { + "description": "A *playlistImage* resource identifies another resource, such as a image, that is associated with a playlist. In addition, the playlistImage resource contains details about the included resource that pertain specifically to how that resource is used in that playlist. YouTube uses playlists to identify special collections of videos for a channel, such as: - uploaded videos - favorite videos - positively rated (liked) videos - watch history To be more specific, these lists are associated with a channel, which is a collection of a person, group, or company's videos, playlists, and other YouTube information. You can retrieve the playlist IDs for each of these lists from the channel resource for a given channel. You can then use the playlistImages.list method to retrieve image data for any of those playlists. You can also add or remove images from those lists by calling the playlistImages.insert and playlistImages.delete methods.", + "id": "PlaylistImageSnippet", + "properties": { + "height": { + "description": "The image height.", + "format": "int32", + "type": "integer" + }, + "playlistId": { + "description": "The Playlist ID of the playlist this image is associated with.", + "type": "string" + }, + "type": { + "description": "The image type.", + "enum": [ + "hero" + ], + "enumDescriptions": [ + "The main image that will be used for this playlist." + ], + "type": "string" + }, + "width": { + "description": "The image width.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "PlaylistItem": { "description": "A *playlistItem* resource identifies another resource, such as a video, that is included in a playlist. In addition, the playlistItem resource contains details about the included resource that pertain specifically to how that resource is used in that playlist. YouTube uses playlists to identify special collections of videos for a channel, such as: - uploaded videos - favorite videos - positively rated (liked) videos - watch history - watch later To be more specific, these lists are associated with a channel, which is a collection of a person, group, or company's videos, playlists, and other YouTube information. You can retrieve the playlist IDs for each of these lists from the channel resource for a given channel. You can then use the playlistItems.list method to retrieve any of those lists. You can also add or remove items from those lists by calling the playlistItems.insert and playlistItems.delete methods. For example, if a user gives a positive rating to a video, you would insert that video into the liked videos playlist for that user's channel.", "id": "PlaylistItem", @@ -9396,6 +9927,7 @@ "id": "PlaylistItemContentDetails", "properties": { "endAt": { + "deprecated": true, "description": "The time, measured in seconds from the start of the video, when the video should stop playing. (The playlist owner can specify the times when the video should start and stop playing when the video is played in the context of the playlist.) By default, assume that the video.endTime is the end of the video.", "type": "string" }, @@ -9404,6 +9936,7 @@ "type": "string" }, "startAt": { + "deprecated": true, "description": "The time, measured in seconds from the start of the video, when the video should start playing. (The playlist owner can specify the times when the video should start and stop playing when the video is played in the context of the playlist.) The default value is 0.", "type": "string" }, @@ -9557,6 +10090,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -9585,9 +10119,11 @@ "type": "string" }, "tokenPagination": { - "$ref": "TokenPagination" + "$ref": "TokenPagination", + "deprecated": true }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } @@ -9649,6 +10185,7 @@ "type": "string" }, "tags": { + "deprecated": true, "description": "Keyword tags associated with the playlist.", "items": { "type": "string" @@ -9934,6 +10471,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -9961,9 +10499,11 @@ "type": "string" }, "tokenPagination": { - "$ref": "TokenPagination" + "$ref": "TokenPagination", + "deprecated": true }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } @@ -10066,6 +10606,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -10089,9 +10630,11 @@ "$ref": "PageInfo" }, "tokenPagination": { - "$ref": "TokenPagination" + "$ref": "TokenPagination", + "deprecated": true }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } @@ -10339,6 +10882,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -10355,6 +10899,7 @@ "type": "string" }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } @@ -10426,6 +10971,7 @@ }, "projectDetails": { "$ref": "VideoProjectDetails", + "deprecated": true, "description": "The projectDetails object contains information about the project specific video metadata. b/157517979: This part was never populated after it was added. However, it sees non-zero traffic because there is generated client code in the wild that refers to it [1]. We keep this field and do NOT remove it because otherwise V3 would return an error when this part gets requested [2]. [1] https://developers.google.com/resources/api-libraries/documentation/youtube/v3/csharp/latest/classGoogle_1_1Apis_1_1YouTube_1_1v3_1_1Data_1_1VideoProjectDetails.html [2] http://google3/video/youtube/src/python/servers/data_api/common.py?l=1565-1569&rcl=344141677" }, "recordingDetails": { @@ -10513,6 +11059,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -10529,6 +11076,7 @@ "type": "string" }, "visitorId": { + "deprecated": true, "description": "The `visitorId` identifies the visitor.", "type": "string" } @@ -10629,6 +11177,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -10657,9 +11206,11 @@ "type": "string" }, "tokenPagination": { - "$ref": "TokenPagination" + "$ref": "TokenPagination", + "deprecated": true }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } @@ -10751,6 +11302,7 @@ }, "regionRestriction": { "$ref": "VideoContentDetailsRegionRestriction", + "deprecated": true, "description": "The regionRestriction object contains information about the countries where a video is (or is not) viewable. The object will contain either the contentDetails.regionRestriction.allowed property or the contentDetails.regionRestriction.blocked property." } }, @@ -10938,6 +11490,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -10954,6 +11507,7 @@ "type": "string" }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } @@ -10968,6 +11522,7 @@ "type": "string" }, "eventId": { + "deprecated": true, "description": "Serialized EventId of the request which produced this response.", "type": "string" }, @@ -10995,9 +11550,11 @@ "type": "string" }, "tokenPagination": { - "$ref": "TokenPagination" + "$ref": "TokenPagination", + "deprecated": true }, "visitorId": { + "deprecated": true, "description": "The visitorId identifies the visitor.", "type": "string" } @@ -11308,6 +11865,7 @@ "type": "string" }, "favoriteCount": { + "deprecated": true, "description": "The number of users who currently have the video marked as a favorite video.", "format": "uint64", "type": "string" diff --git a/etc/api/youtubeanalytics/v2/youtubeanalytics-api.json b/etc/api/youtubeanalytics/v2/youtubeanalytics-api.json index a273e692a1..764961d55d 100644 --- a/etc/api/youtubeanalytics/v2/youtubeanalytics-api.json +++ b/etc/api/youtubeanalytics/v2/youtubeanalytics-api.json @@ -421,7 +421,7 @@ } } }, - "revision": "20230123", + "revision": "20240304", "rootUrl": "https://youtubeanalytics.googleapis.com/", "schemas": { "EmptyResponse": { @@ -487,6 +487,7 @@ "id": "Errors", "properties": { "code": { + "deprecated": true, "description": "Global error code. Deprecated and ignored. Set custom error codes in ErrorProto.domain and ErrorProto.code instead.", "enum": [ "BAD_REQUEST", diff --git a/etc/api/youtubereporting/v1/youtubereporting-api.json b/etc/api/youtubereporting/v1/youtubereporting-api.json index e320acc709..43aa7ee76c 100644 --- a/etc/api/youtubereporting/v1/youtubereporting-api.json +++ b/etc/api/youtubereporting/v1/youtubereporting-api.json @@ -411,7 +411,7 @@ } } }, - "revision": "20230123", + "revision": "20240304", "rootUrl": "https://youtubereporting.googleapis.com/", "schemas": { "Empty": { @@ -455,6 +455,7 @@ "id": "GdataCompositeMedia", "properties": { "blobRef": { + "deprecated": true, "description": "gdata", "format": "byte", "type": "string" @@ -659,15 +660,18 @@ "id": "GdataMedia", "properties": { "algorithm": { + "deprecated": true, "description": "gdata", "type": "string" }, "bigstoreObjectRef": { + "deprecated": true, "description": "gdata", "format": "byte", "type": "string" }, "blobRef": { + "deprecated": true, "description": "gdata", "format": "byte", "type": "string" @@ -730,6 +734,7 @@ "type": "string" }, "hash": { + "deprecated": true, "description": "gdata", "type": "string" },